diff --git a/build/internals/controller/Claimable.abi b/build/internals/controller/Claimable.abi new file mode 100644 index 00000000..1a28b788 --- /dev/null +++ b/build/internals/controller/Claimable.abi @@ -0,0 +1 @@ +[{"anonymous":false,"inputs":[{"indexed":false,"name":"_to","type":"address"},{"indexed":false,"name":"_asset","type":"address"},{"indexed":false,"name":"_amount","type":"uint256"}],"name":"Claimed","type":"event"}] \ No newline at end of file diff --git a/build/internals/controller/Claimable.bin b/build/internals/controller/Claimable.bin new file mode 100644 index 00000000..44b20f35 --- /dev/null +++ b/build/internals/controller/Claimable.bin @@ -0,0 +1 @@ +6080604052348015600f57600080fd5b50603580601d6000396000f3006080604052600080fd00a165627a7a72305820395b628221b28dc04b0498f55415adf15a37b484bd593b1cfd29b4eab19dc5300029 \ No newline at end of file diff --git a/build/internals/controller/Controller.abi b/build/internals/controller/Controller.abi index 5df6cd3a..10bc0c9e 100644 --- a/build/internals/controller/Controller.abi +++ b/build/internals/controller/Controller.abi @@ -1 +1 @@ -[{"constant":true,"inputs":[],"name":"controllerCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_account","type":"address"}],"name":"removeAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isTransferable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_account","type":"address"}],"name":"isAdmin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"adminCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_account","type":"address"}],"name":"addAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_account","type":"address"}],"name":"addController","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_account","type":"address"},{"name":"_transferable","type":"bool"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_account","type":"address"}],"name":"isController","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_account","type":"address"}],"name":"removeController","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_ownerAddress_","type":"address"},{"name":"_transferable_","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_sender","type":"address"},{"indexed":false,"name":"_controller","type":"address"}],"name":"AddedController","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_sender","type":"address"},{"indexed":false,"name":"_controller","type":"address"}],"name":"RemovedController","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_sender","type":"address"},{"indexed":false,"name":"_admin","type":"address"}],"name":"AddedAdmin","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_sender","type":"address"},{"indexed":false,"name":"_admin","type":"address"}],"name":"RemovedAdmin","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_from","type":"address"},{"indexed":false,"name":"_to","type":"address"}],"name":"TransferredOwnership","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_locked","type":"address"}],"name":"LockedOwnership","type":"event"}] \ No newline at end of file +[{"constant":true,"inputs":[],"name":"controllerCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_account","type":"address"}],"name":"removeAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isTransferable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_account","type":"address"}],"name":"isAdmin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"adminCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_account","type":"address"}],"name":"addAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_asset","type":"address"},{"name":"_amount","type":"uint256"}],"name":"claim","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_account","type":"address"}],"name":"addController","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_account","type":"address"},{"name":"_transferable","type":"bool"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_account","type":"address"}],"name":"isController","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_account","type":"address"}],"name":"removeController","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_ownerAddress_","type":"address"},{"name":"_transferable_","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_sender","type":"address"},{"indexed":false,"name":"_controller","type":"address"}],"name":"AddedController","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_sender","type":"address"},{"indexed":false,"name":"_controller","type":"address"}],"name":"RemovedController","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_sender","type":"address"},{"indexed":false,"name":"_admin","type":"address"}],"name":"AddedAdmin","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_sender","type":"address"},{"indexed":false,"name":"_admin","type":"address"}],"name":"RemovedAdmin","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_to","type":"address"},{"indexed":false,"name":"_asset","type":"address"},{"indexed":false,"name":"_amount","type":"uint256"}],"name":"Claimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_from","type":"address"},{"indexed":false,"name":"_to","type":"address"}],"name":"TransferredOwnership","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_locked","type":"address"}],"name":"LockedOwnership","type":"event"}] \ No newline at end of file diff --git a/build/internals/controller/Controller.bin b/build/internals/controller/Controller.bin index bbc39dbe..afa63062 100644 --- a/build/internals/controller/Controller.bin +++ b/build/internals/controller/Controller.bin @@ -1 +1 @@ -608060405234801561001057600080fd5b5060405160408061103a83398101604052805160209091015160008054600160a060020a031916600160a060020a0384161760a060020a60ff02191674010000000000000000000000000000000000000000831515810291909117918290558391839160ff91041615156100bb5760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b6040805160008152600160a060020a038416602082015281517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea5929181900390910190a150505050610f28806101126000396000f3006080604052600436106100b95763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166315b9a8b881146100be5780631785f53c146100e55780632121dc751461010857806324d7806c146101315780632b7832b3146101525780637048027514610167578063715018a6146101885780638da5cb5b1461019d578063a7fc7a07146101ce578063b242e534146101ef578063b429afeb14610215578063f6a74ed714610236575b600080fd5b3480156100ca57600080fd5b506100d3610257565b60408051918252519081900360200190f35b3480156100f157600080fd5b50610106600160a060020a036004351661025d565b005b34801561011457600080fd5b5061011d6102b6565b604080519115158252519081900360200190f35b34801561013d57600080fd5b5061011d600160a060020a03600435166102d7565b34801561015e57600080fd5b506100d36102f5565b34801561017357600080fd5b50610106600160a060020a03600435166102fb565b34801561019457600080fd5b50610106610351565b3480156101a957600080fd5b506101b261046c565b60408051600160a060020a039092168252519081900360200190f35b3480156101da57600080fd5b50610106600160a060020a036004351661047b565b3480156101fb57600080fd5b50610106600160a060020a036004351660243515156104e3565b34801561022157600080fd5b5061011d600160a060020a0360043516610722565b34801561024257600080fd5b50610106600160a060020a0360043516610740565b60045490565b610266336107a8565b15156102aa576040805160e560020a62461bcd0281526020600482015260166024820152600080516020610edd833981519152604482015290519081900360640190fd5b6102b3816107bc565b50565b60005474010000000000000000000000000000000000000000900460ff1690565b600160a060020a031660009081526001602052604090205460ff1690565b60025490565b610304336107a8565b1515610348576040805160e560020a62461bcd0281526020600482015260166024820152600080516020610edd833981519152604482015290519081900360640190fd5b6102b381610897565b61035a336107a8565b151561039e576040805160e560020a62461bcd0281526020600482015260166024820152600080516020610edd833981519152604482015290519081900360640190fd5b60005474010000000000000000000000000000000000000000900460ff161515610412576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916815560408051828152602081019290925280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1565b600054600160a060020a031690565b610484336102d7565b15156104da576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e2061646d696e00000000000000000000604482015290519081900360640190fd5b6102b381610b38565b6104ec336107a8565b1515610530576040805160e560020a62461bcd0281526020600482015260166024820152600080516020610edd833981519152604482015290519081900360640190fd5b60005474010000000000000000000000000000000000000000900460ff1615156105a4576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b600160a060020a038216151561062a576040805160e560020a62461bcd02815260206004820152602360248201527f6f776e65722063616e6e6f742062652073657420746f207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6000805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000831515908102919091179091556106aa5760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b60005460408051600160a060020a039283168152918416602083015280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1506000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a031660009081526003602052604090205460ff1690565b610749336102d7565b151561079f576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e2061646d696e00000000000000000000604482015290519081900360640190fd5b6102b381610ddc565b600054600160a060020a0390811691161490565b600160a060020a03811660009081526001602052604090205460ff16151561082e576040805160e560020a62461bcd02815260206004820181905260248201527f70726f7669646564206163636f756e74206973206e6f7420616e2061646d696e604482015290519081900360640190fd5b600160a060020a038116600081815260016020908152604091829020805460ff191690556002805460001901905581513381529081019290925280517f787a2e12f4a55b658b8f573c32432ee11a5e8b51677d1e1e937aaf6a0bb5776e9281900390910190a150565b600160a060020a03811660009081526001602052604090205460ff161561092d576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320616c726561647920616e206160448201527f646d696e00000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a03811660009081526003602052604090205460ff16156109c4576040805160e560020a62461bcd02815260206004820152602860248201527f70726f7669646564206163636f756e7420697320616c7265616479206120636f60448201527f6e74726f6c6c6572000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6109cd816107a8565b15610a48576040805160e560020a62461bcd02815260206004820152602560248201527f70726f7669646564206163636f756e7420697320616c7265616479207468652060448201527f6f776e6572000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0381161515610acd576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260016020818152604092839020805460ff1916831790556002805490920190915581513381529081019290925280517fc58b647b8ba5a8cab2f11f32673636cc1061324240972ed05e8cc005b81a4b7a9281900390910190a150565b600160a060020a03811660009081526001602052604090205460ff1615610bce576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320616c726561647920616e206160448201527f646d696e00000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a03811660009081526003602052604090205460ff1615610c65576040805160e560020a62461bcd02815260206004820152602860248201527f70726f7669646564206163636f756e7420697320616c7265616479206120636f60448201527f6e74726f6c6c6572000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b610c6e816107a8565b15610ce9576040805160e560020a62461bcd02815260206004820152602560248201527f70726f7669646564206163636f756e7420697320616c7265616479207468652060448201527f6f776e6572000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0381161515610d6e576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260036020908152604091829020805460ff1916600190811790915560048054909101905581513381529081019290925280517fb890d5abdcd5c2b61ce8bbc2cf6af9b6d7f7451830cbc85037cbdd182c86fe1d9281900390910190a150565b600160a060020a03811660009081526003602052604090205460ff161515610e73576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e74206973206e6f74206120636f6e74726f60448201527f6c6c657200000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260036020908152604091829020805460ff191690556004805460001901905581513381529081019290925280517fb6a283aaede08e15ef55c74e3014e30eb0c0040d4b156cccb77391268ea373949281900390910190a150560073656e646572206973206e6f7420616e206f776e657200000000000000000000a165627a7a72305820e3381d505607ee63056d5ba42a87e53a7b0dab423e773fa53f1e050ccb6949390029 \ No newline at end of file +608060405234801561001057600080fd5b5060405160408061128b83398101604052805160209091015160008054600160a060020a031916600160a060020a0384161760a060020a60ff02191674010000000000000000000000000000000000000000831515810291909117918290558391839160ff91041615156100bb5760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b6040805160008152600160a060020a038416602082015281517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea5929181900390910190a150505050611179806101126000396000f3006080604052600436106100c45763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166315b9a8b881146100c95780631785f53c146100f05780632121dc751461011357806324d7806c1461013c5780632b7832b31461015d5780637048027514610172578063715018a6146101935780638da5cb5b146101a8578063996cba68146101d9578063a7fc7a0714610203578063b242e53414610224578063b429afeb1461024a578063f6a74ed71461026b575b600080fd5b3480156100d557600080fd5b506100de61028c565b60408051918252519081900360200190f35b3480156100fc57600080fd5b50610111600160a060020a0360043516610292565b005b34801561011f57600080fd5b506101286102eb565b604080519115158252519081900360200190f35b34801561014857600080fd5b50610128600160a060020a036004351661030c565b34801561016957600080fd5b506100de61032a565b34801561017e57600080fd5b50610111600160a060020a0360043516610330565b34801561019f57600080fd5b50610111610386565b3480156101b457600080fd5b506101bd6104a1565b60408051600160a060020a039092168252519081900360200190f35b3480156101e557600080fd5b50610111600160a060020a03600435811690602435166044356104b0565b34801561020f57600080fd5b50610111600160a060020a036004351661050d565b34801561023057600080fd5b50610111600160a060020a03600435166024351515610575565b34801561025657600080fd5b50610128600160a060020a03600435166107b4565b34801561027757600080fd5b50610111600160a060020a03600435166107d2565b60045490565b61029b3361083a565b15156102df576040805160e560020a62461bcd028152602060048201526016602482015260008051602061112e833981519152604482015290519081900360640190fd5b6102e88161084e565b50565b60005474010000000000000000000000000000000000000000900460ff1690565b600160a060020a031660009081526001602052604090205460ff1690565b60025490565b6103393361083a565b151561037d576040805160e560020a62461bcd028152602060048201526016602482015260008051602061112e833981519152604482015290519081900360640190fd5b6102e881610929565b61038f3361083a565b15156103d3576040805160e560020a62461bcd028152602060048201526016602482015260008051602061112e833981519152604482015290519081900360640190fd5b60005474010000000000000000000000000000000000000000900460ff161515610447576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916815560408051828152602081019290925280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1565b600054600160a060020a031690565b6104b93361083a565b15156104fd576040805160e560020a62461bcd028152602060048201526016602482015260008051602061112e833981519152604482015290519081900360640190fd5b610508838383610bca565b505050565b6105163361030c565b151561056c576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e2061646d696e00000000000000000000604482015290519081900360640190fd5b6102e881610d89565b61057e3361083a565b15156105c2576040805160e560020a62461bcd028152602060048201526016602482015260008051602061112e833981519152604482015290519081900360640190fd5b60005474010000000000000000000000000000000000000000900460ff161515610636576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b600160a060020a03821615156106bc576040805160e560020a62461bcd02815260206004820152602360248201527f6f776e65722063616e6e6f742062652073657420746f207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6000805474ff00000000000000000000000000000000000000001916740100000000000000000000000000000000000000008315159081029190911790915561073c5760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b60005460408051600160a060020a039283168152918416602083015280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1506000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a031660009081526003602052604090205460ff1690565b6107db3361030c565b1515610831576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e2061646d696e00000000000000000000604482015290519081900360640190fd5b6102e88161102d565b600054600160a060020a0390811691161490565b600160a060020a03811660009081526001602052604090205460ff1615156108c0576040805160e560020a62461bcd02815260206004820181905260248201527f70726f7669646564206163636f756e74206973206e6f7420616e2061646d696e604482015290519081900360640190fd5b600160a060020a038116600081815260016020908152604091829020805460ff191690556002805460001901905581513381529081019290925280517f787a2e12f4a55b658b8f573c32432ee11a5e8b51677d1e1e937aaf6a0bb5776e9281900390910190a150565b600160a060020a03811660009081526001602052604090205460ff16156109bf576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320616c726561647920616e206160448201527f646d696e00000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a03811660009081526003602052604090205460ff1615610a56576040805160e560020a62461bcd02815260206004820152602860248201527f70726f7669646564206163636f756e7420697320616c7265616479206120636f60448201527f6e74726f6c6c6572000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b610a5f8161083a565b15610ada576040805160e560020a62461bcd02815260206004820152602560248201527f70726f7669646564206163636f756e7420697320616c7265616479207468652060448201527f6f776e6572000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0381161515610b5f576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260016020818152604092839020805460ff1916831790556002805490920190915581513381529081019290925280517fc58b647b8ba5a8cab2f11f32673636cc1061324240972ed05e8cc005b81a4b7a9281900390910190a150565b600160a060020a0382161515610c1657604051600160a060020a0384169082156108fc029083906000818181858888f19350505050158015610c10573d6000803e3d6000fd5b50610d3a565b81600160a060020a031663a9059cbb84836040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b158015610c9257600080fd5b505af1158015610ca6573d6000803e3d6000fd5b505050506040513d6020811015610cbc57600080fd5b50511515610d3a576040805160e560020a62461bcd02815260206004820152602560248201527f455243323020746f6b656e207472616e736665722077617320756e737563636560448201527f737366756c000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60408051600160a060020a0380861682528416602082015280820183905290517ff7a40077ff7a04c7e61f6f26fb13774259ddf1b6bce9ecf26a8276cdd39926839181900360600190a1505050565b600160a060020a03811660009081526001602052604090205460ff1615610e1f576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320616c726561647920616e206160448201527f646d696e00000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a03811660009081526003602052604090205460ff1615610eb6576040805160e560020a62461bcd02815260206004820152602860248201527f70726f7669646564206163636f756e7420697320616c7265616479206120636f60448201527f6e74726f6c6c6572000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b610ebf8161083a565b15610f3a576040805160e560020a62461bcd02815260206004820152602560248201527f70726f7669646564206163636f756e7420697320616c7265616479207468652060448201527f6f776e6572000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0381161515610fbf576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260036020908152604091829020805460ff1916600190811790915560048054909101905581513381529081019290925280517fb890d5abdcd5c2b61ce8bbc2cf6af9b6d7f7451830cbc85037cbdd182c86fe1d9281900390910190a150565b600160a060020a03811660009081526003602052604090205460ff1615156110c4576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e74206973206e6f74206120636f6e74726f60448201527f6c6c657200000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260036020908152604091829020805460ff191690556004805460001901905581513381529081019290925280517fb6a283aaede08e15ef55c74e3014e30eb0c0040d4b156cccb77391268ea373949281900390910190a150560073656e646572206973206e6f7420616e206f776e657200000000000000000000a165627a7a723058200e752e3a88decc3d8c5d0c377c032b4fe39f5eb66a5b9fe8ce60f184698d72480029 \ No newline at end of file diff --git a/build/internals/controller/ERC20.abi b/build/internals/controller/ERC20.abi new file mode 100644 index 00000000..e5360d0e --- /dev/null +++ b/build/internals/controller/ERC20.abi @@ -0,0 +1 @@ +[{"constant":false,"inputs":[{"name":"","type":"address"},{"name":"","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"","type":"address"},{"name":"","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] \ No newline at end of file diff --git a/build/internals/controller/ERC20.bin b/build/internals/controller/ERC20.bin new file mode 100644 index 00000000..e69de29b diff --git a/build/internals/controller/combined.json b/build/internals/controller/combined.json index c6baee4a..746893ab 100644 --- a/build/internals/controller/combined.json +++ b/build/internals/controller/combined.json @@ -1 +1 @@ -{"contracts":{"internals/controller.sol:Controller":{"bin":"608060405234801561001057600080fd5b5060405160408061103a83398101604052805160209091015160008054600160a060020a031916600160a060020a0384161760a060020a60ff02191674010000000000000000000000000000000000000000831515810291909117918290558391839160ff91041615156100bb5760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b6040805160008152600160a060020a038416602082015281517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea5929181900390910190a150505050610f28806101126000396000f3006080604052600436106100b95763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166315b9a8b881146100be5780631785f53c146100e55780632121dc751461010857806324d7806c146101315780632b7832b3146101525780637048027514610167578063715018a6146101885780638da5cb5b1461019d578063a7fc7a07146101ce578063b242e534146101ef578063b429afeb14610215578063f6a74ed714610236575b600080fd5b3480156100ca57600080fd5b506100d3610257565b60408051918252519081900360200190f35b3480156100f157600080fd5b50610106600160a060020a036004351661025d565b005b34801561011457600080fd5b5061011d6102b6565b604080519115158252519081900360200190f35b34801561013d57600080fd5b5061011d600160a060020a03600435166102d7565b34801561015e57600080fd5b506100d36102f5565b34801561017357600080fd5b50610106600160a060020a03600435166102fb565b34801561019457600080fd5b50610106610351565b3480156101a957600080fd5b506101b261046c565b60408051600160a060020a039092168252519081900360200190f35b3480156101da57600080fd5b50610106600160a060020a036004351661047b565b3480156101fb57600080fd5b50610106600160a060020a036004351660243515156104e3565b34801561022157600080fd5b5061011d600160a060020a0360043516610722565b34801561024257600080fd5b50610106600160a060020a0360043516610740565b60045490565b610266336107a8565b15156102aa576040805160e560020a62461bcd0281526020600482015260166024820152600080516020610edd833981519152604482015290519081900360640190fd5b6102b3816107bc565b50565b60005474010000000000000000000000000000000000000000900460ff1690565b600160a060020a031660009081526001602052604090205460ff1690565b60025490565b610304336107a8565b1515610348576040805160e560020a62461bcd0281526020600482015260166024820152600080516020610edd833981519152604482015290519081900360640190fd5b6102b381610897565b61035a336107a8565b151561039e576040805160e560020a62461bcd0281526020600482015260166024820152600080516020610edd833981519152604482015290519081900360640190fd5b60005474010000000000000000000000000000000000000000900460ff161515610412576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916815560408051828152602081019290925280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1565b600054600160a060020a031690565b610484336102d7565b15156104da576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e2061646d696e00000000000000000000604482015290519081900360640190fd5b6102b381610b38565b6104ec336107a8565b1515610530576040805160e560020a62461bcd0281526020600482015260166024820152600080516020610edd833981519152604482015290519081900360640190fd5b60005474010000000000000000000000000000000000000000900460ff1615156105a4576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b600160a060020a038216151561062a576040805160e560020a62461bcd02815260206004820152602360248201527f6f776e65722063616e6e6f742062652073657420746f207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6000805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000831515908102919091179091556106aa5760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b60005460408051600160a060020a039283168152918416602083015280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1506000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a031660009081526003602052604090205460ff1690565b610749336102d7565b151561079f576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e2061646d696e00000000000000000000604482015290519081900360640190fd5b6102b381610ddc565b600054600160a060020a0390811691161490565b600160a060020a03811660009081526001602052604090205460ff16151561082e576040805160e560020a62461bcd02815260206004820181905260248201527f70726f7669646564206163636f756e74206973206e6f7420616e2061646d696e604482015290519081900360640190fd5b600160a060020a038116600081815260016020908152604091829020805460ff191690556002805460001901905581513381529081019290925280517f787a2e12f4a55b658b8f573c32432ee11a5e8b51677d1e1e937aaf6a0bb5776e9281900390910190a150565b600160a060020a03811660009081526001602052604090205460ff161561092d576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320616c726561647920616e206160448201527f646d696e00000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a03811660009081526003602052604090205460ff16156109c4576040805160e560020a62461bcd02815260206004820152602860248201527f70726f7669646564206163636f756e7420697320616c7265616479206120636f60448201527f6e74726f6c6c6572000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6109cd816107a8565b15610a48576040805160e560020a62461bcd02815260206004820152602560248201527f70726f7669646564206163636f756e7420697320616c7265616479207468652060448201527f6f776e6572000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0381161515610acd576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260016020818152604092839020805460ff1916831790556002805490920190915581513381529081019290925280517fc58b647b8ba5a8cab2f11f32673636cc1061324240972ed05e8cc005b81a4b7a9281900390910190a150565b600160a060020a03811660009081526001602052604090205460ff1615610bce576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320616c726561647920616e206160448201527f646d696e00000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a03811660009081526003602052604090205460ff1615610c65576040805160e560020a62461bcd02815260206004820152602860248201527f70726f7669646564206163636f756e7420697320616c7265616479206120636f60448201527f6e74726f6c6c6572000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b610c6e816107a8565b15610ce9576040805160e560020a62461bcd02815260206004820152602560248201527f70726f7669646564206163636f756e7420697320616c7265616479207468652060448201527f6f776e6572000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0381161515610d6e576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260036020908152604091829020805460ff1916600190811790915560048054909101905581513381529081019290925280517fb890d5abdcd5c2b61ce8bbc2cf6af9b6d7f7451830cbc85037cbdd182c86fe1d9281900390910190a150565b600160a060020a03811660009081526003602052604090205460ff161515610e73576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e74206973206e6f74206120636f6e74726f60448201527f6c6c657200000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260036020908152604091829020805460ff191690556004805460001901905581513381529081019290925280517fb6a283aaede08e15ef55c74e3014e30eb0c0040d4b156cccb77391268ea373949281900390910190a150560073656e646572206973206e6f7420616e206f776e657200000000000000000000a165627a7a72305820e3381d505607ee63056d5ba42a87e53a7b0dab423e773fa53f1e050ccb6949390029","bin-runtime":"6080604052600436106100b95763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166315b9a8b881146100be5780631785f53c146100e55780632121dc751461010857806324d7806c146101315780632b7832b3146101525780637048027514610167578063715018a6146101885780638da5cb5b1461019d578063a7fc7a07146101ce578063b242e534146101ef578063b429afeb14610215578063f6a74ed714610236575b600080fd5b3480156100ca57600080fd5b506100d3610257565b60408051918252519081900360200190f35b3480156100f157600080fd5b50610106600160a060020a036004351661025d565b005b34801561011457600080fd5b5061011d6102b6565b604080519115158252519081900360200190f35b34801561013d57600080fd5b5061011d600160a060020a03600435166102d7565b34801561015e57600080fd5b506100d36102f5565b34801561017357600080fd5b50610106600160a060020a03600435166102fb565b34801561019457600080fd5b50610106610351565b3480156101a957600080fd5b506101b261046c565b60408051600160a060020a039092168252519081900360200190f35b3480156101da57600080fd5b50610106600160a060020a036004351661047b565b3480156101fb57600080fd5b50610106600160a060020a036004351660243515156104e3565b34801561022157600080fd5b5061011d600160a060020a0360043516610722565b34801561024257600080fd5b50610106600160a060020a0360043516610740565b60045490565b610266336107a8565b15156102aa576040805160e560020a62461bcd0281526020600482015260166024820152600080516020610edd833981519152604482015290519081900360640190fd5b6102b3816107bc565b50565b60005474010000000000000000000000000000000000000000900460ff1690565b600160a060020a031660009081526001602052604090205460ff1690565b60025490565b610304336107a8565b1515610348576040805160e560020a62461bcd0281526020600482015260166024820152600080516020610edd833981519152604482015290519081900360640190fd5b6102b381610897565b61035a336107a8565b151561039e576040805160e560020a62461bcd0281526020600482015260166024820152600080516020610edd833981519152604482015290519081900360640190fd5b60005474010000000000000000000000000000000000000000900460ff161515610412576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916815560408051828152602081019290925280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1565b600054600160a060020a031690565b610484336102d7565b15156104da576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e2061646d696e00000000000000000000604482015290519081900360640190fd5b6102b381610b38565b6104ec336107a8565b1515610530576040805160e560020a62461bcd0281526020600482015260166024820152600080516020610edd833981519152604482015290519081900360640190fd5b60005474010000000000000000000000000000000000000000900460ff1615156105a4576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b600160a060020a038216151561062a576040805160e560020a62461bcd02815260206004820152602360248201527f6f776e65722063616e6e6f742062652073657420746f207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6000805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000831515908102919091179091556106aa5760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b60005460408051600160a060020a039283168152918416602083015280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1506000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a031660009081526003602052604090205460ff1690565b610749336102d7565b151561079f576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e2061646d696e00000000000000000000604482015290519081900360640190fd5b6102b381610ddc565b600054600160a060020a0390811691161490565b600160a060020a03811660009081526001602052604090205460ff16151561082e576040805160e560020a62461bcd02815260206004820181905260248201527f70726f7669646564206163636f756e74206973206e6f7420616e2061646d696e604482015290519081900360640190fd5b600160a060020a038116600081815260016020908152604091829020805460ff191690556002805460001901905581513381529081019290925280517f787a2e12f4a55b658b8f573c32432ee11a5e8b51677d1e1e937aaf6a0bb5776e9281900390910190a150565b600160a060020a03811660009081526001602052604090205460ff161561092d576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320616c726561647920616e206160448201527f646d696e00000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a03811660009081526003602052604090205460ff16156109c4576040805160e560020a62461bcd02815260206004820152602860248201527f70726f7669646564206163636f756e7420697320616c7265616479206120636f60448201527f6e74726f6c6c6572000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6109cd816107a8565b15610a48576040805160e560020a62461bcd02815260206004820152602560248201527f70726f7669646564206163636f756e7420697320616c7265616479207468652060448201527f6f776e6572000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0381161515610acd576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260016020818152604092839020805460ff1916831790556002805490920190915581513381529081019290925280517fc58b647b8ba5a8cab2f11f32673636cc1061324240972ed05e8cc005b81a4b7a9281900390910190a150565b600160a060020a03811660009081526001602052604090205460ff1615610bce576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320616c726561647920616e206160448201527f646d696e00000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a03811660009081526003602052604090205460ff1615610c65576040805160e560020a62461bcd02815260206004820152602860248201527f70726f7669646564206163636f756e7420697320616c7265616479206120636f60448201527f6e74726f6c6c6572000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b610c6e816107a8565b15610ce9576040805160e560020a62461bcd02815260206004820152602560248201527f70726f7669646564206163636f756e7420697320616c7265616479207468652060448201527f6f776e6572000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0381161515610d6e576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260036020908152604091829020805460ff1916600190811790915560048054909101905581513381529081019290925280517fb890d5abdcd5c2b61ce8bbc2cf6af9b6d7f7451830cbc85037cbdd182c86fe1d9281900390910190a150565b600160a060020a03811660009081526003602052604090205460ff161515610e73576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e74206973206e6f74206120636f6e74726f60448201527f6c6c657200000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260036020908152604091829020805460ff191690556004805460001901905581513381529081019290925280517fb6a283aaede08e15ef55c74e3014e30eb0c0040d4b156cccb77391268ea373949281900390910190a150560073656e646572206973206e6f7420616e206f776e657200000000000000000000a165627a7a72305820e3381d505607ee63056d5ba42a87e53a7b0dab423e773fa53f1e050ccb6949390029","srcmap":"1335:4616:0:-;;;2020:107;8:9:-1;5:2;;;30:1;27;20:12;5:2;2020:107:0;;;;;;;;;;;;;;;;;;;1527:6:1;:18;;-1:-1:-1;;;;;;1527:18:1;-1:-1:-1;;;;;1527:18:1;;;-1:-1:-1;;;;;;1555:32:1;;;;;;;;;;;;;;;2020:107:0;;;;1555:32:1;1671:15;;;1670:16;1666:78;;;1707:26;;;-1:-1:-1;;;;;1707:26:1;;;;;;;;;;;;;;;1666:78;1758:43;;;1787:1;1758:43;;-1:-1:-1;;;;;1758:43:1;;;;;;;;;;;;;;;;;;;1456:352;;2020:107:0;;1335:4616;;;;;;","srcmap-runtime":"1335:4616:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3634:96;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3634:96:0;;;;;;;;;;;;;;;;;;;;2814:97;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2814:97:0;-1:-1:-1;;;;;2814:97:0;;;;;;;3149:94:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3149:94:1;;;;;;;;;;;;;;;;;;;;;;3834:104:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3834:104:0;-1:-1:-1;;;;;3834:104:0;;;;;2963:86;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2963:86:0;;;;2594:91;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2594:91:0;-1:-1:-1;;;;;2594:91:0;;;;;3519:306:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3519:306:1;;;;3908:77;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3908:77:1;;;;;;;;-1:-1:-1;;;;;3908:77:1;;;;;;;;;;;;;;3187:101:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3187:101:0;-1:-1:-1;;;;;3187:101:0;;;;;2231:801:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2231:801:1;-1:-1:-1;;;;;2231:801:1;;;;;;;;;4050:114:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4050:114:0;-1:-1:-1;;;;;4050:114:0;;;;;3432:107;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3432:107:0;-1:-1:-1;;;;;3432:107:0;;;;;3634:96;3707:16;;3634:96;:::o;2814:97::-;1924:20:1;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:1;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1916:55:1;;;;;;;;;;;;;;;2882:22:0;2895:8;2882:12;:22::i;:::-;2814:97;:::o;3149:94:1:-;3198:4;3221:15;;;;;;;3149:94::o;3834:104:0:-;-1:-1:-1;;;;;3913:18:0;3890:4;3913:18;;;:8;:18;;;;;;;;;3834:104::o;2963:86::-;3031:11;;2963:86;:::o;2594:91::-;1924:20:1;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:1;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1916:55:1;;;;;;;;;;;;;;;2659:19:0;2669:8;2659:9;:19::i;3519:306:1:-;1924:20;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:1;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1916:55:1;;;;;;;;;;;;;;;3640:15;;;;;;;3632:57;;;;;;;-1:-1:-1;;;;;3632:57:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;3760:1;3743:19;;-1:-1:-1;;3743:19:1;;;3778:40;;;;;;;;;;;;;;;;;;;;;;;;;3519:306::o;3908:77::-;3946:7;3972:6;-1:-1:-1;;;;;3972:6:1;3908:77;:::o;3187:101:0:-;2226:19;2234:10;2226:7;:19::i;:::-;2218:54;;;;;;;-1:-1:-1;;;;;2218:54:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;3257:24;3272:8;3257:14;:24::i;2231:801:1:-;1924:20;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:1;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1916:55:1;;;;;;;;;;;;;;;2388:15;;;;;;;2380:57;;;;;;;-1:-1:-1;;;;;2380:57:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2518:22:1;;;;2510:70;;;;;-1:-1:-1;;;;;2510:70:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2665:15;:31;;-1:-1:-1;;2665:31:1;;;;;;;;;;;;;;;2775:75;;2814:25;;;-1:-1:-1;;;;;2814:25:1;;;;;;;;;;;;;;;2775:75;2931:6;;2910:38;;;-1:-1:-1;;;;;2931:6:1;;;2910:38;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3008:6:1;:17;;-1:-1:-1;;3008:17:1;-1:-1:-1;;;;;3008:17:1;;;;;;;;;;2231:801::o;4050:114:0:-;-1:-1:-1;;;;;4134:23:0;4111:4;4134:23;;;:13;:23;;;;;;;;;4050:114::o;3432:107::-;2226:19;2234:10;2226:7;:19::i;:::-;2218:54;;;;;;;-1:-1:-1;;;;;2218:54:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;3505:27;3523:8;3505:17;:27::i;4091:107:1:-;4150:4;4185:6;-1:-1:-1;;;;;4185:6:1;;;4173:18;;;;4091:107::o;4791:236:0:-;-1:-1:-1;;;;;4857:18:0;;;;;;:8;:18;;;;;;;;4849:63;;;;;;;-1:-1:-1;;;;;4849:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4922:18:0;;4943:5;4922:18;;;:8;:18;;;;;;;;;:26;;-1:-1:-1;;4922:26:0;;;4958:11;:13;;-1:-1:-1;;4958:13:0;;;4986:34;;4999:10;4986:34;;;;;;;;;;;;;;;;;;;;;4791:236;:::o;4232:482::-;-1:-1:-1;;;;;4296:18:0;;;;;;:8;:18;;;;;;;;4295:19;4287:68;;;;;-1:-1:-1;;;;;4287:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4374:23:0;;;;;;:13;:23;;;;;;;;4373:24;4365:77;;;;;-1:-1:-1;;;;;4365:77:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4461:18;4470:8;4461;:18::i;:::-;4460:19;4452:69;;;;;-1:-1:-1;;;;;4452:69:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4539:22:0;;;;4531:71;;;;;-1:-1:-1;;;;;4531:71:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4612:18:0;;;;;;4633:4;4612:18;;;;;;;;;:25;;-1:-1:-1;;4612:25:0;;;;;4647:11;:13;;;;;;;;4675:32;;4686:10;4675:32;;;;;;;;;;;;;;;;;;;;;4232:482;:::o;5100:502::-;-1:-1:-1;;;;;5169:18:0;;;;;;:8;:18;;;;;;;;5168:19;5160:68;;;;;-1:-1:-1;;;;;5160:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5247:23:0;;;;;;:13;:23;;;;;;;;5246:24;5238:77;;;;;-1:-1:-1;;;;;5238:77:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5334:18;5343:8;5334;:18::i;:::-;5333:19;5325:69;;;;;-1:-1:-1;;;;;5325:69:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5412:22:0;;;;5404:71;;;;;-1:-1:-1;;;;;5404:71:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5485:23:0;;;;;;:13;:23;;;;;;;;;:30;;-1:-1:-1;;5485:30:0;5511:4;5485:30;;;;;;5525:16;:18;;;;;;;5558:37;;5574:10;5558:37;;;;;;;;;;;;;;;;;;;;;5100:502;:::o;5684:265::-;-1:-1:-1;;;;;5755:23:0;;;;;;:13;:23;;;;;;;;5747:72;;;;;;;-1:-1:-1;;;;;5747:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5829:23:0;;5855:5;5829:23;;;:13;:23;;;;;;;;;:31;;-1:-1:-1;;5829:31:0;;;5870:16;:18;;-1:-1:-1;;5870:18:0;;;5903:39;;5921:10;5903:39;;;;;;;;;;;;;;;;;;;;;5684:265;:::o"},"internals/controller.sol:IController":{"bin":"","bin-runtime":"","srcmap":"","srcmap-runtime":""},"internals/ownable.sol:Ownable":{"bin":"","bin-runtime":"","srcmap":"","srcmap-runtime":""}},"sourceList":["internals/controller.sol","internals/ownable.sol"],"sources":{"internals/controller.sol":{"AST":{"attributes":{"absolutePath":"internals/controller.sol","exportedSymbols":{"Controller":[339],"IController":[10]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".25"]},"id":1,"name":"PragmaDirective","src":"770:24:0"},{"attributes":{"SourceUnit":497,"absolutePath":"internals/ownable.sol","file":"./ownable.sol","scope":340,"symbolAliases":[null],"unitAlias":""},"id":2,"name":"ImportDirective","src":"796:23:0"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"interface","documentation":"@title The IController interface provides access to the isController check.","fullyImplemented":false,"linearizedBaseContracts":[10],"name":"IController","scope":340},"children":[{"attributes":{"body":null,"constant":true,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"isController","payable":false,"scope":10,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"","scope":9,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3,"name":"ElementaryTypeName","src":"951:7:0"}],"id":4,"name":"VariableDeclaration","src":"951:7:0"}],"id":5,"name":"ParameterList","src":"950:9:0"},{"children":[{"attributes":{"constant":false,"name":"","scope":9,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":6,"name":"ElementaryTypeName","src":"983:4:0"}],"id":7,"name":"VariableDeclaration","src":"983:4:0"}],"id":8,"name":"ParameterList","src":"982:6:0"}],"id":9,"name":"FunctionDefinition","src":"929:60:0"}],"id":10,"name":"ContractDefinition","src":"901:90:0"},{"attributes":{"contractDependencies":[10,496],"contractKind":"contract","documentation":"@title Controller stores a list of controller addresses that can be used for authentication in other contracts.\n @notice The Controller implements a hierarchy of concepts, Owner, Admin, and the Controllers.\n @dev Owner can change the Admins\n @dev Admins and can the Controllers\n @dev Controllers are used by the application.","fullyImplemented":true,"linearizedBaseContracts":[339,496,10],"name":"Controller","scope":340},"children":[{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"IController","referencedDeclaration":10,"type":"contract IController"},"id":11,"name":"UserDefinedTypeName","src":"1358:11:0"}],"id":12,"name":"InheritanceSpecifier","src":"1358:11:0"},{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"Ownable","referencedDeclaration":496,"type":"contract Ownable"},"id":13,"name":"UserDefinedTypeName","src":"1371:7:0"}],"id":14,"name":"InheritanceSpecifier","src":"1371:7:0"},{"attributes":{"anonymous":false,"documentation":null,"name":"AddedController"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_sender","scope":20,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":15,"name":"ElementaryTypeName","src":"1408:7:0"}],"id":16,"name":"VariableDeclaration","src":"1408:15:0"},{"attributes":{"constant":false,"indexed":false,"name":"_controller","scope":20,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":17,"name":"ElementaryTypeName","src":"1425:7:0"}],"id":18,"name":"VariableDeclaration","src":"1425:19:0"}],"id":19,"name":"ParameterList","src":"1407:38:0"}],"id":20,"name":"EventDefinition","src":"1386:60:0"},{"attributes":{"anonymous":false,"documentation":null,"name":"RemovedController"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_sender","scope":26,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":21,"name":"ElementaryTypeName","src":"1475:7:0"}],"id":22,"name":"VariableDeclaration","src":"1475:15:0"},{"attributes":{"constant":false,"indexed":false,"name":"_controller","scope":26,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":23,"name":"ElementaryTypeName","src":"1492:7:0"}],"id":24,"name":"VariableDeclaration","src":"1492:19:0"}],"id":25,"name":"ParameterList","src":"1474:38:0"}],"id":26,"name":"EventDefinition","src":"1451:62:0"},{"attributes":{"anonymous":false,"documentation":null,"name":"AddedAdmin"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_sender","scope":32,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":27,"name":"ElementaryTypeName","src":"1536:7:0"}],"id":28,"name":"VariableDeclaration","src":"1536:15:0"},{"attributes":{"constant":false,"indexed":false,"name":"_admin","scope":32,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":29,"name":"ElementaryTypeName","src":"1553:7:0"}],"id":30,"name":"VariableDeclaration","src":"1553:14:0"}],"id":31,"name":"ParameterList","src":"1535:33:0"}],"id":32,"name":"EventDefinition","src":"1519:50:0"},{"attributes":{"anonymous":false,"documentation":null,"name":"RemovedAdmin"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_sender","scope":38,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":33,"name":"ElementaryTypeName","src":"1593:7:0"}],"id":34,"name":"VariableDeclaration","src":"1593:15:0"},{"attributes":{"constant":false,"indexed":false,"name":"_admin","scope":38,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":35,"name":"ElementaryTypeName","src":"1610:7:0"}],"id":36,"name":"VariableDeclaration","src":"1610:14:0"}],"id":37,"name":"ParameterList","src":"1592:33:0"}],"id":38,"name":"EventDefinition","src":"1574:52:0"},{"attributes":{"constant":false,"name":"_isAdmin","scope":339,"stateVariable":true,"storageLocation":"default","type":"mapping(address => bool)","value":null,"visibility":"private"},"children":[{"attributes":{"type":"mapping(address => bool)"},"children":[{"attributes":{"name":"address","type":"address"},"id":39,"name":"ElementaryTypeName","src":"1641:7:0"},{"attributes":{"name":"bool","type":"bool"},"id":40,"name":"ElementaryTypeName","src":"1652:4:0"}],"id":41,"name":"Mapping","src":"1632:25:0"}],"id":42,"name":"VariableDeclaration","src":"1632:42:0"},{"attributes":{"constant":false,"name":"_adminCount","scope":339,"stateVariable":true,"storageLocation":"default","type":"uint256","value":null,"visibility":"private"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":43,"name":"ElementaryTypeName","src":"1680:4:0"}],"id":44,"name":"VariableDeclaration","src":"1680:24:0"},{"attributes":{"constant":false,"name":"_isController","scope":339,"stateVariable":true,"storageLocation":"default","type":"mapping(address => bool)","value":null,"visibility":"private"},"children":[{"attributes":{"type":"mapping(address => bool)"},"children":[{"attributes":{"name":"address","type":"address"},"id":45,"name":"ElementaryTypeName","src":"1720:7:0"},{"attributes":{"name":"bool","type":"bool"},"id":46,"name":"ElementaryTypeName","src":"1731:4:0"}],"id":47,"name":"Mapping","src":"1711:25:0"}],"id":48,"name":"VariableDeclaration","src":"1711:47:0"},{"attributes":{"constant":false,"name":"_controllerCount","scope":339,"stateVariable":true,"storageLocation":"default","type":"uint256","value":null,"visibility":"private"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":49,"name":"ElementaryTypeName","src":"1764:4:0"}],"id":50,"name":"VariableDeclaration","src":"1764:29:0"},{"attributes":{"constant":false,"documentation":"@notice Constructor initializes the owner with the provided address.\n @param _ownerAddress_ address of the owner.\n @param _transferable_ indicates whether the contract ownership can be transferred.","implemented":true,"isConstructor":true,"name":"","payable":false,"scope":339,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"_ownerAddress_","scope":62,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":51,"name":"ElementaryTypeName","src":"2032:7:0"}],"id":52,"name":"VariableDeclaration","src":"2032:22:0"},{"attributes":{"constant":false,"name":"_transferable_","scope":62,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":53,"name":"ElementaryTypeName","src":"2056:4:0"}],"id":54,"name":"VariableDeclaration","src":"2056:19:0"}],"id":55,"name":"ParameterList","src":"2031:45:0"},{"attributes":{"parameters":[null]},"children":[],"id":60,"name":"ParameterList","src":"2124:0:0"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":496,"type":"type(contract Ownable)","value":"Ownable"},"id":56,"name":"Identifier","src":"2077:7:0"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":52,"type":"address","value":"_ownerAddress_"},"id":57,"name":"Identifier","src":"2085:14:0"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":54,"type":"bool","value":"_transferable_"},"id":58,"name":"Identifier","src":"2101:14:0"}],"id":59,"name":"ModifierInvocation","src":"2077:39:0"},{"attributes":{"statements":[null]},"children":[],"id":61,"name":"Block","src":"2124:3:0"}],"id":62,"name":"FunctionDefinition","src":"2020:107:0"},{"attributes":{"documentation":"@notice Checks if message sender is an admin.","name":"onlyAdmin","visibility":"internal"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":63,"name":"ParameterList","src":"2205:2:0"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_156cbb05733026f4aa0b363c6a3be5f21b7ab8f248a865cc639a4d928ddeabb8","typeString":"literal_string \"sender is not an admin\""}],"overloadedDeclarations":[514,515],"referencedDeclaration":515,"type":"function (bool,string memory) pure","value":"require"},"id":64,"name":"Identifier","src":"2218:7:0"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":162,"type":"function (address) view returns (bool)","value":"isAdmin"},"id":65,"name":"Identifier","src":"2226:7:0"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":511,"type":"msg","value":"msg"},"id":66,"name":"Identifier","src":"2234:3:0"}],"id":67,"name":"MemberAccess","src":"2234:10:0"}],"id":68,"name":"FunctionCall","src":"2226:19:0"},{"attributes":{"argumentTypes":null,"hexvalue":"73656e646572206973206e6f7420616e2061646d696e","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"sender is not an admin\"","value":"sender is not an admin"},"id":69,"name":"Literal","src":"2247:24:0"}],"id":70,"name":"FunctionCall","src":"2218:54:0"}],"id":71,"name":"ExpressionStatement","src":"2218:54:0"},{"id":72,"name":"PlaceholderStatement","src":"2282:1:0"}],"id":73,"name":"Block","src":"2208:82:0"}],"id":74,"name":"ModifierDefinition","src":"2187:103:0"},{"attributes":{"documentation":"@notice Checks if message sender is a controller.","name":"onlyController","visibility":"internal"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":75,"name":"ParameterList","src":"2377:2:0"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_918bc5a096178f6e8c423f958a6008c4b24fd25b7a3ca0123b85463c61a2e566","typeString":"literal_string \"sender is not a controller\""}],"overloadedDeclarations":[514,515],"referencedDeclaration":515,"type":"function (bool,string memory) pure","value":"require"},"id":76,"name":"Identifier","src":"2390:7:0"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":174,"type":"function (address) view returns (bool)","value":"isController"},"id":77,"name":"Identifier","src":"2398:12:0"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":511,"type":"msg","value":"msg"},"id":78,"name":"Identifier","src":"2411:3:0"}],"id":79,"name":"MemberAccess","src":"2411:10:0"}],"id":80,"name":"FunctionCall","src":"2398:24:0"},{"attributes":{"argumentTypes":null,"hexvalue":"73656e646572206973206e6f74206120636f6e74726f6c6c6572","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"sender is not a controller\"","value":"sender is not a controller"},"id":81,"name":"Literal","src":"2424:28:0"}],"id":82,"name":"FunctionCall","src":"2390:63:0"}],"id":83,"name":"ExpressionStatement","src":"2390:63:0"},{"id":84,"name":"PlaceholderStatement","src":"2463:1:0"}],"id":85,"name":"Block","src":"2380:91:0"}],"id":86,"name":"ModifierDefinition","src":"2354:117:0"},{"attributes":{"constant":false,"documentation":"@notice Add a new admin to the list of admins.\n @param _account address to add to the list of admins.","implemented":true,"isConstructor":false,"name":"addAdmin","payable":false,"scope":339,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":98,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":87,"name":"ElementaryTypeName","src":"2612:7:0"}],"id":88,"name":"VariableDeclaration","src":"2612:16:0"}],"id":89,"name":"ParameterList","src":"2611:18:0"},{"attributes":{"parameters":[null]},"children":[],"id":92,"name":"ParameterList","src":"2649:0:0"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":398,"type":"modifier ()","value":"onlyOwner"},"id":90,"name":"Identifier","src":"2639:9:0"}],"id":91,"name":"ModifierInvocation","src":"2639:9:0"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":228,"type":"function (address)","value":"_addAdmin"},"id":93,"name":"Identifier","src":"2659:9:0"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":88,"type":"address","value":"_account"},"id":94,"name":"Identifier","src":"2669:8:0"}],"id":95,"name":"FunctionCall","src":"2659:19:0"}],"id":96,"name":"ExpressionStatement","src":"2659:19:0"}],"id":97,"name":"Block","src":"2649:36:0"}],"id":98,"name":"FunctionDefinition","src":"2594:91:0"},{"attributes":{"constant":false,"documentation":"@notice Remove a admin from the list of admins.\n @param _account address to remove from the list of admins.","implemented":true,"isConstructor":false,"name":"removeAdmin","payable":false,"scope":339,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":110,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":99,"name":"ElementaryTypeName","src":"2835:7:0"}],"id":100,"name":"VariableDeclaration","src":"2835:16:0"}],"id":101,"name":"ParameterList","src":"2834:18:0"},{"attributes":{"parameters":[null]},"children":[],"id":104,"name":"ParameterList","src":"2872:0:0"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":398,"type":"modifier ()","value":"onlyOwner"},"id":102,"name":"Identifier","src":"2862:9:0"}],"id":103,"name":"ModifierInvocation","src":"2862:9:0"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":256,"type":"function (address)","value":"_removeAdmin"},"id":105,"name":"Identifier","src":"2882:12:0"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":100,"type":"address","value":"_account"},"id":106,"name":"Identifier","src":"2895:8:0"}],"id":107,"name":"FunctionCall","src":"2882:22:0"}],"id":108,"name":"ExpressionStatement","src":"2882:22:0"}],"id":109,"name":"Block","src":"2872:39:0"}],"id":110,"name":"FunctionDefinition","src":"2814:97:0"},{"attributes":{"constant":true,"documentation":"@return the current number of admins.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"adminCount","payable":false,"scope":339,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":111,"name":"ParameterList","src":"2982:2:0"},{"children":[{"attributes":{"constant":false,"name":"","scope":118,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":112,"name":"ElementaryTypeName","src":"3008:4:0"}],"id":113,"name":"VariableDeclaration","src":"3008:4:0"}],"id":114,"name":"ParameterList","src":"3007:6:0"},{"children":[{"attributes":{"functionReturnParameters":114},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":44,"type":"uint256","value":"_adminCount"},"id":115,"name":"Identifier","src":"3031:11:0"}],"id":116,"name":"Return","src":"3024:18:0"}],"id":117,"name":"Block","src":"3014:35:0"}],"id":118,"name":"FunctionDefinition","src":"2963:86:0"},{"attributes":{"constant":false,"documentation":"@notice Add a new controller to the list of controllers.\n @param _account address to add to the list of controllers.","implemented":true,"isConstructor":false,"name":"addController","payable":false,"scope":339,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":130,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":119,"name":"ElementaryTypeName","src":"3210:7:0"}],"id":120,"name":"VariableDeclaration","src":"3210:16:0"}],"id":121,"name":"ParameterList","src":"3209:18:0"},{"attributes":{"parameters":[null]},"children":[],"id":124,"name":"ParameterList","src":"3247:0:0"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":74,"type":"modifier ()","value":"onlyAdmin"},"id":122,"name":"Identifier","src":"3237:9:0"}],"id":123,"name":"ModifierInvocation","src":"3237:9:0"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":310,"type":"function (address)","value":"_addController"},"id":125,"name":"Identifier","src":"3257:14:0"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":120,"type":"address","value":"_account"},"id":126,"name":"Identifier","src":"3272:8:0"}],"id":127,"name":"FunctionCall","src":"3257:24:0"}],"id":128,"name":"ExpressionStatement","src":"3257:24:0"}],"id":129,"name":"Block","src":"3247:41:0"}],"id":130,"name":"FunctionDefinition","src":"3187:101:0"},{"attributes":{"constant":false,"documentation":"@notice Remove a controller from the list of controllers.\n @param _account address to remove from the list of controllers.","implemented":true,"isConstructor":false,"name":"removeController","payable":false,"scope":339,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":142,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":131,"name":"ElementaryTypeName","src":"3458:7:0"}],"id":132,"name":"VariableDeclaration","src":"3458:16:0"}],"id":133,"name":"ParameterList","src":"3457:18:0"},{"attributes":{"parameters":[null]},"children":[],"id":136,"name":"ParameterList","src":"3495:0:0"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":74,"type":"modifier ()","value":"onlyAdmin"},"id":134,"name":"Identifier","src":"3485:9:0"}],"id":135,"name":"ModifierInvocation","src":"3485:9:0"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":338,"type":"function (address)","value":"_removeController"},"id":137,"name":"Identifier","src":"3505:17:0"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":132,"type":"address","value":"_account"},"id":138,"name":"Identifier","src":"3523:8:0"}],"id":139,"name":"FunctionCall","src":"3505:27:0"}],"id":140,"name":"ExpressionStatement","src":"3505:27:0"}],"id":141,"name":"Block","src":"3495:44:0"}],"id":142,"name":"FunctionDefinition","src":"3432:107:0"},{"attributes":{"constant":true,"documentation":"@notice count the Controllers\n @return the current number of controllers.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"controllerCount","payable":false,"scope":339,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":143,"name":"ParameterList","src":"3658:2:0"},{"children":[{"attributes":{"constant":false,"name":"","scope":150,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":144,"name":"ElementaryTypeName","src":"3684:4:0"}],"id":145,"name":"VariableDeclaration","src":"3684:4:0"}],"id":146,"name":"ParameterList","src":"3683:6:0"},{"children":[{"attributes":{"functionReturnParameters":146},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":50,"type":"uint256","value":"_controllerCount"},"id":147,"name":"Identifier","src":"3707:16:0"}],"id":148,"name":"Return","src":"3700:23:0"}],"id":149,"name":"Block","src":"3690:40:0"}],"id":150,"name":"FunctionDefinition","src":"3634:96:0"},{"attributes":{"constant":true,"documentation":"@notice is an address an Admin?\n @return true if the provided account is an admin.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"isAdmin","payable":false,"scope":339,"stateMutability":"view","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":162,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":151,"name":"ElementaryTypeName","src":"3851:7:0"}],"id":152,"name":"VariableDeclaration","src":"3851:16:0"}],"id":153,"name":"ParameterList","src":"3850:18:0"},{"children":[{"attributes":{"constant":false,"name":"","scope":162,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":154,"name":"ElementaryTypeName","src":"3890:4:0"}],"id":155,"name":"VariableDeclaration","src":"3890:4:0"}],"id":156,"name":"ParameterList","src":"3889:6:0"},{"children":[{"attributes":{"functionReturnParameters":156},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":42,"type":"mapping(address => bool)","value":"_isAdmin"},"id":157,"name":"Identifier","src":"3913:8:0"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":152,"type":"address","value":"_account"},"id":158,"name":"Identifier","src":"3922:8:0"}],"id":159,"name":"IndexAccess","src":"3913:18:0"}],"id":160,"name":"Return","src":"3906:25:0"}],"id":161,"name":"Block","src":"3896:42:0"}],"id":162,"name":"FunctionDefinition","src":"3834:104:0"},{"attributes":{"constant":true,"documentation":"@notice is an address a Controller?\n @return true if the provided account is a controller.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"isController","payable":false,"scope":339,"stateMutability":"view","superFunction":9,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":174,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":163,"name":"ElementaryTypeName","src":"4072:7:0"}],"id":164,"name":"VariableDeclaration","src":"4072:16:0"}],"id":165,"name":"ParameterList","src":"4071:18:0"},{"children":[{"attributes":{"constant":false,"name":"","scope":174,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":166,"name":"ElementaryTypeName","src":"4111:4:0"}],"id":167,"name":"VariableDeclaration","src":"4111:4:0"}],"id":168,"name":"ParameterList","src":"4110:6:0"},{"children":[{"attributes":{"functionReturnParameters":168},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":48,"type":"mapping(address => bool)","value":"_isController"},"id":169,"name":"Identifier","src":"4134:13:0"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":164,"type":"address","value":"_account"},"id":170,"name":"Identifier","src":"4148:8:0"}],"id":171,"name":"IndexAccess","src":"4134:23:0"}],"id":172,"name":"Return","src":"4127:30:0"}],"id":173,"name":"Block","src":"4117:47:0"}],"id":174,"name":"FunctionDefinition","src":"4050:114:0"},{"attributes":{"constant":false,"documentation":"@notice Internal-only function that adds a new admin.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_addAdmin","payable":false,"scope":339,"stateMutability":"nonpayable","superFunction":null,"visibility":"private"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":228,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":175,"name":"ElementaryTypeName","src":"4251:7:0"}],"id":176,"name":"VariableDeclaration","src":"4251:16:0"}],"id":177,"name":"ParameterList","src":"4250:18:0"},{"attributes":{"parameters":[null]},"children":[],"id":178,"name":"ParameterList","src":"4277:0:0"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_491ef411eef1615ecf908753bd22ae846aac933d79b0327335a18e3988db6215","typeString":"literal_string \"provided account is already an admin\""}],"overloadedDeclarations":[514,515],"referencedDeclaration":515,"type":"function (bool,string memory) pure","value":"require"},"id":179,"name":"Identifier","src":"4287:7:0"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":42,"type":"mapping(address => bool)","value":"_isAdmin"},"id":180,"name":"Identifier","src":"4296:8:0"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":176,"type":"address","value":"_account"},"id":181,"name":"Identifier","src":"4305:8:0"}],"id":182,"name":"IndexAccess","src":"4296:18:0"}],"id":183,"name":"UnaryOperation","src":"4295:19:0"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e7420697320616c726561647920616e2061646d696e","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is already an admin\"","value":"provided account is already an admin"},"id":184,"name":"Literal","src":"4316:38:0"}],"id":185,"name":"FunctionCall","src":"4287:68:0"}],"id":186,"name":"ExpressionStatement","src":"4287:68:0"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ea5e43d1c86e3916e6efb6c5ad4a915069293195e26cfb0847e731b480c61b69","typeString":"literal_string \"provided account is already a controller\""}],"overloadedDeclarations":[514,515],"referencedDeclaration":515,"type":"function (bool,string memory) pure","value":"require"},"id":187,"name":"Identifier","src":"4365:7:0"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":48,"type":"mapping(address => bool)","value":"_isController"},"id":188,"name":"Identifier","src":"4374:13:0"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":176,"type":"address","value":"_account"},"id":189,"name":"Identifier","src":"4388:8:0"}],"id":190,"name":"IndexAccess","src":"4374:23:0"}],"id":191,"name":"UnaryOperation","src":"4373:24:0"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e7420697320616c7265616479206120636f6e74726f6c6c6572","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is already a controller\"","value":"provided account is already a controller"},"id":192,"name":"Literal","src":"4399:42:0"}],"id":193,"name":"FunctionCall","src":"4365:77:0"}],"id":194,"name":"ExpressionStatement","src":"4365:77:0"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_28b510b314348cd3eee423698115cd76923e2c39fff2abeefc9606aa1cd4c741","typeString":"literal_string \"provided account is already the owner\""}],"overloadedDeclarations":[514,515],"referencedDeclaration":515,"type":"function (bool,string memory) pure","value":"require"},"id":195,"name":"Identifier","src":"4452:7:0"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":495,"type":"function (address) view returns (bool)","value":"_isOwner"},"id":196,"name":"Identifier","src":"4461:8:0"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":176,"type":"address","value":"_account"},"id":197,"name":"Identifier","src":"4470:8:0"}],"id":198,"name":"FunctionCall","src":"4461:18:0"}],"id":199,"name":"UnaryOperation","src":"4460:19:0"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e7420697320616c726561647920746865206f776e6572","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is already the owner\"","value":"provided account is already the owner"},"id":200,"name":"Literal","src":"4481:39:0"}],"id":201,"name":"FunctionCall","src":"4452:69:0"}],"id":202,"name":"ExpressionStatement","src":"4452:69:0"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_da72d12cc1dab77bb87826430977e9a5d381ba54a70ad14cb2761e202f01ff3b","typeString":"literal_string \"provided account is the zero address\""}],"overloadedDeclarations":[514,515],"referencedDeclaration":515,"type":"function (bool,string memory) pure","value":"require"},"id":203,"name":"Identifier","src":"4531:7:0"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":176,"type":"address","value":"_account"},"id":204,"name":"Identifier","src":"4539:8:0"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":205,"name":"ElementaryTypeNameExpression","src":"4551:7:0"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":206,"name":"Literal","src":"4559:1:0"}],"id":207,"name":"FunctionCall","src":"4551:10:0"}],"id":208,"name":"BinaryOperation","src":"4539:22:0"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e7420697320746865207a65726f2061646472657373","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is the zero address\"","value":"provided account is the zero address"},"id":209,"name":"Literal","src":"4563:38:0"}],"id":210,"name":"FunctionCall","src":"4531:71:0"}],"id":211,"name":"ExpressionStatement","src":"4531:71:0"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":42,"type":"mapping(address => bool)","value":"_isAdmin"},"id":212,"name":"Identifier","src":"4612:8:0"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":176,"type":"address","value":"_account"},"id":213,"name":"Identifier","src":"4621:8:0"}],"id":214,"name":"IndexAccess","src":"4612:18:0"},{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":215,"name":"Literal","src":"4633:4:0"}],"id":216,"name":"Assignment","src":"4612:25:0"}],"id":217,"name":"ExpressionStatement","src":"4612:25:0"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":44,"type":"uint256","value":"_adminCount"},"id":218,"name":"Identifier","src":"4647:11:0"}],"id":219,"name":"UnaryOperation","src":"4647:13:0"}],"id":220,"name":"ExpressionStatement","src":"4647:13:0"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":32,"type":"function (address,address)","value":"AddedAdmin"},"id":221,"name":"Identifier","src":"4675:10:0"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":511,"type":"msg","value":"msg"},"id":222,"name":"Identifier","src":"4686:3:0"}],"id":223,"name":"MemberAccess","src":"4686:10:0"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":176,"type":"address","value":"_account"},"id":224,"name":"Identifier","src":"4698:8:0"}],"id":225,"name":"FunctionCall","src":"4675:32:0"}],"id":226,"name":"EmitStatement","src":"4670:37:0"}],"id":227,"name":"Block","src":"4277:437:0"}],"id":228,"name":"FunctionDefinition","src":"4232:482:0"},{"attributes":{"constant":false,"documentation":"@notice Internal-only function that removes an existing admin.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_removeAdmin","payable":false,"scope":339,"stateMutability":"nonpayable","superFunction":null,"visibility":"private"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":256,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":229,"name":"ElementaryTypeName","src":"4813:7:0"}],"id":230,"name":"VariableDeclaration","src":"4813:16:0"}],"id":231,"name":"ParameterList","src":"4812:18:0"},{"attributes":{"parameters":[null]},"children":[],"id":232,"name":"ParameterList","src":"4839:0:0"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1c739c60677de73f71e20970ace8544e82a98bdcd16e21df5754e7a2756cbedc","typeString":"literal_string \"provided account is not an admin\""}],"overloadedDeclarations":[514,515],"referencedDeclaration":515,"type":"function (bool,string memory) pure","value":"require"},"id":233,"name":"Identifier","src":"4849:7:0"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":42,"type":"mapping(address => bool)","value":"_isAdmin"},"id":234,"name":"Identifier","src":"4857:8:0"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":230,"type":"address","value":"_account"},"id":235,"name":"Identifier","src":"4866:8:0"}],"id":236,"name":"IndexAccess","src":"4857:18:0"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e74206973206e6f7420616e2061646d696e","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is not an admin\"","value":"provided account is not an admin"},"id":237,"name":"Literal","src":"4877:34:0"}],"id":238,"name":"FunctionCall","src":"4849:63:0"}],"id":239,"name":"ExpressionStatement","src":"4849:63:0"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":42,"type":"mapping(address => bool)","value":"_isAdmin"},"id":240,"name":"Identifier","src":"4922:8:0"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":230,"type":"address","value":"_account"},"id":241,"name":"Identifier","src":"4931:8:0"}],"id":242,"name":"IndexAccess","src":"4922:18:0"},{"attributes":{"argumentTypes":null,"hexvalue":"66616c7365","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"false"},"id":243,"name":"Literal","src":"4943:5:0"}],"id":244,"name":"Assignment","src":"4922:26:0"}],"id":245,"name":"ExpressionStatement","src":"4922:26:0"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"--","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":44,"type":"uint256","value":"_adminCount"},"id":246,"name":"Identifier","src":"4958:11:0"}],"id":247,"name":"UnaryOperation","src":"4958:13:0"}],"id":248,"name":"ExpressionStatement","src":"4958:13:0"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":38,"type":"function (address,address)","value":"RemovedAdmin"},"id":249,"name":"Identifier","src":"4986:12:0"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":511,"type":"msg","value":"msg"},"id":250,"name":"Identifier","src":"4999:3:0"}],"id":251,"name":"MemberAccess","src":"4999:10:0"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":230,"type":"address","value":"_account"},"id":252,"name":"Identifier","src":"5011:8:0"}],"id":253,"name":"FunctionCall","src":"4986:34:0"}],"id":254,"name":"EmitStatement","src":"4981:39:0"}],"id":255,"name":"Block","src":"4839:188:0"}],"id":256,"name":"FunctionDefinition","src":"4791:236:0"},{"attributes":{"constant":false,"documentation":"@notice Internal-only function that adds a new controller.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_addController","payable":false,"scope":339,"stateMutability":"nonpayable","superFunction":null,"visibility":"private"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":310,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":257,"name":"ElementaryTypeName","src":"5124:7:0"}],"id":258,"name":"VariableDeclaration","src":"5124:16:0"}],"id":259,"name":"ParameterList","src":"5123:18:0"},{"attributes":{"parameters":[null]},"children":[],"id":260,"name":"ParameterList","src":"5150:0:0"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_491ef411eef1615ecf908753bd22ae846aac933d79b0327335a18e3988db6215","typeString":"literal_string \"provided account is already an admin\""}],"overloadedDeclarations":[514,515],"referencedDeclaration":515,"type":"function (bool,string memory) pure","value":"require"},"id":261,"name":"Identifier","src":"5160:7:0"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":42,"type":"mapping(address => bool)","value":"_isAdmin"},"id":262,"name":"Identifier","src":"5169:8:0"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":258,"type":"address","value":"_account"},"id":263,"name":"Identifier","src":"5178:8:0"}],"id":264,"name":"IndexAccess","src":"5169:18:0"}],"id":265,"name":"UnaryOperation","src":"5168:19:0"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e7420697320616c726561647920616e2061646d696e","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is already an admin\"","value":"provided account is already an admin"},"id":266,"name":"Literal","src":"5189:38:0"}],"id":267,"name":"FunctionCall","src":"5160:68:0"}],"id":268,"name":"ExpressionStatement","src":"5160:68:0"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ea5e43d1c86e3916e6efb6c5ad4a915069293195e26cfb0847e731b480c61b69","typeString":"literal_string \"provided account is already a controller\""}],"overloadedDeclarations":[514,515],"referencedDeclaration":515,"type":"function (bool,string memory) pure","value":"require"},"id":269,"name":"Identifier","src":"5238:7:0"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":48,"type":"mapping(address => bool)","value":"_isController"},"id":270,"name":"Identifier","src":"5247:13:0"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":258,"type":"address","value":"_account"},"id":271,"name":"Identifier","src":"5261:8:0"}],"id":272,"name":"IndexAccess","src":"5247:23:0"}],"id":273,"name":"UnaryOperation","src":"5246:24:0"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e7420697320616c7265616479206120636f6e74726f6c6c6572","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is already a controller\"","value":"provided account is already a controller"},"id":274,"name":"Literal","src":"5272:42:0"}],"id":275,"name":"FunctionCall","src":"5238:77:0"}],"id":276,"name":"ExpressionStatement","src":"5238:77:0"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_28b510b314348cd3eee423698115cd76923e2c39fff2abeefc9606aa1cd4c741","typeString":"literal_string \"provided account is already the owner\""}],"overloadedDeclarations":[514,515],"referencedDeclaration":515,"type":"function (bool,string memory) pure","value":"require"},"id":277,"name":"Identifier","src":"5325:7:0"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":495,"type":"function (address) view returns (bool)","value":"_isOwner"},"id":278,"name":"Identifier","src":"5334:8:0"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":258,"type":"address","value":"_account"},"id":279,"name":"Identifier","src":"5343:8:0"}],"id":280,"name":"FunctionCall","src":"5334:18:0"}],"id":281,"name":"UnaryOperation","src":"5333:19:0"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e7420697320616c726561647920746865206f776e6572","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is already the owner\"","value":"provided account is already the owner"},"id":282,"name":"Literal","src":"5354:39:0"}],"id":283,"name":"FunctionCall","src":"5325:69:0"}],"id":284,"name":"ExpressionStatement","src":"5325:69:0"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_da72d12cc1dab77bb87826430977e9a5d381ba54a70ad14cb2761e202f01ff3b","typeString":"literal_string \"provided account is the zero address\""}],"overloadedDeclarations":[514,515],"referencedDeclaration":515,"type":"function (bool,string memory) pure","value":"require"},"id":285,"name":"Identifier","src":"5404:7:0"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":258,"type":"address","value":"_account"},"id":286,"name":"Identifier","src":"5412:8:0"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":287,"name":"ElementaryTypeNameExpression","src":"5424:7:0"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":288,"name":"Literal","src":"5432:1:0"}],"id":289,"name":"FunctionCall","src":"5424:10:0"}],"id":290,"name":"BinaryOperation","src":"5412:22:0"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e7420697320746865207a65726f2061646472657373","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is the zero address\"","value":"provided account is the zero address"},"id":291,"name":"Literal","src":"5436:38:0"}],"id":292,"name":"FunctionCall","src":"5404:71:0"}],"id":293,"name":"ExpressionStatement","src":"5404:71:0"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":48,"type":"mapping(address => bool)","value":"_isController"},"id":294,"name":"Identifier","src":"5485:13:0"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":258,"type":"address","value":"_account"},"id":295,"name":"Identifier","src":"5499:8:0"}],"id":296,"name":"IndexAccess","src":"5485:23:0"},{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":297,"name":"Literal","src":"5511:4:0"}],"id":298,"name":"Assignment","src":"5485:30:0"}],"id":299,"name":"ExpressionStatement","src":"5485:30:0"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":50,"type":"uint256","value":"_controllerCount"},"id":300,"name":"Identifier","src":"5525:16:0"}],"id":301,"name":"UnaryOperation","src":"5525:18:0"}],"id":302,"name":"ExpressionStatement","src":"5525:18:0"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":20,"type":"function (address,address)","value":"AddedController"},"id":303,"name":"Identifier","src":"5558:15:0"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":511,"type":"msg","value":"msg"},"id":304,"name":"Identifier","src":"5574:3:0"}],"id":305,"name":"MemberAccess","src":"5574:10:0"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":258,"type":"address","value":"_account"},"id":306,"name":"Identifier","src":"5586:8:0"}],"id":307,"name":"FunctionCall","src":"5558:37:0"}],"id":308,"name":"EmitStatement","src":"5553:42:0"}],"id":309,"name":"Block","src":"5150:452:0"}],"id":310,"name":"FunctionDefinition","src":"5100:502:0"},{"attributes":{"constant":false,"documentation":"@notice Internal-only function that removes an existing controller.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_removeController","payable":false,"scope":339,"stateMutability":"nonpayable","superFunction":null,"visibility":"private"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":338,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":311,"name":"ElementaryTypeName","src":"5711:7:0"}],"id":312,"name":"VariableDeclaration","src":"5711:16:0"}],"id":313,"name":"ParameterList","src":"5710:18:0"},{"attributes":{"parameters":[null]},"children":[],"id":314,"name":"ParameterList","src":"5737:0:0"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_61b6700985eb6a295850095b1dc6d25862c09fd9ea7ce39c0e5f303dfe8ed582","typeString":"literal_string \"provided account is not a controller\""}],"overloadedDeclarations":[514,515],"referencedDeclaration":515,"type":"function (bool,string memory) pure","value":"require"},"id":315,"name":"Identifier","src":"5747:7:0"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":48,"type":"mapping(address => bool)","value":"_isController"},"id":316,"name":"Identifier","src":"5755:13:0"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":312,"type":"address","value":"_account"},"id":317,"name":"Identifier","src":"5769:8:0"}],"id":318,"name":"IndexAccess","src":"5755:23:0"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e74206973206e6f74206120636f6e74726f6c6c6572","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is not a controller\"","value":"provided account is not a controller"},"id":319,"name":"Literal","src":"5780:38:0"}],"id":320,"name":"FunctionCall","src":"5747:72:0"}],"id":321,"name":"ExpressionStatement","src":"5747:72:0"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":48,"type":"mapping(address => bool)","value":"_isController"},"id":322,"name":"Identifier","src":"5829:13:0"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":312,"type":"address","value":"_account"},"id":323,"name":"Identifier","src":"5843:8:0"}],"id":324,"name":"IndexAccess","src":"5829:23:0"},{"attributes":{"argumentTypes":null,"hexvalue":"66616c7365","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"false"},"id":325,"name":"Literal","src":"5855:5:0"}],"id":326,"name":"Assignment","src":"5829:31:0"}],"id":327,"name":"ExpressionStatement","src":"5829:31:0"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"--","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":50,"type":"uint256","value":"_controllerCount"},"id":328,"name":"Identifier","src":"5870:16:0"}],"id":329,"name":"UnaryOperation","src":"5870:18:0"}],"id":330,"name":"ExpressionStatement","src":"5870:18:0"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":26,"type":"function (address,address)","value":"RemovedController"},"id":331,"name":"Identifier","src":"5903:17:0"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":511,"type":"msg","value":"msg"},"id":332,"name":"Identifier","src":"5921:3:0"}],"id":333,"name":"MemberAccess","src":"5921:10:0"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":312,"type":"address","value":"_account"},"id":334,"name":"Identifier","src":"5933:8:0"}],"id":335,"name":"FunctionCall","src":"5903:39:0"}],"id":336,"name":"EmitStatement","src":"5898:44:0"}],"id":337,"name":"Block","src":"5737:212:0"}],"id":338,"name":"FunctionDefinition","src":"5684:265:0"}],"id":339,"name":"ContractDefinition","src":"1335:4616:0"}],"id":340,"name":"SourceUnit","src":"770:5182:0"}},"internals/ownable.sol":{"AST":{"attributes":{"absolutePath":"internals/ownable.sol","exportedSymbols":{"Ownable":[496]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".25"]},"id":341,"name":"PragmaDirective","src":"767:24:1"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"contract","documentation":"@title Ownable has an owner address and provides basic authorization control functions.\n This contract is modified version of the MIT OpenZepplin Ownable contract\n This contract allows for the transferOwnership operation to be made impossible\n https://github.com/OpenZeppelin/openzeppelin-solidity/blob/master/contracts/ownership/Ownable.sol","fullyImplemented":true,"linearizedBaseContracts":[496],"name":"Ownable","scope":497},"children":[{"attributes":{"anonymous":false,"documentation":null,"name":"TransferredOwnership"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_from","scope":347,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":342,"name":"ElementaryTypeName","src":"1199:7:1"}],"id":343,"name":"VariableDeclaration","src":"1199:13:1"},{"attributes":{"constant":false,"indexed":false,"name":"_to","scope":347,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":344,"name":"ElementaryTypeName","src":"1214:7:1"}],"id":345,"name":"VariableDeclaration","src":"1214:11:1"}],"id":346,"name":"ParameterList","src":"1198:28:1"}],"id":347,"name":"EventDefinition","src":"1172:55:1"},{"attributes":{"anonymous":false,"documentation":null,"name":"LockedOwnership"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_locked","scope":351,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":348,"name":"ElementaryTypeName","src":"1254:7:1"}],"id":349,"name":"VariableDeclaration","src":"1254:15:1"}],"id":350,"name":"ParameterList","src":"1253:17:1"}],"id":351,"name":"EventDefinition","src":"1232:39:1"},{"attributes":{"constant":false,"name":"_owner","scope":496,"stateVariable":true,"storageLocation":"default","type":"address","value":null,"visibility":"private"},"children":[{"attributes":{"name":"address","type":"address"},"id":352,"name":"ElementaryTypeName","src":"1277:7:1"}],"id":353,"name":"VariableDeclaration","src":"1277:22:1"},{"attributes":{"constant":false,"name":"_isTransferable","scope":496,"stateVariable":true,"storageLocation":"default","type":"bool","value":null,"visibility":"private"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":354,"name":"ElementaryTypeName","src":"1305:4:1"}],"id":355,"name":"VariableDeclaration","src":"1305:28:1"},{"attributes":{"constant":false,"documentation":"@notice Constructor sets the original owner of the contract and whether or not it is one time transferable.","implemented":true,"isConstructor":true,"modifiers":[null],"name":"","payable":false,"scope":496,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account_","scope":386,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":356,"name":"ElementaryTypeName","src":"1468:7:1"}],"id":357,"name":"VariableDeclaration","src":"1468:17:1"},{"attributes":{"constant":false,"name":"_transferable_","scope":386,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":358,"name":"ElementaryTypeName","src":"1487:4:1"}],"id":359,"name":"VariableDeclaration","src":"1487:19:1"}],"id":360,"name":"ParameterList","src":"1467:40:1"},{"attributes":{"parameters":[null]},"children":[],"id":361,"name":"ParameterList","src":"1517:0:1"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":353,"type":"address","value":"_owner"},"id":362,"name":"Identifier","src":"1527:6:1"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":357,"type":"address","value":"_account_"},"id":363,"name":"Identifier","src":"1536:9:1"}],"id":364,"name":"Assignment","src":"1527:18:1"}],"id":365,"name":"ExpressionStatement","src":"1527:18:1"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":355,"type":"bool","value":"_isTransferable"},"id":366,"name":"Identifier","src":"1555:15:1"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":359,"type":"bool","value":"_transferable_"},"id":367,"name":"Identifier","src":"1573:14:1"}],"id":368,"name":"Assignment","src":"1555:32:1"}],"id":369,"name":"ExpressionStatement","src":"1555:32:1"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":355,"type":"bool","value":"_isTransferable"},"id":370,"name":"Identifier","src":"1671:15:1"}],"id":371,"name":"UnaryOperation","src":"1670:16:1"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":351,"type":"function (address)","value":"LockedOwnership"},"id":372,"name":"Identifier","src":"1707:15:1"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":357,"type":"address","value":"_account_"},"id":373,"name":"Identifier","src":"1723:9:1"}],"id":374,"name":"FunctionCall","src":"1707:26:1"}],"id":375,"name":"EmitStatement","src":"1702:31:1"}],"id":376,"name":"Block","src":"1688:56:1"}],"id":377,"name":"IfStatement","src":"1666:78:1"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":347,"type":"function (address,address)","value":"TransferredOwnership"},"id":378,"name":"Identifier","src":"1758:20:1"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":379,"name":"ElementaryTypeNameExpression","src":"1779:7:1"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":380,"name":"Literal","src":"1787:1:1"}],"id":381,"name":"FunctionCall","src":"1779:10:1"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":357,"type":"address","value":"_account_"},"id":382,"name":"Identifier","src":"1791:9:1"}],"id":383,"name":"FunctionCall","src":"1758:43:1"}],"id":384,"name":"EmitStatement","src":"1753:48:1"}],"id":385,"name":"Block","src":"1517:291:1"}],"id":386,"name":"FunctionDefinition","src":"1456:352:1"},{"attributes":{"documentation":"@notice Reverts if called by any account other than the owner.","name":"onlyOwner","visibility":"internal"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":387,"name":"ParameterList","src":"1903:2:1"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_96d7cc6c06f3d4101b2a14e4ad2906b79dc824ab8a44b63e774a71d2b9c7abd2","typeString":"literal_string \"sender is not an owner\""}],"overloadedDeclarations":[514,515],"referencedDeclaration":515,"type":"function (bool,string memory) pure","value":"require"},"id":388,"name":"Identifier","src":"1916:7:1"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":495,"type":"function (address) view returns (bool)","value":"_isOwner"},"id":389,"name":"Identifier","src":"1924:8:1"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":511,"type":"msg","value":"msg"},"id":390,"name":"Identifier","src":"1933:3:1"}],"id":391,"name":"MemberAccess","src":"1933:10:1"}],"id":392,"name":"FunctionCall","src":"1924:20:1"},{"attributes":{"argumentTypes":null,"hexvalue":"73656e646572206973206e6f7420616e206f776e6572","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"sender is not an owner\"","value":"sender is not an owner"},"id":393,"name":"Literal","src":"1946:24:1"}],"id":394,"name":"FunctionCall","src":"1916:55:1"}],"id":395,"name":"ExpressionStatement","src":"1916:55:1"},{"id":396,"name":"PlaceholderStatement","src":"1981:1:1"}],"id":397,"name":"Block","src":"1906:83:1"}],"id":398,"name":"ModifierDefinition","src":"1885:104:1"},{"attributes":{"constant":false,"documentation":"@notice Allows the current owner to transfer control of the contract to a new address.\n @param _account address to transfer ownership to.\n @param _transferable indicates whether to keep the ownership transferable.","implemented":true,"isConstructor":false,"name":"transferOwnership","payable":false,"scope":496,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":443,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":399,"name":"ElementaryTypeName","src":"2258:7:1"}],"id":400,"name":"VariableDeclaration","src":"2258:16:1"},{"attributes":{"constant":false,"name":"_transferable","scope":443,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":401,"name":"ElementaryTypeName","src":"2276:4:1"}],"id":402,"name":"VariableDeclaration","src":"2276:18:1"}],"id":403,"name":"ParameterList","src":"2257:38:1"},{"attributes":{"parameters":[null]},"children":[],"id":406,"name":"ParameterList","src":"2315:0:1"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":398,"type":"modifier ()","value":"onlyOwner"},"id":404,"name":"Identifier","src":"2305:9:1"}],"id":405,"name":"ModifierInvocation","src":"2305:9:1"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b2967f1eb3e333ead270a5eb332284149554452f916a981f27e70894d40a893f","typeString":"literal_string \"ownership is not transferable\""}],"overloadedDeclarations":[514,515],"referencedDeclaration":515,"type":"function (bool,string memory) pure","value":"require"},"id":407,"name":"Identifier","src":"2380:7:1"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":355,"type":"bool","value":"_isTransferable"},"id":408,"name":"Identifier","src":"2388:15:1"},{"attributes":{"argumentTypes":null,"hexvalue":"6f776e657273686970206973206e6f74207472616e7366657261626c65","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"ownership is not transferable\"","value":"ownership is not transferable"},"id":409,"name":"Literal","src":"2405:31:1"}],"id":410,"name":"FunctionCall","src":"2380:57:1"}],"id":411,"name":"ExpressionStatement","src":"2380:57:1"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_be619f073d6b85c603c617050d1729f1cf3b31bf6ae5ae03f35765577d9bb6c8","typeString":"literal_string \"owner cannot be set to zero address\""}],"overloadedDeclarations":[514,515],"referencedDeclaration":515,"type":"function (bool,string memory) pure","value":"require"},"id":412,"name":"Identifier","src":"2510:7:1"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":400,"type":"address","value":"_account"},"id":413,"name":"Identifier","src":"2518:8:1"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":414,"name":"ElementaryTypeNameExpression","src":"2530:7:1"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":415,"name":"Literal","src":"2538:1:1"}],"id":416,"name":"FunctionCall","src":"2530:10:1"}],"id":417,"name":"BinaryOperation","src":"2518:22:1"},{"attributes":{"argumentTypes":null,"hexvalue":"6f776e65722063616e6e6f742062652073657420746f207a65726f2061646472657373","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"owner cannot be set to zero address\"","value":"owner cannot be set to zero address"},"id":418,"name":"Literal","src":"2542:37:1"}],"id":419,"name":"FunctionCall","src":"2510:70:1"}],"id":420,"name":"ExpressionStatement","src":"2510:70:1"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":355,"type":"bool","value":"_isTransferable"},"id":421,"name":"Identifier","src":"2665:15:1"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":402,"type":"bool","value":"_transferable"},"id":422,"name":"Identifier","src":"2683:13:1"}],"id":423,"name":"Assignment","src":"2665:31:1"}],"id":424,"name":"ExpressionStatement","src":"2665:31:1"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":402,"type":"bool","value":"_transferable"},"id":425,"name":"Identifier","src":"2780:13:1"}],"id":426,"name":"UnaryOperation","src":"2779:14:1"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":351,"type":"function (address)","value":"LockedOwnership"},"id":427,"name":"Identifier","src":"2814:15:1"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":400,"type":"address","value":"_account"},"id":428,"name":"Identifier","src":"2830:8:1"}],"id":429,"name":"FunctionCall","src":"2814:25:1"}],"id":430,"name":"EmitStatement","src":"2809:30:1"}],"id":431,"name":"Block","src":"2795:55:1"}],"id":432,"name":"IfStatement","src":"2775:75:1"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":347,"type":"function (address,address)","value":"TransferredOwnership"},"id":433,"name":"Identifier","src":"2910:20:1"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":353,"type":"address","value":"_owner"},"id":434,"name":"Identifier","src":"2931:6:1"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":400,"type":"address","value":"_account"},"id":435,"name":"Identifier","src":"2939:8:1"}],"id":436,"name":"FunctionCall","src":"2910:38:1"}],"id":437,"name":"EmitStatement","src":"2905:43:1"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":353,"type":"address","value":"_owner"},"id":438,"name":"Identifier","src":"3008:6:1"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":400,"type":"address","value":"_account"},"id":439,"name":"Identifier","src":"3017:8:1"}],"id":440,"name":"Assignment","src":"3008:17:1"}],"id":441,"name":"ExpressionStatement","src":"3008:17:1"}],"id":442,"name":"Block","src":"2315:717:1"}],"id":443,"name":"FunctionDefinition","src":"2231:801:1"},{"attributes":{"constant":true,"documentation":"@notice check if the ownership is transferable.\n @return true if the ownership is transferable.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"isTransferable","payable":false,"scope":496,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":444,"name":"ParameterList","src":"3172:2:1"},{"children":[{"attributes":{"constant":false,"name":"","scope":451,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":445,"name":"ElementaryTypeName","src":"3198:4:1"}],"id":446,"name":"VariableDeclaration","src":"3198:4:1"}],"id":447,"name":"ParameterList","src":"3197:6:1"},{"children":[{"attributes":{"functionReturnParameters":447},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":355,"type":"bool","value":"_isTransferable"},"id":448,"name":"Identifier","src":"3221:15:1"}],"id":449,"name":"Return","src":"3214:22:1"}],"id":450,"name":"Block","src":"3204:39:1"}],"id":451,"name":"FunctionDefinition","src":"3149:94:1"},{"attributes":{"constant":false,"documentation":"@notice Allows the current owner to relinquish control of the contract.\n @dev Renouncing to ownership will leave the contract without an owner and unusable.\n @dev It will not be possible to call the functions with the `onlyOwner` modifier anymore.","implemented":true,"isConstructor":false,"name":"renounceOwnership","payable":false,"scope":496,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":452,"name":"ParameterList","src":"3545:2:1"},{"attributes":{"parameters":[null]},"children":[],"id":455,"name":"ParameterList","src":"3567:0:1"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":398,"type":"modifier ()","value":"onlyOwner"},"id":453,"name":"Identifier","src":"3557:9:1"}],"id":454,"name":"ModifierInvocation","src":"3557:9:1"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b2967f1eb3e333ead270a5eb332284149554452f916a981f27e70894d40a893f","typeString":"literal_string \"ownership is not transferable\""}],"overloadedDeclarations":[514,515],"referencedDeclaration":515,"type":"function (bool,string memory) pure","value":"require"},"id":456,"name":"Identifier","src":"3632:7:1"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":355,"type":"bool","value":"_isTransferable"},"id":457,"name":"Identifier","src":"3640:15:1"},{"attributes":{"argumentTypes":null,"hexvalue":"6f776e657273686970206973206e6f74207472616e7366657261626c65","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"ownership is not transferable\"","value":"ownership is not transferable"},"id":458,"name":"Literal","src":"3657:31:1"}],"id":459,"name":"FunctionCall","src":"3632:57:1"}],"id":460,"name":"ExpressionStatement","src":"3632:57:1"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":353,"type":"address","value":"_owner"},"id":461,"name":"Identifier","src":"3743:6:1"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":462,"name":"ElementaryTypeNameExpression","src":"3752:7:1"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":463,"name":"Literal","src":"3760:1:1"}],"id":464,"name":"FunctionCall","src":"3752:10:1"}],"id":465,"name":"Assignment","src":"3743:19:1"}],"id":466,"name":"ExpressionStatement","src":"3743:19:1"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":347,"type":"function (address,address)","value":"TransferredOwnership"},"id":467,"name":"Identifier","src":"3778:20:1"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":353,"type":"address","value":"_owner"},"id":468,"name":"Identifier","src":"3799:6:1"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":469,"name":"ElementaryTypeNameExpression","src":"3807:7:1"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":470,"name":"Literal","src":"3815:1:1"}],"id":471,"name":"FunctionCall","src":"3807:10:1"}],"id":472,"name":"FunctionCall","src":"3778:40:1"}],"id":473,"name":"EmitStatement","src":"3773:45:1"}],"id":474,"name":"Block","src":"3567:258:1"}],"id":475,"name":"FunctionDefinition","src":"3519:306:1"},{"attributes":{"constant":true,"documentation":"@notice Find out owner address\n @return address of the owner.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"owner","payable":false,"scope":496,"stateMutability":"view","superFunction":null,"visibility":"public"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":476,"name":"ParameterList","src":"3922:2:1"},{"children":[{"attributes":{"constant":false,"name":"","scope":483,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":477,"name":"ElementaryTypeName","src":"3946:7:1"}],"id":478,"name":"VariableDeclaration","src":"3946:7:1"}],"id":479,"name":"ParameterList","src":"3945:9:1"},{"children":[{"attributes":{"functionReturnParameters":479},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":353,"type":"address","value":"_owner"},"id":480,"name":"Identifier","src":"3972:6:1"}],"id":481,"name":"Return","src":"3965:13:1"}],"id":482,"name":"Block","src":"3955:30:1"}],"id":483,"name":"FunctionDefinition","src":"3908:77:1"},{"attributes":{"constant":true,"documentation":"@notice Check if owner address\n @return true if sender is the owner of the contract.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_isOwner","payable":false,"scope":496,"stateMutability":"view","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_address","scope":495,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":484,"name":"ElementaryTypeName","src":"4109:7:1"}],"id":485,"name":"VariableDeclaration","src":"4109:16:1"}],"id":486,"name":"ParameterList","src":"4108:18:1"},{"children":[{"attributes":{"constant":false,"name":"","scope":495,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":487,"name":"ElementaryTypeName","src":"4150:4:1"}],"id":488,"name":"VariableDeclaration","src":"4150:4:1"}],"id":489,"name":"ParameterList","src":"4149:6:1"},{"children":[{"attributes":{"functionReturnParameters":489},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":485,"type":"address","value":"_address"},"id":490,"name":"Identifier","src":"4173:8:1"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":353,"type":"address","value":"_owner"},"id":491,"name":"Identifier","src":"4185:6:1"}],"id":492,"name":"BinaryOperation","src":"4173:18:1"}],"id":493,"name":"Return","src":"4166:25:1"}],"id":494,"name":"Block","src":"4156:42:1"}],"id":495,"name":"FunctionDefinition","src":"4091:107:1"}],"id":496,"name":"ContractDefinition","src":"1149:3051:1"}],"id":497,"name":"SourceUnit","src":"767:3434:1"}}},"version":"0.4.25+commit.59dbf8f1.Linux.g++"} \ No newline at end of file +{"contracts":{"externals/ERC20.sol:ERC20":{"bin":"","bin-runtime":"","srcmap":"","srcmap-runtime":""},"internals/claimable.sol:Claimable":{"bin":"6080604052348015600f57600080fd5b50603580601d6000396000f3006080604052600080fd00a165627a7a72305820395b628221b28dc04b0498f55415adf15a37b484bd593b1cfd29b4eab19dc5300029","bin-runtime":"6080604052600080fd00a165627a7a72305820395b628221b28dc04b0498f55415adf15a37b484bd593b1cfd29b4eab19dc5300029","srcmap":"917:797:1:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;917:797:1;;;;;;;","srcmap-runtime":"917:797:1:-;;;;;"},"internals/controller.sol:Controller":{"bin":"608060405234801561001057600080fd5b5060405160408061128b83398101604052805160209091015160008054600160a060020a031916600160a060020a0384161760a060020a60ff02191674010000000000000000000000000000000000000000831515810291909117918290558391839160ff91041615156100bb5760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b6040805160008152600160a060020a038416602082015281517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea5929181900390910190a150505050611179806101126000396000f3006080604052600436106100c45763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166315b9a8b881146100c95780631785f53c146100f05780632121dc751461011357806324d7806c1461013c5780632b7832b31461015d5780637048027514610172578063715018a6146101935780638da5cb5b146101a8578063996cba68146101d9578063a7fc7a0714610203578063b242e53414610224578063b429afeb1461024a578063f6a74ed71461026b575b600080fd5b3480156100d557600080fd5b506100de61028c565b60408051918252519081900360200190f35b3480156100fc57600080fd5b50610111600160a060020a0360043516610292565b005b34801561011f57600080fd5b506101286102eb565b604080519115158252519081900360200190f35b34801561014857600080fd5b50610128600160a060020a036004351661030c565b34801561016957600080fd5b506100de61032a565b34801561017e57600080fd5b50610111600160a060020a0360043516610330565b34801561019f57600080fd5b50610111610386565b3480156101b457600080fd5b506101bd6104a1565b60408051600160a060020a039092168252519081900360200190f35b3480156101e557600080fd5b50610111600160a060020a03600435811690602435166044356104b0565b34801561020f57600080fd5b50610111600160a060020a036004351661050d565b34801561023057600080fd5b50610111600160a060020a03600435166024351515610575565b34801561025657600080fd5b50610128600160a060020a03600435166107b4565b34801561027757600080fd5b50610111600160a060020a03600435166107d2565b60045490565b61029b3361083a565b15156102df576040805160e560020a62461bcd028152602060048201526016602482015260008051602061112e833981519152604482015290519081900360640190fd5b6102e88161084e565b50565b60005474010000000000000000000000000000000000000000900460ff1690565b600160a060020a031660009081526001602052604090205460ff1690565b60025490565b6103393361083a565b151561037d576040805160e560020a62461bcd028152602060048201526016602482015260008051602061112e833981519152604482015290519081900360640190fd5b6102e881610929565b61038f3361083a565b15156103d3576040805160e560020a62461bcd028152602060048201526016602482015260008051602061112e833981519152604482015290519081900360640190fd5b60005474010000000000000000000000000000000000000000900460ff161515610447576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916815560408051828152602081019290925280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1565b600054600160a060020a031690565b6104b93361083a565b15156104fd576040805160e560020a62461bcd028152602060048201526016602482015260008051602061112e833981519152604482015290519081900360640190fd5b610508838383610bca565b505050565b6105163361030c565b151561056c576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e2061646d696e00000000000000000000604482015290519081900360640190fd5b6102e881610d89565b61057e3361083a565b15156105c2576040805160e560020a62461bcd028152602060048201526016602482015260008051602061112e833981519152604482015290519081900360640190fd5b60005474010000000000000000000000000000000000000000900460ff161515610636576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b600160a060020a03821615156106bc576040805160e560020a62461bcd02815260206004820152602360248201527f6f776e65722063616e6e6f742062652073657420746f207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6000805474ff00000000000000000000000000000000000000001916740100000000000000000000000000000000000000008315159081029190911790915561073c5760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b60005460408051600160a060020a039283168152918416602083015280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1506000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a031660009081526003602052604090205460ff1690565b6107db3361030c565b1515610831576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e2061646d696e00000000000000000000604482015290519081900360640190fd5b6102e88161102d565b600054600160a060020a0390811691161490565b600160a060020a03811660009081526001602052604090205460ff1615156108c0576040805160e560020a62461bcd02815260206004820181905260248201527f70726f7669646564206163636f756e74206973206e6f7420616e2061646d696e604482015290519081900360640190fd5b600160a060020a038116600081815260016020908152604091829020805460ff191690556002805460001901905581513381529081019290925280517f787a2e12f4a55b658b8f573c32432ee11a5e8b51677d1e1e937aaf6a0bb5776e9281900390910190a150565b600160a060020a03811660009081526001602052604090205460ff16156109bf576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320616c726561647920616e206160448201527f646d696e00000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a03811660009081526003602052604090205460ff1615610a56576040805160e560020a62461bcd02815260206004820152602860248201527f70726f7669646564206163636f756e7420697320616c7265616479206120636f60448201527f6e74726f6c6c6572000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b610a5f8161083a565b15610ada576040805160e560020a62461bcd02815260206004820152602560248201527f70726f7669646564206163636f756e7420697320616c7265616479207468652060448201527f6f776e6572000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0381161515610b5f576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260016020818152604092839020805460ff1916831790556002805490920190915581513381529081019290925280517fc58b647b8ba5a8cab2f11f32673636cc1061324240972ed05e8cc005b81a4b7a9281900390910190a150565b600160a060020a0382161515610c1657604051600160a060020a0384169082156108fc029083906000818181858888f19350505050158015610c10573d6000803e3d6000fd5b50610d3a565b81600160a060020a031663a9059cbb84836040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b158015610c9257600080fd5b505af1158015610ca6573d6000803e3d6000fd5b505050506040513d6020811015610cbc57600080fd5b50511515610d3a576040805160e560020a62461bcd02815260206004820152602560248201527f455243323020746f6b656e207472616e736665722077617320756e737563636560448201527f737366756c000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60408051600160a060020a0380861682528416602082015280820183905290517ff7a40077ff7a04c7e61f6f26fb13774259ddf1b6bce9ecf26a8276cdd39926839181900360600190a1505050565b600160a060020a03811660009081526001602052604090205460ff1615610e1f576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320616c726561647920616e206160448201527f646d696e00000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a03811660009081526003602052604090205460ff1615610eb6576040805160e560020a62461bcd02815260206004820152602860248201527f70726f7669646564206163636f756e7420697320616c7265616479206120636f60448201527f6e74726f6c6c6572000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b610ebf8161083a565b15610f3a576040805160e560020a62461bcd02815260206004820152602560248201527f70726f7669646564206163636f756e7420697320616c7265616479207468652060448201527f6f776e6572000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0381161515610fbf576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260036020908152604091829020805460ff1916600190811790915560048054909101905581513381529081019290925280517fb890d5abdcd5c2b61ce8bbc2cf6af9b6d7f7451830cbc85037cbdd182c86fe1d9281900390910190a150565b600160a060020a03811660009081526003602052604090205460ff1615156110c4576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e74206973206e6f74206120636f6e74726f60448201527f6c6c657200000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260036020908152604091829020805460ff191690556004805460001901905581513381529081019290925280517fb6a283aaede08e15ef55c74e3014e30eb0c0040d4b156cccb77391268ea373949281900390910190a150560073656e646572206973206e6f7420616e206f776e657200000000000000000000a165627a7a723058200e752e3a88decc3d8c5d0c377c032b4fe39f5eb66a5b9fe8ce60f184698d72480029","bin-runtime":"6080604052600436106100c45763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166315b9a8b881146100c95780631785f53c146100f05780632121dc751461011357806324d7806c1461013c5780632b7832b31461015d5780637048027514610172578063715018a6146101935780638da5cb5b146101a8578063996cba68146101d9578063a7fc7a0714610203578063b242e53414610224578063b429afeb1461024a578063f6a74ed71461026b575b600080fd5b3480156100d557600080fd5b506100de61028c565b60408051918252519081900360200190f35b3480156100fc57600080fd5b50610111600160a060020a0360043516610292565b005b34801561011f57600080fd5b506101286102eb565b604080519115158252519081900360200190f35b34801561014857600080fd5b50610128600160a060020a036004351661030c565b34801561016957600080fd5b506100de61032a565b34801561017e57600080fd5b50610111600160a060020a0360043516610330565b34801561019f57600080fd5b50610111610386565b3480156101b457600080fd5b506101bd6104a1565b60408051600160a060020a039092168252519081900360200190f35b3480156101e557600080fd5b50610111600160a060020a03600435811690602435166044356104b0565b34801561020f57600080fd5b50610111600160a060020a036004351661050d565b34801561023057600080fd5b50610111600160a060020a03600435166024351515610575565b34801561025657600080fd5b50610128600160a060020a03600435166107b4565b34801561027757600080fd5b50610111600160a060020a03600435166107d2565b60045490565b61029b3361083a565b15156102df576040805160e560020a62461bcd028152602060048201526016602482015260008051602061112e833981519152604482015290519081900360640190fd5b6102e88161084e565b50565b60005474010000000000000000000000000000000000000000900460ff1690565b600160a060020a031660009081526001602052604090205460ff1690565b60025490565b6103393361083a565b151561037d576040805160e560020a62461bcd028152602060048201526016602482015260008051602061112e833981519152604482015290519081900360640190fd5b6102e881610929565b61038f3361083a565b15156103d3576040805160e560020a62461bcd028152602060048201526016602482015260008051602061112e833981519152604482015290519081900360640190fd5b60005474010000000000000000000000000000000000000000900460ff161515610447576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916815560408051828152602081019290925280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1565b600054600160a060020a031690565b6104b93361083a565b15156104fd576040805160e560020a62461bcd028152602060048201526016602482015260008051602061112e833981519152604482015290519081900360640190fd5b610508838383610bca565b505050565b6105163361030c565b151561056c576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e2061646d696e00000000000000000000604482015290519081900360640190fd5b6102e881610d89565b61057e3361083a565b15156105c2576040805160e560020a62461bcd028152602060048201526016602482015260008051602061112e833981519152604482015290519081900360640190fd5b60005474010000000000000000000000000000000000000000900460ff161515610636576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b600160a060020a03821615156106bc576040805160e560020a62461bcd02815260206004820152602360248201527f6f776e65722063616e6e6f742062652073657420746f207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6000805474ff00000000000000000000000000000000000000001916740100000000000000000000000000000000000000008315159081029190911790915561073c5760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b60005460408051600160a060020a039283168152918416602083015280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1506000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a031660009081526003602052604090205460ff1690565b6107db3361030c565b1515610831576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e2061646d696e00000000000000000000604482015290519081900360640190fd5b6102e88161102d565b600054600160a060020a0390811691161490565b600160a060020a03811660009081526001602052604090205460ff1615156108c0576040805160e560020a62461bcd02815260206004820181905260248201527f70726f7669646564206163636f756e74206973206e6f7420616e2061646d696e604482015290519081900360640190fd5b600160a060020a038116600081815260016020908152604091829020805460ff191690556002805460001901905581513381529081019290925280517f787a2e12f4a55b658b8f573c32432ee11a5e8b51677d1e1e937aaf6a0bb5776e9281900390910190a150565b600160a060020a03811660009081526001602052604090205460ff16156109bf576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320616c726561647920616e206160448201527f646d696e00000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a03811660009081526003602052604090205460ff1615610a56576040805160e560020a62461bcd02815260206004820152602860248201527f70726f7669646564206163636f756e7420697320616c7265616479206120636f60448201527f6e74726f6c6c6572000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b610a5f8161083a565b15610ada576040805160e560020a62461bcd02815260206004820152602560248201527f70726f7669646564206163636f756e7420697320616c7265616479207468652060448201527f6f776e6572000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0381161515610b5f576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260016020818152604092839020805460ff1916831790556002805490920190915581513381529081019290925280517fc58b647b8ba5a8cab2f11f32673636cc1061324240972ed05e8cc005b81a4b7a9281900390910190a150565b600160a060020a0382161515610c1657604051600160a060020a0384169082156108fc029083906000818181858888f19350505050158015610c10573d6000803e3d6000fd5b50610d3a565b81600160a060020a031663a9059cbb84836040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b158015610c9257600080fd5b505af1158015610ca6573d6000803e3d6000fd5b505050506040513d6020811015610cbc57600080fd5b50511515610d3a576040805160e560020a62461bcd02815260206004820152602560248201527f455243323020746f6b656e207472616e736665722077617320756e737563636560448201527f737366756c000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60408051600160a060020a0380861682528416602082015280820183905290517ff7a40077ff7a04c7e61f6f26fb13774259ddf1b6bce9ecf26a8276cdd39926839181900360600190a1505050565b600160a060020a03811660009081526001602052604090205460ff1615610e1f576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320616c726561647920616e206160448201527f646d696e00000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a03811660009081526003602052604090205460ff1615610eb6576040805160e560020a62461bcd02815260206004820152602860248201527f70726f7669646564206163636f756e7420697320616c7265616479206120636f60448201527f6e74726f6c6c6572000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b610ebf8161083a565b15610f3a576040805160e560020a62461bcd02815260206004820152602560248201527f70726f7669646564206163636f756e7420697320616c7265616479207468652060448201527f6f776e6572000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0381161515610fbf576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260036020908152604091829020805460ff1916600190811790915560048054909101905581513381529081019290925280517fb890d5abdcd5c2b61ce8bbc2cf6af9b6d7f7451830cbc85037cbdd182c86fe1d9281900390910190a150565b600160a060020a03811660009081526003602052604090205460ff1615156110c4576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e74206973206e6f74206120636f6e74726f60448201527f6c6c657200000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260036020908152604091829020805460ff191690556004805460001901905581513381529081019290925280517fb6a283aaede08e15ef55c74e3014e30eb0c0040d4b156cccb77391268ea373949281900390910190a150560073656e646572206973206e6f7420616e206f776e657200000000000000000000a165627a7a723058200e752e3a88decc3d8c5d0c377c032b4fe39f5eb66a5b9fe8ce60f184698d72480029","srcmap":"1361:4838:2:-;;;2057:107;8:9:-1;5:2;;;30:1;27;20:12;5:2;2057:107:2;;;;;;;;;;;;;;;;;;;1527:6:3;:18;;-1:-1:-1;;;;;;1527:18:3;-1:-1:-1;;;;;1527:18:3;;;-1:-1:-1;;;;;;1555:32:3;;;;;;;;;;;;;;;2057:107:2;;;;1555:32:3;1671:15;;;1670:16;1666:78;;;1707:26;;;-1:-1:-1;;;;;1707:26:3;;;;;;;;;;;;;;;1666:78;1758:43;;;1787:1;1758:43;;-1:-1:-1;;;;;1758:43:3;;;;;;;;;;;;;;;;;;;1456:352;;2057:107:2;;1361:4838;;;;;;","srcmap-runtime":"1361:4838:2:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3671:96;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3671:96:2;;;;;;;;;;;;;;;;;;;;2851:97;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2851:97:2;-1:-1:-1;;;;;2851:97:2;;;;;;;3149:94:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3149:94:3;;;;;;;;;;;;;;;;;;;;;;3871:104:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3871:104:2;-1:-1:-1;;;;;3871:104:2;;;;;3000:86;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3000:86:2;;;;2631:91;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2631:91:2;-1:-1:-1;;;;;2631:91:2;;;;;3519:306:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3519:306:3;;;;3908:77;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3908:77:3;;;;;;;;-1:-1:-1;;;;;3908:77:3;;;;;;;;;;;;;;6075:122:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6075:122:2;-1:-1:-1;;;;;6075:122:2;;;;;;;;;;;;3224:101;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3224:101:2;-1:-1:-1;;;;;3224:101:2;;;;;2231:801:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2231:801:3;-1:-1:-1;;;;;2231:801:3;;;;;;;;;4087:114:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4087:114:2;-1:-1:-1;;;;;4087:114:2;;;;;3469:107;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3469:107:2;-1:-1:-1;;;;;3469:107:2;;;;;3671:96;3744:16;;3671:96;:::o;2851:97::-;1924:20:3;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:3;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1916:55:3;;;;;;;;;;;;;;;2919:22:2;2932:8;2919:12;:22::i;:::-;2851:97;:::o;3149:94:3:-;3198:4;3221:15;;;;;;;3149:94::o;3871:104:2:-;-1:-1:-1;;;;;3950:18:2;3927:4;3950:18;;;:8;:18;;;;;;;;;3871:104::o;3000:86::-;3068:11;;3000:86;:::o;2631:91::-;1924:20:3;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:3;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1916:55:3;;;;;;;;;;;;;;;2696:19:2;2706:8;2696:9;:19::i;3519:306:3:-;1924:20;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:3;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1916:55:3;;;;;;;;;;;;;;;3640:15;;;;;;;3632:57;;;;;;;-1:-1:-1;;;;;3632:57:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;3760:1;3743:19;;-1:-1:-1;;3743:19:3;;;3778:40;;;;;;;;;;;;;;;;;;;;;;;;;3519:306::o;3908:77::-;3946:7;3972:6;-1:-1:-1;;;;;3972:6:3;3908:77;:::o;6075:122:2:-;1924:20:3;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:3;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1916:55:3;;;;;;;;;;;;;;;6162:28:2;6169:3;6174:6;6182:7;6162:6;:28::i;:::-;6075:122;;;:::o;3224:101::-;2263:19;2271:10;2263:7;:19::i;:::-;2255:54;;;;;;;-1:-1:-1;;;;;2255:54:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;3294:24;3309:8;3294:14;:24::i;2231:801:3:-;1924:20;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:3;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1916:55:3;;;;;;;;;;;;;;;2388:15;;;;;;;2380:57;;;;;;;-1:-1:-1;;;;;2380:57:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2518:22:3;;;;2510:70;;;;;-1:-1:-1;;;;;2510:70:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2665:15;:31;;-1:-1:-1;;2665:31:3;;;;;;;;;;;;;;;2775:75;;2814:25;;;-1:-1:-1;;;;;2814:25:3;;;;;;;;;;;;;;;2775:75;2931:6;;2910:38;;;-1:-1:-1;;;;;2931:6:3;;;2910:38;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3008:6:3;:17;;-1:-1:-1;;3008:17:3;-1:-1:-1;;;;;3008:17:3;;;;;;;;;;2231:801::o;4087:114:2:-;-1:-1:-1;;;;;4171:23:2;4148:4;4171:23;;;:13;:23;;;;;;;;;4087:114::o;3469:107::-;2263:19;2271:10;2263:7;:19::i;:::-;2255:54;;;;;;;-1:-1:-1;;;;;2255:54:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;3542:27;3560:8;3542:17;:27::i;4091:107:3:-;4150:4;4185:6;-1:-1:-1;;;;;4185:6:3;;;4173:18;;;;4091:107::o;4828:236:2:-;-1:-1:-1;;;;;4894:18:2;;;;;;:8;:18;;;;;;;;4886:63;;;;;;;-1:-1:-1;;;;;4886:63:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4959:18:2;;4980:5;4959:18;;;:8;:18;;;;;;;;;:26;;-1:-1:-1;;4959:26:2;;;4995:11;:13;;-1:-1:-1;;4995:13:2;;;5023:34;;5036:10;5023:34;;;;;;;;;;;;;;;;;;;;;4828:236;:::o;4269:482::-;-1:-1:-1;;;;;4333:18:2;;;;;;:8;:18;;;;;;;;4332:19;4324:68;;;;;-1:-1:-1;;;;;4324:68:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4411:23:2;;;;;;:13;:23;;;;;;;;4410:24;4402:77;;;;;-1:-1:-1;;;;;4402:77:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4498:18;4507:8;4498;:18::i;:::-;4497:19;4489:69;;;;;-1:-1:-1;;;;;4489:69:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4576:22:2;;;;4568:71;;;;;-1:-1:-1;;;;;4568:71:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4649:18:2;;;;;;4670:4;4649:18;;;;;;;;;:25;;-1:-1:-1;;4649:25:2;;;;;4684:11;:13;;;;;;;;4712:32;;4723:10;4712:32;;;;;;;;;;;;;;;;;;;;;4269:482;:::o;1350:362:1:-;-1:-1:-1;;;;;1476:20:1;;;1472:189;;;1512:21;;-1:-1:-1;;;;;1512:12:1;;;:21;;;;;1525:7;;1512:21;;;;1525:7;1512:12;:21;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1512:21:1;1472:189;;;1578:6;-1:-1:-1;;;;;1572:22:1;;1595:3;1600:7;1572:36;;;;;;;;;;;;;-1:-1:-1;;;;;1572:36:1;-1:-1:-1;;;;;1572:36:1;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1572:36:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1572:36:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1572:36:1;1564:86;;;;;;;-1:-1:-1;;;;;1564:86:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1676:29;;;-1:-1:-1;;;;;1676:29:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;1350:362;;;:::o;5137:502:2:-;-1:-1:-1;;;;;5206:18:2;;;;;;:8;:18;;;;;;;;5205:19;5197:68;;;;;-1:-1:-1;;;;;5197:68:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5284:23:2;;;;;;:13;:23;;;;;;;;5283:24;5275:77;;;;;-1:-1:-1;;;;;5275:77:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5371:18;5380:8;5371;:18::i;:::-;5370:19;5362:69;;;;;-1:-1:-1;;;;;5362:69:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5449:22:2;;;;5441:71;;;;;-1:-1:-1;;;;;5441:71:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5522:23:2;;;;;;:13;:23;;;;;;;;;:30;;-1:-1:-1;;5522:30:2;5548:4;5522:30;;;;;;5562:16;:18;;;;;;;5595:37;;5611:10;5595:37;;;;;;;;;;;;;;;;;;;;;5137:502;:::o;5721:265::-;-1:-1:-1;;;;;5792:23:2;;;;;;:13;:23;;;;;;;;5784:72;;;;;;;-1:-1:-1;;;;;5784:72:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5866:23:2;;5892:5;5866:23;;;:13;:23;;;;;;;;;:31;;-1:-1:-1;;5866:31:2;;;5907:16;:18;;-1:-1:-1;;5907:18:2;;;5940:39;;5958:10;5940:39;;;;;;;;;;;;;;;;;;;;;5721:265;:::o"},"internals/controller.sol:IController":{"bin":"","bin-runtime":"","srcmap":"","srcmap-runtime":""},"internals/ownable.sol:Ownable":{"bin":"","bin-runtime":"","srcmap":"","srcmap-runtime":""}},"sourceList":["externals/ERC20.sol","internals/claimable.sol","internals/controller.sol","internals/ownable.sol"],"sources":{"externals/ERC20.sol":{"AST":{"attributes":{"absolutePath":"externals/ERC20.sol","exportedSymbols":{"ERC20":[609]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".25"]},"id":572,"name":"PragmaDirective","src":"0:24:0"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"interface","documentation":"@title ERC20 interface is a subset of the ERC20 specification.","fullyImplemented":false,"linearizedBaseContracts":[609],"name":"ERC20","scope":610},"children":[{"attributes":{"body":null,"constant":false,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"approve","payable":false,"scope":609,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"","scope":581,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":573,"name":"ElementaryTypeName","src":"132:7:0"}],"id":574,"name":"VariableDeclaration","src":"132:7:0"},{"attributes":{"constant":false,"name":"","scope":581,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":575,"name":"ElementaryTypeName","src":"141:7:0"}],"id":576,"name":"VariableDeclaration","src":"141:7:0"}],"id":577,"name":"ParameterList","src":"131:18:0"},{"children":[{"attributes":{"constant":false,"name":"","scope":581,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":578,"name":"ElementaryTypeName","src":"168:4:0"}],"id":579,"name":"VariableDeclaration","src":"168:4:0"}],"id":580,"name":"ParameterList","src":"167:6:0"}],"id":581,"name":"FunctionDefinition","src":"115:59:0"},{"attributes":{"body":null,"constant":true,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"balanceOf","payable":false,"scope":609,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"","scope":588,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":582,"name":"ElementaryTypeName","src":"198:7:0"}],"id":583,"name":"VariableDeclaration","src":"198:7:0"}],"id":584,"name":"ParameterList","src":"197:9:0"},{"children":[{"attributes":{"constant":false,"name":"","scope":588,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":585,"name":"ElementaryTypeName","src":"230:4:0"}],"id":586,"name":"VariableDeclaration","src":"230:4:0"}],"id":587,"name":"ParameterList","src":"229:6:0"}],"id":588,"name":"FunctionDefinition","src":"179:57:0"},{"attributes":{"body":null,"constant":false,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"transfer","payable":false,"scope":609,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"","scope":597,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":589,"name":"ElementaryTypeName","src":"259:7:0"}],"id":590,"name":"VariableDeclaration","src":"259:7:0"},{"attributes":{"constant":false,"name":"","scope":597,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":591,"name":"ElementaryTypeName","src":"268:4:0"}],"id":592,"name":"VariableDeclaration","src":"268:4:0"}],"id":593,"name":"ParameterList","src":"258:15:0"},{"children":[{"attributes":{"constant":false,"name":"","scope":597,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":594,"name":"ElementaryTypeName","src":"292:4:0"}],"id":595,"name":"VariableDeclaration","src":"292:4:0"}],"id":596,"name":"ParameterList","src":"291:6:0"}],"id":597,"name":"FunctionDefinition","src":"241:57:0"},{"attributes":{"body":null,"constant":false,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"transferFrom","payable":false,"scope":609,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_from","scope":608,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":598,"name":"ElementaryTypeName","src":"325:7:0"}],"id":599,"name":"VariableDeclaration","src":"325:13:0"},{"attributes":{"constant":false,"name":"_to","scope":608,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":600,"name":"ElementaryTypeName","src":"340:7:0"}],"id":601,"name":"VariableDeclaration","src":"340:11:0"},{"attributes":{"constant":false,"name":"_value","scope":608,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":602,"name":"ElementaryTypeName","src":"353:7:0"}],"id":603,"name":"VariableDeclaration","src":"353:14:0"}],"id":604,"name":"ParameterList","src":"324:44:0"},{"children":[{"attributes":{"constant":false,"name":"success","scope":608,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":605,"name":"ElementaryTypeName","src":"387:4:0"}],"id":606,"name":"VariableDeclaration","src":"387:12:0"}],"id":607,"name":"ParameterList","src":"386:14:0"}],"id":608,"name":"FunctionDefinition","src":"303:98:0"}],"id":609,"name":"ContractDefinition","src":"93:310:0"}],"id":610,"name":"SourceUnit","src":"0:404:0"}},"internals/claimable.sol":{"AST":{"attributes":{"absolutePath":"internals/claimable.sol","exportedSymbols":{"Claimable":[413]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".25"]},"id":362,"name":"PragmaDirective","src":"769:24:1"},{"attributes":{"SourceUnit":610,"absolutePath":"externals/ERC20.sol","file":"../externals/ERC20.sol","scope":414,"symbolAliases":[null],"unitAlias":""},"id":363,"name":"ImportDirective","src":"795:32:1"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"contract","documentation":"@title Claimable, allowing contract to withdraw tokens accidentally sent to itself","fullyImplemented":true,"linearizedBaseContracts":[413],"name":"Claimable","scope":414},"children":[{"attributes":{"anonymous":false,"documentation":null,"name":"Claimed"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_to","scope":371,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":364,"name":"ElementaryTypeName","src":"957:7:1"}],"id":365,"name":"VariableDeclaration","src":"957:11:1"},{"attributes":{"constant":false,"indexed":false,"name":"_asset","scope":371,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":366,"name":"ElementaryTypeName","src":"970:7:1"}],"id":367,"name":"VariableDeclaration","src":"970:14:1"},{"attributes":{"constant":false,"indexed":false,"name":"_amount","scope":371,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":368,"name":"ElementaryTypeName","src":"986:4:1"}],"id":369,"name":"VariableDeclaration","src":"986:12:1"}],"id":370,"name":"ParameterList","src":"956:43:1"}],"id":371,"name":"EventDefinition","src":"943:57:1"},{"attributes":{"constant":false,"documentation":"@dev This function is used to move tokens sent accidentally to this contract method.\n @dev The owner can chose the new destination address\n @param _to is the recipient's address.\n @param _asset is the address of an ERC20 token or 0x0 for ether.\n @param _amount is the amount to be transferred in base units.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_claim","payable":false,"scope":413,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_to","scope":412,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":372,"name":"ElementaryTypeName","src":"1366:7:1"}],"id":373,"name":"VariableDeclaration","src":"1366:11:1"},{"attributes":{"constant":false,"name":"_asset","scope":412,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":374,"name":"ElementaryTypeName","src":"1379:7:1"}],"id":375,"name":"VariableDeclaration","src":"1379:14:1"},{"attributes":{"constant":false,"name":"_amount","scope":412,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":376,"name":"ElementaryTypeName","src":"1395:4:1"}],"id":377,"name":"VariableDeclaration","src":"1395:12:1"}],"id":378,"name":"ParameterList","src":"1365:43:1"},{"attributes":{"parameters":[null]},"children":[],"id":379,"name":"ParameterList","src":"1418:0:1"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":375,"type":"address","value":"_asset"},"id":380,"name":"Identifier","src":"1476:6:1"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":381,"name":"ElementaryTypeNameExpression","src":"1486:7:1"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":382,"name":"Literal","src":"1494:1:1"}],"id":383,"name":"FunctionCall","src":"1486:10:1"}],"id":384,"name":"BinaryOperation","src":"1476:20:1"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"transfer","referencedDeclaration":null,"type":"function (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":373,"type":"address","value":"_to"},"id":385,"name":"Identifier","src":"1512:3:1"}],"id":387,"name":"MemberAccess","src":"1512:12:1"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":377,"type":"uint256","value":"_amount"},"id":388,"name":"Identifier","src":"1525:7:1"}],"id":389,"name":"FunctionCall","src":"1512:21:1"}],"id":390,"name":"ExpressionStatement","src":"1512:21:1"}],"id":391,"name":"Block","src":"1498:46:1"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_bebbba0e3133c903fb13ff92bbd373380a11a38636d3fcb2a56e9eeaa3171b67","typeString":"literal_string \"ERC20 token transfer was unsuccessful\""}],"overloadedDeclarations":[627,628],"referencedDeclaration":628,"type":"function (bool,string memory) pure","value":"require"},"id":392,"name":"Identifier","src":"1564:7:1"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"transfer","referencedDeclaration":597,"type":"function (address,uint256) external returns (bool)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract ERC20","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":609,"type":"type(contract ERC20)","value":"ERC20"},"id":393,"name":"Identifier","src":"1572:5:1"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":375,"type":"address","value":"_asset"},"id":394,"name":"Identifier","src":"1578:6:1"}],"id":395,"name":"FunctionCall","src":"1572:13:1"}],"id":396,"name":"MemberAccess","src":"1572:22:1"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":373,"type":"address","value":"_to"},"id":397,"name":"Identifier","src":"1595:3:1"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":377,"type":"uint256","value":"_amount"},"id":398,"name":"Identifier","src":"1600:7:1"}],"id":399,"name":"FunctionCall","src":"1572:36:1"},{"attributes":{"argumentTypes":null,"hexvalue":"455243323020746f6b656e207472616e736665722077617320756e7375636365737366756c","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"ERC20 token transfer was unsuccessful\"","value":"ERC20 token transfer was unsuccessful"},"id":400,"name":"Literal","src":"1610:39:1"}],"id":401,"name":"FunctionCall","src":"1564:86:1"}],"id":402,"name":"ExpressionStatement","src":"1564:86:1"}],"id":403,"name":"Block","src":"1550:111:1"}],"id":404,"name":"IfStatement","src":"1472:189:1"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":371,"type":"function (address,address,uint256)","value":"Claimed"},"id":405,"name":"Identifier","src":"1676:7:1"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":373,"type":"address","value":"_to"},"id":406,"name":"Identifier","src":"1684:3:1"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":375,"type":"address","value":"_asset"},"id":407,"name":"Identifier","src":"1689:6:1"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":377,"type":"uint256","value":"_amount"},"id":408,"name":"Identifier","src":"1697:7:1"}],"id":409,"name":"FunctionCall","src":"1676:29:1"}],"id":410,"name":"EmitStatement","src":"1671:34:1"}],"id":411,"name":"Block","src":"1418:294:1"}],"id":412,"name":"FunctionDefinition","src":"1350:362:1"}],"id":413,"name":"ContractDefinition","src":"917:797:1"}],"id":414,"name":"SourceUnit","src":"769:946:1"}},"internals/controller.sol":{"AST":{"attributes":{"absolutePath":"internals/controller.sol","exportedSymbols":{"Controller":[360],"IController":[11]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".25"]},"id":1,"name":"PragmaDirective","src":"770:24:2"},{"attributes":{"SourceUnit":571,"absolutePath":"internals/ownable.sol","file":"./ownable.sol","scope":361,"symbolAliases":[null],"unitAlias":""},"id":2,"name":"ImportDirective","src":"796:23:2"},{"attributes":{"SourceUnit":414,"absolutePath":"internals/claimable.sol","file":"./claimable.sol","scope":361,"symbolAliases":[null],"unitAlias":""},"id":3,"name":"ImportDirective","src":"820:25:2"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"interface","documentation":"@title The IController interface provides access to the isController check.","fullyImplemented":false,"linearizedBaseContracts":[11],"name":"IController","scope":361},"children":[{"attributes":{"body":null,"constant":true,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"isController","payable":false,"scope":11,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"","scope":10,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":4,"name":"ElementaryTypeName","src":"977:7:2"}],"id":5,"name":"VariableDeclaration","src":"977:7:2"}],"id":6,"name":"ParameterList","src":"976:9:2"},{"children":[{"attributes":{"constant":false,"name":"","scope":10,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":7,"name":"ElementaryTypeName","src":"1009:4:2"}],"id":8,"name":"VariableDeclaration","src":"1009:4:2"}],"id":9,"name":"ParameterList","src":"1008:6:2"}],"id":10,"name":"FunctionDefinition","src":"955:60:2"}],"id":11,"name":"ContractDefinition","src":"927:90:2"},{"attributes":{"contractDependencies":[11,413,570],"contractKind":"contract","documentation":"@title Controller stores a list of controller addresses that can be used for authentication in other contracts.\n @notice The Controller implements a hierarchy of concepts, Owner, Admin, and the Controllers.\n @dev Owner can change the Admins\n @dev Admins and can the Controllers\n @dev Controllers are used by the application.","fullyImplemented":true,"linearizedBaseContracts":[360,413,570,11],"name":"Controller","scope":361},"children":[{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"IController","referencedDeclaration":11,"type":"contract IController"},"id":12,"name":"UserDefinedTypeName","src":"1384:11:2"}],"id":13,"name":"InheritanceSpecifier","src":"1384:11:2"},{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"Ownable","referencedDeclaration":570,"type":"contract Ownable"},"id":14,"name":"UserDefinedTypeName","src":"1397:7:2"}],"id":15,"name":"InheritanceSpecifier","src":"1397:7:2"},{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"Claimable","referencedDeclaration":413,"type":"contract Claimable"},"id":16,"name":"UserDefinedTypeName","src":"1406:9:2"}],"id":17,"name":"InheritanceSpecifier","src":"1406:9:2"},{"attributes":{"anonymous":false,"documentation":null,"name":"AddedController"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_sender","scope":23,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":18,"name":"ElementaryTypeName","src":"1445:7:2"}],"id":19,"name":"VariableDeclaration","src":"1445:15:2"},{"attributes":{"constant":false,"indexed":false,"name":"_controller","scope":23,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":20,"name":"ElementaryTypeName","src":"1462:7:2"}],"id":21,"name":"VariableDeclaration","src":"1462:19:2"}],"id":22,"name":"ParameterList","src":"1444:38:2"}],"id":23,"name":"EventDefinition","src":"1423:60:2"},{"attributes":{"anonymous":false,"documentation":null,"name":"RemovedController"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_sender","scope":29,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":24,"name":"ElementaryTypeName","src":"1512:7:2"}],"id":25,"name":"VariableDeclaration","src":"1512:15:2"},{"attributes":{"constant":false,"indexed":false,"name":"_controller","scope":29,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":26,"name":"ElementaryTypeName","src":"1529:7:2"}],"id":27,"name":"VariableDeclaration","src":"1529:19:2"}],"id":28,"name":"ParameterList","src":"1511:38:2"}],"id":29,"name":"EventDefinition","src":"1488:62:2"},{"attributes":{"anonymous":false,"documentation":null,"name":"AddedAdmin"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_sender","scope":35,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":30,"name":"ElementaryTypeName","src":"1573:7:2"}],"id":31,"name":"VariableDeclaration","src":"1573:15:2"},{"attributes":{"constant":false,"indexed":false,"name":"_admin","scope":35,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":32,"name":"ElementaryTypeName","src":"1590:7:2"}],"id":33,"name":"VariableDeclaration","src":"1590:14:2"}],"id":34,"name":"ParameterList","src":"1572:33:2"}],"id":35,"name":"EventDefinition","src":"1556:50:2"},{"attributes":{"anonymous":false,"documentation":null,"name":"RemovedAdmin"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_sender","scope":41,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":36,"name":"ElementaryTypeName","src":"1630:7:2"}],"id":37,"name":"VariableDeclaration","src":"1630:15:2"},{"attributes":{"constant":false,"indexed":false,"name":"_admin","scope":41,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":38,"name":"ElementaryTypeName","src":"1647:7:2"}],"id":39,"name":"VariableDeclaration","src":"1647:14:2"}],"id":40,"name":"ParameterList","src":"1629:33:2"}],"id":41,"name":"EventDefinition","src":"1611:52:2"},{"attributes":{"constant":false,"name":"_isAdmin","scope":360,"stateVariable":true,"storageLocation":"default","type":"mapping(address => bool)","value":null,"visibility":"private"},"children":[{"attributes":{"type":"mapping(address => bool)"},"children":[{"attributes":{"name":"address","type":"address"},"id":42,"name":"ElementaryTypeName","src":"1678:7:2"},{"attributes":{"name":"bool","type":"bool"},"id":43,"name":"ElementaryTypeName","src":"1689:4:2"}],"id":44,"name":"Mapping","src":"1669:25:2"}],"id":45,"name":"VariableDeclaration","src":"1669:42:2"},{"attributes":{"constant":false,"name":"_adminCount","scope":360,"stateVariable":true,"storageLocation":"default","type":"uint256","value":null,"visibility":"private"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":46,"name":"ElementaryTypeName","src":"1717:4:2"}],"id":47,"name":"VariableDeclaration","src":"1717:24:2"},{"attributes":{"constant":false,"name":"_isController","scope":360,"stateVariable":true,"storageLocation":"default","type":"mapping(address => bool)","value":null,"visibility":"private"},"children":[{"attributes":{"type":"mapping(address => bool)"},"children":[{"attributes":{"name":"address","type":"address"},"id":48,"name":"ElementaryTypeName","src":"1757:7:2"},{"attributes":{"name":"bool","type":"bool"},"id":49,"name":"ElementaryTypeName","src":"1768:4:2"}],"id":50,"name":"Mapping","src":"1748:25:2"}],"id":51,"name":"VariableDeclaration","src":"1748:47:2"},{"attributes":{"constant":false,"name":"_controllerCount","scope":360,"stateVariable":true,"storageLocation":"default","type":"uint256","value":null,"visibility":"private"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":52,"name":"ElementaryTypeName","src":"1801:4:2"}],"id":53,"name":"VariableDeclaration","src":"1801:29:2"},{"attributes":{"constant":false,"documentation":"@notice Constructor initializes the owner with the provided address.\n @param _ownerAddress_ address of the owner.\n @param _transferable_ indicates whether the contract ownership can be transferred.","implemented":true,"isConstructor":true,"name":"","payable":false,"scope":360,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"_ownerAddress_","scope":65,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":54,"name":"ElementaryTypeName","src":"2069:7:2"}],"id":55,"name":"VariableDeclaration","src":"2069:22:2"},{"attributes":{"constant":false,"name":"_transferable_","scope":65,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":56,"name":"ElementaryTypeName","src":"2093:4:2"}],"id":57,"name":"VariableDeclaration","src":"2093:19:2"}],"id":58,"name":"ParameterList","src":"2068:45:2"},{"attributes":{"parameters":[null]},"children":[],"id":63,"name":"ParameterList","src":"2161:0:2"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":570,"type":"type(contract Ownable)","value":"Ownable"},"id":59,"name":"Identifier","src":"2114:7:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":55,"type":"address","value":"_ownerAddress_"},"id":60,"name":"Identifier","src":"2122:14:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":57,"type":"bool","value":"_transferable_"},"id":61,"name":"Identifier","src":"2138:14:2"}],"id":62,"name":"ModifierInvocation","src":"2114:39:2"},{"attributes":{"statements":[null]},"children":[],"id":64,"name":"Block","src":"2161:3:2"}],"id":65,"name":"FunctionDefinition","src":"2057:107:2"},{"attributes":{"documentation":"@notice Checks if message sender is an admin.","name":"onlyAdmin","visibility":"internal"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":66,"name":"ParameterList","src":"2242:2:2"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_156cbb05733026f4aa0b363c6a3be5f21b7ab8f248a865cc639a4d928ddeabb8","typeString":"literal_string \"sender is not an admin\""}],"overloadedDeclarations":[627,628],"referencedDeclaration":628,"type":"function (bool,string memory) pure","value":"require"},"id":67,"name":"Identifier","src":"2255:7:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":165,"type":"function (address) view returns (bool)","value":"isAdmin"},"id":68,"name":"Identifier","src":"2263:7:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":624,"type":"msg","value":"msg"},"id":69,"name":"Identifier","src":"2271:3:2"}],"id":70,"name":"MemberAccess","src":"2271:10:2"}],"id":71,"name":"FunctionCall","src":"2263:19:2"},{"attributes":{"argumentTypes":null,"hexvalue":"73656e646572206973206e6f7420616e2061646d696e","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"sender is not an admin\"","value":"sender is not an admin"},"id":72,"name":"Literal","src":"2284:24:2"}],"id":73,"name":"FunctionCall","src":"2255:54:2"}],"id":74,"name":"ExpressionStatement","src":"2255:54:2"},{"id":75,"name":"PlaceholderStatement","src":"2319:1:2"}],"id":76,"name":"Block","src":"2245:82:2"}],"id":77,"name":"ModifierDefinition","src":"2224:103:2"},{"attributes":{"documentation":"@notice Checks if message sender is a controller.","name":"onlyController","visibility":"internal"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":78,"name":"ParameterList","src":"2414:2:2"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_918bc5a096178f6e8c423f958a6008c4b24fd25b7a3ca0123b85463c61a2e566","typeString":"literal_string \"sender is not a controller\""}],"overloadedDeclarations":[627,628],"referencedDeclaration":628,"type":"function (bool,string memory) pure","value":"require"},"id":79,"name":"Identifier","src":"2427:7:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":177,"type":"function (address) view returns (bool)","value":"isController"},"id":80,"name":"Identifier","src":"2435:12:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":624,"type":"msg","value":"msg"},"id":81,"name":"Identifier","src":"2448:3:2"}],"id":82,"name":"MemberAccess","src":"2448:10:2"}],"id":83,"name":"FunctionCall","src":"2435:24:2"},{"attributes":{"argumentTypes":null,"hexvalue":"73656e646572206973206e6f74206120636f6e74726f6c6c6572","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"sender is not a controller\"","value":"sender is not a controller"},"id":84,"name":"Literal","src":"2461:28:2"}],"id":85,"name":"FunctionCall","src":"2427:63:2"}],"id":86,"name":"ExpressionStatement","src":"2427:63:2"},{"id":87,"name":"PlaceholderStatement","src":"2500:1:2"}],"id":88,"name":"Block","src":"2417:91:2"}],"id":89,"name":"ModifierDefinition","src":"2391:117:2"},{"attributes":{"constant":false,"documentation":"@notice Add a new admin to the list of admins.\n @param _account address to add to the list of admins.","implemented":true,"isConstructor":false,"name":"addAdmin","payable":false,"scope":360,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":101,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":90,"name":"ElementaryTypeName","src":"2649:7:2"}],"id":91,"name":"VariableDeclaration","src":"2649:16:2"}],"id":92,"name":"ParameterList","src":"2648:18:2"},{"attributes":{"parameters":[null]},"children":[],"id":95,"name":"ParameterList","src":"2686:0:2"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":472,"type":"modifier ()","value":"onlyOwner"},"id":93,"name":"Identifier","src":"2676:9:2"}],"id":94,"name":"ModifierInvocation","src":"2676:9:2"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":231,"type":"function (address)","value":"_addAdmin"},"id":96,"name":"Identifier","src":"2696:9:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":91,"type":"address","value":"_account"},"id":97,"name":"Identifier","src":"2706:8:2"}],"id":98,"name":"FunctionCall","src":"2696:19:2"}],"id":99,"name":"ExpressionStatement","src":"2696:19:2"}],"id":100,"name":"Block","src":"2686:36:2"}],"id":101,"name":"FunctionDefinition","src":"2631:91:2"},{"attributes":{"constant":false,"documentation":"@notice Remove a admin from the list of admins.\n @param _account address to remove from the list of admins.","implemented":true,"isConstructor":false,"name":"removeAdmin","payable":false,"scope":360,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":113,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":102,"name":"ElementaryTypeName","src":"2872:7:2"}],"id":103,"name":"VariableDeclaration","src":"2872:16:2"}],"id":104,"name":"ParameterList","src":"2871:18:2"},{"attributes":{"parameters":[null]},"children":[],"id":107,"name":"ParameterList","src":"2909:0:2"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":472,"type":"modifier ()","value":"onlyOwner"},"id":105,"name":"Identifier","src":"2899:9:2"}],"id":106,"name":"ModifierInvocation","src":"2899:9:2"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":259,"type":"function (address)","value":"_removeAdmin"},"id":108,"name":"Identifier","src":"2919:12:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":103,"type":"address","value":"_account"},"id":109,"name":"Identifier","src":"2932:8:2"}],"id":110,"name":"FunctionCall","src":"2919:22:2"}],"id":111,"name":"ExpressionStatement","src":"2919:22:2"}],"id":112,"name":"Block","src":"2909:39:2"}],"id":113,"name":"FunctionDefinition","src":"2851:97:2"},{"attributes":{"constant":true,"documentation":"@return the current number of admins.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"adminCount","payable":false,"scope":360,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":114,"name":"ParameterList","src":"3019:2:2"},{"children":[{"attributes":{"constant":false,"name":"","scope":121,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":115,"name":"ElementaryTypeName","src":"3045:4:2"}],"id":116,"name":"VariableDeclaration","src":"3045:4:2"}],"id":117,"name":"ParameterList","src":"3044:6:2"},{"children":[{"attributes":{"functionReturnParameters":117},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":47,"type":"uint256","value":"_adminCount"},"id":118,"name":"Identifier","src":"3068:11:2"}],"id":119,"name":"Return","src":"3061:18:2"}],"id":120,"name":"Block","src":"3051:35:2"}],"id":121,"name":"FunctionDefinition","src":"3000:86:2"},{"attributes":{"constant":false,"documentation":"@notice Add a new controller to the list of controllers.\n @param _account address to add to the list of controllers.","implemented":true,"isConstructor":false,"name":"addController","payable":false,"scope":360,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":133,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":122,"name":"ElementaryTypeName","src":"3247:7:2"}],"id":123,"name":"VariableDeclaration","src":"3247:16:2"}],"id":124,"name":"ParameterList","src":"3246:18:2"},{"attributes":{"parameters":[null]},"children":[],"id":127,"name":"ParameterList","src":"3284:0:2"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":77,"type":"modifier ()","value":"onlyAdmin"},"id":125,"name":"Identifier","src":"3274:9:2"}],"id":126,"name":"ModifierInvocation","src":"3274:9:2"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":313,"type":"function (address)","value":"_addController"},"id":128,"name":"Identifier","src":"3294:14:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":123,"type":"address","value":"_account"},"id":129,"name":"Identifier","src":"3309:8:2"}],"id":130,"name":"FunctionCall","src":"3294:24:2"}],"id":131,"name":"ExpressionStatement","src":"3294:24:2"}],"id":132,"name":"Block","src":"3284:41:2"}],"id":133,"name":"FunctionDefinition","src":"3224:101:2"},{"attributes":{"constant":false,"documentation":"@notice Remove a controller from the list of controllers.\n @param _account address to remove from the list of controllers.","implemented":true,"isConstructor":false,"name":"removeController","payable":false,"scope":360,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":145,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":134,"name":"ElementaryTypeName","src":"3495:7:2"}],"id":135,"name":"VariableDeclaration","src":"3495:16:2"}],"id":136,"name":"ParameterList","src":"3494:18:2"},{"attributes":{"parameters":[null]},"children":[],"id":139,"name":"ParameterList","src":"3532:0:2"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":77,"type":"modifier ()","value":"onlyAdmin"},"id":137,"name":"Identifier","src":"3522:9:2"}],"id":138,"name":"ModifierInvocation","src":"3522:9:2"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":341,"type":"function (address)","value":"_removeController"},"id":140,"name":"Identifier","src":"3542:17:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":135,"type":"address","value":"_account"},"id":141,"name":"Identifier","src":"3560:8:2"}],"id":142,"name":"FunctionCall","src":"3542:27:2"}],"id":143,"name":"ExpressionStatement","src":"3542:27:2"}],"id":144,"name":"Block","src":"3532:44:2"}],"id":145,"name":"FunctionDefinition","src":"3469:107:2"},{"attributes":{"constant":true,"documentation":"@notice count the Controllers\n @return the current number of controllers.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"controllerCount","payable":false,"scope":360,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":146,"name":"ParameterList","src":"3695:2:2"},{"children":[{"attributes":{"constant":false,"name":"","scope":153,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":147,"name":"ElementaryTypeName","src":"3721:4:2"}],"id":148,"name":"VariableDeclaration","src":"3721:4:2"}],"id":149,"name":"ParameterList","src":"3720:6:2"},{"children":[{"attributes":{"functionReturnParameters":149},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":53,"type":"uint256","value":"_controllerCount"},"id":150,"name":"Identifier","src":"3744:16:2"}],"id":151,"name":"Return","src":"3737:23:2"}],"id":152,"name":"Block","src":"3727:40:2"}],"id":153,"name":"FunctionDefinition","src":"3671:96:2"},{"attributes":{"constant":true,"documentation":"@notice is an address an Admin?\n @return true if the provided account is an admin.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"isAdmin","payable":false,"scope":360,"stateMutability":"view","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":165,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":154,"name":"ElementaryTypeName","src":"3888:7:2"}],"id":155,"name":"VariableDeclaration","src":"3888:16:2"}],"id":156,"name":"ParameterList","src":"3887:18:2"},{"children":[{"attributes":{"constant":false,"name":"","scope":165,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":157,"name":"ElementaryTypeName","src":"3927:4:2"}],"id":158,"name":"VariableDeclaration","src":"3927:4:2"}],"id":159,"name":"ParameterList","src":"3926:6:2"},{"children":[{"attributes":{"functionReturnParameters":159},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":45,"type":"mapping(address => bool)","value":"_isAdmin"},"id":160,"name":"Identifier","src":"3950:8:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":155,"type":"address","value":"_account"},"id":161,"name":"Identifier","src":"3959:8:2"}],"id":162,"name":"IndexAccess","src":"3950:18:2"}],"id":163,"name":"Return","src":"3943:25:2"}],"id":164,"name":"Block","src":"3933:42:2"}],"id":165,"name":"FunctionDefinition","src":"3871:104:2"},{"attributes":{"constant":true,"documentation":"@notice is an address a Controller?\n @return true if the provided account is a controller.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"isController","payable":false,"scope":360,"stateMutability":"view","superFunction":10,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":177,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":166,"name":"ElementaryTypeName","src":"4109:7:2"}],"id":167,"name":"VariableDeclaration","src":"4109:16:2"}],"id":168,"name":"ParameterList","src":"4108:18:2"},{"children":[{"attributes":{"constant":false,"name":"","scope":177,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":169,"name":"ElementaryTypeName","src":"4148:4:2"}],"id":170,"name":"VariableDeclaration","src":"4148:4:2"}],"id":171,"name":"ParameterList","src":"4147:6:2"},{"children":[{"attributes":{"functionReturnParameters":171},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":51,"type":"mapping(address => bool)","value":"_isController"},"id":172,"name":"Identifier","src":"4171:13:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":167,"type":"address","value":"_account"},"id":173,"name":"Identifier","src":"4185:8:2"}],"id":174,"name":"IndexAccess","src":"4171:23:2"}],"id":175,"name":"Return","src":"4164:30:2"}],"id":176,"name":"Block","src":"4154:47:2"}],"id":177,"name":"FunctionDefinition","src":"4087:114:2"},{"attributes":{"constant":false,"documentation":"@notice Internal-only function that adds a new admin.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_addAdmin","payable":false,"scope":360,"stateMutability":"nonpayable","superFunction":null,"visibility":"private"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":231,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":178,"name":"ElementaryTypeName","src":"4288:7:2"}],"id":179,"name":"VariableDeclaration","src":"4288:16:2"}],"id":180,"name":"ParameterList","src":"4287:18:2"},{"attributes":{"parameters":[null]},"children":[],"id":181,"name":"ParameterList","src":"4314:0:2"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_491ef411eef1615ecf908753bd22ae846aac933d79b0327335a18e3988db6215","typeString":"literal_string \"provided account is already an admin\""}],"overloadedDeclarations":[627,628],"referencedDeclaration":628,"type":"function (bool,string memory) pure","value":"require"},"id":182,"name":"Identifier","src":"4324:7:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":45,"type":"mapping(address => bool)","value":"_isAdmin"},"id":183,"name":"Identifier","src":"4333:8:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":179,"type":"address","value":"_account"},"id":184,"name":"Identifier","src":"4342:8:2"}],"id":185,"name":"IndexAccess","src":"4333:18:2"}],"id":186,"name":"UnaryOperation","src":"4332:19:2"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e7420697320616c726561647920616e2061646d696e","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is already an admin\"","value":"provided account is already an admin"},"id":187,"name":"Literal","src":"4353:38:2"}],"id":188,"name":"FunctionCall","src":"4324:68:2"}],"id":189,"name":"ExpressionStatement","src":"4324:68:2"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ea5e43d1c86e3916e6efb6c5ad4a915069293195e26cfb0847e731b480c61b69","typeString":"literal_string \"provided account is already a controller\""}],"overloadedDeclarations":[627,628],"referencedDeclaration":628,"type":"function (bool,string memory) pure","value":"require"},"id":190,"name":"Identifier","src":"4402:7:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":51,"type":"mapping(address => bool)","value":"_isController"},"id":191,"name":"Identifier","src":"4411:13:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":179,"type":"address","value":"_account"},"id":192,"name":"Identifier","src":"4425:8:2"}],"id":193,"name":"IndexAccess","src":"4411:23:2"}],"id":194,"name":"UnaryOperation","src":"4410:24:2"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e7420697320616c7265616479206120636f6e74726f6c6c6572","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is already a controller\"","value":"provided account is already a controller"},"id":195,"name":"Literal","src":"4436:42:2"}],"id":196,"name":"FunctionCall","src":"4402:77:2"}],"id":197,"name":"ExpressionStatement","src":"4402:77:2"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_28b510b314348cd3eee423698115cd76923e2c39fff2abeefc9606aa1cd4c741","typeString":"literal_string \"provided account is already the owner\""}],"overloadedDeclarations":[627,628],"referencedDeclaration":628,"type":"function (bool,string memory) pure","value":"require"},"id":198,"name":"Identifier","src":"4489:7:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":569,"type":"function (address) view returns (bool)","value":"_isOwner"},"id":199,"name":"Identifier","src":"4498:8:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":179,"type":"address","value":"_account"},"id":200,"name":"Identifier","src":"4507:8:2"}],"id":201,"name":"FunctionCall","src":"4498:18:2"}],"id":202,"name":"UnaryOperation","src":"4497:19:2"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e7420697320616c726561647920746865206f776e6572","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is already the owner\"","value":"provided account is already the owner"},"id":203,"name":"Literal","src":"4518:39:2"}],"id":204,"name":"FunctionCall","src":"4489:69:2"}],"id":205,"name":"ExpressionStatement","src":"4489:69:2"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_da72d12cc1dab77bb87826430977e9a5d381ba54a70ad14cb2761e202f01ff3b","typeString":"literal_string \"provided account is the zero address\""}],"overloadedDeclarations":[627,628],"referencedDeclaration":628,"type":"function (bool,string memory) pure","value":"require"},"id":206,"name":"Identifier","src":"4568:7:2"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":179,"type":"address","value":"_account"},"id":207,"name":"Identifier","src":"4576:8:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":208,"name":"ElementaryTypeNameExpression","src":"4588:7:2"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":209,"name":"Literal","src":"4596:1:2"}],"id":210,"name":"FunctionCall","src":"4588:10:2"}],"id":211,"name":"BinaryOperation","src":"4576:22:2"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e7420697320746865207a65726f2061646472657373","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is the zero address\"","value":"provided account is the zero address"},"id":212,"name":"Literal","src":"4600:38:2"}],"id":213,"name":"FunctionCall","src":"4568:71:2"}],"id":214,"name":"ExpressionStatement","src":"4568:71:2"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":45,"type":"mapping(address => bool)","value":"_isAdmin"},"id":215,"name":"Identifier","src":"4649:8:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":179,"type":"address","value":"_account"},"id":216,"name":"Identifier","src":"4658:8:2"}],"id":217,"name":"IndexAccess","src":"4649:18:2"},{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":218,"name":"Literal","src":"4670:4:2"}],"id":219,"name":"Assignment","src":"4649:25:2"}],"id":220,"name":"ExpressionStatement","src":"4649:25:2"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":47,"type":"uint256","value":"_adminCount"},"id":221,"name":"Identifier","src":"4684:11:2"}],"id":222,"name":"UnaryOperation","src":"4684:13:2"}],"id":223,"name":"ExpressionStatement","src":"4684:13:2"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":35,"type":"function (address,address)","value":"AddedAdmin"},"id":224,"name":"Identifier","src":"4712:10:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":624,"type":"msg","value":"msg"},"id":225,"name":"Identifier","src":"4723:3:2"}],"id":226,"name":"MemberAccess","src":"4723:10:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":179,"type":"address","value":"_account"},"id":227,"name":"Identifier","src":"4735:8:2"}],"id":228,"name":"FunctionCall","src":"4712:32:2"}],"id":229,"name":"EmitStatement","src":"4707:37:2"}],"id":230,"name":"Block","src":"4314:437:2"}],"id":231,"name":"FunctionDefinition","src":"4269:482:2"},{"attributes":{"constant":false,"documentation":"@notice Internal-only function that removes an existing admin.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_removeAdmin","payable":false,"scope":360,"stateMutability":"nonpayable","superFunction":null,"visibility":"private"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":259,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":232,"name":"ElementaryTypeName","src":"4850:7:2"}],"id":233,"name":"VariableDeclaration","src":"4850:16:2"}],"id":234,"name":"ParameterList","src":"4849:18:2"},{"attributes":{"parameters":[null]},"children":[],"id":235,"name":"ParameterList","src":"4876:0:2"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1c739c60677de73f71e20970ace8544e82a98bdcd16e21df5754e7a2756cbedc","typeString":"literal_string \"provided account is not an admin\""}],"overloadedDeclarations":[627,628],"referencedDeclaration":628,"type":"function (bool,string memory) pure","value":"require"},"id":236,"name":"Identifier","src":"4886:7:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":45,"type":"mapping(address => bool)","value":"_isAdmin"},"id":237,"name":"Identifier","src":"4894:8:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":233,"type":"address","value":"_account"},"id":238,"name":"Identifier","src":"4903:8:2"}],"id":239,"name":"IndexAccess","src":"4894:18:2"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e74206973206e6f7420616e2061646d696e","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is not an admin\"","value":"provided account is not an admin"},"id":240,"name":"Literal","src":"4914:34:2"}],"id":241,"name":"FunctionCall","src":"4886:63:2"}],"id":242,"name":"ExpressionStatement","src":"4886:63:2"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":45,"type":"mapping(address => bool)","value":"_isAdmin"},"id":243,"name":"Identifier","src":"4959:8:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":233,"type":"address","value":"_account"},"id":244,"name":"Identifier","src":"4968:8:2"}],"id":245,"name":"IndexAccess","src":"4959:18:2"},{"attributes":{"argumentTypes":null,"hexvalue":"66616c7365","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"false"},"id":246,"name":"Literal","src":"4980:5:2"}],"id":247,"name":"Assignment","src":"4959:26:2"}],"id":248,"name":"ExpressionStatement","src":"4959:26:2"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"--","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":47,"type":"uint256","value":"_adminCount"},"id":249,"name":"Identifier","src":"4995:11:2"}],"id":250,"name":"UnaryOperation","src":"4995:13:2"}],"id":251,"name":"ExpressionStatement","src":"4995:13:2"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":41,"type":"function (address,address)","value":"RemovedAdmin"},"id":252,"name":"Identifier","src":"5023:12:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":624,"type":"msg","value":"msg"},"id":253,"name":"Identifier","src":"5036:3:2"}],"id":254,"name":"MemberAccess","src":"5036:10:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":233,"type":"address","value":"_account"},"id":255,"name":"Identifier","src":"5048:8:2"}],"id":256,"name":"FunctionCall","src":"5023:34:2"}],"id":257,"name":"EmitStatement","src":"5018:39:2"}],"id":258,"name":"Block","src":"4876:188:2"}],"id":259,"name":"FunctionDefinition","src":"4828:236:2"},{"attributes":{"constant":false,"documentation":"@notice Internal-only function that adds a new controller.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_addController","payable":false,"scope":360,"stateMutability":"nonpayable","superFunction":null,"visibility":"private"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":313,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":260,"name":"ElementaryTypeName","src":"5161:7:2"}],"id":261,"name":"VariableDeclaration","src":"5161:16:2"}],"id":262,"name":"ParameterList","src":"5160:18:2"},{"attributes":{"parameters":[null]},"children":[],"id":263,"name":"ParameterList","src":"5187:0:2"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_491ef411eef1615ecf908753bd22ae846aac933d79b0327335a18e3988db6215","typeString":"literal_string \"provided account is already an admin\""}],"overloadedDeclarations":[627,628],"referencedDeclaration":628,"type":"function (bool,string memory) pure","value":"require"},"id":264,"name":"Identifier","src":"5197:7:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":45,"type":"mapping(address => bool)","value":"_isAdmin"},"id":265,"name":"Identifier","src":"5206:8:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":261,"type":"address","value":"_account"},"id":266,"name":"Identifier","src":"5215:8:2"}],"id":267,"name":"IndexAccess","src":"5206:18:2"}],"id":268,"name":"UnaryOperation","src":"5205:19:2"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e7420697320616c726561647920616e2061646d696e","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is already an admin\"","value":"provided account is already an admin"},"id":269,"name":"Literal","src":"5226:38:2"}],"id":270,"name":"FunctionCall","src":"5197:68:2"}],"id":271,"name":"ExpressionStatement","src":"5197:68:2"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ea5e43d1c86e3916e6efb6c5ad4a915069293195e26cfb0847e731b480c61b69","typeString":"literal_string \"provided account is already a controller\""}],"overloadedDeclarations":[627,628],"referencedDeclaration":628,"type":"function (bool,string memory) pure","value":"require"},"id":272,"name":"Identifier","src":"5275:7:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":51,"type":"mapping(address => bool)","value":"_isController"},"id":273,"name":"Identifier","src":"5284:13:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":261,"type":"address","value":"_account"},"id":274,"name":"Identifier","src":"5298:8:2"}],"id":275,"name":"IndexAccess","src":"5284:23:2"}],"id":276,"name":"UnaryOperation","src":"5283:24:2"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e7420697320616c7265616479206120636f6e74726f6c6c6572","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is already a controller\"","value":"provided account is already a controller"},"id":277,"name":"Literal","src":"5309:42:2"}],"id":278,"name":"FunctionCall","src":"5275:77:2"}],"id":279,"name":"ExpressionStatement","src":"5275:77:2"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_28b510b314348cd3eee423698115cd76923e2c39fff2abeefc9606aa1cd4c741","typeString":"literal_string \"provided account is already the owner\""}],"overloadedDeclarations":[627,628],"referencedDeclaration":628,"type":"function (bool,string memory) pure","value":"require"},"id":280,"name":"Identifier","src":"5362:7:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":569,"type":"function (address) view returns (bool)","value":"_isOwner"},"id":281,"name":"Identifier","src":"5371:8:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":261,"type":"address","value":"_account"},"id":282,"name":"Identifier","src":"5380:8:2"}],"id":283,"name":"FunctionCall","src":"5371:18:2"}],"id":284,"name":"UnaryOperation","src":"5370:19:2"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e7420697320616c726561647920746865206f776e6572","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is already the owner\"","value":"provided account is already the owner"},"id":285,"name":"Literal","src":"5391:39:2"}],"id":286,"name":"FunctionCall","src":"5362:69:2"}],"id":287,"name":"ExpressionStatement","src":"5362:69:2"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_da72d12cc1dab77bb87826430977e9a5d381ba54a70ad14cb2761e202f01ff3b","typeString":"literal_string \"provided account is the zero address\""}],"overloadedDeclarations":[627,628],"referencedDeclaration":628,"type":"function (bool,string memory) pure","value":"require"},"id":288,"name":"Identifier","src":"5441:7:2"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":261,"type":"address","value":"_account"},"id":289,"name":"Identifier","src":"5449:8:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":290,"name":"ElementaryTypeNameExpression","src":"5461:7:2"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":291,"name":"Literal","src":"5469:1:2"}],"id":292,"name":"FunctionCall","src":"5461:10:2"}],"id":293,"name":"BinaryOperation","src":"5449:22:2"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e7420697320746865207a65726f2061646472657373","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is the zero address\"","value":"provided account is the zero address"},"id":294,"name":"Literal","src":"5473:38:2"}],"id":295,"name":"FunctionCall","src":"5441:71:2"}],"id":296,"name":"ExpressionStatement","src":"5441:71:2"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":51,"type":"mapping(address => bool)","value":"_isController"},"id":297,"name":"Identifier","src":"5522:13:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":261,"type":"address","value":"_account"},"id":298,"name":"Identifier","src":"5536:8:2"}],"id":299,"name":"IndexAccess","src":"5522:23:2"},{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":300,"name":"Literal","src":"5548:4:2"}],"id":301,"name":"Assignment","src":"5522:30:2"}],"id":302,"name":"ExpressionStatement","src":"5522:30:2"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":53,"type":"uint256","value":"_controllerCount"},"id":303,"name":"Identifier","src":"5562:16:2"}],"id":304,"name":"UnaryOperation","src":"5562:18:2"}],"id":305,"name":"ExpressionStatement","src":"5562:18:2"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":23,"type":"function (address,address)","value":"AddedController"},"id":306,"name":"Identifier","src":"5595:15:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":624,"type":"msg","value":"msg"},"id":307,"name":"Identifier","src":"5611:3:2"}],"id":308,"name":"MemberAccess","src":"5611:10:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":261,"type":"address","value":"_account"},"id":309,"name":"Identifier","src":"5623:8:2"}],"id":310,"name":"FunctionCall","src":"5595:37:2"}],"id":311,"name":"EmitStatement","src":"5590:42:2"}],"id":312,"name":"Block","src":"5187:452:2"}],"id":313,"name":"FunctionDefinition","src":"5137:502:2"},{"attributes":{"constant":false,"documentation":"@notice Internal-only function that removes an existing controller.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_removeController","payable":false,"scope":360,"stateMutability":"nonpayable","superFunction":null,"visibility":"private"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":341,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":314,"name":"ElementaryTypeName","src":"5748:7:2"}],"id":315,"name":"VariableDeclaration","src":"5748:16:2"}],"id":316,"name":"ParameterList","src":"5747:18:2"},{"attributes":{"parameters":[null]},"children":[],"id":317,"name":"ParameterList","src":"5774:0:2"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_61b6700985eb6a295850095b1dc6d25862c09fd9ea7ce39c0e5f303dfe8ed582","typeString":"literal_string \"provided account is not a controller\""}],"overloadedDeclarations":[627,628],"referencedDeclaration":628,"type":"function (bool,string memory) pure","value":"require"},"id":318,"name":"Identifier","src":"5784:7:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":51,"type":"mapping(address => bool)","value":"_isController"},"id":319,"name":"Identifier","src":"5792:13:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":315,"type":"address","value":"_account"},"id":320,"name":"Identifier","src":"5806:8:2"}],"id":321,"name":"IndexAccess","src":"5792:23:2"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e74206973206e6f74206120636f6e74726f6c6c6572","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is not a controller\"","value":"provided account is not a controller"},"id":322,"name":"Literal","src":"5817:38:2"}],"id":323,"name":"FunctionCall","src":"5784:72:2"}],"id":324,"name":"ExpressionStatement","src":"5784:72:2"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":51,"type":"mapping(address => bool)","value":"_isController"},"id":325,"name":"Identifier","src":"5866:13:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":315,"type":"address","value":"_account"},"id":326,"name":"Identifier","src":"5880:8:2"}],"id":327,"name":"IndexAccess","src":"5866:23:2"},{"attributes":{"argumentTypes":null,"hexvalue":"66616c7365","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"false"},"id":328,"name":"Literal","src":"5892:5:2"}],"id":329,"name":"Assignment","src":"5866:31:2"}],"id":330,"name":"ExpressionStatement","src":"5866:31:2"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"--","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":53,"type":"uint256","value":"_controllerCount"},"id":331,"name":"Identifier","src":"5907:16:2"}],"id":332,"name":"UnaryOperation","src":"5907:18:2"}],"id":333,"name":"ExpressionStatement","src":"5907:18:2"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":29,"type":"function (address,address)","value":"RemovedController"},"id":334,"name":"Identifier","src":"5940:17:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":624,"type":"msg","value":"msg"},"id":335,"name":"Identifier","src":"5958:3:2"}],"id":336,"name":"MemberAccess","src":"5958:10:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":315,"type":"address","value":"_account"},"id":337,"name":"Identifier","src":"5970:8:2"}],"id":338,"name":"FunctionCall","src":"5940:39:2"}],"id":339,"name":"EmitStatement","src":"5935:44:2"}],"id":340,"name":"Block","src":"5774:212:2"}],"id":341,"name":"FunctionDefinition","src":"5721:265:2"},{"attributes":{"constant":false,"documentation":"/ @notice Withdraw tokens from the smart contract to the specified account.","implemented":true,"isConstructor":false,"name":"claim","payable":false,"scope":360,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_to","scope":359,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":342,"name":"ElementaryTypeName","src":"6090:7:2"}],"id":343,"name":"VariableDeclaration","src":"6090:11:2"},{"attributes":{"constant":false,"name":"_asset","scope":359,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":344,"name":"ElementaryTypeName","src":"6103:7:2"}],"id":345,"name":"VariableDeclaration","src":"6103:14:2"},{"attributes":{"constant":false,"name":"_amount","scope":359,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":346,"name":"ElementaryTypeName","src":"6119:4:2"}],"id":347,"name":"VariableDeclaration","src":"6119:12:2"}],"id":348,"name":"ParameterList","src":"6089:43:2"},{"attributes":{"parameters":[null]},"children":[],"id":351,"name":"ParameterList","src":"6152:0:2"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":472,"type":"modifier ()","value":"onlyOwner"},"id":349,"name":"Identifier","src":"6142:9:2"}],"id":350,"name":"ModifierInvocation","src":"6142:9:2"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":412,"type":"function (address,address,uint256)","value":"_claim"},"id":352,"name":"Identifier","src":"6162:6:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":343,"type":"address","value":"_to"},"id":353,"name":"Identifier","src":"6169:3:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":345,"type":"address","value":"_asset"},"id":354,"name":"Identifier","src":"6174:6:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":347,"type":"uint256","value":"_amount"},"id":355,"name":"Identifier","src":"6182:7:2"}],"id":356,"name":"FunctionCall","src":"6162:28:2"}],"id":357,"name":"ExpressionStatement","src":"6162:28:2"}],"id":358,"name":"Block","src":"6152:45:2"}],"id":359,"name":"FunctionDefinition","src":"6075:122:2"}],"id":360,"name":"ContractDefinition","src":"1361:4838:2"}],"id":361,"name":"SourceUnit","src":"770:5430:2"}},"internals/ownable.sol":{"AST":{"attributes":{"absolutePath":"internals/ownable.sol","exportedSymbols":{"Ownable":[570]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".25"]},"id":415,"name":"PragmaDirective","src":"767:24:3"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"contract","documentation":"@title Ownable has an owner address and provides basic authorization control functions.\n This contract is modified version of the MIT OpenZepplin Ownable contract\n This contract allows for the transferOwnership operation to be made impossible\n https://github.com/OpenZeppelin/openzeppelin-solidity/blob/master/contracts/ownership/Ownable.sol","fullyImplemented":true,"linearizedBaseContracts":[570],"name":"Ownable","scope":571},"children":[{"attributes":{"anonymous":false,"documentation":null,"name":"TransferredOwnership"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_from","scope":421,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":416,"name":"ElementaryTypeName","src":"1199:7:3"}],"id":417,"name":"VariableDeclaration","src":"1199:13:3"},{"attributes":{"constant":false,"indexed":false,"name":"_to","scope":421,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":418,"name":"ElementaryTypeName","src":"1214:7:3"}],"id":419,"name":"VariableDeclaration","src":"1214:11:3"}],"id":420,"name":"ParameterList","src":"1198:28:3"}],"id":421,"name":"EventDefinition","src":"1172:55:3"},{"attributes":{"anonymous":false,"documentation":null,"name":"LockedOwnership"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_locked","scope":425,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":422,"name":"ElementaryTypeName","src":"1254:7:3"}],"id":423,"name":"VariableDeclaration","src":"1254:15:3"}],"id":424,"name":"ParameterList","src":"1253:17:3"}],"id":425,"name":"EventDefinition","src":"1232:39:3"},{"attributes":{"constant":false,"name":"_owner","scope":570,"stateVariable":true,"storageLocation":"default","type":"address","value":null,"visibility":"private"},"children":[{"attributes":{"name":"address","type":"address"},"id":426,"name":"ElementaryTypeName","src":"1277:7:3"}],"id":427,"name":"VariableDeclaration","src":"1277:22:3"},{"attributes":{"constant":false,"name":"_isTransferable","scope":570,"stateVariable":true,"storageLocation":"default","type":"bool","value":null,"visibility":"private"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":428,"name":"ElementaryTypeName","src":"1305:4:3"}],"id":429,"name":"VariableDeclaration","src":"1305:28:3"},{"attributes":{"constant":false,"documentation":"@notice Constructor sets the original owner of the contract and whether or not it is one time transferable.","implemented":true,"isConstructor":true,"modifiers":[null],"name":"","payable":false,"scope":570,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account_","scope":460,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":430,"name":"ElementaryTypeName","src":"1468:7:3"}],"id":431,"name":"VariableDeclaration","src":"1468:17:3"},{"attributes":{"constant":false,"name":"_transferable_","scope":460,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":432,"name":"ElementaryTypeName","src":"1487:4:3"}],"id":433,"name":"VariableDeclaration","src":"1487:19:3"}],"id":434,"name":"ParameterList","src":"1467:40:3"},{"attributes":{"parameters":[null]},"children":[],"id":435,"name":"ParameterList","src":"1517:0:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":427,"type":"address","value":"_owner"},"id":436,"name":"Identifier","src":"1527:6:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":431,"type":"address","value":"_account_"},"id":437,"name":"Identifier","src":"1536:9:3"}],"id":438,"name":"Assignment","src":"1527:18:3"}],"id":439,"name":"ExpressionStatement","src":"1527:18:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":429,"type":"bool","value":"_isTransferable"},"id":440,"name":"Identifier","src":"1555:15:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":433,"type":"bool","value":"_transferable_"},"id":441,"name":"Identifier","src":"1573:14:3"}],"id":442,"name":"Assignment","src":"1555:32:3"}],"id":443,"name":"ExpressionStatement","src":"1555:32:3"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":429,"type":"bool","value":"_isTransferable"},"id":444,"name":"Identifier","src":"1671:15:3"}],"id":445,"name":"UnaryOperation","src":"1670:16:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":425,"type":"function (address)","value":"LockedOwnership"},"id":446,"name":"Identifier","src":"1707:15:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":431,"type":"address","value":"_account_"},"id":447,"name":"Identifier","src":"1723:9:3"}],"id":448,"name":"FunctionCall","src":"1707:26:3"}],"id":449,"name":"EmitStatement","src":"1702:31:3"}],"id":450,"name":"Block","src":"1688:56:3"}],"id":451,"name":"IfStatement","src":"1666:78:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":421,"type":"function (address,address)","value":"TransferredOwnership"},"id":452,"name":"Identifier","src":"1758:20:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":453,"name":"ElementaryTypeNameExpression","src":"1779:7:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":454,"name":"Literal","src":"1787:1:3"}],"id":455,"name":"FunctionCall","src":"1779:10:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":431,"type":"address","value":"_account_"},"id":456,"name":"Identifier","src":"1791:9:3"}],"id":457,"name":"FunctionCall","src":"1758:43:3"}],"id":458,"name":"EmitStatement","src":"1753:48:3"}],"id":459,"name":"Block","src":"1517:291:3"}],"id":460,"name":"FunctionDefinition","src":"1456:352:3"},{"attributes":{"documentation":"@notice Reverts if called by any account other than the owner.","name":"onlyOwner","visibility":"internal"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":461,"name":"ParameterList","src":"1903:2:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_96d7cc6c06f3d4101b2a14e4ad2906b79dc824ab8a44b63e774a71d2b9c7abd2","typeString":"literal_string \"sender is not an owner\""}],"overloadedDeclarations":[627,628],"referencedDeclaration":628,"type":"function (bool,string memory) pure","value":"require"},"id":462,"name":"Identifier","src":"1916:7:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":569,"type":"function (address) view returns (bool)","value":"_isOwner"},"id":463,"name":"Identifier","src":"1924:8:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":624,"type":"msg","value":"msg"},"id":464,"name":"Identifier","src":"1933:3:3"}],"id":465,"name":"MemberAccess","src":"1933:10:3"}],"id":466,"name":"FunctionCall","src":"1924:20:3"},{"attributes":{"argumentTypes":null,"hexvalue":"73656e646572206973206e6f7420616e206f776e6572","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"sender is not an owner\"","value":"sender is not an owner"},"id":467,"name":"Literal","src":"1946:24:3"}],"id":468,"name":"FunctionCall","src":"1916:55:3"}],"id":469,"name":"ExpressionStatement","src":"1916:55:3"},{"id":470,"name":"PlaceholderStatement","src":"1981:1:3"}],"id":471,"name":"Block","src":"1906:83:3"}],"id":472,"name":"ModifierDefinition","src":"1885:104:3"},{"attributes":{"constant":false,"documentation":"@notice Allows the current owner to transfer control of the contract to a new address.\n @param _account address to transfer ownership to.\n @param _transferable indicates whether to keep the ownership transferable.","implemented":true,"isConstructor":false,"name":"transferOwnership","payable":false,"scope":570,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":517,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":473,"name":"ElementaryTypeName","src":"2258:7:3"}],"id":474,"name":"VariableDeclaration","src":"2258:16:3"},{"attributes":{"constant":false,"name":"_transferable","scope":517,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":475,"name":"ElementaryTypeName","src":"2276:4:3"}],"id":476,"name":"VariableDeclaration","src":"2276:18:3"}],"id":477,"name":"ParameterList","src":"2257:38:3"},{"attributes":{"parameters":[null]},"children":[],"id":480,"name":"ParameterList","src":"2315:0:3"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":472,"type":"modifier ()","value":"onlyOwner"},"id":478,"name":"Identifier","src":"2305:9:3"}],"id":479,"name":"ModifierInvocation","src":"2305:9:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b2967f1eb3e333ead270a5eb332284149554452f916a981f27e70894d40a893f","typeString":"literal_string \"ownership is not transferable\""}],"overloadedDeclarations":[627,628],"referencedDeclaration":628,"type":"function (bool,string memory) pure","value":"require"},"id":481,"name":"Identifier","src":"2380:7:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":429,"type":"bool","value":"_isTransferable"},"id":482,"name":"Identifier","src":"2388:15:3"},{"attributes":{"argumentTypes":null,"hexvalue":"6f776e657273686970206973206e6f74207472616e7366657261626c65","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"ownership is not transferable\"","value":"ownership is not transferable"},"id":483,"name":"Literal","src":"2405:31:3"}],"id":484,"name":"FunctionCall","src":"2380:57:3"}],"id":485,"name":"ExpressionStatement","src":"2380:57:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_be619f073d6b85c603c617050d1729f1cf3b31bf6ae5ae03f35765577d9bb6c8","typeString":"literal_string \"owner cannot be set to zero address\""}],"overloadedDeclarations":[627,628],"referencedDeclaration":628,"type":"function (bool,string memory) pure","value":"require"},"id":486,"name":"Identifier","src":"2510:7:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":474,"type":"address","value":"_account"},"id":487,"name":"Identifier","src":"2518:8:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":488,"name":"ElementaryTypeNameExpression","src":"2530:7:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":489,"name":"Literal","src":"2538:1:3"}],"id":490,"name":"FunctionCall","src":"2530:10:3"}],"id":491,"name":"BinaryOperation","src":"2518:22:3"},{"attributes":{"argumentTypes":null,"hexvalue":"6f776e65722063616e6e6f742062652073657420746f207a65726f2061646472657373","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"owner cannot be set to zero address\"","value":"owner cannot be set to zero address"},"id":492,"name":"Literal","src":"2542:37:3"}],"id":493,"name":"FunctionCall","src":"2510:70:3"}],"id":494,"name":"ExpressionStatement","src":"2510:70:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":429,"type":"bool","value":"_isTransferable"},"id":495,"name":"Identifier","src":"2665:15:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":476,"type":"bool","value":"_transferable"},"id":496,"name":"Identifier","src":"2683:13:3"}],"id":497,"name":"Assignment","src":"2665:31:3"}],"id":498,"name":"ExpressionStatement","src":"2665:31:3"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":476,"type":"bool","value":"_transferable"},"id":499,"name":"Identifier","src":"2780:13:3"}],"id":500,"name":"UnaryOperation","src":"2779:14:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":425,"type":"function (address)","value":"LockedOwnership"},"id":501,"name":"Identifier","src":"2814:15:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":474,"type":"address","value":"_account"},"id":502,"name":"Identifier","src":"2830:8:3"}],"id":503,"name":"FunctionCall","src":"2814:25:3"}],"id":504,"name":"EmitStatement","src":"2809:30:3"}],"id":505,"name":"Block","src":"2795:55:3"}],"id":506,"name":"IfStatement","src":"2775:75:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":421,"type":"function (address,address)","value":"TransferredOwnership"},"id":507,"name":"Identifier","src":"2910:20:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":427,"type":"address","value":"_owner"},"id":508,"name":"Identifier","src":"2931:6:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":474,"type":"address","value":"_account"},"id":509,"name":"Identifier","src":"2939:8:3"}],"id":510,"name":"FunctionCall","src":"2910:38:3"}],"id":511,"name":"EmitStatement","src":"2905:43:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":427,"type":"address","value":"_owner"},"id":512,"name":"Identifier","src":"3008:6:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":474,"type":"address","value":"_account"},"id":513,"name":"Identifier","src":"3017:8:3"}],"id":514,"name":"Assignment","src":"3008:17:3"}],"id":515,"name":"ExpressionStatement","src":"3008:17:3"}],"id":516,"name":"Block","src":"2315:717:3"}],"id":517,"name":"FunctionDefinition","src":"2231:801:3"},{"attributes":{"constant":true,"documentation":"@notice check if the ownership is transferable.\n @return true if the ownership is transferable.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"isTransferable","payable":false,"scope":570,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":518,"name":"ParameterList","src":"3172:2:3"},{"children":[{"attributes":{"constant":false,"name":"","scope":525,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":519,"name":"ElementaryTypeName","src":"3198:4:3"}],"id":520,"name":"VariableDeclaration","src":"3198:4:3"}],"id":521,"name":"ParameterList","src":"3197:6:3"},{"children":[{"attributes":{"functionReturnParameters":521},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":429,"type":"bool","value":"_isTransferable"},"id":522,"name":"Identifier","src":"3221:15:3"}],"id":523,"name":"Return","src":"3214:22:3"}],"id":524,"name":"Block","src":"3204:39:3"}],"id":525,"name":"FunctionDefinition","src":"3149:94:3"},{"attributes":{"constant":false,"documentation":"@notice Allows the current owner to relinquish control of the contract.\n @dev Renouncing to ownership will leave the contract without an owner and unusable.\n @dev It will not be possible to call the functions with the `onlyOwner` modifier anymore.","implemented":true,"isConstructor":false,"name":"renounceOwnership","payable":false,"scope":570,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":526,"name":"ParameterList","src":"3545:2:3"},{"attributes":{"parameters":[null]},"children":[],"id":529,"name":"ParameterList","src":"3567:0:3"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":472,"type":"modifier ()","value":"onlyOwner"},"id":527,"name":"Identifier","src":"3557:9:3"}],"id":528,"name":"ModifierInvocation","src":"3557:9:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b2967f1eb3e333ead270a5eb332284149554452f916a981f27e70894d40a893f","typeString":"literal_string \"ownership is not transferable\""}],"overloadedDeclarations":[627,628],"referencedDeclaration":628,"type":"function (bool,string memory) pure","value":"require"},"id":530,"name":"Identifier","src":"3632:7:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":429,"type":"bool","value":"_isTransferable"},"id":531,"name":"Identifier","src":"3640:15:3"},{"attributes":{"argumentTypes":null,"hexvalue":"6f776e657273686970206973206e6f74207472616e7366657261626c65","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"ownership is not transferable\"","value":"ownership is not transferable"},"id":532,"name":"Literal","src":"3657:31:3"}],"id":533,"name":"FunctionCall","src":"3632:57:3"}],"id":534,"name":"ExpressionStatement","src":"3632:57:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":427,"type":"address","value":"_owner"},"id":535,"name":"Identifier","src":"3743:6:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":536,"name":"ElementaryTypeNameExpression","src":"3752:7:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":537,"name":"Literal","src":"3760:1:3"}],"id":538,"name":"FunctionCall","src":"3752:10:3"}],"id":539,"name":"Assignment","src":"3743:19:3"}],"id":540,"name":"ExpressionStatement","src":"3743:19:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":421,"type":"function (address,address)","value":"TransferredOwnership"},"id":541,"name":"Identifier","src":"3778:20:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":427,"type":"address","value":"_owner"},"id":542,"name":"Identifier","src":"3799:6:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":543,"name":"ElementaryTypeNameExpression","src":"3807:7:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":544,"name":"Literal","src":"3815:1:3"}],"id":545,"name":"FunctionCall","src":"3807:10:3"}],"id":546,"name":"FunctionCall","src":"3778:40:3"}],"id":547,"name":"EmitStatement","src":"3773:45:3"}],"id":548,"name":"Block","src":"3567:258:3"}],"id":549,"name":"FunctionDefinition","src":"3519:306:3"},{"attributes":{"constant":true,"documentation":"@notice Find out owner address\n @return address of the owner.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"owner","payable":false,"scope":570,"stateMutability":"view","superFunction":null,"visibility":"public"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":550,"name":"ParameterList","src":"3922:2:3"},{"children":[{"attributes":{"constant":false,"name":"","scope":557,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":551,"name":"ElementaryTypeName","src":"3946:7:3"}],"id":552,"name":"VariableDeclaration","src":"3946:7:3"}],"id":553,"name":"ParameterList","src":"3945:9:3"},{"children":[{"attributes":{"functionReturnParameters":553},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":427,"type":"address","value":"_owner"},"id":554,"name":"Identifier","src":"3972:6:3"}],"id":555,"name":"Return","src":"3965:13:3"}],"id":556,"name":"Block","src":"3955:30:3"}],"id":557,"name":"FunctionDefinition","src":"3908:77:3"},{"attributes":{"constant":true,"documentation":"@notice Check if owner address\n @return true if sender is the owner of the contract.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_isOwner","payable":false,"scope":570,"stateMutability":"view","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_address","scope":569,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":558,"name":"ElementaryTypeName","src":"4109:7:3"}],"id":559,"name":"VariableDeclaration","src":"4109:16:3"}],"id":560,"name":"ParameterList","src":"4108:18:3"},{"children":[{"attributes":{"constant":false,"name":"","scope":569,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":561,"name":"ElementaryTypeName","src":"4150:4:3"}],"id":562,"name":"VariableDeclaration","src":"4150:4:3"}],"id":563,"name":"ParameterList","src":"4149:6:3"},{"children":[{"attributes":{"functionReturnParameters":563},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":559,"type":"address","value":"_address"},"id":564,"name":"Identifier","src":"4173:8:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":427,"type":"address","value":"_owner"},"id":565,"name":"Identifier","src":"4185:6:3"}],"id":566,"name":"BinaryOperation","src":"4173:18:3"}],"id":567,"name":"Return","src":"4166:25:3"}],"id":568,"name":"Block","src":"4156:42:3"}],"id":569,"name":"FunctionDefinition","src":"4091:107:3"}],"id":570,"name":"ContractDefinition","src":"1149:3051:3"}],"id":571,"name":"SourceUnit","src":"767:3434:3"}}},"version":"0.4.25+commit.59dbf8f1.Linux.g++"} \ No newline at end of file diff --git a/build/internals/tokenWhitelist/Claimable.abi b/build/internals/tokenWhitelist/Claimable.abi new file mode 100644 index 00000000..1a28b788 --- /dev/null +++ b/build/internals/tokenWhitelist/Claimable.abi @@ -0,0 +1 @@ +[{"anonymous":false,"inputs":[{"indexed":false,"name":"_to","type":"address"},{"indexed":false,"name":"_asset","type":"address"},{"indexed":false,"name":"_amount","type":"uint256"}],"name":"Claimed","type":"event"}] \ No newline at end of file diff --git a/build/internals/tokenWhitelist/Claimable.bin b/build/internals/tokenWhitelist/Claimable.bin new file mode 100644 index 00000000..44b20f35 --- /dev/null +++ b/build/internals/tokenWhitelist/Claimable.bin @@ -0,0 +1 @@ +6080604052348015600f57600080fd5b50603580601d6000396000f3006080604052600080fd00a165627a7a72305820395b628221b28dc04b0498f55415adf15a37b484bd593b1cfd29b4eab19dc5300029 \ No newline at end of file diff --git a/build/internals/tokenWhitelist/Controller.abi b/build/internals/tokenWhitelist/Controller.abi index 5df6cd3a..10bc0c9e 100644 --- a/build/internals/tokenWhitelist/Controller.abi +++ b/build/internals/tokenWhitelist/Controller.abi @@ -1 +1 @@ -[{"constant":true,"inputs":[],"name":"controllerCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_account","type":"address"}],"name":"removeAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isTransferable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_account","type":"address"}],"name":"isAdmin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"adminCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_account","type":"address"}],"name":"addAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_account","type":"address"}],"name":"addController","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_account","type":"address"},{"name":"_transferable","type":"bool"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_account","type":"address"}],"name":"isController","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_account","type":"address"}],"name":"removeController","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_ownerAddress_","type":"address"},{"name":"_transferable_","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_sender","type":"address"},{"indexed":false,"name":"_controller","type":"address"}],"name":"AddedController","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_sender","type":"address"},{"indexed":false,"name":"_controller","type":"address"}],"name":"RemovedController","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_sender","type":"address"},{"indexed":false,"name":"_admin","type":"address"}],"name":"AddedAdmin","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_sender","type":"address"},{"indexed":false,"name":"_admin","type":"address"}],"name":"RemovedAdmin","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_from","type":"address"},{"indexed":false,"name":"_to","type":"address"}],"name":"TransferredOwnership","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_locked","type":"address"}],"name":"LockedOwnership","type":"event"}] \ No newline at end of file +[{"constant":true,"inputs":[],"name":"controllerCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_account","type":"address"}],"name":"removeAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isTransferable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_account","type":"address"}],"name":"isAdmin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"adminCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_account","type":"address"}],"name":"addAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_asset","type":"address"},{"name":"_amount","type":"uint256"}],"name":"claim","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_account","type":"address"}],"name":"addController","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_account","type":"address"},{"name":"_transferable","type":"bool"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_account","type":"address"}],"name":"isController","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_account","type":"address"}],"name":"removeController","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_ownerAddress_","type":"address"},{"name":"_transferable_","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_sender","type":"address"},{"indexed":false,"name":"_controller","type":"address"}],"name":"AddedController","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_sender","type":"address"},{"indexed":false,"name":"_controller","type":"address"}],"name":"RemovedController","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_sender","type":"address"},{"indexed":false,"name":"_admin","type":"address"}],"name":"AddedAdmin","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_sender","type":"address"},{"indexed":false,"name":"_admin","type":"address"}],"name":"RemovedAdmin","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_to","type":"address"},{"indexed":false,"name":"_asset","type":"address"},{"indexed":false,"name":"_amount","type":"uint256"}],"name":"Claimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_from","type":"address"},{"indexed":false,"name":"_to","type":"address"}],"name":"TransferredOwnership","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_locked","type":"address"}],"name":"LockedOwnership","type":"event"}] \ No newline at end of file diff --git a/build/internals/tokenWhitelist/Controller.bin b/build/internals/tokenWhitelist/Controller.bin index bbc39dbe..afa63062 100644 --- a/build/internals/tokenWhitelist/Controller.bin +++ b/build/internals/tokenWhitelist/Controller.bin @@ -1 +1 @@ -608060405234801561001057600080fd5b5060405160408061103a83398101604052805160209091015160008054600160a060020a031916600160a060020a0384161760a060020a60ff02191674010000000000000000000000000000000000000000831515810291909117918290558391839160ff91041615156100bb5760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b6040805160008152600160a060020a038416602082015281517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea5929181900390910190a150505050610f28806101126000396000f3006080604052600436106100b95763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166315b9a8b881146100be5780631785f53c146100e55780632121dc751461010857806324d7806c146101315780632b7832b3146101525780637048027514610167578063715018a6146101885780638da5cb5b1461019d578063a7fc7a07146101ce578063b242e534146101ef578063b429afeb14610215578063f6a74ed714610236575b600080fd5b3480156100ca57600080fd5b506100d3610257565b60408051918252519081900360200190f35b3480156100f157600080fd5b50610106600160a060020a036004351661025d565b005b34801561011457600080fd5b5061011d6102b6565b604080519115158252519081900360200190f35b34801561013d57600080fd5b5061011d600160a060020a03600435166102d7565b34801561015e57600080fd5b506100d36102f5565b34801561017357600080fd5b50610106600160a060020a03600435166102fb565b34801561019457600080fd5b50610106610351565b3480156101a957600080fd5b506101b261046c565b60408051600160a060020a039092168252519081900360200190f35b3480156101da57600080fd5b50610106600160a060020a036004351661047b565b3480156101fb57600080fd5b50610106600160a060020a036004351660243515156104e3565b34801561022157600080fd5b5061011d600160a060020a0360043516610722565b34801561024257600080fd5b50610106600160a060020a0360043516610740565b60045490565b610266336107a8565b15156102aa576040805160e560020a62461bcd0281526020600482015260166024820152600080516020610edd833981519152604482015290519081900360640190fd5b6102b3816107bc565b50565b60005474010000000000000000000000000000000000000000900460ff1690565b600160a060020a031660009081526001602052604090205460ff1690565b60025490565b610304336107a8565b1515610348576040805160e560020a62461bcd0281526020600482015260166024820152600080516020610edd833981519152604482015290519081900360640190fd5b6102b381610897565b61035a336107a8565b151561039e576040805160e560020a62461bcd0281526020600482015260166024820152600080516020610edd833981519152604482015290519081900360640190fd5b60005474010000000000000000000000000000000000000000900460ff161515610412576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916815560408051828152602081019290925280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1565b600054600160a060020a031690565b610484336102d7565b15156104da576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e2061646d696e00000000000000000000604482015290519081900360640190fd5b6102b381610b38565b6104ec336107a8565b1515610530576040805160e560020a62461bcd0281526020600482015260166024820152600080516020610edd833981519152604482015290519081900360640190fd5b60005474010000000000000000000000000000000000000000900460ff1615156105a4576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b600160a060020a038216151561062a576040805160e560020a62461bcd02815260206004820152602360248201527f6f776e65722063616e6e6f742062652073657420746f207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6000805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000831515908102919091179091556106aa5760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b60005460408051600160a060020a039283168152918416602083015280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1506000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a031660009081526003602052604090205460ff1690565b610749336102d7565b151561079f576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e2061646d696e00000000000000000000604482015290519081900360640190fd5b6102b381610ddc565b600054600160a060020a0390811691161490565b600160a060020a03811660009081526001602052604090205460ff16151561082e576040805160e560020a62461bcd02815260206004820181905260248201527f70726f7669646564206163636f756e74206973206e6f7420616e2061646d696e604482015290519081900360640190fd5b600160a060020a038116600081815260016020908152604091829020805460ff191690556002805460001901905581513381529081019290925280517f787a2e12f4a55b658b8f573c32432ee11a5e8b51677d1e1e937aaf6a0bb5776e9281900390910190a150565b600160a060020a03811660009081526001602052604090205460ff161561092d576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320616c726561647920616e206160448201527f646d696e00000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a03811660009081526003602052604090205460ff16156109c4576040805160e560020a62461bcd02815260206004820152602860248201527f70726f7669646564206163636f756e7420697320616c7265616479206120636f60448201527f6e74726f6c6c6572000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6109cd816107a8565b15610a48576040805160e560020a62461bcd02815260206004820152602560248201527f70726f7669646564206163636f756e7420697320616c7265616479207468652060448201527f6f776e6572000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0381161515610acd576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260016020818152604092839020805460ff1916831790556002805490920190915581513381529081019290925280517fc58b647b8ba5a8cab2f11f32673636cc1061324240972ed05e8cc005b81a4b7a9281900390910190a150565b600160a060020a03811660009081526001602052604090205460ff1615610bce576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320616c726561647920616e206160448201527f646d696e00000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a03811660009081526003602052604090205460ff1615610c65576040805160e560020a62461bcd02815260206004820152602860248201527f70726f7669646564206163636f756e7420697320616c7265616479206120636f60448201527f6e74726f6c6c6572000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b610c6e816107a8565b15610ce9576040805160e560020a62461bcd02815260206004820152602560248201527f70726f7669646564206163636f756e7420697320616c7265616479207468652060448201527f6f776e6572000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0381161515610d6e576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260036020908152604091829020805460ff1916600190811790915560048054909101905581513381529081019290925280517fb890d5abdcd5c2b61ce8bbc2cf6af9b6d7f7451830cbc85037cbdd182c86fe1d9281900390910190a150565b600160a060020a03811660009081526003602052604090205460ff161515610e73576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e74206973206e6f74206120636f6e74726f60448201527f6c6c657200000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260036020908152604091829020805460ff191690556004805460001901905581513381529081019290925280517fb6a283aaede08e15ef55c74e3014e30eb0c0040d4b156cccb77391268ea373949281900390910190a150560073656e646572206973206e6f7420616e206f776e657200000000000000000000a165627a7a72305820e3381d505607ee63056d5ba42a87e53a7b0dab423e773fa53f1e050ccb6949390029 \ No newline at end of file +608060405234801561001057600080fd5b5060405160408061128b83398101604052805160209091015160008054600160a060020a031916600160a060020a0384161760a060020a60ff02191674010000000000000000000000000000000000000000831515810291909117918290558391839160ff91041615156100bb5760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b6040805160008152600160a060020a038416602082015281517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea5929181900390910190a150505050611179806101126000396000f3006080604052600436106100c45763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166315b9a8b881146100c95780631785f53c146100f05780632121dc751461011357806324d7806c1461013c5780632b7832b31461015d5780637048027514610172578063715018a6146101935780638da5cb5b146101a8578063996cba68146101d9578063a7fc7a0714610203578063b242e53414610224578063b429afeb1461024a578063f6a74ed71461026b575b600080fd5b3480156100d557600080fd5b506100de61028c565b60408051918252519081900360200190f35b3480156100fc57600080fd5b50610111600160a060020a0360043516610292565b005b34801561011f57600080fd5b506101286102eb565b604080519115158252519081900360200190f35b34801561014857600080fd5b50610128600160a060020a036004351661030c565b34801561016957600080fd5b506100de61032a565b34801561017e57600080fd5b50610111600160a060020a0360043516610330565b34801561019f57600080fd5b50610111610386565b3480156101b457600080fd5b506101bd6104a1565b60408051600160a060020a039092168252519081900360200190f35b3480156101e557600080fd5b50610111600160a060020a03600435811690602435166044356104b0565b34801561020f57600080fd5b50610111600160a060020a036004351661050d565b34801561023057600080fd5b50610111600160a060020a03600435166024351515610575565b34801561025657600080fd5b50610128600160a060020a03600435166107b4565b34801561027757600080fd5b50610111600160a060020a03600435166107d2565b60045490565b61029b3361083a565b15156102df576040805160e560020a62461bcd028152602060048201526016602482015260008051602061112e833981519152604482015290519081900360640190fd5b6102e88161084e565b50565b60005474010000000000000000000000000000000000000000900460ff1690565b600160a060020a031660009081526001602052604090205460ff1690565b60025490565b6103393361083a565b151561037d576040805160e560020a62461bcd028152602060048201526016602482015260008051602061112e833981519152604482015290519081900360640190fd5b6102e881610929565b61038f3361083a565b15156103d3576040805160e560020a62461bcd028152602060048201526016602482015260008051602061112e833981519152604482015290519081900360640190fd5b60005474010000000000000000000000000000000000000000900460ff161515610447576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916815560408051828152602081019290925280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1565b600054600160a060020a031690565b6104b93361083a565b15156104fd576040805160e560020a62461bcd028152602060048201526016602482015260008051602061112e833981519152604482015290519081900360640190fd5b610508838383610bca565b505050565b6105163361030c565b151561056c576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e2061646d696e00000000000000000000604482015290519081900360640190fd5b6102e881610d89565b61057e3361083a565b15156105c2576040805160e560020a62461bcd028152602060048201526016602482015260008051602061112e833981519152604482015290519081900360640190fd5b60005474010000000000000000000000000000000000000000900460ff161515610636576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b600160a060020a03821615156106bc576040805160e560020a62461bcd02815260206004820152602360248201527f6f776e65722063616e6e6f742062652073657420746f207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6000805474ff00000000000000000000000000000000000000001916740100000000000000000000000000000000000000008315159081029190911790915561073c5760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b60005460408051600160a060020a039283168152918416602083015280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1506000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a031660009081526003602052604090205460ff1690565b6107db3361030c565b1515610831576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e2061646d696e00000000000000000000604482015290519081900360640190fd5b6102e88161102d565b600054600160a060020a0390811691161490565b600160a060020a03811660009081526001602052604090205460ff1615156108c0576040805160e560020a62461bcd02815260206004820181905260248201527f70726f7669646564206163636f756e74206973206e6f7420616e2061646d696e604482015290519081900360640190fd5b600160a060020a038116600081815260016020908152604091829020805460ff191690556002805460001901905581513381529081019290925280517f787a2e12f4a55b658b8f573c32432ee11a5e8b51677d1e1e937aaf6a0bb5776e9281900390910190a150565b600160a060020a03811660009081526001602052604090205460ff16156109bf576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320616c726561647920616e206160448201527f646d696e00000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a03811660009081526003602052604090205460ff1615610a56576040805160e560020a62461bcd02815260206004820152602860248201527f70726f7669646564206163636f756e7420697320616c7265616479206120636f60448201527f6e74726f6c6c6572000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b610a5f8161083a565b15610ada576040805160e560020a62461bcd02815260206004820152602560248201527f70726f7669646564206163636f756e7420697320616c7265616479207468652060448201527f6f776e6572000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0381161515610b5f576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260016020818152604092839020805460ff1916831790556002805490920190915581513381529081019290925280517fc58b647b8ba5a8cab2f11f32673636cc1061324240972ed05e8cc005b81a4b7a9281900390910190a150565b600160a060020a0382161515610c1657604051600160a060020a0384169082156108fc029083906000818181858888f19350505050158015610c10573d6000803e3d6000fd5b50610d3a565b81600160a060020a031663a9059cbb84836040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b158015610c9257600080fd5b505af1158015610ca6573d6000803e3d6000fd5b505050506040513d6020811015610cbc57600080fd5b50511515610d3a576040805160e560020a62461bcd02815260206004820152602560248201527f455243323020746f6b656e207472616e736665722077617320756e737563636560448201527f737366756c000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60408051600160a060020a0380861682528416602082015280820183905290517ff7a40077ff7a04c7e61f6f26fb13774259ddf1b6bce9ecf26a8276cdd39926839181900360600190a1505050565b600160a060020a03811660009081526001602052604090205460ff1615610e1f576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320616c726561647920616e206160448201527f646d696e00000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a03811660009081526003602052604090205460ff1615610eb6576040805160e560020a62461bcd02815260206004820152602860248201527f70726f7669646564206163636f756e7420697320616c7265616479206120636f60448201527f6e74726f6c6c6572000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b610ebf8161083a565b15610f3a576040805160e560020a62461bcd02815260206004820152602560248201527f70726f7669646564206163636f756e7420697320616c7265616479207468652060448201527f6f776e6572000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0381161515610fbf576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260036020908152604091829020805460ff1916600190811790915560048054909101905581513381529081019290925280517fb890d5abdcd5c2b61ce8bbc2cf6af9b6d7f7451830cbc85037cbdd182c86fe1d9281900390910190a150565b600160a060020a03811660009081526003602052604090205460ff1615156110c4576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e74206973206e6f74206120636f6e74726f60448201527f6c6c657200000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260036020908152604091829020805460ff191690556004805460001901905581513381529081019290925280517fb6a283aaede08e15ef55c74e3014e30eb0c0040d4b156cccb77391268ea373949281900390910190a150560073656e646572206973206e6f7420616e206f776e657200000000000000000000a165627a7a723058200e752e3a88decc3d8c5d0c377c032b4fe39f5eb66a5b9fe8ce60f184698d72480029 \ No newline at end of file diff --git a/build/internals/tokenWhitelist/ERC20.abi b/build/internals/tokenWhitelist/ERC20.abi new file mode 100644 index 00000000..e5360d0e --- /dev/null +++ b/build/internals/tokenWhitelist/ERC20.abi @@ -0,0 +1 @@ +[{"constant":false,"inputs":[{"name":"","type":"address"},{"name":"","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"","type":"address"},{"name":"","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] \ No newline at end of file diff --git a/build/internals/tokenWhitelist/ERC20.bin b/build/internals/tokenWhitelist/ERC20.bin new file mode 100644 index 00000000..e69de29b diff --git a/build/internals/tokenWhitelist/TokenWhitelist.abi b/build/internals/tokenWhitelist/TokenWhitelist.abi index b9f49cf9..09993a1c 100644 --- a/build/internals/tokenWhitelist/TokenWhitelist.abi +++ b/build/internals/tokenWhitelist/TokenWhitelist.abi @@ -1 +1 @@ -[{"constant":true,"inputs":[{"name":"_a","type":"address"}],"name":"getTokenInfo","outputs":[{"name":"","type":"string"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"bool"},{"name":"","type":"bool"},{"name":"","type":"bool"},{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isTransferable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_tokens","type":"address[]"},{"name":"_symbols","type":"bytes32[]"},{"name":"_magnitude","type":"uint256[]"},{"name":"_loadable","type":"bool[]"},{"name":"_burnable","type":"bool[]"},{"name":"_lastUpdate","type":"uint256"}],"name":"addTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getStablecoinInfo","outputs":[{"name":"","type":"string"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"bool"},{"name":"","type":"bool"},{"name":"","type":"bool"},{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokenAddressArray","outputs":[{"name":"","type":"address[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_tokens","type":"address[]"}],"name":"removeTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ensRegistry","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"oracleNode","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_account","type":"address"},{"name":"_transferable","type":"bool"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"},{"name":"_rate","type":"uint256"},{"name":"_updateDate","type":"uint256"}],"name":"updateTokenRate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"controllerNode","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"stablecoin","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_ens_","type":"address"},{"name":"_oracleNameHash_","type":"bytes32"},{"name":"_controllerNameHash_","type":"bytes32"},{"name":"_owner_","type":"address"},{"name":"_transferable_","type":"bool"},{"name":"_stabelcoinAddress_","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_sender","type":"address"},{"indexed":false,"name":"_token","type":"address"},{"indexed":false,"name":"_rate","type":"uint256"}],"name":"UpdatedTokenRate","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_sender","type":"address"},{"indexed":false,"name":"_token","type":"address"},{"indexed":false,"name":"_symbol","type":"string"},{"indexed":false,"name":"_magnitude","type":"uint256"},{"indexed":false,"name":"_loadable","type":"bool"},{"indexed":false,"name":"_burnable","type":"bool"}],"name":"AddedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_sender","type":"address"},{"indexed":false,"name":"_token","type":"address"}],"name":"RemovedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_from","type":"address"},{"indexed":false,"name":"_to","type":"address"}],"name":"TransferredOwnership","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_locked","type":"address"}],"name":"LockedOwnership","type":"event"}] \ No newline at end of file +[{"constant":true,"inputs":[{"name":"_a","type":"address"}],"name":"getTokenInfo","outputs":[{"name":"","type":"string"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"bool"},{"name":"","type":"bool"},{"name":"","type":"bool"},{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isTransferable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_tokens","type":"address[]"},{"name":"_symbols","type":"bytes32[]"},{"name":"_magnitude","type":"uint256[]"},{"name":"_loadable","type":"bool[]"},{"name":"_burnable","type":"bool[]"},{"name":"_lastUpdate","type":"uint256"}],"name":"addTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getStablecoinInfo","outputs":[{"name":"","type":"string"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"bool"},{"name":"","type":"bool"},{"name":"","type":"bool"},{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokenAddressArray","outputs":[{"name":"","type":"address[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_tokens","type":"address[]"}],"name":"removeTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ensRegistry","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"oracleNode","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_asset","type":"address"},{"name":"_amount","type":"uint256"}],"name":"claim","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_account","type":"address"},{"name":"_transferable","type":"bool"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"},{"name":"_rate","type":"uint256"},{"name":"_updateDate","type":"uint256"}],"name":"updateTokenRate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"controllerNode","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"stablecoin","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_ens_","type":"address"},{"name":"_oracleNameHash_","type":"bytes32"},{"name":"_controllerNameHash_","type":"bytes32"},{"name":"_owner_","type":"address"},{"name":"_transferable_","type":"bool"},{"name":"_stabelcoinAddress_","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_sender","type":"address"},{"indexed":false,"name":"_token","type":"address"},{"indexed":false,"name":"_rate","type":"uint256"}],"name":"UpdatedTokenRate","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_sender","type":"address"},{"indexed":false,"name":"_token","type":"address"},{"indexed":false,"name":"_symbol","type":"string"},{"indexed":false,"name":"_magnitude","type":"uint256"},{"indexed":false,"name":"_loadable","type":"bool"},{"indexed":false,"name":"_burnable","type":"bool"}],"name":"AddedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_sender","type":"address"},{"indexed":false,"name":"_token","type":"address"}],"name":"RemovedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_to","type":"address"},{"indexed":false,"name":"_asset","type":"address"},{"indexed":false,"name":"_amount","type":"uint256"}],"name":"Claimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_from","type":"address"},{"indexed":false,"name":"_to","type":"address"}],"name":"TransferredOwnership","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_locked","type":"address"}],"name":"LockedOwnership","type":"event"}] \ No newline at end of file diff --git a/build/internals/tokenWhitelist/TokenWhitelist.bin b/build/internals/tokenWhitelist/TokenWhitelist.bin index 6d008f22..fd906e9e 100644 --- a/build/internals/tokenWhitelist/TokenWhitelist.bin +++ b/build/internals/tokenWhitelist/TokenWhitelist.bin @@ -1 +1 @@ -608060405234801561001057600080fd5b5060405160c08061189f83398101604090815281516020830151918301516060840151608085015160a09095015160018054600160a060020a03808716600160a060020a03199283161792839055600080548316938216939093179092556002859055600380548915157401000000000000000000000000000000000000000090810260a060020a60ff0219958816929094169190911793909316919091179081905594969394929392849184910460ff1615156101055760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b6040805160008152600160a060020a038416602082015281517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea5929181900390910190a15050600794909455505060068054600160a060020a031916600160a060020a03909316929092179091555061171a9050806101856000396000f3006080604052600436106100cf5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631f69565f81146100d45780632121dc751461019f57806334c73edc146101c85780633efec5e91461021d578063443dd2a4146102325780636c3824ef14610297578063715018a6146102b75780637d73b231146102cc57806380cc0dda146102fd5780638da5cb5b14610324578063b242e53414610339578063d545782e1461035f578063e2b4ce9714610386578063e9cbd8221461039b575b600080fd5b3480156100e057600080fd5b506100f5600160a060020a03600435166103b0565b6040805160208082018990529181018790528515156060820152841515608082015283151560a082015260c0810183905260e08082528951908201528851909182916101008301918b019080838360005b8381101561015e578181015183820152602001610146565b50505050905090810190601f16801561018b5780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b3480156101ab57600080fd5b506101b46104ac565b604080519115158252519081900360200190f35b3480156101d457600080fd5b5061021b602460048035828101929082013591813580830192908201359160443580830192908201359160643580830192908201359160843591820191013560a4356104ce565b005b34801561022957600080fd5b506100f5610965565b34801561023e57600080fd5b50610247610a61565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561028357818101518382015260200161026b565b505050509050019250505060405180910390f35b3480156102a357600080fd5b5061021b6004803560248101910135610ac3565b3480156102c357600080fd5b5061021b610d62565b3480156102d857600080fd5b506102e1610e8f565b60408051600160a060020a039092168252519081900360200190f35b34801561030957600080fd5b50610312610e9e565b60408051918252519081900360200190f35b34801561033057600080fd5b506102e1610ea4565b34801561034557600080fd5b5061021b600160a060020a03600435166024351515610eb3565b34801561036b57600080fd5b5061021b600160a060020a0360043516602435604435611104565b34801561039257600080fd5b50610312611266565b3480156103a757600080fd5b506102e161126c565b600160a060020a0381166000908152600460208181526040808420600180820154600280840154600385015497850154855487516101009682161587026000190190911693909304601f81018990048902840189019097528683526060999889988998899889988998919788979296929560ff808216969382048116956201000090920416939289919083018282801561048b5780601f106104605761010080835404028352916020019161048b565b820191906000526020600020905b81548152906001019060200180831161046e57829003601f168201915b50505050509650975097509750975097509750975050919395979092949650565b60035474010000000000000000000000000000000000000000900460ff165b90565b600060606104db3361127b565b1515610531576040805160e560020a62461bcd02815260206004820152601a60248201527f73656e646572206973206e6f74206120636f6e74726f6c6c6572000000000000604482015290519081900360640190fd5b8b8a14801561053f57508b88145b801561054a57508b86145b801561055557508b86145b15156105ab576040805160e560020a62461bcd02815260206004820152601e60248201527f706172616d65746572206c656e6774687320646f206e6f74206d617463680000604482015290519081900360640190fd5b600091505b8b82101561095657600460008e8e858181106105c857fe5b60209081029290920135600160a060020a03168352508101919091526040016000206003015460ff1615610646576040805160e560020a62461bcd02815260206004820152601760248201527f746f6b656e20616c726561647920617661696c61626c65000000000000000000604482015290519081900360640190fd5b61066c6106678c8c8581811061065857fe5b6020029190910135905061132d565b611359565b905060e0604051908101604052808281526020018a8a85818110151561068e57fe5b9050602002013581526020016000815260200160011515815260200188888581811015156106b857fe5b602090810292909201351515835250018686858181106106d457fe5b60209081029290920135151583525001849052600460008f8f868181106106f757fe5b90506020020135600160a060020a0316600160a060020a0316600160a060020a0316815260200190815260200160002060008201518160000190805190602001906107439291906115cf565b5060208201516001820155604082015160028201556060820151600382018054608085015160a08601511515620100000262ff0000199115156101000261ff001995151560ff199094169390931794909416919091171691909117905560c09091015160049091015560058d8d848181106107ba57fe5b8354600181018555600094855260209485902001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0395909202939093013593909316929092179055507f1802e89da3f6ef84e024e37454c226b1e13bf846ce71cd2a1d24faef9cbf779b338e8e8581811061083157fe5b90506020020135600160a060020a0316838c8c87818110151561085057fe5b905060200201358b8b88818110151561086557fe5b9050602002013515158a8a89818110151561087c57fe5b9050602002013515156040518087600160a060020a0316600160a060020a0316815260200186600160a060020a0316600160a060020a03168152602001806020018581526020018415151515815260200183151515158152602001828103825286818151815260200191508051906020019080838360005b8381101561090c5781810151838201526020016108f4565b50505050905090810190601f1680156109395780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390a16001909101906105b0565b50505050505050505050505050565b600654600160a060020a03166000908152600460208181526040808420600180820154600280840154600385015497850154855487516101009682161587026000190190911693909304601f81018990048902840189019097528683526060999889988998899889988998919788979296929560ff8082169693820481169562010000909204169392899190830182828015610a425780601f10610a1757610100808354040283529160200191610a42565b820191906000526020600020905b815481529060010190602001808311610a2557829003601f168201915b5050505050965097509750975097509750975097505090919293949596565b60606005805480602002602001604051908101604052809291908181526020018280548015610ab957602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610a9b575b5050505050905090565b6000806000610ad13361127b565b1515610b27576040805160e560020a62461bcd02815260206004820152601a60248201527f73656e646572206973206e6f74206120636f6e74726f6c6c6572000000000000604482015290519081900360640190fd5b600092505b83831015610d5b5760046000868686818110610b4457fe5b60209081029290920135600160a060020a03168352508101919091526040016000206003015460ff161515610bc3576040805160e560020a62461bcd02815260206004820152601660248201527f746f6b656e206973206e6f7420617661696c61626c6500000000000000000000604482015290519081900360640190fd5b848484818110610bcf57fe5b60209081029290920135600160a060020a03166000818152600490935260408320909450919050610c00828261164d565b506000600182018190556002820181905560038201805462ffffff19169055600490910181905590505b600554610c3e90600163ffffffff6113b316565b811015610cf95781600160a060020a0316600582815481101515610c5e57fe5b600091825260209091200154600160a060020a03161415610cf15760058054610c8e90600163ffffffff6113b316565b81548110610c9857fe5b60009182526020909120015460058054600160a060020a039092169183908110610cbe57fe5b9060005260206000200160006101000a815481600160a060020a030219169083600160a060020a03160217905550610cf9565b600101610c2a565b6005805490610d0c906000198301611694565b5060408051338152600160a060020a038416602082015281517f703f7e3f084d5b8dcc12fddcfd9a70d65b6b21ec7659e4608dbaf4419ede3ad0929181900390910190a1600190920191610b2c565b5050505050565b610d6b336113ca565b1515610dc1576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e206f776e657200000000000000000000604482015290519081900360640190fd5b60035474010000000000000000000000000000000000000000900460ff161515610e35576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b6003805473ffffffffffffffffffffffffffffffffffffffff19169055604080516000808252602082015281517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea5929181900390910190a1565b600154600160a060020a031690565b60075490565b600354600160a060020a031690565b610ebc336113ca565b1515610f12576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e206f776e657200000000000000000000604482015290519081900360640190fd5b60035474010000000000000000000000000000000000000000900460ff161515610f86576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b600160a060020a038216151561100c576040805160e560020a62461bcd02815260206004820152602360248201527f6f776e65722063616e6e6f742062652073657420746f207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6003805474ff00000000000000000000000000000000000000001916740100000000000000000000000000000000000000008315159081029190911790915561108c5760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b60035460408051600160a060020a039283168152918416602083015280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1506003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60006111116007546113de565b905061111c3361127b565b8061112f575033600160a060020a038216145b1515611185576040805160e560020a62461bcd02815260206004820152601b60248201527f656974686572206f7261636c65206f7220636f6e74726f6c6c65720000000000604482015290519081900360640190fd5b600160a060020a03841660009081526004602052604090206003015460ff1615156111fa576040805160e560020a62461bcd02815260206004820152601660248201527f746f6b656e206973206e6f7420617661696c61626c6500000000000000000000604482015290519081900360640190fd5b600160a060020a03841660008181526004602081815260409283902060028101889055909101859055815133815290810192909252818101859052517fdb3a4cfb4cd8ac94343ff7440cee8d05ade309056203f0e53ca49b6db8197c7d9181900360600190a150505050565b60025490565b600654600160a060020a031690565b60006112886002546113de565b600160a060020a031663b429afeb836040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b1580156112fb57600080fd5b505af115801561130f573d6000803e3d6000fd5b505050506040513d602081101561132557600080fd5b505192915050565b6113356116bd565b6040516020810160405282815280602083015250611352826114d5565b8152919050565b606080600083600001516040519080825280601f01601f191660200182016040528015611390578160200160208202803883390190505b5091506020820190506113ac818560200151866000015161158b565b5092915050565b600080838311156113c357600080fd5b5050900390565b600354600160a060020a0390811691161490565b60008054604080517f0178b8bf000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691630178b8bf9160248082019260209290919082900301818787803b15801561144557600080fd5b505af1158015611459573d6000803e3d6000fd5b505050506040513d602081101561146f57600080fd5b5051604080517f3b3b57de000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691633b3b57de916024808201926020929091908290030181600087803b1580156112fb57600080fd5b6000808215156114e85760009150611585565b6fffffffffffffffffffffffffffffffff8316151561151b57601001700100000000000000000000000000000000830492505b67ffffffffffffffff8316151561153e5760080168010000000000000000830492505b63ffffffff8316151561155957600401640100000000830492505b61ffff831615156115705760020162010000830492505b60ff8316151561157e576001015b8060200391505b50919050565b60005b602082106115b0578251845260209384019390920191601f199091019061158e565b50905182516020929092036101000a6000190180199091169116179052565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061161057805160ff191683800117855561163d565b8280016001018555821561163d579182015b8281111561163d578251825591602001919060010190611622565b506116499291506116d4565b5090565b50805460018160011615610100020316600290046000825580601f106116735750611691565b601f01602090049060005260206000209081019061169191906116d4565b50565b8154818355818111156116b8576000838152602090206116b89181019083016116d4565b505050565b604080518082019091526000808252602082015290565b6104cb91905b8082111561164957600081556001016116da5600a165627a7a7230582093b6ea30833eac9793938fe8dab81d00e6ef1dbb9489c89e10258ba8847c4c870029 \ No newline at end of file +608060405234801561001057600080fd5b5060405160c080611ab283398101604090815281516020830151918301516060840151608085015160a09095015160018054600160a060020a03808716600160a060020a03199283161792839055600080548316938216939093179092556002859055600380548915157401000000000000000000000000000000000000000090810260a060020a60ff0219958816929094169190911793909316919091179081905594969394929392849184910460ff1615156101055760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b6040805160008152600160a060020a038416602082015281517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea5929181900390910190a15050600794909455505060068054600160a060020a031916600160a060020a03909316929092179091555061192d9050806101856000396000f3006080604052600436106100c15763ffffffff60e060020a6000350416631f69565f81146100c65780632121dc751461019157806334c73edc146101ba5780633efec5e91461020f578063443dd2a4146102245780636c3824ef14610289578063715018a6146102a95780637d73b231146102be57806380cc0dda146102ef5780638da5cb5b14610316578063996cba681461032b578063b242e53414610355578063d545782e1461037b578063e2b4ce97146103a2578063e9cbd822146103b7575b600080fd5b3480156100d257600080fd5b506100e7600160a060020a03600435166103cc565b6040805160208082018990529181018790528515156060820152841515608082015283151560a082015260c0810183905260e08082528951908201528851909182916101008301918b019080838360005b83811015610150578181015183820152602001610138565b50505050905090810190601f16801561017d5780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b34801561019d57600080fd5b506101a66104c8565b604080519115158252519081900360200190f35b3480156101c657600080fd5b5061020d602460048035828101929082013591813580830192908201359160443580830192908201359160643580830192908201359160843591820191013560a4356104ea565b005b34801561021b57600080fd5b506100e7610981565b34801561023057600080fd5b50610239610a7d565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561027557818101518382015260200161025d565b505050509050019250505060405180910390f35b34801561029557600080fd5b5061020d6004803560248101910135610adf565b3480156102b557600080fd5b5061020d610d7e565b3480156102ca57600080fd5b506102d3610eab565b60408051600160a060020a039092168252519081900360200190f35b3480156102fb57600080fd5b50610304610eba565b60408051918252519081900360200190f35b34801561032257600080fd5b506102d3610ec0565b34801561033757600080fd5b5061020d600160a060020a0360043581169060243516604435610ecf565b34801561036157600080fd5b5061020d600160a060020a03600435166024351515610f3e565b34801561038757600080fd5b5061020d600160a060020a036004351660243560443561118f565b3480156103ae57600080fd5b506103046112f1565b3480156103c357600080fd5b506102d36112f7565b600160a060020a0381166000908152600460208181526040808420600180820154600280840154600385015497850154855487516101009682161587026000190190911693909304601f81018990048902840189019097528683526060999889988998899889988998919788979296929560ff80821696938204811695620100009092041693928991908301828280156104a75780601f1061047c576101008083540402835291602001916104a7565b820191906000526020600020905b81548152906001019060200180831161048a57829003601f168201915b50505050509650975097509750975097509750975050919395979092949650565b60035474010000000000000000000000000000000000000000900460ff165b90565b600060606104f733611306565b151561054d576040805160e560020a62461bcd02815260206004820152601a60248201527f73656e646572206973206e6f74206120636f6e74726f6c6c6572000000000000604482015290519081900360640190fd5b8b8a14801561055b57508b88145b801561056657508b86145b801561057157508b86145b15156105c7576040805160e560020a62461bcd02815260206004820152601e60248201527f706172616d65746572206c656e6774687320646f206e6f74206d617463680000604482015290519081900360640190fd5b600091505b8b82101561097257600460008e8e858181106105e457fe5b60209081029290920135600160a060020a03168352508101919091526040016000206003015460ff1615610662576040805160e560020a62461bcd02815260206004820152601760248201527f746f6b656e20616c726561647920617661696c61626c65000000000000000000604482015290519081900360640190fd5b6106886106838c8c8581811061067457fe5b6020029190910135905061139f565b6113cb565b905060e0604051908101604052808281526020018a8a8581811015156106aa57fe5b9050602002013581526020016000815260200160011515815260200188888581811015156106d457fe5b602090810292909201351515835250018686858181106106f057fe5b60209081029290920135151583525001849052600460008f8f8681811061071357fe5b90506020020135600160a060020a0316600160a060020a0316600160a060020a03168152602001908152602001600020600082015181600001908051906020019061075f9291906117e7565b5060208201516001820155604082015160028201556060820151600382018054608085015160a08601511515620100000262ff0000199115156101000261ff001995151560ff199094169390931794909416919091171691909117905560c09091015160049091015560058d8d848181106107d657fe5b8354600181018555600094855260209485902001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0395909202939093013593909316929092179055507f1802e89da3f6ef84e024e37454c226b1e13bf846ce71cd2a1d24faef9cbf779b338e8e8581811061084d57fe5b90506020020135600160a060020a0316838c8c87818110151561086c57fe5b905060200201358b8b88818110151561088157fe5b9050602002013515158a8a89818110151561089857fe5b9050602002013515156040518087600160a060020a0316600160a060020a0316815260200186600160a060020a0316600160a060020a03168152602001806020018581526020018415151515815260200183151515158152602001828103825286818151815260200191508051906020019080838360005b83811015610928578181015183820152602001610910565b50505050905090810190601f1680156109555780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390a16001909101906105cc565b50505050505050505050505050565b600654600160a060020a03166000908152600460208181526040808420600180820154600280840154600385015497850154855487516101009682161587026000190190911693909304601f81018990048902840189019097528683526060999889988998899889988998919788979296929560ff8082169693820481169562010000909204169392899190830182828015610a5e5780601f10610a3357610100808354040283529160200191610a5e565b820191906000526020600020905b815481529060010190602001808311610a4157829003601f168201915b5050505050965097509750975097509750975097505090919293949596565b60606005805480602002602001604051908101604052809291908181526020018280548015610ad557602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610ab7575b5050505050905090565b6000806000610aed33611306565b1515610b43576040805160e560020a62461bcd02815260206004820152601a60248201527f73656e646572206973206e6f74206120636f6e74726f6c6c6572000000000000604482015290519081900360640190fd5b600092505b83831015610d775760046000868686818110610b6057fe5b60209081029290920135600160a060020a03168352508101919091526040016000206003015460ff161515610bdf576040805160e560020a62461bcd02815260206004820152601660248201527f746f6b656e206973206e6f7420617661696c61626c6500000000000000000000604482015290519081900360640190fd5b848484818110610beb57fe5b60209081029290920135600160a060020a03166000818152600490935260408320909450919050610c1c8282611865565b506000600182018190556002820181905560038201805462ffffff19169055600490910181905590505b600554610c5a90600163ffffffff61142516565b811015610d155781600160a060020a0316600582815481101515610c7a57fe5b600091825260209091200154600160a060020a03161415610d0d5760058054610caa90600163ffffffff61142516565b81548110610cb457fe5b60009182526020909120015460058054600160a060020a039092169183908110610cda57fe5b9060005260206000200160006101000a815481600160a060020a030219169083600160a060020a03160217905550610d15565b600101610c46565b6005805490610d289060001983016118ac565b5060408051338152600160a060020a038416602082015281517f703f7e3f084d5b8dcc12fddcfd9a70d65b6b21ec7659e4608dbaf4419ede3ad0929181900390910190a1600190920191610b48565b5050505050565b610d873361143c565b1515610ddd576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e206f776e657200000000000000000000604482015290519081900360640190fd5b60035474010000000000000000000000000000000000000000900460ff161515610e51576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b6003805473ffffffffffffffffffffffffffffffffffffffff19169055604080516000808252602082015281517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea5929181900390910190a1565b600154600160a060020a031690565b60075490565b600354600160a060020a031690565b610ed83361143c565b1515610f2e576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e206f776e657200000000000000000000604482015290519081900360640190fd5b610f39838383611450565b505050565b610f473361143c565b1515610f9d576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e206f776e657200000000000000000000604482015290519081900360640190fd5b60035474010000000000000000000000000000000000000000900460ff161515611011576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b600160a060020a0382161515611097576040805160e560020a62461bcd02815260206004820152602360248201527f6f776e65722063616e6e6f742062652073657420746f207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6003805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000831515908102919091179091556111175760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b60035460408051600160a060020a039283168152918416602083015280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1506003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600061119c6007546115f6565b90506111a733611306565b806111ba575033600160a060020a038216145b1515611210576040805160e560020a62461bcd02815260206004820152601b60248201527f656974686572206f7261636c65206f7220636f6e74726f6c6c65720000000000604482015290519081900360640190fd5b600160a060020a03841660009081526004602052604090206003015460ff161515611285576040805160e560020a62461bcd02815260206004820152601660248201527f746f6b656e206973206e6f7420617661696c61626c6500000000000000000000604482015290519081900360640190fd5b600160a060020a03841660008181526004602081815260409283902060028101889055909101859055815133815290810192909252818101859052517fdb3a4cfb4cd8ac94343ff7440cee8d05ade309056203f0e53ca49b6db8197c7d9181900360600190a150505050565b60025490565b600654600160a060020a031690565b60006113136002546115f6565b600160a060020a031663b429afeb836040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b15801561136d57600080fd5b505af1158015611381573d6000803e3d6000fd5b505050506040513d602081101561139757600080fd5b505192915050565b6113a76118d0565b60405160208101604052828152806020830152506113c4826116ed565b8152919050565b606080600083600001516040519080825280601f01601f191660200182016040528015611402578160200160208202803883390190505b50915060208201905061141e81856020015186600001516117a3565b5092915050565b6000808383111561143557600080fd5b5050900390565b600354600160a060020a0390811691161490565b600160a060020a038216151561149c57604051600160a060020a0384169082156108fc029083906000818181858888f19350505050158015611496573d6000803e3d6000fd5b506115a7565b81600160a060020a031663a9059cbb84836040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b1580156114ff57600080fd5b505af1158015611513573d6000803e3d6000fd5b505050506040513d602081101561152957600080fd5b505115156115a7576040805160e560020a62461bcd02815260206004820152602560248201527f455243323020746f6b656e207472616e736665722077617320756e737563636560448201527f737366756c000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60408051600160a060020a0380861682528416602082015280820183905290517ff7a40077ff7a04c7e61f6f26fb13774259ddf1b6bce9ecf26a8276cdd39926839181900360600190a1505050565b60008054604080517f0178b8bf000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691630178b8bf9160248082019260209290919082900301818787803b15801561165d57600080fd5b505af1158015611671573d6000803e3d6000fd5b505050506040513d602081101561168757600080fd5b5051604080517f3b3b57de000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691633b3b57de916024808201926020929091908290030181600087803b15801561136d57600080fd5b600080821515611700576000915061179d565b6fffffffffffffffffffffffffffffffff8316151561173357601001700100000000000000000000000000000000830492505b67ffffffffffffffff831615156117565760080168010000000000000000830492505b63ffffffff8316151561177157600401640100000000830492505b61ffff831615156117885760020162010000830492505b60ff83161515611796576001015b8060200391505b50919050565b60005b602082106117c8578251845260209384019390920191601f19909101906117a6565b50905182516020929092036101000a6000190180199091169116179052565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061182857805160ff1916838001178555611855565b82800160010185558215611855579182015b8281111561185557825182559160200191906001019061183a565b506118619291506118e7565b5090565b50805460018160011615610100020316600290046000825580601f1061188b57506118a9565b601f0160209004906000526020600020908101906118a991906118e7565b50565b815481835581811115610f3957600083815260209020610f399181019083016118e7565b604080518082019091526000808252602082015290565b6104e791905b8082111561186157600081556001016118ed5600a165627a7a723058208c4be71ac085882be552fd06a3c105b468b8d2bbdf25c86681a98320fb418c500029 \ No newline at end of file diff --git a/build/internals/tokenWhitelist/combined.json b/build/internals/tokenWhitelist/combined.json index 2bf022ea..f5073386 100644 --- a/build/internals/tokenWhitelist/combined.json +++ b/build/internals/tokenWhitelist/combined.json @@ -1 +1 @@ -{"contracts":{"externals/SafeMath.sol:SafeMath":{"bin":"604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820564cf9c59188bb4d206d867a51ebdc48341c3b90a16491599b74ecfe95674b940029","bin-runtime":"73000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820564cf9c59188bb4d206d867a51ebdc48341c3b90a16491599b74ecfe95674b940029","srcmap":"1289:1531:0:-;;132:2:-1;166:7;155:9;146:7;137:37;252:7;246:14;243:1;238:23;232:4;229:33;270:1;265:20;;;;222:63;;265:20;274:9;222:63;;298:9;295:1;288:20;328:4;319:7;311:22;352:7;343;336:24","srcmap-runtime":"1289:1531:0:-;;;;;;;;"},"externals/ens/ENS.sol:ENS":{"bin":"","bin-runtime":"","srcmap":"","srcmap-runtime":""},"externals/ens/PublicResolver.sol:PublicResolver":{"bin":"608060405234801561001057600080fd5b50604051602080611400833981016040525160008054600160a060020a03909216600160a060020a03199092169190911790556113ae806100526000396000f3006080604052600436106100da5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166301ffc9a781146100df57806310f13a8c146101155780632203ab56146101b357806329cd62ea1461024d5780632dff69411461026b5780633b3b57de1461029557806359d1d43c146102c9578063623195b01461039c578063691f3431146103fc5780637737221314610414578063aa4cb54714610472578063c3d014d6146104d0578063c8690233146104eb578063d5fa2b001461051c578063e89401a114610540575b600080fd5b3480156100eb57600080fd5b50610101600160e060020a031960043516610558565b604080519115158252519081900360200190f35b34801561012157600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526101b195833595369560449491939091019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437509497506106f99650505050505050565b005b3480156101bf57600080fd5b506101ce60043560243561091f565b6040518083815260200180602001828103825283818151815260200191508051906020019080838360005b838110156102115781810151838201526020016101f9565b50505050905090810190601f16801561023e5780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b34801561025957600080fd5b506101b1600435602435604435610a2b565b34801561027757600080fd5b50610283600435610b2b565b60408051918252519081900360200190f35b3480156102a157600080fd5b506102ad600435610b41565b60408051600160a060020a039092168252519081900360200190f35b3480156102d557600080fd5b5060408051602060046024803582810135601f8101859004850286018501909652858552610327958335953695604494919390910191908190840183828082843750949750610b5c9650505050505050565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610361578181015183820152602001610349565b50505050905090810190601f16801561038e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103a857600080fd5b50604080516020600460443581810135601f81018490048402850184019095528484526101b1948235946024803595369594606494920191908190840183828082843750949750610c659650505050505050565b34801561040857600080fd5b50610327600435610d66565b34801561042057600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526101b1958335953695604494919390910191908190840183828082843750949750610e0a9650505050505050565b34801561047e57600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526101b1958335953695604494919390910191908190840183828082843750949750610f609650505050505050565b3480156104dc57600080fd5b506101b1600435602435611076565b3480156104f757600080fd5b50610503600435611157565b6040805192835260208301919091528051918290030190f35b34801561052857600080fd5b506101b1600435600160a060020a0360243516611174565b34801561054c57600080fd5b50610327600435611278565b6000600160e060020a031982167f3b3b57de0000000000000000000000000000000000000000000000000000000014806105bb5750600160e060020a031982167fd8389dc500000000000000000000000000000000000000000000000000000000145b806105ef5750600160e060020a031982167f691f343100000000000000000000000000000000000000000000000000000000145b806106235750600160e060020a031982167f2203ab5600000000000000000000000000000000000000000000000000000000145b806106575750600160e060020a031982167fc869023300000000000000000000000000000000000000000000000000000000145b8061068b5750600160e060020a031982167f59d1d43c00000000000000000000000000000000000000000000000000000000145b806106bf5750600160e060020a031982167fe89401a100000000000000000000000000000000000000000000000000000000145b806106f35750600160e060020a031982167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b600080546040805160e060020a6302571be302815260048101879052905186933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b15801561074c57600080fd5b505af1158015610760573d6000803e3d6000fd5b505050506040513d602081101561077657600080fd5b5051600160a060020a03161461078b57600080fd5b6000848152600160209081526040918290209151855185936005019287929182918401908083835b602083106107d25780518252601f1990920191602091820191016107b3565b51815160209384036101000a6000190180199092169116179052920194855250604051938490038101909320845161081395919491909101925090506112e7565b5083600019167fd8c9334b1a9c2f9da342a0a2b32629c1a229b6445dad78947f674b44444a75508485604051808060200180602001838103835285818151815260200191508051906020019080838360005b8381101561087d578181015183820152602001610865565b50505050905090810190601f1680156108aa5780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b838110156108dd5781810151838201526020016108c5565b50505050905090810190601f16801561090a5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a250505050565b60008281526001602081905260409091206060905b838311610a1e578284161580159061096d5750600083815260068201602052604081205460026000196101006001841615020190911604115b15610a1357600083815260068201602090815260409182902080548351601f600260001961010060018616150201909316929092049182018490048402810184019094528084529091830182828015610a075780601f106109dc57610100808354040283529160200191610a07565b820191906000526020600020905b8154815290600101906020018083116109ea57829003601f168201915b50505050509150610a23565b600290920291610934565b600092505b509250929050565b600080546040805160e060020a6302571be302815260048101879052905186933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b158015610a7e57600080fd5b505af1158015610a92573d6000803e3d6000fd5b505050506040513d6020811015610aa857600080fd5b5051600160a060020a031614610abd57600080fd5b604080518082018252848152602080820185815260008881526001835284902092516003840155516004909201919091558151858152908101849052815186927f1d6f5e03d3f63eb58751986629a5439baee5079ff04f345becb66e23eb154e46928290030190a250505050565b6000908152600160208190526040909120015490565b600090815260016020526040902054600160a060020a031690565b600082815260016020908152604091829020915183516060936005019285929182918401908083835b60208310610ba45780518252601f199092019160209182019101610b85565b518151600019602094850361010090810a820192831692199390931691909117909252949092019687526040805197889003820188208054601f6002600183161590980290950116959095049283018290048202880182019052818752929450925050830182828015610c585780601f10610c2d57610100808354040283529160200191610c58565b820191906000526020600020905b815481529060010190602001808311610c3b57829003601f168201915b5050505050905092915050565b600080546040805160e060020a6302571be302815260048101879052905186933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b158015610cb857600080fd5b505af1158015610ccc573d6000803e3d6000fd5b505050506040513d6020811015610ce257600080fd5b5051600160a060020a031614610cf757600080fd5b6000198301831615610d0857600080fd5b600084815260016020908152604080832086845260060182529091208351610d32928501906112e7565b50604051839085907faa121bbeef5f32f5961a2a28966e769023910fc9479059ee3495d4c1a696efe390600090a350505050565b6000818152600160208181526040928390206002908101805485516000199582161561010002959095011691909104601f81018390048302840183019094528383526060939091830182828015610dfe5780601f10610dd357610100808354040283529160200191610dfe565b820191906000526020600020905b815481529060010190602001808311610de157829003601f168201915b50505050509050919050565b600080546040805160e060020a6302571be302815260048101869052905185933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b158015610e5d57600080fd5b505af1158015610e71573d6000803e3d6000fd5b505050506040513d6020811015610e8757600080fd5b5051600160a060020a031614610e9c57600080fd5b60008381526001602090815260409091208351610ec1926002909201918501906112e7565b50604080516020808252845181830152845186937fb7d29e911041e8d9b843369e890bcb72c9388692ba48b65ac54e7214c4c348f79387939092839283019185019080838360005b83811015610f21578181015183820152602001610f09565b50505050905090810190601f168015610f4e5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505050565b600080546040805160e060020a6302571be302815260048101869052905185933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b158015610fb357600080fd5b505af1158015610fc7573d6000803e3d6000fd5b505050506040513d6020811015610fdd57600080fd5b5051600160a060020a031614610ff257600080fd5b60008381526001602090815260409091208351611017926007909201918501906112e7565b50604080516020808252845181830152845186937fc0b0fc07269fc2749adada3221c095a1d2187b2d075b51c915857b520f3a502193879390928392830191850190808383600083811015610f21578181015183820152602001610f09565b600080546040805160e060020a6302571be302815260048101869052905185933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b1580156110c957600080fd5b505af11580156110dd573d6000803e3d6000fd5b505050506040513d60208110156110f357600080fd5b5051600160a060020a03161461110857600080fd5b6000838152600160208181526040928390209091018490558151848152915185927f0424b6fe0d9c3bdbece0e7879dc241bb0c22e900be8b6c168b4ee08bd9bf83bc92908290030190a2505050565b600090815260016020526040902060038101546004909101549091565b600080546040805160e060020a6302571be302815260048101869052905185933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b1580156111c757600080fd5b505af11580156111db573d6000803e3d6000fd5b505050506040513d60208110156111f157600080fd5b5051600160a060020a03161461120657600080fd5b600083815260016020908152604091829020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386169081179091558251908152915185927f52d7d861f09ab3d26239d492e8968629f95e9e318cf0b73bfddc441522a15fd292908290030190a2505050565b60008181526001602081815260409283902060070180548451600260001995831615610100029590950190911693909304601f81018390048302840183019094528383526060939091830182828015610dfe5780601f10610dd357610100808354040283529160200191610dfe565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061132857805160ff1916838001178555611355565b82800160010185558215611355579182015b8281111561135557825182559160200191906001019061133a565b50611361929150611365565b5090565b61137f91905b80821115611361576000815560010161136b565b905600a165627a7a72305820bf76237672851602565e309e20eddff44fc668000bb45495e385fdd9e24f4e310029","bin-runtime":"6080604052600436106100da5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166301ffc9a781146100df57806310f13a8c146101155780632203ab56146101b357806329cd62ea1461024d5780632dff69411461026b5780633b3b57de1461029557806359d1d43c146102c9578063623195b01461039c578063691f3431146103fc5780637737221314610414578063aa4cb54714610472578063c3d014d6146104d0578063c8690233146104eb578063d5fa2b001461051c578063e89401a114610540575b600080fd5b3480156100eb57600080fd5b50610101600160e060020a031960043516610558565b604080519115158252519081900360200190f35b34801561012157600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526101b195833595369560449491939091019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437509497506106f99650505050505050565b005b3480156101bf57600080fd5b506101ce60043560243561091f565b6040518083815260200180602001828103825283818151815260200191508051906020019080838360005b838110156102115781810151838201526020016101f9565b50505050905090810190601f16801561023e5780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b34801561025957600080fd5b506101b1600435602435604435610a2b565b34801561027757600080fd5b50610283600435610b2b565b60408051918252519081900360200190f35b3480156102a157600080fd5b506102ad600435610b41565b60408051600160a060020a039092168252519081900360200190f35b3480156102d557600080fd5b5060408051602060046024803582810135601f8101859004850286018501909652858552610327958335953695604494919390910191908190840183828082843750949750610b5c9650505050505050565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610361578181015183820152602001610349565b50505050905090810190601f16801561038e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103a857600080fd5b50604080516020600460443581810135601f81018490048402850184019095528484526101b1948235946024803595369594606494920191908190840183828082843750949750610c659650505050505050565b34801561040857600080fd5b50610327600435610d66565b34801561042057600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526101b1958335953695604494919390910191908190840183828082843750949750610e0a9650505050505050565b34801561047e57600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526101b1958335953695604494919390910191908190840183828082843750949750610f609650505050505050565b3480156104dc57600080fd5b506101b1600435602435611076565b3480156104f757600080fd5b50610503600435611157565b6040805192835260208301919091528051918290030190f35b34801561052857600080fd5b506101b1600435600160a060020a0360243516611174565b34801561054c57600080fd5b50610327600435611278565b6000600160e060020a031982167f3b3b57de0000000000000000000000000000000000000000000000000000000014806105bb5750600160e060020a031982167fd8389dc500000000000000000000000000000000000000000000000000000000145b806105ef5750600160e060020a031982167f691f343100000000000000000000000000000000000000000000000000000000145b806106235750600160e060020a031982167f2203ab5600000000000000000000000000000000000000000000000000000000145b806106575750600160e060020a031982167fc869023300000000000000000000000000000000000000000000000000000000145b8061068b5750600160e060020a031982167f59d1d43c00000000000000000000000000000000000000000000000000000000145b806106bf5750600160e060020a031982167fe89401a100000000000000000000000000000000000000000000000000000000145b806106f35750600160e060020a031982167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b600080546040805160e060020a6302571be302815260048101879052905186933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b15801561074c57600080fd5b505af1158015610760573d6000803e3d6000fd5b505050506040513d602081101561077657600080fd5b5051600160a060020a03161461078b57600080fd5b6000848152600160209081526040918290209151855185936005019287929182918401908083835b602083106107d25780518252601f1990920191602091820191016107b3565b51815160209384036101000a6000190180199092169116179052920194855250604051938490038101909320845161081395919491909101925090506112e7565b5083600019167fd8c9334b1a9c2f9da342a0a2b32629c1a229b6445dad78947f674b44444a75508485604051808060200180602001838103835285818151815260200191508051906020019080838360005b8381101561087d578181015183820152602001610865565b50505050905090810190601f1680156108aa5780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b838110156108dd5781810151838201526020016108c5565b50505050905090810190601f16801561090a5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a250505050565b60008281526001602081905260409091206060905b838311610a1e578284161580159061096d5750600083815260068201602052604081205460026000196101006001841615020190911604115b15610a1357600083815260068201602090815260409182902080548351601f600260001961010060018616150201909316929092049182018490048402810184019094528084529091830182828015610a075780601f106109dc57610100808354040283529160200191610a07565b820191906000526020600020905b8154815290600101906020018083116109ea57829003601f168201915b50505050509150610a23565b600290920291610934565b600092505b509250929050565b600080546040805160e060020a6302571be302815260048101879052905186933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b158015610a7e57600080fd5b505af1158015610a92573d6000803e3d6000fd5b505050506040513d6020811015610aa857600080fd5b5051600160a060020a031614610abd57600080fd5b604080518082018252848152602080820185815260008881526001835284902092516003840155516004909201919091558151858152908101849052815186927f1d6f5e03d3f63eb58751986629a5439baee5079ff04f345becb66e23eb154e46928290030190a250505050565b6000908152600160208190526040909120015490565b600090815260016020526040902054600160a060020a031690565b600082815260016020908152604091829020915183516060936005019285929182918401908083835b60208310610ba45780518252601f199092019160209182019101610b85565b518151600019602094850361010090810a820192831692199390931691909117909252949092019687526040805197889003820188208054601f6002600183161590980290950116959095049283018290048202880182019052818752929450925050830182828015610c585780601f10610c2d57610100808354040283529160200191610c58565b820191906000526020600020905b815481529060010190602001808311610c3b57829003601f168201915b5050505050905092915050565b600080546040805160e060020a6302571be302815260048101879052905186933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b158015610cb857600080fd5b505af1158015610ccc573d6000803e3d6000fd5b505050506040513d6020811015610ce257600080fd5b5051600160a060020a031614610cf757600080fd5b6000198301831615610d0857600080fd5b600084815260016020908152604080832086845260060182529091208351610d32928501906112e7565b50604051839085907faa121bbeef5f32f5961a2a28966e769023910fc9479059ee3495d4c1a696efe390600090a350505050565b6000818152600160208181526040928390206002908101805485516000199582161561010002959095011691909104601f81018390048302840183019094528383526060939091830182828015610dfe5780601f10610dd357610100808354040283529160200191610dfe565b820191906000526020600020905b815481529060010190602001808311610de157829003601f168201915b50505050509050919050565b600080546040805160e060020a6302571be302815260048101869052905185933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b158015610e5d57600080fd5b505af1158015610e71573d6000803e3d6000fd5b505050506040513d6020811015610e8757600080fd5b5051600160a060020a031614610e9c57600080fd5b60008381526001602090815260409091208351610ec1926002909201918501906112e7565b50604080516020808252845181830152845186937fb7d29e911041e8d9b843369e890bcb72c9388692ba48b65ac54e7214c4c348f79387939092839283019185019080838360005b83811015610f21578181015183820152602001610f09565b50505050905090810190601f168015610f4e5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505050565b600080546040805160e060020a6302571be302815260048101869052905185933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b158015610fb357600080fd5b505af1158015610fc7573d6000803e3d6000fd5b505050506040513d6020811015610fdd57600080fd5b5051600160a060020a031614610ff257600080fd5b60008381526001602090815260409091208351611017926007909201918501906112e7565b50604080516020808252845181830152845186937fc0b0fc07269fc2749adada3221c095a1d2187b2d075b51c915857b520f3a502193879390928392830191850190808383600083811015610f21578181015183820152602001610f09565b600080546040805160e060020a6302571be302815260048101869052905185933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b1580156110c957600080fd5b505af11580156110dd573d6000803e3d6000fd5b505050506040513d60208110156110f357600080fd5b5051600160a060020a03161461110857600080fd5b6000838152600160208181526040928390209091018490558151848152915185927f0424b6fe0d9c3bdbece0e7879dc241bb0c22e900be8b6c168b4ee08bd9bf83bc92908290030190a2505050565b600090815260016020526040902060038101546004909101549091565b600080546040805160e060020a6302571be302815260048101869052905185933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b1580156111c757600080fd5b505af11580156111db573d6000803e3d6000fd5b505050506040513d60208110156111f157600080fd5b5051600160a060020a03161461120657600080fd5b600083815260016020908152604091829020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386169081179091558251908152915185927f52d7d861f09ab3d26239d492e8968629f95e9e318cf0b73bfddc441522a15fd292908290030190a2505050565b60008181526001602081815260409283902060070180548451600260001995831615610100029590950190911693909304601f81018390048302840183019094528383526060939091830182828015610dfe5780601f10610dd357610100808354040283529160200191610dfe565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061132857805160ff1916838001178555611355565b82800160010185558215611355579182015b8281111561135557825182559160200191906001019061133a565b50611361929150611365565b5090565b61137f91905b80821115611361576000815560010161136b565b905600a165627a7a72305820bf76237672851602565e309e20eddff44fc668000bb45495e385fdd9e24f4e310029","srcmap":"1553:8134:2:-;;;3005:62;8:9:-1;5:2;;;30:1;27;20:12;5:2;3005:62:2;;;;;;;;;;;;;3047:3;:13;;-1:-1:-1;;;;;3047:13:2;;;-1:-1:-1;;;;;;3047:13:2;;;;;;;;;1553:8134;;;;;;","srcmap-runtime":"1553:8134:2:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9238:447;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9238:447:2;-1:-1:-1;;;;;;9238:447:2;;;;;;;;;;;;;;;;;;;;;;;6084:171;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6084:171:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6084:171:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6084:171:2;;;;-1:-1:-1;6084:171:2;-1:-1:-1;6084:171:2;;-1:-1:-1;6084:171:2;;;;;;;;-1:-1:-1;6084:171:2;;-1:-1:-1;6084:171:2;;-1:-1:-1;;;;;;;6084:171:2;;;7296:451;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7296:451:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;7296:451:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5631:174;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5631:174:2;;;;;;;;;8351:106;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8351:106:2;;;;;;;;;;;;;;;;;;;;;8887:100;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8887:100:2;;;;;;;;;-1:-1:-1;;;;;8887:100:2;;;;;;;;;;;;;;6472:116;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6472:116:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6472:116:2;;-1:-1:-1;6472:116:2;;-1:-1:-1;;;;;;;6472:116:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;6472:116:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5057:297;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5057:297:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5057:297:2;;-1:-1:-1;5057:297:2;;-1:-1:-1;;;;;;;5057:297:2;7947:99;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7947:99:2;;;;;4607:148;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4607:148:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4607:148:2;;-1:-1:-1;4607:148:2;;-1:-1:-1;;;;;;;4607:148:2;4200:162;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4200:162:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4200:162:2;;-1:-1:-1;4200:162:2;;-1:-1:-1;;;;;;;4200:162:2;3813:158;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3813:158:2;;;;;;;6830:145;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6830:145:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;3293:149;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3293:149:2;;;-1:-1:-1;;;;;3293:149:2;;;;;8620:108;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8620:108:2;;;;;9238:447;9306:4;-1:-1:-1;;;;;;9329:32:2;;9344:17;9329:32;;:79;;-1:-1:-1;;;;;;;9373:35:2;;9388:20;9373:35;9329:79;:123;;;-1:-1:-1;;;;;;;9420:32:2;;9435:17;9420:32;9329:123;:166;;;-1:-1:-1;;;;;;;9464:31:2;;9479:16;9464:31;9329:166;:212;;;-1:-1:-1;;;;;;;9507:34:2;;9522:19;9507:34;9329:212;:256;;;-1:-1:-1;;;;;;;9553:32:2;;9568:17;9553:32;9329:256;:305;;;-1:-1:-1;;;;;;;9597:37:2;;9612:22;9597:37;9329:305;:349;;;-1:-1:-1;;;;;;;9646:32:2;;9661:17;9646:32;9329:349;9322:356;9238:447;-1:-1:-1;;9238:447:2:o;6084:171::-;2865:3;;;:15;;;-1:-1:-1;;;;;2865:15:2;;;;;;;;;;6159:4;;2884:10;;-1:-1:-1;;;;;2865:3:2;;:9;;:15;;;;;;;;;;;;;;;;:3;:15;;;5:2:-1;;;;30:1;27;20:12;5:2;2865:15:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2865:15:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2865:15:2;-1:-1:-1;;;;;2865:29:2;;2857:38;;;;;;6175:13;;;;:7;:13;;;;;;;;;:23;;;;6201:5;;6175:18;;;6194:3;;6175:23;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;6175:23:2;;;;;-1:-1:-1;6175:23:2;;;;;;;;;;;:31;;;;:23;;:31;;;;;-1:-1:-1;6175:31:2;-1:-1:-1;6175:31:2;:::i;:::-;;6233:4;6221:27;;;;6239:3;6244;6221:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;6221:27:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6221:27:2;;;;;;;;;;;;;;;;;;;;;;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;6221:27:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6084:171;;;;:::o;7296:451::-;7366:19;7433:13;;;:7;:13;;;;;;;;7387:10;;7456:260;7478:27;;;7456:260;;7545:26;;;7544:33;;;;:72;;-1:-1:-1;7615:1:2;7581:24;;;:11;;;:24;;;;;:31;;-1:-1:-1;;7581:31:2;;;;;;;;;;;:35;7544:72;7540:166;;;7643:24;;;;:11;;;:24;;;;;;;;;7636:31;;;;;;-1:-1:-1;;7636:31:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7643:24;;7636:31;;7643:24;7636:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7685:7;;7540:166;7507:17;;;;;7456:260;;;7739:1;7725:15;;7296:451;;;;;;;:::o;5631:174::-;2865:3;;;:15;;;-1:-1:-1;;;;;2865:15:2;;;;;;;;;;5704:4;;2884:10;;-1:-1:-1;;;;;2865:3:2;;:9;;:15;;;;;;;;;;;;;;;;:3;:15;;;5:2:-1;;;;30:1;27;20:12;5:2;2865:15:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2865:15:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2865:15:2;-1:-1:-1;;;;;2865:29:2;;2857:38;;;;;;5743:15;;;;;;;;;;;;;;;;;;-1:-1:-1;5720:13:2;;;:7;:13;;;;;:38;;:20;;;:38;;;;;;;;;;5773:25;;;;;;;;;;;;;5728:4;;5773:25;;;;;;;;5631:174;;;;:::o;8351:106::-;8403:7;8429:13;;;:7;:13;;;;;;;;:21;;;8351:106::o;8887:100::-;8936:7;8962:13;;;:7;:13;;;;;:18;-1:-1:-1;;;;;8962:18:2;;8887:100::o;6472:116::-;6558:13;;;;:7;:13;;;;;;;;;:23;;;;6533:6;;6558:18;;;6577:3;;6558:23;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;-1:-1;;263:2;259:12;;;254:3;250:22;;;246:30;;340:21;;;311:9;;295:26;;;;377:20;;;;365:33;;;6558:23:2;;;;;;;;;;;;;;;;;;6551:30;;;;274:1:-1;6551:30:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6558:23;;-1:-1:-1;6551:30:2;-1:-1:-1;;6551:30:2;;6558:23;6551:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6472:116;;;;:::o;5057:297::-;2865:3;;;:15;;;-1:-1:-1;;;;;2865:15:2;;;;;;;;;;5138:4;;2884:10;;-1:-1:-1;;;;;2865:3:2;;:9;;:15;;;;;;;;;;;;;;;;:3;:15;;;5:2:-1;;;;30:1;27;20:12;5:2;2865:15:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2865:15:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2865:15:2;-1:-1:-1;;;;;2865:29:2;;2857:38;;;;;;-1:-1:-1;;5209:15:2;;5208:31;;5207:38;5199:47;;;;;;5265:13;;;;:7;:13;;;;;;;;:31;;;:18;;:31;;;;;:38;;;;;;;;:::i;:::-;-1:-1:-1;5318:29:2;;5335:11;;5329:4;;5318:29;;;;;5057:297;;;;:::o;7947:99::-;8021:13;;;;:7;:13;;;;;;;;;:18;;;;8014:25;;;;-1:-1:-1;;8014:25:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7996:6;;8021:18;;8014:25;;8021:18;8014:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7947:99;;;:::o;4607:148::-;2865:3;;;:15;;;-1:-1:-1;;;;;2865:15:2;;;;;;;;;;4669:4;;2884:10;;-1:-1:-1;;;;;2865:3:2;;:9;;:15;;;;;;;;;;;;;;;;:3;:15;;;5:2:-1;;;;30:1;27;20:12;5:2;2865:15:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2865:15:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2865:15:2;-1:-1:-1;;;;;2865:29:2;;2857:38;;;;;;4685:13;;;;:7;:13;;;;;;;;:25;;;;:18;;;;;:25;;;;:::i;:::-;-1:-1:-1;4725:23:2;;;;;;;;;;;;;;;4737:4;;4725:23;;4743:4;;4725:23;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;4725:23:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4607:148;;;:::o;4200:162::-;2865:3;;;:15;;;-1:-1:-1;;;;;2865:15:2;;;;;;;;;;4266:4;;2884:10;;-1:-1:-1;;;;;2865:3:2;;:9;;:15;;;;;;;;;;;;;;;;:3;:15;;;5:2:-1;;;;30:1;27;20:12;5:2;2865:15:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2865:15:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2865:15:2;-1:-1:-1;;;;;2865:29:2;;2857:38;;;;;;4282:13;;;;:7;:13;;;;;;;;:30;;;;:23;;;;;:30;;;;:::i;:::-;-1:-1:-1;4327:28:2;;;;;;;;;;;;;;;4344:4;;4327:28;;4350:4;;4327:28;;;;;;;;;;;;;;33:3:-1;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;3813:158:2;2865:3;;;:15;;;-1:-1:-1;;;;;2865:15:2;;;;;;;;;;3879:4;;2884:10;;-1:-1:-1;;;;;2865:3:2;;:9;;:15;;;;;;;;;;;;;;;;:3;:15;;;5:2:-1;;;;30:1;27;20:12;5:2;2865:15:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2865:15:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2865:15:2;-1:-1:-1;;;;;2865:29:2;;2857:38;;;;;;3895:13;;;;:7;:13;;;;;;;;;:21;;;:28;;;3938:26;;;;;;;3903:4;;3938:26;;;;;;;;;3813:158;;;:::o;6830:145::-;6881:9;6921:13;;;:7;:13;;;;;:20;;;:22;6945;;;;;6921;;6830:145::o;3293:149::-;2865:3;;;:15;;;-1:-1:-1;;;;;2865:15:2;;;;;;;;;;3356:4;;2884:10;;-1:-1:-1;;;;;2865:3:2;;:9;;:15;;;;;;;;;;;;;;;;:3;:15;;;5:2:-1;;;;30:1;27;20:12;5:2;2865:15:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2865:15:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2865:15:2;-1:-1:-1;;;;;2865:29:2;;2857:38;;;;;;3372:13;;;;:7;:13;;;;;;;;;:25;;-1:-1:-1;;3372:25:2;-1:-1:-1;;;;;3372:25:2;;;;;;;;3412:23;;;;;;;3372:13;;3412:23;;;;;;;;;3293:149;;;:::o;8620:108::-;8698:13;;;;:7;:13;;;;;;;;;:23;;8691:30;;;;;-1:-1:-1;;8691:30:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8674:5;;8698:23;;8691:30;;8698:23;8691:30;;;;;;;;;;;;;;;;;;;;;;;;1553:8134;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1553:8134:2;;;-1:-1:-1;1553:8134:2;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o"},"externals/strings.sol:strings":{"bin":"604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a7230582024a2b0f9f886001e5fd3db71aa4fb1e8f4254fc3db05e9d54265f7c101091af20029","bin-runtime":"73000000000000000000000000000000000000000030146080604052600080fd00a165627a7a7230582024a2b0f9f886001e5fd3db71aa4fb1e8f4254fc3db05e9d54265f7c101091af20029","srcmap":"2600:23355:3:-;;132:2:-1;166:7;155:9;146:7;137:37;252:7;246:14;243:1;238:23;232:4;229:33;270:1;265:20;;;;222:63;;265:20;274:9;222:63;;298:9;295:1;288:20;328:4;319:7;311:22;352:7;343;336:24","srcmap-runtime":"2600:23355:3:-;;;;;;;;"},"internals/controllable.sol:Controllable":{"bin":"","bin-runtime":"","srcmap":"","srcmap-runtime":""},"internals/controller.sol:Controller":{"bin":"608060405234801561001057600080fd5b5060405160408061103a83398101604052805160209091015160008054600160a060020a031916600160a060020a0384161760a060020a60ff02191674010000000000000000000000000000000000000000831515810291909117918290558391839160ff91041615156100bb5760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b6040805160008152600160a060020a038416602082015281517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea5929181900390910190a150505050610f28806101126000396000f3006080604052600436106100b95763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166315b9a8b881146100be5780631785f53c146100e55780632121dc751461010857806324d7806c146101315780632b7832b3146101525780637048027514610167578063715018a6146101885780638da5cb5b1461019d578063a7fc7a07146101ce578063b242e534146101ef578063b429afeb14610215578063f6a74ed714610236575b600080fd5b3480156100ca57600080fd5b506100d3610257565b60408051918252519081900360200190f35b3480156100f157600080fd5b50610106600160a060020a036004351661025d565b005b34801561011457600080fd5b5061011d6102b6565b604080519115158252519081900360200190f35b34801561013d57600080fd5b5061011d600160a060020a03600435166102d7565b34801561015e57600080fd5b506100d36102f5565b34801561017357600080fd5b50610106600160a060020a03600435166102fb565b34801561019457600080fd5b50610106610351565b3480156101a957600080fd5b506101b261046c565b60408051600160a060020a039092168252519081900360200190f35b3480156101da57600080fd5b50610106600160a060020a036004351661047b565b3480156101fb57600080fd5b50610106600160a060020a036004351660243515156104e3565b34801561022157600080fd5b5061011d600160a060020a0360043516610722565b34801561024257600080fd5b50610106600160a060020a0360043516610740565b60045490565b610266336107a8565b15156102aa576040805160e560020a62461bcd0281526020600482015260166024820152600080516020610edd833981519152604482015290519081900360640190fd5b6102b3816107bc565b50565b60005474010000000000000000000000000000000000000000900460ff1690565b600160a060020a031660009081526001602052604090205460ff1690565b60025490565b610304336107a8565b1515610348576040805160e560020a62461bcd0281526020600482015260166024820152600080516020610edd833981519152604482015290519081900360640190fd5b6102b381610897565b61035a336107a8565b151561039e576040805160e560020a62461bcd0281526020600482015260166024820152600080516020610edd833981519152604482015290519081900360640190fd5b60005474010000000000000000000000000000000000000000900460ff161515610412576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916815560408051828152602081019290925280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1565b600054600160a060020a031690565b610484336102d7565b15156104da576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e2061646d696e00000000000000000000604482015290519081900360640190fd5b6102b381610b38565b6104ec336107a8565b1515610530576040805160e560020a62461bcd0281526020600482015260166024820152600080516020610edd833981519152604482015290519081900360640190fd5b60005474010000000000000000000000000000000000000000900460ff1615156105a4576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b600160a060020a038216151561062a576040805160e560020a62461bcd02815260206004820152602360248201527f6f776e65722063616e6e6f742062652073657420746f207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6000805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000831515908102919091179091556106aa5760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b60005460408051600160a060020a039283168152918416602083015280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1506000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a031660009081526003602052604090205460ff1690565b610749336102d7565b151561079f576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e2061646d696e00000000000000000000604482015290519081900360640190fd5b6102b381610ddc565b600054600160a060020a0390811691161490565b600160a060020a03811660009081526001602052604090205460ff16151561082e576040805160e560020a62461bcd02815260206004820181905260248201527f70726f7669646564206163636f756e74206973206e6f7420616e2061646d696e604482015290519081900360640190fd5b600160a060020a038116600081815260016020908152604091829020805460ff191690556002805460001901905581513381529081019290925280517f787a2e12f4a55b658b8f573c32432ee11a5e8b51677d1e1e937aaf6a0bb5776e9281900390910190a150565b600160a060020a03811660009081526001602052604090205460ff161561092d576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320616c726561647920616e206160448201527f646d696e00000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a03811660009081526003602052604090205460ff16156109c4576040805160e560020a62461bcd02815260206004820152602860248201527f70726f7669646564206163636f756e7420697320616c7265616479206120636f60448201527f6e74726f6c6c6572000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6109cd816107a8565b15610a48576040805160e560020a62461bcd02815260206004820152602560248201527f70726f7669646564206163636f756e7420697320616c7265616479207468652060448201527f6f776e6572000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0381161515610acd576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260016020818152604092839020805460ff1916831790556002805490920190915581513381529081019290925280517fc58b647b8ba5a8cab2f11f32673636cc1061324240972ed05e8cc005b81a4b7a9281900390910190a150565b600160a060020a03811660009081526001602052604090205460ff1615610bce576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320616c726561647920616e206160448201527f646d696e00000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a03811660009081526003602052604090205460ff1615610c65576040805160e560020a62461bcd02815260206004820152602860248201527f70726f7669646564206163636f756e7420697320616c7265616479206120636f60448201527f6e74726f6c6c6572000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b610c6e816107a8565b15610ce9576040805160e560020a62461bcd02815260206004820152602560248201527f70726f7669646564206163636f756e7420697320616c7265616479207468652060448201527f6f776e6572000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0381161515610d6e576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260036020908152604091829020805460ff1916600190811790915560048054909101905581513381529081019290925280517fb890d5abdcd5c2b61ce8bbc2cf6af9b6d7f7451830cbc85037cbdd182c86fe1d9281900390910190a150565b600160a060020a03811660009081526003602052604090205460ff161515610e73576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e74206973206e6f74206120636f6e74726f60448201527f6c6c657200000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260036020908152604091829020805460ff191690556004805460001901905581513381529081019290925280517fb6a283aaede08e15ef55c74e3014e30eb0c0040d4b156cccb77391268ea373949281900390910190a150560073656e646572206973206e6f7420616e206f776e657200000000000000000000a165627a7a72305820e3381d505607ee63056d5ba42a87e53a7b0dab423e773fa53f1e050ccb6949390029","bin-runtime":"6080604052600436106100b95763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166315b9a8b881146100be5780631785f53c146100e55780632121dc751461010857806324d7806c146101315780632b7832b3146101525780637048027514610167578063715018a6146101885780638da5cb5b1461019d578063a7fc7a07146101ce578063b242e534146101ef578063b429afeb14610215578063f6a74ed714610236575b600080fd5b3480156100ca57600080fd5b506100d3610257565b60408051918252519081900360200190f35b3480156100f157600080fd5b50610106600160a060020a036004351661025d565b005b34801561011457600080fd5b5061011d6102b6565b604080519115158252519081900360200190f35b34801561013d57600080fd5b5061011d600160a060020a03600435166102d7565b34801561015e57600080fd5b506100d36102f5565b34801561017357600080fd5b50610106600160a060020a03600435166102fb565b34801561019457600080fd5b50610106610351565b3480156101a957600080fd5b506101b261046c565b60408051600160a060020a039092168252519081900360200190f35b3480156101da57600080fd5b50610106600160a060020a036004351661047b565b3480156101fb57600080fd5b50610106600160a060020a036004351660243515156104e3565b34801561022157600080fd5b5061011d600160a060020a0360043516610722565b34801561024257600080fd5b50610106600160a060020a0360043516610740565b60045490565b610266336107a8565b15156102aa576040805160e560020a62461bcd0281526020600482015260166024820152600080516020610edd833981519152604482015290519081900360640190fd5b6102b3816107bc565b50565b60005474010000000000000000000000000000000000000000900460ff1690565b600160a060020a031660009081526001602052604090205460ff1690565b60025490565b610304336107a8565b1515610348576040805160e560020a62461bcd0281526020600482015260166024820152600080516020610edd833981519152604482015290519081900360640190fd5b6102b381610897565b61035a336107a8565b151561039e576040805160e560020a62461bcd0281526020600482015260166024820152600080516020610edd833981519152604482015290519081900360640190fd5b60005474010000000000000000000000000000000000000000900460ff161515610412576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916815560408051828152602081019290925280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1565b600054600160a060020a031690565b610484336102d7565b15156104da576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e2061646d696e00000000000000000000604482015290519081900360640190fd5b6102b381610b38565b6104ec336107a8565b1515610530576040805160e560020a62461bcd0281526020600482015260166024820152600080516020610edd833981519152604482015290519081900360640190fd5b60005474010000000000000000000000000000000000000000900460ff1615156105a4576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b600160a060020a038216151561062a576040805160e560020a62461bcd02815260206004820152602360248201527f6f776e65722063616e6e6f742062652073657420746f207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6000805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000831515908102919091179091556106aa5760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b60005460408051600160a060020a039283168152918416602083015280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1506000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a031660009081526003602052604090205460ff1690565b610749336102d7565b151561079f576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e2061646d696e00000000000000000000604482015290519081900360640190fd5b6102b381610ddc565b600054600160a060020a0390811691161490565b600160a060020a03811660009081526001602052604090205460ff16151561082e576040805160e560020a62461bcd02815260206004820181905260248201527f70726f7669646564206163636f756e74206973206e6f7420616e2061646d696e604482015290519081900360640190fd5b600160a060020a038116600081815260016020908152604091829020805460ff191690556002805460001901905581513381529081019290925280517f787a2e12f4a55b658b8f573c32432ee11a5e8b51677d1e1e937aaf6a0bb5776e9281900390910190a150565b600160a060020a03811660009081526001602052604090205460ff161561092d576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320616c726561647920616e206160448201527f646d696e00000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a03811660009081526003602052604090205460ff16156109c4576040805160e560020a62461bcd02815260206004820152602860248201527f70726f7669646564206163636f756e7420697320616c7265616479206120636f60448201527f6e74726f6c6c6572000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6109cd816107a8565b15610a48576040805160e560020a62461bcd02815260206004820152602560248201527f70726f7669646564206163636f756e7420697320616c7265616479207468652060448201527f6f776e6572000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0381161515610acd576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260016020818152604092839020805460ff1916831790556002805490920190915581513381529081019290925280517fc58b647b8ba5a8cab2f11f32673636cc1061324240972ed05e8cc005b81a4b7a9281900390910190a150565b600160a060020a03811660009081526001602052604090205460ff1615610bce576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320616c726561647920616e206160448201527f646d696e00000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a03811660009081526003602052604090205460ff1615610c65576040805160e560020a62461bcd02815260206004820152602860248201527f70726f7669646564206163636f756e7420697320616c7265616479206120636f60448201527f6e74726f6c6c6572000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b610c6e816107a8565b15610ce9576040805160e560020a62461bcd02815260206004820152602560248201527f70726f7669646564206163636f756e7420697320616c7265616479207468652060448201527f6f776e6572000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0381161515610d6e576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260036020908152604091829020805460ff1916600190811790915560048054909101905581513381529081019290925280517fb890d5abdcd5c2b61ce8bbc2cf6af9b6d7f7451830cbc85037cbdd182c86fe1d9281900390910190a150565b600160a060020a03811660009081526003602052604090205460ff161515610e73576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e74206973206e6f74206120636f6e74726f60448201527f6c6c657200000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260036020908152604091829020805460ff191690556004805460001901905581513381529081019290925280517fb6a283aaede08e15ef55c74e3014e30eb0c0040d4b156cccb77391268ea373949281900390910190a150560073656e646572206973206e6f7420616e206f776e657200000000000000000000a165627a7a72305820e3381d505607ee63056d5ba42a87e53a7b0dab423e773fa53f1e050ccb6949390029","srcmap":"1335:4616:5:-;;;2020:107;8:9:-1;5:2;;;30:1;27;20:12;5:2;2020:107:5;;;;;;;;;;;;;;;;;;;1527:6:7;:18;;-1:-1:-1;;;;;;1527:18:7;-1:-1:-1;;;;;1527:18:7;;;-1:-1:-1;;;;;;1555:32:7;;;;;;;;;;;;;;;2020:107:5;;;;1555:32:7;1671:15;;;1670:16;1666:78;;;1707:26;;;-1:-1:-1;;;;;1707:26:7;;;;;;;;;;;;;;;1666:78;1758:43;;;1787:1;1758:43;;-1:-1:-1;;;;;1758:43:7;;;;;;;;;;;;;;;;;;;1456:352;;2020:107:5;;1335:4616;;;;;;","srcmap-runtime":"1335:4616:5:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3634:96;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3634:96:5;;;;;;;;;;;;;;;;;;;;2814:97;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2814:97:5;-1:-1:-1;;;;;2814:97:5;;;;;;;3149:94:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3149:94:7;;;;;;;;;;;;;;;;;;;;;;3834:104:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3834:104:5;-1:-1:-1;;;;;3834:104:5;;;;;2963:86;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2963:86:5;;;;2594:91;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2594:91:5;-1:-1:-1;;;;;2594:91:5;;;;;3519:306:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3519:306:7;;;;3908:77;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3908:77:7;;;;;;;;-1:-1:-1;;;;;3908:77:7;;;;;;;;;;;;;;3187:101:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3187:101:5;-1:-1:-1;;;;;3187:101:5;;;;;2231:801:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2231:801:7;-1:-1:-1;;;;;2231:801:7;;;;;;;;;4050:114:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4050:114:5;-1:-1:-1;;;;;4050:114:5;;;;;3432:107;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3432:107:5;-1:-1:-1;;;;;3432:107:5;;;;;3634:96;3707:16;;3634:96;:::o;2814:97::-;1924:20:7;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:7;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1916:55:7;;;;;;;;;;;;;;;2882:22:5;2895:8;2882:12;:22::i;:::-;2814:97;:::o;3149:94:7:-;3198:4;3221:15;;;;;;;3149:94::o;3834:104:5:-;-1:-1:-1;;;;;3913:18:5;3890:4;3913:18;;;:8;:18;;;;;;;;;3834:104::o;2963:86::-;3031:11;;2963:86;:::o;2594:91::-;1924:20:7;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:7;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1916:55:7;;;;;;;;;;;;;;;2659:19:5;2669:8;2659:9;:19::i;3519:306:7:-;1924:20;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:7;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1916:55:7;;;;;;;;;;;;;;;3640:15;;;;;;;3632:57;;;;;;;-1:-1:-1;;;;;3632:57:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;3760:1;3743:19;;-1:-1:-1;;3743:19:7;;;3778:40;;;;;;;;;;;;;;;;;;;;;;;;;3519:306::o;3908:77::-;3946:7;3972:6;-1:-1:-1;;;;;3972:6:7;3908:77;:::o;3187:101:5:-;2226:19;2234:10;2226:7;:19::i;:::-;2218:54;;;;;;;-1:-1:-1;;;;;2218:54:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;3257:24;3272:8;3257:14;:24::i;2231:801:7:-;1924:20;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:7;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1916:55:7;;;;;;;;;;;;;;;2388:15;;;;;;;2380:57;;;;;;;-1:-1:-1;;;;;2380:57:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2518:22:7;;;;2510:70;;;;;-1:-1:-1;;;;;2510:70:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2665:15;:31;;-1:-1:-1;;2665:31:7;;;;;;;;;;;;;;;2775:75;;2814:25;;;-1:-1:-1;;;;;2814:25:7;;;;;;;;;;;;;;;2775:75;2931:6;;2910:38;;;-1:-1:-1;;;;;2931:6:7;;;2910:38;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3008:6:7;:17;;-1:-1:-1;;3008:17:7;-1:-1:-1;;;;;3008:17:7;;;;;;;;;;2231:801::o;4050:114:5:-;-1:-1:-1;;;;;4134:23:5;4111:4;4134:23;;;:13;:23;;;;;;;;;4050:114::o;3432:107::-;2226:19;2234:10;2226:7;:19::i;:::-;2218:54;;;;;;;-1:-1:-1;;;;;2218:54:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;3505:27;3523:8;3505:17;:27::i;4091:107:7:-;4150:4;4185:6;-1:-1:-1;;;;;4185:6:7;;;4173:18;;;;4091:107::o;4791:236:5:-;-1:-1:-1;;;;;4857:18:5;;;;;;:8;:18;;;;;;;;4849:63;;;;;;;-1:-1:-1;;;;;4849:63:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4922:18:5;;4943:5;4922:18;;;:8;:18;;;;;;;;;:26;;-1:-1:-1;;4922:26:5;;;4958:11;:13;;-1:-1:-1;;4958:13:5;;;4986:34;;4999:10;4986:34;;;;;;;;;;;;;;;;;;;;;4791:236;:::o;4232:482::-;-1:-1:-1;;;;;4296:18:5;;;;;;:8;:18;;;;;;;;4295:19;4287:68;;;;;-1:-1:-1;;;;;4287:68:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4374:23:5;;;;;;:13;:23;;;;;;;;4373:24;4365:77;;;;;-1:-1:-1;;;;;4365:77:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4461:18;4470:8;4461;:18::i;:::-;4460:19;4452:69;;;;;-1:-1:-1;;;;;4452:69:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4539:22:5;;;;4531:71;;;;;-1:-1:-1;;;;;4531:71:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4612:18:5;;;;;;4633:4;4612:18;;;;;;;;;:25;;-1:-1:-1;;4612:25:5;;;;;4647:11;:13;;;;;;;;4675:32;;4686:10;4675:32;;;;;;;;;;;;;;;;;;;;;4232:482;:::o;5100:502::-;-1:-1:-1;;;;;5169:18:5;;;;;;:8;:18;;;;;;;;5168:19;5160:68;;;;;-1:-1:-1;;;;;5160:68:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5247:23:5;;;;;;:13;:23;;;;;;;;5246:24;5238:77;;;;;-1:-1:-1;;;;;5238:77:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5334:18;5343:8;5334;:18::i;:::-;5333:19;5325:69;;;;;-1:-1:-1;;;;;5325:69:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5412:22:5;;;;5404:71;;;;;-1:-1:-1;;;;;5404:71:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5485:23:5;;;;;;:13;:23;;;;;;;;;:30;;-1:-1:-1;;5485:30:5;5511:4;5485:30;;;;;;5525:16;:18;;;;;;;5558:37;;5574:10;5558:37;;;;;;;;;;;;;;;;;;;;;5100:502;:::o;5684:265::-;-1:-1:-1;;;;;5755:23:5;;;;;;:13;:23;;;;;;;;5747:72;;;;;;;-1:-1:-1;;;;;5747:72:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5829:23:5;;5855:5;5829:23;;;:13;:23;;;;;;;;;:31;;-1:-1:-1;;5829:31:5;;;5870:16;:18;;-1:-1:-1;;5870:18:5;;;5903:39;;5921:10;5903:39;;;;;;;;;;;;;;;;;;;;;5684:265;:::o"},"internals/controller.sol:IController":{"bin":"","bin-runtime":"","srcmap":"","srcmap-runtime":""},"internals/ensResolvable.sol:ENSResolvable":{"bin":"","bin-runtime":"","srcmap":"","srcmap-runtime":""},"internals/ownable.sol:Ownable":{"bin":"","bin-runtime":"","srcmap":"","srcmap-runtime":""},"internals/tokenWhitelist.sol:ITokenWhitelist":{"bin":"","bin-runtime":"","srcmap":"","srcmap-runtime":""},"internals/tokenWhitelist.sol:TokenWhitelist":{"bin":"608060405234801561001057600080fd5b5060405160c08061189f83398101604090815281516020830151918301516060840151608085015160a09095015160018054600160a060020a03808716600160a060020a03199283161792839055600080548316938216939093179092556002859055600380548915157401000000000000000000000000000000000000000090810260a060020a60ff0219958816929094169190911793909316919091179081905594969394929392849184910460ff1615156101055760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b6040805160008152600160a060020a038416602082015281517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea5929181900390910190a15050600794909455505060068054600160a060020a031916600160a060020a03909316929092179091555061171a9050806101856000396000f3006080604052600436106100cf5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631f69565f81146100d45780632121dc751461019f57806334c73edc146101c85780633efec5e91461021d578063443dd2a4146102325780636c3824ef14610297578063715018a6146102b75780637d73b231146102cc57806380cc0dda146102fd5780638da5cb5b14610324578063b242e53414610339578063d545782e1461035f578063e2b4ce9714610386578063e9cbd8221461039b575b600080fd5b3480156100e057600080fd5b506100f5600160a060020a03600435166103b0565b6040805160208082018990529181018790528515156060820152841515608082015283151560a082015260c0810183905260e08082528951908201528851909182916101008301918b019080838360005b8381101561015e578181015183820152602001610146565b50505050905090810190601f16801561018b5780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b3480156101ab57600080fd5b506101b46104ac565b604080519115158252519081900360200190f35b3480156101d457600080fd5b5061021b602460048035828101929082013591813580830192908201359160443580830192908201359160643580830192908201359160843591820191013560a4356104ce565b005b34801561022957600080fd5b506100f5610965565b34801561023e57600080fd5b50610247610a61565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561028357818101518382015260200161026b565b505050509050019250505060405180910390f35b3480156102a357600080fd5b5061021b6004803560248101910135610ac3565b3480156102c357600080fd5b5061021b610d62565b3480156102d857600080fd5b506102e1610e8f565b60408051600160a060020a039092168252519081900360200190f35b34801561030957600080fd5b50610312610e9e565b60408051918252519081900360200190f35b34801561033057600080fd5b506102e1610ea4565b34801561034557600080fd5b5061021b600160a060020a03600435166024351515610eb3565b34801561036b57600080fd5b5061021b600160a060020a0360043516602435604435611104565b34801561039257600080fd5b50610312611266565b3480156103a757600080fd5b506102e161126c565b600160a060020a0381166000908152600460208181526040808420600180820154600280840154600385015497850154855487516101009682161587026000190190911693909304601f81018990048902840189019097528683526060999889988998899889988998919788979296929560ff808216969382048116956201000090920416939289919083018282801561048b5780601f106104605761010080835404028352916020019161048b565b820191906000526020600020905b81548152906001019060200180831161046e57829003601f168201915b50505050509650975097509750975097509750975050919395979092949650565b60035474010000000000000000000000000000000000000000900460ff165b90565b600060606104db3361127b565b1515610531576040805160e560020a62461bcd02815260206004820152601a60248201527f73656e646572206973206e6f74206120636f6e74726f6c6c6572000000000000604482015290519081900360640190fd5b8b8a14801561053f57508b88145b801561054a57508b86145b801561055557508b86145b15156105ab576040805160e560020a62461bcd02815260206004820152601e60248201527f706172616d65746572206c656e6774687320646f206e6f74206d617463680000604482015290519081900360640190fd5b600091505b8b82101561095657600460008e8e858181106105c857fe5b60209081029290920135600160a060020a03168352508101919091526040016000206003015460ff1615610646576040805160e560020a62461bcd02815260206004820152601760248201527f746f6b656e20616c726561647920617661696c61626c65000000000000000000604482015290519081900360640190fd5b61066c6106678c8c8581811061065857fe5b6020029190910135905061132d565b611359565b905060e0604051908101604052808281526020018a8a85818110151561068e57fe5b9050602002013581526020016000815260200160011515815260200188888581811015156106b857fe5b602090810292909201351515835250018686858181106106d457fe5b60209081029290920135151583525001849052600460008f8f868181106106f757fe5b90506020020135600160a060020a0316600160a060020a0316600160a060020a0316815260200190815260200160002060008201518160000190805190602001906107439291906115cf565b5060208201516001820155604082015160028201556060820151600382018054608085015160a08601511515620100000262ff0000199115156101000261ff001995151560ff199094169390931794909416919091171691909117905560c09091015160049091015560058d8d848181106107ba57fe5b8354600181018555600094855260209485902001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0395909202939093013593909316929092179055507f1802e89da3f6ef84e024e37454c226b1e13bf846ce71cd2a1d24faef9cbf779b338e8e8581811061083157fe5b90506020020135600160a060020a0316838c8c87818110151561085057fe5b905060200201358b8b88818110151561086557fe5b9050602002013515158a8a89818110151561087c57fe5b9050602002013515156040518087600160a060020a0316600160a060020a0316815260200186600160a060020a0316600160a060020a03168152602001806020018581526020018415151515815260200183151515158152602001828103825286818151815260200191508051906020019080838360005b8381101561090c5781810151838201526020016108f4565b50505050905090810190601f1680156109395780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390a16001909101906105b0565b50505050505050505050505050565b600654600160a060020a03166000908152600460208181526040808420600180820154600280840154600385015497850154855487516101009682161587026000190190911693909304601f81018990048902840189019097528683526060999889988998899889988998919788979296929560ff8082169693820481169562010000909204169392899190830182828015610a425780601f10610a1757610100808354040283529160200191610a42565b820191906000526020600020905b815481529060010190602001808311610a2557829003601f168201915b5050505050965097509750975097509750975097505090919293949596565b60606005805480602002602001604051908101604052809291908181526020018280548015610ab957602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610a9b575b5050505050905090565b6000806000610ad13361127b565b1515610b27576040805160e560020a62461bcd02815260206004820152601a60248201527f73656e646572206973206e6f74206120636f6e74726f6c6c6572000000000000604482015290519081900360640190fd5b600092505b83831015610d5b5760046000868686818110610b4457fe5b60209081029290920135600160a060020a03168352508101919091526040016000206003015460ff161515610bc3576040805160e560020a62461bcd02815260206004820152601660248201527f746f6b656e206973206e6f7420617661696c61626c6500000000000000000000604482015290519081900360640190fd5b848484818110610bcf57fe5b60209081029290920135600160a060020a03166000818152600490935260408320909450919050610c00828261164d565b506000600182018190556002820181905560038201805462ffffff19169055600490910181905590505b600554610c3e90600163ffffffff6113b316565b811015610cf95781600160a060020a0316600582815481101515610c5e57fe5b600091825260209091200154600160a060020a03161415610cf15760058054610c8e90600163ffffffff6113b316565b81548110610c9857fe5b60009182526020909120015460058054600160a060020a039092169183908110610cbe57fe5b9060005260206000200160006101000a815481600160a060020a030219169083600160a060020a03160217905550610cf9565b600101610c2a565b6005805490610d0c906000198301611694565b5060408051338152600160a060020a038416602082015281517f703f7e3f084d5b8dcc12fddcfd9a70d65b6b21ec7659e4608dbaf4419ede3ad0929181900390910190a1600190920191610b2c565b5050505050565b610d6b336113ca565b1515610dc1576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e206f776e657200000000000000000000604482015290519081900360640190fd5b60035474010000000000000000000000000000000000000000900460ff161515610e35576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b6003805473ffffffffffffffffffffffffffffffffffffffff19169055604080516000808252602082015281517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea5929181900390910190a1565b600154600160a060020a031690565b60075490565b600354600160a060020a031690565b610ebc336113ca565b1515610f12576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e206f776e657200000000000000000000604482015290519081900360640190fd5b60035474010000000000000000000000000000000000000000900460ff161515610f86576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b600160a060020a038216151561100c576040805160e560020a62461bcd02815260206004820152602360248201527f6f776e65722063616e6e6f742062652073657420746f207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6003805474ff00000000000000000000000000000000000000001916740100000000000000000000000000000000000000008315159081029190911790915561108c5760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b60035460408051600160a060020a039283168152918416602083015280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1506003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60006111116007546113de565b905061111c3361127b565b8061112f575033600160a060020a038216145b1515611185576040805160e560020a62461bcd02815260206004820152601b60248201527f656974686572206f7261636c65206f7220636f6e74726f6c6c65720000000000604482015290519081900360640190fd5b600160a060020a03841660009081526004602052604090206003015460ff1615156111fa576040805160e560020a62461bcd02815260206004820152601660248201527f746f6b656e206973206e6f7420617661696c61626c6500000000000000000000604482015290519081900360640190fd5b600160a060020a03841660008181526004602081815260409283902060028101889055909101859055815133815290810192909252818101859052517fdb3a4cfb4cd8ac94343ff7440cee8d05ade309056203f0e53ca49b6db8197c7d9181900360600190a150505050565b60025490565b600654600160a060020a031690565b60006112886002546113de565b600160a060020a031663b429afeb836040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b1580156112fb57600080fd5b505af115801561130f573d6000803e3d6000fd5b505050506040513d602081101561132557600080fd5b505192915050565b6113356116bd565b6040516020810160405282815280602083015250611352826114d5565b8152919050565b606080600083600001516040519080825280601f01601f191660200182016040528015611390578160200160208202803883390190505b5091506020820190506113ac818560200151866000015161158b565b5092915050565b600080838311156113c357600080fd5b5050900390565b600354600160a060020a0390811691161490565b60008054604080517f0178b8bf000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691630178b8bf9160248082019260209290919082900301818787803b15801561144557600080fd5b505af1158015611459573d6000803e3d6000fd5b505050506040513d602081101561146f57600080fd5b5051604080517f3b3b57de000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691633b3b57de916024808201926020929091908290030181600087803b1580156112fb57600080fd5b6000808215156114e85760009150611585565b6fffffffffffffffffffffffffffffffff8316151561151b57601001700100000000000000000000000000000000830492505b67ffffffffffffffff8316151561153e5760080168010000000000000000830492505b63ffffffff8316151561155957600401640100000000830492505b61ffff831615156115705760020162010000830492505b60ff8316151561157e576001015b8060200391505b50919050565b60005b602082106115b0578251845260209384019390920191601f199091019061158e565b50905182516020929092036101000a6000190180199091169116179052565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061161057805160ff191683800117855561163d565b8280016001018555821561163d579182015b8281111561163d578251825591602001919060010190611622565b506116499291506116d4565b5090565b50805460018160011615610100020316600290046000825580601f106116735750611691565b601f01602090049060005260206000209081019061169191906116d4565b50565b8154818355818111156116b8576000838152602090206116b89181019083016116d4565b505050565b604080518082019091526000808252602082015290565b6104cb91905b8082111561164957600081556001016116da5600a165627a7a7230582093b6ea30833eac9793938fe8dab81d00e6ef1dbb9489c89e10258ba8847c4c870029","bin-runtime":"6080604052600436106100cf5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631f69565f81146100d45780632121dc751461019f57806334c73edc146101c85780633efec5e91461021d578063443dd2a4146102325780636c3824ef14610297578063715018a6146102b75780637d73b231146102cc57806380cc0dda146102fd5780638da5cb5b14610324578063b242e53414610339578063d545782e1461035f578063e2b4ce9714610386578063e9cbd8221461039b575b600080fd5b3480156100e057600080fd5b506100f5600160a060020a03600435166103b0565b6040805160208082018990529181018790528515156060820152841515608082015283151560a082015260c0810183905260e08082528951908201528851909182916101008301918b019080838360005b8381101561015e578181015183820152602001610146565b50505050905090810190601f16801561018b5780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b3480156101ab57600080fd5b506101b46104ac565b604080519115158252519081900360200190f35b3480156101d457600080fd5b5061021b602460048035828101929082013591813580830192908201359160443580830192908201359160643580830192908201359160843591820191013560a4356104ce565b005b34801561022957600080fd5b506100f5610965565b34801561023e57600080fd5b50610247610a61565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561028357818101518382015260200161026b565b505050509050019250505060405180910390f35b3480156102a357600080fd5b5061021b6004803560248101910135610ac3565b3480156102c357600080fd5b5061021b610d62565b3480156102d857600080fd5b506102e1610e8f565b60408051600160a060020a039092168252519081900360200190f35b34801561030957600080fd5b50610312610e9e565b60408051918252519081900360200190f35b34801561033057600080fd5b506102e1610ea4565b34801561034557600080fd5b5061021b600160a060020a03600435166024351515610eb3565b34801561036b57600080fd5b5061021b600160a060020a0360043516602435604435611104565b34801561039257600080fd5b50610312611266565b3480156103a757600080fd5b506102e161126c565b600160a060020a0381166000908152600460208181526040808420600180820154600280840154600385015497850154855487516101009682161587026000190190911693909304601f81018990048902840189019097528683526060999889988998899889988998919788979296929560ff808216969382048116956201000090920416939289919083018282801561048b5780601f106104605761010080835404028352916020019161048b565b820191906000526020600020905b81548152906001019060200180831161046e57829003601f168201915b50505050509650975097509750975097509750975050919395979092949650565b60035474010000000000000000000000000000000000000000900460ff165b90565b600060606104db3361127b565b1515610531576040805160e560020a62461bcd02815260206004820152601a60248201527f73656e646572206973206e6f74206120636f6e74726f6c6c6572000000000000604482015290519081900360640190fd5b8b8a14801561053f57508b88145b801561054a57508b86145b801561055557508b86145b15156105ab576040805160e560020a62461bcd02815260206004820152601e60248201527f706172616d65746572206c656e6774687320646f206e6f74206d617463680000604482015290519081900360640190fd5b600091505b8b82101561095657600460008e8e858181106105c857fe5b60209081029290920135600160a060020a03168352508101919091526040016000206003015460ff1615610646576040805160e560020a62461bcd02815260206004820152601760248201527f746f6b656e20616c726561647920617661696c61626c65000000000000000000604482015290519081900360640190fd5b61066c6106678c8c8581811061065857fe5b6020029190910135905061132d565b611359565b905060e0604051908101604052808281526020018a8a85818110151561068e57fe5b9050602002013581526020016000815260200160011515815260200188888581811015156106b857fe5b602090810292909201351515835250018686858181106106d457fe5b60209081029290920135151583525001849052600460008f8f868181106106f757fe5b90506020020135600160a060020a0316600160a060020a0316600160a060020a0316815260200190815260200160002060008201518160000190805190602001906107439291906115cf565b5060208201516001820155604082015160028201556060820151600382018054608085015160a08601511515620100000262ff0000199115156101000261ff001995151560ff199094169390931794909416919091171691909117905560c09091015160049091015560058d8d848181106107ba57fe5b8354600181018555600094855260209485902001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0395909202939093013593909316929092179055507f1802e89da3f6ef84e024e37454c226b1e13bf846ce71cd2a1d24faef9cbf779b338e8e8581811061083157fe5b90506020020135600160a060020a0316838c8c87818110151561085057fe5b905060200201358b8b88818110151561086557fe5b9050602002013515158a8a89818110151561087c57fe5b9050602002013515156040518087600160a060020a0316600160a060020a0316815260200186600160a060020a0316600160a060020a03168152602001806020018581526020018415151515815260200183151515158152602001828103825286818151815260200191508051906020019080838360005b8381101561090c5781810151838201526020016108f4565b50505050905090810190601f1680156109395780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390a16001909101906105b0565b50505050505050505050505050565b600654600160a060020a03166000908152600460208181526040808420600180820154600280840154600385015497850154855487516101009682161587026000190190911693909304601f81018990048902840189019097528683526060999889988998899889988998919788979296929560ff8082169693820481169562010000909204169392899190830182828015610a425780601f10610a1757610100808354040283529160200191610a42565b820191906000526020600020905b815481529060010190602001808311610a2557829003601f168201915b5050505050965097509750975097509750975097505090919293949596565b60606005805480602002602001604051908101604052809291908181526020018280548015610ab957602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610a9b575b5050505050905090565b6000806000610ad13361127b565b1515610b27576040805160e560020a62461bcd02815260206004820152601a60248201527f73656e646572206973206e6f74206120636f6e74726f6c6c6572000000000000604482015290519081900360640190fd5b600092505b83831015610d5b5760046000868686818110610b4457fe5b60209081029290920135600160a060020a03168352508101919091526040016000206003015460ff161515610bc3576040805160e560020a62461bcd02815260206004820152601660248201527f746f6b656e206973206e6f7420617661696c61626c6500000000000000000000604482015290519081900360640190fd5b848484818110610bcf57fe5b60209081029290920135600160a060020a03166000818152600490935260408320909450919050610c00828261164d565b506000600182018190556002820181905560038201805462ffffff19169055600490910181905590505b600554610c3e90600163ffffffff6113b316565b811015610cf95781600160a060020a0316600582815481101515610c5e57fe5b600091825260209091200154600160a060020a03161415610cf15760058054610c8e90600163ffffffff6113b316565b81548110610c9857fe5b60009182526020909120015460058054600160a060020a039092169183908110610cbe57fe5b9060005260206000200160006101000a815481600160a060020a030219169083600160a060020a03160217905550610cf9565b600101610c2a565b6005805490610d0c906000198301611694565b5060408051338152600160a060020a038416602082015281517f703f7e3f084d5b8dcc12fddcfd9a70d65b6b21ec7659e4608dbaf4419ede3ad0929181900390910190a1600190920191610b2c565b5050505050565b610d6b336113ca565b1515610dc1576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e206f776e657200000000000000000000604482015290519081900360640190fd5b60035474010000000000000000000000000000000000000000900460ff161515610e35576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b6003805473ffffffffffffffffffffffffffffffffffffffff19169055604080516000808252602082015281517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea5929181900390910190a1565b600154600160a060020a031690565b60075490565b600354600160a060020a031690565b610ebc336113ca565b1515610f12576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e206f776e657200000000000000000000604482015290519081900360640190fd5b60035474010000000000000000000000000000000000000000900460ff161515610f86576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b600160a060020a038216151561100c576040805160e560020a62461bcd02815260206004820152602360248201527f6f776e65722063616e6e6f742062652073657420746f207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6003805474ff00000000000000000000000000000000000000001916740100000000000000000000000000000000000000008315159081029190911790915561108c5760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b60035460408051600160a060020a039283168152918416602083015280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1506003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60006111116007546113de565b905061111c3361127b565b8061112f575033600160a060020a038216145b1515611185576040805160e560020a62461bcd02815260206004820152601b60248201527f656974686572206f7261636c65206f7220636f6e74726f6c6c65720000000000604482015290519081900360640190fd5b600160a060020a03841660009081526004602052604090206003015460ff1615156111fa576040805160e560020a62461bcd02815260206004820152601660248201527f746f6b656e206973206e6f7420617661696c61626c6500000000000000000000604482015290519081900360640190fd5b600160a060020a03841660008181526004602081815260409283902060028101889055909101859055815133815290810192909252818101859052517fdb3a4cfb4cd8ac94343ff7440cee8d05ade309056203f0e53ca49b6db8197c7d9181900360600190a150505050565b60025490565b600654600160a060020a031690565b60006112886002546113de565b600160a060020a031663b429afeb836040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b1580156112fb57600080fd5b505af115801561130f573d6000803e3d6000fd5b505050506040513d602081101561132557600080fd5b505192915050565b6113356116bd565b6040516020810160405282815280602083015250611352826114d5565b8152919050565b606080600083600001516040519080825280601f01601f191660200182016040528015611390578160200160208202803883390190505b5091506020820190506113ac818560200151866000015161158b565b5092915050565b600080838311156113c357600080fd5b5050900390565b600354600160a060020a0390811691161490565b60008054604080517f0178b8bf000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691630178b8bf9160248082019260209290919082900301818787803b15801561144557600080fd5b505af1158015611459573d6000803e3d6000fd5b505050506040513d602081101561146f57600080fd5b5051604080517f3b3b57de000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691633b3b57de916024808201926020929091908290030181600087803b1580156112fb57600080fd5b6000808215156114e85760009150611585565b6fffffffffffffffffffffffffffffffff8316151561151b57601001700100000000000000000000000000000000830492505b67ffffffffffffffff8316151561153e5760080168010000000000000000830492505b63ffffffff8316151561155957600401640100000000830492505b61ffff831615156115705760020162010000830492505b60ff8316151561157e576001015b8060200391505b50919050565b60005b602082106115b0578251845260209384019390920191601f199091019061158e565b50905182516020929092036101000a6000190180199091169116179052565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061161057805160ff191683800117855561163d565b8280016001018555821561163d579182015b8281111561163d578251825591602001919060010190611622565b506116499291506116d4565b5090565b50805460018160011615610100020316600290046000825580601f106116735750611691565b601f01602090049060005260206000209081019061169191906116d4565b50565b8154818355818111156116b8576000838152602090206116b89181019083016116d4565b505050565b604080518082019091526000808252602082015290565b6104cb91905b8082111561164957600081556001016116da5600a165627a7a7230582093b6ea30833eac9793938fe8dab81d00e6ef1dbb9489c89e10258ba8847c4c870029","srcmap":"1593:8239:8:-;;;3164:336;8:9:-1;5:2;;;30:1;27;20:12;5:2;3164:336:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1312:12:6;:23;;-1:-1:-1;;;;;1312:23:6;;;-1:-1:-1;;;;;;1312:23:6;;;;;;;;:12;1345:24;;;;1356:12;;;1345:24;;;;;;;1334:15:4;:38;;;1527:6:7;:18;;1555:32;;;;;;;-1:-1:-1;;;;;;1527:18:7;;;;;;;;;;;1555:32;;;;;;;;;;;;3164:336:8;;;;;;;;;;;1671:15:7;1555:32;1671:15;1670:16;1666:78;;;1707:26;;;-1:-1:-1;;;;;1707:26:7;;;;;;;;;;;;;;;1666:78;1758:43;;;1787:1;1758:43;;-1:-1:-1;;;;;1758:43:7;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3420:11:8;:30;;;;-1:-1:-1;;3460:11:8;:33;;-1:-1:-1;;;;;;3460:33:8;-1:-1:-1;;;;;3460:33:8;;;;;;;;;;-1:-1:-1;1593:8239:8;;-1:-1:-1;1593:8239:8;;-1:-1:-1;1593:8239:8;;","srcmap-runtime":"1593:8239:8:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7993:325;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7993:325:8;-1:-1:-1;;;;;7993:325:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-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;7993:325:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3149:94:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3149:94:7;;;;;;;;;;;;;;;;;;;;;;4064:1439:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4064:1439:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8810:369;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8810:369:8;;;;9302:105;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9302:105:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;9302:105:8;;;;;;;;;;;;;;;;;5630:1031;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5630:1031:8;;;;;;;;;;;;3519:306:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3519:306:7;;;;1468:91:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1468:91:6;;;;;;;;-1:-1:-1;;;;;1468:91:6;;;;;;;;;;;;;;9741:89:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9741:89:8;;;;;;;;;;;;;;;;;;;;3908:77:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3908:77:7;;;;2231:801;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2231:801:7;-1:-1:-1;;;;;2231:801:7;;;;;;;;;6938:514:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6938:514:8;-1:-1:-1;;;;;6938:514:8;;;;;;;;;1629:97:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1629:97:4;;;;9538:89:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9538:89:8;;;;7993:325;-1:-1:-1;;;;;8139:17:8;;8058:7;8139:17;;;:13;:17;;;;;;;;8192:19;;;;;8213:14;;;;;8229:19;;;;8290:20;;;;8166:145;;;;8229:19;8166:145;;;;;;-1:-1:-1;;8166:145:8;;;;;;;;;;;;;;;;;;;;;;;;;;8050:6;;8058:7;;;;;;;;;;;8139:17;;;;8192:19;;8213:14;;8229:19;;;;;8250:18;;;;;;8270;;;;;;8290:20;8139:17;;8166:145;;;8139:17;8166:145;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7993:325;;;;;;;;;;:::o;3149:94:7:-;3221:15;;;;;;;3149:94;;:::o;4064:1439:8:-;4555:6;4801:20;1489:25:4;1503:10;1489:13;:25::i;:::-;1481:64;;;;;;;-1:-1:-1;;;;;1481:64:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;4298:33:8;;;:72;;;;-1:-1:-1;4335:35:8;;;4298:72;:110;;;;-1:-1:-1;4374:34:8;;;4298:110;:148;;;;-1:-1:-1;4412:34:8;;;4298:148;4290:191;;;;;;;-1:-1:-1;;;;;4290:191:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;4564:1;4555:10;;4550:947;4567:18;;;4550:947;;;4678:13;:25;4692:7;;4700:1;4692:10;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4692:10:8;4678:25;;-1:-1:-1;4678:25:8;;;;;;;;-1:-1:-1;4678:25:8;:35;;;;;4677:36;4669:72;;;;;-1:-1:-1;;;;;4669:72:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;4824:35;:24;:8;;4833:1;4824:11;;;;;;;;;;;;;;;-1:-1:-1;4824:22:8;:24::i;:::-;:33;:35::i;:::-;4801:58;;4949:284;;;;;;;;;4982:6;4949:284;;;;5018:10;;5029:1;5018:13;;;;;;;;;;;;;;;4949:284;;;;5056:1;4949:284;;;;5087:4;4949:284;;;;;;5120:9;;5130:1;5120:12;;;;;;;;;;;;;;;;;;;;4949:284;;-1:-1:-1;4949:284:8;5160:9;;5170:1;5160:12;;;;;;;;;;;;;;;;;;4949:284;;-1:-1:-1;4949:284:8;;;;4921:13;-1:-1:-1;4935:7:8;;4943:1;4935:10;;;;;;;;;;;;;-1:-1:-1;;;;;4935:10:8;-1:-1:-1;;;;;4921:25:8;-1:-1:-1;;;;;4921:25:8;;;;;;;;;;;;:312;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;4921:312:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4921:312:8;;;;;-1:-1:-1;;4921:312:8;;;-1:-1:-1;;4921:312:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5305:18;5329:7;;5337:1;5329:10;;;;;;;27::-1;;39:1;23:18;;45:23;;-1:-1;5305:35:8;;;5329:10;5305:35;;;;;;;-1:-1:-1;;5305:35:8;-1:-1:-1;;;;;5329:10:8;;;;;;;;;;;;;5305:35;;;;;;-1:-1:-1;5401:85:8;5412:10;5424:7;;5432:1;5424:10;;;;;;;;;;;;;-1:-1:-1;;;;;5424:10:8;5436:6;5444:10;;5455:1;5444:13;;;;;;;;;;;;;;;5459:9;;5469:1;5459:12;;;;;;;;;;;;;;;;;5473:9;;5483:1;5473:12;;;;;;;;;;;;;;;;;5401:85;;;;-1:-1:-1;;;;;5401:85:8;-1:-1:-1;;;;;5401:85:8;;;;;;-1:-1:-1;;;;;5401:85:8;-1:-1:-1;;;;;5401:85:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;5401:85:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4587:3;;;;;4550:947;;;4064:1439;;;;;;;;;;;;;:::o;8810:369::-;8970:11;;-1:-1:-1;;;;;8970:11:8;8870:7;8956:26;;;:13;:26;;;;;;;;8970:11;9023:24;;;;9049:19;;;;;9070:24;;;;9146:25;;;;8992:180;;;;8970:11;8992:180;;;;;;-1:-1:-1;;8992:180:8;;;;;;;;;;;;;;;;;;;;;;;;;;8862:6;;8870:7;;;;;;;;;;;8956:26;;;;9023:24;;9049:19;;9070:24;;;;;9096:23;;;;;;9121;;;;;;9146:25;8956:26;;8992:180;;;8956:26;8992:180;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8810:369;;;;;;;;:::o;9302:105::-;9354:9;9382:18;9375:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9375:25:8;;;;;;;;;;;;;;;;;;;;;;;9302:105;:::o;5630:1031::-;5813:6;6057:13;6246:6;1489:25:4;1503:10;1489:13;:25::i;:::-;1481:64;;;;;;;-1:-1:-1;;;;;1481:64:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;5822:1:8;5813:10;;5808:847;5825:18;;;5808:847;;;5941:13;:25;5955:7;;5963:1;5955:10;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5955:10:8;5941:25;;-1:-1:-1;5941:25:8;;;;;;;;-1:-1:-1;5941:25:8;:35;;;;;5933:70;;;;;;;-1:-1:-1;;;;;5933:70:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;6073:7;;6081:1;6073:10;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6073:10:8;6144:20;;;;:13;:20;;;;;;6073:10;;-1:-1:-1;6144:20:8;;-1:-1:-1;6137:27:8;6144:20;;6137:27;:::i;:::-;-1:-1:-1;6137:27:8;;;;;;;;;;;;;;;;;;-1:-1:-1;;6137:27:8;;;;;;;;;;;-1:-1:-1;6241:272:8;6262:18;:25;:32;;6292:1;6262:32;:29;:32;:::i;:::-;6258:1;:36;6241:272;;;6348:5;-1:-1:-1;;;;;6323:30:8;:18;6342:1;6323:21;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6323:21:8;:30;6319:180;;;6401:18;6420:25;;:32;;6450:1;6420:32;:29;:32;:::i;:::-;6401:52;;;;;;;;;;;;;;;;;;6377:18;:21;;-1:-1:-1;;;;;6401:52:8;;;;6396:1;;6377:21;;;;;;;;;;;;;;:76;;;;;-1:-1:-1;;;;;6377:76:8;;;;;-1:-1:-1;;;;;6377:76:8;;;;;;6475:5;;6319:180;6296:3;;6241:272;;;6526:18;:27;;;;;-1:-1:-1;;6526:27:8;;;:::i;:::-;-1:-1:-1;6613:31:8;;;6626:10;6613:31;;-1:-1:-1;;;;;6613:31:8;;;;;;;;;;;;;;;;;;;5845:3;;;;;5808:847;;;5630:1031;;;;;:::o;3519:306:7:-;1924:20;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;3640:15;;;;;;;3632:57;;;;;;;-1:-1:-1;;;;;3632:57:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;3743:6;:19;;-1:-1:-1;;3743:19:7;;;3778:40;;;3760:1;3778:40;;;;;;;;;;;;;;;;;;;;3519:306::o;1468:91:6:-;1540:12;;-1:-1:-1;;;;;1540:12:6;1468:91;:::o;9741:89:8:-;9812:11;;9741:89;:::o;3908:77:7:-;3972:6;;-1:-1:-1;;;;;3972:6:7;3908:77;:::o;2231:801::-;1924:20;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;2388:15;;;;;;;2380:57;;;;;;;-1:-1:-1;;;;;2380:57:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2518:22:7;;;;2510:70;;;;;-1:-1:-1;;;;;2510:70:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2665:15;:31;;-1:-1:-1;;2665:31:7;;;;;;;;;;;;;;;2775:75;;2814:25;;;-1:-1:-1;;;;;2814:25:7;;;;;;;;;;;;;;;2775:75;2931:6;;2910:38;;;-1:-1:-1;;;;;2931:6:7;;;2910:38;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3008:6:7;:17;;-1:-1:-1;;3008:17:7;-1:-1:-1;;;;;3008:17:7;;;;;;;;;;2231:801::o;6938:514:8:-;2560:21;2584:24;2596:11;;2584;:24::i;:::-;2560:48;;2627:25;2641:10;2627:13;:25::i;:::-;:56;;;-1:-1:-1;2656:10:8;-1:-1:-1;;;;;2656:27:8;;;2627:56;2618:97;;;;;;;-1:-1:-1;;;;;2618:97:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7101:21:8;;;;;;:13;:21;;;;;:31;;;;;7093:66;;;;;;;-1:-1:-1;;;;;7093:66:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7205:21:8;;;;;;:13;:21;;;;;;;;;:26;;;:34;;;7302:32;;;:46;;;7402:43;;7419:10;7402:43;;;;;;;;;;;;;;;;;;;;;;;;;6938:514;;;;:::o;1629:97:4:-;1704:15;;1629:97;:::o;9538:89:8:-;9609:11;;-1:-1:-1;;;;;9609:11:8;9538:89;:::o;1796:158:4:-;1860:4;1895:28;1907:15;;1895:11;:28::i;:::-;-1:-1:-1;;;;;1883:54:4;;1938:8;1883:64;;;;;;;;;;;;;-1:-1:-1;;;;;1883:64:4;-1:-1:-1;;;;;1883:64:4;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1883:64:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1883:64:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1883:64:4;;1796:158;-1:-1:-1;;1796:158:4:o;4914:370:3:-;4971:16;;:::i;:::-;5122:4;5116:11;5162:4;5157:3;5153:14;5147:4;5140:28;5193:4;5188:3;5181:17;5234:3;5227:4;5222:3;5218:14;5211:27;5091:157;5268:9;5272:4;5268:3;:9::i;:::-;5257:20;;:3;4914:370;-1:-1:-1;4914:370:3:o;5778:265::-;5838:6;5863:17;5914:11;5894:4;:9;;;5883:21;;;;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;5883:21:3;;5863:41;;5965:2;5960:3;5956:12;5946:22;;5980:36;5987:6;5995:4;:9;;;6006:4;:9;;;5980:6;:36::i;:::-;-1:-1:-1;6033:3:3;5778:265;-1:-1:-1;;5778:265:3:o;2250:131:0:-;2308:7;;2331:6;;;;2323:15;;;;;;-1:-1:-1;;2356:5:0;;;2250:131::o;4091:107:7:-;4185:6;;-1:-1:-1;;;;;4185:6:7;;;4173:18;;;;4091:107::o;1748:152:6:-;1811:7;1852:4;;:24;;;;;;;;;;;;;;-1:-1:-1;;;;;1852:4:6;;;;:13;;:24;;;;;;;;;;;;;;;1811:7;1852:4;:24;;;5:2:-1;;;;30:1;27;20:12;5:2;1852:24:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1852:24:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1852:24:6;1837:56;;;;;;;;;;;;;;-1:-1:-1;;;;;1837:45:6;;;;;;:56;;;;;1852:24;;1837:56;;;;;;;;;:45;:56;;;5:2:-1;;;;30:1;27;20:12;3840:768:3;3890:4;;3928:9;;3924:35;;;3958:1;3951:8;;;;3924:35;3980:34;3973:41;;:46;3969:164;;;4042:2;4035:9;4086:35;4078:4;4073:48;;-1:-1:-1;3969:164:3;4153:18;4146:25;;:30;4142:131;;;4199:1;4192:8;4242:19;4234:4;4229:32;;-1:-1:-1;4142:131:3;4293:10;4286:17;;:22;4282:115;;;4331:1;4324:8;4374:11;4366:4;4361:24;;-1:-1:-1;4282:115:3;4417:6;4410:13;;:18;4406:107;;;4451:1;4444:8;4494:7;4486:4;4481:20;;-1:-1:-1;4406:107:3;4533:4;4526:11;;:16;4522:55;;;4565:1;4558:8;4522:55;4598:3;4593:2;:8;4586:15;;3840:768;;;;;:::o;2686:548::-;3012:9;2806:164;2819:2;2812:9;;2806:164;;2888:10;;2875:24;;2934:2;2926:10;;;;2950:9;;;;-1:-1:-1;;2823:9:3;;;;2806:164;;;-1:-1:-1;3097:10:3;;3152:11;;3032:2;:8;;;;3024:3;:17;-1:-1:-1;;3024:21:3;3109:9;;3093:26;;;3148:22;;3196:21;3183:35;;3064:164::o;1593:8239:8:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1593:8239:8;;;-1:-1:-1;1593:8239:8;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;1593:8239:8;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;"}},"sourceList":["externals/SafeMath.sol","externals/ens/ENS.sol","externals/ens/PublicResolver.sol","externals/strings.sol","internals/controllable.sol","internals/controller.sol","internals/ensResolvable.sol","internals/ownable.sol","internals/tokenWhitelist.sol"],"sources":{"externals/SafeMath.sol":{"AST":{"attributes":{"absolutePath":"externals/SafeMath.sol","exportedSymbols":{"SafeMath":[683]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".24"]},"id":557,"name":"PragmaDirective","src":"1172:24:0"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"library","documentation":"@title SafeMath\n@dev Math operations with safety checks that revert on error","fullyImplemented":true,"linearizedBaseContracts":[683],"name":"SafeMath","scope":684},"children":[{"attributes":{"constant":true,"documentation":"@dev Multiplies two numbers, reverts on overflow.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"mul","payable":false,"scope":683,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"a","scope":590,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":558,"name":"ElementaryTypeName","src":"1389:7:0"}],"id":559,"name":"VariableDeclaration","src":"1389:9:0"},{"attributes":{"constant":false,"name":"b","scope":590,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":560,"name":"ElementaryTypeName","src":"1400:7:0"}],"id":561,"name":"VariableDeclaration","src":"1400:9:0"}],"id":562,"name":"ParameterList","src":"1388:22:0"},{"children":[{"attributes":{"constant":false,"name":"","scope":590,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":563,"name":"ElementaryTypeName","src":"1434:7:0"}],"id":564,"name":"VariableDeclaration","src":"1434:7:0"}],"id":565,"name":"ParameterList","src":"1433:9:0"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":559,"type":"uint256","value":"a"},"id":566,"name":"Identifier","src":"1658:1:0"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":567,"name":"Literal","src":"1663:1:0"}],"id":568,"name":"BinaryOperation","src":"1658:6:0"},{"children":[{"attributes":{"functionReturnParameters":565},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":569,"name":"Literal","src":"1681:1:0"}],"id":570,"name":"Return","src":"1674:8:0"}],"id":571,"name":"Block","src":"1666:23:0"}],"id":572,"name":"IfStatement","src":"1654:35:0"},{"attributes":{"assignments":[574]},"children":[{"attributes":{"constant":false,"name":"c","scope":590,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":573,"name":"ElementaryTypeName","src":"1695:7:0"}],"id":574,"name":"VariableDeclaration","src":"1695:9:0"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":559,"type":"uint256","value":"a"},"id":575,"name":"Identifier","src":"1707:1:0"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":561,"type":"uint256","value":"b"},"id":576,"name":"Identifier","src":"1711:1:0"}],"id":577,"name":"BinaryOperation","src":"1707:5:0"}],"id":578,"name":"VariableDeclarationStatement","src":"1695:17:0"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"overloadedDeclarations":[3588,3589],"referencedDeclaration":3588,"type":"function (bool) pure","value":"require"},"id":579,"name":"Identifier","src":"1718:7:0"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"/","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":574,"type":"uint256","value":"c"},"id":580,"name":"Identifier","src":"1726:1:0"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":559,"type":"uint256","value":"a"},"id":581,"name":"Identifier","src":"1730:1:0"}],"id":582,"name":"BinaryOperation","src":"1726:5:0"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":561,"type":"uint256","value":"b"},"id":583,"name":"Identifier","src":"1735:1:0"}],"id":584,"name":"BinaryOperation","src":"1726:10:0"}],"id":585,"name":"FunctionCall","src":"1718:19:0"}],"id":586,"name":"ExpressionStatement","src":"1718:19:0"},{"attributes":{"functionReturnParameters":565},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":574,"type":"uint256","value":"c"},"id":587,"name":"Identifier","src":"1751:1:0"}],"id":588,"name":"Return","src":"1744:8:0"}],"id":589,"name":"Block","src":"1443:314:0"}],"id":590,"name":"FunctionDefinition","src":"1376:381:0"},{"attributes":{"constant":true,"documentation":"@dev Integer division of two numbers truncating the quotient, reverts on division by zero.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"div","payable":false,"scope":683,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"a","scope":614,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":591,"name":"ElementaryTypeName","src":"1880:7:0"}],"id":592,"name":"VariableDeclaration","src":"1880:9:0"},{"attributes":{"constant":false,"name":"b","scope":614,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":593,"name":"ElementaryTypeName","src":"1891:7:0"}],"id":594,"name":"VariableDeclaration","src":"1891:9:0"}],"id":595,"name":"ParameterList","src":"1879:22:0"},{"children":[{"attributes":{"constant":false,"name":"","scope":614,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":596,"name":"ElementaryTypeName","src":"1925:7:0"}],"id":597,"name":"VariableDeclaration","src":"1925:7:0"}],"id":598,"name":"ParameterList","src":"1924:9:0"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"overloadedDeclarations":[3588,3589],"referencedDeclaration":3588,"type":"function (bool) pure","value":"require"},"id":599,"name":"Identifier","src":"1940:7:0"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":594,"type":"uint256","value":"b"},"id":600,"name":"Identifier","src":"1948:1:0"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":601,"name":"Literal","src":"1952:1:0"}],"id":602,"name":"BinaryOperation","src":"1948:5:0"}],"id":603,"name":"FunctionCall","src":"1940:14:0"}],"id":604,"name":"ExpressionStatement","src":"1940:14:0"},{"attributes":{"assignments":[606]},"children":[{"attributes":{"constant":false,"name":"c","scope":614,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":605,"name":"ElementaryTypeName","src":"2018:7:0"}],"id":606,"name":"VariableDeclaration","src":"2018:9:0"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"/","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":592,"type":"uint256","value":"a"},"id":607,"name":"Identifier","src":"2030:1:0"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":594,"type":"uint256","value":"b"},"id":608,"name":"Identifier","src":"2034:1:0"}],"id":609,"name":"BinaryOperation","src":"2030:5:0"}],"id":610,"name":"VariableDeclarationStatement","src":"2018:17:0"},{"attributes":{"functionReturnParameters":598},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":606,"type":"uint256","value":"c"},"id":611,"name":"Identifier","src":"2131:1:0"}],"id":612,"name":"Return","src":"2124:8:0"}],"id":613,"name":"Block","src":"1934:203:0"}],"id":614,"name":"FunctionDefinition","src":"1867:270:0"},{"attributes":{"constant":true,"documentation":"@dev Subtracts two numbers, reverts on overflow (i.e. if subtrahend is greater than minuend).","implemented":true,"isConstructor":false,"modifiers":[null],"name":"sub","payable":false,"scope":683,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"a","scope":638,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":615,"name":"ElementaryTypeName","src":"2263:7:0"}],"id":616,"name":"VariableDeclaration","src":"2263:9:0"},{"attributes":{"constant":false,"name":"b","scope":638,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":617,"name":"ElementaryTypeName","src":"2274:7:0"}],"id":618,"name":"VariableDeclaration","src":"2274:9:0"}],"id":619,"name":"ParameterList","src":"2262:22:0"},{"children":[{"attributes":{"constant":false,"name":"","scope":638,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":620,"name":"ElementaryTypeName","src":"2308:7:0"}],"id":621,"name":"VariableDeclaration","src":"2308:7:0"}],"id":622,"name":"ParameterList","src":"2307:9:0"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"overloadedDeclarations":[3588,3589],"referencedDeclaration":3588,"type":"function (bool) pure","value":"require"},"id":623,"name":"Identifier","src":"2323:7:0"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":618,"type":"uint256","value":"b"},"id":624,"name":"Identifier","src":"2331:1:0"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":616,"type":"uint256","value":"a"},"id":625,"name":"Identifier","src":"2336:1:0"}],"id":626,"name":"BinaryOperation","src":"2331:6:0"}],"id":627,"name":"FunctionCall","src":"2323:15:0"}],"id":628,"name":"ExpressionStatement","src":"2323:15:0"},{"attributes":{"assignments":[630]},"children":[{"attributes":{"constant":false,"name":"c","scope":638,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":629,"name":"ElementaryTypeName","src":"2344:7:0"}],"id":630,"name":"VariableDeclaration","src":"2344:9:0"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":616,"type":"uint256","value":"a"},"id":631,"name":"Identifier","src":"2356:1:0"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":618,"type":"uint256","value":"b"},"id":632,"name":"Identifier","src":"2360:1:0"}],"id":633,"name":"BinaryOperation","src":"2356:5:0"}],"id":634,"name":"VariableDeclarationStatement","src":"2344:17:0"},{"attributes":{"functionReturnParameters":622},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":630,"type":"uint256","value":"c"},"id":635,"name":"Identifier","src":"2375:1:0"}],"id":636,"name":"Return","src":"2368:8:0"}],"id":637,"name":"Block","src":"2317:64:0"}],"id":638,"name":"FunctionDefinition","src":"2250:131:0"},{"attributes":{"constant":true,"documentation":"@dev Adds two numbers, reverts on overflow.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"add","payable":false,"scope":683,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"a","scope":662,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":639,"name":"ElementaryTypeName","src":"2457:7:0"}],"id":640,"name":"VariableDeclaration","src":"2457:9:0"},{"attributes":{"constant":false,"name":"b","scope":662,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":641,"name":"ElementaryTypeName","src":"2468:7:0"}],"id":642,"name":"VariableDeclaration","src":"2468:9:0"}],"id":643,"name":"ParameterList","src":"2456:22:0"},{"children":[{"attributes":{"constant":false,"name":"","scope":662,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":644,"name":"ElementaryTypeName","src":"2502:7:0"}],"id":645,"name":"VariableDeclaration","src":"2502:7:0"}],"id":646,"name":"ParameterList","src":"2501:9:0"},{"children":[{"attributes":{"assignments":[648]},"children":[{"attributes":{"constant":false,"name":"c","scope":662,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":647,"name":"ElementaryTypeName","src":"2517:7:0"}],"id":648,"name":"VariableDeclaration","src":"2517:9:0"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":640,"type":"uint256","value":"a"},"id":649,"name":"Identifier","src":"2529:1:0"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":642,"type":"uint256","value":"b"},"id":650,"name":"Identifier","src":"2533:1:0"}],"id":651,"name":"BinaryOperation","src":"2529:5:0"}],"id":652,"name":"VariableDeclarationStatement","src":"2517:17:0"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"overloadedDeclarations":[3588,3589],"referencedDeclaration":3588,"type":"function (bool) pure","value":"require"},"id":653,"name":"Identifier","src":"2540:7:0"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":648,"type":"uint256","value":"c"},"id":654,"name":"Identifier","src":"2548:1:0"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":640,"type":"uint256","value":"a"},"id":655,"name":"Identifier","src":"2553:1:0"}],"id":656,"name":"BinaryOperation","src":"2548:6:0"}],"id":657,"name":"FunctionCall","src":"2540:15:0"}],"id":658,"name":"ExpressionStatement","src":"2540:15:0"},{"attributes":{"functionReturnParameters":646},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":648,"type":"uint256","value":"c"},"id":659,"name":"Identifier","src":"2569:1:0"}],"id":660,"name":"Return","src":"2562:8:0"}],"id":661,"name":"Block","src":"2511:64:0"}],"id":662,"name":"FunctionDefinition","src":"2444:131:0"},{"attributes":{"constant":true,"documentation":"@dev Divides two numbers and returns the remainder (unsigned integer modulo),\nreverts when dividing by zero.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"mod","payable":false,"scope":683,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"a","scope":682,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":663,"name":"ElementaryTypeName","src":"2720:7:0"}],"id":664,"name":"VariableDeclaration","src":"2720:9:0"},{"attributes":{"constant":false,"name":"b","scope":682,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":665,"name":"ElementaryTypeName","src":"2731:7:0"}],"id":666,"name":"VariableDeclaration","src":"2731:9:0"}],"id":667,"name":"ParameterList","src":"2719:22:0"},{"children":[{"attributes":{"constant":false,"name":"","scope":682,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":668,"name":"ElementaryTypeName","src":"2765:7:0"}],"id":669,"name":"VariableDeclaration","src":"2765:7:0"}],"id":670,"name":"ParameterList","src":"2764:9:0"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"overloadedDeclarations":[3588,3589],"referencedDeclaration":3588,"type":"function (bool) pure","value":"require"},"id":671,"name":"Identifier","src":"2780:7:0"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":666,"type":"uint256","value":"b"},"id":672,"name":"Identifier","src":"2788:1:0"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":673,"name":"Literal","src":"2793:1:0"}],"id":674,"name":"BinaryOperation","src":"2788:6:0"}],"id":675,"name":"FunctionCall","src":"2780:15:0"}],"id":676,"name":"ExpressionStatement","src":"2780:15:0"},{"attributes":{"functionReturnParameters":670},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"%","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":664,"type":"uint256","value":"a"},"id":677,"name":"Identifier","src":"2808:1:0"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":666,"type":"uint256","value":"b"},"id":678,"name":"Identifier","src":"2812:1:0"}],"id":679,"name":"BinaryOperation","src":"2808:5:0"}],"id":680,"name":"Return","src":"2801:12:0"}],"id":681,"name":"Block","src":"2774:44:0"}],"id":682,"name":"FunctionDefinition","src":"2707:111:0"}],"id":683,"name":"ContractDefinition","src":"1289:1531:0"}],"id":684,"name":"SourceUnit","src":"1172:1649:0"}},"externals/ens/ENS.sol":{"AST":{"attributes":{"absolutePath":"externals/ens/ENS.sol","exportedSymbols":{"ENS":[3062]}},"children":[{"attributes":{"literals":["solidity",">=","0.4",".24"]},"id":2984,"name":"PragmaDirective","src":"1400:25:1"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"interface","documentation":null,"fullyImplemented":false,"linearizedBaseContracts":[3062],"name":"ENS","scope":3063},"children":[{"attributes":{"anonymous":false,"documentation":null,"name":"NewOwner"},"children":[{"children":[{"attributes":{"constant":false,"indexed":true,"name":"node","scope":2992,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":2985,"name":"ElementaryTypeName","src":"1536:7:1"}],"id":2986,"name":"VariableDeclaration","src":"1536:20:1"},{"attributes":{"constant":false,"indexed":true,"name":"label","scope":2992,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":2987,"name":"ElementaryTypeName","src":"1558:7:1"}],"id":2988,"name":"VariableDeclaration","src":"1558:21:1"},{"attributes":{"constant":false,"indexed":false,"name":"owner","scope":2992,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2989,"name":"ElementaryTypeName","src":"1581:7:1"}],"id":2990,"name":"VariableDeclaration","src":"1581:13:1"}],"id":2991,"name":"ParameterList","src":"1535:60:1"}],"id":2992,"name":"EventDefinition","src":"1521:75:1"},{"attributes":{"anonymous":false,"documentation":null,"name":"Transfer"},"children":[{"children":[{"attributes":{"constant":false,"indexed":true,"name":"node","scope":2998,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":2993,"name":"ElementaryTypeName","src":"1694:7:1"}],"id":2994,"name":"VariableDeclaration","src":"1694:20:1"},{"attributes":{"constant":false,"indexed":false,"name":"owner","scope":2998,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2995,"name":"ElementaryTypeName","src":"1716:7:1"}],"id":2996,"name":"VariableDeclaration","src":"1716:13:1"}],"id":2997,"name":"ParameterList","src":"1693:37:1"}],"id":2998,"name":"EventDefinition","src":"1679:52:1"},{"attributes":{"anonymous":false,"documentation":null,"name":"NewResolver"},"children":[{"children":[{"attributes":{"constant":false,"indexed":true,"name":"node","scope":3004,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":2999,"name":"ElementaryTypeName","src":"1807:7:1"}],"id":3000,"name":"VariableDeclaration","src":"1807:20:1"},{"attributes":{"constant":false,"indexed":false,"name":"resolver","scope":3004,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3001,"name":"ElementaryTypeName","src":"1829:7:1"}],"id":3002,"name":"VariableDeclaration","src":"1829:16:1"}],"id":3003,"name":"ParameterList","src":"1806:40:1"}],"id":3004,"name":"EventDefinition","src":"1789:58:1"},{"attributes":{"anonymous":false,"documentation":null,"name":"NewTTL"},"children":[{"children":[{"attributes":{"constant":false,"indexed":true,"name":"node","scope":3010,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3005,"name":"ElementaryTypeName","src":"1911:7:1"}],"id":3006,"name":"VariableDeclaration","src":"1911:20:1"},{"attributes":{"constant":false,"indexed":false,"name":"ttl","scope":3010,"stateVariable":false,"storageLocation":"default","type":"uint64","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint64","type":"uint64"},"id":3007,"name":"ElementaryTypeName","src":"1933:6:1"}],"id":3008,"name":"VariableDeclaration","src":"1933:10:1"}],"id":3009,"name":"ParameterList","src":"1910:34:1"}],"id":3010,"name":"EventDefinition","src":"1898:47:1"},{"attributes":{"body":null,"constant":false,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"setSubnodeOwner","payable":false,"scope":3062,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":3019,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3011,"name":"ElementaryTypeName","src":"1977:7:1"}],"id":3012,"name":"VariableDeclaration","src":"1977:12:1"},{"attributes":{"constant":false,"name":"label","scope":3019,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3013,"name":"ElementaryTypeName","src":"1991:7:1"}],"id":3014,"name":"VariableDeclaration","src":"1991:13:1"},{"attributes":{"constant":false,"name":"owner","scope":3019,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3015,"name":"ElementaryTypeName","src":"2006:7:1"}],"id":3016,"name":"VariableDeclaration","src":"2006:13:1"}],"id":3017,"name":"ParameterList","src":"1976:44:1"},{"attributes":{"parameters":[null]},"children":[],"id":3018,"name":"ParameterList","src":"2029:0:1"}],"id":3019,"name":"FunctionDefinition","src":"1952:78:1"},{"attributes":{"body":null,"constant":false,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"setResolver","payable":false,"scope":3062,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":3026,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3020,"name":"ElementaryTypeName","src":"2056:7:1"}],"id":3021,"name":"VariableDeclaration","src":"2056:12:1"},{"attributes":{"constant":false,"name":"resolver","scope":3026,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3022,"name":"ElementaryTypeName","src":"2070:7:1"}],"id":3023,"name":"VariableDeclaration","src":"2070:16:1"}],"id":3024,"name":"ParameterList","src":"2055:32:1"},{"attributes":{"parameters":[null]},"children":[],"id":3025,"name":"ParameterList","src":"2096:0:1"}],"id":3026,"name":"FunctionDefinition","src":"2035:62:1"},{"attributes":{"body":null,"constant":false,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"setOwner","payable":false,"scope":3062,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":3033,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3027,"name":"ElementaryTypeName","src":"2120:7:1"}],"id":3028,"name":"VariableDeclaration","src":"2120:12:1"},{"attributes":{"constant":false,"name":"owner","scope":3033,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3029,"name":"ElementaryTypeName","src":"2134:7:1"}],"id":3030,"name":"VariableDeclaration","src":"2134:13:1"}],"id":3031,"name":"ParameterList","src":"2119:29:1"},{"attributes":{"parameters":[null]},"children":[],"id":3032,"name":"ParameterList","src":"2157:0:1"}],"id":3033,"name":"FunctionDefinition","src":"2102:56:1"},{"attributes":{"body":null,"constant":false,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"setTTL","payable":false,"scope":3062,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":3040,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3034,"name":"ElementaryTypeName","src":"2179:7:1"}],"id":3035,"name":"VariableDeclaration","src":"2179:12:1"},{"attributes":{"constant":false,"name":"ttl","scope":3040,"stateVariable":false,"storageLocation":"default","type":"uint64","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint64","type":"uint64"},"id":3036,"name":"ElementaryTypeName","src":"2193:6:1"}],"id":3037,"name":"VariableDeclaration","src":"2193:10:1"}],"id":3038,"name":"ParameterList","src":"2178:26:1"},{"attributes":{"parameters":[null]},"children":[],"id":3039,"name":"ParameterList","src":"2213:0:1"}],"id":3040,"name":"FunctionDefinition","src":"2163:51:1"},{"attributes":{"body":null,"constant":true,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"owner","payable":false,"scope":3062,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":3047,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3041,"name":"ElementaryTypeName","src":"2234:7:1"}],"id":3042,"name":"VariableDeclaration","src":"2234:12:1"}],"id":3043,"name":"ParameterList","src":"2233:14:1"},{"children":[{"attributes":{"constant":false,"name":"","scope":3047,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3044,"name":"ElementaryTypeName","src":"2271:7:1"}],"id":3045,"name":"VariableDeclaration","src":"2271:7:1"}],"id":3046,"name":"ParameterList","src":"2270:9:1"}],"id":3047,"name":"FunctionDefinition","src":"2219:61:1"},{"attributes":{"body":null,"constant":true,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"resolver","payable":false,"scope":3062,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":3054,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3048,"name":"ElementaryTypeName","src":"2303:7:1"}],"id":3049,"name":"VariableDeclaration","src":"2303:12:1"}],"id":3050,"name":"ParameterList","src":"2302:14:1"},{"children":[{"attributes":{"constant":false,"name":"","scope":3054,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3051,"name":"ElementaryTypeName","src":"2340:7:1"}],"id":3052,"name":"VariableDeclaration","src":"2340:7:1"}],"id":3053,"name":"ParameterList","src":"2339:9:1"}],"id":3054,"name":"FunctionDefinition","src":"2285:64:1"},{"attributes":{"body":null,"constant":true,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"ttl","payable":false,"scope":3062,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":3061,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3055,"name":"ElementaryTypeName","src":"2367:7:1"}],"id":3056,"name":"VariableDeclaration","src":"2367:12:1"}],"id":3057,"name":"ParameterList","src":"2366:14:1"},{"children":[{"attributes":{"constant":false,"name":"","scope":3061,"stateVariable":false,"storageLocation":"default","type":"uint64","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint64","type":"uint64"},"id":3058,"name":"ElementaryTypeName","src":"2404:6:1"}],"id":3059,"name":"VariableDeclaration","src":"2404:6:1"}],"id":3060,"name":"ParameterList","src":"2403:8:1"}],"id":3061,"name":"FunctionDefinition","src":"2354:58:1"}],"id":3062,"name":"ContractDefinition","src":"1427:988:1"}],"id":3063,"name":"SourceUnit","src":"1400:1017:1"}},"externals/ens/PublicResolver.sol":{"AST":{"attributes":{"absolutePath":"externals/ens/PublicResolver.sol","exportedSymbols":{"PublicResolver":[3570]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".24"]},"id":3064,"name":"PragmaDirective","src":"1406:24:2"},{"attributes":{"SourceUnit":3063,"absolutePath":"externals/ens/ENS.sol","file":"./ENS.sol","scope":3571,"symbolAliases":[null],"unitAlias":""},"id":3065,"name":"ImportDirective","src":"1432:19:2"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"contract","documentation":"A simple resolver anyone can use; only allows the owner of a node to set its\naddress.","fullyImplemented":true,"linearizedBaseContracts":[3570],"name":"PublicResolver","scope":3571},"children":[{"attributes":{"constant":true,"name":"INTERFACE_META_ID","scope":3570,"stateVariable":true,"storageLocation":"default","type":"bytes4","visibility":"internal"},"children":[{"attributes":{"name":"bytes4","type":"bytes4"},"id":3066,"name":"ElementaryTypeName","src":"1584:6:2"},{"attributes":{"argumentTypes":null,"hexvalue":"30783031666663396137","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 33540519","value":"0x01ffc9a7"},"id":3067,"name":"Literal","src":"1620:10:2"}],"id":3068,"name":"VariableDeclaration","src":"1584:46:2"},{"attributes":{"constant":true,"name":"ADDR_INTERFACE_ID","scope":3570,"stateVariable":true,"storageLocation":"default","type":"bytes4","visibility":"internal"},"children":[{"attributes":{"name":"bytes4","type":"bytes4"},"id":3069,"name":"ElementaryTypeName","src":"1636:6:2"},{"attributes":{"argumentTypes":null,"hexvalue":"30783362336235376465","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 993744862","value":"0x3b3b57de"},"id":3070,"name":"Literal","src":"1672:10:2"}],"id":3071,"name":"VariableDeclaration","src":"1636:46:2"},{"attributes":{"constant":true,"name":"CONTENT_INTERFACE_ID","scope":3570,"stateVariable":true,"storageLocation":"default","type":"bytes4","visibility":"internal"},"children":[{"attributes":{"name":"bytes4","type":"bytes4"},"id":3072,"name":"ElementaryTypeName","src":"1688:6:2"},{"attributes":{"argumentTypes":null,"hexvalue":"30786438333839646335","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3627589061","value":"0xd8389dc5"},"id":3073,"name":"Literal","src":"1727:10:2"}],"id":3074,"name":"VariableDeclaration","src":"1688:49:2"},{"attributes":{"constant":true,"name":"NAME_INTERFACE_ID","scope":3570,"stateVariable":true,"storageLocation":"default","type":"bytes4","visibility":"internal"},"children":[{"attributes":{"name":"bytes4","type":"bytes4"},"id":3075,"name":"ElementaryTypeName","src":"1743:6:2"},{"attributes":{"argumentTypes":null,"hexvalue":"30783639316633343331","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1763652657","value":"0x691f3431"},"id":3076,"name":"Literal","src":"1779:10:2"}],"id":3077,"name":"VariableDeclaration","src":"1743:46:2"},{"attributes":{"constant":true,"name":"ABI_INTERFACE_ID","scope":3570,"stateVariable":true,"storageLocation":"default","type":"bytes4","visibility":"internal"},"children":[{"attributes":{"name":"bytes4","type":"bytes4"},"id":3078,"name":"ElementaryTypeName","src":"1795:6:2"},{"attributes":{"argumentTypes":null,"hexvalue":"30783232303361623536","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 570665814","value":"0x2203ab56"},"id":3079,"name":"Literal","src":"1830:10:2"}],"id":3080,"name":"VariableDeclaration","src":"1795:45:2"},{"attributes":{"constant":true,"name":"PUBKEY_INTERFACE_ID","scope":3570,"stateVariable":true,"storageLocation":"default","type":"bytes4","visibility":"internal"},"children":[{"attributes":{"name":"bytes4","type":"bytes4"},"id":3081,"name":"ElementaryTypeName","src":"1846:6:2"},{"attributes":{"argumentTypes":null,"hexvalue":"30786338363930323333","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3362325043","value":"0xc8690233"},"id":3082,"name":"Literal","src":"1884:10:2"}],"id":3083,"name":"VariableDeclaration","src":"1846:48:2"},{"attributes":{"constant":true,"name":"TEXT_INTERFACE_ID","scope":3570,"stateVariable":true,"storageLocation":"default","type":"bytes4","visibility":"internal"},"children":[{"attributes":{"name":"bytes4","type":"bytes4"},"id":3084,"name":"ElementaryTypeName","src":"1900:6:2"},{"attributes":{"argumentTypes":null,"hexvalue":"30783539643164343363","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1506923580","value":"0x59d1d43c"},"id":3085,"name":"Literal","src":"1936:10:2"}],"id":3086,"name":"VariableDeclaration","src":"1900:46:2"},{"attributes":{"constant":true,"name":"MULTIHASH_INTERFACE_ID","scope":3570,"stateVariable":true,"storageLocation":"default","type":"bytes4","visibility":"internal"},"children":[{"attributes":{"name":"bytes4","type":"bytes4"},"id":3087,"name":"ElementaryTypeName","src":"1952:6:2"},{"attributes":{"argumentTypes":null,"hexvalue":"30786538393430316131","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3902013857","value":"0xe89401a1"},"id":3088,"name":"Literal","src":"1993:10:2"}],"id":3089,"name":"VariableDeclaration","src":"1952:51:2"},{"attributes":{"anonymous":false,"documentation":null,"name":"AddrChanged"},"children":[{"children":[{"attributes":{"constant":false,"indexed":true,"name":"node","scope":3095,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3090,"name":"ElementaryTypeName","src":"2028:7:2"}],"id":3091,"name":"VariableDeclaration","src":"2028:20:2"},{"attributes":{"constant":false,"indexed":false,"name":"a","scope":3095,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3092,"name":"ElementaryTypeName","src":"2050:7:2"}],"id":3093,"name":"VariableDeclaration","src":"2050:9:2"}],"id":3094,"name":"ParameterList","src":"2027:33:2"}],"id":3095,"name":"EventDefinition","src":"2010:51:2"},{"attributes":{"anonymous":false,"documentation":null,"name":"ContentChanged"},"children":[{"children":[{"attributes":{"constant":false,"indexed":true,"name":"node","scope":3101,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3096,"name":"ElementaryTypeName","src":"2087:7:2"}],"id":3097,"name":"VariableDeclaration","src":"2087:20:2"},{"attributes":{"constant":false,"indexed":false,"name":"hash","scope":3101,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3098,"name":"ElementaryTypeName","src":"2109:7:2"}],"id":3099,"name":"VariableDeclaration","src":"2109:12:2"}],"id":3100,"name":"ParameterList","src":"2086:36:2"}],"id":3101,"name":"EventDefinition","src":"2066:57:2"},{"attributes":{"anonymous":false,"documentation":null,"name":"NameChanged"},"children":[{"children":[{"attributes":{"constant":false,"indexed":true,"name":"node","scope":3107,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3102,"name":"ElementaryTypeName","src":"2146:7:2"}],"id":3103,"name":"VariableDeclaration","src":"2146:20:2"},{"attributes":{"constant":false,"indexed":false,"name":"name","scope":3107,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":3104,"name":"ElementaryTypeName","src":"2168:6:2"}],"id":3105,"name":"VariableDeclaration","src":"2168:11:2"}],"id":3106,"name":"ParameterList","src":"2145:35:2"}],"id":3107,"name":"EventDefinition","src":"2128:53:2"},{"attributes":{"anonymous":false,"documentation":null,"name":"ABIChanged"},"children":[{"children":[{"attributes":{"constant":false,"indexed":true,"name":"node","scope":3113,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3108,"name":"ElementaryTypeName","src":"2203:7:2"}],"id":3109,"name":"VariableDeclaration","src":"2203:20:2"},{"attributes":{"constant":false,"indexed":true,"name":"contentType","scope":3113,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":3110,"name":"ElementaryTypeName","src":"2225:7:2"}],"id":3111,"name":"VariableDeclaration","src":"2225:27:2"}],"id":3112,"name":"ParameterList","src":"2202:51:2"}],"id":3113,"name":"EventDefinition","src":"2186:68:2"},{"attributes":{"anonymous":false,"documentation":null,"name":"PubkeyChanged"},"children":[{"children":[{"attributes":{"constant":false,"indexed":true,"name":"node","scope":3121,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3114,"name":"ElementaryTypeName","src":"2279:7:2"}],"id":3115,"name":"VariableDeclaration","src":"2279:20:2"},{"attributes":{"constant":false,"indexed":false,"name":"x","scope":3121,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3116,"name":"ElementaryTypeName","src":"2301:7:2"}],"id":3117,"name":"VariableDeclaration","src":"2301:9:2"},{"attributes":{"constant":false,"indexed":false,"name":"y","scope":3121,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3118,"name":"ElementaryTypeName","src":"2312:7:2"}],"id":3119,"name":"VariableDeclaration","src":"2312:9:2"}],"id":3120,"name":"ParameterList","src":"2278:44:2"}],"id":3121,"name":"EventDefinition","src":"2259:64:2"},{"attributes":{"anonymous":false,"documentation":null,"name":"TextChanged"},"children":[{"children":[{"attributes":{"constant":false,"indexed":true,"name":"node","scope":3129,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3122,"name":"ElementaryTypeName","src":"2346:7:2"}],"id":3123,"name":"VariableDeclaration","src":"2346:20:2"},{"attributes":{"constant":false,"indexed":false,"name":"indexedKey","scope":3129,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":3124,"name":"ElementaryTypeName","src":"2368:6:2"}],"id":3125,"name":"VariableDeclaration","src":"2368:17:2"},{"attributes":{"constant":false,"indexed":false,"name":"key","scope":3129,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":3126,"name":"ElementaryTypeName","src":"2387:6:2"}],"id":3127,"name":"VariableDeclaration","src":"2387:10:2"}],"id":3128,"name":"ParameterList","src":"2345:53:2"}],"id":3129,"name":"EventDefinition","src":"2328:71:2"},{"attributes":{"anonymous":false,"documentation":null,"name":"MultihashChanged"},"children":[{"children":[{"attributes":{"constant":false,"indexed":true,"name":"node","scope":3135,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3130,"name":"ElementaryTypeName","src":"2427:7:2"}],"id":3131,"name":"VariableDeclaration","src":"2427:20:2"},{"attributes":{"constant":false,"indexed":false,"name":"hash","scope":3135,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":3132,"name":"ElementaryTypeName","src":"2449:5:2"}],"id":3133,"name":"VariableDeclaration","src":"2449:10:2"}],"id":3134,"name":"ParameterList","src":"2426:34:2"}],"id":3135,"name":"EventDefinition","src":"2404:57:2"},{"attributes":{"canonicalName":"PublicResolver.PublicKey","name":"PublicKey","scope":3570,"visibility":"public"},"children":[{"attributes":{"constant":false,"name":"x","scope":3140,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3136,"name":"ElementaryTypeName","src":"2494:7:2"}],"id":3137,"name":"VariableDeclaration","src":"2494:9:2"},{"attributes":{"constant":false,"name":"y","scope":3140,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3138,"name":"ElementaryTypeName","src":"2513:7:2"}],"id":3139,"name":"VariableDeclaration","src":"2513:9:2"}],"id":3140,"name":"StructDefinition","src":"2467:62:2"},{"attributes":{"canonicalName":"PublicResolver.Record","name":"Record","scope":3570,"visibility":"public"},"children":[{"attributes":{"constant":false,"name":"addr","scope":3159,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3141,"name":"ElementaryTypeName","src":"2559:7:2"}],"id":3142,"name":"VariableDeclaration","src":"2559:12:2"},{"attributes":{"constant":false,"name":"content","scope":3159,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3143,"name":"ElementaryTypeName","src":"2581:7:2"}],"id":3144,"name":"VariableDeclaration","src":"2581:15:2"},{"attributes":{"constant":false,"name":"name","scope":3159,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":3145,"name":"ElementaryTypeName","src":"2606:6:2"}],"id":3146,"name":"VariableDeclaration","src":"2606:11:2"},{"attributes":{"constant":false,"name":"pubkey","scope":3159,"stateVariable":false,"storageLocation":"default","type":"struct PublicResolver.PublicKey","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"PublicKey","referencedDeclaration":3140,"type":"struct PublicResolver.PublicKey"},"id":3147,"name":"UserDefinedTypeName","src":"2627:9:2"}],"id":3148,"name":"VariableDeclaration","src":"2627:16:2"},{"attributes":{"constant":false,"name":"text","scope":3159,"stateVariable":false,"storageLocation":"default","type":"mapping(string => string)","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"mapping(string => string)"},"children":[{"attributes":{"name":"string","type":"string"},"id":3149,"name":"ElementaryTypeName","src":"2661:6:2"},{"attributes":{"name":"string","type":"string"},"id":3150,"name":"ElementaryTypeName","src":"2669:6:2"}],"id":3151,"name":"Mapping","src":"2653:23:2"}],"id":3152,"name":"VariableDeclaration","src":"2653:28:2"},{"attributes":{"constant":false,"name":"abis","scope":3159,"stateVariable":false,"storageLocation":"default","type":"mapping(uint256 => bytes)","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"mapping(uint256 => bytes)"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":3153,"name":"ElementaryTypeName","src":"2699:7:2"},{"attributes":{"name":"bytes","type":"bytes"},"id":3154,"name":"ElementaryTypeName","src":"2708:5:2"}],"id":3155,"name":"Mapping","src":"2691:23:2"}],"id":3156,"name":"VariableDeclaration","src":"2691:28:2"},{"attributes":{"constant":false,"name":"multihash","scope":3159,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":3157,"name":"ElementaryTypeName","src":"2729:5:2"}],"id":3158,"name":"VariableDeclaration","src":"2729:15:2"}],"id":3159,"name":"StructDefinition","src":"2535:216:2"},{"attributes":{"constant":false,"name":"ens","scope":3570,"stateVariable":true,"storageLocation":"default","type":"contract ENS","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"ENS","referencedDeclaration":3062,"type":"contract ENS"},"id":3160,"name":"UserDefinedTypeName","src":"2757:3:2"}],"id":3161,"name":"VariableDeclaration","src":"2757:7:2"},{"attributes":{"constant":false,"name":"records","scope":3570,"stateVariable":true,"storageLocation":"default","type":"mapping(bytes32 => struct PublicResolver.Record)","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"mapping(bytes32 => struct PublicResolver.Record)"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3162,"name":"ElementaryTypeName","src":"2780:7:2"},{"attributes":{"contractScope":null,"name":"Record","referencedDeclaration":3159,"type":"struct PublicResolver.Record"},"id":3163,"name":"UserDefinedTypeName","src":"2791:6:2"}],"id":3164,"name":"Mapping","src":"2771:27:2"}],"id":3165,"name":"VariableDeclaration","src":"2771:35:2"},{"attributes":{"documentation":null,"name":"only_owner","visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":3181,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3166,"name":"ElementaryTypeName","src":"2833:7:2"}],"id":3167,"name":"VariableDeclaration","src":"2833:12:2"}],"id":3168,"name":"ParameterList","src":"2832:14:2"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"overloadedDeclarations":[3588,3589],"referencedDeclaration":3588,"type":"function (bool) pure","value":"require"},"id":3169,"name":"Identifier","src":"2857:7:2"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"owner","referencedDeclaration":3047,"type":"function (bytes32) view external returns (address)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3161,"type":"contract ENS","value":"ens"},"id":3170,"name":"Identifier","src":"2865:3:2"}],"id":3171,"name":"MemberAccess","src":"2865:9:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3167,"type":"bytes32","value":"node"},"id":3172,"name":"Identifier","src":"2875:4:2"}],"id":3173,"name":"FunctionCall","src":"2865:15:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3585,"type":"msg","value":"msg"},"id":3174,"name":"Identifier","src":"2884:3:2"}],"id":3175,"name":"MemberAccess","src":"2884:10:2"}],"id":3176,"name":"BinaryOperation","src":"2865:29:2"}],"id":3177,"name":"FunctionCall","src":"2857:38:2"}],"id":3178,"name":"ExpressionStatement","src":"2857:38:2"},{"id":3179,"name":"PlaceholderStatement","src":"2905:1:2"}],"id":3180,"name":"Block","src":"2847:66:2"}],"id":3181,"name":"ModifierDefinition","src":"2813:100:2"},{"attributes":{"constant":false,"documentation":"Constructor.\n@param ensAddr The ENS registrar contract.","implemented":true,"isConstructor":true,"modifiers":[null],"name":"","payable":false,"scope":3570,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"ensAddr","scope":3191,"stateVariable":false,"storageLocation":"default","type":"contract ENS","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"ENS","referencedDeclaration":3062,"type":"contract ENS"},"id":3182,"name":"UserDefinedTypeName","src":"3017:3:2"}],"id":3183,"name":"VariableDeclaration","src":"3017:11:2"}],"id":3184,"name":"ParameterList","src":"3016:13:2"},{"attributes":{"parameters":[null]},"children":[],"id":3185,"name":"ParameterList","src":"3037:0:2"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"contract ENS"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3161,"type":"contract ENS","value":"ens"},"id":3186,"name":"Identifier","src":"3047:3:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3183,"type":"contract ENS","value":"ensAddr"},"id":3187,"name":"Identifier","src":"3053:7:2"}],"id":3188,"name":"Assignment","src":"3047:13:2"}],"id":3189,"name":"ExpressionStatement","src":"3047:13:2"}],"id":3190,"name":"Block","src":"3037:30:2"}],"id":3191,"name":"FunctionDefinition","src":"3005:62:2"},{"attributes":{"constant":false,"documentation":"Sets the address associated with an ENS node.\nMay only be called by the owner of that node in the ENS registry.\n@param node The node to update.\n@param addr The address to set.","implemented":true,"isConstructor":false,"name":"setAddr","payable":false,"scope":3570,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":3214,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3192,"name":"ElementaryTypeName","src":"3310:7:2"}],"id":3193,"name":"VariableDeclaration","src":"3310:12:2"},{"attributes":{"constant":false,"name":"addr","scope":3214,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3194,"name":"ElementaryTypeName","src":"3324:7:2"}],"id":3195,"name":"VariableDeclaration","src":"3324:12:2"}],"id":3196,"name":"ParameterList","src":"3309:28:2"},{"attributes":{"parameters":[null]},"children":[],"id":3200,"name":"ParameterList","src":"3362:0:2"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3181,"type":"modifier (bytes32)","value":"only_owner"},"id":3197,"name":"Identifier","src":"3345:10:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3193,"type":"bytes32","value":"node"},"id":3198,"name":"Identifier","src":"3356:4:2"}],"id":3199,"name":"ModifierInvocation","src":"3345:16:2"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"address"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"addr","referencedDeclaration":3142,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3165,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":3201,"name":"Identifier","src":"3372:7:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3193,"type":"bytes32","value":"node"},"id":3202,"name":"Identifier","src":"3380:4:2"}],"id":3203,"name":"IndexAccess","src":"3372:13:2"}],"id":3204,"name":"MemberAccess","src":"3372:18:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3195,"type":"address","value":"addr"},"id":3205,"name":"Identifier","src":"3393:4:2"}],"id":3206,"name":"Assignment","src":"3372:25:2"}],"id":3207,"name":"ExpressionStatement","src":"3372:25:2"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":3095,"type":"function (bytes32,address)","value":"AddrChanged"},"id":3208,"name":"Identifier","src":"3412:11:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3193,"type":"bytes32","value":"node"},"id":3209,"name":"Identifier","src":"3424:4:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3195,"type":"address","value":"addr"},"id":3210,"name":"Identifier","src":"3430:4:2"}],"id":3211,"name":"FunctionCall","src":"3412:23:2"}],"id":3212,"name":"EmitStatement","src":"3407:28:2"}],"id":3213,"name":"Block","src":"3362:80:2"}],"id":3214,"name":"FunctionDefinition","src":"3293:149:2"},{"attributes":{"constant":false,"documentation":"Sets the content hash associated with an ENS node.\nMay only be called by the owner of that node in the ENS registry.\nNote that this resource type is not standardized, and will likely change\nin future to a resource type based on multihash.\n@param node The node to update.\n@param hash The content hash to set","implemented":true,"isConstructor":false,"name":"setContent","payable":false,"scope":3570,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":3237,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3215,"name":"ElementaryTypeName","src":"3833:7:2"}],"id":3216,"name":"VariableDeclaration","src":"3833:12:2"},{"attributes":{"constant":false,"name":"hash","scope":3237,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3217,"name":"ElementaryTypeName","src":"3847:7:2"}],"id":3218,"name":"VariableDeclaration","src":"3847:12:2"}],"id":3219,"name":"ParameterList","src":"3832:28:2"},{"attributes":{"parameters":[null]},"children":[],"id":3223,"name":"ParameterList","src":"3885:0:2"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3181,"type":"modifier (bytes32)","value":"only_owner"},"id":3220,"name":"Identifier","src":"3868:10:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3216,"type":"bytes32","value":"node"},"id":3221,"name":"Identifier","src":"3879:4:2"}],"id":3222,"name":"ModifierInvocation","src":"3868:16:2"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"content","referencedDeclaration":3144,"type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3165,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":3224,"name":"Identifier","src":"3895:7:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3216,"type":"bytes32","value":"node"},"id":3225,"name":"Identifier","src":"3903:4:2"}],"id":3226,"name":"IndexAccess","src":"3895:13:2"}],"id":3227,"name":"MemberAccess","src":"3895:21:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3218,"type":"bytes32","value":"hash"},"id":3228,"name":"Identifier","src":"3919:4:2"}],"id":3229,"name":"Assignment","src":"3895:28:2"}],"id":3230,"name":"ExpressionStatement","src":"3895:28:2"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[null],"referencedDeclaration":3101,"type":"function (bytes32,bytes32)","value":"ContentChanged"},"id":3231,"name":"Identifier","src":"3938:14:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3216,"type":"bytes32","value":"node"},"id":3232,"name":"Identifier","src":"3953:4:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3218,"type":"bytes32","value":"hash"},"id":3233,"name":"Identifier","src":"3959:4:2"}],"id":3234,"name":"FunctionCall","src":"3938:26:2"}],"id":3235,"name":"EmitStatement","src":"3933:31:2"}],"id":3236,"name":"Block","src":"3885:86:2"}],"id":3237,"name":"FunctionDefinition","src":"3813:158:2"},{"attributes":{"constant":false,"documentation":"Sets the multihash associated with an ENS node.\nMay only be called by the owner of that node in the ENS registry.\n@param node The node to update.\n@param hash The multihash to set","implemented":true,"isConstructor":false,"name":"setMultihash","payable":false,"scope":3570,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":3260,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3238,"name":"ElementaryTypeName","src":"4222:7:2"}],"id":3239,"name":"VariableDeclaration","src":"4222:12:2"},{"attributes":{"constant":false,"name":"hash","scope":3260,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":3240,"name":"ElementaryTypeName","src":"4236:5:2"}],"id":3241,"name":"VariableDeclaration","src":"4236:10:2"}],"id":3242,"name":"ParameterList","src":"4221:26:2"},{"attributes":{"parameters":[null]},"children":[],"id":3246,"name":"ParameterList","src":"4272:0:2"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3181,"type":"modifier (bytes32)","value":"only_owner"},"id":3243,"name":"Identifier","src":"4255:10:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3239,"type":"bytes32","value":"node"},"id":3244,"name":"Identifier","src":"4266:4:2"}],"id":3245,"name":"ModifierInvocation","src":"4255:16:2"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"multihash","referencedDeclaration":3158,"type":"bytes storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3165,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":3247,"name":"Identifier","src":"4282:7:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3239,"type":"bytes32","value":"node"},"id":3248,"name":"Identifier","src":"4290:4:2"}],"id":3249,"name":"IndexAccess","src":"4282:13:2"}],"id":3250,"name":"MemberAccess","src":"4282:23:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3241,"type":"bytes memory","value":"hash"},"id":3251,"name":"Identifier","src":"4308:4:2"}],"id":3252,"name":"Assignment","src":"4282:30:2"}],"id":3253,"name":"ExpressionStatement","src":"4282:30:2"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"overloadedDeclarations":[null],"referencedDeclaration":3135,"type":"function (bytes32,bytes memory)","value":"MultihashChanged"},"id":3254,"name":"Identifier","src":"4327:16:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3239,"type":"bytes32","value":"node"},"id":3255,"name":"Identifier","src":"4344:4:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3241,"type":"bytes memory","value":"hash"},"id":3256,"name":"Identifier","src":"4350:4:2"}],"id":3257,"name":"FunctionCall","src":"4327:28:2"}],"id":3258,"name":"EmitStatement","src":"4322:33:2"}],"id":3259,"name":"Block","src":"4272:90:2"}],"id":3260,"name":"FunctionDefinition","src":"4200:162:2"},{"attributes":{"constant":false,"documentation":"Sets the name associated with an ENS node, for reverse records.\nMay only be called by the owner of that node in the ENS registry.\n@param node The node to update.\n@param name The name to set.","implemented":true,"isConstructor":false,"name":"setName","payable":false,"scope":3570,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":3283,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3261,"name":"ElementaryTypeName","src":"4624:7:2"}],"id":3262,"name":"VariableDeclaration","src":"4624:12:2"},{"attributes":{"constant":false,"name":"name","scope":3283,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":3263,"name":"ElementaryTypeName","src":"4638:6:2"}],"id":3264,"name":"VariableDeclaration","src":"4638:11:2"}],"id":3265,"name":"ParameterList","src":"4623:27:2"},{"attributes":{"parameters":[null]},"children":[],"id":3269,"name":"ParameterList","src":"4675:0:2"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3181,"type":"modifier (bytes32)","value":"only_owner"},"id":3266,"name":"Identifier","src":"4658:10:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3262,"type":"bytes32","value":"node"},"id":3267,"name":"Identifier","src":"4669:4:2"}],"id":3268,"name":"ModifierInvocation","src":"4658:16:2"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"name","referencedDeclaration":3146,"type":"string storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3165,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":3270,"name":"Identifier","src":"4685:7:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3262,"type":"bytes32","value":"node"},"id":3271,"name":"Identifier","src":"4693:4:2"}],"id":3272,"name":"IndexAccess","src":"4685:13:2"}],"id":3273,"name":"MemberAccess","src":"4685:18:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3264,"type":"string memory","value":"name"},"id":3274,"name":"Identifier","src":"4706:4:2"}],"id":3275,"name":"Assignment","src":"4685:25:2"}],"id":3276,"name":"ExpressionStatement","src":"4685:25:2"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"overloadedDeclarations":[null],"referencedDeclaration":3107,"type":"function (bytes32,string memory)","value":"NameChanged"},"id":3277,"name":"Identifier","src":"4725:11:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3262,"type":"bytes32","value":"node"},"id":3278,"name":"Identifier","src":"4737:4:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3264,"type":"string memory","value":"name"},"id":3279,"name":"Identifier","src":"4743:4:2"}],"id":3280,"name":"FunctionCall","src":"4725:23:2"}],"id":3281,"name":"EmitStatement","src":"4720:28:2"}],"id":3282,"name":"Block","src":"4675:80:2"}],"id":3283,"name":"FunctionDefinition","src":"4607:148:2"},{"attributes":{"constant":false,"documentation":"Sets the ABI associated with an ENS node.\nNodes may have one ABI of each content type. To remove an ABI, set it to\nthe empty string.\n@param node The node to update.\n@param contentType The content type of the ABI\n@param data The ABI data.","implemented":true,"isConstructor":false,"name":"setABI","payable":false,"scope":3570,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":3322,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3284,"name":"ElementaryTypeName","src":"5073:7:2"}],"id":3285,"name":"VariableDeclaration","src":"5073:12:2"},{"attributes":{"constant":false,"name":"contentType","scope":3322,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":3286,"name":"ElementaryTypeName","src":"5087:7:2"}],"id":3287,"name":"VariableDeclaration","src":"5087:19:2"},{"attributes":{"constant":false,"name":"data","scope":3322,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":3288,"name":"ElementaryTypeName","src":"5108:5:2"}],"id":3289,"name":"VariableDeclaration","src":"5108:10:2"}],"id":3290,"name":"ParameterList","src":"5072:47:2"},{"attributes":{"parameters":[null]},"children":[],"id":3294,"name":"ParameterList","src":"5144:0:2"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3181,"type":"modifier (bytes32)","value":"only_owner"},"id":3291,"name":"Identifier","src":"5127:10:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3285,"type":"bytes32","value":"node"},"id":3292,"name":"Identifier","src":"5138:4:2"}],"id":3293,"name":"ModifierInvocation","src":"5127:16:2"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"overloadedDeclarations":[3588,3589],"referencedDeclaration":3588,"type":"function (bool) pure","value":"require"},"id":3295,"name":"Identifier","src":"5199:7:2"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3287,"type":"uint256","value":"contentType"},"id":3296,"name":"Identifier","src":"5209:11:2"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":3297,"name":"Literal","src":"5223:1:2"}],"id":3298,"name":"BinaryOperation","src":"5209:15:2"}],"id":3299,"name":"TupleExpression","src":"5208:17:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3287,"type":"uint256","value":"contentType"},"id":3300,"name":"Identifier","src":"5228:11:2"}],"id":3301,"name":"BinaryOperation","src":"5208:31:2"}],"id":3302,"name":"TupleExpression","src":"5207:33:2"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3303,"name":"Literal","src":"5244:1:2"}],"id":3304,"name":"BinaryOperation","src":"5207:38:2"}],"id":3305,"name":"FunctionCall","src":"5199:47:2"}],"id":3306,"name":"ExpressionStatement","src":"5199:47:2"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"abis","referencedDeclaration":3156,"type":"mapping(uint256 => bytes storage ref)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3165,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":3307,"name":"Identifier","src":"5265:7:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3285,"type":"bytes32","value":"node"},"id":3308,"name":"Identifier","src":"5273:4:2"}],"id":3309,"name":"IndexAccess","src":"5265:13:2"}],"id":3310,"name":"MemberAccess","src":"5265:18:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3287,"type":"uint256","value":"contentType"},"id":3311,"name":"Identifier","src":"5284:11:2"}],"id":3312,"name":"IndexAccess","src":"5265:31:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3289,"type":"bytes memory","value":"data"},"id":3313,"name":"Identifier","src":"5299:4:2"}],"id":3314,"name":"Assignment","src":"5265:38:2"}],"id":3315,"name":"ExpressionStatement","src":"5265:38:2"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":3113,"type":"function (bytes32,uint256)","value":"ABIChanged"},"id":3316,"name":"Identifier","src":"5318:10:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3285,"type":"bytes32","value":"node"},"id":3317,"name":"Identifier","src":"5329:4:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3287,"type":"uint256","value":"contentType"},"id":3318,"name":"Identifier","src":"5335:11:2"}],"id":3319,"name":"FunctionCall","src":"5318:29:2"}],"id":3320,"name":"EmitStatement","src":"5313:34:2"}],"id":3321,"name":"Block","src":"5144:210:2"}],"id":3322,"name":"FunctionDefinition","src":"5057:297:2"},{"attributes":{"constant":false,"documentation":"Sets the SECP256k1 public key associated with an ENS node.\n@param node The ENS node to query\n@param x the X coordinate of the curve point for the public key.\n@param y the Y coordinate of the curve point for the public key.","implemented":true,"isConstructor":false,"name":"setPubkey","payable":false,"scope":3570,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":3351,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3323,"name":"ElementaryTypeName","src":"5650:7:2"}],"id":3324,"name":"VariableDeclaration","src":"5650:12:2"},{"attributes":{"constant":false,"name":"x","scope":3351,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3325,"name":"ElementaryTypeName","src":"5664:7:2"}],"id":3326,"name":"VariableDeclaration","src":"5664:9:2"},{"attributes":{"constant":false,"name":"y","scope":3351,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3327,"name":"ElementaryTypeName","src":"5675:7:2"}],"id":3328,"name":"VariableDeclaration","src":"5675:9:2"}],"id":3329,"name":"ParameterList","src":"5649:36:2"},{"attributes":{"parameters":[null]},"children":[],"id":3333,"name":"ParameterList","src":"5710:0:2"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3181,"type":"modifier (bytes32)","value":"only_owner"},"id":3330,"name":"Identifier","src":"5693:10:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3324,"type":"bytes32","value":"node"},"id":3331,"name":"Identifier","src":"5704:4:2"}],"id":3332,"name":"ModifierInvocation","src":"5693:16:2"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"struct PublicResolver.PublicKey storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"pubkey","referencedDeclaration":3148,"type":"struct PublicResolver.PublicKey storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3165,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":3334,"name":"Identifier","src":"5720:7:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3324,"type":"bytes32","value":"node"},"id":3335,"name":"Identifier","src":"5728:4:2"}],"id":3336,"name":"IndexAccess","src":"5720:13:2"}],"id":3337,"name":"MemberAccess","src":"5720:20:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":true,"lValueRequested":false,"names":[null],"type":"struct PublicResolver.PublicKey memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[null],"referencedDeclaration":3140,"type":"type(struct PublicResolver.PublicKey storage pointer)","value":"PublicKey"},"id":3338,"name":"Identifier","src":"5743:9:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3326,"type":"bytes32","value":"x"},"id":3339,"name":"Identifier","src":"5753:1:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3328,"type":"bytes32","value":"y"},"id":3340,"name":"Identifier","src":"5756:1:2"}],"id":3341,"name":"FunctionCall","src":"5743:15:2"}],"id":3342,"name":"Assignment","src":"5720:38:2"}],"id":3343,"name":"ExpressionStatement","src":"5720:38:2"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[null],"referencedDeclaration":3121,"type":"function (bytes32,bytes32,bytes32)","value":"PubkeyChanged"},"id":3344,"name":"Identifier","src":"5773:13:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3324,"type":"bytes32","value":"node"},"id":3345,"name":"Identifier","src":"5787:4:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3326,"type":"bytes32","value":"x"},"id":3346,"name":"Identifier","src":"5793:1:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3328,"type":"bytes32","value":"y"},"id":3347,"name":"Identifier","src":"5796:1:2"}],"id":3348,"name":"FunctionCall","src":"5773:25:2"}],"id":3349,"name":"EmitStatement","src":"5768:30:2"}],"id":3350,"name":"Block","src":"5710:95:2"}],"id":3351,"name":"FunctionDefinition","src":"5631:174:2"},{"attributes":{"constant":false,"documentation":"Sets the text data associated with an ENS node and key.\nMay only be called by the owner of that node in the ENS registry.\n@param node The node to update.\n@param key The key to set.\n@param value The text data value to set.","implemented":true,"isConstructor":false,"name":"setText","payable":false,"scope":3570,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":3379,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3352,"name":"ElementaryTypeName","src":"6101:7:2"}],"id":3353,"name":"VariableDeclaration","src":"6101:12:2"},{"attributes":{"constant":false,"name":"key","scope":3379,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":3354,"name":"ElementaryTypeName","src":"6115:6:2"}],"id":3355,"name":"VariableDeclaration","src":"6115:10:2"},{"attributes":{"constant":false,"name":"value","scope":3379,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":3356,"name":"ElementaryTypeName","src":"6127:6:2"}],"id":3357,"name":"VariableDeclaration","src":"6127:12:2"}],"id":3358,"name":"ParameterList","src":"6100:40:2"},{"attributes":{"parameters":[null]},"children":[],"id":3362,"name":"ParameterList","src":"6165:0:2"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3181,"type":"modifier (bytes32)","value":"only_owner"},"id":3359,"name":"Identifier","src":"6148:10:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3353,"type":"bytes32","value":"node"},"id":3360,"name":"Identifier","src":"6159:4:2"}],"id":3361,"name":"ModifierInvocation","src":"6148:16:2"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"text","referencedDeclaration":3152,"type":"mapping(string memory => string storage ref)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3165,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":3363,"name":"Identifier","src":"6175:7:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3353,"type":"bytes32","value":"node"},"id":3364,"name":"Identifier","src":"6183:4:2"}],"id":3365,"name":"IndexAccess","src":"6175:13:2"}],"id":3366,"name":"MemberAccess","src":"6175:18:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3355,"type":"string memory","value":"key"},"id":3367,"name":"Identifier","src":"6194:3:2"}],"id":3368,"name":"IndexAccess","src":"6175:23:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3357,"type":"string memory","value":"value"},"id":3369,"name":"Identifier","src":"6201:5:2"}],"id":3370,"name":"Assignment","src":"6175:31:2"}],"id":3371,"name":"ExpressionStatement","src":"6175:31:2"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"overloadedDeclarations":[null],"referencedDeclaration":3129,"type":"function (bytes32,string memory,string memory)","value":"TextChanged"},"id":3372,"name":"Identifier","src":"6221:11:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3353,"type":"bytes32","value":"node"},"id":3373,"name":"Identifier","src":"6233:4:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3355,"type":"string memory","value":"key"},"id":3374,"name":"Identifier","src":"6239:3:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3355,"type":"string memory","value":"key"},"id":3375,"name":"Identifier","src":"6244:3:2"}],"id":3376,"name":"FunctionCall","src":"6221:27:2"}],"id":3377,"name":"EmitStatement","src":"6216:32:2"}],"id":3378,"name":"Block","src":"6165:90:2"}],"id":3379,"name":"FunctionDefinition","src":"6084:171:2"},{"attributes":{"constant":true,"documentation":"Returns the text data associated with an ENS node and key.\n@param node The ENS node to query.\n@param key The text data key to query.\n@return The associated text data.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"text","payable":false,"scope":3570,"stateMutability":"view","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":3396,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3380,"name":"ElementaryTypeName","src":"6486:7:2"}],"id":3381,"name":"VariableDeclaration","src":"6486:12:2"},{"attributes":{"constant":false,"name":"key","scope":3396,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":3382,"name":"ElementaryTypeName","src":"6500:6:2"}],"id":3383,"name":"VariableDeclaration","src":"6500:10:2"}],"id":3384,"name":"ParameterList","src":"6485:26:2"},{"children":[{"attributes":{"constant":false,"name":"","scope":3396,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":3385,"name":"ElementaryTypeName","src":"6533:6:2"}],"id":3386,"name":"VariableDeclaration","src":"6533:6:2"}],"id":3387,"name":"ParameterList","src":"6532:8:2"},{"children":[{"attributes":{"functionReturnParameters":3387},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"text","referencedDeclaration":3152,"type":"mapping(string memory => string storage ref)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3165,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":3388,"name":"Identifier","src":"6558:7:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3381,"type":"bytes32","value":"node"},"id":3389,"name":"Identifier","src":"6566:4:2"}],"id":3390,"name":"IndexAccess","src":"6558:13:2"}],"id":3391,"name":"MemberAccess","src":"6558:18:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3383,"type":"string memory","value":"key"},"id":3392,"name":"Identifier","src":"6577:3:2"}],"id":3393,"name":"IndexAccess","src":"6558:23:2"}],"id":3394,"name":"Return","src":"6551:30:2"}],"id":3395,"name":"Block","src":"6541:47:2"}],"id":3396,"name":"FunctionDefinition","src":"6472:116:2"},{"attributes":{"constant":true,"documentation":"Returns the SECP256k1 public key associated with an ENS node.\nDefined in EIP 619.\n@param node The ENS node to query\n@return x, y the X and Y coordinates of the curve point for the public key.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"pubkey","payable":false,"scope":3570,"stateMutability":"view","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":3418,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3397,"name":"ElementaryTypeName","src":"6846:7:2"}],"id":3398,"name":"VariableDeclaration","src":"6846:12:2"}],"id":3399,"name":"ParameterList","src":"6845:14:2"},{"children":[{"attributes":{"constant":false,"name":"x","scope":3418,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3400,"name":"ElementaryTypeName","src":"6881:7:2"}],"id":3401,"name":"VariableDeclaration","src":"6881:9:2"},{"attributes":{"constant":false,"name":"y","scope":3418,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3402,"name":"ElementaryTypeName","src":"6892:7:2"}],"id":3403,"name":"VariableDeclaration","src":"6892:9:2"}],"id":3404,"name":"ParameterList","src":"6880:22:2"},{"children":[{"attributes":{"functionReturnParameters":3404},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"tuple(bytes32,bytes32)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"x","referencedDeclaration":3137,"type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"pubkey","referencedDeclaration":3148,"type":"struct PublicResolver.PublicKey storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3165,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":3405,"name":"Identifier","src":"6921:7:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3398,"type":"bytes32","value":"node"},"id":3406,"name":"Identifier","src":"6929:4:2"}],"id":3407,"name":"IndexAccess","src":"6921:13:2"}],"id":3408,"name":"MemberAccess","src":"6921:20:2"}],"id":3409,"name":"MemberAccess","src":"6921:22:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"y","referencedDeclaration":3139,"type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"pubkey","referencedDeclaration":3148,"type":"struct PublicResolver.PublicKey storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3165,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":3410,"name":"Identifier","src":"6945:7:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3398,"type":"bytes32","value":"node"},"id":3411,"name":"Identifier","src":"6953:4:2"}],"id":3412,"name":"IndexAccess","src":"6945:13:2"}],"id":3413,"name":"MemberAccess","src":"6945:20:2"}],"id":3414,"name":"MemberAccess","src":"6945:22:2"}],"id":3415,"name":"TupleExpression","src":"6920:48:2"}],"id":3416,"name":"Return","src":"6913:55:2"}],"id":3417,"name":"Block","src":"6903:72:2"}],"id":3418,"name":"FunctionDefinition","src":"6830:145:2"},{"attributes":{"constant":true,"documentation":"Returns the ABI associated with an ENS node.\nDefined in EIP205.\n@param node The ENS node to query\n@param contentTypes A bitwise OR of the ABI formats accepted by the caller.\n@return contentType The content type of the return value\n@return data The ABI data","implemented":true,"isConstructor":false,"modifiers":[null],"name":"ABI","payable":false,"scope":3570,"stateMutability":"view","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":3477,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3419,"name":"ElementaryTypeName","src":"7309:7:2"}],"id":3420,"name":"VariableDeclaration","src":"7309:12:2"},{"attributes":{"constant":false,"name":"contentTypes","scope":3477,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":3421,"name":"ElementaryTypeName","src":"7323:7:2"}],"id":3422,"name":"VariableDeclaration","src":"7323:20:2"}],"id":3423,"name":"ParameterList","src":"7308:36:2"},{"children":[{"attributes":{"constant":false,"name":"contentType","scope":3477,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":3424,"name":"ElementaryTypeName","src":"7366:7:2"}],"id":3425,"name":"VariableDeclaration","src":"7366:19:2"},{"attributes":{"constant":false,"name":"data","scope":3477,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":3426,"name":"ElementaryTypeName","src":"7387:5:2"}],"id":3427,"name":"VariableDeclaration","src":"7387:10:2"}],"id":3428,"name":"ParameterList","src":"7365:33:2"},{"children":[{"attributes":{"assignments":[3430]},"children":[{"attributes":{"constant":false,"name":"record","scope":3477,"stateVariable":false,"storageLocation":"storage","type":"struct PublicResolver.Record","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"Record","referencedDeclaration":3159,"type":"struct PublicResolver.Record"},"id":3429,"name":"UserDefinedTypeName","src":"7409:6:2"}],"id":3430,"name":"VariableDeclaration","src":"7409:21:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3165,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":3431,"name":"Identifier","src":"7433:7:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3420,"type":"bytes32","value":"node"},"id":3432,"name":"Identifier","src":"7441:4:2"}],"id":3433,"name":"IndexAccess","src":"7433:13:2"}],"id":3434,"name":"VariableDeclarationStatement","src":"7409:37:2"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3425,"type":"uint256","value":"contentType"},"id":3435,"name":"Identifier","src":"7461:11:2"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":3436,"name":"Literal","src":"7475:1:2"}],"id":3437,"name":"Assignment","src":"7461:15:2"}],"id":3438,"name":"ExpressionStatement","src":"7461:15:2"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3425,"type":"uint256","value":"contentType"},"id":3439,"name":"Identifier","src":"7478:11:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3422,"type":"uint256","value":"contentTypes"},"id":3440,"name":"Identifier","src":"7493:12:2"}],"id":3441,"name":"BinaryOperation","src":"7478:27:2"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<<=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3425,"type":"uint256","value":"contentType"},"id":3442,"name":"Identifier","src":"7507:11:2"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":3443,"name":"Literal","src":"7523:1:2"}],"id":3444,"name":"Assignment","src":"7507:17:2"}],"id":3445,"name":"ExpressionStatement","src":"7507:17:2"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&&","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3425,"type":"uint256","value":"contentType"},"id":3446,"name":"Identifier","src":"7545:11:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3422,"type":"uint256","value":"contentTypes"},"id":3447,"name":"Identifier","src":"7559:12:2"}],"id":3448,"name":"BinaryOperation","src":"7545:26:2"}],"id":3449,"name":"TupleExpression","src":"7544:28:2"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3450,"name":"Literal","src":"7576:1:2"}],"id":3451,"name":"BinaryOperation","src":"7544:33:2"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"abis","referencedDeclaration":3156,"type":"mapping(uint256 => bytes storage ref)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3430,"type":"struct PublicResolver.Record storage pointer","value":"record"},"id":3452,"name":"Identifier","src":"7581:6:2"}],"id":3453,"name":"MemberAccess","src":"7581:11:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3425,"type":"uint256","value":"contentType"},"id":3454,"name":"Identifier","src":"7593:11:2"}],"id":3455,"name":"IndexAccess","src":"7581:24:2"}],"id":3456,"name":"MemberAccess","src":"7581:31:2"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3457,"name":"Literal","src":"7615:1:2"}],"id":3458,"name":"BinaryOperation","src":"7581:35:2"}],"id":3459,"name":"BinaryOperation","src":"7544:72:2"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3427,"type":"bytes memory","value":"data"},"id":3460,"name":"Identifier","src":"7636:4:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"abis","referencedDeclaration":3156,"type":"mapping(uint256 => bytes storage ref)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3430,"type":"struct PublicResolver.Record storage pointer","value":"record"},"id":3461,"name":"Identifier","src":"7643:6:2"}],"id":3462,"name":"MemberAccess","src":"7643:11:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3425,"type":"uint256","value":"contentType"},"id":3463,"name":"Identifier","src":"7655:11:2"}],"id":3464,"name":"IndexAccess","src":"7643:24:2"}],"id":3465,"name":"Assignment","src":"7636:31:2"}],"id":3466,"name":"ExpressionStatement","src":"7636:31:2"},{"attributes":{"expression":null,"functionReturnParameters":3428},"id":3467,"name":"Return","src":"7685:7:2"}],"id":3468,"name":"Block","src":"7618:88:2"}],"id":3469,"name":"IfStatement","src":"7540:166:2"}],"id":3470,"name":"Block","src":"7526:190:2"}],"id":3471,"name":"ForStatement","src":"7456:260:2"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3425,"type":"uint256","value":"contentType"},"id":3472,"name":"Identifier","src":"7725:11:2"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3473,"name":"Literal","src":"7739:1:2"}],"id":3474,"name":"Assignment","src":"7725:15:2"}],"id":3475,"name":"ExpressionStatement","src":"7725:15:2"}],"id":3476,"name":"Block","src":"7399:348:2"}],"id":3477,"name":"FunctionDefinition","src":"7296:451:2"},{"attributes":{"constant":true,"documentation":"Returns the name associated with an ENS node, for reverse records.\nDefined in EIP181.\n@param node The ENS node to query.\n@return The associated name.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"name","payable":false,"scope":3570,"stateMutability":"view","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":3490,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3478,"name":"ElementaryTypeName","src":"7961:7:2"}],"id":3479,"name":"VariableDeclaration","src":"7961:12:2"}],"id":3480,"name":"ParameterList","src":"7960:14:2"},{"children":[{"attributes":{"constant":false,"name":"","scope":3490,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":3481,"name":"ElementaryTypeName","src":"7996:6:2"}],"id":3482,"name":"VariableDeclaration","src":"7996:6:2"}],"id":3483,"name":"ParameterList","src":"7995:8:2"},{"children":[{"attributes":{"functionReturnParameters":3483},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"name","referencedDeclaration":3146,"type":"string storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3165,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":3484,"name":"Identifier","src":"8021:7:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3479,"type":"bytes32","value":"node"},"id":3485,"name":"Identifier","src":"8029:4:2"}],"id":3486,"name":"IndexAccess","src":"8021:13:2"}],"id":3487,"name":"MemberAccess","src":"8021:18:2"}],"id":3488,"name":"Return","src":"8014:25:2"}],"id":3489,"name":"Block","src":"8004:42:2"}],"id":3490,"name":"FunctionDefinition","src":"7947:99:2"},{"attributes":{"constant":true,"documentation":"Returns the content hash associated with an ENS node.\nNote that this resource type is not standardized, and will likely change\nin future to a resource type based on multihash.\n@param node The ENS node to query.\n@return The associated content hash.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"content","payable":false,"scope":3570,"stateMutability":"view","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":3503,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3491,"name":"ElementaryTypeName","src":"8368:7:2"}],"id":3492,"name":"VariableDeclaration","src":"8368:12:2"}],"id":3493,"name":"ParameterList","src":"8367:14:2"},{"children":[{"attributes":{"constant":false,"name":"","scope":3503,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3494,"name":"ElementaryTypeName","src":"8403:7:2"}],"id":3495,"name":"VariableDeclaration","src":"8403:7:2"}],"id":3496,"name":"ParameterList","src":"8402:9:2"},{"children":[{"attributes":{"functionReturnParameters":3496},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"content","referencedDeclaration":3144,"type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3165,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":3497,"name":"Identifier","src":"8429:7:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3492,"type":"bytes32","value":"node"},"id":3498,"name":"Identifier","src":"8437:4:2"}],"id":3499,"name":"IndexAccess","src":"8429:13:2"}],"id":3500,"name":"MemberAccess","src":"8429:21:2"}],"id":3501,"name":"Return","src":"8422:28:2"}],"id":3502,"name":"Block","src":"8412:45:2"}],"id":3503,"name":"FunctionDefinition","src":"8351:106:2"},{"attributes":{"constant":true,"documentation":"Returns the multihash associated with an ENS node.\n@param node The ENS node to query.\n@return The associated multihash.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"multihash","payable":false,"scope":3570,"stateMutability":"view","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":3516,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3504,"name":"ElementaryTypeName","src":"8639:7:2"}],"id":3505,"name":"VariableDeclaration","src":"8639:12:2"}],"id":3506,"name":"ParameterList","src":"8638:14:2"},{"children":[{"attributes":{"constant":false,"name":"","scope":3516,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":3507,"name":"ElementaryTypeName","src":"8674:5:2"}],"id":3508,"name":"VariableDeclaration","src":"8674:5:2"}],"id":3509,"name":"ParameterList","src":"8673:7:2"},{"children":[{"attributes":{"functionReturnParameters":3509},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"multihash","referencedDeclaration":3158,"type":"bytes storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3165,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":3510,"name":"Identifier","src":"8698:7:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3505,"type":"bytes32","value":"node"},"id":3511,"name":"Identifier","src":"8706:4:2"}],"id":3512,"name":"IndexAccess","src":"8698:13:2"}],"id":3513,"name":"MemberAccess","src":"8698:23:2"}],"id":3514,"name":"Return","src":"8691:30:2"}],"id":3515,"name":"Block","src":"8681:47:2"}],"id":3516,"name":"FunctionDefinition","src":"8620:108:2"},{"attributes":{"constant":true,"documentation":"Returns the address associated with an ENS node.\n@param node The ENS node to query.\n@return The associated address.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"addr","payable":false,"scope":3570,"stateMutability":"view","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":3529,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3517,"name":"ElementaryTypeName","src":"8901:7:2"}],"id":3518,"name":"VariableDeclaration","src":"8901:12:2"}],"id":3519,"name":"ParameterList","src":"8900:14:2"},{"children":[{"attributes":{"constant":false,"name":"","scope":3529,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3520,"name":"ElementaryTypeName","src":"8936:7:2"}],"id":3521,"name":"VariableDeclaration","src":"8936:7:2"}],"id":3522,"name":"ParameterList","src":"8935:9:2"},{"children":[{"attributes":{"functionReturnParameters":3522},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"addr","referencedDeclaration":3142,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3165,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":3523,"name":"Identifier","src":"8962:7:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3518,"type":"bytes32","value":"node"},"id":3524,"name":"Identifier","src":"8970:4:2"}],"id":3525,"name":"IndexAccess","src":"8962:13:2"}],"id":3526,"name":"MemberAccess","src":"8962:18:2"}],"id":3527,"name":"Return","src":"8955:25:2"}],"id":3528,"name":"Block","src":"8945:42:2"}],"id":3529,"name":"FunctionDefinition","src":"8887:100:2"},{"attributes":{"constant":true,"documentation":"Returns true if the resolver implements the interface specified by the provided hash.\n@param interfaceID The ID of the interface to check for.\n@return True if the contract implements the requested interface.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"supportsInterface","payable":false,"scope":3570,"stateMutability":"pure","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"interfaceID","scope":3569,"stateVariable":false,"storageLocation":"default","type":"bytes4","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes4","type":"bytes4"},"id":3530,"name":"ElementaryTypeName","src":"9265:6:2"}],"id":3531,"name":"VariableDeclaration","src":"9265:18:2"}],"id":3532,"name":"ParameterList","src":"9264:20:2"},{"children":[{"attributes":{"constant":false,"name":"","scope":3569,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":3533,"name":"ElementaryTypeName","src":"9306:4:2"}],"id":3534,"name":"VariableDeclaration","src":"9306:4:2"}],"id":3535,"name":"ParameterList","src":"9305:6:2"},{"children":[{"attributes":{"functionReturnParameters":3535},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"||","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"||","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"||","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"||","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"||","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"||","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"||","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3531,"type":"bytes4","value":"interfaceID"},"id":3536,"name":"Identifier","src":"9329:11:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3071,"type":"bytes4","value":"ADDR_INTERFACE_ID"},"id":3537,"name":"Identifier","src":"9344:17:2"}],"id":3538,"name":"BinaryOperation","src":"9329:32:2"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3531,"type":"bytes4","value":"interfaceID"},"id":3539,"name":"Identifier","src":"9373:11:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3074,"type":"bytes4","value":"CONTENT_INTERFACE_ID"},"id":3540,"name":"Identifier","src":"9388:20:2"}],"id":3541,"name":"BinaryOperation","src":"9373:35:2"}],"id":3542,"name":"BinaryOperation","src":"9329:79:2"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3531,"type":"bytes4","value":"interfaceID"},"id":3543,"name":"Identifier","src":"9420:11:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3077,"type":"bytes4","value":"NAME_INTERFACE_ID"},"id":3544,"name":"Identifier","src":"9435:17:2"}],"id":3545,"name":"BinaryOperation","src":"9420:32:2"}],"id":3546,"name":"BinaryOperation","src":"9329:123:2"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3531,"type":"bytes4","value":"interfaceID"},"id":3547,"name":"Identifier","src":"9464:11:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3080,"type":"bytes4","value":"ABI_INTERFACE_ID"},"id":3548,"name":"Identifier","src":"9479:16:2"}],"id":3549,"name":"BinaryOperation","src":"9464:31:2"}],"id":3550,"name":"BinaryOperation","src":"9329:166:2"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3531,"type":"bytes4","value":"interfaceID"},"id":3551,"name":"Identifier","src":"9507:11:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3083,"type":"bytes4","value":"PUBKEY_INTERFACE_ID"},"id":3552,"name":"Identifier","src":"9522:19:2"}],"id":3553,"name":"BinaryOperation","src":"9507:34:2"}],"id":3554,"name":"BinaryOperation","src":"9329:212:2"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3531,"type":"bytes4","value":"interfaceID"},"id":3555,"name":"Identifier","src":"9553:11:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3086,"type":"bytes4","value":"TEXT_INTERFACE_ID"},"id":3556,"name":"Identifier","src":"9568:17:2"}],"id":3557,"name":"BinaryOperation","src":"9553:32:2"}],"id":3558,"name":"BinaryOperation","src":"9329:256:2"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3531,"type":"bytes4","value":"interfaceID"},"id":3559,"name":"Identifier","src":"9597:11:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3089,"type":"bytes4","value":"MULTIHASH_INTERFACE_ID"},"id":3560,"name":"Identifier","src":"9612:22:2"}],"id":3561,"name":"BinaryOperation","src":"9597:37:2"}],"id":3562,"name":"BinaryOperation","src":"9329:305:2"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3531,"type":"bytes4","value":"interfaceID"},"id":3563,"name":"Identifier","src":"9646:11:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3068,"type":"bytes4","value":"INTERFACE_META_ID"},"id":3564,"name":"Identifier","src":"9661:17:2"}],"id":3565,"name":"BinaryOperation","src":"9646:32:2"}],"id":3566,"name":"BinaryOperation","src":"9329:349:2"}],"id":3567,"name":"Return","src":"9322:356:2"}],"id":3568,"name":"Block","src":"9312:373:2"}],"id":3569,"name":"FunctionDefinition","src":"9238:447:2"}],"id":3570,"name":"ContractDefinition","src":"1553:8134:2"}],"id":3571,"name":"SourceUnit","src":"1406:8282:2"}},"externals/strings.sol":{"AST":{"attributes":{"absolutePath":"externals/strings.sol","exportedSymbols":{"strings":[2378]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".14"]},"id":685,"name":"PragmaDirective","src":"2574:24:3"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"library","documentation":null,"fullyImplemented":true,"linearizedBaseContracts":[2378],"name":"strings","scope":2379},"children":[{"attributes":{"canonicalName":"strings.slice","name":"slice","scope":2378,"visibility":"public"},"children":[{"attributes":{"constant":false,"name":"_len","scope":690,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":686,"name":"ElementaryTypeName","src":"2645:4:3"}],"id":687,"name":"VariableDeclaration","src":"2645:9:3"},{"attributes":{"constant":false,"name":"_ptr","scope":690,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":688,"name":"ElementaryTypeName","src":"2664:4:3"}],"id":689,"name":"VariableDeclaration","src":"2664:9:3"}],"id":690,"name":"StructDefinition","src":"2622:58:3"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"memcpy","payable":false,"scope":2378,"stateMutability":"pure","superFunction":null,"visibility":"private"},"children":[{"children":[{"attributes":{"constant":false,"name":"dest","scope":730,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":691,"name":"ElementaryTypeName","src":"2702:4:3"}],"id":692,"name":"VariableDeclaration","src":"2702:9:3"},{"attributes":{"constant":false,"name":"src","scope":730,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":693,"name":"ElementaryTypeName","src":"2713:4:3"}],"id":694,"name":"VariableDeclaration","src":"2713:8:3"},{"attributes":{"constant":false,"name":"len","scope":730,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":695,"name":"ElementaryTypeName","src":"2723:4:3"}],"id":696,"name":"VariableDeclaration","src":"2723:8:3"}],"id":697,"name":"ParameterList","src":"2701:31:3"},{"attributes":{"parameters":[null]},"children":[],"id":698,"name":"ParameterList","src":"2746:0:3"},{"children":[{"attributes":{"initializationExpression":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":696,"type":"uint256","value":"len"},"id":699,"name":"Identifier","src":"2812:3:3"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":700,"name":"Literal","src":"2819:2:3"}],"id":701,"name":"BinaryOperation","src":"2812:9:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":696,"type":"uint256","value":"len"},"id":702,"name":"Identifier","src":"2823:3:3"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":703,"name":"Literal","src":"2830:2:3"}],"id":704,"name":"Assignment","src":"2823:9:3"}],"id":705,"name":"ExpressionStatement","src":"2823:9:3"},{"children":[{"attributes":{"externalReferences":[{"dest":{"declaration":692,"isOffset":false,"isSlot":false,"src":"2882:4:3","valueSize":1}},{"src":{"declaration":694,"isOffset":false,"isSlot":false,"src":"2894:3:3","valueSize":1}}],"operations":"{\n mstore(dest, mload(src))\n}"},"children":[],"id":706,"name":"InlineAssembly","src":"2848:82:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":692,"type":"uint256","value":"dest"},"id":707,"name":"Identifier","src":"2926:4:3"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":708,"name":"Literal","src":"2934:2:3"}],"id":709,"name":"Assignment","src":"2926:10:3"}],"id":710,"name":"ExpressionStatement","src":"2926:10:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":694,"type":"uint256","value":"src"},"id":711,"name":"Identifier","src":"2950:3:3"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":712,"name":"Literal","src":"2957:2:3"}],"id":713,"name":"Assignment","src":"2950:9:3"}],"id":714,"name":"ExpressionStatement","src":"2950:9:3"}],"id":715,"name":"Block","src":"2834:136:3"}],"id":716,"name":"ForStatement","src":"2806:164:3"},{"attributes":{"assignments":[718]},"children":[{"attributes":{"constant":false,"name":"mask","scope":730,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":717,"name":"ElementaryTypeName","src":"3012:4:3"}],"id":718,"name":"VariableDeclaration","src":"3012:9:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"**","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"323536","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 256","value":"256"},"id":719,"name":"Literal","src":"3024:3:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":720,"name":"Literal","src":"3032:2:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":696,"type":"uint256","value":"len"},"id":721,"name":"Identifier","src":"3037:3:3"}],"id":722,"name":"BinaryOperation","src":"3032:8:3"}],"id":723,"name":"TupleExpression","src":"3031:10:3"}],"id":724,"name":"BinaryOperation","src":"3024:17:3"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":725,"name":"Literal","src":"3044:1:3"}],"id":726,"name":"BinaryOperation","src":"3024:21:3"}],"id":727,"name":"VariableDeclarationStatement","src":"3012:33:3"},{"attributes":{"externalReferences":[{"mask":{"declaration":718,"isOffset":false,"isSlot":false,"src":"3113:4:3","valueSize":1}},{"src":{"declaration":694,"isOffset":false,"isSlot":false,"src":"3103:3:3","valueSize":1}},{"dest":{"declaration":692,"isOffset":false,"isSlot":false,"src":"3158:4:3","valueSize":1}},{"mask":{"declaration":718,"isOffset":false,"isSlot":false,"src":"3165:4:3","valueSize":1}},{"dest":{"declaration":692,"isOffset":false,"isSlot":false,"src":"3190:4:3","valueSize":1}}],"operations":"{\n let srcpart := and(mload(src), not(mask))\n let destpart := and(mload(dest), mask)\n mstore(dest, or(destpart, srcpart))\n}"},"children":[],"id":728,"name":"InlineAssembly","src":"3055:179:3"}],"id":729,"name":"Block","src":"2746:488:3"}],"id":730,"name":"FunctionDefinition","src":"2686:548:3"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"toSlice","payable":false,"scope":2378,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":750,"stateVariable":false,"storageLocation":"memory","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":731,"name":"ElementaryTypeName","src":"3451:6:3"}],"id":732,"name":"VariableDeclaration","src":"3451:18:3"}],"id":733,"name":"ParameterList","src":"3450:20:3"},{"children":[{"attributes":{"constant":false,"name":"","scope":750,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":690,"type":"struct strings.slice"},"id":734,"name":"UserDefinedTypeName","src":"3494:5:3"}],"id":735,"name":"VariableDeclaration","src":"3494:5:3"}],"id":736,"name":"ParameterList","src":"3493:14:3"},{"children":[{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"ptr","scope":750,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":737,"name":"ElementaryTypeName","src":"3518:4:3"}],"id":738,"name":"VariableDeclaration","src":"3518:8:3"}],"id":739,"name":"VariableDeclarationStatement","src":"3518:8:3"},{"attributes":{"externalReferences":[{"ptr":{"declaration":738,"isOffset":false,"isSlot":false,"src":"3559:3:3","valueSize":1}},{"self":{"declaration":732,"isOffset":false,"isSlot":false,"src":"3570:4:3","valueSize":1}}],"operations":"{\n ptr := add(self, 0x20)\n}"},"children":[],"id":740,"name":"InlineAssembly","src":"3536:70:3"},{"attributes":{"functionReturnParameters":736},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":true,"lValueRequested":false,"names":[null],"type":"struct strings.slice memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":690,"type":"type(struct strings.slice storage pointer)","value":"slice"},"id":741,"name":"Identifier","src":"3607:5:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes storage pointer)","value":"bytes"},"id":742,"name":"ElementaryTypeNameExpression","src":"3613:5:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":732,"type":"string memory","value":"self"},"id":743,"name":"Identifier","src":"3619:4:3"}],"id":744,"name":"FunctionCall","src":"3613:11:3"}],"id":745,"name":"MemberAccess","src":"3613:18:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":738,"type":"uint256","value":"ptr"},"id":746,"name":"Identifier","src":"3633:3:3"}],"id":747,"name":"FunctionCall","src":"3607:30:3"}],"id":748,"name":"Return","src":"3600:37:3"}],"id":749,"name":"Block","src":"3508:136:3"}],"id":750,"name":"FunctionDefinition","src":"3434:210:3"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"len","payable":false,"scope":2378,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":866,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":751,"name":"ElementaryTypeName","src":"3853:7:3"}],"id":752,"name":"VariableDeclaration","src":"3853:12:3"}],"id":753,"name":"ParameterList","src":"3852:14:3"},{"children":[{"attributes":{"constant":false,"name":"","scope":866,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":754,"name":"ElementaryTypeName","src":"3890:4:3"}],"id":755,"name":"VariableDeclaration","src":"3890:4:3"}],"id":756,"name":"ParameterList","src":"3889:6:3"},{"children":[{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"ret","scope":866,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":757,"name":"ElementaryTypeName","src":"3906:4:3"}],"id":758,"name":"VariableDeclaration","src":"3906:8:3"}],"id":759,"name":"VariableDeclarationStatement","src":"3906:8:3"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":752,"type":"bytes32","value":"self"},"id":760,"name":"Identifier","src":"3928:4:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":761,"name":"Literal","src":"3936:1:3"}],"id":762,"name":"BinaryOperation","src":"3928:9:3"},{"attributes":{"functionReturnParameters":756},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":763,"name":"Literal","src":"3958:1:3"}],"id":764,"name":"Return","src":"3951:8:3"}],"id":765,"name":"IfStatement","src":"3924:35:3"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":752,"type":"bytes32","value":"self"},"id":766,"name":"Identifier","src":"3973:4:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30786666666666666666666666666666666666666666666666666666666666666666","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3402...(31 digits omitted)...1455","value":"0xffffffffffffffffffffffffffffffff"},"id":767,"name":"Literal","src":"3980:34:3"}],"id":768,"name":"BinaryOperation","src":"3973:41:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":769,"name":"Literal","src":"4018:1:3"}],"id":770,"name":"BinaryOperation","src":"3973:46:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":758,"type":"uint256","value":"ret"},"id":771,"name":"Identifier","src":"4035:3:3"},{"attributes":{"argumentTypes":null,"hexvalue":"3136","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 16","value":"16"},"id":772,"name":"Literal","src":"4042:2:3"}],"id":773,"name":"Assignment","src":"4035:9:3"}],"id":774,"name":"ExpressionStatement","src":"4035:9:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":752,"type":"bytes32","value":"self"},"id":775,"name":"Identifier","src":"4058:4:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes32)","value":"bytes32"},"id":776,"name":"ElementaryTypeNameExpression","src":"4065:7:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"/","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint"},"id":777,"name":"ElementaryTypeNameExpression","src":"4073:4:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":752,"type":"bytes32","value":"self"},"id":778,"name":"Identifier","src":"4078:4:3"}],"id":779,"name":"FunctionCall","src":"4073:10:3"},{"attributes":{"argumentTypes":null,"hexvalue":"3078313030303030303030303030303030303030303030303030303030303030303030","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3402...(31 digits omitted)...1456","value":"0x100000000000000000000000000000000"},"id":780,"name":"Literal","src":"4086:35:3"}],"id":781,"name":"BinaryOperation","src":"4073:48:3"}],"id":782,"name":"FunctionCall","src":"4065:57:3"}],"id":783,"name":"Assignment","src":"4058:64:3"}],"id":784,"name":"ExpressionStatement","src":"4058:64:3"}],"id":785,"name":"Block","src":"4021:112:3"}],"id":786,"name":"IfStatement","src":"3969:164:3"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":752,"type":"bytes32","value":"self"},"id":787,"name":"Identifier","src":"4146:4:3"},{"attributes":{"argumentTypes":null,"hexvalue":"307866666666666666666666666666666666","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 18446744073709551615","value":"0xffffffffffffffff"},"id":788,"name":"Literal","src":"4153:18:3"}],"id":789,"name":"BinaryOperation","src":"4146:25:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":790,"name":"Literal","src":"4175:1:3"}],"id":791,"name":"BinaryOperation","src":"4146:30:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":758,"type":"uint256","value":"ret"},"id":792,"name":"Identifier","src":"4192:3:3"},{"attributes":{"argumentTypes":null,"hexvalue":"38","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 8","value":"8"},"id":793,"name":"Literal","src":"4199:1:3"}],"id":794,"name":"Assignment","src":"4192:8:3"}],"id":795,"name":"ExpressionStatement","src":"4192:8:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":752,"type":"bytes32","value":"self"},"id":796,"name":"Identifier","src":"4214:4:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes32)","value":"bytes32"},"id":797,"name":"ElementaryTypeNameExpression","src":"4221:7:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"/","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint"},"id":798,"name":"ElementaryTypeNameExpression","src":"4229:4:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":752,"type":"bytes32","value":"self"},"id":799,"name":"Identifier","src":"4234:4:3"}],"id":800,"name":"FunctionCall","src":"4229:10:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30783130303030303030303030303030303030","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 18446744073709551616","value":"0x10000000000000000"},"id":801,"name":"Literal","src":"4242:19:3"}],"id":802,"name":"BinaryOperation","src":"4229:32:3"}],"id":803,"name":"FunctionCall","src":"4221:41:3"}],"id":804,"name":"Assignment","src":"4214:48:3"}],"id":805,"name":"ExpressionStatement","src":"4214:48:3"}],"id":806,"name":"Block","src":"4178:95:3"}],"id":807,"name":"IfStatement","src":"4142:131:3"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":752,"type":"bytes32","value":"self"},"id":808,"name":"Identifier","src":"4286:4:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30786666666666666666","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4294967295","value":"0xffffffff"},"id":809,"name":"Literal","src":"4293:10:3"}],"id":810,"name":"BinaryOperation","src":"4286:17:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":811,"name":"Literal","src":"4307:1:3"}],"id":812,"name":"BinaryOperation","src":"4286:22:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":758,"type":"uint256","value":"ret"},"id":813,"name":"Identifier","src":"4324:3:3"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":814,"name":"Literal","src":"4331:1:3"}],"id":815,"name":"Assignment","src":"4324:8:3"}],"id":816,"name":"ExpressionStatement","src":"4324:8:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":752,"type":"bytes32","value":"self"},"id":817,"name":"Identifier","src":"4346:4:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes32)","value":"bytes32"},"id":818,"name":"ElementaryTypeNameExpression","src":"4353:7:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"/","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint"},"id":819,"name":"ElementaryTypeNameExpression","src":"4361:4:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":752,"type":"bytes32","value":"self"},"id":820,"name":"Identifier","src":"4366:4:3"}],"id":821,"name":"FunctionCall","src":"4361:10:3"},{"attributes":{"argumentTypes":null,"hexvalue":"3078313030303030303030","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4294967296","value":"0x100000000"},"id":822,"name":"Literal","src":"4374:11:3"}],"id":823,"name":"BinaryOperation","src":"4361:24:3"}],"id":824,"name":"FunctionCall","src":"4353:33:3"}],"id":825,"name":"Assignment","src":"4346:40:3"}],"id":826,"name":"ExpressionStatement","src":"4346:40:3"}],"id":827,"name":"Block","src":"4310:87:3"}],"id":828,"name":"IfStatement","src":"4282:115:3"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":752,"type":"bytes32","value":"self"},"id":829,"name":"Identifier","src":"4410:4:3"},{"attributes":{"argumentTypes":null,"hexvalue":"307866666666","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 65535","value":"0xffff"},"id":830,"name":"Literal","src":"4417:6:3"}],"id":831,"name":"BinaryOperation","src":"4410:13:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":832,"name":"Literal","src":"4427:1:3"}],"id":833,"name":"BinaryOperation","src":"4410:18:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":758,"type":"uint256","value":"ret"},"id":834,"name":"Identifier","src":"4444:3:3"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":835,"name":"Literal","src":"4451:1:3"}],"id":836,"name":"Assignment","src":"4444:8:3"}],"id":837,"name":"ExpressionStatement","src":"4444:8:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":752,"type":"bytes32","value":"self"},"id":838,"name":"Identifier","src":"4466:4:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes32)","value":"bytes32"},"id":839,"name":"ElementaryTypeNameExpression","src":"4473:7:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"/","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint"},"id":840,"name":"ElementaryTypeNameExpression","src":"4481:4:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":752,"type":"bytes32","value":"self"},"id":841,"name":"Identifier","src":"4486:4:3"}],"id":842,"name":"FunctionCall","src":"4481:10:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30783130303030","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 65536","value":"0x10000"},"id":843,"name":"Literal","src":"4494:7:3"}],"id":844,"name":"BinaryOperation","src":"4481:20:3"}],"id":845,"name":"FunctionCall","src":"4473:29:3"}],"id":846,"name":"Assignment","src":"4466:36:3"}],"id":847,"name":"ExpressionStatement","src":"4466:36:3"}],"id":848,"name":"Block","src":"4430:83:3"}],"id":849,"name":"IfStatement","src":"4406:107:3"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":752,"type":"bytes32","value":"self"},"id":850,"name":"Identifier","src":"4526:4:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30786666","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 255","value":"0xff"},"id":851,"name":"Literal","src":"4533:4:3"}],"id":852,"name":"BinaryOperation","src":"4526:11:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":853,"name":"Literal","src":"4541:1:3"}],"id":854,"name":"BinaryOperation","src":"4526:16:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":758,"type":"uint256","value":"ret"},"id":855,"name":"Identifier","src":"4558:3:3"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":856,"name":"Literal","src":"4565:1:3"}],"id":857,"name":"Assignment","src":"4558:8:3"}],"id":858,"name":"ExpressionStatement","src":"4558:8:3"}],"id":859,"name":"Block","src":"4544:33:3"}],"id":860,"name":"IfStatement","src":"4522:55:3"},{"attributes":{"functionReturnParameters":756},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":861,"name":"Literal","src":"4593:2:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":758,"type":"uint256","value":"ret"},"id":862,"name":"Identifier","src":"4598:3:3"}],"id":863,"name":"BinaryOperation","src":"4593:8:3"}],"id":864,"name":"Return","src":"4586:15:3"}],"id":865,"name":"Block","src":"3896:712:3"}],"id":866,"name":"FunctionDefinition","src":"3840:768:3"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"toSliceB32","payable":false,"scope":2378,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":883,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":867,"name":"ElementaryTypeName","src":"4934:7:3"}],"id":868,"name":"VariableDeclaration","src":"4934:12:3"}],"id":869,"name":"ParameterList","src":"4933:14:3"},{"children":[{"attributes":{"constant":false,"name":"ret","scope":883,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":690,"type":"struct strings.slice"},"id":870,"name":"UserDefinedTypeName","src":"4971:5:3"}],"id":871,"name":"VariableDeclaration","src":"4971:16:3"}],"id":872,"name":"ParameterList","src":"4970:18:3"},{"children":[{"attributes":{"externalReferences":[{"ret":{"declaration":871,"isOffset":false,"isSlot":false,"src":"5222:3:3","valueSize":1}},{"self":{"declaration":868,"isOffset":false,"isSlot":false,"src":"5193:4:3","valueSize":1}}],"operations":"{\n let ptr := mload(0x40)\n mstore(0x40, add(ptr, 0x20))\n mstore(ptr, self)\n mstore(add(ret, 0x20), ptr)\n}"},"children":[],"id":873,"name":"InlineAssembly","src":"5082:178:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":687,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":871,"type":"struct strings.slice memory","value":"ret"},"id":874,"name":"Identifier","src":"5257:3:3"}],"id":876,"name":"MemberAccess","src":"5257:8:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[866,1016],"referencedDeclaration":866,"type":"function (bytes32) pure returns (uint256)","value":"len"},"id":877,"name":"Identifier","src":"5268:3:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":868,"type":"bytes32","value":"self"},"id":878,"name":"Identifier","src":"5272:4:3"}],"id":879,"name":"FunctionCall","src":"5268:9:3"}],"id":880,"name":"Assignment","src":"5257:20:3"}],"id":881,"name":"ExpressionStatement","src":"5257:20:3"}],"id":882,"name":"Block","src":"4989:295:3"}],"id":883,"name":"FunctionDefinition","src":"4914:370:3"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"copy","payable":false,"scope":2378,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":898,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":690,"type":"struct strings.slice"},"id":884,"name":"UserDefinedTypeName","src":"5499:5:3"}],"id":885,"name":"VariableDeclaration","src":"5499:17:3"}],"id":886,"name":"ParameterList","src":"5498:19:3"},{"children":[{"attributes":{"constant":false,"name":"","scope":898,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":690,"type":"struct strings.slice"},"id":887,"name":"UserDefinedTypeName","src":"5541:5:3"}],"id":888,"name":"VariableDeclaration","src":"5541:5:3"}],"id":889,"name":"ParameterList","src":"5540:14:3"},{"children":[{"attributes":{"functionReturnParameters":889},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":true,"lValueRequested":false,"names":[null],"type":"struct strings.slice memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":690,"type":"type(struct strings.slice storage pointer)","value":"slice"},"id":890,"name":"Identifier","src":"5572:5:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":687,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":885,"type":"struct strings.slice memory","value":"self"},"id":891,"name":"Identifier","src":"5578:4:3"}],"id":892,"name":"MemberAccess","src":"5578:9:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":689,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":885,"type":"struct strings.slice memory","value":"self"},"id":893,"name":"Identifier","src":"5589:4:3"}],"id":894,"name":"MemberAccess","src":"5589:9:3"}],"id":895,"name":"FunctionCall","src":"5572:27:3"}],"id":896,"name":"Return","src":"5565:34:3"}],"id":897,"name":"Block","src":"5555:51:3"}],"id":898,"name":"FunctionDefinition","src":"5485:121:3"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"toString","payable":false,"scope":2378,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":928,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":690,"type":"struct strings.slice"},"id":899,"name":"UserDefinedTypeName","src":"5796:5:3"}],"id":900,"name":"VariableDeclaration","src":"5796:17:3"}],"id":901,"name":"ParameterList","src":"5795:19:3"},{"children":[{"attributes":{"constant":false,"name":"","scope":928,"stateVariable":false,"storageLocation":"memory","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":902,"name":"ElementaryTypeName","src":"5838:6:3"}],"id":903,"name":"VariableDeclaration","src":"5838:6:3"}],"id":904,"name":"ParameterList","src":"5837:15:3"},{"children":[{"attributes":{"assignments":[906]},"children":[{"attributes":{"constant":false,"name":"ret","scope":928,"stateVariable":false,"storageLocation":"memory","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":905,"name":"ElementaryTypeName","src":"5863:6:3"}],"id":906,"name":"VariableDeclaration","src":"5863:17:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (string memory)"},"children":[{"attributes":{"name":"string","type":"string"},"id":907,"name":"ElementaryTypeName","src":"5887:6:3"}],"id":908,"name":"NewExpression","src":"5883:10:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":687,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":900,"type":"struct strings.slice memory","value":"self"},"id":909,"name":"Identifier","src":"5894:4:3"}],"id":910,"name":"MemberAccess","src":"5894:9:3"}],"id":911,"name":"FunctionCall","src":"5883:21:3"}],"id":912,"name":"VariableDeclarationStatement","src":"5863:41:3"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"retptr","scope":928,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":913,"name":"ElementaryTypeName","src":"5914:4:3"}],"id":914,"name":"VariableDeclaration","src":"5914:11:3"}],"id":915,"name":"VariableDeclarationStatement","src":"5914:11:3"},{"attributes":{"externalReferences":[{"retptr":{"declaration":914,"isOffset":false,"isSlot":false,"src":"5946:6:3","valueSize":1}},{"ret":{"declaration":906,"isOffset":false,"isSlot":false,"src":"5960:3:3","valueSize":1}}],"operations":"{\n retptr := add(ret, 32)\n}"},"children":[],"id":916,"name":"InlineAssembly","src":"5935:51:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":730,"type":"function (uint256,uint256,uint256) pure","value":"memcpy"},"id":917,"name":"Identifier","src":"5980:6:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":914,"type":"uint256","value":"retptr"},"id":918,"name":"Identifier","src":"5987:6:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":689,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":900,"type":"struct strings.slice memory","value":"self"},"id":919,"name":"Identifier","src":"5995:4:3"}],"id":920,"name":"MemberAccess","src":"5995:9:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":687,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":900,"type":"struct strings.slice memory","value":"self"},"id":921,"name":"Identifier","src":"6006:4:3"}],"id":922,"name":"MemberAccess","src":"6006:9:3"}],"id":923,"name":"FunctionCall","src":"5980:36:3"}],"id":924,"name":"ExpressionStatement","src":"5980:36:3"},{"attributes":{"functionReturnParameters":904},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":906,"type":"string memory","value":"ret"},"id":925,"name":"Identifier","src":"6033:3:3"}],"id":926,"name":"Return","src":"6026:10:3"}],"id":927,"name":"Block","src":"5853:190:3"}],"id":928,"name":"FunctionDefinition","src":"5778:265:3"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"len","payable":false,"scope":2378,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":1016,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":690,"type":"struct strings.slice"},"id":929,"name":"UserDefinedTypeName","src":"6447:5:3"}],"id":930,"name":"VariableDeclaration","src":"6447:17:3"}],"id":931,"name":"ParameterList","src":"6446:19:3"},{"children":[{"attributes":{"constant":false,"name":"l","scope":1016,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":932,"name":"ElementaryTypeName","src":"6489:4:3"}],"id":933,"name":"VariableDeclaration","src":"6489:6:3"}],"id":934,"name":"ParameterList","src":"6488:8:3"},{"children":[{"attributes":{"assignments":[936]},"children":[{"attributes":{"constant":false,"name":"ptr","scope":1016,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":935,"name":"ElementaryTypeName","src":"6582:4:3"}],"id":936,"name":"VariableDeclaration","src":"6582:8:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":689,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":930,"type":"struct strings.slice memory","value":"self"},"id":937,"name":"Identifier","src":"6593:4:3"}],"id":938,"name":"MemberAccess","src":"6593:9:3"},{"attributes":{"argumentTypes":null,"hexvalue":"3331","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 31","value":"31"},"id":939,"name":"Literal","src":"6605:2:3"}],"id":940,"name":"BinaryOperation","src":"6593:14:3"}],"id":941,"name":"VariableDeclarationStatement","src":"6582:25:3"},{"attributes":{"assignments":[943]},"children":[{"attributes":{"constant":false,"name":"end","scope":1016,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":942,"name":"ElementaryTypeName","src":"6617:4:3"}],"id":943,"name":"VariableDeclaration","src":"6617:8:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":936,"type":"uint256","value":"ptr"},"id":944,"name":"Identifier","src":"6628:3:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":687,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":930,"type":"struct strings.slice memory","value":"self"},"id":945,"name":"Identifier","src":"6634:4:3"}],"id":946,"name":"MemberAccess","src":"6634:9:3"}],"id":947,"name":"BinaryOperation","src":"6628:15:3"}],"id":948,"name":"VariableDeclarationStatement","src":"6617:26:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":933,"type":"uint256","value":"l"},"id":949,"name":"Identifier","src":"6658:1:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":950,"name":"Literal","src":"6662:1:3"}],"id":951,"name":"Assignment","src":"6658:5:3"}],"id":952,"name":"ExpressionStatement","src":"6658:5:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":936,"type":"uint256","value":"ptr"},"id":953,"name":"Identifier","src":"6665:3:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":943,"type":"uint256","value":"end"},"id":954,"name":"Identifier","src":"6671:3:3"}],"id":955,"name":"BinaryOperation","src":"6665:9:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":933,"type":"uint256","value":"l"},"id":956,"name":"Identifier","src":"6676:1:3"}],"id":957,"name":"UnaryOperation","src":"6676:3:3"}],"id":958,"name":"ExpressionStatement","src":"6676:3:3"},{"children":[{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"b","scope":1016,"stateVariable":false,"storageLocation":"default","type":"uint8","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint8","type":"uint8"},"id":959,"name":"ElementaryTypeName","src":"6695:5:3"}],"id":960,"name":"VariableDeclaration","src":"6695:7:3"}],"id":961,"name":"VariableDeclarationStatement","src":"6695:7:3"},{"attributes":{"externalReferences":[{"ptr":{"declaration":936,"isOffset":false,"isSlot":false,"src":"6742:3:3","valueSize":1}},{"b":{"declaration":960,"isOffset":false,"isSlot":false,"src":"6727:1:3","valueSize":1}}],"operations":"{\n b := and(mload(ptr), 0xFF)\n}"},"children":[],"id":962,"name":"InlineAssembly","src":"6716:54:3"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":960,"type":"uint8","value":"b"},"id":963,"name":"Identifier","src":"6772:1:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30783830","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 128","value":"0x80"},"id":964,"name":"Literal","src":"6776:4:3"}],"id":965,"name":"BinaryOperation","src":"6772:8:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":936,"type":"uint256","value":"ptr"},"id":966,"name":"Identifier","src":"6800:3:3"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":967,"name":"Literal","src":"6807:1:3"}],"id":968,"name":"Assignment","src":"6800:8:3"}],"id":969,"name":"ExpressionStatement","src":"6800:8:3"}],"id":970,"name":"Block","src":"6782:41:3"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":960,"type":"uint8","value":"b"},"id":971,"name":"Identifier","src":"6832:1:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30784530","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 224","value":"0xE0"},"id":972,"name":"Literal","src":"6836:4:3"}],"id":973,"name":"BinaryOperation","src":"6832:8:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":936,"type":"uint256","value":"ptr"},"id":974,"name":"Identifier","src":"6860:3:3"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":975,"name":"Literal","src":"6867:1:3"}],"id":976,"name":"Assignment","src":"6860:8:3"}],"id":977,"name":"ExpressionStatement","src":"6860:8:3"}],"id":978,"name":"Block","src":"6842:41:3"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":960,"type":"uint8","value":"b"},"id":979,"name":"Identifier","src":"6892:1:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30784630","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 240","value":"0xF0"},"id":980,"name":"Literal","src":"6896:4:3"}],"id":981,"name":"BinaryOperation","src":"6892:8:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":936,"type":"uint256","value":"ptr"},"id":982,"name":"Identifier","src":"6920:3:3"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":983,"name":"Literal","src":"6927:1:3"}],"id":984,"name":"Assignment","src":"6920:8:3"}],"id":985,"name":"ExpressionStatement","src":"6920:8:3"}],"id":986,"name":"Block","src":"6902:41:3"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":960,"type":"uint8","value":"b"},"id":987,"name":"Identifier","src":"6952:1:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30784638","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 248","value":"0xF8"},"id":988,"name":"Literal","src":"6956:4:3"}],"id":989,"name":"BinaryOperation","src":"6952:8:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":936,"type":"uint256","value":"ptr"},"id":990,"name":"Identifier","src":"6980:3:3"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":991,"name":"Literal","src":"6987:1:3"}],"id":992,"name":"Assignment","src":"6980:8:3"}],"id":993,"name":"ExpressionStatement","src":"6980:8:3"}],"id":994,"name":"Block","src":"6962:41:3"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":960,"type":"uint8","value":"b"},"id":995,"name":"Identifier","src":"7012:1:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30784643","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 252","value":"0xFC"},"id":996,"name":"Literal","src":"7016:4:3"}],"id":997,"name":"BinaryOperation","src":"7012:8:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":936,"type":"uint256","value":"ptr"},"id":998,"name":"Identifier","src":"7040:3:3"},{"attributes":{"argumentTypes":null,"hexvalue":"35","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 5","value":"5"},"id":999,"name":"Literal","src":"7047:1:3"}],"id":1000,"name":"Assignment","src":"7040:8:3"}],"id":1001,"name":"ExpressionStatement","src":"7040:8:3"}],"id":1002,"name":"Block","src":"7022:41:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":936,"type":"uint256","value":"ptr"},"id":1003,"name":"Identifier","src":"7087:3:3"},{"attributes":{"argumentTypes":null,"hexvalue":"36","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 6","value":"6"},"id":1004,"name":"Literal","src":"7094:1:3"}],"id":1005,"name":"Assignment","src":"7087:8:3"}],"id":1006,"name":"ExpressionStatement","src":"7087:8:3"}],"id":1007,"name":"Block","src":"7069:41:3"}],"id":1008,"name":"IfStatement","src":"7009:101:3"}],"id":1009,"name":"IfStatement","src":"6949:161:3"}],"id":1010,"name":"IfStatement","src":"6889:221:3"}],"id":1011,"name":"IfStatement","src":"6829:281:3"}],"id":1012,"name":"IfStatement","src":"6768:342:3"}],"id":1013,"name":"Block","src":"6681:439:3"}],"id":1014,"name":"ForStatement","src":"6653:467:3"}],"id":1015,"name":"Block","src":"6497:629:3"}],"id":1016,"name":"FunctionDefinition","src":"6434:692:3"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"empty","payable":false,"scope":2378,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":1029,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":690,"type":"struct strings.slice"},"id":1017,"name":"UserDefinedTypeName","src":"7334:5:3"}],"id":1018,"name":"VariableDeclaration","src":"7334:17:3"}],"id":1019,"name":"ParameterList","src":"7333:19:3"},{"children":[{"attributes":{"constant":false,"name":"","scope":1029,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":1020,"name":"ElementaryTypeName","src":"7376:4:3"}],"id":1021,"name":"VariableDeclaration","src":"7376:4:3"}],"id":1022,"name":"ParameterList","src":"7375:6:3"},{"children":[{"attributes":{"functionReturnParameters":1022},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":687,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1018,"type":"struct strings.slice memory","value":"self"},"id":1023,"name":"Identifier","src":"7399:4:3"}],"id":1024,"name":"MemberAccess","src":"7399:9:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1025,"name":"Literal","src":"7412:1:3"}],"id":1026,"name":"BinaryOperation","src":"7399:14:3"}],"id":1027,"name":"Return","src":"7392:21:3"}],"id":1028,"name":"Block","src":"7382:38:3"}],"id":1029,"name":"FunctionDefinition","src":"7319:101:3"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"compare","payable":false,"scope":2378,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":1158,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":690,"type":"struct strings.slice"},"id":1030,"name":"UserDefinedTypeName","src":"7865:5:3"}],"id":1031,"name":"VariableDeclaration","src":"7865:17:3"},{"attributes":{"constant":false,"name":"other","scope":1158,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":690,"type":"struct strings.slice"},"id":1032,"name":"UserDefinedTypeName","src":"7884:5:3"}],"id":1033,"name":"VariableDeclaration","src":"7884:18:3"}],"id":1034,"name":"ParameterList","src":"7864:39:3"},{"children":[{"attributes":{"constant":false,"name":"","scope":1158,"stateVariable":false,"storageLocation":"default","type":"int256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"int","type":"int256"},"id":1035,"name":"ElementaryTypeName","src":"7927:3:3"}],"id":1036,"name":"VariableDeclaration","src":"7927:3:3"}],"id":1037,"name":"ParameterList","src":"7926:5:3"},{"children":[{"attributes":{"assignments":[1039]},"children":[{"attributes":{"constant":false,"name":"shortest","scope":1158,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1038,"name":"ElementaryTypeName","src":"7942:4:3"}],"id":1039,"name":"VariableDeclaration","src":"7942:13:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":687,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1031,"type":"struct strings.slice memory","value":"self"},"id":1040,"name":"Identifier","src":"7958:4:3"}],"id":1041,"name":"MemberAccess","src":"7958:9:3"}],"id":1042,"name":"VariableDeclarationStatement","src":"7942:25:3"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":687,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1033,"type":"struct strings.slice memory","value":"other"},"id":1043,"name":"Identifier","src":"7981:5:3"}],"id":1044,"name":"MemberAccess","src":"7981:10:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":687,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1031,"type":"struct strings.slice memory","value":"self"},"id":1045,"name":"Identifier","src":"7994:4:3"}],"id":1046,"name":"MemberAccess","src":"7994:9:3"}],"id":1047,"name":"BinaryOperation","src":"7981:22:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1039,"type":"uint256","value":"shortest"},"id":1048,"name":"Identifier","src":"8017:8:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":687,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1033,"type":"struct strings.slice memory","value":"other"},"id":1049,"name":"Identifier","src":"8028:5:3"}],"id":1050,"name":"MemberAccess","src":"8028:10:3"}],"id":1051,"name":"Assignment","src":"8017:21:3"}],"id":1052,"name":"ExpressionStatement","src":"8017:21:3"}],"id":1053,"name":"IfStatement","src":"7977:61:3"},{"attributes":{"assignments":[1055]},"children":[{"attributes":{"constant":false,"name":"selfptr","scope":1158,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1054,"name":"ElementaryTypeName","src":"8049:4:3"}],"id":1055,"name":"VariableDeclaration","src":"8049:12:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":689,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1031,"type":"struct strings.slice memory","value":"self"},"id":1056,"name":"Identifier","src":"8064:4:3"}],"id":1057,"name":"MemberAccess","src":"8064:9:3"}],"id":1058,"name":"VariableDeclarationStatement","src":"8049:24:3"},{"attributes":{"assignments":[1060]},"children":[{"attributes":{"constant":false,"name":"otherptr","scope":1158,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1059,"name":"ElementaryTypeName","src":"8083:4:3"}],"id":1060,"name":"VariableDeclaration","src":"8083:13:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":689,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1033,"type":"struct strings.slice memory","value":"other"},"id":1061,"name":"Identifier","src":"8099:5:3"}],"id":1062,"name":"MemberAccess","src":"8099:10:3"}],"id":1063,"name":"VariableDeclarationStatement","src":"8083:26:3"},{"children":[{"attributes":{"assignments":[1065]},"children":[{"attributes":{"constant":false,"name":"idx","scope":1158,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1064,"name":"ElementaryTypeName","src":"8124:4:3"}],"id":1065,"name":"VariableDeclaration","src":"8124:8:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1066,"name":"Literal","src":"8135:1:3"}],"id":1067,"name":"VariableDeclarationStatement","src":"8124:12:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1065,"type":"uint256","value":"idx"},"id":1068,"name":"Identifier","src":"8138:3:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1039,"type":"uint256","value":"shortest"},"id":1069,"name":"Identifier","src":"8144:8:3"}],"id":1070,"name":"BinaryOperation","src":"8138:14:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1065,"type":"uint256","value":"idx"},"id":1071,"name":"Identifier","src":"8154:3:3"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":1072,"name":"Literal","src":"8161:2:3"}],"id":1073,"name":"Assignment","src":"8154:9:3"}],"id":1074,"name":"ExpressionStatement","src":"8154:9:3"},{"children":[{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"a","scope":1158,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1075,"name":"ElementaryTypeName","src":"8179:4:3"}],"id":1076,"name":"VariableDeclaration","src":"8179:6:3"}],"id":1077,"name":"VariableDeclarationStatement","src":"8179:6:3"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"b","scope":1158,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1078,"name":"ElementaryTypeName","src":"8199:4:3"}],"id":1079,"name":"VariableDeclaration","src":"8199:6:3"}],"id":1080,"name":"VariableDeclarationStatement","src":"8199:6:3"},{"attributes":{"externalReferences":[{"selfptr":{"declaration":1055,"isOffset":false,"isSlot":false,"src":"8257:7:3","valueSize":1}},{"a":{"declaration":1076,"isOffset":false,"isSlot":false,"src":"8246:1:3","valueSize":1}},{"b":{"declaration":1079,"isOffset":false,"isSlot":false,"src":"8282:1:3","valueSize":1}},{"otherptr":{"declaration":1060,"isOffset":false,"isSlot":false,"src":"8293:8:3","valueSize":1}}],"operations":"{\n a := mload(selfptr)\n b := mload(otherptr)\n}"},"children":[],"id":1081,"name":"InlineAssembly","src":"8219:112:3"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1076,"type":"uint256","value":"a"},"id":1082,"name":"Identifier","src":"8333:1:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1079,"type":"uint256","value":"b"},"id":1083,"name":"Identifier","src":"8338:1:3"}],"id":1084,"name":"BinaryOperation","src":"8333:6:3"},{"children":[{"attributes":{"assignments":[1086]},"children":[{"attributes":{"constant":false,"name":"mask","scope":1158,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1085,"name":"ElementaryTypeName","src":"8420:7:3"}],"id":1086,"name":"VariableDeclaration","src":"8420:12:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_-1_by_1","typeString":"int_const -1"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint256"},"id":1087,"name":"ElementaryTypeNameExpression","src":"8435:7:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"-","prefix":true,"type":"int_const -1"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":1088,"name":"Literal","src":"8444:1:3"}],"id":1089,"name":"UnaryOperation","src":"8443:2:3"}],"id":1090,"name":"FunctionCall","src":"8435:11:3"}],"id":1091,"name":"VariableDeclarationStatement","src":"8420:26:3"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1039,"type":"uint256","value":"shortest"},"id":1092,"name":"Identifier","src":"8480:8:3"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":1093,"name":"Literal","src":"8491:2:3"}],"id":1094,"name":"BinaryOperation","src":"8480:13:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1086,"type":"uint256","value":"mask"},"id":1095,"name":"Identifier","src":"8515:4:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"~","prefix":true,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"**","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":1096,"name":"Literal","src":"8524:1:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"38","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 8","value":"8"},"id":1097,"name":"Literal","src":"8530:1:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":1098,"name":"Literal","src":"8535:2:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1039,"type":"uint256","value":"shortest"},"id":1099,"name":"Identifier","src":"8540:8:3"}],"id":1100,"name":"BinaryOperation","src":"8535:13:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1065,"type":"uint256","value":"idx"},"id":1101,"name":"Identifier","src":"8551:3:3"}],"id":1102,"name":"BinaryOperation","src":"8535:19:3"}],"id":1103,"name":"TupleExpression","src":"8534:21:3"}],"id":1104,"name":"BinaryOperation","src":"8530:25:3"}],"id":1105,"name":"TupleExpression","src":"8529:27:3"}],"id":1106,"name":"BinaryOperation","src":"8524:32:3"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":1107,"name":"Literal","src":"8559:1:3"}],"id":1108,"name":"BinaryOperation","src":"8524:36:3"}],"id":1109,"name":"TupleExpression","src":"8523:38:3"}],"id":1110,"name":"UnaryOperation","src":"8522:39:3"}],"id":1111,"name":"Assignment","src":"8515:46:3"}],"id":1112,"name":"ExpressionStatement","src":"8515:46:3"}],"id":1113,"name":"Block","src":"8495:85:3"}],"id":1114,"name":"IfStatement","src":"8477:103:3"},{"attributes":{"assignments":[1116]},"children":[{"attributes":{"constant":false,"name":"diff","scope":1158,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1115,"name":"ElementaryTypeName","src":"8597:7:3"}],"id":1116,"name":"VariableDeclaration","src":"8597:12:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1076,"type":"uint256","value":"a"},"id":1117,"name":"Identifier","src":"8613:1:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1086,"type":"uint256","value":"mask"},"id":1118,"name":"Identifier","src":"8617:4:3"}],"id":1119,"name":"BinaryOperation","src":"8613:8:3"}],"id":1120,"name":"TupleExpression","src":"8612:10:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1079,"type":"uint256","value":"b"},"id":1121,"name":"Identifier","src":"8626:1:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1086,"type":"uint256","value":"mask"},"id":1122,"name":"Identifier","src":"8630:4:3"}],"id":1123,"name":"BinaryOperation","src":"8626:8:3"}],"id":1124,"name":"TupleExpression","src":"8625:10:3"}],"id":1125,"name":"BinaryOperation","src":"8612:23:3"}],"id":1126,"name":"VariableDeclarationStatement","src":"8597:38:3"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1116,"type":"uint256","value":"diff"},"id":1127,"name":"Identifier","src":"8657:4:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1128,"name":"Literal","src":"8665:1:3"}],"id":1129,"name":"BinaryOperation","src":"8657:9:3"},{"attributes":{"functionReturnParameters":1037},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"int256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(int256)","value":"int"},"id":1130,"name":"ElementaryTypeNameExpression","src":"8695:3:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1116,"type":"uint256","value":"diff"},"id":1131,"name":"Identifier","src":"8699:4:3"}],"id":1132,"name":"FunctionCall","src":"8695:9:3"}],"id":1133,"name":"Return","src":"8688:16:3"}],"id":1134,"name":"IfStatement","src":"8653:51:3"}],"id":1135,"name":"Block","src":"8341:378:3"}],"id":1136,"name":"IfStatement","src":"8329:390:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1055,"type":"uint256","value":"selfptr"},"id":1137,"name":"Identifier","src":"8732:7:3"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":1138,"name":"Literal","src":"8743:2:3"}],"id":1139,"name":"Assignment","src":"8732:13:3"}],"id":1140,"name":"ExpressionStatement","src":"8732:13:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1060,"type":"uint256","value":"otherptr"},"id":1141,"name":"Identifier","src":"8759:8:3"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":1142,"name":"Literal","src":"8771:2:3"}],"id":1143,"name":"Assignment","src":"8759:14:3"}],"id":1144,"name":"ExpressionStatement","src":"8759:14:3"}],"id":1145,"name":"Block","src":"8165:619:3"}],"id":1146,"name":"ForStatement","src":"8119:665:3"},{"attributes":{"functionReturnParameters":1037},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"int256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"int256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(int256)","value":"int"},"id":1147,"name":"ElementaryTypeNameExpression","src":"8800:3:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":687,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1031,"type":"struct strings.slice memory","value":"self"},"id":1148,"name":"Identifier","src":"8804:4:3"}],"id":1149,"name":"MemberAccess","src":"8804:9:3"}],"id":1150,"name":"FunctionCall","src":"8800:14:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"int256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(int256)","value":"int"},"id":1151,"name":"ElementaryTypeNameExpression","src":"8817:3:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":687,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1033,"type":"struct strings.slice memory","value":"other"},"id":1152,"name":"Identifier","src":"8821:5:3"}],"id":1153,"name":"MemberAccess","src":"8821:10:3"}],"id":1154,"name":"FunctionCall","src":"8817:15:3"}],"id":1155,"name":"BinaryOperation","src":"8800:32:3"}],"id":1156,"name":"Return","src":"8793:39:3"}],"id":1157,"name":"Block","src":"7932:907:3"}],"id":1158,"name":"FunctionDefinition","src":"7848:991:3"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"equals","payable":false,"scope":2378,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":1175,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":690,"type":"struct strings.slice"},"id":1159,"name":"UserDefinedTypeName","src":"9099:5:3"}],"id":1160,"name":"VariableDeclaration","src":"9099:17:3"},{"attributes":{"constant":false,"name":"other","scope":1175,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":690,"type":"struct strings.slice"},"id":1161,"name":"UserDefinedTypeName","src":"9118:5:3"}],"id":1162,"name":"VariableDeclaration","src":"9118:18:3"}],"id":1163,"name":"ParameterList","src":"9098:39:3"},{"children":[{"attributes":{"constant":false,"name":"","scope":1175,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":1164,"name":"ElementaryTypeName","src":"9161:4:3"}],"id":1165,"name":"VariableDeclaration","src":"9161:4:3"}],"id":1166,"name":"ParameterList","src":"9160:6:3"},{"children":[{"attributes":{"functionReturnParameters":1166},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"int256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$690_memory_ptr","typeString":"struct strings.slice memory"},{"typeIdentifier":"t_struct$_slice_$690_memory_ptr","typeString":"struct strings.slice memory"}],"overloadedDeclarations":[null],"referencedDeclaration":1158,"type":"function (struct strings.slice memory,struct strings.slice memory) pure returns (int256)","value":"compare"},"id":1167,"name":"Identifier","src":"9184:7:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1160,"type":"struct strings.slice memory","value":"self"},"id":1168,"name":"Identifier","src":"9192:4:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1162,"type":"struct strings.slice memory","value":"other"},"id":1169,"name":"Identifier","src":"9198:5:3"}],"id":1170,"name":"FunctionCall","src":"9184:20:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1171,"name":"Literal","src":"9208:1:3"}],"id":1172,"name":"BinaryOperation","src":"9184:25:3"}],"id":1173,"name":"Return","src":"9177:32:3"}],"id":1174,"name":"Block","src":"9167:49:3"}],"id":1175,"name":"FunctionDefinition","src":"9083:133:3"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"nextRune","payable":false,"scope":2378,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":1293,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":690,"type":"struct strings.slice"},"id":1176,"name":"UserDefinedTypeName","src":"9527:5:3"}],"id":1177,"name":"VariableDeclaration","src":"9527:17:3"},{"attributes":{"constant":false,"name":"rune","scope":1293,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":690,"type":"struct strings.slice"},"id":1178,"name":"UserDefinedTypeName","src":"9546:5:3"}],"id":1179,"name":"VariableDeclaration","src":"9546:17:3"}],"id":1180,"name":"ParameterList","src":"9526:38:3"},{"children":[{"attributes":{"constant":false,"name":"","scope":1293,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":690,"type":"struct strings.slice"},"id":1181,"name":"UserDefinedTypeName","src":"9588:5:3"}],"id":1182,"name":"VariableDeclaration","src":"9588:5:3"}],"id":1183,"name":"ParameterList","src":"9587:14:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_ptr","referencedDeclaration":689,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1179,"type":"struct strings.slice memory","value":"rune"},"id":1184,"name":"Identifier","src":"9612:4:3"}],"id":1186,"name":"MemberAccess","src":"9612:9:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":689,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1177,"type":"struct strings.slice memory","value":"self"},"id":1187,"name":"Identifier","src":"9624:4:3"}],"id":1188,"name":"MemberAccess","src":"9624:9:3"}],"id":1189,"name":"Assignment","src":"9612:21:3"}],"id":1190,"name":"ExpressionStatement","src":"9612:21:3"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":687,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1177,"type":"struct strings.slice memory","value":"self"},"id":1191,"name":"Identifier","src":"9648:4:3"}],"id":1192,"name":"MemberAccess","src":"9648:9:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1193,"name":"Literal","src":"9661:1:3"}],"id":1194,"name":"BinaryOperation","src":"9648:14:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":687,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1179,"type":"struct strings.slice memory","value":"rune"},"id":1195,"name":"Identifier","src":"9678:4:3"}],"id":1197,"name":"MemberAccess","src":"9678:9:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1198,"name":"Literal","src":"9690:1:3"}],"id":1199,"name":"Assignment","src":"9678:13:3"}],"id":1200,"name":"ExpressionStatement","src":"9678:13:3"},{"attributes":{"functionReturnParameters":1183},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1179,"type":"struct strings.slice memory","value":"rune"},"id":1201,"name":"Identifier","src":"9712:4:3"}],"id":1202,"name":"Return","src":"9705:11:3"}],"id":1203,"name":"Block","src":"9664:63:3"}],"id":1204,"name":"IfStatement","src":"9644:83:3"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"l","scope":1293,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1205,"name":"ElementaryTypeName","src":"9737:4:3"}],"id":1206,"name":"VariableDeclaration","src":"9737:6:3"}],"id":1207,"name":"VariableDeclarationStatement","src":"9737:6:3"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"b","scope":1293,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1208,"name":"ElementaryTypeName","src":"9753:4:3"}],"id":1209,"name":"VariableDeclaration","src":"9753:6:3"}],"id":1210,"name":"VariableDeclarationStatement","src":"9753:6:3"},{"attributes":{"externalReferences":[{"b":{"declaration":1209,"isOffset":false,"isSlot":false,"src":"9842:1:3","valueSize":1}},{"self":{"declaration":1177,"isOffset":false,"isSlot":false,"src":"9871:4:3","valueSize":1}}],"operations":"{\n b := and(mload(sub(mload(add(self, 32)), 31)), 0xFF)\n}"},"children":[],"id":1211,"name":"InlineAssembly","src":"9831:76:3"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1209,"type":"uint256","value":"b"},"id":1212,"name":"Identifier","src":"9909:1:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30783830","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 128","value":"0x80"},"id":1213,"name":"Literal","src":"9913:4:3"}],"id":1214,"name":"BinaryOperation","src":"9909:8:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1206,"type":"uint256","value":"l"},"id":1215,"name":"Identifier","src":"9933:1:3"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":1216,"name":"Literal","src":"9937:1:3"}],"id":1217,"name":"Assignment","src":"9933:5:3"}],"id":1218,"name":"ExpressionStatement","src":"9933:5:3"}],"id":1219,"name":"Block","src":"9919:30:3"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1209,"type":"uint256","value":"b"},"id":1220,"name":"Identifier","src":"9958:1:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30784530","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 224","value":"0xE0"},"id":1221,"name":"Literal","src":"9962:4:3"}],"id":1222,"name":"BinaryOperation","src":"9958:8:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1206,"type":"uint256","value":"l"},"id":1223,"name":"Identifier","src":"9982:1:3"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":1224,"name":"Literal","src":"9986:1:3"}],"id":1225,"name":"Assignment","src":"9982:5:3"}],"id":1226,"name":"ExpressionStatement","src":"9982:5:3"}],"id":1227,"name":"Block","src":"9968:30:3"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1209,"type":"uint256","value":"b"},"id":1228,"name":"Identifier","src":"10007:1:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30784630","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 240","value":"0xF0"},"id":1229,"name":"Literal","src":"10011:4:3"}],"id":1230,"name":"BinaryOperation","src":"10007:8:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1206,"type":"uint256","value":"l"},"id":1231,"name":"Identifier","src":"10031:1:3"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":1232,"name":"Literal","src":"10035:1:3"}],"id":1233,"name":"Assignment","src":"10031:5:3"}],"id":1234,"name":"ExpressionStatement","src":"10031:5:3"}],"id":1235,"name":"Block","src":"10017:30:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1206,"type":"uint256","value":"l"},"id":1236,"name":"Identifier","src":"10067:1:3"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":1237,"name":"Literal","src":"10071:1:3"}],"id":1238,"name":"Assignment","src":"10067:5:3"}],"id":1239,"name":"ExpressionStatement","src":"10067:5:3"}],"id":1240,"name":"Block","src":"10053:30:3"}],"id":1241,"name":"IfStatement","src":"10004:79:3"}],"id":1242,"name":"IfStatement","src":"9955:128:3"}],"id":1243,"name":"IfStatement","src":"9905:178:3"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1206,"type":"uint256","value":"l"},"id":1244,"name":"Identifier","src":"10139:1:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":687,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1177,"type":"struct strings.slice memory","value":"self"},"id":1245,"name":"Identifier","src":"10143:4:3"}],"id":1246,"name":"MemberAccess","src":"10143:9:3"}],"id":1247,"name":"BinaryOperation","src":"10139:13:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":687,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1179,"type":"struct strings.slice memory","value":"rune"},"id":1248,"name":"Identifier","src":"10168:4:3"}],"id":1250,"name":"MemberAccess","src":"10168:9:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":687,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1177,"type":"struct strings.slice memory","value":"self"},"id":1251,"name":"Identifier","src":"10180:4:3"}],"id":1252,"name":"MemberAccess","src":"10180:9:3"}],"id":1253,"name":"Assignment","src":"10168:21:3"}],"id":1254,"name":"ExpressionStatement","src":"10168:21:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_ptr","referencedDeclaration":689,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1177,"type":"struct strings.slice memory","value":"self"},"id":1255,"name":"Identifier","src":"10203:4:3"}],"id":1257,"name":"MemberAccess","src":"10203:9:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":687,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1177,"type":"struct strings.slice memory","value":"self"},"id":1258,"name":"Identifier","src":"10216:4:3"}],"id":1259,"name":"MemberAccess","src":"10216:9:3"}],"id":1260,"name":"Assignment","src":"10203:22:3"}],"id":1261,"name":"ExpressionStatement","src":"10203:22:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":687,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1177,"type":"struct strings.slice memory","value":"self"},"id":1262,"name":"Identifier","src":"10239:4:3"}],"id":1264,"name":"MemberAccess","src":"10239:9:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1265,"name":"Literal","src":"10251:1:3"}],"id":1266,"name":"Assignment","src":"10239:13:3"}],"id":1267,"name":"ExpressionStatement","src":"10239:13:3"},{"attributes":{"functionReturnParameters":1183},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1179,"type":"struct strings.slice memory","value":"rune"},"id":1268,"name":"Identifier","src":"10273:4:3"}],"id":1269,"name":"Return","src":"10266:11:3"}],"id":1270,"name":"Block","src":"10154:134:3"}],"id":1271,"name":"IfStatement","src":"10135:153:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_ptr","referencedDeclaration":689,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1177,"type":"struct strings.slice memory","value":"self"},"id":1272,"name":"Identifier","src":"10298:4:3"}],"id":1274,"name":"MemberAccess","src":"10298:9:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1206,"type":"uint256","value":"l"},"id":1275,"name":"Identifier","src":"10311:1:3"}],"id":1276,"name":"Assignment","src":"10298:14:3"}],"id":1277,"name":"ExpressionStatement","src":"10298:14:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":687,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1177,"type":"struct strings.slice memory","value":"self"},"id":1278,"name":"Identifier","src":"10322:4:3"}],"id":1280,"name":"MemberAccess","src":"10322:9:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1206,"type":"uint256","value":"l"},"id":1281,"name":"Identifier","src":"10335:1:3"}],"id":1282,"name":"Assignment","src":"10322:14:3"}],"id":1283,"name":"ExpressionStatement","src":"10322:14:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":687,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1179,"type":"struct strings.slice memory","value":"rune"},"id":1284,"name":"Identifier","src":"10346:4:3"}],"id":1286,"name":"MemberAccess","src":"10346:9:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1206,"type":"uint256","value":"l"},"id":1287,"name":"Identifier","src":"10358:1:3"}],"id":1288,"name":"Assignment","src":"10346:13:3"}],"id":1289,"name":"ExpressionStatement","src":"10346:13:3"},{"attributes":{"functionReturnParameters":1183},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1179,"type":"struct strings.slice memory","value":"rune"},"id":1290,"name":"Identifier","src":"10376:4:3"}],"id":1291,"name":"Return","src":"10369:11:3"}],"id":1292,"name":"Block","src":"9602:785:3"}],"id":1293,"name":"FunctionDefinition","src":"9509:878:3"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"nextRune","payable":false,"scope":2378,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":1306,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":690,"type":"struct strings.slice"},"id":1294,"name":"UserDefinedTypeName","src":"10645:5:3"}],"id":1295,"name":"VariableDeclaration","src":"10645:17:3"}],"id":1296,"name":"ParameterList","src":"10644:19:3"},{"children":[{"attributes":{"constant":false,"name":"ret","scope":1306,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":690,"type":"struct strings.slice"},"id":1297,"name":"UserDefinedTypeName","src":"10687:5:3"}],"id":1298,"name":"VariableDeclaration","src":"10687:16:3"}],"id":1299,"name":"ParameterList","src":"10686:18:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"struct strings.slice memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$690_memory_ptr","typeString":"struct strings.slice memory"},{"typeIdentifier":"t_struct$_slice_$690_memory_ptr","typeString":"struct strings.slice memory"}],"overloadedDeclarations":[1293,1306],"referencedDeclaration":1293,"type":"function (struct strings.slice memory,struct strings.slice memory) pure returns (struct strings.slice memory)","value":"nextRune"},"id":1300,"name":"Identifier","src":"10715:8:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1295,"type":"struct strings.slice memory","value":"self"},"id":1301,"name":"Identifier","src":"10724:4:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1298,"type":"struct strings.slice memory","value":"ret"},"id":1302,"name":"Identifier","src":"10730:3:3"}],"id":1303,"name":"FunctionCall","src":"10715:19:3"}],"id":1304,"name":"ExpressionStatement","src":"10715:19:3"}],"id":1305,"name":"Block","src":"10705:36:3"}],"id":1306,"name":"FunctionDefinition","src":"10627:114:3"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"ord","payable":false,"scope":2378,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":1453,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":690,"type":"struct strings.slice"},"id":1307,"name":"UserDefinedTypeName","src":"10950:5:3"}],"id":1308,"name":"VariableDeclaration","src":"10950:17:3"}],"id":1309,"name":"ParameterList","src":"10949:19:3"},{"children":[{"attributes":{"constant":false,"name":"ret","scope":1453,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1310,"name":"ElementaryTypeName","src":"10992:4:3"}],"id":1311,"name":"VariableDeclaration","src":"10992:8:3"}],"id":1312,"name":"ParameterList","src":"10991:10:3"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":687,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1308,"type":"struct strings.slice memory","value":"self"},"id":1313,"name":"Identifier","src":"11016:4:3"}],"id":1314,"name":"MemberAccess","src":"11016:9:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1315,"name":"Literal","src":"11029:1:3"}],"id":1316,"name":"BinaryOperation","src":"11016:14:3"},{"children":[{"attributes":{"functionReturnParameters":1312},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1317,"name":"Literal","src":"11053:1:3"}],"id":1318,"name":"Return","src":"11046:8:3"}],"id":1319,"name":"Block","src":"11032:33:3"}],"id":1320,"name":"IfStatement","src":"11012:53:3"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"word","scope":1453,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1321,"name":"ElementaryTypeName","src":"11075:4:3"}],"id":1322,"name":"VariableDeclaration","src":"11075:9:3"}],"id":1323,"name":"VariableDeclarationStatement","src":"11075:9:3"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"length","scope":1453,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1324,"name":"ElementaryTypeName","src":"11094:4:3"}],"id":1325,"name":"VariableDeclaration","src":"11094:11:3"}],"id":1326,"name":"VariableDeclarationStatement","src":"11094:11:3"},{"attributes":{"assignments":[1328]},"children":[{"attributes":{"constant":false,"name":"divisor","scope":1453,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1327,"name":"ElementaryTypeName","src":"11115:4:3"}],"id":1328,"name":"VariableDeclaration","src":"11115:12:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_452312848583266388373324160190187140051835877600158453279131187530910662656_by_1","typeString":"int_const 4523...(67 digits omitted)...2656"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"**","type":"int_const 4523...(67 digits omitted)...2656"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":1329,"name":"Literal","src":"11130:1:3"},{"attributes":{"argumentTypes":null,"hexvalue":"323438","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 248","value":"248"},"id":1330,"name":"Literal","src":"11135:3:3"}],"id":1331,"name":"BinaryOperation","src":"11130:8:3"}],"id":1332,"name":"VariableDeclarationStatement","src":"11115:23:3"},{"attributes":{"externalReferences":[{"word":{"declaration":1322,"isOffset":false,"isSlot":false,"src":"11204:4:3","valueSize":1}},{"self":{"declaration":1308,"isOffset":false,"isSlot":false,"src":"11227:4:3","valueSize":1}}],"operations":"{\n word := mload(mload(add(self, 32)))\n}"},"children":[],"id":1333,"name":"InlineAssembly","src":"11193:60:3"},{"attributes":{"assignments":[1335]},"children":[{"attributes":{"constant":false,"name":"b","scope":1453,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1334,"name":"ElementaryTypeName","src":"11249:4:3"}],"id":1335,"name":"VariableDeclaration","src":"11249:6:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"/","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1322,"type":"uint256","value":"word"},"id":1336,"name":"Identifier","src":"11258:4:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1328,"type":"uint256","value":"divisor"},"id":1337,"name":"Identifier","src":"11265:7:3"}],"id":1338,"name":"BinaryOperation","src":"11258:14:3"}],"id":1339,"name":"VariableDeclarationStatement","src":"11249:23:3"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1335,"type":"uint256","value":"b"},"id":1340,"name":"Identifier","src":"11286:1:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30783830","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 128","value":"0x80"},"id":1341,"name":"Literal","src":"11290:4:3"}],"id":1342,"name":"BinaryOperation","src":"11286:8:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1311,"type":"uint256","value":"ret"},"id":1343,"name":"Identifier","src":"11310:3:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1335,"type":"uint256","value":"b"},"id":1344,"name":"Identifier","src":"11316:1:3"}],"id":1345,"name":"Assignment","src":"11310:7:3"}],"id":1346,"name":"ExpressionStatement","src":"11310:7:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1325,"type":"uint256","value":"length"},"id":1347,"name":"Identifier","src":"11331:6:3"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":1348,"name":"Literal","src":"11340:1:3"}],"id":1349,"name":"Assignment","src":"11331:10:3"}],"id":1350,"name":"ExpressionStatement","src":"11331:10:3"}],"id":1351,"name":"Block","src":"11296:56:3"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1335,"type":"uint256","value":"b"},"id":1352,"name":"Identifier","src":"11361:1:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30784530","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 224","value":"0xE0"},"id":1353,"name":"Literal","src":"11365:4:3"}],"id":1354,"name":"BinaryOperation","src":"11361:8:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1311,"type":"uint256","value":"ret"},"id":1355,"name":"Identifier","src":"11385:3:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1335,"type":"uint256","value":"b"},"id":1356,"name":"Identifier","src":"11391:1:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30783146","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 31","value":"0x1F"},"id":1357,"name":"Literal","src":"11395:4:3"}],"id":1358,"name":"BinaryOperation","src":"11391:8:3"}],"id":1359,"name":"Assignment","src":"11385:14:3"}],"id":1360,"name":"ExpressionStatement","src":"11385:14:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1325,"type":"uint256","value":"length"},"id":1361,"name":"Identifier","src":"11413:6:3"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":1362,"name":"Literal","src":"11422:1:3"}],"id":1363,"name":"Assignment","src":"11413:10:3"}],"id":1364,"name":"ExpressionStatement","src":"11413:10:3"}],"id":1365,"name":"Block","src":"11371:63:3"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1335,"type":"uint256","value":"b"},"id":1366,"name":"Identifier","src":"11443:1:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30784630","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 240","value":"0xF0"},"id":1367,"name":"Literal","src":"11447:4:3"}],"id":1368,"name":"BinaryOperation","src":"11443:8:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1311,"type":"uint256","value":"ret"},"id":1369,"name":"Identifier","src":"11467:3:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1335,"type":"uint256","value":"b"},"id":1370,"name":"Identifier","src":"11473:1:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30783046","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 15","value":"0x0F"},"id":1371,"name":"Literal","src":"11477:4:3"}],"id":1372,"name":"BinaryOperation","src":"11473:8:3"}],"id":1373,"name":"Assignment","src":"11467:14:3"}],"id":1374,"name":"ExpressionStatement","src":"11467:14:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1325,"type":"uint256","value":"length"},"id":1375,"name":"Identifier","src":"11495:6:3"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":1376,"name":"Literal","src":"11504:1:3"}],"id":1377,"name":"Assignment","src":"11495:10:3"}],"id":1378,"name":"ExpressionStatement","src":"11495:10:3"}],"id":1379,"name":"Block","src":"11453:63:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1311,"type":"uint256","value":"ret"},"id":1380,"name":"Identifier","src":"11536:3:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1335,"type":"uint256","value":"b"},"id":1381,"name":"Identifier","src":"11542:1:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30783037","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 7","value":"0x07"},"id":1382,"name":"Literal","src":"11546:4:3"}],"id":1383,"name":"BinaryOperation","src":"11542:8:3"}],"id":1384,"name":"Assignment","src":"11536:14:3"}],"id":1385,"name":"ExpressionStatement","src":"11536:14:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1325,"type":"uint256","value":"length"},"id":1386,"name":"Identifier","src":"11564:6:3"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":1387,"name":"Literal","src":"11573:1:3"}],"id":1388,"name":"Assignment","src":"11564:10:3"}],"id":1389,"name":"ExpressionStatement","src":"11564:10:3"}],"id":1390,"name":"Block","src":"11522:63:3"}],"id":1391,"name":"IfStatement","src":"11440:145:3"}],"id":1392,"name":"IfStatement","src":"11358:227:3"}],"id":1393,"name":"IfStatement","src":"11282:303:3"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1325,"type":"uint256","value":"length"},"id":1394,"name":"Identifier","src":"11641:6:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":687,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1308,"type":"struct strings.slice memory","value":"self"},"id":1395,"name":"Identifier","src":"11650:4:3"}],"id":1396,"name":"MemberAccess","src":"11650:9:3"}],"id":1397,"name":"BinaryOperation","src":"11641:18:3"},{"children":[{"attributes":{"functionReturnParameters":1312},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1398,"name":"Literal","src":"11682:1:3"}],"id":1399,"name":"Return","src":"11675:8:3"}],"id":1400,"name":"Block","src":"11661:33:3"}],"id":1401,"name":"IfStatement","src":"11637:57:3"},{"children":[{"attributes":{"assignments":[1403]},"children":[{"attributes":{"constant":false,"name":"i","scope":1453,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1402,"name":"ElementaryTypeName","src":"11709:4:3"}],"id":1403,"name":"VariableDeclaration","src":"11709:6:3"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":1404,"name":"Literal","src":"11718:1:3"}],"id":1405,"name":"VariableDeclarationStatement","src":"11709:10:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1403,"type":"uint256","value":"i"},"id":1406,"name":"Identifier","src":"11721:1:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1325,"type":"uint256","value":"length"},"id":1407,"name":"Identifier","src":"11725:6:3"}],"id":1408,"name":"BinaryOperation","src":"11721:10:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1403,"type":"uint256","value":"i"},"id":1409,"name":"Identifier","src":"11733:1:3"}],"id":1410,"name":"UnaryOperation","src":"11733:3:3"}],"id":1411,"name":"ExpressionStatement","src":"11733:3:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1328,"type":"uint256","value":"divisor"},"id":1412,"name":"Identifier","src":"11752:7:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"/","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1328,"type":"uint256","value":"divisor"},"id":1413,"name":"Identifier","src":"11762:7:3"},{"attributes":{"argumentTypes":null,"hexvalue":"323536","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 256","value":"256"},"id":1414,"name":"Literal","src":"11772:3:3"}],"id":1415,"name":"BinaryOperation","src":"11762:13:3"}],"id":1416,"name":"Assignment","src":"11752:23:3"}],"id":1417,"name":"ExpressionStatement","src":"11752:23:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1335,"type":"uint256","value":"b"},"id":1418,"name":"Identifier","src":"11789:1:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"/","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1322,"type":"uint256","value":"word"},"id":1419,"name":"Identifier","src":"11794:4:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1328,"type":"uint256","value":"divisor"},"id":1420,"name":"Identifier","src":"11801:7:3"}],"id":1421,"name":"BinaryOperation","src":"11794:14:3"}],"id":1422,"name":"TupleExpression","src":"11793:16:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30784646","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 255","value":"0xFF"},"id":1423,"name":"Literal","src":"11812:4:3"}],"id":1424,"name":"BinaryOperation","src":"11793:23:3"}],"id":1425,"name":"Assignment","src":"11789:27:3"}],"id":1426,"name":"ExpressionStatement","src":"11789:27:3"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1335,"type":"uint256","value":"b"},"id":1427,"name":"Identifier","src":"11834:1:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30784330","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 192","value":"0xC0"},"id":1428,"name":"Literal","src":"11838:4:3"}],"id":1429,"name":"BinaryOperation","src":"11834:8:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30783830","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 128","value":"0x80"},"id":1430,"name":"Literal","src":"11846:4:3"}],"id":1431,"name":"BinaryOperation","src":"11834:16:3"},{"children":[{"attributes":{"functionReturnParameters":1312},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1432,"name":"Literal","src":"11919:1:3"}],"id":1433,"name":"Return","src":"11912:8:3"}],"id":1434,"name":"Block","src":"11852:83:3"}],"id":1435,"name":"IfStatement","src":"11830:105:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1311,"type":"uint256","value":"ret"},"id":1436,"name":"Identifier","src":"11948:3:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"|","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1311,"type":"uint256","value":"ret"},"id":1437,"name":"Identifier","src":"11955:3:3"},{"attributes":{"argumentTypes":null,"hexvalue":"3634","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 64","value":"64"},"id":1438,"name":"Literal","src":"11961:2:3"}],"id":1439,"name":"BinaryOperation","src":"11955:8:3"}],"id":1440,"name":"TupleExpression","src":"11954:10:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1335,"type":"uint256","value":"b"},"id":1441,"name":"Identifier","src":"11968:1:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30783346","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 63","value":"0x3F"},"id":1442,"name":"Literal","src":"11972:4:3"}],"id":1443,"name":"BinaryOperation","src":"11968:8:3"}],"id":1444,"name":"TupleExpression","src":"11967:10:3"}],"id":1445,"name":"BinaryOperation","src":"11954:23:3"}],"id":1446,"name":"Assignment","src":"11948:29:3"}],"id":1447,"name":"ExpressionStatement","src":"11948:29:3"}],"id":1448,"name":"Block","src":"11738:250:3"}],"id":1449,"name":"ForStatement","src":"11704:284:3"},{"attributes":{"functionReturnParameters":1312},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1311,"type":"uint256","value":"ret"},"id":1450,"name":"Identifier","src":"12005:3:3"}],"id":1451,"name":"Return","src":"11998:10:3"}],"id":1452,"name":"Block","src":"11002:1013:3"}],"id":1453,"name":"FunctionDefinition","src":"10937:1078:3"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"keccak","payable":false,"scope":2378,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":1462,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":690,"type":"struct strings.slice"},"id":1454,"name":"UserDefinedTypeName","src":"12182:5:3"}],"id":1455,"name":"VariableDeclaration","src":"12182:17:3"}],"id":1456,"name":"ParameterList","src":"12181:19:3"},{"children":[{"attributes":{"constant":false,"name":"ret","scope":1462,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":1457,"name":"ElementaryTypeName","src":"12224:7:3"}],"id":1458,"name":"VariableDeclaration","src":"12224:11:3"}],"id":1459,"name":"ParameterList","src":"12223:13:3"},{"children":[{"attributes":{"externalReferences":[{"ret":{"declaration":1458,"isOffset":false,"isSlot":false,"src":"12270:3:3","valueSize":1}},{"self":{"declaration":1455,"isOffset":false,"isSlot":false,"src":"12297:4:3","valueSize":1}},{"self":{"declaration":1455,"isOffset":false,"isSlot":false,"src":"12315:4:3","valueSize":1}}],"operations":"{\n ret := keccak256(mload(add(self, 32)), mload(self))\n}"},"children":[],"id":1460,"name":"InlineAssembly","src":"12247:90:3"}],"id":1461,"name":"Block","src":"12237:100:3"}],"id":1462,"name":"FunctionDefinition","src":"12166:171:3"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"startsWith","payable":false,"scope":2378,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":1496,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":690,"type":"struct strings.slice"},"id":1463,"name":"UserDefinedTypeName","src":"12606:5:3"}],"id":1464,"name":"VariableDeclaration","src":"12606:17:3"},{"attributes":{"constant":false,"name":"needle","scope":1496,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":690,"type":"struct strings.slice"},"id":1465,"name":"UserDefinedTypeName","src":"12625:5:3"}],"id":1466,"name":"VariableDeclaration","src":"12625:19:3"}],"id":1467,"name":"ParameterList","src":"12605:40:3"},{"children":[{"attributes":{"constant":false,"name":"","scope":1496,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":1468,"name":"ElementaryTypeName","src":"12669:4:3"}],"id":1469,"name":"VariableDeclaration","src":"12669:4:3"}],"id":1470,"name":"ParameterList","src":"12668:6:3"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":687,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1464,"type":"struct strings.slice memory","value":"self"},"id":1471,"name":"Identifier","src":"12689:4:3"}],"id":1472,"name":"MemberAccess","src":"12689:9:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":687,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1466,"type":"struct strings.slice memory","value":"needle"},"id":1473,"name":"Identifier","src":"12701:6:3"}],"id":1474,"name":"MemberAccess","src":"12701:11:3"}],"id":1475,"name":"BinaryOperation","src":"12689:23:3"},{"children":[{"attributes":{"functionReturnParameters":1470},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"66616c7365","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"false"},"id":1476,"name":"Literal","src":"12735:5:3"}],"id":1477,"name":"Return","src":"12728:12:3"}],"id":1478,"name":"Block","src":"12714:37:3"}],"id":1479,"name":"IfStatement","src":"12685:66:3"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":689,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1464,"type":"struct strings.slice memory","value":"self"},"id":1480,"name":"Identifier","src":"12765:4:3"}],"id":1481,"name":"MemberAccess","src":"12765:9:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":689,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1466,"type":"struct strings.slice memory","value":"needle"},"id":1482,"name":"Identifier","src":"12778:6:3"}],"id":1483,"name":"MemberAccess","src":"12778:11:3"}],"id":1484,"name":"BinaryOperation","src":"12765:24:3"},{"children":[{"attributes":{"functionReturnParameters":1470},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":1485,"name":"Literal","src":"12812:4:3"}],"id":1486,"name":"Return","src":"12805:11:3"}],"id":1487,"name":"Block","src":"12791:36:3"}],"id":1488,"name":"IfStatement","src":"12761:66:3"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"equal","scope":1496,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":1489,"name":"ElementaryTypeName","src":"12837:4:3"}],"id":1490,"name":"VariableDeclaration","src":"12837:10:3"}],"id":1491,"name":"VariableDeclarationStatement","src":"12837:10:3"},{"attributes":{"externalReferences":[{"needle":{"declaration":1466,"isOffset":false,"isSlot":false,"src":"12900:6:3","valueSize":1}},{"self":{"declaration":1464,"isOffset":false,"isSlot":false,"src":"12945:4:3","valueSize":1}},{"needle":{"declaration":1466,"isOffset":false,"isSlot":false,"src":"12997:6:3","valueSize":1}},{"equal":{"declaration":1490,"isOffset":false,"isSlot":false,"src":"13024:5:3","valueSize":1}}],"operations":"{\n let length := mload(needle)\n let selfptr := mload(add(self, 0x20))\n let needleptr := mload(add(needle, 0x20))\n equal := eq(keccak256(selfptr, length), keccak256(needleptr, length))\n}"},"children":[],"id":1492,"name":"InlineAssembly","src":"12857:261:3"},{"attributes":{"functionReturnParameters":1470},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1490,"type":"bool","value":"equal"},"id":1493,"name":"Identifier","src":"13119:5:3"}],"id":1494,"name":"Return","src":"13112:12:3"}],"id":1495,"name":"Block","src":"12675:456:3"}],"id":1496,"name":"FunctionDefinition","src":"12586:545:3"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"beyond","payable":false,"scope":2378,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":1546,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":690,"type":"struct strings.slice"},"id":1497,"name":"UserDefinedTypeName","src":"13419:5:3"}],"id":1498,"name":"VariableDeclaration","src":"13419:17:3"},{"attributes":{"constant":false,"name":"needle","scope":1546,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":690,"type":"struct strings.slice"},"id":1499,"name":"UserDefinedTypeName","src":"13438:5:3"}],"id":1500,"name":"VariableDeclaration","src":"13438:19:3"}],"id":1501,"name":"ParameterList","src":"13418:40:3"},{"children":[{"attributes":{"constant":false,"name":"","scope":1546,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":690,"type":"struct strings.slice"},"id":1502,"name":"UserDefinedTypeName","src":"13482:5:3"}],"id":1503,"name":"VariableDeclaration","src":"13482:5:3"}],"id":1504,"name":"ParameterList","src":"13481:14:3"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":687,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1498,"type":"struct strings.slice memory","value":"self"},"id":1505,"name":"Identifier","src":"13510:4:3"}],"id":1506,"name":"MemberAccess","src":"13510:9:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":687,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1500,"type":"struct strings.slice memory","value":"needle"},"id":1507,"name":"Identifier","src":"13522:6:3"}],"id":1508,"name":"MemberAccess","src":"13522:11:3"}],"id":1509,"name":"BinaryOperation","src":"13510:23:3"},{"children":[{"attributes":{"functionReturnParameters":1504},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1498,"type":"struct strings.slice memory","value":"self"},"id":1510,"name":"Identifier","src":"13556:4:3"}],"id":1511,"name":"Return","src":"13549:11:3"}],"id":1512,"name":"Block","src":"13535:36:3"}],"id":1513,"name":"IfStatement","src":"13506:65:3"},{"attributes":{"assignments":[1515]},"children":[{"attributes":{"constant":false,"name":"equal","scope":1546,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":1514,"name":"ElementaryTypeName","src":"13581:4:3"}],"id":1515,"name":"VariableDeclaration","src":"13581:10:3"},{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":1516,"name":"Literal","src":"13594:4:3"}],"id":1517,"name":"VariableDeclarationStatement","src":"13581:17:3"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":689,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1498,"type":"struct strings.slice memory","value":"self"},"id":1518,"name":"Identifier","src":"13612:4:3"}],"id":1519,"name":"MemberAccess","src":"13612:9:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":689,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1500,"type":"struct strings.slice memory","value":"needle"},"id":1520,"name":"Identifier","src":"13625:6:3"}],"id":1521,"name":"MemberAccess","src":"13625:11:3"}],"id":1522,"name":"BinaryOperation","src":"13612:24:3"},{"children":[{"attributes":{"externalReferences":[{"needle":{"declaration":1500,"isOffset":false,"isSlot":false,"src":"13699:6:3","valueSize":1}},{"self":{"declaration":1498,"isOffset":false,"isSlot":false,"src":"13748:4:3","valueSize":1}},{"needle":{"declaration":1500,"isOffset":false,"isSlot":false,"src":"13804:6:3","valueSize":1}},{"equal":{"declaration":1515,"isOffset":false,"isSlot":false,"src":"13835:5:3","valueSize":1}}],"operations":"{\n let length := mload(needle)\n let selfptr := mload(add(self, 0x20))\n let needleptr := mload(add(needle, 0x20))\n equal := eq(keccak256(selfptr, length), keccak256(needleptr, length))\n}"},"children":[],"id":1523,"name":"InlineAssembly","src":"13652:276:3"}],"id":1524,"name":"Block","src":"13638:290:3"}],"id":1525,"name":"IfStatement","src":"13608:320:3"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1515,"type":"bool","value":"equal"},"id":1526,"name":"Identifier","src":"13942:5:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":687,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1498,"type":"struct strings.slice memory","value":"self"},"id":1527,"name":"Identifier","src":"13963:4:3"}],"id":1529,"name":"MemberAccess","src":"13963:9:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":687,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1500,"type":"struct strings.slice memory","value":"needle"},"id":1530,"name":"Identifier","src":"13976:6:3"}],"id":1531,"name":"MemberAccess","src":"13976:11:3"}],"id":1532,"name":"Assignment","src":"13963:24:3"}],"id":1533,"name":"ExpressionStatement","src":"13963:24:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_ptr","referencedDeclaration":689,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1498,"type":"struct strings.slice memory","value":"self"},"id":1534,"name":"Identifier","src":"14001:4:3"}],"id":1536,"name":"MemberAccess","src":"14001:9:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":687,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1500,"type":"struct strings.slice memory","value":"needle"},"id":1537,"name":"Identifier","src":"14014:6:3"}],"id":1538,"name":"MemberAccess","src":"14014:11:3"}],"id":1539,"name":"Assignment","src":"14001:24:3"}],"id":1540,"name":"ExpressionStatement","src":"14001:24:3"}],"id":1541,"name":"Block","src":"13949:87:3"}],"id":1542,"name":"IfStatement","src":"13938:98:3"},{"attributes":{"functionReturnParameters":1504},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1498,"type":"struct strings.slice memory","value":"self"},"id":1543,"name":"Identifier","src":"14053:4:3"}],"id":1544,"name":"Return","src":"14046:11:3"}],"id":1545,"name":"Block","src":"13496:568:3"}],"id":1546,"name":"FunctionDefinition","src":"13403:661:3"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"endsWith","payable":false,"scope":2378,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":1590,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":690,"type":"struct strings.slice"},"id":1547,"name":"UserDefinedTypeName","src":"14332:5:3"}],"id":1548,"name":"VariableDeclaration","src":"14332:17:3"},{"attributes":{"constant":false,"name":"needle","scope":1590,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":690,"type":"struct strings.slice"},"id":1549,"name":"UserDefinedTypeName","src":"14351:5:3"}],"id":1550,"name":"VariableDeclaration","src":"14351:19:3"}],"id":1551,"name":"ParameterList","src":"14331:40:3"},{"children":[{"attributes":{"constant":false,"name":"","scope":1590,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":1552,"name":"ElementaryTypeName","src":"14395:4:3"}],"id":1553,"name":"VariableDeclaration","src":"14395:4:3"}],"id":1554,"name":"ParameterList","src":"14394:6:3"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":687,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1548,"type":"struct strings.slice memory","value":"self"},"id":1555,"name":"Identifier","src":"14415:4:3"}],"id":1556,"name":"MemberAccess","src":"14415:9:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":687,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1550,"type":"struct strings.slice memory","value":"needle"},"id":1557,"name":"Identifier","src":"14427:6:3"}],"id":1558,"name":"MemberAccess","src":"14427:11:3"}],"id":1559,"name":"BinaryOperation","src":"14415:23:3"},{"children":[{"attributes":{"functionReturnParameters":1554},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"66616c7365","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"false"},"id":1560,"name":"Literal","src":"14461:5:3"}],"id":1561,"name":"Return","src":"14454:12:3"}],"id":1562,"name":"Block","src":"14440:37:3"}],"id":1563,"name":"IfStatement","src":"14411:66:3"},{"attributes":{"assignments":[1565]},"children":[{"attributes":{"constant":false,"name":"selfptr","scope":1590,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1564,"name":"ElementaryTypeName","src":"14487:4:3"}],"id":1565,"name":"VariableDeclaration","src":"14487:12:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":689,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1548,"type":"struct strings.slice memory","value":"self"},"id":1566,"name":"Identifier","src":"14502:4:3"}],"id":1567,"name":"MemberAccess","src":"14502:9:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":687,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1548,"type":"struct strings.slice memory","value":"self"},"id":1568,"name":"Identifier","src":"14514:4:3"}],"id":1569,"name":"MemberAccess","src":"14514:9:3"}],"id":1570,"name":"BinaryOperation","src":"14502:21:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":687,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1550,"type":"struct strings.slice memory","value":"needle"},"id":1571,"name":"Identifier","src":"14526:6:3"}],"id":1572,"name":"MemberAccess","src":"14526:11:3"}],"id":1573,"name":"BinaryOperation","src":"14502:35:3"}],"id":1574,"name":"VariableDeclarationStatement","src":"14487:50:3"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1565,"type":"uint256","value":"selfptr"},"id":1575,"name":"Identifier","src":"14552:7:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":689,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1550,"type":"struct strings.slice memory","value":"needle"},"id":1576,"name":"Identifier","src":"14563:6:3"}],"id":1577,"name":"MemberAccess","src":"14563:11:3"}],"id":1578,"name":"BinaryOperation","src":"14552:22:3"},{"children":[{"attributes":{"functionReturnParameters":1554},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":1579,"name":"Literal","src":"14597:4:3"}],"id":1580,"name":"Return","src":"14590:11:3"}],"id":1581,"name":"Block","src":"14576:36:3"}],"id":1582,"name":"IfStatement","src":"14548:64:3"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"equal","scope":1590,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":1583,"name":"ElementaryTypeName","src":"14622:4:3"}],"id":1584,"name":"VariableDeclaration","src":"14622:10:3"}],"id":1585,"name":"VariableDeclarationStatement","src":"14622:10:3"},{"attributes":{"externalReferences":[{"needle":{"declaration":1550,"isOffset":false,"isSlot":false,"src":"14685:6:3","valueSize":1}},{"equal":{"declaration":1584,"isOffset":false,"isSlot":false,"src":"14759:5:3","valueSize":1}},{"needle":{"declaration":1550,"isOffset":false,"isSlot":false,"src":"14732:6:3","valueSize":1}},{"selfptr":{"declaration":1565,"isOffset":false,"isSlot":false,"src":"14781:7:3","valueSize":1}}],"operations":"{\n let length := mload(needle)\n let needleptr := mload(add(needle, 0x20))\n equal := eq(keccak256(selfptr, length), keccak256(needleptr, length))\n}"},"children":[],"id":1586,"name":"InlineAssembly","src":"14642:212:3"},{"attributes":{"functionReturnParameters":1554},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1584,"type":"bool","value":"equal"},"id":1587,"name":"Identifier","src":"14855:5:3"}],"id":1588,"name":"Return","src":"14848:12:3"}],"id":1589,"name":"Block","src":"14401:466:3"}],"id":1590,"name":"FunctionDefinition","src":"14314:553:3"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"until","payable":false,"scope":2378,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":1643,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":690,"type":"struct strings.slice"},"id":1591,"name":"UserDefinedTypeName","src":"15146:5:3"}],"id":1592,"name":"VariableDeclaration","src":"15146:17:3"},{"attributes":{"constant":false,"name":"needle","scope":1643,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":690,"type":"struct strings.slice"},"id":1593,"name":"UserDefinedTypeName","src":"15165:5:3"}],"id":1594,"name":"VariableDeclaration","src":"15165:19:3"}],"id":1595,"name":"ParameterList","src":"15145:40:3"},{"children":[{"attributes":{"constant":false,"name":"","scope":1643,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":690,"type":"struct strings.slice"},"id":1596,"name":"UserDefinedTypeName","src":"15209:5:3"}],"id":1597,"name":"VariableDeclaration","src":"15209:5:3"}],"id":1598,"name":"ParameterList","src":"15208:14:3"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":687,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1592,"type":"struct strings.slice memory","value":"self"},"id":1599,"name":"Identifier","src":"15237:4:3"}],"id":1600,"name":"MemberAccess","src":"15237:9:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":687,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1594,"type":"struct strings.slice memory","value":"needle"},"id":1601,"name":"Identifier","src":"15249:6:3"}],"id":1602,"name":"MemberAccess","src":"15249:11:3"}],"id":1603,"name":"BinaryOperation","src":"15237:23:3"},{"children":[{"attributes":{"functionReturnParameters":1598},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1592,"type":"struct strings.slice memory","value":"self"},"id":1604,"name":"Identifier","src":"15283:4:3"}],"id":1605,"name":"Return","src":"15276:11:3"}],"id":1606,"name":"Block","src":"15262:36:3"}],"id":1607,"name":"IfStatement","src":"15233:65:3"},{"attributes":{"assignments":[1609]},"children":[{"attributes":{"constant":false,"name":"selfptr","scope":1643,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1608,"name":"ElementaryTypeName","src":"15308:4:3"}],"id":1609,"name":"VariableDeclaration","src":"15308:12:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":689,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1592,"type":"struct strings.slice memory","value":"self"},"id":1610,"name":"Identifier","src":"15323:4:3"}],"id":1611,"name":"MemberAccess","src":"15323:9:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":687,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1592,"type":"struct strings.slice memory","value":"self"},"id":1612,"name":"Identifier","src":"15335:4:3"}],"id":1613,"name":"MemberAccess","src":"15335:9:3"}],"id":1614,"name":"BinaryOperation","src":"15323:21:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":687,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1594,"type":"struct strings.slice memory","value":"needle"},"id":1615,"name":"Identifier","src":"15347:6:3"}],"id":1616,"name":"MemberAccess","src":"15347:11:3"}],"id":1617,"name":"BinaryOperation","src":"15323:35:3"}],"id":1618,"name":"VariableDeclarationStatement","src":"15308:50:3"},{"attributes":{"assignments":[1620]},"children":[{"attributes":{"constant":false,"name":"equal","scope":1643,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":1619,"name":"ElementaryTypeName","src":"15368:4:3"}],"id":1620,"name":"VariableDeclaration","src":"15368:10:3"},{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":1621,"name":"Literal","src":"15381:4:3"}],"id":1622,"name":"VariableDeclarationStatement","src":"15368:17:3"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1609,"type":"uint256","value":"selfptr"},"id":1623,"name":"Identifier","src":"15399:7:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":689,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1594,"type":"struct strings.slice memory","value":"needle"},"id":1624,"name":"Identifier","src":"15410:6:3"}],"id":1625,"name":"MemberAccess","src":"15410:11:3"}],"id":1626,"name":"BinaryOperation","src":"15399:22:3"},{"children":[{"attributes":{"externalReferences":[{"needle":{"declaration":1594,"isOffset":false,"isSlot":false,"src":"15484:6:3","valueSize":1}},{"equal":{"declaration":1620,"isOffset":false,"isSlot":false,"src":"15566:5:3","valueSize":1}},{"needle":{"declaration":1594,"isOffset":false,"isSlot":false,"src":"15535:6:3","valueSize":1}},{"selfptr":{"declaration":1609,"isOffset":false,"isSlot":false,"src":"15588:7:3","valueSize":1}}],"operations":"{\n let length := mload(needle)\n let needleptr := mload(add(needle, 0x20))\n equal := eq(keccak256(selfptr, length), keccak256(needleptr, length))\n}"},"children":[],"id":1627,"name":"InlineAssembly","src":"15437:222:3"}],"id":1628,"name":"Block","src":"15423:236:3"}],"id":1629,"name":"IfStatement","src":"15395:264:3"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1620,"type":"bool","value":"equal"},"id":1630,"name":"Identifier","src":"15673:5:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":687,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1592,"type":"struct strings.slice memory","value":"self"},"id":1631,"name":"Identifier","src":"15694:4:3"}],"id":1633,"name":"MemberAccess","src":"15694:9:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":687,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1594,"type":"struct strings.slice memory","value":"needle"},"id":1634,"name":"Identifier","src":"15707:6:3"}],"id":1635,"name":"MemberAccess","src":"15707:11:3"}],"id":1636,"name":"Assignment","src":"15694:24:3"}],"id":1637,"name":"ExpressionStatement","src":"15694:24:3"}],"id":1638,"name":"Block","src":"15680:49:3"}],"id":1639,"name":"IfStatement","src":"15669:60:3"},{"attributes":{"functionReturnParameters":1598},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1592,"type":"struct strings.slice memory","value":"self"},"id":1640,"name":"Identifier","src":"15746:4:3"}],"id":1641,"name":"Return","src":"15739:11:3"}],"id":1642,"name":"Block","src":"15223:534:3"}],"id":1643,"name":"FunctionDefinition","src":"15131:626:3"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"findPtr","payable":false,"scope":2378,"stateMutability":"pure","superFunction":null,"visibility":"private"},"children":[{"children":[{"attributes":{"constant":false,"name":"selflen","scope":1764,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1644,"name":"ElementaryTypeName","src":"15931:4:3"}],"id":1645,"name":"VariableDeclaration","src":"15931:12:3"},{"attributes":{"constant":false,"name":"selfptr","scope":1764,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1646,"name":"ElementaryTypeName","src":"15945:4:3"}],"id":1647,"name":"VariableDeclaration","src":"15945:12:3"},{"attributes":{"constant":false,"name":"needlelen","scope":1764,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1648,"name":"ElementaryTypeName","src":"15959:4:3"}],"id":1649,"name":"VariableDeclaration","src":"15959:14:3"},{"attributes":{"constant":false,"name":"needleptr","scope":1764,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1650,"name":"ElementaryTypeName","src":"15975:4:3"}],"id":1651,"name":"VariableDeclaration","src":"15975:14:3"}],"id":1652,"name":"ParameterList","src":"15930:60:3"},{"children":[{"attributes":{"constant":false,"name":"","scope":1764,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1653,"name":"ElementaryTypeName","src":"16013:4:3"}],"id":1654,"name":"VariableDeclaration","src":"16013:4:3"}],"id":1655,"name":"ParameterList","src":"16012:6:3"},{"children":[{"attributes":{"assignments":[1657]},"children":[{"attributes":{"constant":false,"name":"ptr","scope":1764,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1656,"name":"ElementaryTypeName","src":"16029:4:3"}],"id":1657,"name":"VariableDeclaration","src":"16029:8:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1647,"type":"uint256","value":"selfptr"},"id":1658,"name":"Identifier","src":"16040:7:3"}],"id":1659,"name":"VariableDeclarationStatement","src":"16029:18:3"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"idx","scope":1764,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1660,"name":"ElementaryTypeName","src":"16057:4:3"}],"id":1661,"name":"VariableDeclaration","src":"16057:8:3"}],"id":1662,"name":"VariableDeclarationStatement","src":"16057:8:3"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1649,"type":"uint256","value":"needlelen"},"id":1663,"name":"Identifier","src":"16080:9:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1645,"type":"uint256","value":"selflen"},"id":1664,"name":"Identifier","src":"16093:7:3"}],"id":1665,"name":"BinaryOperation","src":"16080:20:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1649,"type":"uint256","value":"needlelen"},"id":1666,"name":"Identifier","src":"16120:9:3"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":1667,"name":"Literal","src":"16133:2:3"}],"id":1668,"name":"BinaryOperation","src":"16120:15:3"},{"children":[{"attributes":{"assignments":[1670]},"children":[{"attributes":{"constant":false,"name":"mask","scope":1764,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":1669,"name":"ElementaryTypeName","src":"16155:7:3"}],"id":1670,"name":"VariableDeclaration","src":"16155:12:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes32)","value":"bytes32"},"id":1671,"name":"ElementaryTypeNameExpression","src":"16170:7:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"~","prefix":true,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"**","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":1672,"name":"Literal","src":"16180:1:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"38","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 8","value":"8"},"id":1673,"name":"Literal","src":"16186:1:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":1674,"name":"Literal","src":"16191:2:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1649,"type":"uint256","value":"needlelen"},"id":1675,"name":"Identifier","src":"16196:9:3"}],"id":1676,"name":"BinaryOperation","src":"16191:14:3"}],"id":1677,"name":"TupleExpression","src":"16190:16:3"}],"id":1678,"name":"BinaryOperation","src":"16186:20:3"}],"id":1679,"name":"TupleExpression","src":"16185:22:3"}],"id":1680,"name":"BinaryOperation","src":"16180:27:3"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":1681,"name":"Literal","src":"16210:1:3"}],"id":1682,"name":"BinaryOperation","src":"16180:31:3"}],"id":1683,"name":"TupleExpression","src":"16179:33:3"}],"id":1684,"name":"UnaryOperation","src":"16178:34:3"}],"id":1685,"name":"FunctionCall","src":"16170:43:3"}],"id":1686,"name":"VariableDeclarationStatement","src":"16155:58:3"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"needledata","scope":1764,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":1687,"name":"ElementaryTypeName","src":"16232:7:3"}],"id":1688,"name":"VariableDeclaration","src":"16232:18:3"}],"id":1689,"name":"VariableDeclarationStatement","src":"16232:18:3"},{"attributes":{"externalReferences":[{"needleptr":{"declaration":1651,"isOffset":false,"isSlot":false,"src":"16303:9:3","valueSize":1}},{"needledata":{"declaration":1688,"isOffset":false,"isSlot":false,"src":"16279:10:3","valueSize":1}},{"mask":{"declaration":1670,"isOffset":false,"isSlot":false,"src":"16315:4:3","valueSize":1}}],"operations":"{\n needledata := and(mload(needleptr), mask)\n}"},"children":[],"id":1690,"name":"InlineAssembly","src":"16268:76:3"},{"attributes":{"assignments":[1692]},"children":[{"attributes":{"constant":false,"name":"end","scope":1764,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1691,"name":"ElementaryTypeName","src":"16340:4:3"}],"id":1692,"name":"VariableDeclaration","src":"16340:8:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1647,"type":"uint256","value":"selfptr"},"id":1693,"name":"Identifier","src":"16351:7:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1645,"type":"uint256","value":"selflen"},"id":1694,"name":"Identifier","src":"16361:7:3"}],"id":1695,"name":"BinaryOperation","src":"16351:17:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1649,"type":"uint256","value":"needlelen"},"id":1696,"name":"Identifier","src":"16371:9:3"}],"id":1697,"name":"BinaryOperation","src":"16351:29:3"}],"id":1698,"name":"VariableDeclarationStatement","src":"16340:40:3"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"ptrdata","scope":1764,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":1699,"name":"ElementaryTypeName","src":"16398:7:3"}],"id":1700,"name":"VariableDeclaration","src":"16398:15:3"}],"id":1701,"name":"VariableDeclarationStatement","src":"16398:15:3"},{"attributes":{"externalReferences":[{"ptr":{"declaration":1657,"isOffset":false,"isSlot":false,"src":"16463:3:3","valueSize":1}},{"ptrdata":{"declaration":1700,"isOffset":false,"isSlot":false,"src":"16442:7:3","valueSize":1}},{"mask":{"declaration":1670,"isOffset":false,"isSlot":false,"src":"16469:4:3","valueSize":1}}],"operations":"{\n ptrdata := and(mload(ptr), mask)\n}"},"children":[],"id":1702,"name":"InlineAssembly","src":"16431:68:3"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1700,"type":"bytes32","value":"ptrdata"},"id":1703,"name":"Identifier","src":"16501:7:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1688,"type":"bytes32","value":"needledata"},"id":1704,"name":"Identifier","src":"16512:10:3"}],"id":1705,"name":"BinaryOperation","src":"16501:21:3"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1657,"type":"uint256","value":"ptr"},"id":1706,"name":"Identifier","src":"16550:3:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1692,"type":"uint256","value":"end"},"id":1707,"name":"Identifier","src":"16557:3:3"}],"id":1708,"name":"BinaryOperation","src":"16550:10:3"},{"attributes":{"functionReturnParameters":1655},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1647,"type":"uint256","value":"selfptr"},"id":1709,"name":"Identifier","src":"16593:7:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1645,"type":"uint256","value":"selflen"},"id":1710,"name":"Identifier","src":"16603:7:3"}],"id":1711,"name":"BinaryOperation","src":"16593:17:3"}],"id":1712,"name":"Return","src":"16586:24:3"}],"id":1713,"name":"IfStatement","src":"16546:64:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1657,"type":"uint256","value":"ptr"},"id":1714,"name":"Identifier","src":"16632:3:3"}],"id":1715,"name":"UnaryOperation","src":"16632:5:3"}],"id":1716,"name":"ExpressionStatement","src":"16632:5:3"},{"attributes":{"externalReferences":[{"ptr":{"declaration":1657,"isOffset":false,"isSlot":false,"src":"16691:3:3","valueSize":1}},{"ptrdata":{"declaration":1700,"isOffset":false,"isSlot":false,"src":"16670:7:3","valueSize":1}},{"mask":{"declaration":1670,"isOffset":false,"isSlot":false,"src":"16697:4:3","valueSize":1}}],"operations":"{\n ptrdata := and(mload(ptr), mask)\n}"},"children":[],"id":1717,"name":"InlineAssembly","src":"16659:63:3"}],"id":1718,"name":"Block","src":"16524:198:3"}],"id":1719,"name":"WhileStatement","src":"16494:228:3"},{"attributes":{"functionReturnParameters":1655},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1657,"type":"uint256","value":"ptr"},"id":1720,"name":"Identifier","src":"16746:3:3"}],"id":1721,"name":"Return","src":"16739:10:3"}],"id":1722,"name":"Block","src":"16137:627:3"},{"children":[{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"hash","scope":1764,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":1723,"name":"ElementaryTypeName","src":"16837:7:3"}],"id":1724,"name":"VariableDeclaration","src":"16837:12:3"}],"id":1725,"name":"VariableDeclarationStatement","src":"16837:12:3"},{"attributes":{"externalReferences":[{"hash":{"declaration":1724,"isOffset":false,"isSlot":false,"src":"16878:4:3","valueSize":1}},{"needleptr":{"declaration":1651,"isOffset":false,"isSlot":false,"src":"16896:9:3","valueSize":1}},{"needlelen":{"declaration":1649,"isOffset":false,"isSlot":false,"src":"16907:9:3","valueSize":1}}],"operations":"{\n hash := keccak256(needleptr, needlelen)\n}"},"children":[],"id":1726,"name":"InlineAssembly","src":"16867:73:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1661,"type":"uint256","value":"idx"},"id":1727,"name":"Identifier","src":"16942:3:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1728,"name":"Literal","src":"16948:1:3"}],"id":1729,"name":"Assignment","src":"16942:7:3"}],"id":1730,"name":"ExpressionStatement","src":"16942:7:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1661,"type":"uint256","value":"idx"},"id":1731,"name":"Identifier","src":"16951:3:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1645,"type":"uint256","value":"selflen"},"id":1732,"name":"Identifier","src":"16958:7:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1649,"type":"uint256","value":"needlelen"},"id":1733,"name":"Identifier","src":"16968:9:3"}],"id":1734,"name":"BinaryOperation","src":"16958:19:3"}],"id":1735,"name":"BinaryOperation","src":"16951:26:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1661,"type":"uint256","value":"idx"},"id":1736,"name":"Identifier","src":"16979:3:3"}],"id":1737,"name":"UnaryOperation","src":"16979:5:3"}],"id":1738,"name":"ExpressionStatement","src":"16979:5:3"},{"children":[{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"testHash","scope":1764,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":1739,"name":"ElementaryTypeName","src":"17008:7:3"}],"id":1740,"name":"VariableDeclaration","src":"17008:16:3"}],"id":1741,"name":"VariableDeclarationStatement","src":"17008:16:3"},{"attributes":{"externalReferences":[{"testHash":{"declaration":1740,"isOffset":false,"isSlot":false,"src":"17057:8:3","valueSize":1}},{"ptr":{"declaration":1657,"isOffset":false,"isSlot":false,"src":"17079:3:3","valueSize":1}},{"needlelen":{"declaration":1649,"isOffset":false,"isSlot":false,"src":"17084:9:3","valueSize":1}}],"operations":"{\n testHash := keccak256(ptr, needlelen)\n}"},"children":[],"id":1742,"name":"InlineAssembly","src":"17046:73:3"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1724,"type":"bytes32","value":"hash"},"id":1743,"name":"Identifier","src":"17121:4:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1740,"type":"bytes32","value":"testHash"},"id":1744,"name":"Identifier","src":"17129:8:3"}],"id":1745,"name":"BinaryOperation","src":"17121:16:3"},{"attributes":{"functionReturnParameters":1655},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1657,"type":"uint256","value":"ptr"},"id":1746,"name":"Identifier","src":"17170:3:3"}],"id":1747,"name":"Return","src":"17163:10:3"}],"id":1748,"name":"IfStatement","src":"17117:56:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1657,"type":"uint256","value":"ptr"},"id":1749,"name":"Identifier","src":"17195:3:3"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":1750,"name":"Literal","src":"17202:1:3"}],"id":1751,"name":"Assignment","src":"17195:8:3"}],"id":1752,"name":"ExpressionStatement","src":"17195:8:3"}],"id":1753,"name":"Block","src":"16986:236:3"}],"id":1754,"name":"ForStatement","src":"16937:285:3"}],"id":1755,"name":"Block","src":"16770:466:3"}],"id":1756,"name":"IfStatement","src":"16116:1120:3"}],"id":1757,"name":"Block","src":"16102:1144:3"}],"id":1758,"name":"IfStatement","src":"16076:1170:3"},{"attributes":{"functionReturnParameters":1655},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1647,"type":"uint256","value":"selfptr"},"id":1759,"name":"Identifier","src":"17262:7:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1645,"type":"uint256","value":"selflen"},"id":1760,"name":"Identifier","src":"17272:7:3"}],"id":1761,"name":"BinaryOperation","src":"17262:17:3"}],"id":1762,"name":"Return","src":"17255:24:3"}],"id":1763,"name":"Block","src":"16019:1267:3"}],"id":1764,"name":"FunctionDefinition","src":"15914:1372:3"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"rfindPtr","payable":false,"scope":2378,"stateMutability":"pure","superFunction":null,"visibility":"private"},"children":[{"children":[{"attributes":{"constant":false,"name":"selflen","scope":1881,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1765,"name":"ElementaryTypeName","src":"17457:4:3"}],"id":1766,"name":"VariableDeclaration","src":"17457:12:3"},{"attributes":{"constant":false,"name":"selfptr","scope":1881,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1767,"name":"ElementaryTypeName","src":"17471:4:3"}],"id":1768,"name":"VariableDeclaration","src":"17471:12:3"},{"attributes":{"constant":false,"name":"needlelen","scope":1881,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1769,"name":"ElementaryTypeName","src":"17485:4:3"}],"id":1770,"name":"VariableDeclaration","src":"17485:14:3"},{"attributes":{"constant":false,"name":"needleptr","scope":1881,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1771,"name":"ElementaryTypeName","src":"17501:4:3"}],"id":1772,"name":"VariableDeclaration","src":"17501:14:3"}],"id":1773,"name":"ParameterList","src":"17456:60:3"},{"children":[{"attributes":{"constant":false,"name":"","scope":1881,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1774,"name":"ElementaryTypeName","src":"17539:4:3"}],"id":1775,"name":"VariableDeclaration","src":"17539:4:3"}],"id":1776,"name":"ParameterList","src":"17538:6:3"},{"children":[{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"ptr","scope":1881,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1777,"name":"ElementaryTypeName","src":"17555:4:3"}],"id":1778,"name":"VariableDeclaration","src":"17555:8:3"}],"id":1779,"name":"VariableDeclarationStatement","src":"17555:8:3"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1770,"type":"uint256","value":"needlelen"},"id":1780,"name":"Identifier","src":"17578:9:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1766,"type":"uint256","value":"selflen"},"id":1781,"name":"Identifier","src":"17591:7:3"}],"id":1782,"name":"BinaryOperation","src":"17578:20:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1770,"type":"uint256","value":"needlelen"},"id":1783,"name":"Identifier","src":"17618:9:3"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":1784,"name":"Literal","src":"17631:2:3"}],"id":1785,"name":"BinaryOperation","src":"17618:15:3"},{"children":[{"attributes":{"assignments":[1787]},"children":[{"attributes":{"constant":false,"name":"mask","scope":1881,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":1786,"name":"ElementaryTypeName","src":"17653:7:3"}],"id":1787,"name":"VariableDeclaration","src":"17653:12:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes32)","value":"bytes32"},"id":1788,"name":"ElementaryTypeNameExpression","src":"17668:7:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"~","prefix":true,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"**","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":1789,"name":"Literal","src":"17678:1:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"38","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 8","value":"8"},"id":1790,"name":"Literal","src":"17684:1:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":1791,"name":"Literal","src":"17689:2:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1770,"type":"uint256","value":"needlelen"},"id":1792,"name":"Identifier","src":"17694:9:3"}],"id":1793,"name":"BinaryOperation","src":"17689:14:3"}],"id":1794,"name":"TupleExpression","src":"17688:16:3"}],"id":1795,"name":"BinaryOperation","src":"17684:20:3"}],"id":1796,"name":"TupleExpression","src":"17683:22:3"}],"id":1797,"name":"BinaryOperation","src":"17678:27:3"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":1798,"name":"Literal","src":"17708:1:3"}],"id":1799,"name":"BinaryOperation","src":"17678:31:3"}],"id":1800,"name":"TupleExpression","src":"17677:33:3"}],"id":1801,"name":"UnaryOperation","src":"17676:34:3"}],"id":1802,"name":"FunctionCall","src":"17668:43:3"}],"id":1803,"name":"VariableDeclarationStatement","src":"17653:58:3"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"needledata","scope":1881,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":1804,"name":"ElementaryTypeName","src":"17730:7:3"}],"id":1805,"name":"VariableDeclaration","src":"17730:18:3"}],"id":1806,"name":"VariableDeclarationStatement","src":"17730:18:3"},{"attributes":{"externalReferences":[{"needleptr":{"declaration":1772,"isOffset":false,"isSlot":false,"src":"17801:9:3","valueSize":1}},{"needledata":{"declaration":1805,"isOffset":false,"isSlot":false,"src":"17777:10:3","valueSize":1}},{"mask":{"declaration":1787,"isOffset":false,"isSlot":false,"src":"17813:4:3","valueSize":1}}],"operations":"{\n needledata := and(mload(needleptr), mask)\n}"},"children":[],"id":1807,"name":"InlineAssembly","src":"17766:75:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1778,"type":"uint256","value":"ptr"},"id":1808,"name":"Identifier","src":"17838:3:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1768,"type":"uint256","value":"selfptr"},"id":1809,"name":"Identifier","src":"17844:7:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1766,"type":"uint256","value":"selflen"},"id":1810,"name":"Identifier","src":"17854:7:3"}],"id":1811,"name":"BinaryOperation","src":"17844:17:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1770,"type":"uint256","value":"needlelen"},"id":1812,"name":"Identifier","src":"17864:9:3"}],"id":1813,"name":"BinaryOperation","src":"17844:29:3"}],"id":1814,"name":"Assignment","src":"17838:35:3"}],"id":1815,"name":"ExpressionStatement","src":"17838:35:3"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"ptrdata","scope":1881,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":1816,"name":"ElementaryTypeName","src":"17891:7:3"}],"id":1817,"name":"VariableDeclaration","src":"17891:15:3"}],"id":1818,"name":"VariableDeclarationStatement","src":"17891:15:3"},{"attributes":{"externalReferences":[{"ptr":{"declaration":1778,"isOffset":false,"isSlot":false,"src":"17956:3:3","valueSize":1}},{"ptrdata":{"declaration":1817,"isOffset":false,"isSlot":false,"src":"17935:7:3","valueSize":1}},{"mask":{"declaration":1787,"isOffset":false,"isSlot":false,"src":"17962:4:3","valueSize":1}}],"operations":"{\n ptrdata := and(mload(ptr), mask)\n}"},"children":[],"id":1819,"name":"InlineAssembly","src":"17924:68:3"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1817,"type":"bytes32","value":"ptrdata"},"id":1820,"name":"Identifier","src":"17994:7:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1805,"type":"bytes32","value":"needledata"},"id":1821,"name":"Identifier","src":"18005:10:3"}],"id":1822,"name":"BinaryOperation","src":"17994:21:3"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1778,"type":"uint256","value":"ptr"},"id":1823,"name":"Identifier","src":"18043:3:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1768,"type":"uint256","value":"selfptr"},"id":1824,"name":"Identifier","src":"18050:7:3"}],"id":1825,"name":"BinaryOperation","src":"18043:14:3"},{"attributes":{"functionReturnParameters":1776},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1768,"type":"uint256","value":"selfptr"},"id":1826,"name":"Identifier","src":"18090:7:3"}],"id":1827,"name":"Return","src":"18083:14:3"}],"id":1828,"name":"IfStatement","src":"18039:58:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"--","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1778,"type":"uint256","value":"ptr"},"id":1829,"name":"Identifier","src":"18119:3:3"}],"id":1830,"name":"UnaryOperation","src":"18119:5:3"}],"id":1831,"name":"ExpressionStatement","src":"18119:5:3"},{"attributes":{"externalReferences":[{"ptr":{"declaration":1778,"isOffset":false,"isSlot":false,"src":"18178:3:3","valueSize":1}},{"ptrdata":{"declaration":1817,"isOffset":false,"isSlot":false,"src":"18157:7:3","valueSize":1}},{"mask":{"declaration":1787,"isOffset":false,"isSlot":false,"src":"18184:4:3","valueSize":1}}],"operations":"{\n ptrdata := and(mload(ptr), mask)\n}"},"children":[],"id":1832,"name":"InlineAssembly","src":"18146:63:3"}],"id":1833,"name":"Block","src":"18017:192:3"}],"id":1834,"name":"WhileStatement","src":"17987:222:3"},{"attributes":{"functionReturnParameters":1776},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1778,"type":"uint256","value":"ptr"},"id":1835,"name":"Identifier","src":"18233:3:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1770,"type":"uint256","value":"needlelen"},"id":1836,"name":"Identifier","src":"18239:9:3"}],"id":1837,"name":"BinaryOperation","src":"18233:15:3"}],"id":1838,"name":"Return","src":"18226:22:3"}],"id":1839,"name":"Block","src":"17635:628:3"},{"children":[{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"hash","scope":1881,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":1840,"name":"ElementaryTypeName","src":"18336:7:3"}],"id":1841,"name":"VariableDeclaration","src":"18336:12:3"}],"id":1842,"name":"VariableDeclarationStatement","src":"18336:12:3"},{"attributes":{"externalReferences":[{"hash":{"declaration":1841,"isOffset":false,"isSlot":false,"src":"18377:4:3","valueSize":1}},{"needleptr":{"declaration":1772,"isOffset":false,"isSlot":false,"src":"18395:9:3","valueSize":1}},{"needlelen":{"declaration":1770,"isOffset":false,"isSlot":false,"src":"18406:9:3","valueSize":1}}],"operations":"{\n hash := keccak256(needleptr, needlelen)\n}"},"children":[],"id":1843,"name":"InlineAssembly","src":"18366:72:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1778,"type":"uint256","value":"ptr"},"id":1844,"name":"Identifier","src":"18435:3:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1768,"type":"uint256","value":"selfptr"},"id":1845,"name":"Identifier","src":"18441:7:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1766,"type":"uint256","value":"selflen"},"id":1846,"name":"Identifier","src":"18452:7:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1770,"type":"uint256","value":"needlelen"},"id":1847,"name":"Identifier","src":"18462:9:3"}],"id":1848,"name":"BinaryOperation","src":"18452:19:3"}],"id":1849,"name":"TupleExpression","src":"18451:21:3"}],"id":1850,"name":"BinaryOperation","src":"18441:31:3"}],"id":1851,"name":"Assignment","src":"18435:37:3"}],"id":1852,"name":"ExpressionStatement","src":"18435:37:3"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1778,"type":"uint256","value":"ptr"},"id":1853,"name":"Identifier","src":"18497:3:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1768,"type":"uint256","value":"selfptr"},"id":1854,"name":"Identifier","src":"18504:7:3"}],"id":1855,"name":"BinaryOperation","src":"18497:14:3"},{"children":[{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"testHash","scope":1881,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":1856,"name":"ElementaryTypeName","src":"18535:7:3"}],"id":1857,"name":"VariableDeclaration","src":"18535:16:3"}],"id":1858,"name":"VariableDeclarationStatement","src":"18535:16:3"},{"attributes":{"externalReferences":[{"testHash":{"declaration":1857,"isOffset":false,"isSlot":false,"src":"18584:8:3","valueSize":1}},{"ptr":{"declaration":1778,"isOffset":false,"isSlot":false,"src":"18606:3:3","valueSize":1}},{"needlelen":{"declaration":1770,"isOffset":false,"isSlot":false,"src":"18611:9:3","valueSize":1}}],"operations":"{\n testHash := keccak256(ptr, needlelen)\n}"},"children":[],"id":1859,"name":"InlineAssembly","src":"18573:73:3"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1841,"type":"bytes32","value":"hash"},"id":1860,"name":"Identifier","src":"18648:4:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1857,"type":"bytes32","value":"testHash"},"id":1861,"name":"Identifier","src":"18656:8:3"}],"id":1862,"name":"BinaryOperation","src":"18648:16:3"},{"attributes":{"functionReturnParameters":1776},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1778,"type":"uint256","value":"ptr"},"id":1863,"name":"Identifier","src":"18697:3:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1770,"type":"uint256","value":"needlelen"},"id":1864,"name":"Identifier","src":"18703:9:3"}],"id":1865,"name":"BinaryOperation","src":"18697:15:3"}],"id":1866,"name":"Return","src":"18690:22:3"}],"id":1867,"name":"IfStatement","src":"18644:68:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1778,"type":"uint256","value":"ptr"},"id":1868,"name":"Identifier","src":"18734:3:3"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":1869,"name":"Literal","src":"18741:1:3"}],"id":1870,"name":"Assignment","src":"18734:8:3"}],"id":1871,"name":"ExpressionStatement","src":"18734:8:3"}],"id":1872,"name":"Block","src":"18513:248:3"}],"id":1873,"name":"WhileStatement","src":"18490:271:3"}],"id":1874,"name":"Block","src":"18269:506:3"}],"id":1875,"name":"IfStatement","src":"17614:1161:3"}],"id":1876,"name":"Block","src":"17600:1185:3"}],"id":1877,"name":"IfStatement","src":"17574:1211:3"},{"attributes":{"functionReturnParameters":1776},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1768,"type":"uint256","value":"selfptr"},"id":1878,"name":"Identifier","src":"18801:7:3"}],"id":1879,"name":"Return","src":"18794:14:3"}],"id":1880,"name":"Block","src":"17545:1270:3"}],"id":1881,"name":"FunctionDefinition","src":"17439:1376:3"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"find","payable":false,"scope":2378,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":1921,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":690,"type":"struct strings.slice"},"id":1882,"name":"UserDefinedTypeName","src":"19165:5:3"}],"id":1883,"name":"VariableDeclaration","src":"19165:17:3"},{"attributes":{"constant":false,"name":"needle","scope":1921,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":690,"type":"struct strings.slice"},"id":1884,"name":"UserDefinedTypeName","src":"19184:5:3"}],"id":1885,"name":"VariableDeclaration","src":"19184:19:3"}],"id":1886,"name":"ParameterList","src":"19164:40:3"},{"children":[{"attributes":{"constant":false,"name":"","scope":1921,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":690,"type":"struct strings.slice"},"id":1887,"name":"UserDefinedTypeName","src":"19228:5:3"}],"id":1888,"name":"VariableDeclaration","src":"19228:5:3"}],"id":1889,"name":"ParameterList","src":"19227:14:3"},{"children":[{"attributes":{"assignments":[1891]},"children":[{"attributes":{"constant":false,"name":"ptr","scope":1921,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1890,"name":"ElementaryTypeName","src":"19252:4:3"}],"id":1891,"name":"VariableDeclaration","src":"19252:8:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":1764,"type":"function (uint256,uint256,uint256,uint256) pure returns (uint256)","value":"findPtr"},"id":1892,"name":"Identifier","src":"19263:7:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":687,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1883,"type":"struct strings.slice memory","value":"self"},"id":1893,"name":"Identifier","src":"19271:4:3"}],"id":1894,"name":"MemberAccess","src":"19271:9:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":689,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1883,"type":"struct strings.slice memory","value":"self"},"id":1895,"name":"Identifier","src":"19282:4:3"}],"id":1896,"name":"MemberAccess","src":"19282:9:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":687,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1885,"type":"struct strings.slice memory","value":"needle"},"id":1897,"name":"Identifier","src":"19293:6:3"}],"id":1898,"name":"MemberAccess","src":"19293:11:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":689,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1885,"type":"struct strings.slice memory","value":"needle"},"id":1899,"name":"Identifier","src":"19306:6:3"}],"id":1900,"name":"MemberAccess","src":"19306:11:3"}],"id":1901,"name":"FunctionCall","src":"19263:55:3"}],"id":1902,"name":"VariableDeclarationStatement","src":"19252:66:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":687,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1883,"type":"struct strings.slice memory","value":"self"},"id":1903,"name":"Identifier","src":"19328:4:3"}],"id":1905,"name":"MemberAccess","src":"19328:9:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1891,"type":"uint256","value":"ptr"},"id":1906,"name":"Identifier","src":"19341:3:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":689,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1883,"type":"struct strings.slice memory","value":"self"},"id":1907,"name":"Identifier","src":"19347:4:3"}],"id":1908,"name":"MemberAccess","src":"19347:9:3"}],"id":1909,"name":"BinaryOperation","src":"19341:15:3"}],"id":1910,"name":"Assignment","src":"19328:28:3"}],"id":1911,"name":"ExpressionStatement","src":"19328:28:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_ptr","referencedDeclaration":689,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1883,"type":"struct strings.slice memory","value":"self"},"id":1912,"name":"Identifier","src":"19366:4:3"}],"id":1914,"name":"MemberAccess","src":"19366:9:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1891,"type":"uint256","value":"ptr"},"id":1915,"name":"Identifier","src":"19378:3:3"}],"id":1916,"name":"Assignment","src":"19366:15:3"}],"id":1917,"name":"ExpressionStatement","src":"19366:15:3"},{"attributes":{"functionReturnParameters":1889},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1883,"type":"struct strings.slice memory","value":"self"},"id":1918,"name":"Identifier","src":"19398:4:3"}],"id":1919,"name":"Return","src":"19391:11:3"}],"id":1920,"name":"Block","src":"19242:167:3"}],"id":1921,"name":"FunctionDefinition","src":"19151:258:3"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"rfind","payable":false,"scope":2378,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":1955,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":690,"type":"struct strings.slice"},"id":1922,"name":"UserDefinedTypeName","src":"19783:5:3"}],"id":1923,"name":"VariableDeclaration","src":"19783:17:3"},{"attributes":{"constant":false,"name":"needle","scope":1955,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":690,"type":"struct strings.slice"},"id":1924,"name":"UserDefinedTypeName","src":"19802:5:3"}],"id":1925,"name":"VariableDeclaration","src":"19802:19:3"}],"id":1926,"name":"ParameterList","src":"19782:40:3"},{"children":[{"attributes":{"constant":false,"name":"","scope":1955,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":690,"type":"struct strings.slice"},"id":1927,"name":"UserDefinedTypeName","src":"19846:5:3"}],"id":1928,"name":"VariableDeclaration","src":"19846:5:3"}],"id":1929,"name":"ParameterList","src":"19845:14:3"},{"children":[{"attributes":{"assignments":[1931]},"children":[{"attributes":{"constant":false,"name":"ptr","scope":1955,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1930,"name":"ElementaryTypeName","src":"19870:4:3"}],"id":1931,"name":"VariableDeclaration","src":"19870:8:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":1881,"type":"function (uint256,uint256,uint256,uint256) pure returns (uint256)","value":"rfindPtr"},"id":1932,"name":"Identifier","src":"19881:8:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":687,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1923,"type":"struct strings.slice memory","value":"self"},"id":1933,"name":"Identifier","src":"19890:4:3"}],"id":1934,"name":"MemberAccess","src":"19890:9:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":689,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1923,"type":"struct strings.slice memory","value":"self"},"id":1935,"name":"Identifier","src":"19901:4:3"}],"id":1936,"name":"MemberAccess","src":"19901:9:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":687,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1925,"type":"struct strings.slice memory","value":"needle"},"id":1937,"name":"Identifier","src":"19912:6:3"}],"id":1938,"name":"MemberAccess","src":"19912:11:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":689,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1925,"type":"struct strings.slice memory","value":"needle"},"id":1939,"name":"Identifier","src":"19925:6:3"}],"id":1940,"name":"MemberAccess","src":"19925:11:3"}],"id":1941,"name":"FunctionCall","src":"19881:56:3"}],"id":1942,"name":"VariableDeclarationStatement","src":"19870:67:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":687,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1923,"type":"struct strings.slice memory","value":"self"},"id":1943,"name":"Identifier","src":"19947:4:3"}],"id":1945,"name":"MemberAccess","src":"19947:9:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1931,"type":"uint256","value":"ptr"},"id":1946,"name":"Identifier","src":"19959:3:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":689,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1923,"type":"struct strings.slice memory","value":"self"},"id":1947,"name":"Identifier","src":"19965:4:3"}],"id":1948,"name":"MemberAccess","src":"19965:9:3"}],"id":1949,"name":"BinaryOperation","src":"19959:15:3"}],"id":1950,"name":"Assignment","src":"19947:27:3"}],"id":1951,"name":"ExpressionStatement","src":"19947:27:3"},{"attributes":{"functionReturnParameters":1929},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1923,"type":"struct strings.slice memory","value":"self"},"id":1952,"name":"Identifier","src":"19991:4:3"}],"id":1953,"name":"Return","src":"19984:11:3"}],"id":1954,"name":"Block","src":"19860:142:3"}],"id":1955,"name":"FunctionDefinition","src":"19768:234:3"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"split","payable":false,"scope":2378,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":2033,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":690,"type":"struct strings.slice"},"id":1956,"name":"UserDefinedTypeName","src":"20523:5:3"}],"id":1957,"name":"VariableDeclaration","src":"20523:17:3"},{"attributes":{"constant":false,"name":"needle","scope":2033,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":690,"type":"struct strings.slice"},"id":1958,"name":"UserDefinedTypeName","src":"20542:5:3"}],"id":1959,"name":"VariableDeclaration","src":"20542:19:3"},{"attributes":{"constant":false,"name":"token","scope":2033,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":690,"type":"struct strings.slice"},"id":1960,"name":"UserDefinedTypeName","src":"20563:5:3"}],"id":1961,"name":"VariableDeclaration","src":"20563:18:3"}],"id":1962,"name":"ParameterList","src":"20522:60:3"},{"children":[{"attributes":{"constant":false,"name":"","scope":2033,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":690,"type":"struct strings.slice"},"id":1963,"name":"UserDefinedTypeName","src":"20606:5:3"}],"id":1964,"name":"VariableDeclaration","src":"20606:5:3"}],"id":1965,"name":"ParameterList","src":"20605:14:3"},{"children":[{"attributes":{"assignments":[1967]},"children":[{"attributes":{"constant":false,"name":"ptr","scope":2033,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1966,"name":"ElementaryTypeName","src":"20630:4:3"}],"id":1967,"name":"VariableDeclaration","src":"20630:8:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":1764,"type":"function (uint256,uint256,uint256,uint256) pure returns (uint256)","value":"findPtr"},"id":1968,"name":"Identifier","src":"20641:7:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":687,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1957,"type":"struct strings.slice memory","value":"self"},"id":1969,"name":"Identifier","src":"20649:4:3"}],"id":1970,"name":"MemberAccess","src":"20649:9:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":689,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1957,"type":"struct strings.slice memory","value":"self"},"id":1971,"name":"Identifier","src":"20660:4:3"}],"id":1972,"name":"MemberAccess","src":"20660:9:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":687,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1959,"type":"struct strings.slice memory","value":"needle"},"id":1973,"name":"Identifier","src":"20671:6:3"}],"id":1974,"name":"MemberAccess","src":"20671:11:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":689,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1959,"type":"struct strings.slice memory","value":"needle"},"id":1975,"name":"Identifier","src":"20684:6:3"}],"id":1976,"name":"MemberAccess","src":"20684:11:3"}],"id":1977,"name":"FunctionCall","src":"20641:55:3"}],"id":1978,"name":"VariableDeclarationStatement","src":"20630:66:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_ptr","referencedDeclaration":689,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1961,"type":"struct strings.slice memory","value":"token"},"id":1979,"name":"Identifier","src":"20706:5:3"}],"id":1981,"name":"MemberAccess","src":"20706:10:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":689,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1957,"type":"struct strings.slice memory","value":"self"},"id":1982,"name":"Identifier","src":"20719:4:3"}],"id":1983,"name":"MemberAccess","src":"20719:9:3"}],"id":1984,"name":"Assignment","src":"20706:22:3"}],"id":1985,"name":"ExpressionStatement","src":"20706:22:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":687,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1961,"type":"struct strings.slice memory","value":"token"},"id":1986,"name":"Identifier","src":"20738:5:3"}],"id":1988,"name":"MemberAccess","src":"20738:10:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1967,"type":"uint256","value":"ptr"},"id":1989,"name":"Identifier","src":"20751:3:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":689,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1957,"type":"struct strings.slice memory","value":"self"},"id":1990,"name":"Identifier","src":"20757:4:3"}],"id":1991,"name":"MemberAccess","src":"20757:9:3"}],"id":1992,"name":"BinaryOperation","src":"20751:15:3"}],"id":1993,"name":"Assignment","src":"20738:28:3"}],"id":1994,"name":"ExpressionStatement","src":"20738:28:3"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1967,"type":"uint256","value":"ptr"},"id":1995,"name":"Identifier","src":"20780:3:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":689,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1957,"type":"struct strings.slice memory","value":"self"},"id":1996,"name":"Identifier","src":"20787:4:3"}],"id":1997,"name":"MemberAccess","src":"20787:9:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":687,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1957,"type":"struct strings.slice memory","value":"self"},"id":1998,"name":"Identifier","src":"20799:4:3"}],"id":1999,"name":"MemberAccess","src":"20799:9:3"}],"id":2000,"name":"BinaryOperation","src":"20787:21:3"}],"id":2001,"name":"BinaryOperation","src":"20780:28:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":687,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1957,"type":"struct strings.slice memory","value":"self"},"id":2002,"name":"Identifier","src":"20849:4:3"}],"id":2004,"name":"MemberAccess","src":"20849:9:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2005,"name":"Literal","src":"20861:1:3"}],"id":2006,"name":"Assignment","src":"20849:13:3"}],"id":2007,"name":"ExpressionStatement","src":"20849:13:3"}],"id":2008,"name":"Block","src":"20810:63:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":687,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1957,"type":"struct strings.slice memory","value":"self"},"id":2009,"name":"Identifier","src":"20893:4:3"}],"id":2011,"name":"MemberAccess","src":"20893:9:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":687,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1961,"type":"struct strings.slice memory","value":"token"},"id":2012,"name":"Identifier","src":"20906:5:3"}],"id":2013,"name":"MemberAccess","src":"20906:10:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":687,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1959,"type":"struct strings.slice memory","value":"needle"},"id":2014,"name":"Identifier","src":"20919:6:3"}],"id":2015,"name":"MemberAccess","src":"20919:11:3"}],"id":2016,"name":"BinaryOperation","src":"20906:24:3"}],"id":2017,"name":"Assignment","src":"20893:37:3"}],"id":2018,"name":"ExpressionStatement","src":"20893:37:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_ptr","referencedDeclaration":689,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1957,"type":"struct strings.slice memory","value":"self"},"id":2019,"name":"Identifier","src":"20944:4:3"}],"id":2021,"name":"MemberAccess","src":"20944:9:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1967,"type":"uint256","value":"ptr"},"id":2022,"name":"Identifier","src":"20956:3:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":687,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1959,"type":"struct strings.slice memory","value":"needle"},"id":2023,"name":"Identifier","src":"20962:6:3"}],"id":2024,"name":"MemberAccess","src":"20962:11:3"}],"id":2025,"name":"BinaryOperation","src":"20956:17:3"}],"id":2026,"name":"Assignment","src":"20944:29:3"}],"id":2027,"name":"ExpressionStatement","src":"20944:29:3"}],"id":2028,"name":"Block","src":"20879:105:3"}],"id":2029,"name":"IfStatement","src":"20776:208:3"},{"attributes":{"functionReturnParameters":1965},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1961,"type":"struct strings.slice memory","value":"token"},"id":2030,"name":"Identifier","src":"21000:5:3"}],"id":2031,"name":"Return","src":"20993:12:3"}],"id":2032,"name":"Block","src":"20620:392:3"}],"id":2033,"name":"FunctionDefinition","src":"20508:504:3"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"split","payable":false,"scope":2378,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":2049,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":690,"type":"struct strings.slice"},"id":2034,"name":"UserDefinedTypeName","src":"21498:5:3"}],"id":2035,"name":"VariableDeclaration","src":"21498:17:3"},{"attributes":{"constant":false,"name":"needle","scope":2049,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":690,"type":"struct strings.slice"},"id":2036,"name":"UserDefinedTypeName","src":"21517:5:3"}],"id":2037,"name":"VariableDeclaration","src":"21517:19:3"}],"id":2038,"name":"ParameterList","src":"21497:40:3"},{"children":[{"attributes":{"constant":false,"name":"token","scope":2049,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":690,"type":"struct strings.slice"},"id":2039,"name":"UserDefinedTypeName","src":"21561:5:3"}],"id":2040,"name":"VariableDeclaration","src":"21561:18:3"}],"id":2041,"name":"ParameterList","src":"21560:20:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"struct strings.slice memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$690_memory_ptr","typeString":"struct strings.slice memory"},{"typeIdentifier":"t_struct$_slice_$690_memory_ptr","typeString":"struct strings.slice memory"},{"typeIdentifier":"t_struct$_slice_$690_memory_ptr","typeString":"struct strings.slice memory"}],"overloadedDeclarations":[2033,2049],"referencedDeclaration":2033,"type":"function (struct strings.slice memory,struct strings.slice memory,struct strings.slice memory) pure returns (struct strings.slice memory)","value":"split"},"id":2042,"name":"Identifier","src":"21591:5:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2035,"type":"struct strings.slice memory","value":"self"},"id":2043,"name":"Identifier","src":"21597:4:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2037,"type":"struct strings.slice memory","value":"needle"},"id":2044,"name":"Identifier","src":"21603:6:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2040,"type":"struct strings.slice memory","value":"token"},"id":2045,"name":"Identifier","src":"21611:5:3"}],"id":2046,"name":"FunctionCall","src":"21591:26:3"}],"id":2047,"name":"ExpressionStatement","src":"21591:26:3"}],"id":2048,"name":"Block","src":"21581:43:3"}],"id":2049,"name":"FunctionDefinition","src":"21483:141:3"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"rsplit","payable":false,"scope":2378,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":2118,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":690,"type":"struct strings.slice"},"id":2050,"name":"UserDefinedTypeName","src":"22145:5:3"}],"id":2051,"name":"VariableDeclaration","src":"22145:17:3"},{"attributes":{"constant":false,"name":"needle","scope":2118,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":690,"type":"struct strings.slice"},"id":2052,"name":"UserDefinedTypeName","src":"22164:5:3"}],"id":2053,"name":"VariableDeclaration","src":"22164:19:3"},{"attributes":{"constant":false,"name":"token","scope":2118,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":690,"type":"struct strings.slice"},"id":2054,"name":"UserDefinedTypeName","src":"22185:5:3"}],"id":2055,"name":"VariableDeclaration","src":"22185:18:3"}],"id":2056,"name":"ParameterList","src":"22144:60:3"},{"children":[{"attributes":{"constant":false,"name":"","scope":2118,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":690,"type":"struct strings.slice"},"id":2057,"name":"UserDefinedTypeName","src":"22228:5:3"}],"id":2058,"name":"VariableDeclaration","src":"22228:5:3"}],"id":2059,"name":"ParameterList","src":"22227:14:3"},{"children":[{"attributes":{"assignments":[2061]},"children":[{"attributes":{"constant":false,"name":"ptr","scope":2118,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2060,"name":"ElementaryTypeName","src":"22252:4:3"}],"id":2061,"name":"VariableDeclaration","src":"22252:8:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":1881,"type":"function (uint256,uint256,uint256,uint256) pure returns (uint256)","value":"rfindPtr"},"id":2062,"name":"Identifier","src":"22263:8:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":687,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2051,"type":"struct strings.slice memory","value":"self"},"id":2063,"name":"Identifier","src":"22272:4:3"}],"id":2064,"name":"MemberAccess","src":"22272:9:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":689,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2051,"type":"struct strings.slice memory","value":"self"},"id":2065,"name":"Identifier","src":"22283:4:3"}],"id":2066,"name":"MemberAccess","src":"22283:9:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":687,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2053,"type":"struct strings.slice memory","value":"needle"},"id":2067,"name":"Identifier","src":"22294:6:3"}],"id":2068,"name":"MemberAccess","src":"22294:11:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":689,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2053,"type":"struct strings.slice memory","value":"needle"},"id":2069,"name":"Identifier","src":"22307:6:3"}],"id":2070,"name":"MemberAccess","src":"22307:11:3"}],"id":2071,"name":"FunctionCall","src":"22263:56:3"}],"id":2072,"name":"VariableDeclarationStatement","src":"22252:67:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_ptr","referencedDeclaration":689,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2055,"type":"struct strings.slice memory","value":"token"},"id":2073,"name":"Identifier","src":"22329:5:3"}],"id":2075,"name":"MemberAccess","src":"22329:10:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2061,"type":"uint256","value":"ptr"},"id":2076,"name":"Identifier","src":"22342:3:3"}],"id":2077,"name":"Assignment","src":"22329:16:3"}],"id":2078,"name":"ExpressionStatement","src":"22329:16:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":687,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2055,"type":"struct strings.slice memory","value":"token"},"id":2079,"name":"Identifier","src":"22355:5:3"}],"id":2081,"name":"MemberAccess","src":"22355:10:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":687,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2051,"type":"struct strings.slice memory","value":"self"},"id":2082,"name":"Identifier","src":"22368:4:3"}],"id":2083,"name":"MemberAccess","src":"22368:9:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2061,"type":"uint256","value":"ptr"},"id":2084,"name":"Identifier","src":"22381:3:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":689,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2051,"type":"struct strings.slice memory","value":"self"},"id":2085,"name":"Identifier","src":"22387:4:3"}],"id":2086,"name":"MemberAccess","src":"22387:9:3"}],"id":2087,"name":"BinaryOperation","src":"22381:15:3"}],"id":2088,"name":"TupleExpression","src":"22380:17:3"}],"id":2089,"name":"BinaryOperation","src":"22368:29:3"}],"id":2090,"name":"Assignment","src":"22355:42:3"}],"id":2091,"name":"ExpressionStatement","src":"22355:42:3"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2061,"type":"uint256","value":"ptr"},"id":2092,"name":"Identifier","src":"22411:3:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":689,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2051,"type":"struct strings.slice memory","value":"self"},"id":2093,"name":"Identifier","src":"22418:4:3"}],"id":2094,"name":"MemberAccess","src":"22418:9:3"}],"id":2095,"name":"BinaryOperation","src":"22411:16:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":687,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2051,"type":"struct strings.slice memory","value":"self"},"id":2096,"name":"Identifier","src":"22468:4:3"}],"id":2098,"name":"MemberAccess","src":"22468:9:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2099,"name":"Literal","src":"22480:1:3"}],"id":2100,"name":"Assignment","src":"22468:13:3"}],"id":2101,"name":"ExpressionStatement","src":"22468:13:3"}],"id":2102,"name":"Block","src":"22429:63:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":687,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2051,"type":"struct strings.slice memory","value":"self"},"id":2103,"name":"Identifier","src":"22512:4:3"}],"id":2105,"name":"MemberAccess","src":"22512:9:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":687,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2055,"type":"struct strings.slice memory","value":"token"},"id":2106,"name":"Identifier","src":"22525:5:3"}],"id":2107,"name":"MemberAccess","src":"22525:10:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":687,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2053,"type":"struct strings.slice memory","value":"needle"},"id":2108,"name":"Identifier","src":"22538:6:3"}],"id":2109,"name":"MemberAccess","src":"22538:11:3"}],"id":2110,"name":"BinaryOperation","src":"22525:24:3"}],"id":2111,"name":"Assignment","src":"22512:37:3"}],"id":2112,"name":"ExpressionStatement","src":"22512:37:3"}],"id":2113,"name":"Block","src":"22498:62:3"}],"id":2114,"name":"IfStatement","src":"22407:153:3"},{"attributes":{"functionReturnParameters":2059},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2055,"type":"struct strings.slice memory","value":"token"},"id":2115,"name":"Identifier","src":"22576:5:3"}],"id":2116,"name":"Return","src":"22569:12:3"}],"id":2117,"name":"Block","src":"22242:346:3"}],"id":2118,"name":"FunctionDefinition","src":"22129:459:3"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"rsplit","payable":false,"scope":2378,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":2134,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":690,"type":"struct strings.slice"},"id":2119,"name":"UserDefinedTypeName","src":"23073:5:3"}],"id":2120,"name":"VariableDeclaration","src":"23073:17:3"},{"attributes":{"constant":false,"name":"needle","scope":2134,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":690,"type":"struct strings.slice"},"id":2121,"name":"UserDefinedTypeName","src":"23092:5:3"}],"id":2122,"name":"VariableDeclaration","src":"23092:19:3"}],"id":2123,"name":"ParameterList","src":"23072:40:3"},{"children":[{"attributes":{"constant":false,"name":"token","scope":2134,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":690,"type":"struct strings.slice"},"id":2124,"name":"UserDefinedTypeName","src":"23136:5:3"}],"id":2125,"name":"VariableDeclaration","src":"23136:18:3"}],"id":2126,"name":"ParameterList","src":"23135:20:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"struct strings.slice memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$690_memory_ptr","typeString":"struct strings.slice memory"},{"typeIdentifier":"t_struct$_slice_$690_memory_ptr","typeString":"struct strings.slice memory"},{"typeIdentifier":"t_struct$_slice_$690_memory_ptr","typeString":"struct strings.slice memory"}],"overloadedDeclarations":[2118,2134],"referencedDeclaration":2118,"type":"function (struct strings.slice memory,struct strings.slice memory,struct strings.slice memory) pure returns (struct strings.slice memory)","value":"rsplit"},"id":2127,"name":"Identifier","src":"23166:6:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2120,"type":"struct strings.slice memory","value":"self"},"id":2128,"name":"Identifier","src":"23173:4:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2122,"type":"struct strings.slice memory","value":"needle"},"id":2129,"name":"Identifier","src":"23179:6:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2125,"type":"struct strings.slice memory","value":"token"},"id":2130,"name":"Identifier","src":"23187:5:3"}],"id":2131,"name":"FunctionCall","src":"23166:27:3"}],"id":2132,"name":"ExpressionStatement","src":"23166:27:3"}],"id":2133,"name":"Block","src":"23156:44:3"}],"id":2134,"name":"FunctionDefinition","src":"23057:143:3"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"count","payable":false,"scope":2378,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":2193,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":690,"type":"struct strings.slice"},"id":2135,"name":"UserDefinedTypeName","src":"23484:5:3"}],"id":2136,"name":"VariableDeclaration","src":"23484:17:3"},{"attributes":{"constant":false,"name":"needle","scope":2193,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":690,"type":"struct strings.slice"},"id":2137,"name":"UserDefinedTypeName","src":"23503:5:3"}],"id":2138,"name":"VariableDeclaration","src":"23503:19:3"}],"id":2139,"name":"ParameterList","src":"23483:40:3"},{"children":[{"attributes":{"constant":false,"name":"cnt","scope":2193,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2140,"name":"ElementaryTypeName","src":"23547:4:3"}],"id":2141,"name":"VariableDeclaration","src":"23547:8:3"}],"id":2142,"name":"ParameterList","src":"23546:10:3"},{"children":[{"attributes":{"assignments":[2144]},"children":[{"attributes":{"constant":false,"name":"ptr","scope":2193,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2143,"name":"ElementaryTypeName","src":"23567:4:3"}],"id":2144,"name":"VariableDeclaration","src":"23567:8:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":1764,"type":"function (uint256,uint256,uint256,uint256) pure returns (uint256)","value":"findPtr"},"id":2145,"name":"Identifier","src":"23578:7:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":687,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2136,"type":"struct strings.slice memory","value":"self"},"id":2146,"name":"Identifier","src":"23586:4:3"}],"id":2147,"name":"MemberAccess","src":"23586:9:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":689,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2136,"type":"struct strings.slice memory","value":"self"},"id":2148,"name":"Identifier","src":"23597:4:3"}],"id":2149,"name":"MemberAccess","src":"23597:9:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":687,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2138,"type":"struct strings.slice memory","value":"needle"},"id":2150,"name":"Identifier","src":"23608:6:3"}],"id":2151,"name":"MemberAccess","src":"23608:11:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":689,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2138,"type":"struct strings.slice memory","value":"needle"},"id":2152,"name":"Identifier","src":"23621:6:3"}],"id":2153,"name":"MemberAccess","src":"23621:11:3"}],"id":2154,"name":"FunctionCall","src":"23578:55:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":687,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2138,"type":"struct strings.slice memory","value":"needle"},"id":2155,"name":"Identifier","src":"23636:6:3"}],"id":2156,"name":"MemberAccess","src":"23636:11:3"}],"id":2157,"name":"BinaryOperation","src":"23578:69:3"}],"id":2158,"name":"VariableDeclarationStatement","src":"23567:80:3"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2144,"type":"uint256","value":"ptr"},"id":2159,"name":"Identifier","src":"23664:3:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":689,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2136,"type":"struct strings.slice memory","value":"self"},"id":2160,"name":"Identifier","src":"23671:4:3"}],"id":2161,"name":"MemberAccess","src":"23671:9:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":687,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2136,"type":"struct strings.slice memory","value":"self"},"id":2162,"name":"Identifier","src":"23683:4:3"}],"id":2163,"name":"MemberAccess","src":"23683:9:3"}],"id":2164,"name":"BinaryOperation","src":"23671:21:3"}],"id":2165,"name":"BinaryOperation","src":"23664:28:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2141,"type":"uint256","value":"cnt"},"id":2166,"name":"Identifier","src":"23708:3:3"}],"id":2167,"name":"UnaryOperation","src":"23708:5:3"}],"id":2168,"name":"ExpressionStatement","src":"23708:5:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2144,"type":"uint256","value":"ptr"},"id":2169,"name":"Identifier","src":"23727:3:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":1764,"type":"function (uint256,uint256,uint256,uint256) pure returns (uint256)","value":"findPtr"},"id":2170,"name":"Identifier","src":"23733:7:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":687,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2136,"type":"struct strings.slice memory","value":"self"},"id":2171,"name":"Identifier","src":"23741:4:3"}],"id":2172,"name":"MemberAccess","src":"23741:9:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2144,"type":"uint256","value":"ptr"},"id":2173,"name":"Identifier","src":"23754:3:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":689,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2136,"type":"struct strings.slice memory","value":"self"},"id":2174,"name":"Identifier","src":"23760:4:3"}],"id":2175,"name":"MemberAccess","src":"23760:9:3"}],"id":2176,"name":"BinaryOperation","src":"23754:15:3"}],"id":2177,"name":"TupleExpression","src":"23753:17:3"}],"id":2178,"name":"BinaryOperation","src":"23741:29:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2144,"type":"uint256","value":"ptr"},"id":2179,"name":"Identifier","src":"23772:3:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":687,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2138,"type":"struct strings.slice memory","value":"needle"},"id":2180,"name":"Identifier","src":"23777:6:3"}],"id":2181,"name":"MemberAccess","src":"23777:11:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":689,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2138,"type":"struct strings.slice memory","value":"needle"},"id":2182,"name":"Identifier","src":"23790:6:3"}],"id":2183,"name":"MemberAccess","src":"23790:11:3"}],"id":2184,"name":"FunctionCall","src":"23733:69:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":687,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2138,"type":"struct strings.slice memory","value":"needle"},"id":2185,"name":"Identifier","src":"23805:6:3"}],"id":2186,"name":"MemberAccess","src":"23805:11:3"}],"id":2187,"name":"BinaryOperation","src":"23733:83:3"}],"id":2188,"name":"Assignment","src":"23727:89:3"}],"id":2189,"name":"ExpressionStatement","src":"23727:89:3"}],"id":2190,"name":"Block","src":"23694:133:3"}],"id":2191,"name":"WhileStatement","src":"23657:170:3"}],"id":2192,"name":"Block","src":"23557:276:3"}],"id":2193,"name":"FunctionDefinition","src":"23469:364:3"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"contains","payable":false,"scope":2378,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":2217,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":690,"type":"struct strings.slice"},"id":2194,"name":"UserDefinedTypeName","src":"24090:5:3"}],"id":2195,"name":"VariableDeclaration","src":"24090:17:3"},{"attributes":{"constant":false,"name":"needle","scope":2217,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":690,"type":"struct strings.slice"},"id":2196,"name":"UserDefinedTypeName","src":"24109:5:3"}],"id":2197,"name":"VariableDeclaration","src":"24109:19:3"}],"id":2198,"name":"ParameterList","src":"24089:40:3"},{"children":[{"attributes":{"constant":false,"name":"","scope":2217,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2199,"name":"ElementaryTypeName","src":"24153:4:3"}],"id":2200,"name":"VariableDeclaration","src":"24153:4:3"}],"id":2201,"name":"ParameterList","src":"24152:6:3"},{"children":[{"attributes":{"functionReturnParameters":2201},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":1881,"type":"function (uint256,uint256,uint256,uint256) pure returns (uint256)","value":"rfindPtr"},"id":2202,"name":"Identifier","src":"24176:8:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":687,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2195,"type":"struct strings.slice memory","value":"self"},"id":2203,"name":"Identifier","src":"24185:4:3"}],"id":2204,"name":"MemberAccess","src":"24185:9:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":689,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2195,"type":"struct strings.slice memory","value":"self"},"id":2205,"name":"Identifier","src":"24196:4:3"}],"id":2206,"name":"MemberAccess","src":"24196:9:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":687,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2197,"type":"struct strings.slice memory","value":"needle"},"id":2207,"name":"Identifier","src":"24207:6:3"}],"id":2208,"name":"MemberAccess","src":"24207:11:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":689,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2197,"type":"struct strings.slice memory","value":"needle"},"id":2209,"name":"Identifier","src":"24220:6:3"}],"id":2210,"name":"MemberAccess","src":"24220:11:3"}],"id":2211,"name":"FunctionCall","src":"24176:56:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":689,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2195,"type":"struct strings.slice memory","value":"self"},"id":2212,"name":"Identifier","src":"24236:4:3"}],"id":2213,"name":"MemberAccess","src":"24236:9:3"}],"id":2214,"name":"BinaryOperation","src":"24176:69:3"}],"id":2215,"name":"Return","src":"24169:76:3"}],"id":2216,"name":"Block","src":"24159:93:3"}],"id":2217,"name":"FunctionDefinition","src":"24072:180:3"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"concat","payable":false,"scope":2378,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":2263,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":690,"type":"struct strings.slice"},"id":2218,"name":"UserDefinedTypeName","src":"24555:5:3"}],"id":2219,"name":"VariableDeclaration","src":"24555:17:3"},{"attributes":{"constant":false,"name":"other","scope":2263,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":690,"type":"struct strings.slice"},"id":2220,"name":"UserDefinedTypeName","src":"24574:5:3"}],"id":2221,"name":"VariableDeclaration","src":"24574:18:3"}],"id":2222,"name":"ParameterList","src":"24554:39:3"},{"children":[{"attributes":{"constant":false,"name":"","scope":2263,"stateVariable":false,"storageLocation":"memory","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":2223,"name":"ElementaryTypeName","src":"24617:6:3"}],"id":2224,"name":"VariableDeclaration","src":"24617:6:3"}],"id":2225,"name":"ParameterList","src":"24616:15:3"},{"children":[{"attributes":{"assignments":[2227]},"children":[{"attributes":{"constant":false,"name":"ret","scope":2263,"stateVariable":false,"storageLocation":"memory","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":2226,"name":"ElementaryTypeName","src":"24642:6:3"}],"id":2227,"name":"VariableDeclaration","src":"24642:17:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (string memory)"},"children":[{"attributes":{"name":"string","type":"string"},"id":2228,"name":"ElementaryTypeName","src":"24666:6:3"}],"id":2229,"name":"NewExpression","src":"24662:10:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":687,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2219,"type":"struct strings.slice memory","value":"self"},"id":2230,"name":"Identifier","src":"24673:4:3"}],"id":2231,"name":"MemberAccess","src":"24673:9:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":687,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2221,"type":"struct strings.slice memory","value":"other"},"id":2232,"name":"Identifier","src":"24685:5:3"}],"id":2233,"name":"MemberAccess","src":"24685:10:3"}],"id":2234,"name":"BinaryOperation","src":"24673:22:3"}],"id":2235,"name":"FunctionCall","src":"24662:34:3"}],"id":2236,"name":"VariableDeclarationStatement","src":"24642:54:3"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"retptr","scope":2263,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2237,"name":"ElementaryTypeName","src":"24706:4:3"}],"id":2238,"name":"VariableDeclaration","src":"24706:11:3"}],"id":2239,"name":"VariableDeclarationStatement","src":"24706:11:3"},{"attributes":{"externalReferences":[{"retptr":{"declaration":2238,"isOffset":false,"isSlot":false,"src":"24738:6:3","valueSize":1}},{"ret":{"declaration":2227,"isOffset":false,"isSlot":false,"src":"24752:3:3","valueSize":1}}],"operations":"{\n retptr := add(ret, 32)\n}"},"children":[],"id":2240,"name":"InlineAssembly","src":"24727:50:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":730,"type":"function (uint256,uint256,uint256) pure","value":"memcpy"},"id":2241,"name":"Identifier","src":"24771:6:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2238,"type":"uint256","value":"retptr"},"id":2242,"name":"Identifier","src":"24778:6:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":689,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2219,"type":"struct strings.slice memory","value":"self"},"id":2243,"name":"Identifier","src":"24786:4:3"}],"id":2244,"name":"MemberAccess","src":"24786:9:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":687,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2219,"type":"struct strings.slice memory","value":"self"},"id":2245,"name":"Identifier","src":"24797:4:3"}],"id":2246,"name":"MemberAccess","src":"24797:9:3"}],"id":2247,"name":"FunctionCall","src":"24771:36:3"}],"id":2248,"name":"ExpressionStatement","src":"24771:36:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":730,"type":"function (uint256,uint256,uint256) pure","value":"memcpy"},"id":2249,"name":"Identifier","src":"24817:6:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2238,"type":"uint256","value":"retptr"},"id":2250,"name":"Identifier","src":"24824:6:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":687,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2219,"type":"struct strings.slice memory","value":"self"},"id":2251,"name":"Identifier","src":"24833:4:3"}],"id":2252,"name":"MemberAccess","src":"24833:9:3"}],"id":2253,"name":"BinaryOperation","src":"24824:18:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":689,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2221,"type":"struct strings.slice memory","value":"other"},"id":2254,"name":"Identifier","src":"24844:5:3"}],"id":2255,"name":"MemberAccess","src":"24844:10:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":687,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2221,"type":"struct strings.slice memory","value":"other"},"id":2256,"name":"Identifier","src":"24856:5:3"}],"id":2257,"name":"MemberAccess","src":"24856:10:3"}],"id":2258,"name":"FunctionCall","src":"24817:50:3"}],"id":2259,"name":"ExpressionStatement","src":"24817:50:3"},{"attributes":{"functionReturnParameters":2225},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2227,"type":"string memory","value":"ret"},"id":2260,"name":"Identifier","src":"24884:3:3"}],"id":2261,"name":"Return","src":"24877:10:3"}],"id":2262,"name":"Block","src":"24632:262:3"}],"id":2263,"name":"FunctionDefinition","src":"24539:355:3"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"join","payable":false,"scope":2378,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":2377,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":690,"type":"struct strings.slice"},"id":2264,"name":"UserDefinedTypeName","src":"25244:5:3"}],"id":2265,"name":"VariableDeclaration","src":"25244:17:3"},{"attributes":{"constant":false,"name":"parts","scope":2377,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"struct strings.slice[]"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":690,"type":"struct strings.slice"},"id":2266,"name":"UserDefinedTypeName","src":"25263:5:3"}],"id":2267,"name":"ArrayTypeName","src":"25263:7:3"}],"id":2268,"name":"VariableDeclaration","src":"25263:20:3"}],"id":2269,"name":"ParameterList","src":"25243:41:3"},{"children":[{"attributes":{"constant":false,"name":"","scope":2377,"stateVariable":false,"storageLocation":"memory","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":2270,"name":"ElementaryTypeName","src":"25308:6:3"}],"id":2271,"name":"VariableDeclaration","src":"25308:6:3"}],"id":2272,"name":"ParameterList","src":"25307:15:3"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2268,"type":"struct strings.slice memory[] memory","value":"parts"},"id":2273,"name":"Identifier","src":"25337:5:3"}],"id":2274,"name":"MemberAccess","src":"25337:12:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2275,"name":"Literal","src":"25353:1:3"}],"id":2276,"name":"BinaryOperation","src":"25337:17:3"},{"attributes":{"functionReturnParameters":2272},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"\"","value":""},"id":2277,"name":"Literal","src":"25375:2:3"}],"id":2278,"name":"Return","src":"25368:9:3"}],"id":2279,"name":"IfStatement","src":"25333:44:3"},{"attributes":{"assignments":[2281]},"children":[{"attributes":{"constant":false,"name":"length","scope":2377,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2280,"name":"ElementaryTypeName","src":"25388:4:3"}],"id":2281,"name":"VariableDeclaration","src":"25388:11:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":687,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2265,"type":"struct strings.slice memory","value":"self"},"id":2282,"name":"Identifier","src":"25402:4:3"}],"id":2283,"name":"MemberAccess","src":"25402:9:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2268,"type":"struct strings.slice memory[] memory","value":"parts"},"id":2284,"name":"Identifier","src":"25415:5:3"}],"id":2285,"name":"MemberAccess","src":"25415:12:3"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":2286,"name":"Literal","src":"25430:1:3"}],"id":2287,"name":"BinaryOperation","src":"25415:16:3"}],"id":2288,"name":"TupleExpression","src":"25414:18:3"}],"id":2289,"name":"BinaryOperation","src":"25402:30:3"}],"id":2290,"name":"VariableDeclarationStatement","src":"25388:44:3"},{"children":[{"attributes":{"assignments":[2292]},"children":[{"attributes":{"constant":false,"name":"i","scope":2377,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2291,"name":"ElementaryTypeName","src":"25446:4:3"}],"id":2292,"name":"VariableDeclaration","src":"25446:6:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2293,"name":"Literal","src":"25455:1:3"}],"id":2294,"name":"VariableDeclarationStatement","src":"25446:10:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2292,"type":"uint256","value":"i"},"id":2295,"name":"Identifier","src":"25458:1:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2268,"type":"struct strings.slice memory[] memory","value":"parts"},"id":2296,"name":"Identifier","src":"25462:5:3"}],"id":2297,"name":"MemberAccess","src":"25462:12:3"}],"id":2298,"name":"BinaryOperation","src":"25458:16:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2292,"type":"uint256","value":"i"},"id":2299,"name":"Identifier","src":"25476:1:3"}],"id":2300,"name":"UnaryOperation","src":"25476:3:3"}],"id":2301,"name":"ExpressionStatement","src":"25476:3:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2281,"type":"uint256","value":"length"},"id":2302,"name":"Identifier","src":"25493:6:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":687,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct strings.slice memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2268,"type":"struct strings.slice memory[] memory","value":"parts"},"id":2303,"name":"Identifier","src":"25503:5:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2292,"type":"uint256","value":"i"},"id":2304,"name":"Identifier","src":"25509:1:3"}],"id":2305,"name":"IndexAccess","src":"25503:8:3"}],"id":2306,"name":"MemberAccess","src":"25503:13:3"}],"id":2307,"name":"Assignment","src":"25493:23:3"}],"id":2308,"name":"ExpressionStatement","src":"25493:23:3"}],"id":2309,"name":"ForStatement","src":"25442:74:3"},{"attributes":{"assignments":[2311]},"children":[{"attributes":{"constant":false,"name":"ret","scope":2377,"stateVariable":false,"storageLocation":"memory","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":2310,"name":"ElementaryTypeName","src":"25527:6:3"}],"id":2311,"name":"VariableDeclaration","src":"25527:17:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (string memory)"},"children":[{"attributes":{"name":"string","type":"string"},"id":2312,"name":"ElementaryTypeName","src":"25551:6:3"}],"id":2313,"name":"NewExpression","src":"25547:10:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2281,"type":"uint256","value":"length"},"id":2314,"name":"Identifier","src":"25558:6:3"}],"id":2315,"name":"FunctionCall","src":"25547:18:3"}],"id":2316,"name":"VariableDeclarationStatement","src":"25527:38:3"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"retptr","scope":2377,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2317,"name":"ElementaryTypeName","src":"25575:4:3"}],"id":2318,"name":"VariableDeclaration","src":"25575:11:3"}],"id":2319,"name":"VariableDeclarationStatement","src":"25575:11:3"},{"attributes":{"externalReferences":[{"retptr":{"declaration":2318,"isOffset":false,"isSlot":false,"src":"25607:6:3","valueSize":1}},{"ret":{"declaration":2311,"isOffset":false,"isSlot":false,"src":"25621:3:3","valueSize":1}}],"operations":"{\n retptr := add(ret, 32)\n}"},"children":[],"id":2320,"name":"InlineAssembly","src":"25596:48:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2292,"type":"uint256","value":"i"},"id":2321,"name":"Identifier","src":"25645:1:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2322,"name":"Literal","src":"25649:1:3"}],"id":2323,"name":"Assignment","src":"25645:5:3"}],"id":2324,"name":"ExpressionStatement","src":"25645:5:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2292,"type":"uint256","value":"i"},"id":2325,"name":"Identifier","src":"25652:1:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2268,"type":"struct strings.slice memory[] memory","value":"parts"},"id":2326,"name":"Identifier","src":"25656:5:3"}],"id":2327,"name":"MemberAccess","src":"25656:12:3"}],"id":2328,"name":"BinaryOperation","src":"25652:16:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2292,"type":"uint256","value":"i"},"id":2329,"name":"Identifier","src":"25670:1:3"}],"id":2330,"name":"UnaryOperation","src":"25670:3:3"}],"id":2331,"name":"ExpressionStatement","src":"25670:3:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":730,"type":"function (uint256,uint256,uint256) pure","value":"memcpy"},"id":2332,"name":"Identifier","src":"25689:6:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2318,"type":"uint256","value":"retptr"},"id":2333,"name":"Identifier","src":"25696:6:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":689,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct strings.slice memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2268,"type":"struct strings.slice memory[] memory","value":"parts"},"id":2334,"name":"Identifier","src":"25704:5:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2292,"type":"uint256","value":"i"},"id":2335,"name":"Identifier","src":"25710:1:3"}],"id":2336,"name":"IndexAccess","src":"25704:8:3"}],"id":2337,"name":"MemberAccess","src":"25704:13:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":687,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct strings.slice memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2268,"type":"struct strings.slice memory[] memory","value":"parts"},"id":2338,"name":"Identifier","src":"25719:5:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2292,"type":"uint256","value":"i"},"id":2339,"name":"Identifier","src":"25725:1:3"}],"id":2340,"name":"IndexAccess","src":"25719:8:3"}],"id":2341,"name":"MemberAccess","src":"25719:13:3"}],"id":2342,"name":"FunctionCall","src":"25689:44:3"}],"id":2343,"name":"ExpressionStatement","src":"25689:44:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2318,"type":"uint256","value":"retptr"},"id":2344,"name":"Identifier","src":"25747:6:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":687,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct strings.slice memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2268,"type":"struct strings.slice memory[] memory","value":"parts"},"id":2345,"name":"Identifier","src":"25757:5:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2292,"type":"uint256","value":"i"},"id":2346,"name":"Identifier","src":"25763:1:3"}],"id":2347,"name":"IndexAccess","src":"25757:8:3"}],"id":2348,"name":"MemberAccess","src":"25757:13:3"}],"id":2349,"name":"Assignment","src":"25747:23:3"}],"id":2350,"name":"ExpressionStatement","src":"25747:23:3"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2292,"type":"uint256","value":"i"},"id":2351,"name":"Identifier","src":"25788:1:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2268,"type":"struct strings.slice memory[] memory","value":"parts"},"id":2352,"name":"Identifier","src":"25792:5:3"}],"id":2353,"name":"MemberAccess","src":"25792:12:3"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":2354,"name":"Literal","src":"25807:1:3"}],"id":2355,"name":"BinaryOperation","src":"25792:16:3"}],"id":2356,"name":"BinaryOperation","src":"25788:20:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":730,"type":"function (uint256,uint256,uint256) pure","value":"memcpy"},"id":2357,"name":"Identifier","src":"25828:6:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2318,"type":"uint256","value":"retptr"},"id":2358,"name":"Identifier","src":"25835:6:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":689,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2265,"type":"struct strings.slice memory","value":"self"},"id":2359,"name":"Identifier","src":"25843:4:3"}],"id":2360,"name":"MemberAccess","src":"25843:9:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":687,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2265,"type":"struct strings.slice memory","value":"self"},"id":2361,"name":"Identifier","src":"25854:4:3"}],"id":2362,"name":"MemberAccess","src":"25854:9:3"}],"id":2363,"name":"FunctionCall","src":"25828:36:3"}],"id":2364,"name":"ExpressionStatement","src":"25828:36:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2318,"type":"uint256","value":"retptr"},"id":2365,"name":"Identifier","src":"25882:6:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":687,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2265,"type":"struct strings.slice memory","value":"self"},"id":2366,"name":"Identifier","src":"25892:4:3"}],"id":2367,"name":"MemberAccess","src":"25892:9:3"}],"id":2368,"name":"Assignment","src":"25882:19:3"}],"id":2369,"name":"ExpressionStatement","src":"25882:19:3"}],"id":2370,"name":"Block","src":"25810:106:3"}],"id":2371,"name":"IfStatement","src":"25784:132:3"}],"id":2372,"name":"Block","src":"25675:251:3"}],"id":2373,"name":"ForStatement","src":"25641:285:3"},{"attributes":{"functionReturnParameters":2272},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2311,"type":"string memory","value":"ret"},"id":2374,"name":"Identifier","src":"25943:3:3"}],"id":2375,"name":"Return","src":"25936:10:3"}],"id":2376,"name":"Block","src":"25323:630:3"}],"id":2377,"name":"FunctionDefinition","src":"25230:723:3"}],"id":2378,"name":"ContractDefinition","src":"2600:23355:3"}],"id":2379,"name":"SourceUnit","src":"2574:23382:3"}},"internals/controllable.sol":{"AST":{"attributes":{"absolutePath":"internals/controllable.sol","exportedSymbols":{"Controllable":[2434]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".25"]},"id":2380,"name":"PragmaDirective","src":"772:24:4"},{"attributes":{"SourceUnit":2932,"absolutePath":"internals/controller.sol","file":"./controller.sol","scope":2435,"symbolAliases":[null],"unitAlias":""},"id":2381,"name":"ImportDirective","src":"798:26:4"},{"attributes":{"SourceUnit":2983,"absolutePath":"internals/ensResolvable.sol","file":"../internals/ensResolvable.sol","scope":2435,"symbolAliases":[null],"unitAlias":""},"id":2382,"name":"ImportDirective","src":"825:40:4"},{"attributes":{"contractDependencies":[2982],"contractKind":"contract","documentation":"@title Controllable implements access control functionality of the Controller found via ENS.","fullyImplemented":false,"linearizedBaseContracts":[2434,2982],"name":"Controllable","scope":2435},"children":[{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"ENSResolvable","referencedDeclaration":2982,"type":"contract ENSResolvable"},"id":2383,"name":"UserDefinedTypeName","src":"990:13:4"}],"id":2384,"name":"InheritanceSpecifier","src":"990:13:4"},{"attributes":{"constant":false,"name":"_controllerNode","scope":2434,"stateVariable":true,"storageLocation":"default","type":"bytes32","value":null,"visibility":"private"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":2385,"name":"ElementaryTypeName","src":"1087:7:4"}],"id":2386,"name":"VariableDeclaration","src":"1087:31:4"},{"attributes":{"constant":false,"documentation":"@notice Constructor initializes the controller contract object.\n @param _controllerNameHash_ is the ENS name hash of the Controller.","implemented":true,"isConstructor":true,"modifiers":[null],"name":"","payable":false,"scope":2434,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_controllerNameHash_","scope":2396,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":2387,"name":"ElementaryTypeName","src":"1285:7:4"}],"id":2388,"name":"VariableDeclaration","src":"1285:28:4"}],"id":2389,"name":"ParameterList","src":"1284:30:4"},{"attributes":{"parameters":[null]},"children":[],"id":2390,"name":"ParameterList","src":"1324:0:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2386,"type":"bytes32","value":"_controllerNode"},"id":2391,"name":"Identifier","src":"1334:15:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2388,"type":"bytes32","value":"_controllerNameHash_"},"id":2392,"name":"Identifier","src":"1352:20:4"}],"id":2393,"name":"Assignment","src":"1334:38:4"}],"id":2394,"name":"ExpressionStatement","src":"1334:38:4"}],"id":2395,"name":"Block","src":"1324:55:4"}],"id":2396,"name":"FunctionDefinition","src":"1273:106:4"},{"attributes":{"documentation":"@notice Checks if message sender is the controller.","name":"onlyController","visibility":"internal"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":2397,"name":"ParameterList","src":"1468:2:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_918bc5a096178f6e8c423f958a6008c4b24fd25b7a3ca0123b85463c61a2e566","typeString":"literal_string \"sender is not a controller\""}],"overloadedDeclarations":[3588,3589],"referencedDeclaration":3589,"type":"function (bool,string memory) pure","value":"require"},"id":2398,"name":"Identifier","src":"1481:7:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2433,"type":"function (address) view returns (bool)","value":"_isController"},"id":2399,"name":"Identifier","src":"1489:13:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3585,"type":"msg","value":"msg"},"id":2400,"name":"Identifier","src":"1503:3:4"}],"id":2401,"name":"MemberAccess","src":"1503:10:4"}],"id":2402,"name":"FunctionCall","src":"1489:25:4"},{"attributes":{"argumentTypes":null,"hexvalue":"73656e646572206973206e6f74206120636f6e74726f6c6c6572","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"sender is not a controller\"","value":"sender is not a controller"},"id":2403,"name":"Literal","src":"1516:28:4"}],"id":2404,"name":"FunctionCall","src":"1481:64:4"}],"id":2405,"name":"ExpressionStatement","src":"1481:64:4"},{"id":2406,"name":"PlaceholderStatement","src":"1555:1:4"}],"id":2407,"name":"Block","src":"1471:92:4"}],"id":2408,"name":"ModifierDefinition","src":"1445:118:4"},{"attributes":{"constant":true,"documentation":"@return the controller name hash registered in ENS.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"controllerNode","payable":false,"scope":2434,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":2409,"name":"ParameterList","src":"1652:2:4"},{"children":[{"attributes":{"constant":false,"name":"","scope":2416,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":2410,"name":"ElementaryTypeName","src":"1678:7:4"}],"id":2411,"name":"VariableDeclaration","src":"1678:7:4"}],"id":2412,"name":"ParameterList","src":"1677:9:4"},{"children":[{"attributes":{"functionReturnParameters":2412},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2386,"type":"bytes32","value":"_controllerNode"},"id":2413,"name":"Identifier","src":"1704:15:4"}],"id":2414,"name":"Return","src":"1697:22:4"}],"id":2415,"name":"Block","src":"1687:39:4"}],"id":2416,"name":"FunctionDefinition","src":"1629:97:4"},{"attributes":{"constant":true,"documentation":"@return true if the provided account is the controller.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_isController","payable":false,"scope":2434,"stateMutability":"view","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":2433,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2417,"name":"ElementaryTypeName","src":"1819:7:4"}],"id":2418,"name":"VariableDeclaration","src":"1819:16:4"}],"id":2419,"name":"ParameterList","src":"1818:18:4"},{"children":[{"attributes":{"constant":false,"name":"","scope":2433,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2420,"name":"ElementaryTypeName","src":"1860:4:4"}],"id":2421,"name":"VariableDeclaration","src":"1860:4:4"}],"id":2422,"name":"ParameterList","src":"1859:6:4"},{"children":[{"attributes":{"functionReturnParameters":2422},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"isController","referencedDeclaration":2601,"type":"function (address) view external returns (bool)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract IController","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2602,"type":"type(contract IController)","value":"IController"},"id":2423,"name":"Identifier","src":"1883:11:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[null],"referencedDeclaration":2981,"type":"function (bytes32) view returns (address)","value":"_ensResolve"},"id":2424,"name":"Identifier","src":"1895:11:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2386,"type":"bytes32","value":"_controllerNode"},"id":2425,"name":"Identifier","src":"1907:15:4"}],"id":2426,"name":"FunctionCall","src":"1895:28:4"}],"id":2427,"name":"FunctionCall","src":"1883:41:4"}],"id":2428,"name":"MemberAccess","src":"1883:54:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2418,"type":"address","value":"_account"},"id":2429,"name":"Identifier","src":"1938:8:4"}],"id":2430,"name":"FunctionCall","src":"1883:64:4"}],"id":2431,"name":"Return","src":"1876:71:4"}],"id":2432,"name":"Block","src":"1866:88:4"}],"id":2433,"name":"FunctionDefinition","src":"1796:158:4"}],"id":2434,"name":"ContractDefinition","src":"965:992:4"}],"id":2435,"name":"SourceUnit","src":"772:1186:4"}},"internals/controller.sol":{"AST":{"attributes":{"absolutePath":"internals/controller.sol","exportedSymbols":{"Controller":[2931],"IController":[2602]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".25"]},"id":2593,"name":"PragmaDirective","src":"770:24:5"},{"attributes":{"SourceUnit":2592,"absolutePath":"internals/ownable.sol","file":"./ownable.sol","scope":2932,"symbolAliases":[null],"unitAlias":""},"id":2594,"name":"ImportDirective","src":"796:23:5"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"interface","documentation":"@title The IController interface provides access to the isController check.","fullyImplemented":false,"linearizedBaseContracts":[2602],"name":"IController","scope":2932},"children":[{"attributes":{"body":null,"constant":true,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"isController","payable":false,"scope":2602,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"","scope":2601,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2595,"name":"ElementaryTypeName","src":"951:7:5"}],"id":2596,"name":"VariableDeclaration","src":"951:7:5"}],"id":2597,"name":"ParameterList","src":"950:9:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":2601,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2598,"name":"ElementaryTypeName","src":"983:4:5"}],"id":2599,"name":"VariableDeclaration","src":"983:4:5"}],"id":2600,"name":"ParameterList","src":"982:6:5"}],"id":2601,"name":"FunctionDefinition","src":"929:60:5"}],"id":2602,"name":"ContractDefinition","src":"901:90:5"},{"attributes":{"contractDependencies":[2591,2602],"contractKind":"contract","documentation":"@title Controller stores a list of controller addresses that can be used for authentication in other contracts.\n @notice The Controller implements a hierarchy of concepts, Owner, Admin, and the Controllers.\n @dev Owner can change the Admins\n @dev Admins and can the Controllers\n @dev Controllers are used by the application.","fullyImplemented":true,"linearizedBaseContracts":[2931,2591,2602],"name":"Controller","scope":2932},"children":[{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"IController","referencedDeclaration":2602,"type":"contract IController"},"id":2603,"name":"UserDefinedTypeName","src":"1358:11:5"}],"id":2604,"name":"InheritanceSpecifier","src":"1358:11:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"Ownable","referencedDeclaration":2591,"type":"contract Ownable"},"id":2605,"name":"UserDefinedTypeName","src":"1371:7:5"}],"id":2606,"name":"InheritanceSpecifier","src":"1371:7:5"},{"attributes":{"anonymous":false,"documentation":null,"name":"AddedController"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_sender","scope":2612,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2607,"name":"ElementaryTypeName","src":"1408:7:5"}],"id":2608,"name":"VariableDeclaration","src":"1408:15:5"},{"attributes":{"constant":false,"indexed":false,"name":"_controller","scope":2612,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2609,"name":"ElementaryTypeName","src":"1425:7:5"}],"id":2610,"name":"VariableDeclaration","src":"1425:19:5"}],"id":2611,"name":"ParameterList","src":"1407:38:5"}],"id":2612,"name":"EventDefinition","src":"1386:60:5"},{"attributes":{"anonymous":false,"documentation":null,"name":"RemovedController"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_sender","scope":2618,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2613,"name":"ElementaryTypeName","src":"1475:7:5"}],"id":2614,"name":"VariableDeclaration","src":"1475:15:5"},{"attributes":{"constant":false,"indexed":false,"name":"_controller","scope":2618,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2615,"name":"ElementaryTypeName","src":"1492:7:5"}],"id":2616,"name":"VariableDeclaration","src":"1492:19:5"}],"id":2617,"name":"ParameterList","src":"1474:38:5"}],"id":2618,"name":"EventDefinition","src":"1451:62:5"},{"attributes":{"anonymous":false,"documentation":null,"name":"AddedAdmin"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_sender","scope":2624,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2619,"name":"ElementaryTypeName","src":"1536:7:5"}],"id":2620,"name":"VariableDeclaration","src":"1536:15:5"},{"attributes":{"constant":false,"indexed":false,"name":"_admin","scope":2624,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2621,"name":"ElementaryTypeName","src":"1553:7:5"}],"id":2622,"name":"VariableDeclaration","src":"1553:14:5"}],"id":2623,"name":"ParameterList","src":"1535:33:5"}],"id":2624,"name":"EventDefinition","src":"1519:50:5"},{"attributes":{"anonymous":false,"documentation":null,"name":"RemovedAdmin"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_sender","scope":2630,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2625,"name":"ElementaryTypeName","src":"1593:7:5"}],"id":2626,"name":"VariableDeclaration","src":"1593:15:5"},{"attributes":{"constant":false,"indexed":false,"name":"_admin","scope":2630,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2627,"name":"ElementaryTypeName","src":"1610:7:5"}],"id":2628,"name":"VariableDeclaration","src":"1610:14:5"}],"id":2629,"name":"ParameterList","src":"1592:33:5"}],"id":2630,"name":"EventDefinition","src":"1574:52:5"},{"attributes":{"constant":false,"name":"_isAdmin","scope":2931,"stateVariable":true,"storageLocation":"default","type":"mapping(address => bool)","value":null,"visibility":"private"},"children":[{"attributes":{"type":"mapping(address => bool)"},"children":[{"attributes":{"name":"address","type":"address"},"id":2631,"name":"ElementaryTypeName","src":"1641:7:5"},{"attributes":{"name":"bool","type":"bool"},"id":2632,"name":"ElementaryTypeName","src":"1652:4:5"}],"id":2633,"name":"Mapping","src":"1632:25:5"}],"id":2634,"name":"VariableDeclaration","src":"1632:42:5"},{"attributes":{"constant":false,"name":"_adminCount","scope":2931,"stateVariable":true,"storageLocation":"default","type":"uint256","value":null,"visibility":"private"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2635,"name":"ElementaryTypeName","src":"1680:4:5"}],"id":2636,"name":"VariableDeclaration","src":"1680:24:5"},{"attributes":{"constant":false,"name":"_isController","scope":2931,"stateVariable":true,"storageLocation":"default","type":"mapping(address => bool)","value":null,"visibility":"private"},"children":[{"attributes":{"type":"mapping(address => bool)"},"children":[{"attributes":{"name":"address","type":"address"},"id":2637,"name":"ElementaryTypeName","src":"1720:7:5"},{"attributes":{"name":"bool","type":"bool"},"id":2638,"name":"ElementaryTypeName","src":"1731:4:5"}],"id":2639,"name":"Mapping","src":"1711:25:5"}],"id":2640,"name":"VariableDeclaration","src":"1711:47:5"},{"attributes":{"constant":false,"name":"_controllerCount","scope":2931,"stateVariable":true,"storageLocation":"default","type":"uint256","value":null,"visibility":"private"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2641,"name":"ElementaryTypeName","src":"1764:4:5"}],"id":2642,"name":"VariableDeclaration","src":"1764:29:5"},{"attributes":{"constant":false,"documentation":"@notice Constructor initializes the owner with the provided address.\n @param _ownerAddress_ address of the owner.\n @param _transferable_ indicates whether the contract ownership can be transferred.","implemented":true,"isConstructor":true,"name":"","payable":false,"scope":2931,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"_ownerAddress_","scope":2654,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2643,"name":"ElementaryTypeName","src":"2032:7:5"}],"id":2644,"name":"VariableDeclaration","src":"2032:22:5"},{"attributes":{"constant":false,"name":"_transferable_","scope":2654,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2645,"name":"ElementaryTypeName","src":"2056:4:5"}],"id":2646,"name":"VariableDeclaration","src":"2056:19:5"}],"id":2647,"name":"ParameterList","src":"2031:45:5"},{"attributes":{"parameters":[null]},"children":[],"id":2652,"name":"ParameterList","src":"2124:0:5"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2591,"type":"type(contract Ownable)","value":"Ownable"},"id":2648,"name":"Identifier","src":"2077:7:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2644,"type":"address","value":"_ownerAddress_"},"id":2649,"name":"Identifier","src":"2085:14:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2646,"type":"bool","value":"_transferable_"},"id":2650,"name":"Identifier","src":"2101:14:5"}],"id":2651,"name":"ModifierInvocation","src":"2077:39:5"},{"attributes":{"statements":[null]},"children":[],"id":2653,"name":"Block","src":"2124:3:5"}],"id":2654,"name":"FunctionDefinition","src":"2020:107:5"},{"attributes":{"documentation":"@notice Checks if message sender is an admin.","name":"onlyAdmin","visibility":"internal"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":2655,"name":"ParameterList","src":"2205:2:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_156cbb05733026f4aa0b363c6a3be5f21b7ab8f248a865cc639a4d928ddeabb8","typeString":"literal_string \"sender is not an admin\""}],"overloadedDeclarations":[3588,3589],"referencedDeclaration":3589,"type":"function (bool,string memory) pure","value":"require"},"id":2656,"name":"Identifier","src":"2218:7:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2754,"type":"function (address) view returns (bool)","value":"isAdmin"},"id":2657,"name":"Identifier","src":"2226:7:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3585,"type":"msg","value":"msg"},"id":2658,"name":"Identifier","src":"2234:3:5"}],"id":2659,"name":"MemberAccess","src":"2234:10:5"}],"id":2660,"name":"FunctionCall","src":"2226:19:5"},{"attributes":{"argumentTypes":null,"hexvalue":"73656e646572206973206e6f7420616e2061646d696e","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"sender is not an admin\"","value":"sender is not an admin"},"id":2661,"name":"Literal","src":"2247:24:5"}],"id":2662,"name":"FunctionCall","src":"2218:54:5"}],"id":2663,"name":"ExpressionStatement","src":"2218:54:5"},{"id":2664,"name":"PlaceholderStatement","src":"2282:1:5"}],"id":2665,"name":"Block","src":"2208:82:5"}],"id":2666,"name":"ModifierDefinition","src":"2187:103:5"},{"attributes":{"documentation":"@notice Checks if message sender is a controller.","name":"onlyController","visibility":"internal"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":2667,"name":"ParameterList","src":"2377:2:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_918bc5a096178f6e8c423f958a6008c4b24fd25b7a3ca0123b85463c61a2e566","typeString":"literal_string \"sender is not a controller\""}],"overloadedDeclarations":[3588,3589],"referencedDeclaration":3589,"type":"function (bool,string memory) pure","value":"require"},"id":2668,"name":"Identifier","src":"2390:7:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2766,"type":"function (address) view returns (bool)","value":"isController"},"id":2669,"name":"Identifier","src":"2398:12:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3585,"type":"msg","value":"msg"},"id":2670,"name":"Identifier","src":"2411:3:5"}],"id":2671,"name":"MemberAccess","src":"2411:10:5"}],"id":2672,"name":"FunctionCall","src":"2398:24:5"},{"attributes":{"argumentTypes":null,"hexvalue":"73656e646572206973206e6f74206120636f6e74726f6c6c6572","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"sender is not a controller\"","value":"sender is not a controller"},"id":2673,"name":"Literal","src":"2424:28:5"}],"id":2674,"name":"FunctionCall","src":"2390:63:5"}],"id":2675,"name":"ExpressionStatement","src":"2390:63:5"},{"id":2676,"name":"PlaceholderStatement","src":"2463:1:5"}],"id":2677,"name":"Block","src":"2380:91:5"}],"id":2678,"name":"ModifierDefinition","src":"2354:117:5"},{"attributes":{"constant":false,"documentation":"@notice Add a new admin to the list of admins.\n @param _account address to add to the list of admins.","implemented":true,"isConstructor":false,"name":"addAdmin","payable":false,"scope":2931,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":2690,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2679,"name":"ElementaryTypeName","src":"2612:7:5"}],"id":2680,"name":"VariableDeclaration","src":"2612:16:5"}],"id":2681,"name":"ParameterList","src":"2611:18:5"},{"attributes":{"parameters":[null]},"children":[],"id":2684,"name":"ParameterList","src":"2649:0:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2493,"type":"modifier ()","value":"onlyOwner"},"id":2682,"name":"Identifier","src":"2639:9:5"}],"id":2683,"name":"ModifierInvocation","src":"2639:9:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2820,"type":"function (address)","value":"_addAdmin"},"id":2685,"name":"Identifier","src":"2659:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2680,"type":"address","value":"_account"},"id":2686,"name":"Identifier","src":"2669:8:5"}],"id":2687,"name":"FunctionCall","src":"2659:19:5"}],"id":2688,"name":"ExpressionStatement","src":"2659:19:5"}],"id":2689,"name":"Block","src":"2649:36:5"}],"id":2690,"name":"FunctionDefinition","src":"2594:91:5"},{"attributes":{"constant":false,"documentation":"@notice Remove a admin from the list of admins.\n @param _account address to remove from the list of admins.","implemented":true,"isConstructor":false,"name":"removeAdmin","payable":false,"scope":2931,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":2702,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2691,"name":"ElementaryTypeName","src":"2835:7:5"}],"id":2692,"name":"VariableDeclaration","src":"2835:16:5"}],"id":2693,"name":"ParameterList","src":"2834:18:5"},{"attributes":{"parameters":[null]},"children":[],"id":2696,"name":"ParameterList","src":"2872:0:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2493,"type":"modifier ()","value":"onlyOwner"},"id":2694,"name":"Identifier","src":"2862:9:5"}],"id":2695,"name":"ModifierInvocation","src":"2862:9:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2848,"type":"function (address)","value":"_removeAdmin"},"id":2697,"name":"Identifier","src":"2882:12:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2692,"type":"address","value":"_account"},"id":2698,"name":"Identifier","src":"2895:8:5"}],"id":2699,"name":"FunctionCall","src":"2882:22:5"}],"id":2700,"name":"ExpressionStatement","src":"2882:22:5"}],"id":2701,"name":"Block","src":"2872:39:5"}],"id":2702,"name":"FunctionDefinition","src":"2814:97:5"},{"attributes":{"constant":true,"documentation":"@return the current number of admins.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"adminCount","payable":false,"scope":2931,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":2703,"name":"ParameterList","src":"2982:2:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":2710,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2704,"name":"ElementaryTypeName","src":"3008:4:5"}],"id":2705,"name":"VariableDeclaration","src":"3008:4:5"}],"id":2706,"name":"ParameterList","src":"3007:6:5"},{"children":[{"attributes":{"functionReturnParameters":2706},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2636,"type":"uint256","value":"_adminCount"},"id":2707,"name":"Identifier","src":"3031:11:5"}],"id":2708,"name":"Return","src":"3024:18:5"}],"id":2709,"name":"Block","src":"3014:35:5"}],"id":2710,"name":"FunctionDefinition","src":"2963:86:5"},{"attributes":{"constant":false,"documentation":"@notice Add a new controller to the list of controllers.\n @param _account address to add to the list of controllers.","implemented":true,"isConstructor":false,"name":"addController","payable":false,"scope":2931,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":2722,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2711,"name":"ElementaryTypeName","src":"3210:7:5"}],"id":2712,"name":"VariableDeclaration","src":"3210:16:5"}],"id":2713,"name":"ParameterList","src":"3209:18:5"},{"attributes":{"parameters":[null]},"children":[],"id":2716,"name":"ParameterList","src":"3247:0:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2666,"type":"modifier ()","value":"onlyAdmin"},"id":2714,"name":"Identifier","src":"3237:9:5"}],"id":2715,"name":"ModifierInvocation","src":"3237:9:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2902,"type":"function (address)","value":"_addController"},"id":2717,"name":"Identifier","src":"3257:14:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2712,"type":"address","value":"_account"},"id":2718,"name":"Identifier","src":"3272:8:5"}],"id":2719,"name":"FunctionCall","src":"3257:24:5"}],"id":2720,"name":"ExpressionStatement","src":"3257:24:5"}],"id":2721,"name":"Block","src":"3247:41:5"}],"id":2722,"name":"FunctionDefinition","src":"3187:101:5"},{"attributes":{"constant":false,"documentation":"@notice Remove a controller from the list of controllers.\n @param _account address to remove from the list of controllers.","implemented":true,"isConstructor":false,"name":"removeController","payable":false,"scope":2931,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":2734,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2723,"name":"ElementaryTypeName","src":"3458:7:5"}],"id":2724,"name":"VariableDeclaration","src":"3458:16:5"}],"id":2725,"name":"ParameterList","src":"3457:18:5"},{"attributes":{"parameters":[null]},"children":[],"id":2728,"name":"ParameterList","src":"3495:0:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2666,"type":"modifier ()","value":"onlyAdmin"},"id":2726,"name":"Identifier","src":"3485:9:5"}],"id":2727,"name":"ModifierInvocation","src":"3485:9:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2930,"type":"function (address)","value":"_removeController"},"id":2729,"name":"Identifier","src":"3505:17:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2724,"type":"address","value":"_account"},"id":2730,"name":"Identifier","src":"3523:8:5"}],"id":2731,"name":"FunctionCall","src":"3505:27:5"}],"id":2732,"name":"ExpressionStatement","src":"3505:27:5"}],"id":2733,"name":"Block","src":"3495:44:5"}],"id":2734,"name":"FunctionDefinition","src":"3432:107:5"},{"attributes":{"constant":true,"documentation":"@notice count the Controllers\n @return the current number of controllers.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"controllerCount","payable":false,"scope":2931,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":2735,"name":"ParameterList","src":"3658:2:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":2742,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2736,"name":"ElementaryTypeName","src":"3684:4:5"}],"id":2737,"name":"VariableDeclaration","src":"3684:4:5"}],"id":2738,"name":"ParameterList","src":"3683:6:5"},{"children":[{"attributes":{"functionReturnParameters":2738},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2642,"type":"uint256","value":"_controllerCount"},"id":2739,"name":"Identifier","src":"3707:16:5"}],"id":2740,"name":"Return","src":"3700:23:5"}],"id":2741,"name":"Block","src":"3690:40:5"}],"id":2742,"name":"FunctionDefinition","src":"3634:96:5"},{"attributes":{"constant":true,"documentation":"@notice is an address an Admin?\n @return true if the provided account is an admin.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"isAdmin","payable":false,"scope":2931,"stateMutability":"view","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":2754,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2743,"name":"ElementaryTypeName","src":"3851:7:5"}],"id":2744,"name":"VariableDeclaration","src":"3851:16:5"}],"id":2745,"name":"ParameterList","src":"3850:18:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":2754,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2746,"name":"ElementaryTypeName","src":"3890:4:5"}],"id":2747,"name":"VariableDeclaration","src":"3890:4:5"}],"id":2748,"name":"ParameterList","src":"3889:6:5"},{"children":[{"attributes":{"functionReturnParameters":2748},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2634,"type":"mapping(address => bool)","value":"_isAdmin"},"id":2749,"name":"Identifier","src":"3913:8:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2744,"type":"address","value":"_account"},"id":2750,"name":"Identifier","src":"3922:8:5"}],"id":2751,"name":"IndexAccess","src":"3913:18:5"}],"id":2752,"name":"Return","src":"3906:25:5"}],"id":2753,"name":"Block","src":"3896:42:5"}],"id":2754,"name":"FunctionDefinition","src":"3834:104:5"},{"attributes":{"constant":true,"documentation":"@notice is an address a Controller?\n @return true if the provided account is a controller.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"isController","payable":false,"scope":2931,"stateMutability":"view","superFunction":2601,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":2766,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2755,"name":"ElementaryTypeName","src":"4072:7:5"}],"id":2756,"name":"VariableDeclaration","src":"4072:16:5"}],"id":2757,"name":"ParameterList","src":"4071:18:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":2766,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2758,"name":"ElementaryTypeName","src":"4111:4:5"}],"id":2759,"name":"VariableDeclaration","src":"4111:4:5"}],"id":2760,"name":"ParameterList","src":"4110:6:5"},{"children":[{"attributes":{"functionReturnParameters":2760},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2640,"type":"mapping(address => bool)","value":"_isController"},"id":2761,"name":"Identifier","src":"4134:13:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2756,"type":"address","value":"_account"},"id":2762,"name":"Identifier","src":"4148:8:5"}],"id":2763,"name":"IndexAccess","src":"4134:23:5"}],"id":2764,"name":"Return","src":"4127:30:5"}],"id":2765,"name":"Block","src":"4117:47:5"}],"id":2766,"name":"FunctionDefinition","src":"4050:114:5"},{"attributes":{"constant":false,"documentation":"@notice Internal-only function that adds a new admin.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_addAdmin","payable":false,"scope":2931,"stateMutability":"nonpayable","superFunction":null,"visibility":"private"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":2820,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2767,"name":"ElementaryTypeName","src":"4251:7:5"}],"id":2768,"name":"VariableDeclaration","src":"4251:16:5"}],"id":2769,"name":"ParameterList","src":"4250:18:5"},{"attributes":{"parameters":[null]},"children":[],"id":2770,"name":"ParameterList","src":"4277:0:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_491ef411eef1615ecf908753bd22ae846aac933d79b0327335a18e3988db6215","typeString":"literal_string \"provided account is already an admin\""}],"overloadedDeclarations":[3588,3589],"referencedDeclaration":3589,"type":"function (bool,string memory) pure","value":"require"},"id":2771,"name":"Identifier","src":"4287:7:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2634,"type":"mapping(address => bool)","value":"_isAdmin"},"id":2772,"name":"Identifier","src":"4296:8:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2768,"type":"address","value":"_account"},"id":2773,"name":"Identifier","src":"4305:8:5"}],"id":2774,"name":"IndexAccess","src":"4296:18:5"}],"id":2775,"name":"UnaryOperation","src":"4295:19:5"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e7420697320616c726561647920616e2061646d696e","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is already an admin\"","value":"provided account is already an admin"},"id":2776,"name":"Literal","src":"4316:38:5"}],"id":2777,"name":"FunctionCall","src":"4287:68:5"}],"id":2778,"name":"ExpressionStatement","src":"4287:68:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ea5e43d1c86e3916e6efb6c5ad4a915069293195e26cfb0847e731b480c61b69","typeString":"literal_string \"provided account is already a controller\""}],"overloadedDeclarations":[3588,3589],"referencedDeclaration":3589,"type":"function (bool,string memory) pure","value":"require"},"id":2779,"name":"Identifier","src":"4365:7:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2640,"type":"mapping(address => bool)","value":"_isController"},"id":2780,"name":"Identifier","src":"4374:13:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2768,"type":"address","value":"_account"},"id":2781,"name":"Identifier","src":"4388:8:5"}],"id":2782,"name":"IndexAccess","src":"4374:23:5"}],"id":2783,"name":"UnaryOperation","src":"4373:24:5"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e7420697320616c7265616479206120636f6e74726f6c6c6572","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is already a controller\"","value":"provided account is already a controller"},"id":2784,"name":"Literal","src":"4399:42:5"}],"id":2785,"name":"FunctionCall","src":"4365:77:5"}],"id":2786,"name":"ExpressionStatement","src":"4365:77:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_28b510b314348cd3eee423698115cd76923e2c39fff2abeefc9606aa1cd4c741","typeString":"literal_string \"provided account is already the owner\""}],"overloadedDeclarations":[3588,3589],"referencedDeclaration":3589,"type":"function (bool,string memory) pure","value":"require"},"id":2787,"name":"Identifier","src":"4452:7:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2590,"type":"function (address) view returns (bool)","value":"_isOwner"},"id":2788,"name":"Identifier","src":"4461:8:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2768,"type":"address","value":"_account"},"id":2789,"name":"Identifier","src":"4470:8:5"}],"id":2790,"name":"FunctionCall","src":"4461:18:5"}],"id":2791,"name":"UnaryOperation","src":"4460:19:5"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e7420697320616c726561647920746865206f776e6572","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is already the owner\"","value":"provided account is already the owner"},"id":2792,"name":"Literal","src":"4481:39:5"}],"id":2793,"name":"FunctionCall","src":"4452:69:5"}],"id":2794,"name":"ExpressionStatement","src":"4452:69:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_da72d12cc1dab77bb87826430977e9a5d381ba54a70ad14cb2761e202f01ff3b","typeString":"literal_string \"provided account is the zero address\""}],"overloadedDeclarations":[3588,3589],"referencedDeclaration":3589,"type":"function (bool,string memory) pure","value":"require"},"id":2795,"name":"Identifier","src":"4531:7:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2768,"type":"address","value":"_account"},"id":2796,"name":"Identifier","src":"4539:8:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":2797,"name":"ElementaryTypeNameExpression","src":"4551:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2798,"name":"Literal","src":"4559:1:5"}],"id":2799,"name":"FunctionCall","src":"4551:10:5"}],"id":2800,"name":"BinaryOperation","src":"4539:22:5"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e7420697320746865207a65726f2061646472657373","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is the zero address\"","value":"provided account is the zero address"},"id":2801,"name":"Literal","src":"4563:38:5"}],"id":2802,"name":"FunctionCall","src":"4531:71:5"}],"id":2803,"name":"ExpressionStatement","src":"4531:71:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2634,"type":"mapping(address => bool)","value":"_isAdmin"},"id":2804,"name":"Identifier","src":"4612:8:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2768,"type":"address","value":"_account"},"id":2805,"name":"Identifier","src":"4621:8:5"}],"id":2806,"name":"IndexAccess","src":"4612:18:5"},{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":2807,"name":"Literal","src":"4633:4:5"}],"id":2808,"name":"Assignment","src":"4612:25:5"}],"id":2809,"name":"ExpressionStatement","src":"4612:25:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2636,"type":"uint256","value":"_adminCount"},"id":2810,"name":"Identifier","src":"4647:11:5"}],"id":2811,"name":"UnaryOperation","src":"4647:13:5"}],"id":2812,"name":"ExpressionStatement","src":"4647:13:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2624,"type":"function (address,address)","value":"AddedAdmin"},"id":2813,"name":"Identifier","src":"4675:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3585,"type":"msg","value":"msg"},"id":2814,"name":"Identifier","src":"4686:3:5"}],"id":2815,"name":"MemberAccess","src":"4686:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2768,"type":"address","value":"_account"},"id":2816,"name":"Identifier","src":"4698:8:5"}],"id":2817,"name":"FunctionCall","src":"4675:32:5"}],"id":2818,"name":"EmitStatement","src":"4670:37:5"}],"id":2819,"name":"Block","src":"4277:437:5"}],"id":2820,"name":"FunctionDefinition","src":"4232:482:5"},{"attributes":{"constant":false,"documentation":"@notice Internal-only function that removes an existing admin.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_removeAdmin","payable":false,"scope":2931,"stateMutability":"nonpayable","superFunction":null,"visibility":"private"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":2848,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2821,"name":"ElementaryTypeName","src":"4813:7:5"}],"id":2822,"name":"VariableDeclaration","src":"4813:16:5"}],"id":2823,"name":"ParameterList","src":"4812:18:5"},{"attributes":{"parameters":[null]},"children":[],"id":2824,"name":"ParameterList","src":"4839:0:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1c739c60677de73f71e20970ace8544e82a98bdcd16e21df5754e7a2756cbedc","typeString":"literal_string \"provided account is not an admin\""}],"overloadedDeclarations":[3588,3589],"referencedDeclaration":3589,"type":"function (bool,string memory) pure","value":"require"},"id":2825,"name":"Identifier","src":"4849:7:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2634,"type":"mapping(address => bool)","value":"_isAdmin"},"id":2826,"name":"Identifier","src":"4857:8:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2822,"type":"address","value":"_account"},"id":2827,"name":"Identifier","src":"4866:8:5"}],"id":2828,"name":"IndexAccess","src":"4857:18:5"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e74206973206e6f7420616e2061646d696e","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is not an admin\"","value":"provided account is not an admin"},"id":2829,"name":"Literal","src":"4877:34:5"}],"id":2830,"name":"FunctionCall","src":"4849:63:5"}],"id":2831,"name":"ExpressionStatement","src":"4849:63:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2634,"type":"mapping(address => bool)","value":"_isAdmin"},"id":2832,"name":"Identifier","src":"4922:8:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2822,"type":"address","value":"_account"},"id":2833,"name":"Identifier","src":"4931:8:5"}],"id":2834,"name":"IndexAccess","src":"4922:18:5"},{"attributes":{"argumentTypes":null,"hexvalue":"66616c7365","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"false"},"id":2835,"name":"Literal","src":"4943:5:5"}],"id":2836,"name":"Assignment","src":"4922:26:5"}],"id":2837,"name":"ExpressionStatement","src":"4922:26:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"--","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2636,"type":"uint256","value":"_adminCount"},"id":2838,"name":"Identifier","src":"4958:11:5"}],"id":2839,"name":"UnaryOperation","src":"4958:13:5"}],"id":2840,"name":"ExpressionStatement","src":"4958:13:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2630,"type":"function (address,address)","value":"RemovedAdmin"},"id":2841,"name":"Identifier","src":"4986:12:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3585,"type":"msg","value":"msg"},"id":2842,"name":"Identifier","src":"4999:3:5"}],"id":2843,"name":"MemberAccess","src":"4999:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2822,"type":"address","value":"_account"},"id":2844,"name":"Identifier","src":"5011:8:5"}],"id":2845,"name":"FunctionCall","src":"4986:34:5"}],"id":2846,"name":"EmitStatement","src":"4981:39:5"}],"id":2847,"name":"Block","src":"4839:188:5"}],"id":2848,"name":"FunctionDefinition","src":"4791:236:5"},{"attributes":{"constant":false,"documentation":"@notice Internal-only function that adds a new controller.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_addController","payable":false,"scope":2931,"stateMutability":"nonpayable","superFunction":null,"visibility":"private"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":2902,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2849,"name":"ElementaryTypeName","src":"5124:7:5"}],"id":2850,"name":"VariableDeclaration","src":"5124:16:5"}],"id":2851,"name":"ParameterList","src":"5123:18:5"},{"attributes":{"parameters":[null]},"children":[],"id":2852,"name":"ParameterList","src":"5150:0:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_491ef411eef1615ecf908753bd22ae846aac933d79b0327335a18e3988db6215","typeString":"literal_string \"provided account is already an admin\""}],"overloadedDeclarations":[3588,3589],"referencedDeclaration":3589,"type":"function (bool,string memory) pure","value":"require"},"id":2853,"name":"Identifier","src":"5160:7:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2634,"type":"mapping(address => bool)","value":"_isAdmin"},"id":2854,"name":"Identifier","src":"5169:8:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2850,"type":"address","value":"_account"},"id":2855,"name":"Identifier","src":"5178:8:5"}],"id":2856,"name":"IndexAccess","src":"5169:18:5"}],"id":2857,"name":"UnaryOperation","src":"5168:19:5"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e7420697320616c726561647920616e2061646d696e","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is already an admin\"","value":"provided account is already an admin"},"id":2858,"name":"Literal","src":"5189:38:5"}],"id":2859,"name":"FunctionCall","src":"5160:68:5"}],"id":2860,"name":"ExpressionStatement","src":"5160:68:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ea5e43d1c86e3916e6efb6c5ad4a915069293195e26cfb0847e731b480c61b69","typeString":"literal_string \"provided account is already a controller\""}],"overloadedDeclarations":[3588,3589],"referencedDeclaration":3589,"type":"function (bool,string memory) pure","value":"require"},"id":2861,"name":"Identifier","src":"5238:7:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2640,"type":"mapping(address => bool)","value":"_isController"},"id":2862,"name":"Identifier","src":"5247:13:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2850,"type":"address","value":"_account"},"id":2863,"name":"Identifier","src":"5261:8:5"}],"id":2864,"name":"IndexAccess","src":"5247:23:5"}],"id":2865,"name":"UnaryOperation","src":"5246:24:5"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e7420697320616c7265616479206120636f6e74726f6c6c6572","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is already a controller\"","value":"provided account is already a controller"},"id":2866,"name":"Literal","src":"5272:42:5"}],"id":2867,"name":"FunctionCall","src":"5238:77:5"}],"id":2868,"name":"ExpressionStatement","src":"5238:77:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_28b510b314348cd3eee423698115cd76923e2c39fff2abeefc9606aa1cd4c741","typeString":"literal_string \"provided account is already the owner\""}],"overloadedDeclarations":[3588,3589],"referencedDeclaration":3589,"type":"function (bool,string memory) pure","value":"require"},"id":2869,"name":"Identifier","src":"5325:7:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2590,"type":"function (address) view returns (bool)","value":"_isOwner"},"id":2870,"name":"Identifier","src":"5334:8:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2850,"type":"address","value":"_account"},"id":2871,"name":"Identifier","src":"5343:8:5"}],"id":2872,"name":"FunctionCall","src":"5334:18:5"}],"id":2873,"name":"UnaryOperation","src":"5333:19:5"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e7420697320616c726561647920746865206f776e6572","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is already the owner\"","value":"provided account is already the owner"},"id":2874,"name":"Literal","src":"5354:39:5"}],"id":2875,"name":"FunctionCall","src":"5325:69:5"}],"id":2876,"name":"ExpressionStatement","src":"5325:69:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_da72d12cc1dab77bb87826430977e9a5d381ba54a70ad14cb2761e202f01ff3b","typeString":"literal_string \"provided account is the zero address\""}],"overloadedDeclarations":[3588,3589],"referencedDeclaration":3589,"type":"function (bool,string memory) pure","value":"require"},"id":2877,"name":"Identifier","src":"5404:7:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2850,"type":"address","value":"_account"},"id":2878,"name":"Identifier","src":"5412:8:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":2879,"name":"ElementaryTypeNameExpression","src":"5424:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2880,"name":"Literal","src":"5432:1:5"}],"id":2881,"name":"FunctionCall","src":"5424:10:5"}],"id":2882,"name":"BinaryOperation","src":"5412:22:5"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e7420697320746865207a65726f2061646472657373","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is the zero address\"","value":"provided account is the zero address"},"id":2883,"name":"Literal","src":"5436:38:5"}],"id":2884,"name":"FunctionCall","src":"5404:71:5"}],"id":2885,"name":"ExpressionStatement","src":"5404:71:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2640,"type":"mapping(address => bool)","value":"_isController"},"id":2886,"name":"Identifier","src":"5485:13:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2850,"type":"address","value":"_account"},"id":2887,"name":"Identifier","src":"5499:8:5"}],"id":2888,"name":"IndexAccess","src":"5485:23:5"},{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":2889,"name":"Literal","src":"5511:4:5"}],"id":2890,"name":"Assignment","src":"5485:30:5"}],"id":2891,"name":"ExpressionStatement","src":"5485:30:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2642,"type":"uint256","value":"_controllerCount"},"id":2892,"name":"Identifier","src":"5525:16:5"}],"id":2893,"name":"UnaryOperation","src":"5525:18:5"}],"id":2894,"name":"ExpressionStatement","src":"5525:18:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2612,"type":"function (address,address)","value":"AddedController"},"id":2895,"name":"Identifier","src":"5558:15:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3585,"type":"msg","value":"msg"},"id":2896,"name":"Identifier","src":"5574:3:5"}],"id":2897,"name":"MemberAccess","src":"5574:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2850,"type":"address","value":"_account"},"id":2898,"name":"Identifier","src":"5586:8:5"}],"id":2899,"name":"FunctionCall","src":"5558:37:5"}],"id":2900,"name":"EmitStatement","src":"5553:42:5"}],"id":2901,"name":"Block","src":"5150:452:5"}],"id":2902,"name":"FunctionDefinition","src":"5100:502:5"},{"attributes":{"constant":false,"documentation":"@notice Internal-only function that removes an existing controller.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_removeController","payable":false,"scope":2931,"stateMutability":"nonpayable","superFunction":null,"visibility":"private"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":2930,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2903,"name":"ElementaryTypeName","src":"5711:7:5"}],"id":2904,"name":"VariableDeclaration","src":"5711:16:5"}],"id":2905,"name":"ParameterList","src":"5710:18:5"},{"attributes":{"parameters":[null]},"children":[],"id":2906,"name":"ParameterList","src":"5737:0:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_61b6700985eb6a295850095b1dc6d25862c09fd9ea7ce39c0e5f303dfe8ed582","typeString":"literal_string \"provided account is not a controller\""}],"overloadedDeclarations":[3588,3589],"referencedDeclaration":3589,"type":"function (bool,string memory) pure","value":"require"},"id":2907,"name":"Identifier","src":"5747:7:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2640,"type":"mapping(address => bool)","value":"_isController"},"id":2908,"name":"Identifier","src":"5755:13:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2904,"type":"address","value":"_account"},"id":2909,"name":"Identifier","src":"5769:8:5"}],"id":2910,"name":"IndexAccess","src":"5755:23:5"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e74206973206e6f74206120636f6e74726f6c6c6572","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is not a controller\"","value":"provided account is not a controller"},"id":2911,"name":"Literal","src":"5780:38:5"}],"id":2912,"name":"FunctionCall","src":"5747:72:5"}],"id":2913,"name":"ExpressionStatement","src":"5747:72:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2640,"type":"mapping(address => bool)","value":"_isController"},"id":2914,"name":"Identifier","src":"5829:13:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2904,"type":"address","value":"_account"},"id":2915,"name":"Identifier","src":"5843:8:5"}],"id":2916,"name":"IndexAccess","src":"5829:23:5"},{"attributes":{"argumentTypes":null,"hexvalue":"66616c7365","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"false"},"id":2917,"name":"Literal","src":"5855:5:5"}],"id":2918,"name":"Assignment","src":"5829:31:5"}],"id":2919,"name":"ExpressionStatement","src":"5829:31:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"--","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2642,"type":"uint256","value":"_controllerCount"},"id":2920,"name":"Identifier","src":"5870:16:5"}],"id":2921,"name":"UnaryOperation","src":"5870:18:5"}],"id":2922,"name":"ExpressionStatement","src":"5870:18:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2618,"type":"function (address,address)","value":"RemovedController"},"id":2923,"name":"Identifier","src":"5903:17:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3585,"type":"msg","value":"msg"},"id":2924,"name":"Identifier","src":"5921:3:5"}],"id":2925,"name":"MemberAccess","src":"5921:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2904,"type":"address","value":"_account"},"id":2926,"name":"Identifier","src":"5933:8:5"}],"id":2927,"name":"FunctionCall","src":"5903:39:5"}],"id":2928,"name":"EmitStatement","src":"5898:44:5"}],"id":2929,"name":"Block","src":"5737:212:5"}],"id":2930,"name":"FunctionDefinition","src":"5684:265:5"}],"id":2931,"name":"ContractDefinition","src":"1335:4616:5"}],"id":2932,"name":"SourceUnit","src":"770:5182:5"}},"internals/ensResolvable.sol":{"AST":{"attributes":{"absolutePath":"internals/ensResolvable.sol","exportedSymbols":{"ENSResolvable":[2982]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".25"]},"id":2933,"name":"PragmaDirective","src":"773:24:6"},{"attributes":{"SourceUnit":3063,"absolutePath":"externals/ens/ENS.sol","file":"../externals/ens/ENS.sol","scope":2983,"symbolAliases":[null],"unitAlias":""},"id":2934,"name":"ImportDirective","src":"799:34:6"},{"attributes":{"SourceUnit":3571,"absolutePath":"externals/ens/PublicResolver.sol","file":"../externals/ens/PublicResolver.sol","scope":2983,"symbolAliases":[null],"unitAlias":""},"id":2935,"name":"ImportDirective","src":"834:45:6"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"contract","documentation":"@title ENSResolvable - Ethereum Name Service Resolver\n@notice contract should be used to get an address for an ENS nodeHash","fullyImplemented":true,"linearizedBaseContracts":[2982],"name":"ENSResolvable","scope":2983},"children":[{"attributes":{"constant":false,"name":"_ens","scope":2982,"stateVariable":true,"storageLocation":"default","type":"contract ENS","value":null,"visibility":"private"},"children":[{"attributes":{"contractScope":null,"name":"ENS","referencedDeclaration":3062,"type":"contract ENS"},"id":2936,"name":"UserDefinedTypeName","src":"1084:3:6"}],"id":2937,"name":"VariableDeclaration","src":"1084:16:6"},{"attributes":{"constant":false,"name":"_ensRegistry","scope":2982,"stateVariable":true,"storageLocation":"default","type":"address","value":null,"visibility":"private"},"children":[{"attributes":{"name":"address","type":"address"},"id":2938,"name":"ElementaryTypeName","src":"1179:7:6"}],"id":2939,"name":"VariableDeclaration","src":"1179:28:6"},{"attributes":{"constant":false,"documentation":"@param _ensReg_ is the ENS registry used","implemented":true,"isConstructor":true,"modifiers":[null],"name":"","payable":false,"scope":2982,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_ensReg_","scope":2955,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2940,"name":"ElementaryTypeName","src":"1275:7:6"}],"id":2941,"name":"VariableDeclaration","src":"1275:16:6"}],"id":2942,"name":"ParameterList","src":"1274:18:6"},{"attributes":{"parameters":[null]},"children":[],"id":2943,"name":"ParameterList","src":"1302:0:6"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2939,"type":"address","value":"_ensRegistry"},"id":2944,"name":"Identifier","src":"1312:12:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2941,"type":"address","value":"_ensReg_"},"id":2945,"name":"Identifier","src":"1327:8:6"}],"id":2946,"name":"Assignment","src":"1312:23:6"}],"id":2947,"name":"ExpressionStatement","src":"1312:23:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"contract ENS"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2937,"type":"contract ENS","value":"_ens"},"id":2948,"name":"Identifier","src":"1345:4:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract ENS","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":3062,"type":"type(contract ENS)","value":"ENS"},"id":2949,"name":"Identifier","src":"1352:3:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2939,"type":"address","value":"_ensRegistry"},"id":2950,"name":"Identifier","src":"1356:12:6"}],"id":2951,"name":"FunctionCall","src":"1352:17:6"}],"id":2952,"name":"Assignment","src":"1345:24:6"}],"id":2953,"name":"ExpressionStatement","src":"1345:24:6"}],"id":2954,"name":"Block","src":"1302:74:6"}],"id":2955,"name":"FunctionDefinition","src":"1263:113:6"},{"attributes":{"constant":true,"documentation":"@notice this is used to that one can observe which ENS registry is being used","implemented":true,"isConstructor":false,"modifiers":[null],"name":"ensRegistry","payable":false,"scope":2982,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":2956,"name":"ParameterList","src":"1488:2:6"},{"children":[{"attributes":{"constant":false,"name":"","scope":2963,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2957,"name":"ElementaryTypeName","src":"1514:7:6"}],"id":2958,"name":"VariableDeclaration","src":"1514:7:6"}],"id":2959,"name":"ParameterList","src":"1513:9:6"},{"children":[{"attributes":{"functionReturnParameters":2959},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2939,"type":"address","value":"_ensRegistry"},"id":2960,"name":"Identifier","src":"1540:12:6"}],"id":2961,"name":"Return","src":"1533:19:6"}],"id":2962,"name":"Block","src":"1523:36:6"}],"id":2963,"name":"FunctionDefinition","src":"1468:91:6"},{"attributes":{"constant":true,"documentation":"@notice helper function used to get the address of a node Hash\n @param _nodeHash of the ENS entry that needs resolving\n @return the address of the said nodeHash","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_ensResolve","payable":false,"scope":2982,"stateMutability":"view","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_nodeHash","scope":2981,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":2964,"name":"ElementaryTypeName","src":"1769:7:6"}],"id":2965,"name":"VariableDeclaration","src":"1769:17:6"}],"id":2966,"name":"ParameterList","src":"1768:19:6"},{"children":[{"attributes":{"constant":false,"name":"","scope":2981,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2967,"name":"ElementaryTypeName","src":"1811:7:6"}],"id":2968,"name":"VariableDeclaration","src":"1811:7:6"}],"id":2969,"name":"ParameterList","src":"1810:9:6"},{"children":[{"attributes":{"functionReturnParameters":2969},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"addr","referencedDeclaration":3529,"type":"function (bytes32) view external returns (address)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract PublicResolver","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":3570,"type":"type(contract PublicResolver)","value":"PublicResolver"},"id":2970,"name":"Identifier","src":"1837:14:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"resolver","referencedDeclaration":3054,"type":"function (bytes32) view external returns (address)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2937,"type":"contract ENS","value":"_ens"},"id":2971,"name":"Identifier","src":"1852:4:6"}],"id":2972,"name":"MemberAccess","src":"1852:13:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2965,"type":"bytes32","value":"_nodeHash"},"id":2973,"name":"Identifier","src":"1866:9:6"}],"id":2974,"name":"FunctionCall","src":"1852:24:6"}],"id":2975,"name":"FunctionCall","src":"1837:40:6"}],"id":2976,"name":"MemberAccess","src":"1837:45:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2965,"type":"bytes32","value":"_nodeHash"},"id":2977,"name":"Identifier","src":"1883:9:6"}],"id":2978,"name":"FunctionCall","src":"1837:56:6"}],"id":2979,"name":"Return","src":"1830:63:6"}],"id":2980,"name":"Block","src":"1820:80:6"}],"id":2981,"name":"FunctionDefinition","src":"1748:152:6"}],"id":2982,"name":"ContractDefinition","src":"1012:891:6"}],"id":2983,"name":"SourceUnit","src":"773:1131:6"}},"internals/ownable.sol":{"AST":{"attributes":{"absolutePath":"internals/ownable.sol","exportedSymbols":{"Ownable":[2591]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".25"]},"id":2436,"name":"PragmaDirective","src":"767:24:7"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"contract","documentation":"@title Ownable has an owner address and provides basic authorization control functions.\n This contract is modified version of the MIT OpenZepplin Ownable contract\n This contract allows for the transferOwnership operation to be made impossible\n https://github.com/OpenZeppelin/openzeppelin-solidity/blob/master/contracts/ownership/Ownable.sol","fullyImplemented":true,"linearizedBaseContracts":[2591],"name":"Ownable","scope":2592},"children":[{"attributes":{"anonymous":false,"documentation":null,"name":"TransferredOwnership"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_from","scope":2442,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2437,"name":"ElementaryTypeName","src":"1199:7:7"}],"id":2438,"name":"VariableDeclaration","src":"1199:13:7"},{"attributes":{"constant":false,"indexed":false,"name":"_to","scope":2442,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2439,"name":"ElementaryTypeName","src":"1214:7:7"}],"id":2440,"name":"VariableDeclaration","src":"1214:11:7"}],"id":2441,"name":"ParameterList","src":"1198:28:7"}],"id":2442,"name":"EventDefinition","src":"1172:55:7"},{"attributes":{"anonymous":false,"documentation":null,"name":"LockedOwnership"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_locked","scope":2446,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2443,"name":"ElementaryTypeName","src":"1254:7:7"}],"id":2444,"name":"VariableDeclaration","src":"1254:15:7"}],"id":2445,"name":"ParameterList","src":"1253:17:7"}],"id":2446,"name":"EventDefinition","src":"1232:39:7"},{"attributes":{"constant":false,"name":"_owner","scope":2591,"stateVariable":true,"storageLocation":"default","type":"address","value":null,"visibility":"private"},"children":[{"attributes":{"name":"address","type":"address"},"id":2447,"name":"ElementaryTypeName","src":"1277:7:7"}],"id":2448,"name":"VariableDeclaration","src":"1277:22:7"},{"attributes":{"constant":false,"name":"_isTransferable","scope":2591,"stateVariable":true,"storageLocation":"default","type":"bool","value":null,"visibility":"private"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2449,"name":"ElementaryTypeName","src":"1305:4:7"}],"id":2450,"name":"VariableDeclaration","src":"1305:28:7"},{"attributes":{"constant":false,"documentation":"@notice Constructor sets the original owner of the contract and whether or not it is one time transferable.","implemented":true,"isConstructor":true,"modifiers":[null],"name":"","payable":false,"scope":2591,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account_","scope":2481,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2451,"name":"ElementaryTypeName","src":"1468:7:7"}],"id":2452,"name":"VariableDeclaration","src":"1468:17:7"},{"attributes":{"constant":false,"name":"_transferable_","scope":2481,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2453,"name":"ElementaryTypeName","src":"1487:4:7"}],"id":2454,"name":"VariableDeclaration","src":"1487:19:7"}],"id":2455,"name":"ParameterList","src":"1467:40:7"},{"attributes":{"parameters":[null]},"children":[],"id":2456,"name":"ParameterList","src":"1517:0:7"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2448,"type":"address","value":"_owner"},"id":2457,"name":"Identifier","src":"1527:6:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2452,"type":"address","value":"_account_"},"id":2458,"name":"Identifier","src":"1536:9:7"}],"id":2459,"name":"Assignment","src":"1527:18:7"}],"id":2460,"name":"ExpressionStatement","src":"1527:18:7"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2450,"type":"bool","value":"_isTransferable"},"id":2461,"name":"Identifier","src":"1555:15:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2454,"type":"bool","value":"_transferable_"},"id":2462,"name":"Identifier","src":"1573:14:7"}],"id":2463,"name":"Assignment","src":"1555:32:7"}],"id":2464,"name":"ExpressionStatement","src":"1555:32:7"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2450,"type":"bool","value":"_isTransferable"},"id":2465,"name":"Identifier","src":"1671:15:7"}],"id":2466,"name":"UnaryOperation","src":"1670:16:7"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2446,"type":"function (address)","value":"LockedOwnership"},"id":2467,"name":"Identifier","src":"1707:15:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2452,"type":"address","value":"_account_"},"id":2468,"name":"Identifier","src":"1723:9:7"}],"id":2469,"name":"FunctionCall","src":"1707:26:7"}],"id":2470,"name":"EmitStatement","src":"1702:31:7"}],"id":2471,"name":"Block","src":"1688:56:7"}],"id":2472,"name":"IfStatement","src":"1666:78:7"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2442,"type":"function (address,address)","value":"TransferredOwnership"},"id":2473,"name":"Identifier","src":"1758:20:7"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":2474,"name":"ElementaryTypeNameExpression","src":"1779:7:7"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2475,"name":"Literal","src":"1787:1:7"}],"id":2476,"name":"FunctionCall","src":"1779:10:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2452,"type":"address","value":"_account_"},"id":2477,"name":"Identifier","src":"1791:9:7"}],"id":2478,"name":"FunctionCall","src":"1758:43:7"}],"id":2479,"name":"EmitStatement","src":"1753:48:7"}],"id":2480,"name":"Block","src":"1517:291:7"}],"id":2481,"name":"FunctionDefinition","src":"1456:352:7"},{"attributes":{"documentation":"@notice Reverts if called by any account other than the owner.","name":"onlyOwner","visibility":"internal"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":2482,"name":"ParameterList","src":"1903:2:7"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_96d7cc6c06f3d4101b2a14e4ad2906b79dc824ab8a44b63e774a71d2b9c7abd2","typeString":"literal_string \"sender is not an owner\""}],"overloadedDeclarations":[3588,3589],"referencedDeclaration":3589,"type":"function (bool,string memory) pure","value":"require"},"id":2483,"name":"Identifier","src":"1916:7:7"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2590,"type":"function (address) view returns (bool)","value":"_isOwner"},"id":2484,"name":"Identifier","src":"1924:8:7"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3585,"type":"msg","value":"msg"},"id":2485,"name":"Identifier","src":"1933:3:7"}],"id":2486,"name":"MemberAccess","src":"1933:10:7"}],"id":2487,"name":"FunctionCall","src":"1924:20:7"},{"attributes":{"argumentTypes":null,"hexvalue":"73656e646572206973206e6f7420616e206f776e6572","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"sender is not an owner\"","value":"sender is not an owner"},"id":2488,"name":"Literal","src":"1946:24:7"}],"id":2489,"name":"FunctionCall","src":"1916:55:7"}],"id":2490,"name":"ExpressionStatement","src":"1916:55:7"},{"id":2491,"name":"PlaceholderStatement","src":"1981:1:7"}],"id":2492,"name":"Block","src":"1906:83:7"}],"id":2493,"name":"ModifierDefinition","src":"1885:104:7"},{"attributes":{"constant":false,"documentation":"@notice Allows the current owner to transfer control of the contract to a new address.\n @param _account address to transfer ownership to.\n @param _transferable indicates whether to keep the ownership transferable.","implemented":true,"isConstructor":false,"name":"transferOwnership","payable":false,"scope":2591,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":2538,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2494,"name":"ElementaryTypeName","src":"2258:7:7"}],"id":2495,"name":"VariableDeclaration","src":"2258:16:7"},{"attributes":{"constant":false,"name":"_transferable","scope":2538,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2496,"name":"ElementaryTypeName","src":"2276:4:7"}],"id":2497,"name":"VariableDeclaration","src":"2276:18:7"}],"id":2498,"name":"ParameterList","src":"2257:38:7"},{"attributes":{"parameters":[null]},"children":[],"id":2501,"name":"ParameterList","src":"2315:0:7"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2493,"type":"modifier ()","value":"onlyOwner"},"id":2499,"name":"Identifier","src":"2305:9:7"}],"id":2500,"name":"ModifierInvocation","src":"2305:9:7"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b2967f1eb3e333ead270a5eb332284149554452f916a981f27e70894d40a893f","typeString":"literal_string \"ownership is not transferable\""}],"overloadedDeclarations":[3588,3589],"referencedDeclaration":3589,"type":"function (bool,string memory) pure","value":"require"},"id":2502,"name":"Identifier","src":"2380:7:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2450,"type":"bool","value":"_isTransferable"},"id":2503,"name":"Identifier","src":"2388:15:7"},{"attributes":{"argumentTypes":null,"hexvalue":"6f776e657273686970206973206e6f74207472616e7366657261626c65","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"ownership is not transferable\"","value":"ownership is not transferable"},"id":2504,"name":"Literal","src":"2405:31:7"}],"id":2505,"name":"FunctionCall","src":"2380:57:7"}],"id":2506,"name":"ExpressionStatement","src":"2380:57:7"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_be619f073d6b85c603c617050d1729f1cf3b31bf6ae5ae03f35765577d9bb6c8","typeString":"literal_string \"owner cannot be set to zero address\""}],"overloadedDeclarations":[3588,3589],"referencedDeclaration":3589,"type":"function (bool,string memory) pure","value":"require"},"id":2507,"name":"Identifier","src":"2510:7:7"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2495,"type":"address","value":"_account"},"id":2508,"name":"Identifier","src":"2518:8:7"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":2509,"name":"ElementaryTypeNameExpression","src":"2530:7:7"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2510,"name":"Literal","src":"2538:1:7"}],"id":2511,"name":"FunctionCall","src":"2530:10:7"}],"id":2512,"name":"BinaryOperation","src":"2518:22:7"},{"attributes":{"argumentTypes":null,"hexvalue":"6f776e65722063616e6e6f742062652073657420746f207a65726f2061646472657373","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"owner cannot be set to zero address\"","value":"owner cannot be set to zero address"},"id":2513,"name":"Literal","src":"2542:37:7"}],"id":2514,"name":"FunctionCall","src":"2510:70:7"}],"id":2515,"name":"ExpressionStatement","src":"2510:70:7"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2450,"type":"bool","value":"_isTransferable"},"id":2516,"name":"Identifier","src":"2665:15:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2497,"type":"bool","value":"_transferable"},"id":2517,"name":"Identifier","src":"2683:13:7"}],"id":2518,"name":"Assignment","src":"2665:31:7"}],"id":2519,"name":"ExpressionStatement","src":"2665:31:7"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2497,"type":"bool","value":"_transferable"},"id":2520,"name":"Identifier","src":"2780:13:7"}],"id":2521,"name":"UnaryOperation","src":"2779:14:7"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2446,"type":"function (address)","value":"LockedOwnership"},"id":2522,"name":"Identifier","src":"2814:15:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2495,"type":"address","value":"_account"},"id":2523,"name":"Identifier","src":"2830:8:7"}],"id":2524,"name":"FunctionCall","src":"2814:25:7"}],"id":2525,"name":"EmitStatement","src":"2809:30:7"}],"id":2526,"name":"Block","src":"2795:55:7"}],"id":2527,"name":"IfStatement","src":"2775:75:7"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2442,"type":"function (address,address)","value":"TransferredOwnership"},"id":2528,"name":"Identifier","src":"2910:20:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2448,"type":"address","value":"_owner"},"id":2529,"name":"Identifier","src":"2931:6:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2495,"type":"address","value":"_account"},"id":2530,"name":"Identifier","src":"2939:8:7"}],"id":2531,"name":"FunctionCall","src":"2910:38:7"}],"id":2532,"name":"EmitStatement","src":"2905:43:7"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2448,"type":"address","value":"_owner"},"id":2533,"name":"Identifier","src":"3008:6:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2495,"type":"address","value":"_account"},"id":2534,"name":"Identifier","src":"3017:8:7"}],"id":2535,"name":"Assignment","src":"3008:17:7"}],"id":2536,"name":"ExpressionStatement","src":"3008:17:7"}],"id":2537,"name":"Block","src":"2315:717:7"}],"id":2538,"name":"FunctionDefinition","src":"2231:801:7"},{"attributes":{"constant":true,"documentation":"@notice check if the ownership is transferable.\n @return true if the ownership is transferable.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"isTransferable","payable":false,"scope":2591,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":2539,"name":"ParameterList","src":"3172:2:7"},{"children":[{"attributes":{"constant":false,"name":"","scope":2546,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2540,"name":"ElementaryTypeName","src":"3198:4:7"}],"id":2541,"name":"VariableDeclaration","src":"3198:4:7"}],"id":2542,"name":"ParameterList","src":"3197:6:7"},{"children":[{"attributes":{"functionReturnParameters":2542},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2450,"type":"bool","value":"_isTransferable"},"id":2543,"name":"Identifier","src":"3221:15:7"}],"id":2544,"name":"Return","src":"3214:22:7"}],"id":2545,"name":"Block","src":"3204:39:7"}],"id":2546,"name":"FunctionDefinition","src":"3149:94:7"},{"attributes":{"constant":false,"documentation":"@notice Allows the current owner to relinquish control of the contract.\n @dev Renouncing to ownership will leave the contract without an owner and unusable.\n @dev It will not be possible to call the functions with the `onlyOwner` modifier anymore.","implemented":true,"isConstructor":false,"name":"renounceOwnership","payable":false,"scope":2591,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":2547,"name":"ParameterList","src":"3545:2:7"},{"attributes":{"parameters":[null]},"children":[],"id":2550,"name":"ParameterList","src":"3567:0:7"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2493,"type":"modifier ()","value":"onlyOwner"},"id":2548,"name":"Identifier","src":"3557:9:7"}],"id":2549,"name":"ModifierInvocation","src":"3557:9:7"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b2967f1eb3e333ead270a5eb332284149554452f916a981f27e70894d40a893f","typeString":"literal_string \"ownership is not transferable\""}],"overloadedDeclarations":[3588,3589],"referencedDeclaration":3589,"type":"function (bool,string memory) pure","value":"require"},"id":2551,"name":"Identifier","src":"3632:7:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2450,"type":"bool","value":"_isTransferable"},"id":2552,"name":"Identifier","src":"3640:15:7"},{"attributes":{"argumentTypes":null,"hexvalue":"6f776e657273686970206973206e6f74207472616e7366657261626c65","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"ownership is not transferable\"","value":"ownership is not transferable"},"id":2553,"name":"Literal","src":"3657:31:7"}],"id":2554,"name":"FunctionCall","src":"3632:57:7"}],"id":2555,"name":"ExpressionStatement","src":"3632:57:7"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2448,"type":"address","value":"_owner"},"id":2556,"name":"Identifier","src":"3743:6:7"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":2557,"name":"ElementaryTypeNameExpression","src":"3752:7:7"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2558,"name":"Literal","src":"3760:1:7"}],"id":2559,"name":"FunctionCall","src":"3752:10:7"}],"id":2560,"name":"Assignment","src":"3743:19:7"}],"id":2561,"name":"ExpressionStatement","src":"3743:19:7"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2442,"type":"function (address,address)","value":"TransferredOwnership"},"id":2562,"name":"Identifier","src":"3778:20:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2448,"type":"address","value":"_owner"},"id":2563,"name":"Identifier","src":"3799:6:7"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":2564,"name":"ElementaryTypeNameExpression","src":"3807:7:7"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2565,"name":"Literal","src":"3815:1:7"}],"id":2566,"name":"FunctionCall","src":"3807:10:7"}],"id":2567,"name":"FunctionCall","src":"3778:40:7"}],"id":2568,"name":"EmitStatement","src":"3773:45:7"}],"id":2569,"name":"Block","src":"3567:258:7"}],"id":2570,"name":"FunctionDefinition","src":"3519:306:7"},{"attributes":{"constant":true,"documentation":"@notice Find out owner address\n @return address of the owner.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"owner","payable":false,"scope":2591,"stateMutability":"view","superFunction":null,"visibility":"public"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":2571,"name":"ParameterList","src":"3922:2:7"},{"children":[{"attributes":{"constant":false,"name":"","scope":2578,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2572,"name":"ElementaryTypeName","src":"3946:7:7"}],"id":2573,"name":"VariableDeclaration","src":"3946:7:7"}],"id":2574,"name":"ParameterList","src":"3945:9:7"},{"children":[{"attributes":{"functionReturnParameters":2574},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2448,"type":"address","value":"_owner"},"id":2575,"name":"Identifier","src":"3972:6:7"}],"id":2576,"name":"Return","src":"3965:13:7"}],"id":2577,"name":"Block","src":"3955:30:7"}],"id":2578,"name":"FunctionDefinition","src":"3908:77:7"},{"attributes":{"constant":true,"documentation":"@notice Check if owner address\n @return true if sender is the owner of the contract.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_isOwner","payable":false,"scope":2591,"stateMutability":"view","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_address","scope":2590,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2579,"name":"ElementaryTypeName","src":"4109:7:7"}],"id":2580,"name":"VariableDeclaration","src":"4109:16:7"}],"id":2581,"name":"ParameterList","src":"4108:18:7"},{"children":[{"attributes":{"constant":false,"name":"","scope":2590,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2582,"name":"ElementaryTypeName","src":"4150:4:7"}],"id":2583,"name":"VariableDeclaration","src":"4150:4:7"}],"id":2584,"name":"ParameterList","src":"4149:6:7"},{"children":[{"attributes":{"functionReturnParameters":2584},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2580,"type":"address","value":"_address"},"id":2585,"name":"Identifier","src":"4173:8:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2448,"type":"address","value":"_owner"},"id":2586,"name":"Identifier","src":"4185:6:7"}],"id":2587,"name":"BinaryOperation","src":"4173:18:7"}],"id":2588,"name":"Return","src":"4166:25:7"}],"id":2589,"name":"Block","src":"4156:42:7"}],"id":2590,"name":"FunctionDefinition","src":"4091:107:7"}],"id":2591,"name":"ContractDefinition","src":"1149:3051:7"}],"id":2592,"name":"SourceUnit","src":"767:3434:7"}},"internals/tokenWhitelist.sol":{"AST":{"attributes":{"absolutePath":"internals/tokenWhitelist.sol","exportedSymbols":{"ITokenWhitelist":[62],"TokenWhitelist":[555]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".25"]},"id":1,"name":"PragmaDirective","src":"774:24:8"},{"attributes":{"SourceUnit":2592,"absolutePath":"internals/ownable.sol","file":"./ownable.sol","scope":556,"symbolAliases":[null],"unitAlias":""},"id":2,"name":"ImportDirective","src":"800:23:8"},{"attributes":{"SourceUnit":2435,"absolutePath":"internals/controllable.sol","file":"./controllable.sol","scope":556,"symbolAliases":[null],"unitAlias":""},"id":3,"name":"ImportDirective","src":"824:28:8"},{"attributes":{"SourceUnit":2379,"absolutePath":"externals/strings.sol","file":"../externals/strings.sol","scope":556,"symbolAliases":[null],"unitAlias":""},"id":4,"name":"ImportDirective","src":"853:34:8"},{"attributes":{"SourceUnit":684,"absolutePath":"externals/SafeMath.sol","file":"../externals/SafeMath.sol","scope":556,"symbolAliases":[null],"unitAlias":""},"id":5,"name":"ImportDirective","src":"888:35:8"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"interface","documentation":"@title The ITokenWhitelist interface provides access to a whitelist of tokens.","fullyImplemented":false,"linearizedBaseContracts":[62],"name":"ITokenWhitelist","scope":556},"children":[{"attributes":{"body":null,"constant":true,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"getTokenInfo","payable":false,"scope":62,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"","scope":24,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":6,"name":"ElementaryTypeName","src":"1062:7:8"}],"id":7,"name":"VariableDeclaration","src":"1062:7:8"}],"id":8,"name":"ParameterList","src":"1061:9:8"},{"children":[{"attributes":{"constant":false,"name":"","scope":24,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":9,"name":"ElementaryTypeName","src":"1094:6:8"}],"id":10,"name":"VariableDeclaration","src":"1094:6:8"},{"attributes":{"constant":false,"name":"","scope":24,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":11,"name":"ElementaryTypeName","src":"1102:7:8"}],"id":12,"name":"VariableDeclaration","src":"1102:7:8"},{"attributes":{"constant":false,"name":"","scope":24,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":13,"name":"ElementaryTypeName","src":"1111:7:8"}],"id":14,"name":"VariableDeclaration","src":"1111:7:8"},{"attributes":{"constant":false,"name":"","scope":24,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":15,"name":"ElementaryTypeName","src":"1120:4:8"}],"id":16,"name":"VariableDeclaration","src":"1120:4:8"},{"attributes":{"constant":false,"name":"","scope":24,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":17,"name":"ElementaryTypeName","src":"1126:4:8"}],"id":18,"name":"VariableDeclaration","src":"1126:4:8"},{"attributes":{"constant":false,"name":"","scope":24,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":19,"name":"ElementaryTypeName","src":"1132:4:8"}],"id":20,"name":"VariableDeclaration","src":"1132:4:8"},{"attributes":{"constant":false,"name":"","scope":24,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":21,"name":"ElementaryTypeName","src":"1138:7:8"}],"id":22,"name":"VariableDeclaration","src":"1138:7:8"}],"id":23,"name":"ParameterList","src":"1093:53:8"}],"id":24,"name":"FunctionDefinition","src":"1040:107:8"},{"attributes":{"body":null,"constant":true,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"getStablecoinInfo","payable":false,"scope":62,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":25,"name":"ParameterList","src":"1178:2:8"},{"children":[{"attributes":{"constant":false,"name":"","scope":41,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":26,"name":"ElementaryTypeName","src":"1204:6:8"}],"id":27,"name":"VariableDeclaration","src":"1204:6:8"},{"attributes":{"constant":false,"name":"","scope":41,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":28,"name":"ElementaryTypeName","src":"1212:7:8"}],"id":29,"name":"VariableDeclaration","src":"1212:7:8"},{"attributes":{"constant":false,"name":"","scope":41,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":30,"name":"ElementaryTypeName","src":"1221:7:8"}],"id":31,"name":"VariableDeclaration","src":"1221:7:8"},{"attributes":{"constant":false,"name":"","scope":41,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":32,"name":"ElementaryTypeName","src":"1230:4:8"}],"id":33,"name":"VariableDeclaration","src":"1230:4:8"},{"attributes":{"constant":false,"name":"","scope":41,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":34,"name":"ElementaryTypeName","src":"1236:4:8"}],"id":35,"name":"VariableDeclaration","src":"1236:4:8"},{"attributes":{"constant":false,"name":"","scope":41,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":36,"name":"ElementaryTypeName","src":"1242:4:8"}],"id":37,"name":"VariableDeclaration","src":"1242:4:8"},{"attributes":{"constant":false,"name":"","scope":41,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":38,"name":"ElementaryTypeName","src":"1248:7:8"}],"id":39,"name":"VariableDeclaration","src":"1248:7:8"}],"id":40,"name":"ParameterList","src":"1203:53:8"}],"id":41,"name":"FunctionDefinition","src":"1152:105:8"},{"attributes":{"body":null,"constant":true,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"tokenAddressArray","payable":false,"scope":62,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":42,"name":"ParameterList","src":"1288:2:8"},{"children":[{"attributes":{"constant":false,"name":"","scope":47,"stateVariable":false,"storageLocation":"default","type":"address[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"address[]"},"children":[{"attributes":{"name":"address","type":"address"},"id":43,"name":"ElementaryTypeName","src":"1314:7:8"}],"id":44,"name":"ArrayTypeName","src":"1314:9:8"}],"id":45,"name":"VariableDeclaration","src":"1314:9:8"}],"id":46,"name":"ParameterList","src":"1313:11:8"}],"id":47,"name":"FunctionDefinition","src":"1262:63:8"},{"attributes":{"body":null,"constant":false,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"updateTokenRate","payable":false,"scope":62,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"","scope":56,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":48,"name":"ElementaryTypeName","src":"1355:7:8"}],"id":49,"name":"VariableDeclaration","src":"1355:7:8"},{"attributes":{"constant":false,"name":"","scope":56,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":50,"name":"ElementaryTypeName","src":"1364:4:8"}],"id":51,"name":"VariableDeclaration","src":"1364:4:8"},{"attributes":{"constant":false,"name":"","scope":56,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":52,"name":"ElementaryTypeName","src":"1370:4:8"}],"id":53,"name":"VariableDeclaration","src":"1370:4:8"}],"id":54,"name":"ParameterList","src":"1354:21:8"},{"attributes":{"parameters":[null]},"children":[],"id":55,"name":"ParameterList","src":"1384:0:8"}],"id":56,"name":"FunctionDefinition","src":"1330:55:8"},{"attributes":{"body":null,"constant":true,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"stablecoin","payable":false,"scope":62,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":57,"name":"ParameterList","src":"1409:2:8"},{"children":[{"attributes":{"constant":false,"name":"","scope":61,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":58,"name":"ElementaryTypeName","src":"1435:7:8"}],"id":59,"name":"VariableDeclaration","src":"1435:7:8"}],"id":60,"name":"ParameterList","src":"1434:9:8"}],"id":61,"name":"FunctionDefinition","src":"1390:54:8"}],"id":62,"name":"ContractDefinition","src":"1008:438:8"},{"attributes":{"contractDependencies":[2434,2591,2982],"contractKind":"contract","documentation":"@title TokenWhitelist stores a list of tokens used by the Consumer Contract Wallet, the Oracle, the TKN Holder and the TKN Licence Contract","fullyImplemented":true,"linearizedBaseContracts":[555,2591,2434,2982],"name":"TokenWhitelist","scope":556},"children":[{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"ENSResolvable","referencedDeclaration":2982,"type":"contract ENSResolvable"},"id":63,"name":"UserDefinedTypeName","src":"1620:13:8"}],"id":64,"name":"InheritanceSpecifier","src":"1620:13:8"},{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"Controllable","referencedDeclaration":2434,"type":"contract Controllable"},"id":65,"name":"UserDefinedTypeName","src":"1635:12:8"}],"id":66,"name":"InheritanceSpecifier","src":"1635:12:8"},{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"Ownable","referencedDeclaration":2591,"type":"contract Ownable"},"id":67,"name":"UserDefinedTypeName","src":"1649:7:8"}],"id":68,"name":"InheritanceSpecifier","src":"1649:7:8"},{"attributes":{"typeName":null},"children":[{"attributes":{"contractScope":null,"name":"strings","referencedDeclaration":2378,"type":"library strings"},"id":69,"name":"UserDefinedTypeName","src":"1669:7:8"}],"id":70,"name":"UsingForDirective","src":"1663:20:8"},{"children":[{"attributes":{"contractScope":null,"name":"SafeMath","referencedDeclaration":683,"type":"library SafeMath"},"id":71,"name":"UserDefinedTypeName","src":"1694:8:8"},{"attributes":{"name":"uint256","type":"uint256"},"id":72,"name":"ElementaryTypeName","src":"1707:7:8"}],"id":73,"name":"UsingForDirective","src":"1688:27:8"},{"attributes":{"anonymous":false,"documentation":null,"name":"UpdatedTokenRate"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_sender","scope":81,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":74,"name":"ElementaryTypeName","src":"1744:7:8"}],"id":75,"name":"VariableDeclaration","src":"1744:15:8"},{"attributes":{"constant":false,"indexed":false,"name":"_token","scope":81,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":76,"name":"ElementaryTypeName","src":"1761:7:8"}],"id":77,"name":"VariableDeclaration","src":"1761:14:8"},{"attributes":{"constant":false,"indexed":false,"name":"_rate","scope":81,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":78,"name":"ElementaryTypeName","src":"1777:4:8"}],"id":79,"name":"VariableDeclaration","src":"1777:10:8"}],"id":80,"name":"ParameterList","src":"1743:45:8"}],"id":81,"name":"EventDefinition","src":"1721:68:8"},{"attributes":{"anonymous":false,"documentation":null,"name":"AddedToken"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_sender","scope":95,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":82,"name":"ElementaryTypeName","src":"1812:7:8"}],"id":83,"name":"VariableDeclaration","src":"1812:15:8"},{"attributes":{"constant":false,"indexed":false,"name":"_token","scope":95,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":84,"name":"ElementaryTypeName","src":"1829:7:8"}],"id":85,"name":"VariableDeclaration","src":"1829:14:8"},{"attributes":{"constant":false,"indexed":false,"name":"_symbol","scope":95,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":86,"name":"ElementaryTypeName","src":"1845:6:8"}],"id":87,"name":"VariableDeclaration","src":"1845:14:8"},{"attributes":{"constant":false,"indexed":false,"name":"_magnitude","scope":95,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":88,"name":"ElementaryTypeName","src":"1861:4:8"}],"id":89,"name":"VariableDeclaration","src":"1861:15:8"},{"attributes":{"constant":false,"indexed":false,"name":"_loadable","scope":95,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":90,"name":"ElementaryTypeName","src":"1878:4:8"}],"id":91,"name":"VariableDeclaration","src":"1878:14:8"},{"attributes":{"constant":false,"indexed":false,"name":"_burnable","scope":95,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":92,"name":"ElementaryTypeName","src":"1894:4:8"}],"id":93,"name":"VariableDeclaration","src":"1894:14:8"}],"id":94,"name":"ParameterList","src":"1811:98:8"}],"id":95,"name":"EventDefinition","src":"1795:115:8"},{"attributes":{"anonymous":false,"documentation":null,"name":"RemovedToken"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_sender","scope":101,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":96,"name":"ElementaryTypeName","src":"1934:7:8"}],"id":97,"name":"VariableDeclaration","src":"1934:15:8"},{"attributes":{"constant":false,"indexed":false,"name":"_token","scope":101,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":98,"name":"ElementaryTypeName","src":"1951:7:8"}],"id":99,"name":"VariableDeclaration","src":"1951:14:8"}],"id":100,"name":"ParameterList","src":"1933:33:8"}],"id":101,"name":"EventDefinition","src":"1915:52:8"},{"attributes":{"canonicalName":"TokenWhitelist.Token","name":"Token","scope":555,"visibility":"public"},"children":[{"attributes":{"constant":false,"name":"symbol","scope":116,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":102,"name":"ElementaryTypeName","src":"1996:6:8"}],"id":103,"name":"VariableDeclaration","src":"1996:13:8"},{"attributes":{"constant":false,"name":"magnitude","scope":116,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":104,"name":"ElementaryTypeName","src":"2038:4:8"}],"id":105,"name":"VariableDeclaration","src":"2038:14:8"},{"attributes":{"constant":false,"name":"rate","scope":116,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":106,"name":"ElementaryTypeName","src":"2079:4:8"}],"id":107,"name":"VariableDeclaration","src":"2079:9:8"},{"attributes":{"constant":false,"name":"available","scope":116,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":108,"name":"ElementaryTypeName","src":"2135:4:8"}],"id":109,"name":"VariableDeclaration","src":"2135:14:8"},{"attributes":{"constant":false,"name":"loadable","scope":116,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":110,"name":"ElementaryTypeName","src":"2203:4:8"}],"id":111,"name":"VariableDeclaration","src":"2203:13:8"},{"attributes":{"constant":false,"name":"burnable","scope":116,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":112,"name":"ElementaryTypeName","src":"2276:4:8"}],"id":113,"name":"VariableDeclaration","src":"2276:13:8"},{"attributes":{"constant":false,"name":"lastUpdate","scope":116,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":114,"name":"ElementaryTypeName","src":"2359:4:8"}],"id":115,"name":"VariableDeclaration","src":"2359:15:8"}],"id":116,"name":"StructDefinition","src":"1973:441:8"},{"attributes":{"constant":false,"name":"_tokenInfoMap","scope":555,"stateVariable":true,"storageLocation":"default","type":"mapping(address => struct TokenWhitelist.Token)","value":null,"visibility":"private"},"children":[{"attributes":{"type":"mapping(address => struct TokenWhitelist.Token)"},"children":[{"attributes":{"name":"address","type":"address"},"id":117,"name":"ElementaryTypeName","src":"2428:7:8"},{"attributes":{"contractScope":null,"name":"Token","referencedDeclaration":116,"type":"struct TokenWhitelist.Token"},"id":118,"name":"UserDefinedTypeName","src":"2439:5:8"}],"id":119,"name":"Mapping","src":"2420:25:8"}],"id":120,"name":"VariableDeclaration","src":"2420:47:8"},{"attributes":{"constant":false,"name":"_tokenAddressArray","scope":555,"stateVariable":true,"storageLocation":"default","type":"address[]","value":null,"visibility":"private"},"children":[{"attributes":{"length":null,"type":"address[]"},"children":[{"attributes":{"name":"address","type":"address"},"id":121,"name":"ElementaryTypeName","src":"2473:7:8"}],"id":122,"name":"ArrayTypeName","src":"2473:9:8"}],"id":123,"name":"VariableDeclaration","src":"2473:36:8"},{"attributes":{"documentation":null,"name":"onlyControllerOrOracle","visibility":"internal"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":124,"name":"ParameterList","src":"2547:2:8"},{"children":[{"attributes":{"assignments":[126]},"children":[{"attributes":{"constant":false,"name":"oracleAddress","scope":146,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":125,"name":"ElementaryTypeName","src":"2560:7:8"}],"id":126,"name":"VariableDeclaration","src":"2560:21:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[null],"referencedDeclaration":2981,"type":"function (bytes32) view returns (address)","value":"_ensResolve"},"id":127,"name":"Identifier","src":"2584:11:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":150,"type":"bytes32","value":"_oracleNode"},"id":128,"name":"Identifier","src":"2596:11:8"}],"id":129,"name":"FunctionCall","src":"2584:24:8"}],"id":130,"name":"VariableDeclarationStatement","src":"2560:48:8"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7f651a1c3852ff2a697b659eaace9616ca61af623afbb095898c910cf89ec35f","typeString":"literal_string \"either oracle or controller\""}],"overloadedDeclarations":[3588,3589],"referencedDeclaration":3589,"type":"function (bool,string memory) pure","value":"require"},"id":131,"name":"Identifier","src":"2618:7:8"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"||","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2433,"type":"function (address) view returns (bool)","value":"_isController"},"id":132,"name":"Identifier","src":"2627:13:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3585,"type":"msg","value":"msg"},"id":133,"name":"Identifier","src":"2641:3:8"}],"id":134,"name":"MemberAccess","src":"2641:10:8"}],"id":135,"name":"FunctionCall","src":"2627:25:8"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3585,"type":"msg","value":"msg"},"id":136,"name":"Identifier","src":"2656:3:8"}],"id":137,"name":"MemberAccess","src":"2656:10:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":126,"type":"address","value":"oracleAddress"},"id":138,"name":"Identifier","src":"2670:13:8"}],"id":139,"name":"BinaryOperation","src":"2656:27:8"}],"id":140,"name":"BinaryOperation","src":"2627:56:8"},{"attributes":{"argumentTypes":null,"hexvalue":"656974686572206f7261636c65206f7220636f6e74726f6c6c6572","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"either oracle or controller\"","value":"either oracle or controller"},"id":141,"name":"Literal","src":"2685:29:8"}],"id":142,"name":"FunctionCall","src":"2618:97:8"}],"id":143,"name":"ExpressionStatement","src":"2618:97:8"},{"id":144,"name":"PlaceholderStatement","src":"2725:1:8"}],"id":145,"name":"Block","src":"2550:183:8"}],"id":146,"name":"ModifierDefinition","src":"2516:217:8"},{"attributes":{"constant":false,"name":"_stablecoin","scope":555,"stateVariable":true,"storageLocation":"default","type":"address","value":null,"visibility":"private"},"children":[{"attributes":{"name":"address","type":"address"},"id":147,"name":"ElementaryTypeName","src":"2782:7:8"}],"id":148,"name":"VariableDeclaration","src":"2782:27:8"},{"attributes":{"constant":false,"name":"_oracleNode","scope":555,"stateVariable":true,"storageLocation":"default","type":"bytes32","value":null,"visibility":"private"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":149,"name":"ElementaryTypeName","src":"2893:7:8"}],"id":150,"name":"VariableDeclaration","src":"2893:27:8"},{"attributes":{"constant":false,"documentation":"@notice Constructor initializes ENSResolvable, Controllable, and Ownable\n @param _oracleNameHash_ is the ENS name hash of the Oracle.\n @param _stabelcoinAddress_ is the address of the stablecoint used by the wallet","implemented":true,"isConstructor":true,"name":"","payable":false,"scope":555,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"_ens_","scope":184,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":151,"name":"ElementaryTypeName","src":"3176:7:8"}],"id":152,"name":"VariableDeclaration","src":"3176:13:8"},{"attributes":{"constant":false,"name":"_oracleNameHash_","scope":184,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":153,"name":"ElementaryTypeName","src":"3191:7:8"}],"id":154,"name":"VariableDeclaration","src":"3191:24:8"},{"attributes":{"constant":false,"name":"_controllerNameHash_","scope":184,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":155,"name":"ElementaryTypeName","src":"3217:7:8"}],"id":156,"name":"VariableDeclaration","src":"3217:28:8"},{"attributes":{"constant":false,"name":"_owner_","scope":184,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":157,"name":"ElementaryTypeName","src":"3247:7:8"}],"id":158,"name":"VariableDeclaration","src":"3247:15:8"},{"attributes":{"constant":false,"name":"_transferable_","scope":184,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":159,"name":"ElementaryTypeName","src":"3264:4:8"}],"id":160,"name":"VariableDeclaration","src":"3264:19:8"},{"attributes":{"constant":false,"name":"_stabelcoinAddress_","scope":184,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":161,"name":"ElementaryTypeName","src":"3285:7:8"}],"id":162,"name":"VariableDeclaration","src":"3285:27:8"}],"id":163,"name":"ParameterList","src":"3175:138:8"},{"attributes":{"parameters":[null]},"children":[],"id":174,"name":"ParameterList","src":"3410:0:8"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2982,"type":"type(contract ENSResolvable)","value":"ENSResolvable"},"id":164,"name":"Identifier","src":"3314:13:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":152,"type":"address","value":"_ens_"},"id":165,"name":"Identifier","src":"3328:5:8"}],"id":166,"name":"ModifierInvocation","src":"3314:20:8"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2434,"type":"type(contract Controllable)","value":"Controllable"},"id":167,"name":"Identifier","src":"3335:12:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":156,"type":"bytes32","value":"_controllerNameHash_"},"id":168,"name":"Identifier","src":"3348:20:8"}],"id":169,"name":"ModifierInvocation","src":"3335:34:8"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2591,"type":"type(contract Ownable)","value":"Ownable"},"id":170,"name":"Identifier","src":"3370:7:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":158,"type":"address","value":"_owner_"},"id":171,"name":"Identifier","src":"3378:7:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":160,"type":"bool","value":"_transferable_"},"id":172,"name":"Identifier","src":"3387:14:8"}],"id":173,"name":"ModifierInvocation","src":"3370:32:8"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":150,"type":"bytes32","value":"_oracleNode"},"id":175,"name":"Identifier","src":"3420:11:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":154,"type":"bytes32","value":"_oracleNameHash_"},"id":176,"name":"Identifier","src":"3434:16:8"}],"id":177,"name":"Assignment","src":"3420:30:8"}],"id":178,"name":"ExpressionStatement","src":"3420:30:8"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":148,"type":"address","value":"_stablecoin"},"id":179,"name":"Identifier","src":"3460:11:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":162,"type":"address","value":"_stabelcoinAddress_"},"id":180,"name":"Identifier","src":"3474:19:8"}],"id":181,"name":"Assignment","src":"3460:33:8"}],"id":182,"name":"ExpressionStatement","src":"3460:33:8"}],"id":183,"name":"Block","src":"3410:90:8"}],"id":184,"name":"FunctionDefinition","src":"3164:336:8"},{"attributes":{"constant":false,"documentation":"@notice Add ERC20 tokens to the list of whitelisted tokens.\n @param _tokens ERC20 token contract addresses.\n @param _symbols ERC20 token names.\n @param _magnitude 10 to the power of number of decimal places used by each ERC20 token.\n @param _loadable is a bool that states whether or not a token is loadable to the TokenCard.\n @param _burnable is a bool that states whether or not a token is burnable in the TKN Holder Contract.\n @param _lastUpdate is a unit representing an ISO datetime e.g. 20180913153211","implemented":true,"isConstructor":false,"name":"addTokens","payable":false,"scope":555,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_tokens","scope":316,"stateVariable":false,"storageLocation":"default","type":"address[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"address[]"},"children":[{"attributes":{"name":"address","type":"address"},"id":185,"name":"ElementaryTypeName","src":"4083:7:8"}],"id":186,"name":"ArrayTypeName","src":"4083:9:8"}],"id":187,"name":"VariableDeclaration","src":"4083:17:8"},{"attributes":{"constant":false,"name":"_symbols","scope":316,"stateVariable":false,"storageLocation":"default","type":"bytes32[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"bytes32[]"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":188,"name":"ElementaryTypeName","src":"4102:7:8"}],"id":189,"name":"ArrayTypeName","src":"4102:9:8"}],"id":190,"name":"VariableDeclaration","src":"4102:18:8"},{"attributes":{"constant":false,"name":"_magnitude","scope":316,"stateVariable":false,"storageLocation":"default","type":"uint256[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"uint256[]"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":191,"name":"ElementaryTypeName","src":"4122:4:8"}],"id":192,"name":"ArrayTypeName","src":"4122:6:8"}],"id":193,"name":"VariableDeclaration","src":"4122:17:8"},{"attributes":{"constant":false,"name":"_loadable","scope":316,"stateVariable":false,"storageLocation":"default","type":"bool[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"bool[]"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":194,"name":"ElementaryTypeName","src":"4141:4:8"}],"id":195,"name":"ArrayTypeName","src":"4141:6:8"}],"id":196,"name":"VariableDeclaration","src":"4141:16:8"},{"attributes":{"constant":false,"name":"_burnable","scope":316,"stateVariable":false,"storageLocation":"default","type":"bool[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"bool[]"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":197,"name":"ElementaryTypeName","src":"4159:4:8"}],"id":198,"name":"ArrayTypeName","src":"4159:6:8"}],"id":199,"name":"VariableDeclaration","src":"4159:16:8"},{"attributes":{"constant":false,"name":"_lastUpdate","scope":316,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":200,"name":"ElementaryTypeName","src":"4177:4:8"}],"id":201,"name":"VariableDeclaration","src":"4177:16:8"}],"id":202,"name":"ParameterList","src":"4082:112:8"},{"attributes":{"parameters":[null]},"children":[],"id":205,"name":"ParameterList","src":"4219:0:8"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2408,"type":"modifier ()","value":"onlyController"},"id":203,"name":"Identifier","src":"4204:14:8"}],"id":204,"name":"ModifierInvocation","src":"4204:14:8"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_229d13192b5da189e34c035711b06ef00014d6b1ae3d20f5919a9f7f0dc28e53","typeString":"literal_string \"parameter lengths do not match\""}],"overloadedDeclarations":[3588,3589],"referencedDeclaration":3589,"type":"function (bool,string memory) pure","value":"require"},"id":206,"name":"Identifier","src":"4290:7:8"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&&","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&&","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&&","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":187,"type":"address[] calldata","value":"_tokens"},"id":207,"name":"Identifier","src":"4298:7:8"}],"id":208,"name":"MemberAccess","src":"4298:14:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":190,"type":"bytes32[] calldata","value":"_symbols"},"id":209,"name":"Identifier","src":"4316:8:8"}],"id":210,"name":"MemberAccess","src":"4316:15:8"}],"id":211,"name":"BinaryOperation","src":"4298:33:8"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":187,"type":"address[] calldata","value":"_tokens"},"id":212,"name":"Identifier","src":"4335:7:8"}],"id":213,"name":"MemberAccess","src":"4335:14:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":193,"type":"uint256[] calldata","value":"_magnitude"},"id":214,"name":"Identifier","src":"4353:10:8"}],"id":215,"name":"MemberAccess","src":"4353:17:8"}],"id":216,"name":"BinaryOperation","src":"4335:35:8"}],"id":217,"name":"BinaryOperation","src":"4298:72:8"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":187,"type":"address[] calldata","value":"_tokens"},"id":218,"name":"Identifier","src":"4374:7:8"}],"id":219,"name":"MemberAccess","src":"4374:14:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":196,"type":"bool[] calldata","value":"_loadable"},"id":220,"name":"Identifier","src":"4392:9:8"}],"id":221,"name":"MemberAccess","src":"4392:16:8"}],"id":222,"name":"BinaryOperation","src":"4374:34:8"}],"id":223,"name":"BinaryOperation","src":"4298:110:8"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":187,"type":"address[] calldata","value":"_tokens"},"id":224,"name":"Identifier","src":"4412:7:8"}],"id":225,"name":"MemberAccess","src":"4412:14:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":196,"type":"bool[] calldata","value":"_loadable"},"id":226,"name":"Identifier","src":"4430:9:8"}],"id":227,"name":"MemberAccess","src":"4430:16:8"}],"id":228,"name":"BinaryOperation","src":"4412:34:8"}],"id":229,"name":"BinaryOperation","src":"4298:148:8"},{"attributes":{"argumentTypes":null,"hexvalue":"706172616d65746572206c656e6774687320646f206e6f74206d61746368","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"parameter lengths do not match\"","value":"parameter lengths do not match"},"id":230,"name":"Literal","src":"4448:32:8"}],"id":231,"name":"FunctionCall","src":"4290:191:8"}],"id":232,"name":"ExpressionStatement","src":"4290:191:8"},{"children":[{"attributes":{"assignments":[234]},"children":[{"attributes":{"constant":false,"name":"i","scope":316,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":233,"name":"ElementaryTypeName","src":"4555:4:8"}],"id":234,"name":"VariableDeclaration","src":"4555:6:8"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":235,"name":"Literal","src":"4564:1:8"}],"id":236,"name":"VariableDeclarationStatement","src":"4555:10:8"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":234,"type":"uint256","value":"i"},"id":237,"name":"Identifier","src":"4567:1:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":187,"type":"address[] calldata","value":"_tokens"},"id":238,"name":"Identifier","src":"4571:7:8"}],"id":239,"name":"MemberAccess","src":"4571:14:8"}],"id":240,"name":"BinaryOperation","src":"4567:18:8"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":234,"type":"uint256","value":"i"},"id":241,"name":"Identifier","src":"4587:1:8"}],"id":242,"name":"UnaryOperation","src":"4587:3:8"}],"id":243,"name":"ExpressionStatement","src":"4587:3:8"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e7eb3a05df4990307bc322b918e16d072d8c2936ee70a5abacdb05979a5cec23","typeString":"literal_string \"token already available\""}],"overloadedDeclarations":[3588,3589],"referencedDeclaration":3589,"type":"function (bool,string memory) pure","value":"require"},"id":244,"name":"Identifier","src":"4669:7:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"available","referencedDeclaration":109,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct TokenWhitelist.Token storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":120,"type":"mapping(address => struct TokenWhitelist.Token storage ref)","value":"_tokenInfoMap"},"id":245,"name":"Identifier","src":"4678:13:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":187,"type":"address[] calldata","value":"_tokens"},"id":246,"name":"Identifier","src":"4692:7:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":234,"type":"uint256","value":"i"},"id":247,"name":"Identifier","src":"4700:1:8"}],"id":248,"name":"IndexAccess","src":"4692:10:8"}],"id":249,"name":"IndexAccess","src":"4678:25:8"}],"id":250,"name":"MemberAccess","src":"4678:35:8"}],"id":251,"name":"UnaryOperation","src":"4677:36:8"},{"attributes":{"argumentTypes":null,"hexvalue":"746f6b656e20616c726561647920617661696c61626c65","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"token already available\"","value":"token already available"},"id":252,"name":"Literal","src":"4715:25:8"}],"id":253,"name":"FunctionCall","src":"4669:72:8"}],"id":254,"name":"ExpressionStatement","src":"4669:72:8"},{"attributes":{"assignments":[256]},"children":[{"attributes":{"constant":false,"name":"symbol","scope":316,"stateVariable":false,"storageLocation":"memory","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":255,"name":"ElementaryTypeName","src":"4801:6:8"}],"id":256,"name":"VariableDeclaration","src":"4801:20:8"},{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"toString","referencedDeclaration":928,"type":"function (struct strings.slice memory) pure returns (string memory)"},"children":[{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"struct strings.slice memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"toSliceB32","referencedDeclaration":883,"type":"function (bytes32) pure returns (struct strings.slice memory)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":190,"type":"bytes32[] calldata","value":"_symbols"},"id":257,"name":"Identifier","src":"4824:8:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":234,"type":"uint256","value":"i"},"id":258,"name":"Identifier","src":"4833:1:8"}],"id":259,"name":"IndexAccess","src":"4824:11:8"}],"id":260,"name":"MemberAccess","src":"4824:22:8"}],"id":261,"name":"FunctionCall","src":"4824:24:8"}],"id":262,"name":"MemberAccess","src":"4824:33:8"}],"id":263,"name":"FunctionCall","src":"4824:35:8"}],"id":264,"name":"VariableDeclarationStatement","src":"4801:58:8"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"struct TokenWhitelist.Token storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"struct TokenWhitelist.Token storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":120,"type":"mapping(address => struct TokenWhitelist.Token storage ref)","value":"_tokenInfoMap"},"id":265,"name":"Identifier","src":"4921:13:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":187,"type":"address[] calldata","value":"_tokens"},"id":266,"name":"Identifier","src":"4935:7:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":234,"type":"uint256","value":"i"},"id":267,"name":"Identifier","src":"4943:1:8"}],"id":268,"name":"IndexAccess","src":"4935:10:8"}],"id":269,"name":"IndexAccess","src":"4921:25:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":true,"lValueRequested":false,"names":["symbol","magnitude","rate","available","loadable","burnable","lastUpdate"],"type":"struct TokenWhitelist.Token memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":116,"type":"type(struct TokenWhitelist.Token storage pointer)","value":"Token"},"id":270,"name":"Identifier","src":"4949:5:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":256,"type":"string memory","value":"symbol"},"id":271,"name":"Identifier","src":"4982:6:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":193,"type":"uint256[] calldata","value":"_magnitude"},"id":272,"name":"Identifier","src":"5018:10:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":234,"type":"uint256","value":"i"},"id":273,"name":"Identifier","src":"5029:1:8"}],"id":274,"name":"IndexAccess","src":"5018:13:8"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":275,"name":"Literal","src":"5056:1:8"},{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":276,"name":"Literal","src":"5087:4:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":196,"type":"bool[] calldata","value":"_loadable"},"id":277,"name":"Identifier","src":"5120:9:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":234,"type":"uint256","value":"i"},"id":278,"name":"Identifier","src":"5130:1:8"}],"id":279,"name":"IndexAccess","src":"5120:12:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":199,"type":"bool[] calldata","value":"_burnable"},"id":280,"name":"Identifier","src":"5160:9:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":234,"type":"uint256","value":"i"},"id":281,"name":"Identifier","src":"5170:1:8"}],"id":282,"name":"IndexAccess","src":"5160:12:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":201,"type":"uint256","value":"_lastUpdate"},"id":283,"name":"Identifier","src":"5203:11:8"}],"id":284,"name":"FunctionCall","src":"4949:284:8"}],"id":285,"name":"Assignment","src":"4921:312:8"}],"id":286,"name":"ExpressionStatement","src":"4921:312:8"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"push","referencedDeclaration":null,"type":"function (address) returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":123,"type":"address[] storage ref","value":"_tokenAddressArray"},"id":287,"name":"Identifier","src":"5305:18:8"}],"id":289,"name":"MemberAccess","src":"5305:23:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":187,"type":"address[] calldata","value":"_tokens"},"id":290,"name":"Identifier","src":"5329:7:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":234,"type":"uint256","value":"i"},"id":291,"name":"Identifier","src":"5337:1:8"}],"id":292,"name":"IndexAccess","src":"5329:10:8"}],"id":293,"name":"FunctionCall","src":"5305:35:8"}],"id":294,"name":"ExpressionStatement","src":"5305:35:8"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"overloadedDeclarations":[null],"referencedDeclaration":95,"type":"function (address,address,string memory,uint256,bool,bool)","value":"AddedToken"},"id":295,"name":"Identifier","src":"5401:10:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3585,"type":"msg","value":"msg"},"id":296,"name":"Identifier","src":"5412:3:8"}],"id":297,"name":"MemberAccess","src":"5412:10:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":187,"type":"address[] calldata","value":"_tokens"},"id":298,"name":"Identifier","src":"5424:7:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":234,"type":"uint256","value":"i"},"id":299,"name":"Identifier","src":"5432:1:8"}],"id":300,"name":"IndexAccess","src":"5424:10:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":256,"type":"string memory","value":"symbol"},"id":301,"name":"Identifier","src":"5436:6:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":193,"type":"uint256[] calldata","value":"_magnitude"},"id":302,"name":"Identifier","src":"5444:10:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":234,"type":"uint256","value":"i"},"id":303,"name":"Identifier","src":"5455:1:8"}],"id":304,"name":"IndexAccess","src":"5444:13:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":196,"type":"bool[] calldata","value":"_loadable"},"id":305,"name":"Identifier","src":"5459:9:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":234,"type":"uint256","value":"i"},"id":306,"name":"Identifier","src":"5469:1:8"}],"id":307,"name":"IndexAccess","src":"5459:12:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":199,"type":"bool[] calldata","value":"_burnable"},"id":308,"name":"Identifier","src":"5473:9:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":234,"type":"uint256","value":"i"},"id":309,"name":"Identifier","src":"5483:1:8"}],"id":310,"name":"IndexAccess","src":"5473:12:8"}],"id":311,"name":"FunctionCall","src":"5401:85:8"}],"id":312,"name":"EmitStatement","src":"5396:90:8"}],"id":313,"name":"Block","src":"4592:905:8"}],"id":314,"name":"ForStatement","src":"4550:947:8"}],"id":315,"name":"Block","src":"4219:1284:8"}],"id":316,"name":"FunctionDefinition","src":"4064:1439:8"},{"attributes":{"constant":false,"documentation":"@notice Remove ERC20 tokens from the whitelist of tokens.\n @param _tokens ERC20 token contract addresses.","implemented":true,"isConstructor":false,"name":"removeTokens","payable":false,"scope":555,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_tokens","scope":406,"stateVariable":false,"storageLocation":"default","type":"address[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"address[]"},"children":[{"attributes":{"name":"address","type":"address"},"id":317,"name":"ElementaryTypeName","src":"5652:7:8"}],"id":318,"name":"ArrayTypeName","src":"5652:9:8"}],"id":319,"name":"VariableDeclaration","src":"5652:17:8"}],"id":320,"name":"ParameterList","src":"5651:19:8"},{"attributes":{"parameters":[null]},"children":[],"id":323,"name":"ParameterList","src":"5695:0:8"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2408,"type":"modifier ()","value":"onlyController"},"id":321,"name":"Identifier","src":"5680:14:8"}],"id":322,"name":"ModifierInvocation","src":"5680:14:8"},{"children":[{"children":[{"attributes":{"assignments":[325]},"children":[{"attributes":{"constant":false,"name":"i","scope":406,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":324,"name":"ElementaryTypeName","src":"5813:4:8"}],"id":325,"name":"VariableDeclaration","src":"5813:6:8"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":326,"name":"Literal","src":"5822:1:8"}],"id":327,"name":"VariableDeclarationStatement","src":"5813:10:8"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":325,"type":"uint256","value":"i"},"id":328,"name":"Identifier","src":"5825:1:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":319,"type":"address[] calldata","value":"_tokens"},"id":329,"name":"Identifier","src":"5829:7:8"}],"id":330,"name":"MemberAccess","src":"5829:14:8"}],"id":331,"name":"BinaryOperation","src":"5825:18:8"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":325,"type":"uint256","value":"i"},"id":332,"name":"Identifier","src":"5845:1:8"}],"id":333,"name":"UnaryOperation","src":"5845:3:8"}],"id":334,"name":"ExpressionStatement","src":"5845:3:8"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d487155ec60125f09758305e6de21696dc3e345a5b0edca0b920691dd5be4852","typeString":"literal_string \"token is not available\""}],"overloadedDeclarations":[3588,3589],"referencedDeclaration":3589,"type":"function (bool,string memory) pure","value":"require"},"id":335,"name":"Identifier","src":"5933:7:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"available","referencedDeclaration":109,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct TokenWhitelist.Token storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":120,"type":"mapping(address => struct TokenWhitelist.Token storage ref)","value":"_tokenInfoMap"},"id":336,"name":"Identifier","src":"5941:13:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":319,"type":"address[] calldata","value":"_tokens"},"id":337,"name":"Identifier","src":"5955:7:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":325,"type":"uint256","value":"i"},"id":338,"name":"Identifier","src":"5963:1:8"}],"id":339,"name":"IndexAccess","src":"5955:10:8"}],"id":340,"name":"IndexAccess","src":"5941:25:8"}],"id":341,"name":"MemberAccess","src":"5941:35:8"},{"attributes":{"argumentTypes":null,"hexvalue":"746f6b656e206973206e6f7420617661696c61626c65","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"token is not available\"","value":"token is not available"},"id":342,"name":"Literal","src":"5978:24:8"}],"id":343,"name":"FunctionCall","src":"5933:70:8"}],"id":344,"name":"ExpressionStatement","src":"5933:70:8"},{"attributes":{"assignments":[346]},"children":[{"attributes":{"constant":false,"name":"token","scope":406,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":345,"name":"ElementaryTypeName","src":"6057:7:8"}],"id":346,"name":"VariableDeclaration","src":"6057:13:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":319,"type":"address[] calldata","value":"_tokens"},"id":347,"name":"Identifier","src":"6073:7:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":325,"type":"uint256","value":"i"},"id":348,"name":"Identifier","src":"6081:1:8"}],"id":349,"name":"IndexAccess","src":"6073:10:8"}],"id":350,"name":"VariableDeclarationStatement","src":"6057:26:8"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"delete","prefix":true,"type":"tuple()"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"struct TokenWhitelist.Token storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":120,"type":"mapping(address => struct TokenWhitelist.Token storage ref)","value":"_tokenInfoMap"},"id":351,"name":"Identifier","src":"6144:13:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":346,"type":"address","value":"token"},"id":352,"name":"Identifier","src":"6158:5:8"}],"id":353,"name":"IndexAccess","src":"6144:20:8"}],"id":354,"name":"UnaryOperation","src":"6137:27:8"}],"id":355,"name":"ExpressionStatement","src":"6137:27:8"},{"children":[{"attributes":{"assignments":[357]},"children":[{"attributes":{"constant":false,"name":"j","scope":406,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":356,"name":"ElementaryTypeName","src":"6246:4:8"}],"id":357,"name":"VariableDeclaration","src":"6246:6:8"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":358,"name":"Literal","src":"6255:1:8"}],"id":359,"name":"VariableDeclarationStatement","src":"6246:10:8"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":357,"type":"uint256","value":"j"},"id":360,"name":"Identifier","src":"6258:1:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sub","referencedDeclaration":638,"type":"function (uint256,uint256) pure returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":123,"type":"address[] storage ref","value":"_tokenAddressArray"},"id":361,"name":"Identifier","src":"6262:18:8"}],"id":362,"name":"MemberAccess","src":"6262:25:8"}],"id":363,"name":"MemberAccess","src":"6262:29:8"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":364,"name":"Literal","src":"6292:1:8"}],"id":365,"name":"FunctionCall","src":"6262:32:8"}],"id":366,"name":"BinaryOperation","src":"6258:36:8"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":357,"type":"uint256","value":"j"},"id":367,"name":"Identifier","src":"6296:1:8"}],"id":368,"name":"UnaryOperation","src":"6296:3:8"}],"id":369,"name":"ExpressionStatement","src":"6296:3:8"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":123,"type":"address[] storage ref","value":"_tokenAddressArray"},"id":370,"name":"Identifier","src":"6323:18:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":357,"type":"uint256","value":"j"},"id":371,"name":"Identifier","src":"6342:1:8"}],"id":372,"name":"IndexAccess","src":"6323:21:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":346,"type":"address","value":"token"},"id":373,"name":"Identifier","src":"6348:5:8"}],"id":374,"name":"BinaryOperation","src":"6323:30:8"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"address"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":123,"type":"address[] storage ref","value":"_tokenAddressArray"},"id":375,"name":"Identifier","src":"6377:18:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":357,"type":"uint256","value":"j"},"id":376,"name":"Identifier","src":"6396:1:8"}],"id":377,"name":"IndexAccess","src":"6377:21:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":123,"type":"address[] storage ref","value":"_tokenAddressArray"},"id":378,"name":"Identifier","src":"6401:18:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sub","referencedDeclaration":638,"type":"function (uint256,uint256) pure returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":123,"type":"address[] storage ref","value":"_tokenAddressArray"},"id":379,"name":"Identifier","src":"6420:18:8"}],"id":380,"name":"MemberAccess","src":"6420:25:8"}],"id":381,"name":"MemberAccess","src":"6420:29:8"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":382,"name":"Literal","src":"6450:1:8"}],"id":383,"name":"FunctionCall","src":"6420:32:8"}],"id":384,"name":"IndexAccess","src":"6401:52:8"}],"id":385,"name":"Assignment","src":"6377:76:8"}],"id":386,"name":"ExpressionStatement","src":"6377:76:8"},{"id":387,"name":"Break","src":"6475:5:8"}],"id":388,"name":"Block","src":"6355:144:8"}],"id":389,"name":"IfStatement","src":"6319:180:8"}],"id":390,"name":"Block","src":"6301:212:8"}],"id":391,"name":"ForStatement","src":"6241:272:8"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"--","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":123,"type":"address[] storage ref","value":"_tokenAddressArray"},"id":392,"name":"Identifier","src":"6526:18:8"}],"id":394,"name":"MemberAccess","src":"6526:25:8"}],"id":395,"name":"UnaryOperation","src":"6526:27:8"}],"id":396,"name":"ExpressionStatement","src":"6526:27:8"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":101,"type":"function (address,address)","value":"RemovedToken"},"id":397,"name":"Identifier","src":"6613:12:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3585,"type":"msg","value":"msg"},"id":398,"name":"Identifier","src":"6626:3:8"}],"id":399,"name":"MemberAccess","src":"6626:10:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":346,"type":"address","value":"token"},"id":400,"name":"Identifier","src":"6638:5:8"}],"id":401,"name":"FunctionCall","src":"6613:31:8"}],"id":402,"name":"EmitStatement","src":"6608:36:8"}],"id":403,"name":"Block","src":"5850:805:8"}],"id":404,"name":"ForStatement","src":"5808:847:8"}],"id":405,"name":"Block","src":"5695:966:8"}],"id":406,"name":"FunctionDefinition","src":"5630:1031:8"},{"attributes":{"constant":false,"documentation":"@notice Update ERC20 token exchange rate.\n @param _token ERC20 token contract address.\n @param _rate ERC20 token exchange rate in wei.\n @param _updateDate date for the token updates. This will be compared to when oracle updates are received.","implemented":true,"isConstructor":false,"name":"updateTokenRate","payable":false,"scope":555,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_token","scope":447,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":407,"name":"ElementaryTypeName","src":"6963:7:8"}],"id":408,"name":"VariableDeclaration","src":"6963:14:8"},{"attributes":{"constant":false,"name":"_rate","scope":447,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":409,"name":"ElementaryTypeName","src":"6979:4:8"}],"id":410,"name":"VariableDeclaration","src":"6979:10:8"},{"attributes":{"constant":false,"name":"_updateDate","scope":447,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":411,"name":"ElementaryTypeName","src":"6991:4:8"}],"id":412,"name":"VariableDeclaration","src":"6991:16:8"}],"id":413,"name":"ParameterList","src":"6962:46:8"},{"attributes":{"parameters":[null]},"children":[],"id":416,"name":"ParameterList","src":"7041:0:8"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":146,"type":"modifier ()","value":"onlyControllerOrOracle"},"id":414,"name":"Identifier","src":"7018:22:8"}],"id":415,"name":"ModifierInvocation","src":"7018:22:8"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d487155ec60125f09758305e6de21696dc3e345a5b0edca0b920691dd5be4852","typeString":"literal_string \"token is not available\""}],"overloadedDeclarations":[3588,3589],"referencedDeclaration":3589,"type":"function (bool,string memory) pure","value":"require"},"id":417,"name":"Identifier","src":"7093:7:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"available","referencedDeclaration":109,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct TokenWhitelist.Token storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":120,"type":"mapping(address => struct TokenWhitelist.Token storage ref)","value":"_tokenInfoMap"},"id":418,"name":"Identifier","src":"7101:13:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":408,"type":"address","value":"_token"},"id":419,"name":"Identifier","src":"7115:6:8"}],"id":420,"name":"IndexAccess","src":"7101:21:8"}],"id":421,"name":"MemberAccess","src":"7101:31:8"},{"attributes":{"argumentTypes":null,"hexvalue":"746f6b656e206973206e6f7420617661696c61626c65","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"token is not available\"","value":"token is not available"},"id":422,"name":"Literal","src":"7134:24:8"}],"id":423,"name":"FunctionCall","src":"7093:66:8"}],"id":424,"name":"ExpressionStatement","src":"7093:66:8"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"rate","referencedDeclaration":107,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct TokenWhitelist.Token storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":120,"type":"mapping(address => struct TokenWhitelist.Token storage ref)","value":"_tokenInfoMap"},"id":425,"name":"Identifier","src":"7205:13:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":408,"type":"address","value":"_token"},"id":426,"name":"Identifier","src":"7219:6:8"}],"id":427,"name":"IndexAccess","src":"7205:21:8"}],"id":428,"name":"MemberAccess","src":"7205:26:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":410,"type":"uint256","value":"_rate"},"id":429,"name":"Identifier","src":"7234:5:8"}],"id":430,"name":"Assignment","src":"7205:34:8"}],"id":431,"name":"ExpressionStatement","src":"7205:34:8"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"lastUpdate","referencedDeclaration":115,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct TokenWhitelist.Token storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":120,"type":"mapping(address => struct TokenWhitelist.Token storage ref)","value":"_tokenInfoMap"},"id":432,"name":"Identifier","src":"7302:13:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":408,"type":"address","value":"_token"},"id":433,"name":"Identifier","src":"7316:6:8"}],"id":434,"name":"IndexAccess","src":"7302:21:8"}],"id":435,"name":"MemberAccess","src":"7302:32:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":412,"type":"uint256","value":"_updateDate"},"id":436,"name":"Identifier","src":"7337:11:8"}],"id":437,"name":"Assignment","src":"7302:46:8"}],"id":438,"name":"ExpressionStatement","src":"7302:46:8"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":81,"type":"function (address,address,uint256)","value":"UpdatedTokenRate"},"id":439,"name":"Identifier","src":"7402:16:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3585,"type":"msg","value":"msg"},"id":440,"name":"Identifier","src":"7419:3:8"}],"id":441,"name":"MemberAccess","src":"7419:10:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":408,"type":"address","value":"_token"},"id":442,"name":"Identifier","src":"7431:6:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":410,"type":"uint256","value":"_rate"},"id":443,"name":"Identifier","src":"7439:5:8"}],"id":444,"name":"FunctionCall","src":"7402:43:8"}],"id":445,"name":"EmitStatement","src":"7397:48:8"}],"id":446,"name":"Block","src":"7041:411:8"}],"id":447,"name":"FunctionDefinition","src":"6938:514:8"},{"attributes":{"constant":true,"documentation":"@notice This returns all of the fields for a given token\n @param _a is the address of a given token\n @return string of the token's symbol\n @return uint of the token's magnitude\n @return uint of the token's exchange rate to ETH\n @return bool whether the token is available\n @return bool whether the token is loadable to the TokenCard\n @return bool whether the token is burnable to the TKN Holder Contract\n @return uint of the lastUpdated time of the token's exchange rate","implemented":true,"isConstructor":false,"modifiers":[null],"name":"getTokenInfo","payable":false,"scope":555,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_a","scope":489,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":448,"name":"ElementaryTypeName","src":"8015:7:8"}],"id":449,"name":"VariableDeclaration","src":"8015:10:8"}],"id":450,"name":"ParameterList","src":"8014:12:8"},{"children":[{"attributes":{"constant":false,"name":"","scope":489,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":451,"name":"ElementaryTypeName","src":"8050:6:8"}],"id":452,"name":"VariableDeclaration","src":"8050:6:8"},{"attributes":{"constant":false,"name":"","scope":489,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":453,"name":"ElementaryTypeName","src":"8058:7:8"}],"id":454,"name":"VariableDeclaration","src":"8058:7:8"},{"attributes":{"constant":false,"name":"","scope":489,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":455,"name":"ElementaryTypeName","src":"8067:7:8"}],"id":456,"name":"VariableDeclaration","src":"8067:7:8"},{"attributes":{"constant":false,"name":"","scope":489,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":457,"name":"ElementaryTypeName","src":"8076:4:8"}],"id":458,"name":"VariableDeclaration","src":"8076:4:8"},{"attributes":{"constant":false,"name":"","scope":489,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":459,"name":"ElementaryTypeName","src":"8082:4:8"}],"id":460,"name":"VariableDeclaration","src":"8082:4:8"},{"attributes":{"constant":false,"name":"","scope":489,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":461,"name":"ElementaryTypeName","src":"8088:4:8"}],"id":462,"name":"VariableDeclaration","src":"8088:4:8"},{"attributes":{"constant":false,"name":"","scope":489,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":463,"name":"ElementaryTypeName","src":"8094:7:8"}],"id":464,"name":"VariableDeclaration","src":"8094:7:8"}],"id":465,"name":"ParameterList","src":"8049:53:8"},{"children":[{"attributes":{"assignments":[467]},"children":[{"attributes":{"constant":false,"name":"tokenInfo","scope":489,"stateVariable":false,"storageLocation":"storage","type":"struct TokenWhitelist.Token","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"Token","referencedDeclaration":116,"type":"struct TokenWhitelist.Token"},"id":466,"name":"UserDefinedTypeName","src":"8113:5:8"}],"id":467,"name":"VariableDeclaration","src":"8113:23:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct TokenWhitelist.Token storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":120,"type":"mapping(address => struct TokenWhitelist.Token storage ref)","value":"_tokenInfoMap"},"id":468,"name":"Identifier","src":"8139:13:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":449,"type":"address","value":"_a"},"id":469,"name":"Identifier","src":"8153:2:8"}],"id":470,"name":"IndexAccess","src":"8139:17:8"}],"id":471,"name":"VariableDeclarationStatement","src":"8113:43:8"},{"attributes":{"functionReturnParameters":465},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"tuple(string storage ref,uint256,uint256,bool,bool,bool,uint256)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"symbol","referencedDeclaration":103,"type":"string storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":467,"type":"struct TokenWhitelist.Token storage pointer","value":"tokenInfo"},"id":472,"name":"Identifier","src":"8174:9:8"}],"id":473,"name":"MemberAccess","src":"8174:16:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"magnitude","referencedDeclaration":105,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":467,"type":"struct TokenWhitelist.Token storage pointer","value":"tokenInfo"},"id":474,"name":"Identifier","src":"8192:9:8"}],"id":475,"name":"MemberAccess","src":"8192:19:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"rate","referencedDeclaration":107,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":467,"type":"struct TokenWhitelist.Token storage pointer","value":"tokenInfo"},"id":476,"name":"Identifier","src":"8213:9:8"}],"id":477,"name":"MemberAccess","src":"8213:14:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"available","referencedDeclaration":109,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":467,"type":"struct TokenWhitelist.Token storage pointer","value":"tokenInfo"},"id":478,"name":"Identifier","src":"8229:9:8"}],"id":479,"name":"MemberAccess","src":"8229:19:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"loadable","referencedDeclaration":111,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":467,"type":"struct TokenWhitelist.Token storage pointer","value":"tokenInfo"},"id":480,"name":"Identifier","src":"8250:9:8"}],"id":481,"name":"MemberAccess","src":"8250:18:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"burnable","referencedDeclaration":113,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":467,"type":"struct TokenWhitelist.Token storage pointer","value":"tokenInfo"},"id":482,"name":"Identifier","src":"8270:9:8"}],"id":483,"name":"MemberAccess","src":"8270:18:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"lastUpdate","referencedDeclaration":115,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":467,"type":"struct TokenWhitelist.Token storage pointer","value":"tokenInfo"},"id":484,"name":"Identifier","src":"8290:9:8"}],"id":485,"name":"MemberAccess","src":"8290:20:8"}],"id":486,"name":"TupleExpression","src":"8173:138:8"}],"id":487,"name":"Return","src":"8166:145:8"}],"id":488,"name":"Block","src":"8103:215:8"}],"id":489,"name":"FunctionDefinition","src":"7993:325:8"},{"attributes":{"constant":true,"documentation":"@notice This returns all of the fields for our StableCoin\n @return string of the token's symbol\n @return uint of the token's magnitude\n @return uint of the token's exchange rate to ETH\n @return bool whether the token is available\n @return bool whether the token is loadable to the TokenCard\n @return bool whether the token is burnable to the TKN Holder Contract\n @return uint of the lastUpdated time of the token's exchange rate","implemented":true,"isConstructor":false,"modifiers":[null],"name":"getStablecoinInfo","payable":false,"scope":555,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":490,"name":"ParameterList","src":"8836:2:8"},{"children":[{"attributes":{"constant":false,"name":"","scope":529,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":491,"name":"ElementaryTypeName","src":"8862:6:8"}],"id":492,"name":"VariableDeclaration","src":"8862:6:8"},{"attributes":{"constant":false,"name":"","scope":529,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":493,"name":"ElementaryTypeName","src":"8870:7:8"}],"id":494,"name":"VariableDeclaration","src":"8870:7:8"},{"attributes":{"constant":false,"name":"","scope":529,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":495,"name":"ElementaryTypeName","src":"8879:7:8"}],"id":496,"name":"VariableDeclaration","src":"8879:7:8"},{"attributes":{"constant":false,"name":"","scope":529,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":497,"name":"ElementaryTypeName","src":"8888:4:8"}],"id":498,"name":"VariableDeclaration","src":"8888:4:8"},{"attributes":{"constant":false,"name":"","scope":529,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":499,"name":"ElementaryTypeName","src":"8894:4:8"}],"id":500,"name":"VariableDeclaration","src":"8894:4:8"},{"attributes":{"constant":false,"name":"","scope":529,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":501,"name":"ElementaryTypeName","src":"8900:4:8"}],"id":502,"name":"VariableDeclaration","src":"8900:4:8"},{"attributes":{"constant":false,"name":"","scope":529,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":503,"name":"ElementaryTypeName","src":"8906:7:8"}],"id":504,"name":"VariableDeclaration","src":"8906:7:8"}],"id":505,"name":"ParameterList","src":"8861:53:8"},{"children":[{"attributes":{"assignments":[507]},"children":[{"attributes":{"constant":false,"name":"stablecoinInfo","scope":529,"stateVariable":false,"storageLocation":"storage","type":"struct TokenWhitelist.Token","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"Token","referencedDeclaration":116,"type":"struct TokenWhitelist.Token"},"id":506,"name":"UserDefinedTypeName","src":"8925:5:8"}],"id":507,"name":"VariableDeclaration","src":"8925:28:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct TokenWhitelist.Token storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":120,"type":"mapping(address => struct TokenWhitelist.Token storage ref)","value":"_tokenInfoMap"},"id":508,"name":"Identifier","src":"8956:13:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":148,"type":"address","value":"_stablecoin"},"id":509,"name":"Identifier","src":"8970:11:8"}],"id":510,"name":"IndexAccess","src":"8956:26:8"}],"id":511,"name":"VariableDeclarationStatement","src":"8925:57:8"},{"attributes":{"functionReturnParameters":505},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"tuple(string storage ref,uint256,uint256,bool,bool,bool,uint256)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"symbol","referencedDeclaration":103,"type":"string storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":507,"type":"struct TokenWhitelist.Token storage pointer","value":"stablecoinInfo"},"id":512,"name":"Identifier","src":"9000:14:8"}],"id":513,"name":"MemberAccess","src":"9000:21:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"magnitude","referencedDeclaration":105,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":507,"type":"struct TokenWhitelist.Token storage pointer","value":"stablecoinInfo"},"id":514,"name":"Identifier","src":"9023:14:8"}],"id":515,"name":"MemberAccess","src":"9023:24:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"rate","referencedDeclaration":107,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":507,"type":"struct TokenWhitelist.Token storage pointer","value":"stablecoinInfo"},"id":516,"name":"Identifier","src":"9049:14:8"}],"id":517,"name":"MemberAccess","src":"9049:19:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"available","referencedDeclaration":109,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":507,"type":"struct TokenWhitelist.Token storage pointer","value":"stablecoinInfo"},"id":518,"name":"Identifier","src":"9070:14:8"}],"id":519,"name":"MemberAccess","src":"9070:24:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"loadable","referencedDeclaration":111,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":507,"type":"struct TokenWhitelist.Token storage pointer","value":"stablecoinInfo"},"id":520,"name":"Identifier","src":"9096:14:8"}],"id":521,"name":"MemberAccess","src":"9096:23:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"burnable","referencedDeclaration":113,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":507,"type":"struct TokenWhitelist.Token storage pointer","value":"stablecoinInfo"},"id":522,"name":"Identifier","src":"9121:14:8"}],"id":523,"name":"MemberAccess","src":"9121:23:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"lastUpdate","referencedDeclaration":115,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":507,"type":"struct TokenWhitelist.Token storage pointer","value":"stablecoinInfo"},"id":524,"name":"Identifier","src":"9146:14:8"}],"id":525,"name":"MemberAccess","src":"9146:25:8"}],"id":526,"name":"TupleExpression","src":"8999:173:8"}],"id":527,"name":"Return","src":"8992:180:8"}],"id":528,"name":"Block","src":"8915:264:8"}],"id":529,"name":"FunctionDefinition","src":"8810:369:8"},{"attributes":{"constant":true,"documentation":"@notice This returns an array of our whitelisted address\n @return address[] of our whitelisted tokens","implemented":true,"isConstructor":false,"modifiers":[null],"name":"tokenAddressArray","payable":false,"scope":555,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":530,"name":"ParameterList","src":"9328:2:8"},{"children":[{"attributes":{"constant":false,"name":"","scope":538,"stateVariable":false,"storageLocation":"default","type":"address[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"address[]"},"children":[{"attributes":{"name":"address","type":"address"},"id":531,"name":"ElementaryTypeName","src":"9354:7:8"}],"id":532,"name":"ArrayTypeName","src":"9354:9:8"}],"id":533,"name":"VariableDeclaration","src":"9354:9:8"}],"id":534,"name":"ParameterList","src":"9353:11:8"},{"children":[{"attributes":{"functionReturnParameters":534},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":123,"type":"address[] storage ref","value":"_tokenAddressArray"},"id":535,"name":"Identifier","src":"9382:18:8"}],"id":536,"name":"Return","src":"9375:25:8"}],"id":537,"name":"Block","src":"9365:42:8"}],"id":538,"name":"FunctionDefinition","src":"9302:105:8"},{"attributes":{"constant":true,"documentation":"@notice This returns the address of our stablecoin of choice\n @return the address of the stablecoin contract.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"stablecoin","payable":false,"scope":555,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":539,"name":"ParameterList","src":"9557:2:8"},{"children":[{"attributes":{"constant":false,"name":"","scope":546,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":540,"name":"ElementaryTypeName","src":"9583:7:8"}],"id":541,"name":"VariableDeclaration","src":"9583:7:8"}],"id":542,"name":"ParameterList","src":"9582:9:8"},{"children":[{"attributes":{"functionReturnParameters":542},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":148,"type":"address","value":"_stablecoin"},"id":543,"name":"Identifier","src":"9609:11:8"}],"id":544,"name":"Return","src":"9602:18:8"}],"id":545,"name":"Block","src":"9592:35:8"}],"id":546,"name":"FunctionDefinition","src":"9538:89:8"},{"attributes":{"constant":true,"documentation":"@notice this returns the node hash of our Oracle\n @return the oracle node registered in ENS.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"oracleNode","payable":false,"scope":555,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":547,"name":"ParameterList","src":"9760:2:8"},{"children":[{"attributes":{"constant":false,"name":"","scope":554,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":548,"name":"ElementaryTypeName","src":"9786:7:8"}],"id":549,"name":"VariableDeclaration","src":"9786:7:8"}],"id":550,"name":"ParameterList","src":"9785:9:8"},{"children":[{"attributes":{"functionReturnParameters":550},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":150,"type":"bytes32","value":"_oracleNode"},"id":551,"name":"Identifier","src":"9812:11:8"}],"id":552,"name":"Return","src":"9805:18:8"}],"id":553,"name":"Block","src":"9795:35:8"}],"id":554,"name":"FunctionDefinition","src":"9741:89:8"}],"id":555,"name":"ContractDefinition","src":"1593:8239:8"}],"id":556,"name":"SourceUnit","src":"774:9059:8"}}},"version":"0.4.25+commit.59dbf8f1.Linux.g++"} \ No newline at end of file +{"contracts":{"externals/ERC20.sol:ERC20":{"bin":"","bin-runtime":"","srcmap":"","srcmap-runtime":""},"externals/SafeMath.sol:SafeMath":{"bin":"604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820564cf9c59188bb4d206d867a51ebdc48341c3b90a16491599b74ecfe95674b940029","bin-runtime":"73000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820564cf9c59188bb4d206d867a51ebdc48341c3b90a16491599b74ecfe95674b940029","srcmap":"1289:1531:1:-;;132:2:-1;166:7;155:9;146:7;137:37;252:7;246:14;243:1;238:23;232:4;229:33;270:1;265:20;;;;222:63;;265:20;274:9;222:63;;298:9;295:1;288:20;328:4;319:7;311:22;352:7;343;336:24","srcmap-runtime":"1289:1531:1:-;;;;;;;;"},"externals/ens/ENS.sol:ENS":{"bin":"","bin-runtime":"","srcmap":"","srcmap-runtime":""},"externals/ens/PublicResolver.sol:PublicResolver":{"bin":"608060405234801561001057600080fd5b50604051602080611400833981016040525160008054600160a060020a03909216600160a060020a03199092169190911790556113ae806100526000396000f3006080604052600436106100da5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166301ffc9a781146100df57806310f13a8c146101155780632203ab56146101b357806329cd62ea1461024d5780632dff69411461026b5780633b3b57de1461029557806359d1d43c146102c9578063623195b01461039c578063691f3431146103fc5780637737221314610414578063aa4cb54714610472578063c3d014d6146104d0578063c8690233146104eb578063d5fa2b001461051c578063e89401a114610540575b600080fd5b3480156100eb57600080fd5b50610101600160e060020a031960043516610558565b604080519115158252519081900360200190f35b34801561012157600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526101b195833595369560449491939091019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437509497506106f99650505050505050565b005b3480156101bf57600080fd5b506101ce60043560243561091f565b6040518083815260200180602001828103825283818151815260200191508051906020019080838360005b838110156102115781810151838201526020016101f9565b50505050905090810190601f16801561023e5780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b34801561025957600080fd5b506101b1600435602435604435610a2b565b34801561027757600080fd5b50610283600435610b2b565b60408051918252519081900360200190f35b3480156102a157600080fd5b506102ad600435610b41565b60408051600160a060020a039092168252519081900360200190f35b3480156102d557600080fd5b5060408051602060046024803582810135601f8101859004850286018501909652858552610327958335953695604494919390910191908190840183828082843750949750610b5c9650505050505050565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610361578181015183820152602001610349565b50505050905090810190601f16801561038e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103a857600080fd5b50604080516020600460443581810135601f81018490048402850184019095528484526101b1948235946024803595369594606494920191908190840183828082843750949750610c659650505050505050565b34801561040857600080fd5b50610327600435610d66565b34801561042057600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526101b1958335953695604494919390910191908190840183828082843750949750610e0a9650505050505050565b34801561047e57600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526101b1958335953695604494919390910191908190840183828082843750949750610f609650505050505050565b3480156104dc57600080fd5b506101b1600435602435611076565b3480156104f757600080fd5b50610503600435611157565b6040805192835260208301919091528051918290030190f35b34801561052857600080fd5b506101b1600435600160a060020a0360243516611174565b34801561054c57600080fd5b50610327600435611278565b6000600160e060020a031982167f3b3b57de0000000000000000000000000000000000000000000000000000000014806105bb5750600160e060020a031982167fd8389dc500000000000000000000000000000000000000000000000000000000145b806105ef5750600160e060020a031982167f691f343100000000000000000000000000000000000000000000000000000000145b806106235750600160e060020a031982167f2203ab5600000000000000000000000000000000000000000000000000000000145b806106575750600160e060020a031982167fc869023300000000000000000000000000000000000000000000000000000000145b8061068b5750600160e060020a031982167f59d1d43c00000000000000000000000000000000000000000000000000000000145b806106bf5750600160e060020a031982167fe89401a100000000000000000000000000000000000000000000000000000000145b806106f35750600160e060020a031982167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b600080546040805160e060020a6302571be302815260048101879052905186933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b15801561074c57600080fd5b505af1158015610760573d6000803e3d6000fd5b505050506040513d602081101561077657600080fd5b5051600160a060020a03161461078b57600080fd5b6000848152600160209081526040918290209151855185936005019287929182918401908083835b602083106107d25780518252601f1990920191602091820191016107b3565b51815160209384036101000a6000190180199092169116179052920194855250604051938490038101909320845161081395919491909101925090506112e7565b5083600019167fd8c9334b1a9c2f9da342a0a2b32629c1a229b6445dad78947f674b44444a75508485604051808060200180602001838103835285818151815260200191508051906020019080838360005b8381101561087d578181015183820152602001610865565b50505050905090810190601f1680156108aa5780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b838110156108dd5781810151838201526020016108c5565b50505050905090810190601f16801561090a5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a250505050565b60008281526001602081905260409091206060905b838311610a1e578284161580159061096d5750600083815260068201602052604081205460026000196101006001841615020190911604115b15610a1357600083815260068201602090815260409182902080548351601f600260001961010060018616150201909316929092049182018490048402810184019094528084529091830182828015610a075780601f106109dc57610100808354040283529160200191610a07565b820191906000526020600020905b8154815290600101906020018083116109ea57829003601f168201915b50505050509150610a23565b600290920291610934565b600092505b509250929050565b600080546040805160e060020a6302571be302815260048101879052905186933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b158015610a7e57600080fd5b505af1158015610a92573d6000803e3d6000fd5b505050506040513d6020811015610aa857600080fd5b5051600160a060020a031614610abd57600080fd5b604080518082018252848152602080820185815260008881526001835284902092516003840155516004909201919091558151858152908101849052815186927f1d6f5e03d3f63eb58751986629a5439baee5079ff04f345becb66e23eb154e46928290030190a250505050565b6000908152600160208190526040909120015490565b600090815260016020526040902054600160a060020a031690565b600082815260016020908152604091829020915183516060936005019285929182918401908083835b60208310610ba45780518252601f199092019160209182019101610b85565b518151600019602094850361010090810a820192831692199390931691909117909252949092019687526040805197889003820188208054601f6002600183161590980290950116959095049283018290048202880182019052818752929450925050830182828015610c585780601f10610c2d57610100808354040283529160200191610c58565b820191906000526020600020905b815481529060010190602001808311610c3b57829003601f168201915b5050505050905092915050565b600080546040805160e060020a6302571be302815260048101879052905186933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b158015610cb857600080fd5b505af1158015610ccc573d6000803e3d6000fd5b505050506040513d6020811015610ce257600080fd5b5051600160a060020a031614610cf757600080fd5b6000198301831615610d0857600080fd5b600084815260016020908152604080832086845260060182529091208351610d32928501906112e7565b50604051839085907faa121bbeef5f32f5961a2a28966e769023910fc9479059ee3495d4c1a696efe390600090a350505050565b6000818152600160208181526040928390206002908101805485516000199582161561010002959095011691909104601f81018390048302840183019094528383526060939091830182828015610dfe5780601f10610dd357610100808354040283529160200191610dfe565b820191906000526020600020905b815481529060010190602001808311610de157829003601f168201915b50505050509050919050565b600080546040805160e060020a6302571be302815260048101869052905185933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b158015610e5d57600080fd5b505af1158015610e71573d6000803e3d6000fd5b505050506040513d6020811015610e8757600080fd5b5051600160a060020a031614610e9c57600080fd5b60008381526001602090815260409091208351610ec1926002909201918501906112e7565b50604080516020808252845181830152845186937fb7d29e911041e8d9b843369e890bcb72c9388692ba48b65ac54e7214c4c348f79387939092839283019185019080838360005b83811015610f21578181015183820152602001610f09565b50505050905090810190601f168015610f4e5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505050565b600080546040805160e060020a6302571be302815260048101869052905185933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b158015610fb357600080fd5b505af1158015610fc7573d6000803e3d6000fd5b505050506040513d6020811015610fdd57600080fd5b5051600160a060020a031614610ff257600080fd5b60008381526001602090815260409091208351611017926007909201918501906112e7565b50604080516020808252845181830152845186937fc0b0fc07269fc2749adada3221c095a1d2187b2d075b51c915857b520f3a502193879390928392830191850190808383600083811015610f21578181015183820152602001610f09565b600080546040805160e060020a6302571be302815260048101869052905185933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b1580156110c957600080fd5b505af11580156110dd573d6000803e3d6000fd5b505050506040513d60208110156110f357600080fd5b5051600160a060020a03161461110857600080fd5b6000838152600160208181526040928390209091018490558151848152915185927f0424b6fe0d9c3bdbece0e7879dc241bb0c22e900be8b6c168b4ee08bd9bf83bc92908290030190a2505050565b600090815260016020526040902060038101546004909101549091565b600080546040805160e060020a6302571be302815260048101869052905185933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b1580156111c757600080fd5b505af11580156111db573d6000803e3d6000fd5b505050506040513d60208110156111f157600080fd5b5051600160a060020a03161461120657600080fd5b600083815260016020908152604091829020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386169081179091558251908152915185927f52d7d861f09ab3d26239d492e8968629f95e9e318cf0b73bfddc441522a15fd292908290030190a2505050565b60008181526001602081815260409283902060070180548451600260001995831615610100029590950190911693909304601f81018390048302840183019094528383526060939091830182828015610dfe5780601f10610dd357610100808354040283529160200191610dfe565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061132857805160ff1916838001178555611355565b82800160010185558215611355579182015b8281111561135557825182559160200191906001019061133a565b50611361929150611365565b5090565b61137f91905b80821115611361576000815560010161136b565b905600a165627a7a72305820bf76237672851602565e309e20eddff44fc668000bb45495e385fdd9e24f4e310029","bin-runtime":"6080604052600436106100da5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166301ffc9a781146100df57806310f13a8c146101155780632203ab56146101b357806329cd62ea1461024d5780632dff69411461026b5780633b3b57de1461029557806359d1d43c146102c9578063623195b01461039c578063691f3431146103fc5780637737221314610414578063aa4cb54714610472578063c3d014d6146104d0578063c8690233146104eb578063d5fa2b001461051c578063e89401a114610540575b600080fd5b3480156100eb57600080fd5b50610101600160e060020a031960043516610558565b604080519115158252519081900360200190f35b34801561012157600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526101b195833595369560449491939091019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437509497506106f99650505050505050565b005b3480156101bf57600080fd5b506101ce60043560243561091f565b6040518083815260200180602001828103825283818151815260200191508051906020019080838360005b838110156102115781810151838201526020016101f9565b50505050905090810190601f16801561023e5780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b34801561025957600080fd5b506101b1600435602435604435610a2b565b34801561027757600080fd5b50610283600435610b2b565b60408051918252519081900360200190f35b3480156102a157600080fd5b506102ad600435610b41565b60408051600160a060020a039092168252519081900360200190f35b3480156102d557600080fd5b5060408051602060046024803582810135601f8101859004850286018501909652858552610327958335953695604494919390910191908190840183828082843750949750610b5c9650505050505050565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610361578181015183820152602001610349565b50505050905090810190601f16801561038e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103a857600080fd5b50604080516020600460443581810135601f81018490048402850184019095528484526101b1948235946024803595369594606494920191908190840183828082843750949750610c659650505050505050565b34801561040857600080fd5b50610327600435610d66565b34801561042057600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526101b1958335953695604494919390910191908190840183828082843750949750610e0a9650505050505050565b34801561047e57600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526101b1958335953695604494919390910191908190840183828082843750949750610f609650505050505050565b3480156104dc57600080fd5b506101b1600435602435611076565b3480156104f757600080fd5b50610503600435611157565b6040805192835260208301919091528051918290030190f35b34801561052857600080fd5b506101b1600435600160a060020a0360243516611174565b34801561054c57600080fd5b50610327600435611278565b6000600160e060020a031982167f3b3b57de0000000000000000000000000000000000000000000000000000000014806105bb5750600160e060020a031982167fd8389dc500000000000000000000000000000000000000000000000000000000145b806105ef5750600160e060020a031982167f691f343100000000000000000000000000000000000000000000000000000000145b806106235750600160e060020a031982167f2203ab5600000000000000000000000000000000000000000000000000000000145b806106575750600160e060020a031982167fc869023300000000000000000000000000000000000000000000000000000000145b8061068b5750600160e060020a031982167f59d1d43c00000000000000000000000000000000000000000000000000000000145b806106bf5750600160e060020a031982167fe89401a100000000000000000000000000000000000000000000000000000000145b806106f35750600160e060020a031982167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b600080546040805160e060020a6302571be302815260048101879052905186933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b15801561074c57600080fd5b505af1158015610760573d6000803e3d6000fd5b505050506040513d602081101561077657600080fd5b5051600160a060020a03161461078b57600080fd5b6000848152600160209081526040918290209151855185936005019287929182918401908083835b602083106107d25780518252601f1990920191602091820191016107b3565b51815160209384036101000a6000190180199092169116179052920194855250604051938490038101909320845161081395919491909101925090506112e7565b5083600019167fd8c9334b1a9c2f9da342a0a2b32629c1a229b6445dad78947f674b44444a75508485604051808060200180602001838103835285818151815260200191508051906020019080838360005b8381101561087d578181015183820152602001610865565b50505050905090810190601f1680156108aa5780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b838110156108dd5781810151838201526020016108c5565b50505050905090810190601f16801561090a5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a250505050565b60008281526001602081905260409091206060905b838311610a1e578284161580159061096d5750600083815260068201602052604081205460026000196101006001841615020190911604115b15610a1357600083815260068201602090815260409182902080548351601f600260001961010060018616150201909316929092049182018490048402810184019094528084529091830182828015610a075780601f106109dc57610100808354040283529160200191610a07565b820191906000526020600020905b8154815290600101906020018083116109ea57829003601f168201915b50505050509150610a23565b600290920291610934565b600092505b509250929050565b600080546040805160e060020a6302571be302815260048101879052905186933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b158015610a7e57600080fd5b505af1158015610a92573d6000803e3d6000fd5b505050506040513d6020811015610aa857600080fd5b5051600160a060020a031614610abd57600080fd5b604080518082018252848152602080820185815260008881526001835284902092516003840155516004909201919091558151858152908101849052815186927f1d6f5e03d3f63eb58751986629a5439baee5079ff04f345becb66e23eb154e46928290030190a250505050565b6000908152600160208190526040909120015490565b600090815260016020526040902054600160a060020a031690565b600082815260016020908152604091829020915183516060936005019285929182918401908083835b60208310610ba45780518252601f199092019160209182019101610b85565b518151600019602094850361010090810a820192831692199390931691909117909252949092019687526040805197889003820188208054601f6002600183161590980290950116959095049283018290048202880182019052818752929450925050830182828015610c585780601f10610c2d57610100808354040283529160200191610c58565b820191906000526020600020905b815481529060010190602001808311610c3b57829003601f168201915b5050505050905092915050565b600080546040805160e060020a6302571be302815260048101879052905186933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b158015610cb857600080fd5b505af1158015610ccc573d6000803e3d6000fd5b505050506040513d6020811015610ce257600080fd5b5051600160a060020a031614610cf757600080fd5b6000198301831615610d0857600080fd5b600084815260016020908152604080832086845260060182529091208351610d32928501906112e7565b50604051839085907faa121bbeef5f32f5961a2a28966e769023910fc9479059ee3495d4c1a696efe390600090a350505050565b6000818152600160208181526040928390206002908101805485516000199582161561010002959095011691909104601f81018390048302840183019094528383526060939091830182828015610dfe5780601f10610dd357610100808354040283529160200191610dfe565b820191906000526020600020905b815481529060010190602001808311610de157829003601f168201915b50505050509050919050565b600080546040805160e060020a6302571be302815260048101869052905185933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b158015610e5d57600080fd5b505af1158015610e71573d6000803e3d6000fd5b505050506040513d6020811015610e8757600080fd5b5051600160a060020a031614610e9c57600080fd5b60008381526001602090815260409091208351610ec1926002909201918501906112e7565b50604080516020808252845181830152845186937fb7d29e911041e8d9b843369e890bcb72c9388692ba48b65ac54e7214c4c348f79387939092839283019185019080838360005b83811015610f21578181015183820152602001610f09565b50505050905090810190601f168015610f4e5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505050565b600080546040805160e060020a6302571be302815260048101869052905185933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b158015610fb357600080fd5b505af1158015610fc7573d6000803e3d6000fd5b505050506040513d6020811015610fdd57600080fd5b5051600160a060020a031614610ff257600080fd5b60008381526001602090815260409091208351611017926007909201918501906112e7565b50604080516020808252845181830152845186937fc0b0fc07269fc2749adada3221c095a1d2187b2d075b51c915857b520f3a502193879390928392830191850190808383600083811015610f21578181015183820152602001610f09565b600080546040805160e060020a6302571be302815260048101869052905185933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b1580156110c957600080fd5b505af11580156110dd573d6000803e3d6000fd5b505050506040513d60208110156110f357600080fd5b5051600160a060020a03161461110857600080fd5b6000838152600160208181526040928390209091018490558151848152915185927f0424b6fe0d9c3bdbece0e7879dc241bb0c22e900be8b6c168b4ee08bd9bf83bc92908290030190a2505050565b600090815260016020526040902060038101546004909101549091565b600080546040805160e060020a6302571be302815260048101869052905185933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b1580156111c757600080fd5b505af11580156111db573d6000803e3d6000fd5b505050506040513d60208110156111f157600080fd5b5051600160a060020a03161461120657600080fd5b600083815260016020908152604091829020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386169081179091558251908152915185927f52d7d861f09ab3d26239d492e8968629f95e9e318cf0b73bfddc441522a15fd292908290030190a2505050565b60008181526001602081815260409283902060070180548451600260001995831615610100029590950190911693909304601f81018390048302840183019094528383526060939091830182828015610dfe5780601f10610dd357610100808354040283529160200191610dfe565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061132857805160ff1916838001178555611355565b82800160010185558215611355579182015b8281111561135557825182559160200191906001019061133a565b50611361929150611365565b5090565b61137f91905b80821115611361576000815560010161136b565b905600a165627a7a72305820bf76237672851602565e309e20eddff44fc668000bb45495e385fdd9e24f4e310029","srcmap":"1553:8134:3:-;;;3005:62;8:9:-1;5:2;;;30:1;27;20:12;5:2;3005:62:3;;;;;;;;;;;;;3047:3;:13;;-1:-1:-1;;;;;3047:13:3;;;-1:-1:-1;;;;;;3047:13:3;;;;;;;;;1553:8134;;;;;;","srcmap-runtime":"1553:8134:3:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9238:447;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9238:447:3;-1:-1:-1;;;;;;9238:447:3;;;;;;;;;;;;;;;;;;;;;;;6084:171;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6084:171:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6084:171:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6084:171:3;;;;-1:-1:-1;6084:171:3;-1:-1:-1;6084:171:3;;-1:-1:-1;6084:171:3;;;;;;;;-1:-1:-1;6084:171:3;;-1:-1:-1;6084:171:3;;-1:-1:-1;;;;;;;6084:171:3;;;7296:451;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7296:451:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;7296:451:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5631:174;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5631:174:3;;;;;;;;;8351:106;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8351:106:3;;;;;;;;;;;;;;;;;;;;;8887:100;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8887:100:3;;;;;;;;;-1:-1:-1;;;;;8887:100:3;;;;;;;;;;;;;;6472:116;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6472:116:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6472:116:3;;-1:-1:-1;6472:116:3;;-1:-1:-1;;;;;;;6472:116:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;6472:116:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5057:297;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5057:297:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5057:297:3;;-1:-1:-1;5057:297:3;;-1:-1:-1;;;;;;;5057:297:3;7947:99;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7947:99:3;;;;;4607:148;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4607:148:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4607:148:3;;-1:-1:-1;4607:148:3;;-1:-1:-1;;;;;;;4607:148:3;4200:162;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4200:162:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4200:162:3;;-1:-1:-1;4200:162:3;;-1:-1:-1;;;;;;;4200:162:3;3813:158;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3813:158:3;;;;;;;6830:145;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6830:145:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;3293:149;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3293:149:3;;;-1:-1:-1;;;;;3293:149:3;;;;;8620:108;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8620:108:3;;;;;9238:447;9306:4;-1:-1:-1;;;;;;9329:32:3;;9344:17;9329:32;;:79;;-1:-1:-1;;;;;;;9373:35:3;;9388:20;9373:35;9329:79;:123;;;-1:-1:-1;;;;;;;9420:32:3;;9435:17;9420:32;9329:123;:166;;;-1:-1:-1;;;;;;;9464:31:3;;9479:16;9464:31;9329:166;:212;;;-1:-1:-1;;;;;;;9507:34:3;;9522:19;9507:34;9329:212;:256;;;-1:-1:-1;;;;;;;9553:32:3;;9568:17;9553:32;9329:256;:305;;;-1:-1:-1;;;;;;;9597:37:3;;9612:22;9597:37;9329:305;:349;;;-1:-1:-1;;;;;;;9646:32:3;;9661:17;9646:32;9329:349;9322:356;9238:447;-1:-1:-1;;9238:447:3:o;6084:171::-;2865:3;;;:15;;;-1:-1:-1;;;;;2865:15:3;;;;;;;;;;6159:4;;2884:10;;-1:-1:-1;;;;;2865:3:3;;:9;;:15;;;;;;;;;;;;;;;;:3;:15;;;5:2:-1;;;;30:1;27;20:12;5:2;2865:15:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2865:15:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2865:15:3;-1:-1:-1;;;;;2865:29:3;;2857:38;;;;;;6175:13;;;;:7;:13;;;;;;;;;:23;;;;6201:5;;6175:18;;;6194:3;;6175:23;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;6175:23:3;;;;;-1:-1:-1;6175:23:3;;;;;;;;;;;:31;;;;:23;;:31;;;;;-1:-1:-1;6175:31:3;-1:-1:-1;6175:31:3;:::i;:::-;;6233:4;6221:27;;;;6239:3;6244;6221:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;6221:27:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6221:27:3;;;;;;;;;;;;;;;;;;;;;;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;6221:27:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6084:171;;;;:::o;7296:451::-;7366:19;7433:13;;;:7;:13;;;;;;;;7387:10;;7456:260;7478:27;;;7456:260;;7545:26;;;7544:33;;;;:72;;-1:-1:-1;7615:1:3;7581:24;;;:11;;;:24;;;;;:31;;-1:-1:-1;;7581:31:3;;;;;;;;;;;:35;7544:72;7540:166;;;7643:24;;;;:11;;;:24;;;;;;;;;7636:31;;;;;;-1:-1:-1;;7636:31:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7643:24;;7636:31;;7643:24;7636:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7685:7;;7540:166;7507:17;;;;;7456:260;;;7739:1;7725:15;;7296:451;;;;;;;:::o;5631:174::-;2865:3;;;:15;;;-1:-1:-1;;;;;2865:15:3;;;;;;;;;;5704:4;;2884:10;;-1:-1:-1;;;;;2865:3:3;;:9;;:15;;;;;;;;;;;;;;;;:3;:15;;;5:2:-1;;;;30:1;27;20:12;5:2;2865:15:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2865:15:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2865:15:3;-1:-1:-1;;;;;2865:29:3;;2857:38;;;;;;5743:15;;;;;;;;;;;;;;;;;;-1:-1:-1;5720:13:3;;;:7;:13;;;;;:38;;:20;;;:38;;;;;;;;;;5773:25;;;;;;;;;;;;;5728:4;;5773:25;;;;;;;;5631:174;;;;:::o;8351:106::-;8403:7;8429:13;;;:7;:13;;;;;;;;:21;;;8351:106::o;8887:100::-;8936:7;8962:13;;;:7;:13;;;;;:18;-1:-1:-1;;;;;8962:18:3;;8887:100::o;6472:116::-;6558:13;;;;:7;:13;;;;;;;;;:23;;;;6533:6;;6558:18;;;6577:3;;6558:23;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;-1:-1;;263:2;259:12;;;254:3;250:22;;;246:30;;340:21;;;311:9;;295:26;;;;377:20;;;;365:33;;;6558:23:3;;;;;;;;;;;;;;;;;;6551:30;;;;274:1:-1;6551:30:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6558:23;;-1:-1:-1;6551:30:3;-1:-1:-1;;6551:30:3;;6558:23;6551:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6472:116;;;;:::o;5057:297::-;2865:3;;;:15;;;-1:-1:-1;;;;;2865:15:3;;;;;;;;;;5138:4;;2884:10;;-1:-1:-1;;;;;2865:3:3;;:9;;:15;;;;;;;;;;;;;;;;:3;:15;;;5:2:-1;;;;30:1;27;20:12;5:2;2865:15:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2865:15:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2865:15:3;-1:-1:-1;;;;;2865:29:3;;2857:38;;;;;;-1:-1:-1;;5209:15:3;;5208:31;;5207:38;5199:47;;;;;;5265:13;;;;:7;:13;;;;;;;;:31;;;:18;;:31;;;;;:38;;;;;;;;:::i;:::-;-1:-1:-1;5318:29:3;;5335:11;;5329:4;;5318:29;;;;;5057:297;;;;:::o;7947:99::-;8021:13;;;;:7;:13;;;;;;;;;:18;;;;8014:25;;;;-1:-1:-1;;8014:25:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7996:6;;8021:18;;8014:25;;8021:18;8014:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7947:99;;;:::o;4607:148::-;2865:3;;;:15;;;-1:-1:-1;;;;;2865:15:3;;;;;;;;;;4669:4;;2884:10;;-1:-1:-1;;;;;2865:3:3;;:9;;:15;;;;;;;;;;;;;;;;:3;:15;;;5:2:-1;;;;30:1;27;20:12;5:2;2865:15:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2865:15:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2865:15:3;-1:-1:-1;;;;;2865:29:3;;2857:38;;;;;;4685:13;;;;:7;:13;;;;;;;;:25;;;;:18;;;;;:25;;;;:::i;:::-;-1:-1:-1;4725:23:3;;;;;;;;;;;;;;;4737:4;;4725:23;;4743:4;;4725:23;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;4725:23:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4607:148;;;:::o;4200:162::-;2865:3;;;:15;;;-1:-1:-1;;;;;2865:15:3;;;;;;;;;;4266:4;;2884:10;;-1:-1:-1;;;;;2865:3:3;;:9;;:15;;;;;;;;;;;;;;;;:3;:15;;;5:2:-1;;;;30:1;27;20:12;5:2;2865:15:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2865:15:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2865:15:3;-1:-1:-1;;;;;2865:29:3;;2857:38;;;;;;4282:13;;;;:7;:13;;;;;;;;:30;;;;:23;;;;;:30;;;;:::i;:::-;-1:-1:-1;4327:28:3;;;;;;;;;;;;;;;4344:4;;4327:28;;4350:4;;4327:28;;;;;;;;;;;;;;33:3:-1;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;3813:158:3;2865:3;;;:15;;;-1:-1:-1;;;;;2865:15:3;;;;;;;;;;3879:4;;2884:10;;-1:-1:-1;;;;;2865:3:3;;:9;;:15;;;;;;;;;;;;;;;;:3;:15;;;5:2:-1;;;;30:1;27;20:12;5:2;2865:15:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2865:15:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2865:15:3;-1:-1:-1;;;;;2865:29:3;;2857:38;;;;;;3895:13;;;;:7;:13;;;;;;;;;:21;;;:28;;;3938:26;;;;;;;3903:4;;3938:26;;;;;;;;;3813:158;;;:::o;6830:145::-;6881:9;6921:13;;;:7;:13;;;;;:20;;;:22;6945;;;;;6921;;6830:145::o;3293:149::-;2865:3;;;:15;;;-1:-1:-1;;;;;2865:15:3;;;;;;;;;;3356:4;;2884:10;;-1:-1:-1;;;;;2865:3:3;;:9;;:15;;;;;;;;;;;;;;;;:3;:15;;;5:2:-1;;;;30:1;27;20:12;5:2;2865:15:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2865:15:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2865:15:3;-1:-1:-1;;;;;2865:29:3;;2857:38;;;;;;3372:13;;;;:7;:13;;;;;;;;;:25;;-1:-1:-1;;3372:25:3;-1:-1:-1;;;;;3372:25:3;;;;;;;;3412:23;;;;;;;3372:13;;3412:23;;;;;;;;;3293:149;;;:::o;8620:108::-;8698:13;;;;:7;:13;;;;;;;;;:23;;8691:30;;;;;-1:-1:-1;;8691:30:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8674:5;;8698:23;;8691:30;;8698:23;8691:30;;;;;;;;;;;;;;;;;;;;;;;;1553:8134;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1553:8134:3;;;-1:-1:-1;1553:8134:3;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o"},"externals/strings.sol:strings":{"bin":"604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a7230582024a2b0f9f886001e5fd3db71aa4fb1e8f4254fc3db05e9d54265f7c101091af20029","bin-runtime":"73000000000000000000000000000000000000000030146080604052600080fd00a165627a7a7230582024a2b0f9f886001e5fd3db71aa4fb1e8f4254fc3db05e9d54265f7c101091af20029","srcmap":"2600:23355:4:-;;132:2:-1;166:7;155:9;146:7;137:37;252:7;246:14;243:1;238:23;232:4;229:33;270:1;265:20;;;;222:63;;265:20;274:9;222:63;;298:9;295:1;288:20;328:4;319:7;311:22;352:7;343;336:24","srcmap-runtime":"2600:23355:4:-;;;;;;;;"},"internals/claimable.sol:Claimable":{"bin":"6080604052348015600f57600080fd5b50603580601d6000396000f3006080604052600080fd00a165627a7a72305820395b628221b28dc04b0498f55415adf15a37b484bd593b1cfd29b4eab19dc5300029","bin-runtime":"6080604052600080fd00a165627a7a72305820395b628221b28dc04b0498f55415adf15a37b484bd593b1cfd29b4eab19dc5300029","srcmap":"917:797:5:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;917:797:5;;;;;;;","srcmap-runtime":"917:797:5:-;;;;;"},"internals/controllable.sol:Controllable":{"bin":"","bin-runtime":"","srcmap":"","srcmap-runtime":""},"internals/controller.sol:Controller":{"bin":"608060405234801561001057600080fd5b5060405160408061128b83398101604052805160209091015160008054600160a060020a031916600160a060020a0384161760a060020a60ff02191674010000000000000000000000000000000000000000831515810291909117918290558391839160ff91041615156100bb5760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b6040805160008152600160a060020a038416602082015281517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea5929181900390910190a150505050611179806101126000396000f3006080604052600436106100c45763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166315b9a8b881146100c95780631785f53c146100f05780632121dc751461011357806324d7806c1461013c5780632b7832b31461015d5780637048027514610172578063715018a6146101935780638da5cb5b146101a8578063996cba68146101d9578063a7fc7a0714610203578063b242e53414610224578063b429afeb1461024a578063f6a74ed71461026b575b600080fd5b3480156100d557600080fd5b506100de61028c565b60408051918252519081900360200190f35b3480156100fc57600080fd5b50610111600160a060020a0360043516610292565b005b34801561011f57600080fd5b506101286102eb565b604080519115158252519081900360200190f35b34801561014857600080fd5b50610128600160a060020a036004351661030c565b34801561016957600080fd5b506100de61032a565b34801561017e57600080fd5b50610111600160a060020a0360043516610330565b34801561019f57600080fd5b50610111610386565b3480156101b457600080fd5b506101bd6104a1565b60408051600160a060020a039092168252519081900360200190f35b3480156101e557600080fd5b50610111600160a060020a03600435811690602435166044356104b0565b34801561020f57600080fd5b50610111600160a060020a036004351661050d565b34801561023057600080fd5b50610111600160a060020a03600435166024351515610575565b34801561025657600080fd5b50610128600160a060020a03600435166107b4565b34801561027757600080fd5b50610111600160a060020a03600435166107d2565b60045490565b61029b3361083a565b15156102df576040805160e560020a62461bcd028152602060048201526016602482015260008051602061112e833981519152604482015290519081900360640190fd5b6102e88161084e565b50565b60005474010000000000000000000000000000000000000000900460ff1690565b600160a060020a031660009081526001602052604090205460ff1690565b60025490565b6103393361083a565b151561037d576040805160e560020a62461bcd028152602060048201526016602482015260008051602061112e833981519152604482015290519081900360640190fd5b6102e881610929565b61038f3361083a565b15156103d3576040805160e560020a62461bcd028152602060048201526016602482015260008051602061112e833981519152604482015290519081900360640190fd5b60005474010000000000000000000000000000000000000000900460ff161515610447576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916815560408051828152602081019290925280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1565b600054600160a060020a031690565b6104b93361083a565b15156104fd576040805160e560020a62461bcd028152602060048201526016602482015260008051602061112e833981519152604482015290519081900360640190fd5b610508838383610bca565b505050565b6105163361030c565b151561056c576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e2061646d696e00000000000000000000604482015290519081900360640190fd5b6102e881610d89565b61057e3361083a565b15156105c2576040805160e560020a62461bcd028152602060048201526016602482015260008051602061112e833981519152604482015290519081900360640190fd5b60005474010000000000000000000000000000000000000000900460ff161515610636576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b600160a060020a03821615156106bc576040805160e560020a62461bcd02815260206004820152602360248201527f6f776e65722063616e6e6f742062652073657420746f207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6000805474ff00000000000000000000000000000000000000001916740100000000000000000000000000000000000000008315159081029190911790915561073c5760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b60005460408051600160a060020a039283168152918416602083015280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1506000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a031660009081526003602052604090205460ff1690565b6107db3361030c565b1515610831576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e2061646d696e00000000000000000000604482015290519081900360640190fd5b6102e88161102d565b600054600160a060020a0390811691161490565b600160a060020a03811660009081526001602052604090205460ff1615156108c0576040805160e560020a62461bcd02815260206004820181905260248201527f70726f7669646564206163636f756e74206973206e6f7420616e2061646d696e604482015290519081900360640190fd5b600160a060020a038116600081815260016020908152604091829020805460ff191690556002805460001901905581513381529081019290925280517f787a2e12f4a55b658b8f573c32432ee11a5e8b51677d1e1e937aaf6a0bb5776e9281900390910190a150565b600160a060020a03811660009081526001602052604090205460ff16156109bf576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320616c726561647920616e206160448201527f646d696e00000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a03811660009081526003602052604090205460ff1615610a56576040805160e560020a62461bcd02815260206004820152602860248201527f70726f7669646564206163636f756e7420697320616c7265616479206120636f60448201527f6e74726f6c6c6572000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b610a5f8161083a565b15610ada576040805160e560020a62461bcd02815260206004820152602560248201527f70726f7669646564206163636f756e7420697320616c7265616479207468652060448201527f6f776e6572000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0381161515610b5f576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260016020818152604092839020805460ff1916831790556002805490920190915581513381529081019290925280517fc58b647b8ba5a8cab2f11f32673636cc1061324240972ed05e8cc005b81a4b7a9281900390910190a150565b600160a060020a0382161515610c1657604051600160a060020a0384169082156108fc029083906000818181858888f19350505050158015610c10573d6000803e3d6000fd5b50610d3a565b81600160a060020a031663a9059cbb84836040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b158015610c9257600080fd5b505af1158015610ca6573d6000803e3d6000fd5b505050506040513d6020811015610cbc57600080fd5b50511515610d3a576040805160e560020a62461bcd02815260206004820152602560248201527f455243323020746f6b656e207472616e736665722077617320756e737563636560448201527f737366756c000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60408051600160a060020a0380861682528416602082015280820183905290517ff7a40077ff7a04c7e61f6f26fb13774259ddf1b6bce9ecf26a8276cdd39926839181900360600190a1505050565b600160a060020a03811660009081526001602052604090205460ff1615610e1f576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320616c726561647920616e206160448201527f646d696e00000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a03811660009081526003602052604090205460ff1615610eb6576040805160e560020a62461bcd02815260206004820152602860248201527f70726f7669646564206163636f756e7420697320616c7265616479206120636f60448201527f6e74726f6c6c6572000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b610ebf8161083a565b15610f3a576040805160e560020a62461bcd02815260206004820152602560248201527f70726f7669646564206163636f756e7420697320616c7265616479207468652060448201527f6f776e6572000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0381161515610fbf576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260036020908152604091829020805460ff1916600190811790915560048054909101905581513381529081019290925280517fb890d5abdcd5c2b61ce8bbc2cf6af9b6d7f7451830cbc85037cbdd182c86fe1d9281900390910190a150565b600160a060020a03811660009081526003602052604090205460ff1615156110c4576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e74206973206e6f74206120636f6e74726f60448201527f6c6c657200000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260036020908152604091829020805460ff191690556004805460001901905581513381529081019290925280517fb6a283aaede08e15ef55c74e3014e30eb0c0040d4b156cccb77391268ea373949281900390910190a150560073656e646572206973206e6f7420616e206f776e657200000000000000000000a165627a7a723058200e752e3a88decc3d8c5d0c377c032b4fe39f5eb66a5b9fe8ce60f184698d72480029","bin-runtime":"6080604052600436106100c45763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166315b9a8b881146100c95780631785f53c146100f05780632121dc751461011357806324d7806c1461013c5780632b7832b31461015d5780637048027514610172578063715018a6146101935780638da5cb5b146101a8578063996cba68146101d9578063a7fc7a0714610203578063b242e53414610224578063b429afeb1461024a578063f6a74ed71461026b575b600080fd5b3480156100d557600080fd5b506100de61028c565b60408051918252519081900360200190f35b3480156100fc57600080fd5b50610111600160a060020a0360043516610292565b005b34801561011f57600080fd5b506101286102eb565b604080519115158252519081900360200190f35b34801561014857600080fd5b50610128600160a060020a036004351661030c565b34801561016957600080fd5b506100de61032a565b34801561017e57600080fd5b50610111600160a060020a0360043516610330565b34801561019f57600080fd5b50610111610386565b3480156101b457600080fd5b506101bd6104a1565b60408051600160a060020a039092168252519081900360200190f35b3480156101e557600080fd5b50610111600160a060020a03600435811690602435166044356104b0565b34801561020f57600080fd5b50610111600160a060020a036004351661050d565b34801561023057600080fd5b50610111600160a060020a03600435166024351515610575565b34801561025657600080fd5b50610128600160a060020a03600435166107b4565b34801561027757600080fd5b50610111600160a060020a03600435166107d2565b60045490565b61029b3361083a565b15156102df576040805160e560020a62461bcd028152602060048201526016602482015260008051602061112e833981519152604482015290519081900360640190fd5b6102e88161084e565b50565b60005474010000000000000000000000000000000000000000900460ff1690565b600160a060020a031660009081526001602052604090205460ff1690565b60025490565b6103393361083a565b151561037d576040805160e560020a62461bcd028152602060048201526016602482015260008051602061112e833981519152604482015290519081900360640190fd5b6102e881610929565b61038f3361083a565b15156103d3576040805160e560020a62461bcd028152602060048201526016602482015260008051602061112e833981519152604482015290519081900360640190fd5b60005474010000000000000000000000000000000000000000900460ff161515610447576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916815560408051828152602081019290925280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1565b600054600160a060020a031690565b6104b93361083a565b15156104fd576040805160e560020a62461bcd028152602060048201526016602482015260008051602061112e833981519152604482015290519081900360640190fd5b610508838383610bca565b505050565b6105163361030c565b151561056c576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e2061646d696e00000000000000000000604482015290519081900360640190fd5b6102e881610d89565b61057e3361083a565b15156105c2576040805160e560020a62461bcd028152602060048201526016602482015260008051602061112e833981519152604482015290519081900360640190fd5b60005474010000000000000000000000000000000000000000900460ff161515610636576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b600160a060020a03821615156106bc576040805160e560020a62461bcd02815260206004820152602360248201527f6f776e65722063616e6e6f742062652073657420746f207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6000805474ff00000000000000000000000000000000000000001916740100000000000000000000000000000000000000008315159081029190911790915561073c5760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b60005460408051600160a060020a039283168152918416602083015280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1506000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a031660009081526003602052604090205460ff1690565b6107db3361030c565b1515610831576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e2061646d696e00000000000000000000604482015290519081900360640190fd5b6102e88161102d565b600054600160a060020a0390811691161490565b600160a060020a03811660009081526001602052604090205460ff1615156108c0576040805160e560020a62461bcd02815260206004820181905260248201527f70726f7669646564206163636f756e74206973206e6f7420616e2061646d696e604482015290519081900360640190fd5b600160a060020a038116600081815260016020908152604091829020805460ff191690556002805460001901905581513381529081019290925280517f787a2e12f4a55b658b8f573c32432ee11a5e8b51677d1e1e937aaf6a0bb5776e9281900390910190a150565b600160a060020a03811660009081526001602052604090205460ff16156109bf576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320616c726561647920616e206160448201527f646d696e00000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a03811660009081526003602052604090205460ff1615610a56576040805160e560020a62461bcd02815260206004820152602860248201527f70726f7669646564206163636f756e7420697320616c7265616479206120636f60448201527f6e74726f6c6c6572000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b610a5f8161083a565b15610ada576040805160e560020a62461bcd02815260206004820152602560248201527f70726f7669646564206163636f756e7420697320616c7265616479207468652060448201527f6f776e6572000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0381161515610b5f576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260016020818152604092839020805460ff1916831790556002805490920190915581513381529081019290925280517fc58b647b8ba5a8cab2f11f32673636cc1061324240972ed05e8cc005b81a4b7a9281900390910190a150565b600160a060020a0382161515610c1657604051600160a060020a0384169082156108fc029083906000818181858888f19350505050158015610c10573d6000803e3d6000fd5b50610d3a565b81600160a060020a031663a9059cbb84836040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b158015610c9257600080fd5b505af1158015610ca6573d6000803e3d6000fd5b505050506040513d6020811015610cbc57600080fd5b50511515610d3a576040805160e560020a62461bcd02815260206004820152602560248201527f455243323020746f6b656e207472616e736665722077617320756e737563636560448201527f737366756c000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60408051600160a060020a0380861682528416602082015280820183905290517ff7a40077ff7a04c7e61f6f26fb13774259ddf1b6bce9ecf26a8276cdd39926839181900360600190a1505050565b600160a060020a03811660009081526001602052604090205460ff1615610e1f576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320616c726561647920616e206160448201527f646d696e00000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a03811660009081526003602052604090205460ff1615610eb6576040805160e560020a62461bcd02815260206004820152602860248201527f70726f7669646564206163636f756e7420697320616c7265616479206120636f60448201527f6e74726f6c6c6572000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b610ebf8161083a565b15610f3a576040805160e560020a62461bcd02815260206004820152602560248201527f70726f7669646564206163636f756e7420697320616c7265616479207468652060448201527f6f776e6572000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0381161515610fbf576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260036020908152604091829020805460ff1916600190811790915560048054909101905581513381529081019290925280517fb890d5abdcd5c2b61ce8bbc2cf6af9b6d7f7451830cbc85037cbdd182c86fe1d9281900390910190a150565b600160a060020a03811660009081526003602052604090205460ff1615156110c4576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e74206973206e6f74206120636f6e74726f60448201527f6c6c657200000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260036020908152604091829020805460ff191690556004805460001901905581513381529081019290925280517fb6a283aaede08e15ef55c74e3014e30eb0c0040d4b156cccb77391268ea373949281900390910190a150560073656e646572206973206e6f7420616e206f776e657200000000000000000000a165627a7a723058200e752e3a88decc3d8c5d0c377c032b4fe39f5eb66a5b9fe8ce60f184698d72480029","srcmap":"1361:4838:7:-;;;2057:107;8:9:-1;5:2;;;30:1;27;20:12;5:2;2057:107:7;;;;;;;;;;;;;;;;;;;1527:6:9;:18;;-1:-1:-1;;;;;;1527:18:9;-1:-1:-1;;;;;1527:18:9;;;-1:-1:-1;;;;;;1555:32:9;;;;;;;;;;;;;;;2057:107:7;;;;1555:32:9;1671:15;;;1670:16;1666:78;;;1707:26;;;-1:-1:-1;;;;;1707:26:9;;;;;;;;;;;;;;;1666:78;1758:43;;;1787:1;1758:43;;-1:-1:-1;;;;;1758:43:9;;;;;;;;;;;;;;;;;;;1456:352;;2057:107:7;;1361:4838;;;;;;","srcmap-runtime":"1361:4838:7:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3671:96;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3671:96:7;;;;;;;;;;;;;;;;;;;;2851:97;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2851:97:7;-1:-1:-1;;;;;2851:97:7;;;;;;;3149:94:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3149:94:9;;;;;;;;;;;;;;;;;;;;;;3871:104:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3871:104:7;-1:-1:-1;;;;;3871:104:7;;;;;3000:86;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3000:86:7;;;;2631:91;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2631:91:7;-1:-1:-1;;;;;2631:91:7;;;;;3519:306:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3519:306:9;;;;3908:77;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3908:77:9;;;;;;;;-1:-1:-1;;;;;3908:77:9;;;;;;;;;;;;;;6075:122:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6075:122:7;-1:-1:-1;;;;;6075:122:7;;;;;;;;;;;;3224:101;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3224:101:7;-1:-1:-1;;;;;3224:101:7;;;;;2231:801:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2231:801:9;-1:-1:-1;;;;;2231:801:9;;;;;;;;;4087:114:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4087:114:7;-1:-1:-1;;;;;4087:114:7;;;;;3469:107;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3469:107:7;-1:-1:-1;;;;;3469:107:7;;;;;3671:96;3744:16;;3671:96;:::o;2851:97::-;1924:20:9;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:9;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1916:55:9;;;;;;;;;;;;;;;2919:22:7;2932:8;2919:12;:22::i;:::-;2851:97;:::o;3149:94:9:-;3198:4;3221:15;;;;;;;3149:94::o;3871:104:7:-;-1:-1:-1;;;;;3950:18:7;3927:4;3950:18;;;:8;:18;;;;;;;;;3871:104::o;3000:86::-;3068:11;;3000:86;:::o;2631:91::-;1924:20:9;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:9;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1916:55:9;;;;;;;;;;;;;;;2696:19:7;2706:8;2696:9;:19::i;3519:306:9:-;1924:20;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:9;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1916:55:9;;;;;;;;;;;;;;;3640:15;;;;;;;3632:57;;;;;;;-1:-1:-1;;;;;3632:57:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;3760:1;3743:19;;-1:-1:-1;;3743:19:9;;;3778:40;;;;;;;;;;;;;;;;;;;;;;;;;3519:306::o;3908:77::-;3946:7;3972:6;-1:-1:-1;;;;;3972:6:9;3908:77;:::o;6075:122:7:-;1924:20:9;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:9;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1916:55:9;;;;;;;;;;;;;;;6162:28:7;6169:3;6174:6;6182:7;6162:6;:28::i;:::-;6075:122;;;:::o;3224:101::-;2263:19;2271:10;2263:7;:19::i;:::-;2255:54;;;;;;;-1:-1:-1;;;;;2255:54:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;3294:24;3309:8;3294:14;:24::i;2231:801:9:-;1924:20;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:9;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1916:55:9;;;;;;;;;;;;;;;2388:15;;;;;;;2380:57;;;;;;;-1:-1:-1;;;;;2380:57:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2518:22:9;;;;2510:70;;;;;-1:-1:-1;;;;;2510:70:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2665:15;:31;;-1:-1:-1;;2665:31:9;;;;;;;;;;;;;;;2775:75;;2814:25;;;-1:-1:-1;;;;;2814:25:9;;;;;;;;;;;;;;;2775:75;2931:6;;2910:38;;;-1:-1:-1;;;;;2931:6:9;;;2910:38;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3008:6:9;:17;;-1:-1:-1;;3008:17:9;-1:-1:-1;;;;;3008:17:9;;;;;;;;;;2231:801::o;4087:114:7:-;-1:-1:-1;;;;;4171:23:7;4148:4;4171:23;;;:13;:23;;;;;;;;;4087:114::o;3469:107::-;2263:19;2271:10;2263:7;:19::i;:::-;2255:54;;;;;;;-1:-1:-1;;;;;2255:54:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;3542:27;3560:8;3542:17;:27::i;4091:107:9:-;4150:4;4185:6;-1:-1:-1;;;;;4185:6:9;;;4173:18;;;;4091:107::o;4828:236:7:-;-1:-1:-1;;;;;4894:18:7;;;;;;:8;:18;;;;;;;;4886:63;;;;;;;-1:-1:-1;;;;;4886:63:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4959:18:7;;4980:5;4959:18;;;:8;:18;;;;;;;;;:26;;-1:-1:-1;;4959:26:7;;;4995:11;:13;;-1:-1:-1;;4995:13:7;;;5023:34;;5036:10;5023:34;;;;;;;;;;;;;;;;;;;;;4828:236;:::o;4269:482::-;-1:-1:-1;;;;;4333:18:7;;;;;;:8;:18;;;;;;;;4332:19;4324:68;;;;;-1:-1:-1;;;;;4324:68:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4411:23:7;;;;;;:13;:23;;;;;;;;4410:24;4402:77;;;;;-1:-1:-1;;;;;4402:77:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4498:18;4507:8;4498;:18::i;:::-;4497:19;4489:69;;;;;-1:-1:-1;;;;;4489:69:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4576:22:7;;;;4568:71;;;;;-1:-1:-1;;;;;4568:71:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4649:18:7;;;;;;4670:4;4649:18;;;;;;;;;:25;;-1:-1:-1;;4649:25:7;;;;;4684:11;:13;;;;;;;;4712:32;;4723:10;4712:32;;;;;;;;;;;;;;;;;;;;;4269:482;:::o;1350:362:5:-;-1:-1:-1;;;;;1476:20:5;;;1472:189;;;1512:21;;-1:-1:-1;;;;;1512:12:5;;;:21;;;;;1525:7;;1512:21;;;;1525:7;1512:12;:21;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1512:21:5;1472:189;;;1578:6;-1:-1:-1;;;;;1572:22:5;;1595:3;1600:7;1572:36;;;;;;;;;;;;;-1:-1:-1;;;;;1572:36:5;-1:-1:-1;;;;;1572:36:5;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1572:36:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1572:36:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1572:36:5;1564:86;;;;;;;-1:-1:-1;;;;;1564:86:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1676:29;;;-1:-1:-1;;;;;1676:29:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;1350:362;;;:::o;5137:502:7:-;-1:-1:-1;;;;;5206:18:7;;;;;;:8;:18;;;;;;;;5205:19;5197:68;;;;;-1:-1:-1;;;;;5197:68:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5284:23:7;;;;;;:13;:23;;;;;;;;5283:24;5275:77;;;;;-1:-1:-1;;;;;5275:77:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5371:18;5380:8;5371;:18::i;:::-;5370:19;5362:69;;;;;-1:-1:-1;;;;;5362:69:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5449:22:7;;;;5441:71;;;;;-1:-1:-1;;;;;5441:71:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5522:23:7;;;;;;:13;:23;;;;;;;;;:30;;-1:-1:-1;;5522:30:7;5548:4;5522:30;;;;;;5562:16;:18;;;;;;;5595:37;;5611:10;5595:37;;;;;;;;;;;;;;;;;;;;;5137:502;:::o;5721:265::-;-1:-1:-1;;;;;5792:23:7;;;;;;:13;:23;;;;;;;;5784:72;;;;;;;-1:-1:-1;;;;;5784:72:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5866:23:7;;5892:5;5866:23;;;:13;:23;;;;;;;;;:31;;-1:-1:-1;;5866:31:7;;;5907:16;:18;;-1:-1:-1;;5907:18:7;;;5940:39;;5958:10;5940:39;;;;;;;;;;;;;;;;;;;;;5721:265;:::o"},"internals/controller.sol:IController":{"bin":"","bin-runtime":"","srcmap":"","srcmap-runtime":""},"internals/ensResolvable.sol:ENSResolvable":{"bin":"","bin-runtime":"","srcmap":"","srcmap-runtime":""},"internals/ownable.sol:Ownable":{"bin":"","bin-runtime":"","srcmap":"","srcmap-runtime":""},"internals/tokenWhitelist.sol:ITokenWhitelist":{"bin":"","bin-runtime":"","srcmap":"","srcmap-runtime":""},"internals/tokenWhitelist.sol:TokenWhitelist":{"bin":"608060405234801561001057600080fd5b5060405160c080611ab283398101604090815281516020830151918301516060840151608085015160a09095015160018054600160a060020a03808716600160a060020a03199283161792839055600080548316938216939093179092556002859055600380548915157401000000000000000000000000000000000000000090810260a060020a60ff0219958816929094169190911793909316919091179081905594969394929392849184910460ff1615156101055760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b6040805160008152600160a060020a038416602082015281517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea5929181900390910190a15050600794909455505060068054600160a060020a031916600160a060020a03909316929092179091555061192d9050806101856000396000f3006080604052600436106100c15763ffffffff60e060020a6000350416631f69565f81146100c65780632121dc751461019157806334c73edc146101ba5780633efec5e91461020f578063443dd2a4146102245780636c3824ef14610289578063715018a6146102a95780637d73b231146102be57806380cc0dda146102ef5780638da5cb5b14610316578063996cba681461032b578063b242e53414610355578063d545782e1461037b578063e2b4ce97146103a2578063e9cbd822146103b7575b600080fd5b3480156100d257600080fd5b506100e7600160a060020a03600435166103cc565b6040805160208082018990529181018790528515156060820152841515608082015283151560a082015260c0810183905260e08082528951908201528851909182916101008301918b019080838360005b83811015610150578181015183820152602001610138565b50505050905090810190601f16801561017d5780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b34801561019d57600080fd5b506101a66104c8565b604080519115158252519081900360200190f35b3480156101c657600080fd5b5061020d602460048035828101929082013591813580830192908201359160443580830192908201359160643580830192908201359160843591820191013560a4356104ea565b005b34801561021b57600080fd5b506100e7610981565b34801561023057600080fd5b50610239610a7d565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561027557818101518382015260200161025d565b505050509050019250505060405180910390f35b34801561029557600080fd5b5061020d6004803560248101910135610adf565b3480156102b557600080fd5b5061020d610d7e565b3480156102ca57600080fd5b506102d3610eab565b60408051600160a060020a039092168252519081900360200190f35b3480156102fb57600080fd5b50610304610eba565b60408051918252519081900360200190f35b34801561032257600080fd5b506102d3610ec0565b34801561033757600080fd5b5061020d600160a060020a0360043581169060243516604435610ecf565b34801561036157600080fd5b5061020d600160a060020a03600435166024351515610f3e565b34801561038757600080fd5b5061020d600160a060020a036004351660243560443561118f565b3480156103ae57600080fd5b506103046112f1565b3480156103c357600080fd5b506102d36112f7565b600160a060020a0381166000908152600460208181526040808420600180820154600280840154600385015497850154855487516101009682161587026000190190911693909304601f81018990048902840189019097528683526060999889988998899889988998919788979296929560ff80821696938204811695620100009092041693928991908301828280156104a75780601f1061047c576101008083540402835291602001916104a7565b820191906000526020600020905b81548152906001019060200180831161048a57829003601f168201915b50505050509650975097509750975097509750975050919395979092949650565b60035474010000000000000000000000000000000000000000900460ff165b90565b600060606104f733611306565b151561054d576040805160e560020a62461bcd02815260206004820152601a60248201527f73656e646572206973206e6f74206120636f6e74726f6c6c6572000000000000604482015290519081900360640190fd5b8b8a14801561055b57508b88145b801561056657508b86145b801561057157508b86145b15156105c7576040805160e560020a62461bcd02815260206004820152601e60248201527f706172616d65746572206c656e6774687320646f206e6f74206d617463680000604482015290519081900360640190fd5b600091505b8b82101561097257600460008e8e858181106105e457fe5b60209081029290920135600160a060020a03168352508101919091526040016000206003015460ff1615610662576040805160e560020a62461bcd02815260206004820152601760248201527f746f6b656e20616c726561647920617661696c61626c65000000000000000000604482015290519081900360640190fd5b6106886106838c8c8581811061067457fe5b6020029190910135905061139f565b6113cb565b905060e0604051908101604052808281526020018a8a8581811015156106aa57fe5b9050602002013581526020016000815260200160011515815260200188888581811015156106d457fe5b602090810292909201351515835250018686858181106106f057fe5b60209081029290920135151583525001849052600460008f8f8681811061071357fe5b90506020020135600160a060020a0316600160a060020a0316600160a060020a03168152602001908152602001600020600082015181600001908051906020019061075f9291906117e7565b5060208201516001820155604082015160028201556060820151600382018054608085015160a08601511515620100000262ff0000199115156101000261ff001995151560ff199094169390931794909416919091171691909117905560c09091015160049091015560058d8d848181106107d657fe5b8354600181018555600094855260209485902001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0395909202939093013593909316929092179055507f1802e89da3f6ef84e024e37454c226b1e13bf846ce71cd2a1d24faef9cbf779b338e8e8581811061084d57fe5b90506020020135600160a060020a0316838c8c87818110151561086c57fe5b905060200201358b8b88818110151561088157fe5b9050602002013515158a8a89818110151561089857fe5b9050602002013515156040518087600160a060020a0316600160a060020a0316815260200186600160a060020a0316600160a060020a03168152602001806020018581526020018415151515815260200183151515158152602001828103825286818151815260200191508051906020019080838360005b83811015610928578181015183820152602001610910565b50505050905090810190601f1680156109555780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390a16001909101906105cc565b50505050505050505050505050565b600654600160a060020a03166000908152600460208181526040808420600180820154600280840154600385015497850154855487516101009682161587026000190190911693909304601f81018990048902840189019097528683526060999889988998899889988998919788979296929560ff8082169693820481169562010000909204169392899190830182828015610a5e5780601f10610a3357610100808354040283529160200191610a5e565b820191906000526020600020905b815481529060010190602001808311610a4157829003601f168201915b5050505050965097509750975097509750975097505090919293949596565b60606005805480602002602001604051908101604052809291908181526020018280548015610ad557602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610ab7575b5050505050905090565b6000806000610aed33611306565b1515610b43576040805160e560020a62461bcd02815260206004820152601a60248201527f73656e646572206973206e6f74206120636f6e74726f6c6c6572000000000000604482015290519081900360640190fd5b600092505b83831015610d775760046000868686818110610b6057fe5b60209081029290920135600160a060020a03168352508101919091526040016000206003015460ff161515610bdf576040805160e560020a62461bcd02815260206004820152601660248201527f746f6b656e206973206e6f7420617661696c61626c6500000000000000000000604482015290519081900360640190fd5b848484818110610beb57fe5b60209081029290920135600160a060020a03166000818152600490935260408320909450919050610c1c8282611865565b506000600182018190556002820181905560038201805462ffffff19169055600490910181905590505b600554610c5a90600163ffffffff61142516565b811015610d155781600160a060020a0316600582815481101515610c7a57fe5b600091825260209091200154600160a060020a03161415610d0d5760058054610caa90600163ffffffff61142516565b81548110610cb457fe5b60009182526020909120015460058054600160a060020a039092169183908110610cda57fe5b9060005260206000200160006101000a815481600160a060020a030219169083600160a060020a03160217905550610d15565b600101610c46565b6005805490610d289060001983016118ac565b5060408051338152600160a060020a038416602082015281517f703f7e3f084d5b8dcc12fddcfd9a70d65b6b21ec7659e4608dbaf4419ede3ad0929181900390910190a1600190920191610b48565b5050505050565b610d873361143c565b1515610ddd576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e206f776e657200000000000000000000604482015290519081900360640190fd5b60035474010000000000000000000000000000000000000000900460ff161515610e51576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b6003805473ffffffffffffffffffffffffffffffffffffffff19169055604080516000808252602082015281517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea5929181900390910190a1565b600154600160a060020a031690565b60075490565b600354600160a060020a031690565b610ed83361143c565b1515610f2e576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e206f776e657200000000000000000000604482015290519081900360640190fd5b610f39838383611450565b505050565b610f473361143c565b1515610f9d576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e206f776e657200000000000000000000604482015290519081900360640190fd5b60035474010000000000000000000000000000000000000000900460ff161515611011576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b600160a060020a0382161515611097576040805160e560020a62461bcd02815260206004820152602360248201527f6f776e65722063616e6e6f742062652073657420746f207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6003805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000831515908102919091179091556111175760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b60035460408051600160a060020a039283168152918416602083015280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1506003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600061119c6007546115f6565b90506111a733611306565b806111ba575033600160a060020a038216145b1515611210576040805160e560020a62461bcd02815260206004820152601b60248201527f656974686572206f7261636c65206f7220636f6e74726f6c6c65720000000000604482015290519081900360640190fd5b600160a060020a03841660009081526004602052604090206003015460ff161515611285576040805160e560020a62461bcd02815260206004820152601660248201527f746f6b656e206973206e6f7420617661696c61626c6500000000000000000000604482015290519081900360640190fd5b600160a060020a03841660008181526004602081815260409283902060028101889055909101859055815133815290810192909252818101859052517fdb3a4cfb4cd8ac94343ff7440cee8d05ade309056203f0e53ca49b6db8197c7d9181900360600190a150505050565b60025490565b600654600160a060020a031690565b60006113136002546115f6565b600160a060020a031663b429afeb836040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b15801561136d57600080fd5b505af1158015611381573d6000803e3d6000fd5b505050506040513d602081101561139757600080fd5b505192915050565b6113a76118d0565b60405160208101604052828152806020830152506113c4826116ed565b8152919050565b606080600083600001516040519080825280601f01601f191660200182016040528015611402578160200160208202803883390190505b50915060208201905061141e81856020015186600001516117a3565b5092915050565b6000808383111561143557600080fd5b5050900390565b600354600160a060020a0390811691161490565b600160a060020a038216151561149c57604051600160a060020a0384169082156108fc029083906000818181858888f19350505050158015611496573d6000803e3d6000fd5b506115a7565b81600160a060020a031663a9059cbb84836040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b1580156114ff57600080fd5b505af1158015611513573d6000803e3d6000fd5b505050506040513d602081101561152957600080fd5b505115156115a7576040805160e560020a62461bcd02815260206004820152602560248201527f455243323020746f6b656e207472616e736665722077617320756e737563636560448201527f737366756c000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60408051600160a060020a0380861682528416602082015280820183905290517ff7a40077ff7a04c7e61f6f26fb13774259ddf1b6bce9ecf26a8276cdd39926839181900360600190a1505050565b60008054604080517f0178b8bf000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691630178b8bf9160248082019260209290919082900301818787803b15801561165d57600080fd5b505af1158015611671573d6000803e3d6000fd5b505050506040513d602081101561168757600080fd5b5051604080517f3b3b57de000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691633b3b57de916024808201926020929091908290030181600087803b15801561136d57600080fd5b600080821515611700576000915061179d565b6fffffffffffffffffffffffffffffffff8316151561173357601001700100000000000000000000000000000000830492505b67ffffffffffffffff831615156117565760080168010000000000000000830492505b63ffffffff8316151561177157600401640100000000830492505b61ffff831615156117885760020162010000830492505b60ff83161515611796576001015b8060200391505b50919050565b60005b602082106117c8578251845260209384019390920191601f19909101906117a6565b50905182516020929092036101000a6000190180199091169116179052565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061182857805160ff1916838001178555611855565b82800160010185558215611855579182015b8281111561185557825182559160200191906001019061183a565b506118619291506118e7565b5090565b50805460018160011615610100020316600290046000825580601f1061188b57506118a9565b601f0160209004906000526020600020908101906118a991906118e7565b50565b815481835581811115610f3957600083815260209020610f399181019083016118e7565b604080518082019091526000808252602082015290565b6104e791905b8082111561186157600081556001016118ed5600a165627a7a723058208c4be71ac085882be552fd06a3c105b468b8d2bbdf25c86681a98320fb418c500029","bin-runtime":"6080604052600436106100c15763ffffffff60e060020a6000350416631f69565f81146100c65780632121dc751461019157806334c73edc146101ba5780633efec5e91461020f578063443dd2a4146102245780636c3824ef14610289578063715018a6146102a95780637d73b231146102be57806380cc0dda146102ef5780638da5cb5b14610316578063996cba681461032b578063b242e53414610355578063d545782e1461037b578063e2b4ce97146103a2578063e9cbd822146103b7575b600080fd5b3480156100d257600080fd5b506100e7600160a060020a03600435166103cc565b6040805160208082018990529181018790528515156060820152841515608082015283151560a082015260c0810183905260e08082528951908201528851909182916101008301918b019080838360005b83811015610150578181015183820152602001610138565b50505050905090810190601f16801561017d5780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b34801561019d57600080fd5b506101a66104c8565b604080519115158252519081900360200190f35b3480156101c657600080fd5b5061020d602460048035828101929082013591813580830192908201359160443580830192908201359160643580830192908201359160843591820191013560a4356104ea565b005b34801561021b57600080fd5b506100e7610981565b34801561023057600080fd5b50610239610a7d565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561027557818101518382015260200161025d565b505050509050019250505060405180910390f35b34801561029557600080fd5b5061020d6004803560248101910135610adf565b3480156102b557600080fd5b5061020d610d7e565b3480156102ca57600080fd5b506102d3610eab565b60408051600160a060020a039092168252519081900360200190f35b3480156102fb57600080fd5b50610304610eba565b60408051918252519081900360200190f35b34801561032257600080fd5b506102d3610ec0565b34801561033757600080fd5b5061020d600160a060020a0360043581169060243516604435610ecf565b34801561036157600080fd5b5061020d600160a060020a03600435166024351515610f3e565b34801561038757600080fd5b5061020d600160a060020a036004351660243560443561118f565b3480156103ae57600080fd5b506103046112f1565b3480156103c357600080fd5b506102d36112f7565b600160a060020a0381166000908152600460208181526040808420600180820154600280840154600385015497850154855487516101009682161587026000190190911693909304601f81018990048902840189019097528683526060999889988998899889988998919788979296929560ff80821696938204811695620100009092041693928991908301828280156104a75780601f1061047c576101008083540402835291602001916104a7565b820191906000526020600020905b81548152906001019060200180831161048a57829003601f168201915b50505050509650975097509750975097509750975050919395979092949650565b60035474010000000000000000000000000000000000000000900460ff165b90565b600060606104f733611306565b151561054d576040805160e560020a62461bcd02815260206004820152601a60248201527f73656e646572206973206e6f74206120636f6e74726f6c6c6572000000000000604482015290519081900360640190fd5b8b8a14801561055b57508b88145b801561056657508b86145b801561057157508b86145b15156105c7576040805160e560020a62461bcd02815260206004820152601e60248201527f706172616d65746572206c656e6774687320646f206e6f74206d617463680000604482015290519081900360640190fd5b600091505b8b82101561097257600460008e8e858181106105e457fe5b60209081029290920135600160a060020a03168352508101919091526040016000206003015460ff1615610662576040805160e560020a62461bcd02815260206004820152601760248201527f746f6b656e20616c726561647920617661696c61626c65000000000000000000604482015290519081900360640190fd5b6106886106838c8c8581811061067457fe5b6020029190910135905061139f565b6113cb565b905060e0604051908101604052808281526020018a8a8581811015156106aa57fe5b9050602002013581526020016000815260200160011515815260200188888581811015156106d457fe5b602090810292909201351515835250018686858181106106f057fe5b60209081029290920135151583525001849052600460008f8f8681811061071357fe5b90506020020135600160a060020a0316600160a060020a0316600160a060020a03168152602001908152602001600020600082015181600001908051906020019061075f9291906117e7565b5060208201516001820155604082015160028201556060820151600382018054608085015160a08601511515620100000262ff0000199115156101000261ff001995151560ff199094169390931794909416919091171691909117905560c09091015160049091015560058d8d848181106107d657fe5b8354600181018555600094855260209485902001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0395909202939093013593909316929092179055507f1802e89da3f6ef84e024e37454c226b1e13bf846ce71cd2a1d24faef9cbf779b338e8e8581811061084d57fe5b90506020020135600160a060020a0316838c8c87818110151561086c57fe5b905060200201358b8b88818110151561088157fe5b9050602002013515158a8a89818110151561089857fe5b9050602002013515156040518087600160a060020a0316600160a060020a0316815260200186600160a060020a0316600160a060020a03168152602001806020018581526020018415151515815260200183151515158152602001828103825286818151815260200191508051906020019080838360005b83811015610928578181015183820152602001610910565b50505050905090810190601f1680156109555780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390a16001909101906105cc565b50505050505050505050505050565b600654600160a060020a03166000908152600460208181526040808420600180820154600280840154600385015497850154855487516101009682161587026000190190911693909304601f81018990048902840189019097528683526060999889988998899889988998919788979296929560ff8082169693820481169562010000909204169392899190830182828015610a5e5780601f10610a3357610100808354040283529160200191610a5e565b820191906000526020600020905b815481529060010190602001808311610a4157829003601f168201915b5050505050965097509750975097509750975097505090919293949596565b60606005805480602002602001604051908101604052809291908181526020018280548015610ad557602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610ab7575b5050505050905090565b6000806000610aed33611306565b1515610b43576040805160e560020a62461bcd02815260206004820152601a60248201527f73656e646572206973206e6f74206120636f6e74726f6c6c6572000000000000604482015290519081900360640190fd5b600092505b83831015610d775760046000868686818110610b6057fe5b60209081029290920135600160a060020a03168352508101919091526040016000206003015460ff161515610bdf576040805160e560020a62461bcd02815260206004820152601660248201527f746f6b656e206973206e6f7420617661696c61626c6500000000000000000000604482015290519081900360640190fd5b848484818110610beb57fe5b60209081029290920135600160a060020a03166000818152600490935260408320909450919050610c1c8282611865565b506000600182018190556002820181905560038201805462ffffff19169055600490910181905590505b600554610c5a90600163ffffffff61142516565b811015610d155781600160a060020a0316600582815481101515610c7a57fe5b600091825260209091200154600160a060020a03161415610d0d5760058054610caa90600163ffffffff61142516565b81548110610cb457fe5b60009182526020909120015460058054600160a060020a039092169183908110610cda57fe5b9060005260206000200160006101000a815481600160a060020a030219169083600160a060020a03160217905550610d15565b600101610c46565b6005805490610d289060001983016118ac565b5060408051338152600160a060020a038416602082015281517f703f7e3f084d5b8dcc12fddcfd9a70d65b6b21ec7659e4608dbaf4419ede3ad0929181900390910190a1600190920191610b48565b5050505050565b610d873361143c565b1515610ddd576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e206f776e657200000000000000000000604482015290519081900360640190fd5b60035474010000000000000000000000000000000000000000900460ff161515610e51576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b6003805473ffffffffffffffffffffffffffffffffffffffff19169055604080516000808252602082015281517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea5929181900390910190a1565b600154600160a060020a031690565b60075490565b600354600160a060020a031690565b610ed83361143c565b1515610f2e576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e206f776e657200000000000000000000604482015290519081900360640190fd5b610f39838383611450565b505050565b610f473361143c565b1515610f9d576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e206f776e657200000000000000000000604482015290519081900360640190fd5b60035474010000000000000000000000000000000000000000900460ff161515611011576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b600160a060020a0382161515611097576040805160e560020a62461bcd02815260206004820152602360248201527f6f776e65722063616e6e6f742062652073657420746f207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6003805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000831515908102919091179091556111175760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b60035460408051600160a060020a039283168152918416602083015280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1506003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600061119c6007546115f6565b90506111a733611306565b806111ba575033600160a060020a038216145b1515611210576040805160e560020a62461bcd02815260206004820152601b60248201527f656974686572206f7261636c65206f7220636f6e74726f6c6c65720000000000604482015290519081900360640190fd5b600160a060020a03841660009081526004602052604090206003015460ff161515611285576040805160e560020a62461bcd02815260206004820152601660248201527f746f6b656e206973206e6f7420617661696c61626c6500000000000000000000604482015290519081900360640190fd5b600160a060020a03841660008181526004602081815260409283902060028101889055909101859055815133815290810192909252818101859052517fdb3a4cfb4cd8ac94343ff7440cee8d05ade309056203f0e53ca49b6db8197c7d9181900360600190a150505050565b60025490565b600654600160a060020a031690565b60006113136002546115f6565b600160a060020a031663b429afeb836040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b15801561136d57600080fd5b505af1158015611381573d6000803e3d6000fd5b505050506040513d602081101561139757600080fd5b505192915050565b6113a76118d0565b60405160208101604052828152806020830152506113c4826116ed565b8152919050565b606080600083600001516040519080825280601f01601f191660200182016040528015611402578160200160208202803883390190505b50915060208201905061141e81856020015186600001516117a3565b5092915050565b6000808383111561143557600080fd5b5050900390565b600354600160a060020a0390811691161490565b600160a060020a038216151561149c57604051600160a060020a0384169082156108fc029083906000818181858888f19350505050158015611496573d6000803e3d6000fd5b506115a7565b81600160a060020a031663a9059cbb84836040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b1580156114ff57600080fd5b505af1158015611513573d6000803e3d6000fd5b505050506040513d602081101561152957600080fd5b505115156115a7576040805160e560020a62461bcd02815260206004820152602560248201527f455243323020746f6b656e207472616e736665722077617320756e737563636560448201527f737366756c000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60408051600160a060020a0380861682528416602082015280820183905290517ff7a40077ff7a04c7e61f6f26fb13774259ddf1b6bce9ecf26a8276cdd39926839181900360600190a1505050565b60008054604080517f0178b8bf000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691630178b8bf9160248082019260209290919082900301818787803b15801561165d57600080fd5b505af1158015611671573d6000803e3d6000fd5b505050506040513d602081101561168757600080fd5b5051604080517f3b3b57de000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691633b3b57de916024808201926020929091908290030181600087803b15801561136d57600080fd5b600080821515611700576000915061179d565b6fffffffffffffffffffffffffffffffff8316151561173357601001700100000000000000000000000000000000830492505b67ffffffffffffffff831615156117565760080168010000000000000000830492505b63ffffffff8316151561177157600401640100000000830492505b61ffff831615156117885760020162010000830492505b60ff83161515611796576001015b8060200391505b50919050565b60005b602082106117c8578251845260209384019390920191601f19909101906117a6565b50905182516020929092036101000a6000190180199091169116179052565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061182857805160ff1916838001178555611855565b82800160010185558215611855579182015b8281111561185557825182559160200191906001019061183a565b506118619291506118e7565b5090565b50805460018160011615610100020316600290046000825580601f1061188b57506118a9565b601f0160209004906000526020600020908101906118a991906118e7565b50565b815481835581811115610f3957600083815260209020610f399181019083016118e7565b604080518082019091526000808252602082015290565b6104e791905b8082111561186157600081556001016118ed5600a165627a7a723058208c4be71ac085882be552fd06a3c105b468b8d2bbdf25c86681a98320fb418c500029","srcmap":"1619:8461:10:-;;;3201:336;8:9:-1;5:2;;;30:1;27;20:12;5:2;3201:336:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1312:12:8;:23;;-1:-1:-1;;;;;1312:23:8;;;-1:-1:-1;;;;;;1312:23:8;;;;;;;;:12;1345:24;;;;1356:12;;;1345:24;;;;;;;1334:15:6;:38;;;1527:6:9;:18;;1555:32;;;;;;;-1:-1:-1;;;;;;1527:18:9;;;;;;;;;;;1555:32;;;;;;;;;;;;3201:336:10;;;;;;;;;;;1671:15:9;1555:32;1671:15;1670:16;1666:78;;;1707:26;;;-1:-1:-1;;;;;1707:26:9;;;;;;;;;;;;;;;1666:78;1758:43;;;1787:1;1758:43;;-1:-1:-1;;;;;1758:43:9;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3457:11:10;:30;;;;-1:-1:-1;;3497:11:10;:33;;-1:-1:-1;;;;;;3497:33:10;-1:-1:-1;;;;;3497:33:10;;;;;;;;;;-1:-1:-1;1619:8461:10;;-1:-1:-1;1619:8461:10;;-1:-1:-1;1619:8461:10;;","srcmap-runtime":"1619:8461:10:-;;;;;;;;;-1:-1:-1;;;1619:8461:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8241:325;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8241:325:10;-1:-1:-1;;;;;8241:325:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-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;8241:325:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3149:94:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3149:94:9;;;;;;;;;;;;;;;;;;;;;;4101:1439:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4101:1439:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9058:369;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9058:369:10;;;;9550:105;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9550:105:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;9550:105:10;;;;;;;;;;;;;;;;;5667:1031;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5667:1031:10;;;;;;;;;;;;3519:306:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3519:306:9;;;;1468:91:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1468:91:8;;;;;;;;-1:-1:-1;;;;;1468:91:8;;;;;;;;;;;;;;9989:89:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9989:89:10;;;;;;;;;;;;;;;;;;;;3908:77:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3908:77:9;;;;7578:122:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7578:122:10;-1:-1:-1;;;;;7578:122:10;;;;;;;;;;;;2231:801:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2231:801:9;-1:-1:-1;;;;;2231:801:9;;;;;;;;;6975:514:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6975:514:10;-1:-1:-1;;;;;6975:514:10;;;;;;;;;1629:97:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1629:97:6;;;;9786:89:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9786:89:10;;;;8241:325;-1:-1:-1;;;;;8387:17:10;;8306:7;8387:17;;;:13;:17;;;;;;;;8440:19;;;;;8461:14;;;;;8477:19;;;;8538:20;;;;8414:145;;;;8477:19;8414:145;;;;;;-1:-1:-1;;8414:145:10;;;;;;;;;;;;;;;;;;;;;;;;;;8298:6;;8306:7;;;;;;;;;;;8387:17;;;;8440:19;;8461:14;;8477:19;;;;;8498:18;;;;;;8518;;;;;;8538:20;8387:17;;8414:145;;;8387:17;8414:145;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8241:325;;;;;;;;;;:::o;3149:94:9:-;3221:15;;;;;;;3149:94;;:::o;4101:1439:10:-;4592:6;4838:20;1489:25:6;1503:10;1489:13;:25::i;:::-;1481:64;;;;;;;-1:-1:-1;;;;;1481:64:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;4335:33:10;;;:72;;;;-1:-1:-1;4372:35:10;;;4335:72;:110;;;;-1:-1:-1;4411:34:10;;;4335:110;:148;;;;-1:-1:-1;4449:34:10;;;4335:148;4327:191;;;;;;;-1:-1:-1;;;;;4327:191:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;4601:1;4592:10;;4587:947;4604:18;;;4587:947;;;4715:13;:25;4729:7;;4737:1;4729:10;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4729:10:10;4715:25;;-1:-1:-1;4715:25:10;;;;;;;;-1:-1:-1;4715:25:10;:35;;;;;4714:36;4706:72;;;;;-1:-1:-1;;;;;4706:72:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;4861:35;:24;:8;;4870:1;4861:11;;;;;;;;;;;;;;;-1:-1:-1;4861:22:10;:24::i;:::-;:33;:35::i;:::-;4838:58;;4986:284;;;;;;;;;5019:6;4986:284;;;;5055:10;;5066:1;5055:13;;;;;;;;;;;;;;;4986:284;;;;5093:1;4986:284;;;;5124:4;4986:284;;;;;;5157:9;;5167:1;5157:12;;;;;;;;;;;;;;;;;;;;4986:284;;-1:-1:-1;4986:284:10;5197:9;;5207:1;5197:12;;;;;;;;;;;;;;;;;;4986:284;;-1:-1:-1;4986:284:10;;;;4958:13;-1:-1:-1;4972:7:10;;4980:1;4972:10;;;;;;;;;;;;;-1:-1:-1;;;;;4972:10:10;-1:-1:-1;;;;;4958:25:10;-1:-1:-1;;;;;4958:25:10;;;;;;;;;;;;:312;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;4958:312:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4958:312:10;;;;;-1:-1:-1;;4958:312:10;;;-1:-1:-1;;4958:312:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5342:18;5366:7;;5374:1;5366:10;;;;;;;27::-1;;39:1;23:18;;45:23;;-1:-1;5342:35:10;;;5366:10;5342:35;;;;;;;-1:-1:-1;;5342:35:10;-1:-1:-1;;;;;5366:10:10;;;;;;;;;;;;;5342:35;;;;;;-1:-1:-1;5438:85:10;5449:10;5461:7;;5469:1;5461:10;;;;;;;;;;;;;-1:-1:-1;;;;;5461:10:10;5473:6;5481:10;;5492:1;5481:13;;;;;;;;;;;;;;;5496:9;;5506:1;5496:12;;;;;;;;;;;;;;;;;5510:9;;5520:1;5510:12;;;;;;;;;;;;;;;;;5438:85;;;;-1:-1:-1;;;;;5438:85:10;-1:-1:-1;;;;;5438:85:10;;;;;;-1:-1:-1;;;;;5438:85:10;-1:-1:-1;;;;;5438:85:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;5438:85:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4624:3;;;;;4587:947;;;4101:1439;;;;;;;;;;;;;:::o;9058:369::-;9218:11;;-1:-1:-1;;;;;9218:11:10;9118:7;9204:26;;;:13;:26;;;;;;;;9218:11;9271:24;;;;9297:19;;;;;9318:24;;;;9394:25;;;;9240:180;;;;9218:11;9240:180;;;;;;-1:-1:-1;;9240:180:10;;;;;;;;;;;;;;;;;;;;;;;;;;9110:6;;9118:7;;;;;;;;;;;9204:26;;;;9271:24;;9297:19;;9318:24;;;;;9344:23;;;;;;9369;;;;;;9394:25;9204:26;;9240:180;;;9204:26;9240:180;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9058:369;;;;;;;;:::o;9550:105::-;9602:9;9630:18;9623:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9623:25:10;;;;;;;;;;;;;;;;;;;;;;;9550:105;:::o;5667:1031::-;5850:6;6094:13;6283:6;1489:25:6;1503:10;1489:13;:25::i;:::-;1481:64;;;;;;;-1:-1:-1;;;;;1481:64:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;5859:1:10;5850:10;;5845:847;5862:18;;;5845:847;;;5978:13;:25;5992:7;;6000:1;5992:10;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5992:10:10;5978:25;;-1:-1:-1;5978:25:10;;;;;;;;-1:-1:-1;5978:25:10;:35;;;;;5970:70;;;;;;;-1:-1:-1;;;;;5970:70:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;6110:7;;6118:1;6110:10;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6110:10:10;6181:20;;;;:13;:20;;;;;;6110:10;;-1:-1:-1;6181:20:10;;-1:-1:-1;6174:27:10;6181:20;;6174:27;:::i;:::-;-1:-1:-1;6174:27:10;;;;;;;;;;;;;;;;;;-1:-1:-1;;6174:27:10;;;;;;;;;;;-1:-1:-1;6278:272:10;6299:18;:25;:32;;6329:1;6299:32;:29;:32;:::i;:::-;6295:1;:36;6278:272;;;6385:5;-1:-1:-1;;;;;6360:30:10;:18;6379:1;6360:21;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6360:21:10;:30;6356:180;;;6438:18;6457:25;;:32;;6487:1;6457:32;:29;:32;:::i;:::-;6438:52;;;;;;;;;;;;;;;;;;6414:18;:21;;-1:-1:-1;;;;;6438:52:10;;;;6433:1;;6414:21;;;;;;;;;;;;;;:76;;;;;-1:-1:-1;;;;;6414:76:10;;;;;-1:-1:-1;;;;;6414:76:10;;;;;;6512:5;;6356:180;6333:3;;6278:272;;;6563:18;:27;;;;;-1:-1:-1;;6563:27:10;;;:::i;:::-;-1:-1:-1;6650:31:10;;;6663:10;6650:31;;-1:-1:-1;;;;;6650:31:10;;;;;;;;;;;;;;;;;;;5882:3;;;;;5845:847;;;5667:1031;;;;;:::o;3519:306:9:-;1924:20;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;3640:15;;;;;;;3632:57;;;;;;;-1:-1:-1;;;;;3632:57:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;3743:6;:19;;-1:-1:-1;;3743:19:9;;;3778:40;;;3760:1;3778:40;;;;;;;;;;;;;;;;;;;;3519:306::o;1468:91:8:-;1540:12;;-1:-1:-1;;;;;1540:12:8;1468:91;:::o;9989:89:10:-;10060:11;;9989:89;:::o;3908:77:9:-;3972:6;;-1:-1:-1;;;;;3972:6:9;3908:77;:::o;7578:122:10:-;1924:20:9;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;7665:28:10;7672:3;7677:6;7685:7;7665:6;:28::i;:::-;7578:122;;;:::o;2231:801:9:-;1924:20;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;2388:15;;;;;;;2380:57;;;;;;;-1:-1:-1;;;;;2380:57:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2518:22:9;;;;2510:70;;;;;-1:-1:-1;;;;;2510:70:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2665:15;:31;;-1:-1:-1;;2665:31:9;;;;;;;;;;;;;;;2775:75;;2814:25;;;-1:-1:-1;;;;;2814:25:9;;;;;;;;;;;;;;;2775:75;2931:6;;2910:38;;;-1:-1:-1;;;;;2931:6:9;;;2910:38;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3008:6:9;:17;;-1:-1:-1;;3008:17:9;-1:-1:-1;;;;;3008:17:9;;;;;;;;;;2231:801::o;6975:514:10:-;2597:21;2621:24;2633:11;;2621;:24::i;:::-;2597:48;;2664:25;2678:10;2664:13;:25::i;:::-;:56;;;-1:-1:-1;2693:10:10;-1:-1:-1;;;;;2693:27:10;;;2664:56;2655:97;;;;;;;-1:-1:-1;;;;;2655:97:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7138:21:10;;;;;;:13;:21;;;;;:31;;;;;7130:66;;;;;;;-1:-1:-1;;;;;7130:66:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7242:21:10;;;;;;:13;:21;;;;;;;;;:26;;;:34;;;7339:32;;;:46;;;7439:43;;7456:10;7439:43;;;;;;;;;;;;;;;;;;;;;;;;;6975:514;;;;:::o;1629:97:6:-;1704:15;;1629:97;:::o;9786:89:10:-;9857:11;;-1:-1:-1;;;;;9857:11:10;9786:89;:::o;1796:158:6:-;1860:4;1895:28;1907:15;;1895:11;:28::i;:::-;-1:-1:-1;;;;;1883:54:6;;1938:8;1883:64;;;;;-1:-1:-1;;;1883:64:6;;;;;;;-1:-1:-1;;;;;1883:64:6;-1:-1:-1;;;;;1883:64:6;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1883:64:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1883:64:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1883:64:6;;1796:158;-1:-1:-1;;1796:158:6:o;4914:370:4:-;4971:16;;:::i;:::-;5122:4;5116:11;5162:4;5157:3;5153:14;5147:4;5140:28;5193:4;5188:3;5181:17;5234:3;5227:4;5222:3;5218:14;5211:27;5091:157;5268:9;5272:4;5268:3;:9::i;:::-;5257:20;;:3;4914:370;-1:-1:-1;4914:370:4:o;5778:265::-;5838:6;5863:17;5914:11;5894:4;:9;;;5883:21;;;;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;5883:21:4;;5863:41;;5965:2;5960:3;5956:12;5946:22;;5980:36;5987:6;5995:4;:9;;;6006:4;:9;;;5980:6;:36::i;:::-;-1:-1:-1;6033:3:4;5778:265;-1:-1:-1;;5778:265:4:o;2250:131:1:-;2308:7;;2331:6;;;;2323:15;;;;;;-1:-1:-1;;2356:5:1;;;2250:131::o;4091:107:9:-;4185:6;;-1:-1:-1;;;;;4185:6:9;;;4173:18;;;;4091:107::o;1350:362:5:-;-1:-1:-1;;;;;1476:20:5;;;1472:189;;;1512:21;;-1:-1:-1;;;;;1512:12:5;;;:21;;;;;1525:7;;1512:21;;;;1525:7;1512:12;:21;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1512:21:5;1472:189;;;1578:6;-1:-1:-1;;;;;1572:22:5;;1595:3;1600:7;1572:36;;;;;-1:-1:-1;;;1572:36:5;;;;;;;-1:-1:-1;;;;;1572:36:5;-1:-1:-1;;;;;1572:36:5;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1572:36:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1572:36:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1572:36:5;1564:86;;;;;;;-1:-1:-1;;;;;1564:86:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1676:29;;;-1:-1:-1;;;;;1676:29:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;1350:362;;;:::o;1748:152:8:-;1811:7;1852:4;;:24;;;;;;;;;;;;;;-1:-1:-1;;;;;1852:4:8;;;;:13;;:24;;;;;;;;;;;;;;;1811:7;1852:4;:24;;;5:2:-1;;;;30:1;27;20:12;5:2;1852:24:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1852:24:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1852:24:8;1837:56;;;;;;;;;;;;;;-1:-1:-1;;;;;1837:45:8;;;;;;:56;;;;;1852:24;;1837:56;;;;;;;;;:45;:56;;;5:2:-1;;;;30:1;27;20:12;3840:768:4;3890:4;;3928:9;;3924:35;;;3958:1;3951:8;;;;3924:35;3980:34;3973:41;;:46;3969:164;;;4042:2;4035:9;4086:35;4078:4;4073:48;;-1:-1:-1;3969:164:4;4153:18;4146:25;;:30;4142:131;;;4199:1;4192:8;4242:19;4234:4;4229:32;;-1:-1:-1;4142:131:4;4293:10;4286:17;;:22;4282:115;;;4331:1;4324:8;4374:11;4366:4;4361:24;;-1:-1:-1;4282:115:4;4417:6;4410:13;;:18;4406:107;;;4451:1;4444:8;4494:7;4486:4;4481:20;;-1:-1:-1;4406:107:4;4533:4;4526:11;;:16;4522:55;;;4565:1;4558:8;4522:55;4598:3;4593:2;:8;4586:15;;3840:768;;;;;:::o;2686:548::-;3012:9;2806:164;2819:2;2812:9;;2806:164;;2888:10;;2875:24;;2934:2;2926:10;;;;2950:9;;;;-1:-1:-1;;2823:9:4;;;;2806:164;;;-1:-1:-1;3097:10:4;;3152:11;;3032:2;:8;;;;3024:3;:17;-1:-1:-1;;3024:21:4;3109:9;;3093:26;;;3148:22;;3196:21;3183:35;;3064:164::o;1619:8461:10:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1619:8461:10;;;-1:-1:-1;1619:8461:10;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;1619:8461:10;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;"}},"sourceList":["externals/ERC20.sol","externals/SafeMath.sol","externals/ens/ENS.sol","externals/ens/PublicResolver.sol","externals/strings.sol","internals/claimable.sol","internals/controllable.sol","internals/controller.sol","internals/ensResolvable.sol","internals/ownable.sol","internals/tokenWhitelist.sol"],"sources":{"externals/ERC20.sol":{"AST":{"attributes":{"absolutePath":"externals/ERC20.sol","exportedSymbols":{"ERC20":[2704]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".25"]},"id":2667,"name":"PragmaDirective","src":"0:24:0"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"interface","documentation":"@title ERC20 interface is a subset of the ERC20 specification.","fullyImplemented":false,"linearizedBaseContracts":[2704],"name":"ERC20","scope":2705},"children":[{"attributes":{"body":null,"constant":false,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"approve","payable":false,"scope":2704,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"","scope":2676,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2668,"name":"ElementaryTypeName","src":"132:7:0"}],"id":2669,"name":"VariableDeclaration","src":"132:7:0"},{"attributes":{"constant":false,"name":"","scope":2676,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":2670,"name":"ElementaryTypeName","src":"141:7:0"}],"id":2671,"name":"VariableDeclaration","src":"141:7:0"}],"id":2672,"name":"ParameterList","src":"131:18:0"},{"children":[{"attributes":{"constant":false,"name":"","scope":2676,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2673,"name":"ElementaryTypeName","src":"168:4:0"}],"id":2674,"name":"VariableDeclaration","src":"168:4:0"}],"id":2675,"name":"ParameterList","src":"167:6:0"}],"id":2676,"name":"FunctionDefinition","src":"115:59:0"},{"attributes":{"body":null,"constant":true,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"balanceOf","payable":false,"scope":2704,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"","scope":2683,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2677,"name":"ElementaryTypeName","src":"198:7:0"}],"id":2678,"name":"VariableDeclaration","src":"198:7:0"}],"id":2679,"name":"ParameterList","src":"197:9:0"},{"children":[{"attributes":{"constant":false,"name":"","scope":2683,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2680,"name":"ElementaryTypeName","src":"230:4:0"}],"id":2681,"name":"VariableDeclaration","src":"230:4:0"}],"id":2682,"name":"ParameterList","src":"229:6:0"}],"id":2683,"name":"FunctionDefinition","src":"179:57:0"},{"attributes":{"body":null,"constant":false,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"transfer","payable":false,"scope":2704,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"","scope":2692,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2684,"name":"ElementaryTypeName","src":"259:7:0"}],"id":2685,"name":"VariableDeclaration","src":"259:7:0"},{"attributes":{"constant":false,"name":"","scope":2692,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2686,"name":"ElementaryTypeName","src":"268:4:0"}],"id":2687,"name":"VariableDeclaration","src":"268:4:0"}],"id":2688,"name":"ParameterList","src":"258:15:0"},{"children":[{"attributes":{"constant":false,"name":"","scope":2692,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2689,"name":"ElementaryTypeName","src":"292:4:0"}],"id":2690,"name":"VariableDeclaration","src":"292:4:0"}],"id":2691,"name":"ParameterList","src":"291:6:0"}],"id":2692,"name":"FunctionDefinition","src":"241:57:0"},{"attributes":{"body":null,"constant":false,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"transferFrom","payable":false,"scope":2704,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_from","scope":2703,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2693,"name":"ElementaryTypeName","src":"325:7:0"}],"id":2694,"name":"VariableDeclaration","src":"325:13:0"},{"attributes":{"constant":false,"name":"_to","scope":2703,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2695,"name":"ElementaryTypeName","src":"340:7:0"}],"id":2696,"name":"VariableDeclaration","src":"340:11:0"},{"attributes":{"constant":false,"name":"_value","scope":2703,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":2697,"name":"ElementaryTypeName","src":"353:7:0"}],"id":2698,"name":"VariableDeclaration","src":"353:14:0"}],"id":2699,"name":"ParameterList","src":"324:44:0"},{"children":[{"attributes":{"constant":false,"name":"success","scope":2703,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2700,"name":"ElementaryTypeName","src":"387:4:0"}],"id":2701,"name":"VariableDeclaration","src":"387:12:0"}],"id":2702,"name":"ParameterList","src":"386:14:0"}],"id":2703,"name":"FunctionDefinition","src":"303:98:0"}],"id":2704,"name":"ContractDefinition","src":"93:310:0"}],"id":2705,"name":"SourceUnit","src":"0:404:0"}},"externals/SafeMath.sol":{"AST":{"attributes":{"absolutePath":"externals/SafeMath.sol","exportedSymbols":{"SafeMath":[704]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".24"]},"id":578,"name":"PragmaDirective","src":"1172:24:1"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"library","documentation":"@title SafeMath\n@dev Math operations with safety checks that revert on error","fullyImplemented":true,"linearizedBaseContracts":[704],"name":"SafeMath","scope":705},"children":[{"attributes":{"constant":true,"documentation":"@dev Multiplies two numbers, reverts on overflow.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"mul","payable":false,"scope":704,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"a","scope":611,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":579,"name":"ElementaryTypeName","src":"1389:7:1"}],"id":580,"name":"VariableDeclaration","src":"1389:9:1"},{"attributes":{"constant":false,"name":"b","scope":611,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":581,"name":"ElementaryTypeName","src":"1400:7:1"}],"id":582,"name":"VariableDeclaration","src":"1400:9:1"}],"id":583,"name":"ParameterList","src":"1388:22:1"},{"children":[{"attributes":{"constant":false,"name":"","scope":611,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":584,"name":"ElementaryTypeName","src":"1434:7:1"}],"id":585,"name":"VariableDeclaration","src":"1434:7:1"}],"id":586,"name":"ParameterList","src":"1433:9:1"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":580,"type":"uint256","value":"a"},"id":587,"name":"Identifier","src":"1658:1:1"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":588,"name":"Literal","src":"1663:1:1"}],"id":589,"name":"BinaryOperation","src":"1658:6:1"},{"children":[{"attributes":{"functionReturnParameters":586},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":590,"name":"Literal","src":"1681:1:1"}],"id":591,"name":"Return","src":"1674:8:1"}],"id":592,"name":"Block","src":"1666:23:1"}],"id":593,"name":"IfStatement","src":"1654:35:1"},{"attributes":{"assignments":[595]},"children":[{"attributes":{"constant":false,"name":"c","scope":611,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":594,"name":"ElementaryTypeName","src":"1695:7:1"}],"id":595,"name":"VariableDeclaration","src":"1695:9:1"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":580,"type":"uint256","value":"a"},"id":596,"name":"Identifier","src":"1707:1:1"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":582,"type":"uint256","value":"b"},"id":597,"name":"Identifier","src":"1711:1:1"}],"id":598,"name":"BinaryOperation","src":"1707:5:1"}],"id":599,"name":"VariableDeclarationStatement","src":"1695:17:1"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"overloadedDeclarations":[3722,3723],"referencedDeclaration":3722,"type":"function (bool) pure","value":"require"},"id":600,"name":"Identifier","src":"1718:7:1"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"/","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":595,"type":"uint256","value":"c"},"id":601,"name":"Identifier","src":"1726:1:1"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":580,"type":"uint256","value":"a"},"id":602,"name":"Identifier","src":"1730:1:1"}],"id":603,"name":"BinaryOperation","src":"1726:5:1"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":582,"type":"uint256","value":"b"},"id":604,"name":"Identifier","src":"1735:1:1"}],"id":605,"name":"BinaryOperation","src":"1726:10:1"}],"id":606,"name":"FunctionCall","src":"1718:19:1"}],"id":607,"name":"ExpressionStatement","src":"1718:19:1"},{"attributes":{"functionReturnParameters":586},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":595,"type":"uint256","value":"c"},"id":608,"name":"Identifier","src":"1751:1:1"}],"id":609,"name":"Return","src":"1744:8:1"}],"id":610,"name":"Block","src":"1443:314:1"}],"id":611,"name":"FunctionDefinition","src":"1376:381:1"},{"attributes":{"constant":true,"documentation":"@dev Integer division of two numbers truncating the quotient, reverts on division by zero.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"div","payable":false,"scope":704,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"a","scope":635,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":612,"name":"ElementaryTypeName","src":"1880:7:1"}],"id":613,"name":"VariableDeclaration","src":"1880:9:1"},{"attributes":{"constant":false,"name":"b","scope":635,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":614,"name":"ElementaryTypeName","src":"1891:7:1"}],"id":615,"name":"VariableDeclaration","src":"1891:9:1"}],"id":616,"name":"ParameterList","src":"1879:22:1"},{"children":[{"attributes":{"constant":false,"name":"","scope":635,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":617,"name":"ElementaryTypeName","src":"1925:7:1"}],"id":618,"name":"VariableDeclaration","src":"1925:7:1"}],"id":619,"name":"ParameterList","src":"1924:9:1"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"overloadedDeclarations":[3722,3723],"referencedDeclaration":3722,"type":"function (bool) pure","value":"require"},"id":620,"name":"Identifier","src":"1940:7:1"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":615,"type":"uint256","value":"b"},"id":621,"name":"Identifier","src":"1948:1:1"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":622,"name":"Literal","src":"1952:1:1"}],"id":623,"name":"BinaryOperation","src":"1948:5:1"}],"id":624,"name":"FunctionCall","src":"1940:14:1"}],"id":625,"name":"ExpressionStatement","src":"1940:14:1"},{"attributes":{"assignments":[627]},"children":[{"attributes":{"constant":false,"name":"c","scope":635,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":626,"name":"ElementaryTypeName","src":"2018:7:1"}],"id":627,"name":"VariableDeclaration","src":"2018:9:1"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"/","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":613,"type":"uint256","value":"a"},"id":628,"name":"Identifier","src":"2030:1:1"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":615,"type":"uint256","value":"b"},"id":629,"name":"Identifier","src":"2034:1:1"}],"id":630,"name":"BinaryOperation","src":"2030:5:1"}],"id":631,"name":"VariableDeclarationStatement","src":"2018:17:1"},{"attributes":{"functionReturnParameters":619},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":627,"type":"uint256","value":"c"},"id":632,"name":"Identifier","src":"2131:1:1"}],"id":633,"name":"Return","src":"2124:8:1"}],"id":634,"name":"Block","src":"1934:203:1"}],"id":635,"name":"FunctionDefinition","src":"1867:270:1"},{"attributes":{"constant":true,"documentation":"@dev Subtracts two numbers, reverts on overflow (i.e. if subtrahend is greater than minuend).","implemented":true,"isConstructor":false,"modifiers":[null],"name":"sub","payable":false,"scope":704,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"a","scope":659,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":636,"name":"ElementaryTypeName","src":"2263:7:1"}],"id":637,"name":"VariableDeclaration","src":"2263:9:1"},{"attributes":{"constant":false,"name":"b","scope":659,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":638,"name":"ElementaryTypeName","src":"2274:7:1"}],"id":639,"name":"VariableDeclaration","src":"2274:9:1"}],"id":640,"name":"ParameterList","src":"2262:22:1"},{"children":[{"attributes":{"constant":false,"name":"","scope":659,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":641,"name":"ElementaryTypeName","src":"2308:7:1"}],"id":642,"name":"VariableDeclaration","src":"2308:7:1"}],"id":643,"name":"ParameterList","src":"2307:9:1"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"overloadedDeclarations":[3722,3723],"referencedDeclaration":3722,"type":"function (bool) pure","value":"require"},"id":644,"name":"Identifier","src":"2323:7:1"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":639,"type":"uint256","value":"b"},"id":645,"name":"Identifier","src":"2331:1:1"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":637,"type":"uint256","value":"a"},"id":646,"name":"Identifier","src":"2336:1:1"}],"id":647,"name":"BinaryOperation","src":"2331:6:1"}],"id":648,"name":"FunctionCall","src":"2323:15:1"}],"id":649,"name":"ExpressionStatement","src":"2323:15:1"},{"attributes":{"assignments":[651]},"children":[{"attributes":{"constant":false,"name":"c","scope":659,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":650,"name":"ElementaryTypeName","src":"2344:7:1"}],"id":651,"name":"VariableDeclaration","src":"2344:9:1"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":637,"type":"uint256","value":"a"},"id":652,"name":"Identifier","src":"2356:1:1"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":639,"type":"uint256","value":"b"},"id":653,"name":"Identifier","src":"2360:1:1"}],"id":654,"name":"BinaryOperation","src":"2356:5:1"}],"id":655,"name":"VariableDeclarationStatement","src":"2344:17:1"},{"attributes":{"functionReturnParameters":643},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":651,"type":"uint256","value":"c"},"id":656,"name":"Identifier","src":"2375:1:1"}],"id":657,"name":"Return","src":"2368:8:1"}],"id":658,"name":"Block","src":"2317:64:1"}],"id":659,"name":"FunctionDefinition","src":"2250:131:1"},{"attributes":{"constant":true,"documentation":"@dev Adds two numbers, reverts on overflow.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"add","payable":false,"scope":704,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"a","scope":683,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":660,"name":"ElementaryTypeName","src":"2457:7:1"}],"id":661,"name":"VariableDeclaration","src":"2457:9:1"},{"attributes":{"constant":false,"name":"b","scope":683,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":662,"name":"ElementaryTypeName","src":"2468:7:1"}],"id":663,"name":"VariableDeclaration","src":"2468:9:1"}],"id":664,"name":"ParameterList","src":"2456:22:1"},{"children":[{"attributes":{"constant":false,"name":"","scope":683,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":665,"name":"ElementaryTypeName","src":"2502:7:1"}],"id":666,"name":"VariableDeclaration","src":"2502:7:1"}],"id":667,"name":"ParameterList","src":"2501:9:1"},{"children":[{"attributes":{"assignments":[669]},"children":[{"attributes":{"constant":false,"name":"c","scope":683,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":668,"name":"ElementaryTypeName","src":"2517:7:1"}],"id":669,"name":"VariableDeclaration","src":"2517:9:1"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":661,"type":"uint256","value":"a"},"id":670,"name":"Identifier","src":"2529:1:1"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":663,"type":"uint256","value":"b"},"id":671,"name":"Identifier","src":"2533:1:1"}],"id":672,"name":"BinaryOperation","src":"2529:5:1"}],"id":673,"name":"VariableDeclarationStatement","src":"2517:17:1"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"overloadedDeclarations":[3722,3723],"referencedDeclaration":3722,"type":"function (bool) pure","value":"require"},"id":674,"name":"Identifier","src":"2540:7:1"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":669,"type":"uint256","value":"c"},"id":675,"name":"Identifier","src":"2548:1:1"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":661,"type":"uint256","value":"a"},"id":676,"name":"Identifier","src":"2553:1:1"}],"id":677,"name":"BinaryOperation","src":"2548:6:1"}],"id":678,"name":"FunctionCall","src":"2540:15:1"}],"id":679,"name":"ExpressionStatement","src":"2540:15:1"},{"attributes":{"functionReturnParameters":667},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":669,"type":"uint256","value":"c"},"id":680,"name":"Identifier","src":"2569:1:1"}],"id":681,"name":"Return","src":"2562:8:1"}],"id":682,"name":"Block","src":"2511:64:1"}],"id":683,"name":"FunctionDefinition","src":"2444:131:1"},{"attributes":{"constant":true,"documentation":"@dev Divides two numbers and returns the remainder (unsigned integer modulo),\nreverts when dividing by zero.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"mod","payable":false,"scope":704,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"a","scope":703,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":684,"name":"ElementaryTypeName","src":"2720:7:1"}],"id":685,"name":"VariableDeclaration","src":"2720:9:1"},{"attributes":{"constant":false,"name":"b","scope":703,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":686,"name":"ElementaryTypeName","src":"2731:7:1"}],"id":687,"name":"VariableDeclaration","src":"2731:9:1"}],"id":688,"name":"ParameterList","src":"2719:22:1"},{"children":[{"attributes":{"constant":false,"name":"","scope":703,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":689,"name":"ElementaryTypeName","src":"2765:7:1"}],"id":690,"name":"VariableDeclaration","src":"2765:7:1"}],"id":691,"name":"ParameterList","src":"2764:9:1"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"overloadedDeclarations":[3722,3723],"referencedDeclaration":3722,"type":"function (bool) pure","value":"require"},"id":692,"name":"Identifier","src":"2780:7:1"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":687,"type":"uint256","value":"b"},"id":693,"name":"Identifier","src":"2788:1:1"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":694,"name":"Literal","src":"2793:1:1"}],"id":695,"name":"BinaryOperation","src":"2788:6:1"}],"id":696,"name":"FunctionCall","src":"2780:15:1"}],"id":697,"name":"ExpressionStatement","src":"2780:15:1"},{"attributes":{"functionReturnParameters":691},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"%","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":685,"type":"uint256","value":"a"},"id":698,"name":"Identifier","src":"2808:1:1"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":687,"type":"uint256","value":"b"},"id":699,"name":"Identifier","src":"2812:1:1"}],"id":700,"name":"BinaryOperation","src":"2808:5:1"}],"id":701,"name":"Return","src":"2801:12:1"}],"id":702,"name":"Block","src":"2774:44:1"}],"id":703,"name":"FunctionDefinition","src":"2707:111:1"}],"id":704,"name":"ContractDefinition","src":"1289:1531:1"}],"id":705,"name":"SourceUnit","src":"1172:1649:1"}},"externals/ens/ENS.sol":{"AST":{"attributes":{"absolutePath":"externals/ens/ENS.sol","exportedSymbols":{"ENS":[3196]}},"children":[{"attributes":{"literals":["solidity",">=","0.4",".24"]},"id":3118,"name":"PragmaDirective","src":"1400:25:2"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"interface","documentation":null,"fullyImplemented":false,"linearizedBaseContracts":[3196],"name":"ENS","scope":3197},"children":[{"attributes":{"anonymous":false,"documentation":null,"name":"NewOwner"},"children":[{"children":[{"attributes":{"constant":false,"indexed":true,"name":"node","scope":3126,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3119,"name":"ElementaryTypeName","src":"1536:7:2"}],"id":3120,"name":"VariableDeclaration","src":"1536:20:2"},{"attributes":{"constant":false,"indexed":true,"name":"label","scope":3126,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3121,"name":"ElementaryTypeName","src":"1558:7:2"}],"id":3122,"name":"VariableDeclaration","src":"1558:21:2"},{"attributes":{"constant":false,"indexed":false,"name":"owner","scope":3126,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3123,"name":"ElementaryTypeName","src":"1581:7:2"}],"id":3124,"name":"VariableDeclaration","src":"1581:13:2"}],"id":3125,"name":"ParameterList","src":"1535:60:2"}],"id":3126,"name":"EventDefinition","src":"1521:75:2"},{"attributes":{"anonymous":false,"documentation":null,"name":"Transfer"},"children":[{"children":[{"attributes":{"constant":false,"indexed":true,"name":"node","scope":3132,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3127,"name":"ElementaryTypeName","src":"1694:7:2"}],"id":3128,"name":"VariableDeclaration","src":"1694:20:2"},{"attributes":{"constant":false,"indexed":false,"name":"owner","scope":3132,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3129,"name":"ElementaryTypeName","src":"1716:7:2"}],"id":3130,"name":"VariableDeclaration","src":"1716:13:2"}],"id":3131,"name":"ParameterList","src":"1693:37:2"}],"id":3132,"name":"EventDefinition","src":"1679:52:2"},{"attributes":{"anonymous":false,"documentation":null,"name":"NewResolver"},"children":[{"children":[{"attributes":{"constant":false,"indexed":true,"name":"node","scope":3138,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3133,"name":"ElementaryTypeName","src":"1807:7:2"}],"id":3134,"name":"VariableDeclaration","src":"1807:20:2"},{"attributes":{"constant":false,"indexed":false,"name":"resolver","scope":3138,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3135,"name":"ElementaryTypeName","src":"1829:7:2"}],"id":3136,"name":"VariableDeclaration","src":"1829:16:2"}],"id":3137,"name":"ParameterList","src":"1806:40:2"}],"id":3138,"name":"EventDefinition","src":"1789:58:2"},{"attributes":{"anonymous":false,"documentation":null,"name":"NewTTL"},"children":[{"children":[{"attributes":{"constant":false,"indexed":true,"name":"node","scope":3144,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3139,"name":"ElementaryTypeName","src":"1911:7:2"}],"id":3140,"name":"VariableDeclaration","src":"1911:20:2"},{"attributes":{"constant":false,"indexed":false,"name":"ttl","scope":3144,"stateVariable":false,"storageLocation":"default","type":"uint64","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint64","type":"uint64"},"id":3141,"name":"ElementaryTypeName","src":"1933:6:2"}],"id":3142,"name":"VariableDeclaration","src":"1933:10:2"}],"id":3143,"name":"ParameterList","src":"1910:34:2"}],"id":3144,"name":"EventDefinition","src":"1898:47:2"},{"attributes":{"body":null,"constant":false,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"setSubnodeOwner","payable":false,"scope":3196,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":3153,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3145,"name":"ElementaryTypeName","src":"1977:7:2"}],"id":3146,"name":"VariableDeclaration","src":"1977:12:2"},{"attributes":{"constant":false,"name":"label","scope":3153,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3147,"name":"ElementaryTypeName","src":"1991:7:2"}],"id":3148,"name":"VariableDeclaration","src":"1991:13:2"},{"attributes":{"constant":false,"name":"owner","scope":3153,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3149,"name":"ElementaryTypeName","src":"2006:7:2"}],"id":3150,"name":"VariableDeclaration","src":"2006:13:2"}],"id":3151,"name":"ParameterList","src":"1976:44:2"},{"attributes":{"parameters":[null]},"children":[],"id":3152,"name":"ParameterList","src":"2029:0:2"}],"id":3153,"name":"FunctionDefinition","src":"1952:78:2"},{"attributes":{"body":null,"constant":false,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"setResolver","payable":false,"scope":3196,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":3160,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3154,"name":"ElementaryTypeName","src":"2056:7:2"}],"id":3155,"name":"VariableDeclaration","src":"2056:12:2"},{"attributes":{"constant":false,"name":"resolver","scope":3160,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3156,"name":"ElementaryTypeName","src":"2070:7:2"}],"id":3157,"name":"VariableDeclaration","src":"2070:16:2"}],"id":3158,"name":"ParameterList","src":"2055:32:2"},{"attributes":{"parameters":[null]},"children":[],"id":3159,"name":"ParameterList","src":"2096:0:2"}],"id":3160,"name":"FunctionDefinition","src":"2035:62:2"},{"attributes":{"body":null,"constant":false,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"setOwner","payable":false,"scope":3196,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":3167,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3161,"name":"ElementaryTypeName","src":"2120:7:2"}],"id":3162,"name":"VariableDeclaration","src":"2120:12:2"},{"attributes":{"constant":false,"name":"owner","scope":3167,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3163,"name":"ElementaryTypeName","src":"2134:7:2"}],"id":3164,"name":"VariableDeclaration","src":"2134:13:2"}],"id":3165,"name":"ParameterList","src":"2119:29:2"},{"attributes":{"parameters":[null]},"children":[],"id":3166,"name":"ParameterList","src":"2157:0:2"}],"id":3167,"name":"FunctionDefinition","src":"2102:56:2"},{"attributes":{"body":null,"constant":false,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"setTTL","payable":false,"scope":3196,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":3174,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3168,"name":"ElementaryTypeName","src":"2179:7:2"}],"id":3169,"name":"VariableDeclaration","src":"2179:12:2"},{"attributes":{"constant":false,"name":"ttl","scope":3174,"stateVariable":false,"storageLocation":"default","type":"uint64","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint64","type":"uint64"},"id":3170,"name":"ElementaryTypeName","src":"2193:6:2"}],"id":3171,"name":"VariableDeclaration","src":"2193:10:2"}],"id":3172,"name":"ParameterList","src":"2178:26:2"},{"attributes":{"parameters":[null]},"children":[],"id":3173,"name":"ParameterList","src":"2213:0:2"}],"id":3174,"name":"FunctionDefinition","src":"2163:51:2"},{"attributes":{"body":null,"constant":true,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"owner","payable":false,"scope":3196,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":3181,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3175,"name":"ElementaryTypeName","src":"2234:7:2"}],"id":3176,"name":"VariableDeclaration","src":"2234:12:2"}],"id":3177,"name":"ParameterList","src":"2233:14:2"},{"children":[{"attributes":{"constant":false,"name":"","scope":3181,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3178,"name":"ElementaryTypeName","src":"2271:7:2"}],"id":3179,"name":"VariableDeclaration","src":"2271:7:2"}],"id":3180,"name":"ParameterList","src":"2270:9:2"}],"id":3181,"name":"FunctionDefinition","src":"2219:61:2"},{"attributes":{"body":null,"constant":true,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"resolver","payable":false,"scope":3196,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":3188,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3182,"name":"ElementaryTypeName","src":"2303:7:2"}],"id":3183,"name":"VariableDeclaration","src":"2303:12:2"}],"id":3184,"name":"ParameterList","src":"2302:14:2"},{"children":[{"attributes":{"constant":false,"name":"","scope":3188,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3185,"name":"ElementaryTypeName","src":"2340:7:2"}],"id":3186,"name":"VariableDeclaration","src":"2340:7:2"}],"id":3187,"name":"ParameterList","src":"2339:9:2"}],"id":3188,"name":"FunctionDefinition","src":"2285:64:2"},{"attributes":{"body":null,"constant":true,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"ttl","payable":false,"scope":3196,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":3195,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3189,"name":"ElementaryTypeName","src":"2367:7:2"}],"id":3190,"name":"VariableDeclaration","src":"2367:12:2"}],"id":3191,"name":"ParameterList","src":"2366:14:2"},{"children":[{"attributes":{"constant":false,"name":"","scope":3195,"stateVariable":false,"storageLocation":"default","type":"uint64","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint64","type":"uint64"},"id":3192,"name":"ElementaryTypeName","src":"2404:6:2"}],"id":3193,"name":"VariableDeclaration","src":"2404:6:2"}],"id":3194,"name":"ParameterList","src":"2403:8:2"}],"id":3195,"name":"FunctionDefinition","src":"2354:58:2"}],"id":3196,"name":"ContractDefinition","src":"1427:988:2"}],"id":3197,"name":"SourceUnit","src":"1400:1017:2"}},"externals/ens/PublicResolver.sol":{"AST":{"attributes":{"absolutePath":"externals/ens/PublicResolver.sol","exportedSymbols":{"PublicResolver":[3704]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".24"]},"id":3198,"name":"PragmaDirective","src":"1406:24:3"},{"attributes":{"SourceUnit":3197,"absolutePath":"externals/ens/ENS.sol","file":"./ENS.sol","scope":3705,"symbolAliases":[null],"unitAlias":""},"id":3199,"name":"ImportDirective","src":"1432:19:3"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"contract","documentation":"A simple resolver anyone can use; only allows the owner of a node to set its\naddress.","fullyImplemented":true,"linearizedBaseContracts":[3704],"name":"PublicResolver","scope":3705},"children":[{"attributes":{"constant":true,"name":"INTERFACE_META_ID","scope":3704,"stateVariable":true,"storageLocation":"default","type":"bytes4","visibility":"internal"},"children":[{"attributes":{"name":"bytes4","type":"bytes4"},"id":3200,"name":"ElementaryTypeName","src":"1584:6:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30783031666663396137","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 33540519","value":"0x01ffc9a7"},"id":3201,"name":"Literal","src":"1620:10:3"}],"id":3202,"name":"VariableDeclaration","src":"1584:46:3"},{"attributes":{"constant":true,"name":"ADDR_INTERFACE_ID","scope":3704,"stateVariable":true,"storageLocation":"default","type":"bytes4","visibility":"internal"},"children":[{"attributes":{"name":"bytes4","type":"bytes4"},"id":3203,"name":"ElementaryTypeName","src":"1636:6:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30783362336235376465","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 993744862","value":"0x3b3b57de"},"id":3204,"name":"Literal","src":"1672:10:3"}],"id":3205,"name":"VariableDeclaration","src":"1636:46:3"},{"attributes":{"constant":true,"name":"CONTENT_INTERFACE_ID","scope":3704,"stateVariable":true,"storageLocation":"default","type":"bytes4","visibility":"internal"},"children":[{"attributes":{"name":"bytes4","type":"bytes4"},"id":3206,"name":"ElementaryTypeName","src":"1688:6:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30786438333839646335","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3627589061","value":"0xd8389dc5"},"id":3207,"name":"Literal","src":"1727:10:3"}],"id":3208,"name":"VariableDeclaration","src":"1688:49:3"},{"attributes":{"constant":true,"name":"NAME_INTERFACE_ID","scope":3704,"stateVariable":true,"storageLocation":"default","type":"bytes4","visibility":"internal"},"children":[{"attributes":{"name":"bytes4","type":"bytes4"},"id":3209,"name":"ElementaryTypeName","src":"1743:6:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30783639316633343331","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1763652657","value":"0x691f3431"},"id":3210,"name":"Literal","src":"1779:10:3"}],"id":3211,"name":"VariableDeclaration","src":"1743:46:3"},{"attributes":{"constant":true,"name":"ABI_INTERFACE_ID","scope":3704,"stateVariable":true,"storageLocation":"default","type":"bytes4","visibility":"internal"},"children":[{"attributes":{"name":"bytes4","type":"bytes4"},"id":3212,"name":"ElementaryTypeName","src":"1795:6:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30783232303361623536","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 570665814","value":"0x2203ab56"},"id":3213,"name":"Literal","src":"1830:10:3"}],"id":3214,"name":"VariableDeclaration","src":"1795:45:3"},{"attributes":{"constant":true,"name":"PUBKEY_INTERFACE_ID","scope":3704,"stateVariable":true,"storageLocation":"default","type":"bytes4","visibility":"internal"},"children":[{"attributes":{"name":"bytes4","type":"bytes4"},"id":3215,"name":"ElementaryTypeName","src":"1846:6:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30786338363930323333","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3362325043","value":"0xc8690233"},"id":3216,"name":"Literal","src":"1884:10:3"}],"id":3217,"name":"VariableDeclaration","src":"1846:48:3"},{"attributes":{"constant":true,"name":"TEXT_INTERFACE_ID","scope":3704,"stateVariable":true,"storageLocation":"default","type":"bytes4","visibility":"internal"},"children":[{"attributes":{"name":"bytes4","type":"bytes4"},"id":3218,"name":"ElementaryTypeName","src":"1900:6:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30783539643164343363","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1506923580","value":"0x59d1d43c"},"id":3219,"name":"Literal","src":"1936:10:3"}],"id":3220,"name":"VariableDeclaration","src":"1900:46:3"},{"attributes":{"constant":true,"name":"MULTIHASH_INTERFACE_ID","scope":3704,"stateVariable":true,"storageLocation":"default","type":"bytes4","visibility":"internal"},"children":[{"attributes":{"name":"bytes4","type":"bytes4"},"id":3221,"name":"ElementaryTypeName","src":"1952:6:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30786538393430316131","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3902013857","value":"0xe89401a1"},"id":3222,"name":"Literal","src":"1993:10:3"}],"id":3223,"name":"VariableDeclaration","src":"1952:51:3"},{"attributes":{"anonymous":false,"documentation":null,"name":"AddrChanged"},"children":[{"children":[{"attributes":{"constant":false,"indexed":true,"name":"node","scope":3229,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3224,"name":"ElementaryTypeName","src":"2028:7:3"}],"id":3225,"name":"VariableDeclaration","src":"2028:20:3"},{"attributes":{"constant":false,"indexed":false,"name":"a","scope":3229,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3226,"name":"ElementaryTypeName","src":"2050:7:3"}],"id":3227,"name":"VariableDeclaration","src":"2050:9:3"}],"id":3228,"name":"ParameterList","src":"2027:33:3"}],"id":3229,"name":"EventDefinition","src":"2010:51:3"},{"attributes":{"anonymous":false,"documentation":null,"name":"ContentChanged"},"children":[{"children":[{"attributes":{"constant":false,"indexed":true,"name":"node","scope":3235,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3230,"name":"ElementaryTypeName","src":"2087:7:3"}],"id":3231,"name":"VariableDeclaration","src":"2087:20:3"},{"attributes":{"constant":false,"indexed":false,"name":"hash","scope":3235,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3232,"name":"ElementaryTypeName","src":"2109:7:3"}],"id":3233,"name":"VariableDeclaration","src":"2109:12:3"}],"id":3234,"name":"ParameterList","src":"2086:36:3"}],"id":3235,"name":"EventDefinition","src":"2066:57:3"},{"attributes":{"anonymous":false,"documentation":null,"name":"NameChanged"},"children":[{"children":[{"attributes":{"constant":false,"indexed":true,"name":"node","scope":3241,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3236,"name":"ElementaryTypeName","src":"2146:7:3"}],"id":3237,"name":"VariableDeclaration","src":"2146:20:3"},{"attributes":{"constant":false,"indexed":false,"name":"name","scope":3241,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":3238,"name":"ElementaryTypeName","src":"2168:6:3"}],"id":3239,"name":"VariableDeclaration","src":"2168:11:3"}],"id":3240,"name":"ParameterList","src":"2145:35:3"}],"id":3241,"name":"EventDefinition","src":"2128:53:3"},{"attributes":{"anonymous":false,"documentation":null,"name":"ABIChanged"},"children":[{"children":[{"attributes":{"constant":false,"indexed":true,"name":"node","scope":3247,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3242,"name":"ElementaryTypeName","src":"2203:7:3"}],"id":3243,"name":"VariableDeclaration","src":"2203:20:3"},{"attributes":{"constant":false,"indexed":true,"name":"contentType","scope":3247,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":3244,"name":"ElementaryTypeName","src":"2225:7:3"}],"id":3245,"name":"VariableDeclaration","src":"2225:27:3"}],"id":3246,"name":"ParameterList","src":"2202:51:3"}],"id":3247,"name":"EventDefinition","src":"2186:68:3"},{"attributes":{"anonymous":false,"documentation":null,"name":"PubkeyChanged"},"children":[{"children":[{"attributes":{"constant":false,"indexed":true,"name":"node","scope":3255,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3248,"name":"ElementaryTypeName","src":"2279:7:3"}],"id":3249,"name":"VariableDeclaration","src":"2279:20:3"},{"attributes":{"constant":false,"indexed":false,"name":"x","scope":3255,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3250,"name":"ElementaryTypeName","src":"2301:7:3"}],"id":3251,"name":"VariableDeclaration","src":"2301:9:3"},{"attributes":{"constant":false,"indexed":false,"name":"y","scope":3255,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3252,"name":"ElementaryTypeName","src":"2312:7:3"}],"id":3253,"name":"VariableDeclaration","src":"2312:9:3"}],"id":3254,"name":"ParameterList","src":"2278:44:3"}],"id":3255,"name":"EventDefinition","src":"2259:64:3"},{"attributes":{"anonymous":false,"documentation":null,"name":"TextChanged"},"children":[{"children":[{"attributes":{"constant":false,"indexed":true,"name":"node","scope":3263,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3256,"name":"ElementaryTypeName","src":"2346:7:3"}],"id":3257,"name":"VariableDeclaration","src":"2346:20:3"},{"attributes":{"constant":false,"indexed":false,"name":"indexedKey","scope":3263,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":3258,"name":"ElementaryTypeName","src":"2368:6:3"}],"id":3259,"name":"VariableDeclaration","src":"2368:17:3"},{"attributes":{"constant":false,"indexed":false,"name":"key","scope":3263,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":3260,"name":"ElementaryTypeName","src":"2387:6:3"}],"id":3261,"name":"VariableDeclaration","src":"2387:10:3"}],"id":3262,"name":"ParameterList","src":"2345:53:3"}],"id":3263,"name":"EventDefinition","src":"2328:71:3"},{"attributes":{"anonymous":false,"documentation":null,"name":"MultihashChanged"},"children":[{"children":[{"attributes":{"constant":false,"indexed":true,"name":"node","scope":3269,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3264,"name":"ElementaryTypeName","src":"2427:7:3"}],"id":3265,"name":"VariableDeclaration","src":"2427:20:3"},{"attributes":{"constant":false,"indexed":false,"name":"hash","scope":3269,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":3266,"name":"ElementaryTypeName","src":"2449:5:3"}],"id":3267,"name":"VariableDeclaration","src":"2449:10:3"}],"id":3268,"name":"ParameterList","src":"2426:34:3"}],"id":3269,"name":"EventDefinition","src":"2404:57:3"},{"attributes":{"canonicalName":"PublicResolver.PublicKey","name":"PublicKey","scope":3704,"visibility":"public"},"children":[{"attributes":{"constant":false,"name":"x","scope":3274,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3270,"name":"ElementaryTypeName","src":"2494:7:3"}],"id":3271,"name":"VariableDeclaration","src":"2494:9:3"},{"attributes":{"constant":false,"name":"y","scope":3274,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3272,"name":"ElementaryTypeName","src":"2513:7:3"}],"id":3273,"name":"VariableDeclaration","src":"2513:9:3"}],"id":3274,"name":"StructDefinition","src":"2467:62:3"},{"attributes":{"canonicalName":"PublicResolver.Record","name":"Record","scope":3704,"visibility":"public"},"children":[{"attributes":{"constant":false,"name":"addr","scope":3293,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3275,"name":"ElementaryTypeName","src":"2559:7:3"}],"id":3276,"name":"VariableDeclaration","src":"2559:12:3"},{"attributes":{"constant":false,"name":"content","scope":3293,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3277,"name":"ElementaryTypeName","src":"2581:7:3"}],"id":3278,"name":"VariableDeclaration","src":"2581:15:3"},{"attributes":{"constant":false,"name":"name","scope":3293,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":3279,"name":"ElementaryTypeName","src":"2606:6:3"}],"id":3280,"name":"VariableDeclaration","src":"2606:11:3"},{"attributes":{"constant":false,"name":"pubkey","scope":3293,"stateVariable":false,"storageLocation":"default","type":"struct PublicResolver.PublicKey","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"PublicKey","referencedDeclaration":3274,"type":"struct PublicResolver.PublicKey"},"id":3281,"name":"UserDefinedTypeName","src":"2627:9:3"}],"id":3282,"name":"VariableDeclaration","src":"2627:16:3"},{"attributes":{"constant":false,"name":"text","scope":3293,"stateVariable":false,"storageLocation":"default","type":"mapping(string => string)","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"mapping(string => string)"},"children":[{"attributes":{"name":"string","type":"string"},"id":3283,"name":"ElementaryTypeName","src":"2661:6:3"},{"attributes":{"name":"string","type":"string"},"id":3284,"name":"ElementaryTypeName","src":"2669:6:3"}],"id":3285,"name":"Mapping","src":"2653:23:3"}],"id":3286,"name":"VariableDeclaration","src":"2653:28:3"},{"attributes":{"constant":false,"name":"abis","scope":3293,"stateVariable":false,"storageLocation":"default","type":"mapping(uint256 => bytes)","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"mapping(uint256 => bytes)"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":3287,"name":"ElementaryTypeName","src":"2699:7:3"},{"attributes":{"name":"bytes","type":"bytes"},"id":3288,"name":"ElementaryTypeName","src":"2708:5:3"}],"id":3289,"name":"Mapping","src":"2691:23:3"}],"id":3290,"name":"VariableDeclaration","src":"2691:28:3"},{"attributes":{"constant":false,"name":"multihash","scope":3293,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":3291,"name":"ElementaryTypeName","src":"2729:5:3"}],"id":3292,"name":"VariableDeclaration","src":"2729:15:3"}],"id":3293,"name":"StructDefinition","src":"2535:216:3"},{"attributes":{"constant":false,"name":"ens","scope":3704,"stateVariable":true,"storageLocation":"default","type":"contract ENS","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"ENS","referencedDeclaration":3196,"type":"contract ENS"},"id":3294,"name":"UserDefinedTypeName","src":"2757:3:3"}],"id":3295,"name":"VariableDeclaration","src":"2757:7:3"},{"attributes":{"constant":false,"name":"records","scope":3704,"stateVariable":true,"storageLocation":"default","type":"mapping(bytes32 => struct PublicResolver.Record)","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"mapping(bytes32 => struct PublicResolver.Record)"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3296,"name":"ElementaryTypeName","src":"2780:7:3"},{"attributes":{"contractScope":null,"name":"Record","referencedDeclaration":3293,"type":"struct PublicResolver.Record"},"id":3297,"name":"UserDefinedTypeName","src":"2791:6:3"}],"id":3298,"name":"Mapping","src":"2771:27:3"}],"id":3299,"name":"VariableDeclaration","src":"2771:35:3"},{"attributes":{"documentation":null,"name":"only_owner","visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":3315,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3300,"name":"ElementaryTypeName","src":"2833:7:3"}],"id":3301,"name":"VariableDeclaration","src":"2833:12:3"}],"id":3302,"name":"ParameterList","src":"2832:14:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"overloadedDeclarations":[3722,3723],"referencedDeclaration":3722,"type":"function (bool) pure","value":"require"},"id":3303,"name":"Identifier","src":"2857:7:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"owner","referencedDeclaration":3181,"type":"function (bytes32) view external returns (address)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3295,"type":"contract ENS","value":"ens"},"id":3304,"name":"Identifier","src":"2865:3:3"}],"id":3305,"name":"MemberAccess","src":"2865:9:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3301,"type":"bytes32","value":"node"},"id":3306,"name":"Identifier","src":"2875:4:3"}],"id":3307,"name":"FunctionCall","src":"2865:15:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3719,"type":"msg","value":"msg"},"id":3308,"name":"Identifier","src":"2884:3:3"}],"id":3309,"name":"MemberAccess","src":"2884:10:3"}],"id":3310,"name":"BinaryOperation","src":"2865:29:3"}],"id":3311,"name":"FunctionCall","src":"2857:38:3"}],"id":3312,"name":"ExpressionStatement","src":"2857:38:3"},{"id":3313,"name":"PlaceholderStatement","src":"2905:1:3"}],"id":3314,"name":"Block","src":"2847:66:3"}],"id":3315,"name":"ModifierDefinition","src":"2813:100:3"},{"attributes":{"constant":false,"documentation":"Constructor.\n@param ensAddr The ENS registrar contract.","implemented":true,"isConstructor":true,"modifiers":[null],"name":"","payable":false,"scope":3704,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"ensAddr","scope":3325,"stateVariable":false,"storageLocation":"default","type":"contract ENS","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"ENS","referencedDeclaration":3196,"type":"contract ENS"},"id":3316,"name":"UserDefinedTypeName","src":"3017:3:3"}],"id":3317,"name":"VariableDeclaration","src":"3017:11:3"}],"id":3318,"name":"ParameterList","src":"3016:13:3"},{"attributes":{"parameters":[null]},"children":[],"id":3319,"name":"ParameterList","src":"3037:0:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"contract ENS"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3295,"type":"contract ENS","value":"ens"},"id":3320,"name":"Identifier","src":"3047:3:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3317,"type":"contract ENS","value":"ensAddr"},"id":3321,"name":"Identifier","src":"3053:7:3"}],"id":3322,"name":"Assignment","src":"3047:13:3"}],"id":3323,"name":"ExpressionStatement","src":"3047:13:3"}],"id":3324,"name":"Block","src":"3037:30:3"}],"id":3325,"name":"FunctionDefinition","src":"3005:62:3"},{"attributes":{"constant":false,"documentation":"Sets the address associated with an ENS node.\nMay only be called by the owner of that node in the ENS registry.\n@param node The node to update.\n@param addr The address to set.","implemented":true,"isConstructor":false,"name":"setAddr","payable":false,"scope":3704,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":3348,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3326,"name":"ElementaryTypeName","src":"3310:7:3"}],"id":3327,"name":"VariableDeclaration","src":"3310:12:3"},{"attributes":{"constant":false,"name":"addr","scope":3348,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3328,"name":"ElementaryTypeName","src":"3324:7:3"}],"id":3329,"name":"VariableDeclaration","src":"3324:12:3"}],"id":3330,"name":"ParameterList","src":"3309:28:3"},{"attributes":{"parameters":[null]},"children":[],"id":3334,"name":"ParameterList","src":"3362:0:3"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3315,"type":"modifier (bytes32)","value":"only_owner"},"id":3331,"name":"Identifier","src":"3345:10:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3327,"type":"bytes32","value":"node"},"id":3332,"name":"Identifier","src":"3356:4:3"}],"id":3333,"name":"ModifierInvocation","src":"3345:16:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"address"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"addr","referencedDeclaration":3276,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3299,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":3335,"name":"Identifier","src":"3372:7:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3327,"type":"bytes32","value":"node"},"id":3336,"name":"Identifier","src":"3380:4:3"}],"id":3337,"name":"IndexAccess","src":"3372:13:3"}],"id":3338,"name":"MemberAccess","src":"3372:18:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3329,"type":"address","value":"addr"},"id":3339,"name":"Identifier","src":"3393:4:3"}],"id":3340,"name":"Assignment","src":"3372:25:3"}],"id":3341,"name":"ExpressionStatement","src":"3372:25:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":3229,"type":"function (bytes32,address)","value":"AddrChanged"},"id":3342,"name":"Identifier","src":"3412:11:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3327,"type":"bytes32","value":"node"},"id":3343,"name":"Identifier","src":"3424:4:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3329,"type":"address","value":"addr"},"id":3344,"name":"Identifier","src":"3430:4:3"}],"id":3345,"name":"FunctionCall","src":"3412:23:3"}],"id":3346,"name":"EmitStatement","src":"3407:28:3"}],"id":3347,"name":"Block","src":"3362:80:3"}],"id":3348,"name":"FunctionDefinition","src":"3293:149:3"},{"attributes":{"constant":false,"documentation":"Sets the content hash associated with an ENS node.\nMay only be called by the owner of that node in the ENS registry.\nNote that this resource type is not standardized, and will likely change\nin future to a resource type based on multihash.\n@param node The node to update.\n@param hash The content hash to set","implemented":true,"isConstructor":false,"name":"setContent","payable":false,"scope":3704,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":3371,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3349,"name":"ElementaryTypeName","src":"3833:7:3"}],"id":3350,"name":"VariableDeclaration","src":"3833:12:3"},{"attributes":{"constant":false,"name":"hash","scope":3371,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3351,"name":"ElementaryTypeName","src":"3847:7:3"}],"id":3352,"name":"VariableDeclaration","src":"3847:12:3"}],"id":3353,"name":"ParameterList","src":"3832:28:3"},{"attributes":{"parameters":[null]},"children":[],"id":3357,"name":"ParameterList","src":"3885:0:3"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3315,"type":"modifier (bytes32)","value":"only_owner"},"id":3354,"name":"Identifier","src":"3868:10:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3350,"type":"bytes32","value":"node"},"id":3355,"name":"Identifier","src":"3879:4:3"}],"id":3356,"name":"ModifierInvocation","src":"3868:16:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"content","referencedDeclaration":3278,"type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3299,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":3358,"name":"Identifier","src":"3895:7:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3350,"type":"bytes32","value":"node"},"id":3359,"name":"Identifier","src":"3903:4:3"}],"id":3360,"name":"IndexAccess","src":"3895:13:3"}],"id":3361,"name":"MemberAccess","src":"3895:21:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3352,"type":"bytes32","value":"hash"},"id":3362,"name":"Identifier","src":"3919:4:3"}],"id":3363,"name":"Assignment","src":"3895:28:3"}],"id":3364,"name":"ExpressionStatement","src":"3895:28:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[null],"referencedDeclaration":3235,"type":"function (bytes32,bytes32)","value":"ContentChanged"},"id":3365,"name":"Identifier","src":"3938:14:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3350,"type":"bytes32","value":"node"},"id":3366,"name":"Identifier","src":"3953:4:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3352,"type":"bytes32","value":"hash"},"id":3367,"name":"Identifier","src":"3959:4:3"}],"id":3368,"name":"FunctionCall","src":"3938:26:3"}],"id":3369,"name":"EmitStatement","src":"3933:31:3"}],"id":3370,"name":"Block","src":"3885:86:3"}],"id":3371,"name":"FunctionDefinition","src":"3813:158:3"},{"attributes":{"constant":false,"documentation":"Sets the multihash associated with an ENS node.\nMay only be called by the owner of that node in the ENS registry.\n@param node The node to update.\n@param hash The multihash to set","implemented":true,"isConstructor":false,"name":"setMultihash","payable":false,"scope":3704,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":3394,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3372,"name":"ElementaryTypeName","src":"4222:7:3"}],"id":3373,"name":"VariableDeclaration","src":"4222:12:3"},{"attributes":{"constant":false,"name":"hash","scope":3394,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":3374,"name":"ElementaryTypeName","src":"4236:5:3"}],"id":3375,"name":"VariableDeclaration","src":"4236:10:3"}],"id":3376,"name":"ParameterList","src":"4221:26:3"},{"attributes":{"parameters":[null]},"children":[],"id":3380,"name":"ParameterList","src":"4272:0:3"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3315,"type":"modifier (bytes32)","value":"only_owner"},"id":3377,"name":"Identifier","src":"4255:10:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3373,"type":"bytes32","value":"node"},"id":3378,"name":"Identifier","src":"4266:4:3"}],"id":3379,"name":"ModifierInvocation","src":"4255:16:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"multihash","referencedDeclaration":3292,"type":"bytes storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3299,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":3381,"name":"Identifier","src":"4282:7:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3373,"type":"bytes32","value":"node"},"id":3382,"name":"Identifier","src":"4290:4:3"}],"id":3383,"name":"IndexAccess","src":"4282:13:3"}],"id":3384,"name":"MemberAccess","src":"4282:23:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3375,"type":"bytes memory","value":"hash"},"id":3385,"name":"Identifier","src":"4308:4:3"}],"id":3386,"name":"Assignment","src":"4282:30:3"}],"id":3387,"name":"ExpressionStatement","src":"4282:30:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"overloadedDeclarations":[null],"referencedDeclaration":3269,"type":"function (bytes32,bytes memory)","value":"MultihashChanged"},"id":3388,"name":"Identifier","src":"4327:16:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3373,"type":"bytes32","value":"node"},"id":3389,"name":"Identifier","src":"4344:4:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3375,"type":"bytes memory","value":"hash"},"id":3390,"name":"Identifier","src":"4350:4:3"}],"id":3391,"name":"FunctionCall","src":"4327:28:3"}],"id":3392,"name":"EmitStatement","src":"4322:33:3"}],"id":3393,"name":"Block","src":"4272:90:3"}],"id":3394,"name":"FunctionDefinition","src":"4200:162:3"},{"attributes":{"constant":false,"documentation":"Sets the name associated with an ENS node, for reverse records.\nMay only be called by the owner of that node in the ENS registry.\n@param node The node to update.\n@param name The name to set.","implemented":true,"isConstructor":false,"name":"setName","payable":false,"scope":3704,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":3417,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3395,"name":"ElementaryTypeName","src":"4624:7:3"}],"id":3396,"name":"VariableDeclaration","src":"4624:12:3"},{"attributes":{"constant":false,"name":"name","scope":3417,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":3397,"name":"ElementaryTypeName","src":"4638:6:3"}],"id":3398,"name":"VariableDeclaration","src":"4638:11:3"}],"id":3399,"name":"ParameterList","src":"4623:27:3"},{"attributes":{"parameters":[null]},"children":[],"id":3403,"name":"ParameterList","src":"4675:0:3"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3315,"type":"modifier (bytes32)","value":"only_owner"},"id":3400,"name":"Identifier","src":"4658:10:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3396,"type":"bytes32","value":"node"},"id":3401,"name":"Identifier","src":"4669:4:3"}],"id":3402,"name":"ModifierInvocation","src":"4658:16:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"name","referencedDeclaration":3280,"type":"string storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3299,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":3404,"name":"Identifier","src":"4685:7:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3396,"type":"bytes32","value":"node"},"id":3405,"name":"Identifier","src":"4693:4:3"}],"id":3406,"name":"IndexAccess","src":"4685:13:3"}],"id":3407,"name":"MemberAccess","src":"4685:18:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3398,"type":"string memory","value":"name"},"id":3408,"name":"Identifier","src":"4706:4:3"}],"id":3409,"name":"Assignment","src":"4685:25:3"}],"id":3410,"name":"ExpressionStatement","src":"4685:25:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"overloadedDeclarations":[null],"referencedDeclaration":3241,"type":"function (bytes32,string memory)","value":"NameChanged"},"id":3411,"name":"Identifier","src":"4725:11:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3396,"type":"bytes32","value":"node"},"id":3412,"name":"Identifier","src":"4737:4:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3398,"type":"string memory","value":"name"},"id":3413,"name":"Identifier","src":"4743:4:3"}],"id":3414,"name":"FunctionCall","src":"4725:23:3"}],"id":3415,"name":"EmitStatement","src":"4720:28:3"}],"id":3416,"name":"Block","src":"4675:80:3"}],"id":3417,"name":"FunctionDefinition","src":"4607:148:3"},{"attributes":{"constant":false,"documentation":"Sets the ABI associated with an ENS node.\nNodes may have one ABI of each content type. To remove an ABI, set it to\nthe empty string.\n@param node The node to update.\n@param contentType The content type of the ABI\n@param data The ABI data.","implemented":true,"isConstructor":false,"name":"setABI","payable":false,"scope":3704,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":3456,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3418,"name":"ElementaryTypeName","src":"5073:7:3"}],"id":3419,"name":"VariableDeclaration","src":"5073:12:3"},{"attributes":{"constant":false,"name":"contentType","scope":3456,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":3420,"name":"ElementaryTypeName","src":"5087:7:3"}],"id":3421,"name":"VariableDeclaration","src":"5087:19:3"},{"attributes":{"constant":false,"name":"data","scope":3456,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":3422,"name":"ElementaryTypeName","src":"5108:5:3"}],"id":3423,"name":"VariableDeclaration","src":"5108:10:3"}],"id":3424,"name":"ParameterList","src":"5072:47:3"},{"attributes":{"parameters":[null]},"children":[],"id":3428,"name":"ParameterList","src":"5144:0:3"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3315,"type":"modifier (bytes32)","value":"only_owner"},"id":3425,"name":"Identifier","src":"5127:10:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3419,"type":"bytes32","value":"node"},"id":3426,"name":"Identifier","src":"5138:4:3"}],"id":3427,"name":"ModifierInvocation","src":"5127:16:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"overloadedDeclarations":[3722,3723],"referencedDeclaration":3722,"type":"function (bool) pure","value":"require"},"id":3429,"name":"Identifier","src":"5199:7:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3421,"type":"uint256","value":"contentType"},"id":3430,"name":"Identifier","src":"5209:11:3"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":3431,"name":"Literal","src":"5223:1:3"}],"id":3432,"name":"BinaryOperation","src":"5209:15:3"}],"id":3433,"name":"TupleExpression","src":"5208:17:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3421,"type":"uint256","value":"contentType"},"id":3434,"name":"Identifier","src":"5228:11:3"}],"id":3435,"name":"BinaryOperation","src":"5208:31:3"}],"id":3436,"name":"TupleExpression","src":"5207:33:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3437,"name":"Literal","src":"5244:1:3"}],"id":3438,"name":"BinaryOperation","src":"5207:38:3"}],"id":3439,"name":"FunctionCall","src":"5199:47:3"}],"id":3440,"name":"ExpressionStatement","src":"5199:47:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"abis","referencedDeclaration":3290,"type":"mapping(uint256 => bytes storage ref)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3299,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":3441,"name":"Identifier","src":"5265:7:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3419,"type":"bytes32","value":"node"},"id":3442,"name":"Identifier","src":"5273:4:3"}],"id":3443,"name":"IndexAccess","src":"5265:13:3"}],"id":3444,"name":"MemberAccess","src":"5265:18:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3421,"type":"uint256","value":"contentType"},"id":3445,"name":"Identifier","src":"5284:11:3"}],"id":3446,"name":"IndexAccess","src":"5265:31:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3423,"type":"bytes memory","value":"data"},"id":3447,"name":"Identifier","src":"5299:4:3"}],"id":3448,"name":"Assignment","src":"5265:38:3"}],"id":3449,"name":"ExpressionStatement","src":"5265:38:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":3247,"type":"function (bytes32,uint256)","value":"ABIChanged"},"id":3450,"name":"Identifier","src":"5318:10:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3419,"type":"bytes32","value":"node"},"id":3451,"name":"Identifier","src":"5329:4:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3421,"type":"uint256","value":"contentType"},"id":3452,"name":"Identifier","src":"5335:11:3"}],"id":3453,"name":"FunctionCall","src":"5318:29:3"}],"id":3454,"name":"EmitStatement","src":"5313:34:3"}],"id":3455,"name":"Block","src":"5144:210:3"}],"id":3456,"name":"FunctionDefinition","src":"5057:297:3"},{"attributes":{"constant":false,"documentation":"Sets the SECP256k1 public key associated with an ENS node.\n@param node The ENS node to query\n@param x the X coordinate of the curve point for the public key.\n@param y the Y coordinate of the curve point for the public key.","implemented":true,"isConstructor":false,"name":"setPubkey","payable":false,"scope":3704,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":3485,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3457,"name":"ElementaryTypeName","src":"5650:7:3"}],"id":3458,"name":"VariableDeclaration","src":"5650:12:3"},{"attributes":{"constant":false,"name":"x","scope":3485,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3459,"name":"ElementaryTypeName","src":"5664:7:3"}],"id":3460,"name":"VariableDeclaration","src":"5664:9:3"},{"attributes":{"constant":false,"name":"y","scope":3485,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3461,"name":"ElementaryTypeName","src":"5675:7:3"}],"id":3462,"name":"VariableDeclaration","src":"5675:9:3"}],"id":3463,"name":"ParameterList","src":"5649:36:3"},{"attributes":{"parameters":[null]},"children":[],"id":3467,"name":"ParameterList","src":"5710:0:3"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3315,"type":"modifier (bytes32)","value":"only_owner"},"id":3464,"name":"Identifier","src":"5693:10:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3458,"type":"bytes32","value":"node"},"id":3465,"name":"Identifier","src":"5704:4:3"}],"id":3466,"name":"ModifierInvocation","src":"5693:16:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"struct PublicResolver.PublicKey storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"pubkey","referencedDeclaration":3282,"type":"struct PublicResolver.PublicKey storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3299,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":3468,"name":"Identifier","src":"5720:7:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3458,"type":"bytes32","value":"node"},"id":3469,"name":"Identifier","src":"5728:4:3"}],"id":3470,"name":"IndexAccess","src":"5720:13:3"}],"id":3471,"name":"MemberAccess","src":"5720:20:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":true,"lValueRequested":false,"names":[null],"type":"struct PublicResolver.PublicKey memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[null],"referencedDeclaration":3274,"type":"type(struct PublicResolver.PublicKey storage pointer)","value":"PublicKey"},"id":3472,"name":"Identifier","src":"5743:9:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3460,"type":"bytes32","value":"x"},"id":3473,"name":"Identifier","src":"5753:1:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3462,"type":"bytes32","value":"y"},"id":3474,"name":"Identifier","src":"5756:1:3"}],"id":3475,"name":"FunctionCall","src":"5743:15:3"}],"id":3476,"name":"Assignment","src":"5720:38:3"}],"id":3477,"name":"ExpressionStatement","src":"5720:38:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[null],"referencedDeclaration":3255,"type":"function (bytes32,bytes32,bytes32)","value":"PubkeyChanged"},"id":3478,"name":"Identifier","src":"5773:13:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3458,"type":"bytes32","value":"node"},"id":3479,"name":"Identifier","src":"5787:4:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3460,"type":"bytes32","value":"x"},"id":3480,"name":"Identifier","src":"5793:1:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3462,"type":"bytes32","value":"y"},"id":3481,"name":"Identifier","src":"5796:1:3"}],"id":3482,"name":"FunctionCall","src":"5773:25:3"}],"id":3483,"name":"EmitStatement","src":"5768:30:3"}],"id":3484,"name":"Block","src":"5710:95:3"}],"id":3485,"name":"FunctionDefinition","src":"5631:174:3"},{"attributes":{"constant":false,"documentation":"Sets the text data associated with an ENS node and key.\nMay only be called by the owner of that node in the ENS registry.\n@param node The node to update.\n@param key The key to set.\n@param value The text data value to set.","implemented":true,"isConstructor":false,"name":"setText","payable":false,"scope":3704,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":3513,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3486,"name":"ElementaryTypeName","src":"6101:7:3"}],"id":3487,"name":"VariableDeclaration","src":"6101:12:3"},{"attributes":{"constant":false,"name":"key","scope":3513,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":3488,"name":"ElementaryTypeName","src":"6115:6:3"}],"id":3489,"name":"VariableDeclaration","src":"6115:10:3"},{"attributes":{"constant":false,"name":"value","scope":3513,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":3490,"name":"ElementaryTypeName","src":"6127:6:3"}],"id":3491,"name":"VariableDeclaration","src":"6127:12:3"}],"id":3492,"name":"ParameterList","src":"6100:40:3"},{"attributes":{"parameters":[null]},"children":[],"id":3496,"name":"ParameterList","src":"6165:0:3"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3315,"type":"modifier (bytes32)","value":"only_owner"},"id":3493,"name":"Identifier","src":"6148:10:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3487,"type":"bytes32","value":"node"},"id":3494,"name":"Identifier","src":"6159:4:3"}],"id":3495,"name":"ModifierInvocation","src":"6148:16:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"text","referencedDeclaration":3286,"type":"mapping(string memory => string storage ref)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3299,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":3497,"name":"Identifier","src":"6175:7:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3487,"type":"bytes32","value":"node"},"id":3498,"name":"Identifier","src":"6183:4:3"}],"id":3499,"name":"IndexAccess","src":"6175:13:3"}],"id":3500,"name":"MemberAccess","src":"6175:18:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3489,"type":"string memory","value":"key"},"id":3501,"name":"Identifier","src":"6194:3:3"}],"id":3502,"name":"IndexAccess","src":"6175:23:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3491,"type":"string memory","value":"value"},"id":3503,"name":"Identifier","src":"6201:5:3"}],"id":3504,"name":"Assignment","src":"6175:31:3"}],"id":3505,"name":"ExpressionStatement","src":"6175:31:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"overloadedDeclarations":[null],"referencedDeclaration":3263,"type":"function (bytes32,string memory,string memory)","value":"TextChanged"},"id":3506,"name":"Identifier","src":"6221:11:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3487,"type":"bytes32","value":"node"},"id":3507,"name":"Identifier","src":"6233:4:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3489,"type":"string memory","value":"key"},"id":3508,"name":"Identifier","src":"6239:3:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3489,"type":"string memory","value":"key"},"id":3509,"name":"Identifier","src":"6244:3:3"}],"id":3510,"name":"FunctionCall","src":"6221:27:3"}],"id":3511,"name":"EmitStatement","src":"6216:32:3"}],"id":3512,"name":"Block","src":"6165:90:3"}],"id":3513,"name":"FunctionDefinition","src":"6084:171:3"},{"attributes":{"constant":true,"documentation":"Returns the text data associated with an ENS node and key.\n@param node The ENS node to query.\n@param key The text data key to query.\n@return The associated text data.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"text","payable":false,"scope":3704,"stateMutability":"view","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":3530,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3514,"name":"ElementaryTypeName","src":"6486:7:3"}],"id":3515,"name":"VariableDeclaration","src":"6486:12:3"},{"attributes":{"constant":false,"name":"key","scope":3530,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":3516,"name":"ElementaryTypeName","src":"6500:6:3"}],"id":3517,"name":"VariableDeclaration","src":"6500:10:3"}],"id":3518,"name":"ParameterList","src":"6485:26:3"},{"children":[{"attributes":{"constant":false,"name":"","scope":3530,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":3519,"name":"ElementaryTypeName","src":"6533:6:3"}],"id":3520,"name":"VariableDeclaration","src":"6533:6:3"}],"id":3521,"name":"ParameterList","src":"6532:8:3"},{"children":[{"attributes":{"functionReturnParameters":3521},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"text","referencedDeclaration":3286,"type":"mapping(string memory => string storage ref)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3299,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":3522,"name":"Identifier","src":"6558:7:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3515,"type":"bytes32","value":"node"},"id":3523,"name":"Identifier","src":"6566:4:3"}],"id":3524,"name":"IndexAccess","src":"6558:13:3"}],"id":3525,"name":"MemberAccess","src":"6558:18:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3517,"type":"string memory","value":"key"},"id":3526,"name":"Identifier","src":"6577:3:3"}],"id":3527,"name":"IndexAccess","src":"6558:23:3"}],"id":3528,"name":"Return","src":"6551:30:3"}],"id":3529,"name":"Block","src":"6541:47:3"}],"id":3530,"name":"FunctionDefinition","src":"6472:116:3"},{"attributes":{"constant":true,"documentation":"Returns the SECP256k1 public key associated with an ENS node.\nDefined in EIP 619.\n@param node The ENS node to query\n@return x, y the X and Y coordinates of the curve point for the public key.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"pubkey","payable":false,"scope":3704,"stateMutability":"view","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":3552,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3531,"name":"ElementaryTypeName","src":"6846:7:3"}],"id":3532,"name":"VariableDeclaration","src":"6846:12:3"}],"id":3533,"name":"ParameterList","src":"6845:14:3"},{"children":[{"attributes":{"constant":false,"name":"x","scope":3552,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3534,"name":"ElementaryTypeName","src":"6881:7:3"}],"id":3535,"name":"VariableDeclaration","src":"6881:9:3"},{"attributes":{"constant":false,"name":"y","scope":3552,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3536,"name":"ElementaryTypeName","src":"6892:7:3"}],"id":3537,"name":"VariableDeclaration","src":"6892:9:3"}],"id":3538,"name":"ParameterList","src":"6880:22:3"},{"children":[{"attributes":{"functionReturnParameters":3538},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"tuple(bytes32,bytes32)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"x","referencedDeclaration":3271,"type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"pubkey","referencedDeclaration":3282,"type":"struct PublicResolver.PublicKey storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3299,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":3539,"name":"Identifier","src":"6921:7:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3532,"type":"bytes32","value":"node"},"id":3540,"name":"Identifier","src":"6929:4:3"}],"id":3541,"name":"IndexAccess","src":"6921:13:3"}],"id":3542,"name":"MemberAccess","src":"6921:20:3"}],"id":3543,"name":"MemberAccess","src":"6921:22:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"y","referencedDeclaration":3273,"type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"pubkey","referencedDeclaration":3282,"type":"struct PublicResolver.PublicKey storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3299,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":3544,"name":"Identifier","src":"6945:7:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3532,"type":"bytes32","value":"node"},"id":3545,"name":"Identifier","src":"6953:4:3"}],"id":3546,"name":"IndexAccess","src":"6945:13:3"}],"id":3547,"name":"MemberAccess","src":"6945:20:3"}],"id":3548,"name":"MemberAccess","src":"6945:22:3"}],"id":3549,"name":"TupleExpression","src":"6920:48:3"}],"id":3550,"name":"Return","src":"6913:55:3"}],"id":3551,"name":"Block","src":"6903:72:3"}],"id":3552,"name":"FunctionDefinition","src":"6830:145:3"},{"attributes":{"constant":true,"documentation":"Returns the ABI associated with an ENS node.\nDefined in EIP205.\n@param node The ENS node to query\n@param contentTypes A bitwise OR of the ABI formats accepted by the caller.\n@return contentType The content type of the return value\n@return data The ABI data","implemented":true,"isConstructor":false,"modifiers":[null],"name":"ABI","payable":false,"scope":3704,"stateMutability":"view","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":3611,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3553,"name":"ElementaryTypeName","src":"7309:7:3"}],"id":3554,"name":"VariableDeclaration","src":"7309:12:3"},{"attributes":{"constant":false,"name":"contentTypes","scope":3611,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":3555,"name":"ElementaryTypeName","src":"7323:7:3"}],"id":3556,"name":"VariableDeclaration","src":"7323:20:3"}],"id":3557,"name":"ParameterList","src":"7308:36:3"},{"children":[{"attributes":{"constant":false,"name":"contentType","scope":3611,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":3558,"name":"ElementaryTypeName","src":"7366:7:3"}],"id":3559,"name":"VariableDeclaration","src":"7366:19:3"},{"attributes":{"constant":false,"name":"data","scope":3611,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":3560,"name":"ElementaryTypeName","src":"7387:5:3"}],"id":3561,"name":"VariableDeclaration","src":"7387:10:3"}],"id":3562,"name":"ParameterList","src":"7365:33:3"},{"children":[{"attributes":{"assignments":[3564]},"children":[{"attributes":{"constant":false,"name":"record","scope":3611,"stateVariable":false,"storageLocation":"storage","type":"struct PublicResolver.Record","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"Record","referencedDeclaration":3293,"type":"struct PublicResolver.Record"},"id":3563,"name":"UserDefinedTypeName","src":"7409:6:3"}],"id":3564,"name":"VariableDeclaration","src":"7409:21:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3299,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":3565,"name":"Identifier","src":"7433:7:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3554,"type":"bytes32","value":"node"},"id":3566,"name":"Identifier","src":"7441:4:3"}],"id":3567,"name":"IndexAccess","src":"7433:13:3"}],"id":3568,"name":"VariableDeclarationStatement","src":"7409:37:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3559,"type":"uint256","value":"contentType"},"id":3569,"name":"Identifier","src":"7461:11:3"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":3570,"name":"Literal","src":"7475:1:3"}],"id":3571,"name":"Assignment","src":"7461:15:3"}],"id":3572,"name":"ExpressionStatement","src":"7461:15:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3559,"type":"uint256","value":"contentType"},"id":3573,"name":"Identifier","src":"7478:11:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3556,"type":"uint256","value":"contentTypes"},"id":3574,"name":"Identifier","src":"7493:12:3"}],"id":3575,"name":"BinaryOperation","src":"7478:27:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<<=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3559,"type":"uint256","value":"contentType"},"id":3576,"name":"Identifier","src":"7507:11:3"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":3577,"name":"Literal","src":"7523:1:3"}],"id":3578,"name":"Assignment","src":"7507:17:3"}],"id":3579,"name":"ExpressionStatement","src":"7507:17:3"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&&","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3559,"type":"uint256","value":"contentType"},"id":3580,"name":"Identifier","src":"7545:11:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3556,"type":"uint256","value":"contentTypes"},"id":3581,"name":"Identifier","src":"7559:12:3"}],"id":3582,"name":"BinaryOperation","src":"7545:26:3"}],"id":3583,"name":"TupleExpression","src":"7544:28:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3584,"name":"Literal","src":"7576:1:3"}],"id":3585,"name":"BinaryOperation","src":"7544:33:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"abis","referencedDeclaration":3290,"type":"mapping(uint256 => bytes storage ref)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3564,"type":"struct PublicResolver.Record storage pointer","value":"record"},"id":3586,"name":"Identifier","src":"7581:6:3"}],"id":3587,"name":"MemberAccess","src":"7581:11:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3559,"type":"uint256","value":"contentType"},"id":3588,"name":"Identifier","src":"7593:11:3"}],"id":3589,"name":"IndexAccess","src":"7581:24:3"}],"id":3590,"name":"MemberAccess","src":"7581:31:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3591,"name":"Literal","src":"7615:1:3"}],"id":3592,"name":"BinaryOperation","src":"7581:35:3"}],"id":3593,"name":"BinaryOperation","src":"7544:72:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3561,"type":"bytes memory","value":"data"},"id":3594,"name":"Identifier","src":"7636:4:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"abis","referencedDeclaration":3290,"type":"mapping(uint256 => bytes storage ref)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3564,"type":"struct PublicResolver.Record storage pointer","value":"record"},"id":3595,"name":"Identifier","src":"7643:6:3"}],"id":3596,"name":"MemberAccess","src":"7643:11:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3559,"type":"uint256","value":"contentType"},"id":3597,"name":"Identifier","src":"7655:11:3"}],"id":3598,"name":"IndexAccess","src":"7643:24:3"}],"id":3599,"name":"Assignment","src":"7636:31:3"}],"id":3600,"name":"ExpressionStatement","src":"7636:31:3"},{"attributes":{"expression":null,"functionReturnParameters":3562},"id":3601,"name":"Return","src":"7685:7:3"}],"id":3602,"name":"Block","src":"7618:88:3"}],"id":3603,"name":"IfStatement","src":"7540:166:3"}],"id":3604,"name":"Block","src":"7526:190:3"}],"id":3605,"name":"ForStatement","src":"7456:260:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3559,"type":"uint256","value":"contentType"},"id":3606,"name":"Identifier","src":"7725:11:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3607,"name":"Literal","src":"7739:1:3"}],"id":3608,"name":"Assignment","src":"7725:15:3"}],"id":3609,"name":"ExpressionStatement","src":"7725:15:3"}],"id":3610,"name":"Block","src":"7399:348:3"}],"id":3611,"name":"FunctionDefinition","src":"7296:451:3"},{"attributes":{"constant":true,"documentation":"Returns the name associated with an ENS node, for reverse records.\nDefined in EIP181.\n@param node The ENS node to query.\n@return The associated name.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"name","payable":false,"scope":3704,"stateMutability":"view","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":3624,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3612,"name":"ElementaryTypeName","src":"7961:7:3"}],"id":3613,"name":"VariableDeclaration","src":"7961:12:3"}],"id":3614,"name":"ParameterList","src":"7960:14:3"},{"children":[{"attributes":{"constant":false,"name":"","scope":3624,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":3615,"name":"ElementaryTypeName","src":"7996:6:3"}],"id":3616,"name":"VariableDeclaration","src":"7996:6:3"}],"id":3617,"name":"ParameterList","src":"7995:8:3"},{"children":[{"attributes":{"functionReturnParameters":3617},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"name","referencedDeclaration":3280,"type":"string storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3299,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":3618,"name":"Identifier","src":"8021:7:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3613,"type":"bytes32","value":"node"},"id":3619,"name":"Identifier","src":"8029:4:3"}],"id":3620,"name":"IndexAccess","src":"8021:13:3"}],"id":3621,"name":"MemberAccess","src":"8021:18:3"}],"id":3622,"name":"Return","src":"8014:25:3"}],"id":3623,"name":"Block","src":"8004:42:3"}],"id":3624,"name":"FunctionDefinition","src":"7947:99:3"},{"attributes":{"constant":true,"documentation":"Returns the content hash associated with an ENS node.\nNote that this resource type is not standardized, and will likely change\nin future to a resource type based on multihash.\n@param node The ENS node to query.\n@return The associated content hash.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"content","payable":false,"scope":3704,"stateMutability":"view","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":3637,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3625,"name":"ElementaryTypeName","src":"8368:7:3"}],"id":3626,"name":"VariableDeclaration","src":"8368:12:3"}],"id":3627,"name":"ParameterList","src":"8367:14:3"},{"children":[{"attributes":{"constant":false,"name":"","scope":3637,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3628,"name":"ElementaryTypeName","src":"8403:7:3"}],"id":3629,"name":"VariableDeclaration","src":"8403:7:3"}],"id":3630,"name":"ParameterList","src":"8402:9:3"},{"children":[{"attributes":{"functionReturnParameters":3630},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"content","referencedDeclaration":3278,"type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3299,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":3631,"name":"Identifier","src":"8429:7:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3626,"type":"bytes32","value":"node"},"id":3632,"name":"Identifier","src":"8437:4:3"}],"id":3633,"name":"IndexAccess","src":"8429:13:3"}],"id":3634,"name":"MemberAccess","src":"8429:21:3"}],"id":3635,"name":"Return","src":"8422:28:3"}],"id":3636,"name":"Block","src":"8412:45:3"}],"id":3637,"name":"FunctionDefinition","src":"8351:106:3"},{"attributes":{"constant":true,"documentation":"Returns the multihash associated with an ENS node.\n@param node The ENS node to query.\n@return The associated multihash.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"multihash","payable":false,"scope":3704,"stateMutability":"view","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":3650,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3638,"name":"ElementaryTypeName","src":"8639:7:3"}],"id":3639,"name":"VariableDeclaration","src":"8639:12:3"}],"id":3640,"name":"ParameterList","src":"8638:14:3"},{"children":[{"attributes":{"constant":false,"name":"","scope":3650,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":3641,"name":"ElementaryTypeName","src":"8674:5:3"}],"id":3642,"name":"VariableDeclaration","src":"8674:5:3"}],"id":3643,"name":"ParameterList","src":"8673:7:3"},{"children":[{"attributes":{"functionReturnParameters":3643},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"multihash","referencedDeclaration":3292,"type":"bytes storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3299,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":3644,"name":"Identifier","src":"8698:7:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3639,"type":"bytes32","value":"node"},"id":3645,"name":"Identifier","src":"8706:4:3"}],"id":3646,"name":"IndexAccess","src":"8698:13:3"}],"id":3647,"name":"MemberAccess","src":"8698:23:3"}],"id":3648,"name":"Return","src":"8691:30:3"}],"id":3649,"name":"Block","src":"8681:47:3"}],"id":3650,"name":"FunctionDefinition","src":"8620:108:3"},{"attributes":{"constant":true,"documentation":"Returns the address associated with an ENS node.\n@param node The ENS node to query.\n@return The associated address.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"addr","payable":false,"scope":3704,"stateMutability":"view","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":3663,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3651,"name":"ElementaryTypeName","src":"8901:7:3"}],"id":3652,"name":"VariableDeclaration","src":"8901:12:3"}],"id":3653,"name":"ParameterList","src":"8900:14:3"},{"children":[{"attributes":{"constant":false,"name":"","scope":3663,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3654,"name":"ElementaryTypeName","src":"8936:7:3"}],"id":3655,"name":"VariableDeclaration","src":"8936:7:3"}],"id":3656,"name":"ParameterList","src":"8935:9:3"},{"children":[{"attributes":{"functionReturnParameters":3656},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"addr","referencedDeclaration":3276,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3299,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":3657,"name":"Identifier","src":"8962:7:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3652,"type":"bytes32","value":"node"},"id":3658,"name":"Identifier","src":"8970:4:3"}],"id":3659,"name":"IndexAccess","src":"8962:13:3"}],"id":3660,"name":"MemberAccess","src":"8962:18:3"}],"id":3661,"name":"Return","src":"8955:25:3"}],"id":3662,"name":"Block","src":"8945:42:3"}],"id":3663,"name":"FunctionDefinition","src":"8887:100:3"},{"attributes":{"constant":true,"documentation":"Returns true if the resolver implements the interface specified by the provided hash.\n@param interfaceID The ID of the interface to check for.\n@return True if the contract implements the requested interface.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"supportsInterface","payable":false,"scope":3704,"stateMutability":"pure","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"interfaceID","scope":3703,"stateVariable":false,"storageLocation":"default","type":"bytes4","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes4","type":"bytes4"},"id":3664,"name":"ElementaryTypeName","src":"9265:6:3"}],"id":3665,"name":"VariableDeclaration","src":"9265:18:3"}],"id":3666,"name":"ParameterList","src":"9264:20:3"},{"children":[{"attributes":{"constant":false,"name":"","scope":3703,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":3667,"name":"ElementaryTypeName","src":"9306:4:3"}],"id":3668,"name":"VariableDeclaration","src":"9306:4:3"}],"id":3669,"name":"ParameterList","src":"9305:6:3"},{"children":[{"attributes":{"functionReturnParameters":3669},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"||","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"||","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"||","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"||","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"||","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"||","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"||","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3665,"type":"bytes4","value":"interfaceID"},"id":3670,"name":"Identifier","src":"9329:11:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3205,"type":"bytes4","value":"ADDR_INTERFACE_ID"},"id":3671,"name":"Identifier","src":"9344:17:3"}],"id":3672,"name":"BinaryOperation","src":"9329:32:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3665,"type":"bytes4","value":"interfaceID"},"id":3673,"name":"Identifier","src":"9373:11:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3208,"type":"bytes4","value":"CONTENT_INTERFACE_ID"},"id":3674,"name":"Identifier","src":"9388:20:3"}],"id":3675,"name":"BinaryOperation","src":"9373:35:3"}],"id":3676,"name":"BinaryOperation","src":"9329:79:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3665,"type":"bytes4","value":"interfaceID"},"id":3677,"name":"Identifier","src":"9420:11:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3211,"type":"bytes4","value":"NAME_INTERFACE_ID"},"id":3678,"name":"Identifier","src":"9435:17:3"}],"id":3679,"name":"BinaryOperation","src":"9420:32:3"}],"id":3680,"name":"BinaryOperation","src":"9329:123:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3665,"type":"bytes4","value":"interfaceID"},"id":3681,"name":"Identifier","src":"9464:11:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3214,"type":"bytes4","value":"ABI_INTERFACE_ID"},"id":3682,"name":"Identifier","src":"9479:16:3"}],"id":3683,"name":"BinaryOperation","src":"9464:31:3"}],"id":3684,"name":"BinaryOperation","src":"9329:166:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3665,"type":"bytes4","value":"interfaceID"},"id":3685,"name":"Identifier","src":"9507:11:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3217,"type":"bytes4","value":"PUBKEY_INTERFACE_ID"},"id":3686,"name":"Identifier","src":"9522:19:3"}],"id":3687,"name":"BinaryOperation","src":"9507:34:3"}],"id":3688,"name":"BinaryOperation","src":"9329:212:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3665,"type":"bytes4","value":"interfaceID"},"id":3689,"name":"Identifier","src":"9553:11:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3220,"type":"bytes4","value":"TEXT_INTERFACE_ID"},"id":3690,"name":"Identifier","src":"9568:17:3"}],"id":3691,"name":"BinaryOperation","src":"9553:32:3"}],"id":3692,"name":"BinaryOperation","src":"9329:256:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3665,"type":"bytes4","value":"interfaceID"},"id":3693,"name":"Identifier","src":"9597:11:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3223,"type":"bytes4","value":"MULTIHASH_INTERFACE_ID"},"id":3694,"name":"Identifier","src":"9612:22:3"}],"id":3695,"name":"BinaryOperation","src":"9597:37:3"}],"id":3696,"name":"BinaryOperation","src":"9329:305:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3665,"type":"bytes4","value":"interfaceID"},"id":3697,"name":"Identifier","src":"9646:11:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3202,"type":"bytes4","value":"INTERFACE_META_ID"},"id":3698,"name":"Identifier","src":"9661:17:3"}],"id":3699,"name":"BinaryOperation","src":"9646:32:3"}],"id":3700,"name":"BinaryOperation","src":"9329:349:3"}],"id":3701,"name":"Return","src":"9322:356:3"}],"id":3702,"name":"Block","src":"9312:373:3"}],"id":3703,"name":"FunctionDefinition","src":"9238:447:3"}],"id":3704,"name":"ContractDefinition","src":"1553:8134:3"}],"id":3705,"name":"SourceUnit","src":"1406:8282:3"}},"externals/strings.sol":{"AST":{"attributes":{"absolutePath":"externals/strings.sol","exportedSymbols":{"strings":[2399]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".14"]},"id":706,"name":"PragmaDirective","src":"2574:24:4"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"library","documentation":null,"fullyImplemented":true,"linearizedBaseContracts":[2399],"name":"strings","scope":2400},"children":[{"attributes":{"canonicalName":"strings.slice","name":"slice","scope":2399,"visibility":"public"},"children":[{"attributes":{"constant":false,"name":"_len","scope":711,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":707,"name":"ElementaryTypeName","src":"2645:4:4"}],"id":708,"name":"VariableDeclaration","src":"2645:9:4"},{"attributes":{"constant":false,"name":"_ptr","scope":711,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":709,"name":"ElementaryTypeName","src":"2664:4:4"}],"id":710,"name":"VariableDeclaration","src":"2664:9:4"}],"id":711,"name":"StructDefinition","src":"2622:58:4"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"memcpy","payable":false,"scope":2399,"stateMutability":"pure","superFunction":null,"visibility":"private"},"children":[{"children":[{"attributes":{"constant":false,"name":"dest","scope":751,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":712,"name":"ElementaryTypeName","src":"2702:4:4"}],"id":713,"name":"VariableDeclaration","src":"2702:9:4"},{"attributes":{"constant":false,"name":"src","scope":751,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":714,"name":"ElementaryTypeName","src":"2713:4:4"}],"id":715,"name":"VariableDeclaration","src":"2713:8:4"},{"attributes":{"constant":false,"name":"len","scope":751,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":716,"name":"ElementaryTypeName","src":"2723:4:4"}],"id":717,"name":"VariableDeclaration","src":"2723:8:4"}],"id":718,"name":"ParameterList","src":"2701:31:4"},{"attributes":{"parameters":[null]},"children":[],"id":719,"name":"ParameterList","src":"2746:0:4"},{"children":[{"attributes":{"initializationExpression":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":717,"type":"uint256","value":"len"},"id":720,"name":"Identifier","src":"2812:3:4"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":721,"name":"Literal","src":"2819:2:4"}],"id":722,"name":"BinaryOperation","src":"2812:9:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":717,"type":"uint256","value":"len"},"id":723,"name":"Identifier","src":"2823:3:4"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":724,"name":"Literal","src":"2830:2:4"}],"id":725,"name":"Assignment","src":"2823:9:4"}],"id":726,"name":"ExpressionStatement","src":"2823:9:4"},{"children":[{"attributes":{"externalReferences":[{"dest":{"declaration":713,"isOffset":false,"isSlot":false,"src":"2882:4:4","valueSize":1}},{"src":{"declaration":715,"isOffset":false,"isSlot":false,"src":"2894:3:4","valueSize":1}}],"operations":"{\n mstore(dest, mload(src))\n}"},"children":[],"id":727,"name":"InlineAssembly","src":"2848:82:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":713,"type":"uint256","value":"dest"},"id":728,"name":"Identifier","src":"2926:4:4"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":729,"name":"Literal","src":"2934:2:4"}],"id":730,"name":"Assignment","src":"2926:10:4"}],"id":731,"name":"ExpressionStatement","src":"2926:10:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":715,"type":"uint256","value":"src"},"id":732,"name":"Identifier","src":"2950:3:4"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":733,"name":"Literal","src":"2957:2:4"}],"id":734,"name":"Assignment","src":"2950:9:4"}],"id":735,"name":"ExpressionStatement","src":"2950:9:4"}],"id":736,"name":"Block","src":"2834:136:4"}],"id":737,"name":"ForStatement","src":"2806:164:4"},{"attributes":{"assignments":[739]},"children":[{"attributes":{"constant":false,"name":"mask","scope":751,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":738,"name":"ElementaryTypeName","src":"3012:4:4"}],"id":739,"name":"VariableDeclaration","src":"3012:9:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"**","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"323536","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 256","value":"256"},"id":740,"name":"Literal","src":"3024:3:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":741,"name":"Literal","src":"3032:2:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":717,"type":"uint256","value":"len"},"id":742,"name":"Identifier","src":"3037:3:4"}],"id":743,"name":"BinaryOperation","src":"3032:8:4"}],"id":744,"name":"TupleExpression","src":"3031:10:4"}],"id":745,"name":"BinaryOperation","src":"3024:17:4"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":746,"name":"Literal","src":"3044:1:4"}],"id":747,"name":"BinaryOperation","src":"3024:21:4"}],"id":748,"name":"VariableDeclarationStatement","src":"3012:33:4"},{"attributes":{"externalReferences":[{"mask":{"declaration":739,"isOffset":false,"isSlot":false,"src":"3113:4:4","valueSize":1}},{"src":{"declaration":715,"isOffset":false,"isSlot":false,"src":"3103:3:4","valueSize":1}},{"dest":{"declaration":713,"isOffset":false,"isSlot":false,"src":"3158:4:4","valueSize":1}},{"mask":{"declaration":739,"isOffset":false,"isSlot":false,"src":"3165:4:4","valueSize":1}},{"dest":{"declaration":713,"isOffset":false,"isSlot":false,"src":"3190:4:4","valueSize":1}}],"operations":"{\n let srcpart := and(mload(src), not(mask))\n let destpart := and(mload(dest), mask)\n mstore(dest, or(destpart, srcpart))\n}"},"children":[],"id":749,"name":"InlineAssembly","src":"3055:179:4"}],"id":750,"name":"Block","src":"2746:488:4"}],"id":751,"name":"FunctionDefinition","src":"2686:548:4"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"toSlice","payable":false,"scope":2399,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":771,"stateVariable":false,"storageLocation":"memory","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":752,"name":"ElementaryTypeName","src":"3451:6:4"}],"id":753,"name":"VariableDeclaration","src":"3451:18:4"}],"id":754,"name":"ParameterList","src":"3450:20:4"},{"children":[{"attributes":{"constant":false,"name":"","scope":771,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":711,"type":"struct strings.slice"},"id":755,"name":"UserDefinedTypeName","src":"3494:5:4"}],"id":756,"name":"VariableDeclaration","src":"3494:5:4"}],"id":757,"name":"ParameterList","src":"3493:14:4"},{"children":[{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"ptr","scope":771,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":758,"name":"ElementaryTypeName","src":"3518:4:4"}],"id":759,"name":"VariableDeclaration","src":"3518:8:4"}],"id":760,"name":"VariableDeclarationStatement","src":"3518:8:4"},{"attributes":{"externalReferences":[{"ptr":{"declaration":759,"isOffset":false,"isSlot":false,"src":"3559:3:4","valueSize":1}},{"self":{"declaration":753,"isOffset":false,"isSlot":false,"src":"3570:4:4","valueSize":1}}],"operations":"{\n ptr := add(self, 0x20)\n}"},"children":[],"id":761,"name":"InlineAssembly","src":"3536:70:4"},{"attributes":{"functionReturnParameters":757},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":true,"lValueRequested":false,"names":[null],"type":"struct strings.slice memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":711,"type":"type(struct strings.slice storage pointer)","value":"slice"},"id":762,"name":"Identifier","src":"3607:5:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes storage pointer)","value":"bytes"},"id":763,"name":"ElementaryTypeNameExpression","src":"3613:5:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":753,"type":"string memory","value":"self"},"id":764,"name":"Identifier","src":"3619:4:4"}],"id":765,"name":"FunctionCall","src":"3613:11:4"}],"id":766,"name":"MemberAccess","src":"3613:18:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":759,"type":"uint256","value":"ptr"},"id":767,"name":"Identifier","src":"3633:3:4"}],"id":768,"name":"FunctionCall","src":"3607:30:4"}],"id":769,"name":"Return","src":"3600:37:4"}],"id":770,"name":"Block","src":"3508:136:4"}],"id":771,"name":"FunctionDefinition","src":"3434:210:4"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"len","payable":false,"scope":2399,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":887,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":772,"name":"ElementaryTypeName","src":"3853:7:4"}],"id":773,"name":"VariableDeclaration","src":"3853:12:4"}],"id":774,"name":"ParameterList","src":"3852:14:4"},{"children":[{"attributes":{"constant":false,"name":"","scope":887,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":775,"name":"ElementaryTypeName","src":"3890:4:4"}],"id":776,"name":"VariableDeclaration","src":"3890:4:4"}],"id":777,"name":"ParameterList","src":"3889:6:4"},{"children":[{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"ret","scope":887,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":778,"name":"ElementaryTypeName","src":"3906:4:4"}],"id":779,"name":"VariableDeclaration","src":"3906:8:4"}],"id":780,"name":"VariableDeclarationStatement","src":"3906:8:4"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":773,"type":"bytes32","value":"self"},"id":781,"name":"Identifier","src":"3928:4:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":782,"name":"Literal","src":"3936:1:4"}],"id":783,"name":"BinaryOperation","src":"3928:9:4"},{"attributes":{"functionReturnParameters":777},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":784,"name":"Literal","src":"3958:1:4"}],"id":785,"name":"Return","src":"3951:8:4"}],"id":786,"name":"IfStatement","src":"3924:35:4"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":773,"type":"bytes32","value":"self"},"id":787,"name":"Identifier","src":"3973:4:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30786666666666666666666666666666666666666666666666666666666666666666","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3402...(31 digits omitted)...1455","value":"0xffffffffffffffffffffffffffffffff"},"id":788,"name":"Literal","src":"3980:34:4"}],"id":789,"name":"BinaryOperation","src":"3973:41:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":790,"name":"Literal","src":"4018:1:4"}],"id":791,"name":"BinaryOperation","src":"3973:46:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":779,"type":"uint256","value":"ret"},"id":792,"name":"Identifier","src":"4035:3:4"},{"attributes":{"argumentTypes":null,"hexvalue":"3136","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 16","value":"16"},"id":793,"name":"Literal","src":"4042:2:4"}],"id":794,"name":"Assignment","src":"4035:9:4"}],"id":795,"name":"ExpressionStatement","src":"4035:9:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":773,"type":"bytes32","value":"self"},"id":796,"name":"Identifier","src":"4058:4:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes32)","value":"bytes32"},"id":797,"name":"ElementaryTypeNameExpression","src":"4065:7:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"/","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint"},"id":798,"name":"ElementaryTypeNameExpression","src":"4073:4:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":773,"type":"bytes32","value":"self"},"id":799,"name":"Identifier","src":"4078:4:4"}],"id":800,"name":"FunctionCall","src":"4073:10:4"},{"attributes":{"argumentTypes":null,"hexvalue":"3078313030303030303030303030303030303030303030303030303030303030303030","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3402...(31 digits omitted)...1456","value":"0x100000000000000000000000000000000"},"id":801,"name":"Literal","src":"4086:35:4"}],"id":802,"name":"BinaryOperation","src":"4073:48:4"}],"id":803,"name":"FunctionCall","src":"4065:57:4"}],"id":804,"name":"Assignment","src":"4058:64:4"}],"id":805,"name":"ExpressionStatement","src":"4058:64:4"}],"id":806,"name":"Block","src":"4021:112:4"}],"id":807,"name":"IfStatement","src":"3969:164:4"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":773,"type":"bytes32","value":"self"},"id":808,"name":"Identifier","src":"4146:4:4"},{"attributes":{"argumentTypes":null,"hexvalue":"307866666666666666666666666666666666","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 18446744073709551615","value":"0xffffffffffffffff"},"id":809,"name":"Literal","src":"4153:18:4"}],"id":810,"name":"BinaryOperation","src":"4146:25:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":811,"name":"Literal","src":"4175:1:4"}],"id":812,"name":"BinaryOperation","src":"4146:30:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":779,"type":"uint256","value":"ret"},"id":813,"name":"Identifier","src":"4192:3:4"},{"attributes":{"argumentTypes":null,"hexvalue":"38","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 8","value":"8"},"id":814,"name":"Literal","src":"4199:1:4"}],"id":815,"name":"Assignment","src":"4192:8:4"}],"id":816,"name":"ExpressionStatement","src":"4192:8:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":773,"type":"bytes32","value":"self"},"id":817,"name":"Identifier","src":"4214:4:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes32)","value":"bytes32"},"id":818,"name":"ElementaryTypeNameExpression","src":"4221:7:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"/","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint"},"id":819,"name":"ElementaryTypeNameExpression","src":"4229:4:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":773,"type":"bytes32","value":"self"},"id":820,"name":"Identifier","src":"4234:4:4"}],"id":821,"name":"FunctionCall","src":"4229:10:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30783130303030303030303030303030303030","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 18446744073709551616","value":"0x10000000000000000"},"id":822,"name":"Literal","src":"4242:19:4"}],"id":823,"name":"BinaryOperation","src":"4229:32:4"}],"id":824,"name":"FunctionCall","src":"4221:41:4"}],"id":825,"name":"Assignment","src":"4214:48:4"}],"id":826,"name":"ExpressionStatement","src":"4214:48:4"}],"id":827,"name":"Block","src":"4178:95:4"}],"id":828,"name":"IfStatement","src":"4142:131:4"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":773,"type":"bytes32","value":"self"},"id":829,"name":"Identifier","src":"4286:4:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30786666666666666666","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4294967295","value":"0xffffffff"},"id":830,"name":"Literal","src":"4293:10:4"}],"id":831,"name":"BinaryOperation","src":"4286:17:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":832,"name":"Literal","src":"4307:1:4"}],"id":833,"name":"BinaryOperation","src":"4286:22:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":779,"type":"uint256","value":"ret"},"id":834,"name":"Identifier","src":"4324:3:4"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":835,"name":"Literal","src":"4331:1:4"}],"id":836,"name":"Assignment","src":"4324:8:4"}],"id":837,"name":"ExpressionStatement","src":"4324:8:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":773,"type":"bytes32","value":"self"},"id":838,"name":"Identifier","src":"4346:4:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes32)","value":"bytes32"},"id":839,"name":"ElementaryTypeNameExpression","src":"4353:7:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"/","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint"},"id":840,"name":"ElementaryTypeNameExpression","src":"4361:4:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":773,"type":"bytes32","value":"self"},"id":841,"name":"Identifier","src":"4366:4:4"}],"id":842,"name":"FunctionCall","src":"4361:10:4"},{"attributes":{"argumentTypes":null,"hexvalue":"3078313030303030303030","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4294967296","value":"0x100000000"},"id":843,"name":"Literal","src":"4374:11:4"}],"id":844,"name":"BinaryOperation","src":"4361:24:4"}],"id":845,"name":"FunctionCall","src":"4353:33:4"}],"id":846,"name":"Assignment","src":"4346:40:4"}],"id":847,"name":"ExpressionStatement","src":"4346:40:4"}],"id":848,"name":"Block","src":"4310:87:4"}],"id":849,"name":"IfStatement","src":"4282:115:4"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":773,"type":"bytes32","value":"self"},"id":850,"name":"Identifier","src":"4410:4:4"},{"attributes":{"argumentTypes":null,"hexvalue":"307866666666","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 65535","value":"0xffff"},"id":851,"name":"Literal","src":"4417:6:4"}],"id":852,"name":"BinaryOperation","src":"4410:13:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":853,"name":"Literal","src":"4427:1:4"}],"id":854,"name":"BinaryOperation","src":"4410:18:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":779,"type":"uint256","value":"ret"},"id":855,"name":"Identifier","src":"4444:3:4"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":856,"name":"Literal","src":"4451:1:4"}],"id":857,"name":"Assignment","src":"4444:8:4"}],"id":858,"name":"ExpressionStatement","src":"4444:8:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":773,"type":"bytes32","value":"self"},"id":859,"name":"Identifier","src":"4466:4:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes32)","value":"bytes32"},"id":860,"name":"ElementaryTypeNameExpression","src":"4473:7:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"/","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint"},"id":861,"name":"ElementaryTypeNameExpression","src":"4481:4:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":773,"type":"bytes32","value":"self"},"id":862,"name":"Identifier","src":"4486:4:4"}],"id":863,"name":"FunctionCall","src":"4481:10:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30783130303030","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 65536","value":"0x10000"},"id":864,"name":"Literal","src":"4494:7:4"}],"id":865,"name":"BinaryOperation","src":"4481:20:4"}],"id":866,"name":"FunctionCall","src":"4473:29:4"}],"id":867,"name":"Assignment","src":"4466:36:4"}],"id":868,"name":"ExpressionStatement","src":"4466:36:4"}],"id":869,"name":"Block","src":"4430:83:4"}],"id":870,"name":"IfStatement","src":"4406:107:4"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":773,"type":"bytes32","value":"self"},"id":871,"name":"Identifier","src":"4526:4:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30786666","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 255","value":"0xff"},"id":872,"name":"Literal","src":"4533:4:4"}],"id":873,"name":"BinaryOperation","src":"4526:11:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":874,"name":"Literal","src":"4541:1:4"}],"id":875,"name":"BinaryOperation","src":"4526:16:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":779,"type":"uint256","value":"ret"},"id":876,"name":"Identifier","src":"4558:3:4"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":877,"name":"Literal","src":"4565:1:4"}],"id":878,"name":"Assignment","src":"4558:8:4"}],"id":879,"name":"ExpressionStatement","src":"4558:8:4"}],"id":880,"name":"Block","src":"4544:33:4"}],"id":881,"name":"IfStatement","src":"4522:55:4"},{"attributes":{"functionReturnParameters":777},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":882,"name":"Literal","src":"4593:2:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":779,"type":"uint256","value":"ret"},"id":883,"name":"Identifier","src":"4598:3:4"}],"id":884,"name":"BinaryOperation","src":"4593:8:4"}],"id":885,"name":"Return","src":"4586:15:4"}],"id":886,"name":"Block","src":"3896:712:4"}],"id":887,"name":"FunctionDefinition","src":"3840:768:4"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"toSliceB32","payable":false,"scope":2399,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":904,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":888,"name":"ElementaryTypeName","src":"4934:7:4"}],"id":889,"name":"VariableDeclaration","src":"4934:12:4"}],"id":890,"name":"ParameterList","src":"4933:14:4"},{"children":[{"attributes":{"constant":false,"name":"ret","scope":904,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":711,"type":"struct strings.slice"},"id":891,"name":"UserDefinedTypeName","src":"4971:5:4"}],"id":892,"name":"VariableDeclaration","src":"4971:16:4"}],"id":893,"name":"ParameterList","src":"4970:18:4"},{"children":[{"attributes":{"externalReferences":[{"ret":{"declaration":892,"isOffset":false,"isSlot":false,"src":"5222:3:4","valueSize":1}},{"self":{"declaration":889,"isOffset":false,"isSlot":false,"src":"5193:4:4","valueSize":1}}],"operations":"{\n let ptr := mload(0x40)\n mstore(0x40, add(ptr, 0x20))\n mstore(ptr, self)\n mstore(add(ret, 0x20), ptr)\n}"},"children":[],"id":894,"name":"InlineAssembly","src":"5082:178:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":708,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":892,"type":"struct strings.slice memory","value":"ret"},"id":895,"name":"Identifier","src":"5257:3:4"}],"id":897,"name":"MemberAccess","src":"5257:8:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[887,1037],"referencedDeclaration":887,"type":"function (bytes32) pure returns (uint256)","value":"len"},"id":898,"name":"Identifier","src":"5268:3:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":889,"type":"bytes32","value":"self"},"id":899,"name":"Identifier","src":"5272:4:4"}],"id":900,"name":"FunctionCall","src":"5268:9:4"}],"id":901,"name":"Assignment","src":"5257:20:4"}],"id":902,"name":"ExpressionStatement","src":"5257:20:4"}],"id":903,"name":"Block","src":"4989:295:4"}],"id":904,"name":"FunctionDefinition","src":"4914:370:4"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"copy","payable":false,"scope":2399,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":919,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":711,"type":"struct strings.slice"},"id":905,"name":"UserDefinedTypeName","src":"5499:5:4"}],"id":906,"name":"VariableDeclaration","src":"5499:17:4"}],"id":907,"name":"ParameterList","src":"5498:19:4"},{"children":[{"attributes":{"constant":false,"name":"","scope":919,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":711,"type":"struct strings.slice"},"id":908,"name":"UserDefinedTypeName","src":"5541:5:4"}],"id":909,"name":"VariableDeclaration","src":"5541:5:4"}],"id":910,"name":"ParameterList","src":"5540:14:4"},{"children":[{"attributes":{"functionReturnParameters":910},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":true,"lValueRequested":false,"names":[null],"type":"struct strings.slice memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":711,"type":"type(struct strings.slice storage pointer)","value":"slice"},"id":911,"name":"Identifier","src":"5572:5:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":708,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":906,"type":"struct strings.slice memory","value":"self"},"id":912,"name":"Identifier","src":"5578:4:4"}],"id":913,"name":"MemberAccess","src":"5578:9:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":710,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":906,"type":"struct strings.slice memory","value":"self"},"id":914,"name":"Identifier","src":"5589:4:4"}],"id":915,"name":"MemberAccess","src":"5589:9:4"}],"id":916,"name":"FunctionCall","src":"5572:27:4"}],"id":917,"name":"Return","src":"5565:34:4"}],"id":918,"name":"Block","src":"5555:51:4"}],"id":919,"name":"FunctionDefinition","src":"5485:121:4"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"toString","payable":false,"scope":2399,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":949,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":711,"type":"struct strings.slice"},"id":920,"name":"UserDefinedTypeName","src":"5796:5:4"}],"id":921,"name":"VariableDeclaration","src":"5796:17:4"}],"id":922,"name":"ParameterList","src":"5795:19:4"},{"children":[{"attributes":{"constant":false,"name":"","scope":949,"stateVariable":false,"storageLocation":"memory","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":923,"name":"ElementaryTypeName","src":"5838:6:4"}],"id":924,"name":"VariableDeclaration","src":"5838:6:4"}],"id":925,"name":"ParameterList","src":"5837:15:4"},{"children":[{"attributes":{"assignments":[927]},"children":[{"attributes":{"constant":false,"name":"ret","scope":949,"stateVariable":false,"storageLocation":"memory","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":926,"name":"ElementaryTypeName","src":"5863:6:4"}],"id":927,"name":"VariableDeclaration","src":"5863:17:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (string memory)"},"children":[{"attributes":{"name":"string","type":"string"},"id":928,"name":"ElementaryTypeName","src":"5887:6:4"}],"id":929,"name":"NewExpression","src":"5883:10:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":708,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":921,"type":"struct strings.slice memory","value":"self"},"id":930,"name":"Identifier","src":"5894:4:4"}],"id":931,"name":"MemberAccess","src":"5894:9:4"}],"id":932,"name":"FunctionCall","src":"5883:21:4"}],"id":933,"name":"VariableDeclarationStatement","src":"5863:41:4"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"retptr","scope":949,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":934,"name":"ElementaryTypeName","src":"5914:4:4"}],"id":935,"name":"VariableDeclaration","src":"5914:11:4"}],"id":936,"name":"VariableDeclarationStatement","src":"5914:11:4"},{"attributes":{"externalReferences":[{"retptr":{"declaration":935,"isOffset":false,"isSlot":false,"src":"5946:6:4","valueSize":1}},{"ret":{"declaration":927,"isOffset":false,"isSlot":false,"src":"5960:3:4","valueSize":1}}],"operations":"{\n retptr := add(ret, 32)\n}"},"children":[],"id":937,"name":"InlineAssembly","src":"5935:51:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":751,"type":"function (uint256,uint256,uint256) pure","value":"memcpy"},"id":938,"name":"Identifier","src":"5980:6:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":935,"type":"uint256","value":"retptr"},"id":939,"name":"Identifier","src":"5987:6:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":710,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":921,"type":"struct strings.slice memory","value":"self"},"id":940,"name":"Identifier","src":"5995:4:4"}],"id":941,"name":"MemberAccess","src":"5995:9:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":708,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":921,"type":"struct strings.slice memory","value":"self"},"id":942,"name":"Identifier","src":"6006:4:4"}],"id":943,"name":"MemberAccess","src":"6006:9:4"}],"id":944,"name":"FunctionCall","src":"5980:36:4"}],"id":945,"name":"ExpressionStatement","src":"5980:36:4"},{"attributes":{"functionReturnParameters":925},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":927,"type":"string memory","value":"ret"},"id":946,"name":"Identifier","src":"6033:3:4"}],"id":947,"name":"Return","src":"6026:10:4"}],"id":948,"name":"Block","src":"5853:190:4"}],"id":949,"name":"FunctionDefinition","src":"5778:265:4"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"len","payable":false,"scope":2399,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":1037,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":711,"type":"struct strings.slice"},"id":950,"name":"UserDefinedTypeName","src":"6447:5:4"}],"id":951,"name":"VariableDeclaration","src":"6447:17:4"}],"id":952,"name":"ParameterList","src":"6446:19:4"},{"children":[{"attributes":{"constant":false,"name":"l","scope":1037,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":953,"name":"ElementaryTypeName","src":"6489:4:4"}],"id":954,"name":"VariableDeclaration","src":"6489:6:4"}],"id":955,"name":"ParameterList","src":"6488:8:4"},{"children":[{"attributes":{"assignments":[957]},"children":[{"attributes":{"constant":false,"name":"ptr","scope":1037,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":956,"name":"ElementaryTypeName","src":"6582:4:4"}],"id":957,"name":"VariableDeclaration","src":"6582:8:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":710,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":951,"type":"struct strings.slice memory","value":"self"},"id":958,"name":"Identifier","src":"6593:4:4"}],"id":959,"name":"MemberAccess","src":"6593:9:4"},{"attributes":{"argumentTypes":null,"hexvalue":"3331","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 31","value":"31"},"id":960,"name":"Literal","src":"6605:2:4"}],"id":961,"name":"BinaryOperation","src":"6593:14:4"}],"id":962,"name":"VariableDeclarationStatement","src":"6582:25:4"},{"attributes":{"assignments":[964]},"children":[{"attributes":{"constant":false,"name":"end","scope":1037,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":963,"name":"ElementaryTypeName","src":"6617:4:4"}],"id":964,"name":"VariableDeclaration","src":"6617:8:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":957,"type":"uint256","value":"ptr"},"id":965,"name":"Identifier","src":"6628:3:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":708,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":951,"type":"struct strings.slice memory","value":"self"},"id":966,"name":"Identifier","src":"6634:4:4"}],"id":967,"name":"MemberAccess","src":"6634:9:4"}],"id":968,"name":"BinaryOperation","src":"6628:15:4"}],"id":969,"name":"VariableDeclarationStatement","src":"6617:26:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":954,"type":"uint256","value":"l"},"id":970,"name":"Identifier","src":"6658:1:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":971,"name":"Literal","src":"6662:1:4"}],"id":972,"name":"Assignment","src":"6658:5:4"}],"id":973,"name":"ExpressionStatement","src":"6658:5:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":957,"type":"uint256","value":"ptr"},"id":974,"name":"Identifier","src":"6665:3:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":964,"type":"uint256","value":"end"},"id":975,"name":"Identifier","src":"6671:3:4"}],"id":976,"name":"BinaryOperation","src":"6665:9:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":954,"type":"uint256","value":"l"},"id":977,"name":"Identifier","src":"6676:1:4"}],"id":978,"name":"UnaryOperation","src":"6676:3:4"}],"id":979,"name":"ExpressionStatement","src":"6676:3:4"},{"children":[{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"b","scope":1037,"stateVariable":false,"storageLocation":"default","type":"uint8","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint8","type":"uint8"},"id":980,"name":"ElementaryTypeName","src":"6695:5:4"}],"id":981,"name":"VariableDeclaration","src":"6695:7:4"}],"id":982,"name":"VariableDeclarationStatement","src":"6695:7:4"},{"attributes":{"externalReferences":[{"ptr":{"declaration":957,"isOffset":false,"isSlot":false,"src":"6742:3:4","valueSize":1}},{"b":{"declaration":981,"isOffset":false,"isSlot":false,"src":"6727:1:4","valueSize":1}}],"operations":"{\n b := and(mload(ptr), 0xFF)\n}"},"children":[],"id":983,"name":"InlineAssembly","src":"6716:54:4"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":981,"type":"uint8","value":"b"},"id":984,"name":"Identifier","src":"6772:1:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30783830","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 128","value":"0x80"},"id":985,"name":"Literal","src":"6776:4:4"}],"id":986,"name":"BinaryOperation","src":"6772:8:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":957,"type":"uint256","value":"ptr"},"id":987,"name":"Identifier","src":"6800:3:4"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":988,"name":"Literal","src":"6807:1:4"}],"id":989,"name":"Assignment","src":"6800:8:4"}],"id":990,"name":"ExpressionStatement","src":"6800:8:4"}],"id":991,"name":"Block","src":"6782:41:4"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":981,"type":"uint8","value":"b"},"id":992,"name":"Identifier","src":"6832:1:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30784530","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 224","value":"0xE0"},"id":993,"name":"Literal","src":"6836:4:4"}],"id":994,"name":"BinaryOperation","src":"6832:8:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":957,"type":"uint256","value":"ptr"},"id":995,"name":"Identifier","src":"6860:3:4"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":996,"name":"Literal","src":"6867:1:4"}],"id":997,"name":"Assignment","src":"6860:8:4"}],"id":998,"name":"ExpressionStatement","src":"6860:8:4"}],"id":999,"name":"Block","src":"6842:41:4"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":981,"type":"uint8","value":"b"},"id":1000,"name":"Identifier","src":"6892:1:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30784630","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 240","value":"0xF0"},"id":1001,"name":"Literal","src":"6896:4:4"}],"id":1002,"name":"BinaryOperation","src":"6892:8:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":957,"type":"uint256","value":"ptr"},"id":1003,"name":"Identifier","src":"6920:3:4"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":1004,"name":"Literal","src":"6927:1:4"}],"id":1005,"name":"Assignment","src":"6920:8:4"}],"id":1006,"name":"ExpressionStatement","src":"6920:8:4"}],"id":1007,"name":"Block","src":"6902:41:4"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":981,"type":"uint8","value":"b"},"id":1008,"name":"Identifier","src":"6952:1:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30784638","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 248","value":"0xF8"},"id":1009,"name":"Literal","src":"6956:4:4"}],"id":1010,"name":"BinaryOperation","src":"6952:8:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":957,"type":"uint256","value":"ptr"},"id":1011,"name":"Identifier","src":"6980:3:4"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":1012,"name":"Literal","src":"6987:1:4"}],"id":1013,"name":"Assignment","src":"6980:8:4"}],"id":1014,"name":"ExpressionStatement","src":"6980:8:4"}],"id":1015,"name":"Block","src":"6962:41:4"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":981,"type":"uint8","value":"b"},"id":1016,"name":"Identifier","src":"7012:1:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30784643","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 252","value":"0xFC"},"id":1017,"name":"Literal","src":"7016:4:4"}],"id":1018,"name":"BinaryOperation","src":"7012:8:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":957,"type":"uint256","value":"ptr"},"id":1019,"name":"Identifier","src":"7040:3:4"},{"attributes":{"argumentTypes":null,"hexvalue":"35","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 5","value":"5"},"id":1020,"name":"Literal","src":"7047:1:4"}],"id":1021,"name":"Assignment","src":"7040:8:4"}],"id":1022,"name":"ExpressionStatement","src":"7040:8:4"}],"id":1023,"name":"Block","src":"7022:41:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":957,"type":"uint256","value":"ptr"},"id":1024,"name":"Identifier","src":"7087:3:4"},{"attributes":{"argumentTypes":null,"hexvalue":"36","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 6","value":"6"},"id":1025,"name":"Literal","src":"7094:1:4"}],"id":1026,"name":"Assignment","src":"7087:8:4"}],"id":1027,"name":"ExpressionStatement","src":"7087:8:4"}],"id":1028,"name":"Block","src":"7069:41:4"}],"id":1029,"name":"IfStatement","src":"7009:101:4"}],"id":1030,"name":"IfStatement","src":"6949:161:4"}],"id":1031,"name":"IfStatement","src":"6889:221:4"}],"id":1032,"name":"IfStatement","src":"6829:281:4"}],"id":1033,"name":"IfStatement","src":"6768:342:4"}],"id":1034,"name":"Block","src":"6681:439:4"}],"id":1035,"name":"ForStatement","src":"6653:467:4"}],"id":1036,"name":"Block","src":"6497:629:4"}],"id":1037,"name":"FunctionDefinition","src":"6434:692:4"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"empty","payable":false,"scope":2399,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":1050,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":711,"type":"struct strings.slice"},"id":1038,"name":"UserDefinedTypeName","src":"7334:5:4"}],"id":1039,"name":"VariableDeclaration","src":"7334:17:4"}],"id":1040,"name":"ParameterList","src":"7333:19:4"},{"children":[{"attributes":{"constant":false,"name":"","scope":1050,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":1041,"name":"ElementaryTypeName","src":"7376:4:4"}],"id":1042,"name":"VariableDeclaration","src":"7376:4:4"}],"id":1043,"name":"ParameterList","src":"7375:6:4"},{"children":[{"attributes":{"functionReturnParameters":1043},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":708,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1039,"type":"struct strings.slice memory","value":"self"},"id":1044,"name":"Identifier","src":"7399:4:4"}],"id":1045,"name":"MemberAccess","src":"7399:9:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1046,"name":"Literal","src":"7412:1:4"}],"id":1047,"name":"BinaryOperation","src":"7399:14:4"}],"id":1048,"name":"Return","src":"7392:21:4"}],"id":1049,"name":"Block","src":"7382:38:4"}],"id":1050,"name":"FunctionDefinition","src":"7319:101:4"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"compare","payable":false,"scope":2399,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":1179,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":711,"type":"struct strings.slice"},"id":1051,"name":"UserDefinedTypeName","src":"7865:5:4"}],"id":1052,"name":"VariableDeclaration","src":"7865:17:4"},{"attributes":{"constant":false,"name":"other","scope":1179,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":711,"type":"struct strings.slice"},"id":1053,"name":"UserDefinedTypeName","src":"7884:5:4"}],"id":1054,"name":"VariableDeclaration","src":"7884:18:4"}],"id":1055,"name":"ParameterList","src":"7864:39:4"},{"children":[{"attributes":{"constant":false,"name":"","scope":1179,"stateVariable":false,"storageLocation":"default","type":"int256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"int","type":"int256"},"id":1056,"name":"ElementaryTypeName","src":"7927:3:4"}],"id":1057,"name":"VariableDeclaration","src":"7927:3:4"}],"id":1058,"name":"ParameterList","src":"7926:5:4"},{"children":[{"attributes":{"assignments":[1060]},"children":[{"attributes":{"constant":false,"name":"shortest","scope":1179,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1059,"name":"ElementaryTypeName","src":"7942:4:4"}],"id":1060,"name":"VariableDeclaration","src":"7942:13:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":708,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1052,"type":"struct strings.slice memory","value":"self"},"id":1061,"name":"Identifier","src":"7958:4:4"}],"id":1062,"name":"MemberAccess","src":"7958:9:4"}],"id":1063,"name":"VariableDeclarationStatement","src":"7942:25:4"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":708,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1054,"type":"struct strings.slice memory","value":"other"},"id":1064,"name":"Identifier","src":"7981:5:4"}],"id":1065,"name":"MemberAccess","src":"7981:10:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":708,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1052,"type":"struct strings.slice memory","value":"self"},"id":1066,"name":"Identifier","src":"7994:4:4"}],"id":1067,"name":"MemberAccess","src":"7994:9:4"}],"id":1068,"name":"BinaryOperation","src":"7981:22:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1060,"type":"uint256","value":"shortest"},"id":1069,"name":"Identifier","src":"8017:8:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":708,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1054,"type":"struct strings.slice memory","value":"other"},"id":1070,"name":"Identifier","src":"8028:5:4"}],"id":1071,"name":"MemberAccess","src":"8028:10:4"}],"id":1072,"name":"Assignment","src":"8017:21:4"}],"id":1073,"name":"ExpressionStatement","src":"8017:21:4"}],"id":1074,"name":"IfStatement","src":"7977:61:4"},{"attributes":{"assignments":[1076]},"children":[{"attributes":{"constant":false,"name":"selfptr","scope":1179,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1075,"name":"ElementaryTypeName","src":"8049:4:4"}],"id":1076,"name":"VariableDeclaration","src":"8049:12:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":710,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1052,"type":"struct strings.slice memory","value":"self"},"id":1077,"name":"Identifier","src":"8064:4:4"}],"id":1078,"name":"MemberAccess","src":"8064:9:4"}],"id":1079,"name":"VariableDeclarationStatement","src":"8049:24:4"},{"attributes":{"assignments":[1081]},"children":[{"attributes":{"constant":false,"name":"otherptr","scope":1179,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1080,"name":"ElementaryTypeName","src":"8083:4:4"}],"id":1081,"name":"VariableDeclaration","src":"8083:13:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":710,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1054,"type":"struct strings.slice memory","value":"other"},"id":1082,"name":"Identifier","src":"8099:5:4"}],"id":1083,"name":"MemberAccess","src":"8099:10:4"}],"id":1084,"name":"VariableDeclarationStatement","src":"8083:26:4"},{"children":[{"attributes":{"assignments":[1086]},"children":[{"attributes":{"constant":false,"name":"idx","scope":1179,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1085,"name":"ElementaryTypeName","src":"8124:4:4"}],"id":1086,"name":"VariableDeclaration","src":"8124:8:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1087,"name":"Literal","src":"8135:1:4"}],"id":1088,"name":"VariableDeclarationStatement","src":"8124:12:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1086,"type":"uint256","value":"idx"},"id":1089,"name":"Identifier","src":"8138:3:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1060,"type":"uint256","value":"shortest"},"id":1090,"name":"Identifier","src":"8144:8:4"}],"id":1091,"name":"BinaryOperation","src":"8138:14:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1086,"type":"uint256","value":"idx"},"id":1092,"name":"Identifier","src":"8154:3:4"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":1093,"name":"Literal","src":"8161:2:4"}],"id":1094,"name":"Assignment","src":"8154:9:4"}],"id":1095,"name":"ExpressionStatement","src":"8154:9:4"},{"children":[{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"a","scope":1179,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1096,"name":"ElementaryTypeName","src":"8179:4:4"}],"id":1097,"name":"VariableDeclaration","src":"8179:6:4"}],"id":1098,"name":"VariableDeclarationStatement","src":"8179:6:4"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"b","scope":1179,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1099,"name":"ElementaryTypeName","src":"8199:4:4"}],"id":1100,"name":"VariableDeclaration","src":"8199:6:4"}],"id":1101,"name":"VariableDeclarationStatement","src":"8199:6:4"},{"attributes":{"externalReferences":[{"selfptr":{"declaration":1076,"isOffset":false,"isSlot":false,"src":"8257:7:4","valueSize":1}},{"a":{"declaration":1097,"isOffset":false,"isSlot":false,"src":"8246:1:4","valueSize":1}},{"b":{"declaration":1100,"isOffset":false,"isSlot":false,"src":"8282:1:4","valueSize":1}},{"otherptr":{"declaration":1081,"isOffset":false,"isSlot":false,"src":"8293:8:4","valueSize":1}}],"operations":"{\n a := mload(selfptr)\n b := mload(otherptr)\n}"},"children":[],"id":1102,"name":"InlineAssembly","src":"8219:112:4"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1097,"type":"uint256","value":"a"},"id":1103,"name":"Identifier","src":"8333:1:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1100,"type":"uint256","value":"b"},"id":1104,"name":"Identifier","src":"8338:1:4"}],"id":1105,"name":"BinaryOperation","src":"8333:6:4"},{"children":[{"attributes":{"assignments":[1107]},"children":[{"attributes":{"constant":false,"name":"mask","scope":1179,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1106,"name":"ElementaryTypeName","src":"8420:7:4"}],"id":1107,"name":"VariableDeclaration","src":"8420:12:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_-1_by_1","typeString":"int_const -1"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint256"},"id":1108,"name":"ElementaryTypeNameExpression","src":"8435:7:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"-","prefix":true,"type":"int_const -1"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":1109,"name":"Literal","src":"8444:1:4"}],"id":1110,"name":"UnaryOperation","src":"8443:2:4"}],"id":1111,"name":"FunctionCall","src":"8435:11:4"}],"id":1112,"name":"VariableDeclarationStatement","src":"8420:26:4"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1060,"type":"uint256","value":"shortest"},"id":1113,"name":"Identifier","src":"8480:8:4"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":1114,"name":"Literal","src":"8491:2:4"}],"id":1115,"name":"BinaryOperation","src":"8480:13:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1107,"type":"uint256","value":"mask"},"id":1116,"name":"Identifier","src":"8515:4:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"~","prefix":true,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"**","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":1117,"name":"Literal","src":"8524:1:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"38","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 8","value":"8"},"id":1118,"name":"Literal","src":"8530:1:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":1119,"name":"Literal","src":"8535:2:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1060,"type":"uint256","value":"shortest"},"id":1120,"name":"Identifier","src":"8540:8:4"}],"id":1121,"name":"BinaryOperation","src":"8535:13:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1086,"type":"uint256","value":"idx"},"id":1122,"name":"Identifier","src":"8551:3:4"}],"id":1123,"name":"BinaryOperation","src":"8535:19:4"}],"id":1124,"name":"TupleExpression","src":"8534:21:4"}],"id":1125,"name":"BinaryOperation","src":"8530:25:4"}],"id":1126,"name":"TupleExpression","src":"8529:27:4"}],"id":1127,"name":"BinaryOperation","src":"8524:32:4"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":1128,"name":"Literal","src":"8559:1:4"}],"id":1129,"name":"BinaryOperation","src":"8524:36:4"}],"id":1130,"name":"TupleExpression","src":"8523:38:4"}],"id":1131,"name":"UnaryOperation","src":"8522:39:4"}],"id":1132,"name":"Assignment","src":"8515:46:4"}],"id":1133,"name":"ExpressionStatement","src":"8515:46:4"}],"id":1134,"name":"Block","src":"8495:85:4"}],"id":1135,"name":"IfStatement","src":"8477:103:4"},{"attributes":{"assignments":[1137]},"children":[{"attributes":{"constant":false,"name":"diff","scope":1179,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1136,"name":"ElementaryTypeName","src":"8597:7:4"}],"id":1137,"name":"VariableDeclaration","src":"8597:12:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1097,"type":"uint256","value":"a"},"id":1138,"name":"Identifier","src":"8613:1:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1107,"type":"uint256","value":"mask"},"id":1139,"name":"Identifier","src":"8617:4:4"}],"id":1140,"name":"BinaryOperation","src":"8613:8:4"}],"id":1141,"name":"TupleExpression","src":"8612:10:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1100,"type":"uint256","value":"b"},"id":1142,"name":"Identifier","src":"8626:1:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1107,"type":"uint256","value":"mask"},"id":1143,"name":"Identifier","src":"8630:4:4"}],"id":1144,"name":"BinaryOperation","src":"8626:8:4"}],"id":1145,"name":"TupleExpression","src":"8625:10:4"}],"id":1146,"name":"BinaryOperation","src":"8612:23:4"}],"id":1147,"name":"VariableDeclarationStatement","src":"8597:38:4"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1137,"type":"uint256","value":"diff"},"id":1148,"name":"Identifier","src":"8657:4:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1149,"name":"Literal","src":"8665:1:4"}],"id":1150,"name":"BinaryOperation","src":"8657:9:4"},{"attributes":{"functionReturnParameters":1058},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"int256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(int256)","value":"int"},"id":1151,"name":"ElementaryTypeNameExpression","src":"8695:3:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1137,"type":"uint256","value":"diff"},"id":1152,"name":"Identifier","src":"8699:4:4"}],"id":1153,"name":"FunctionCall","src":"8695:9:4"}],"id":1154,"name":"Return","src":"8688:16:4"}],"id":1155,"name":"IfStatement","src":"8653:51:4"}],"id":1156,"name":"Block","src":"8341:378:4"}],"id":1157,"name":"IfStatement","src":"8329:390:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1076,"type":"uint256","value":"selfptr"},"id":1158,"name":"Identifier","src":"8732:7:4"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":1159,"name":"Literal","src":"8743:2:4"}],"id":1160,"name":"Assignment","src":"8732:13:4"}],"id":1161,"name":"ExpressionStatement","src":"8732:13:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1081,"type":"uint256","value":"otherptr"},"id":1162,"name":"Identifier","src":"8759:8:4"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":1163,"name":"Literal","src":"8771:2:4"}],"id":1164,"name":"Assignment","src":"8759:14:4"}],"id":1165,"name":"ExpressionStatement","src":"8759:14:4"}],"id":1166,"name":"Block","src":"8165:619:4"}],"id":1167,"name":"ForStatement","src":"8119:665:4"},{"attributes":{"functionReturnParameters":1058},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"int256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"int256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(int256)","value":"int"},"id":1168,"name":"ElementaryTypeNameExpression","src":"8800:3:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":708,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1052,"type":"struct strings.slice memory","value":"self"},"id":1169,"name":"Identifier","src":"8804:4:4"}],"id":1170,"name":"MemberAccess","src":"8804:9:4"}],"id":1171,"name":"FunctionCall","src":"8800:14:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"int256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(int256)","value":"int"},"id":1172,"name":"ElementaryTypeNameExpression","src":"8817:3:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":708,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1054,"type":"struct strings.slice memory","value":"other"},"id":1173,"name":"Identifier","src":"8821:5:4"}],"id":1174,"name":"MemberAccess","src":"8821:10:4"}],"id":1175,"name":"FunctionCall","src":"8817:15:4"}],"id":1176,"name":"BinaryOperation","src":"8800:32:4"}],"id":1177,"name":"Return","src":"8793:39:4"}],"id":1178,"name":"Block","src":"7932:907:4"}],"id":1179,"name":"FunctionDefinition","src":"7848:991:4"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"equals","payable":false,"scope":2399,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":1196,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":711,"type":"struct strings.slice"},"id":1180,"name":"UserDefinedTypeName","src":"9099:5:4"}],"id":1181,"name":"VariableDeclaration","src":"9099:17:4"},{"attributes":{"constant":false,"name":"other","scope":1196,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":711,"type":"struct strings.slice"},"id":1182,"name":"UserDefinedTypeName","src":"9118:5:4"}],"id":1183,"name":"VariableDeclaration","src":"9118:18:4"}],"id":1184,"name":"ParameterList","src":"9098:39:4"},{"children":[{"attributes":{"constant":false,"name":"","scope":1196,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":1185,"name":"ElementaryTypeName","src":"9161:4:4"}],"id":1186,"name":"VariableDeclaration","src":"9161:4:4"}],"id":1187,"name":"ParameterList","src":"9160:6:4"},{"children":[{"attributes":{"functionReturnParameters":1187},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"int256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$711_memory_ptr","typeString":"struct strings.slice memory"},{"typeIdentifier":"t_struct$_slice_$711_memory_ptr","typeString":"struct strings.slice memory"}],"overloadedDeclarations":[null],"referencedDeclaration":1179,"type":"function (struct strings.slice memory,struct strings.slice memory) pure returns (int256)","value":"compare"},"id":1188,"name":"Identifier","src":"9184:7:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1181,"type":"struct strings.slice memory","value":"self"},"id":1189,"name":"Identifier","src":"9192:4:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1183,"type":"struct strings.slice memory","value":"other"},"id":1190,"name":"Identifier","src":"9198:5:4"}],"id":1191,"name":"FunctionCall","src":"9184:20:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1192,"name":"Literal","src":"9208:1:4"}],"id":1193,"name":"BinaryOperation","src":"9184:25:4"}],"id":1194,"name":"Return","src":"9177:32:4"}],"id":1195,"name":"Block","src":"9167:49:4"}],"id":1196,"name":"FunctionDefinition","src":"9083:133:4"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"nextRune","payable":false,"scope":2399,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":1314,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":711,"type":"struct strings.slice"},"id":1197,"name":"UserDefinedTypeName","src":"9527:5:4"}],"id":1198,"name":"VariableDeclaration","src":"9527:17:4"},{"attributes":{"constant":false,"name":"rune","scope":1314,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":711,"type":"struct strings.slice"},"id":1199,"name":"UserDefinedTypeName","src":"9546:5:4"}],"id":1200,"name":"VariableDeclaration","src":"9546:17:4"}],"id":1201,"name":"ParameterList","src":"9526:38:4"},{"children":[{"attributes":{"constant":false,"name":"","scope":1314,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":711,"type":"struct strings.slice"},"id":1202,"name":"UserDefinedTypeName","src":"9588:5:4"}],"id":1203,"name":"VariableDeclaration","src":"9588:5:4"}],"id":1204,"name":"ParameterList","src":"9587:14:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_ptr","referencedDeclaration":710,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1200,"type":"struct strings.slice memory","value":"rune"},"id":1205,"name":"Identifier","src":"9612:4:4"}],"id":1207,"name":"MemberAccess","src":"9612:9:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":710,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1198,"type":"struct strings.slice memory","value":"self"},"id":1208,"name":"Identifier","src":"9624:4:4"}],"id":1209,"name":"MemberAccess","src":"9624:9:4"}],"id":1210,"name":"Assignment","src":"9612:21:4"}],"id":1211,"name":"ExpressionStatement","src":"9612:21:4"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":708,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1198,"type":"struct strings.slice memory","value":"self"},"id":1212,"name":"Identifier","src":"9648:4:4"}],"id":1213,"name":"MemberAccess","src":"9648:9:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1214,"name":"Literal","src":"9661:1:4"}],"id":1215,"name":"BinaryOperation","src":"9648:14:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":708,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1200,"type":"struct strings.slice memory","value":"rune"},"id":1216,"name":"Identifier","src":"9678:4:4"}],"id":1218,"name":"MemberAccess","src":"9678:9:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1219,"name":"Literal","src":"9690:1:4"}],"id":1220,"name":"Assignment","src":"9678:13:4"}],"id":1221,"name":"ExpressionStatement","src":"9678:13:4"},{"attributes":{"functionReturnParameters":1204},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1200,"type":"struct strings.slice memory","value":"rune"},"id":1222,"name":"Identifier","src":"9712:4:4"}],"id":1223,"name":"Return","src":"9705:11:4"}],"id":1224,"name":"Block","src":"9664:63:4"}],"id":1225,"name":"IfStatement","src":"9644:83:4"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"l","scope":1314,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1226,"name":"ElementaryTypeName","src":"9737:4:4"}],"id":1227,"name":"VariableDeclaration","src":"9737:6:4"}],"id":1228,"name":"VariableDeclarationStatement","src":"9737:6:4"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"b","scope":1314,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1229,"name":"ElementaryTypeName","src":"9753:4:4"}],"id":1230,"name":"VariableDeclaration","src":"9753:6:4"}],"id":1231,"name":"VariableDeclarationStatement","src":"9753:6:4"},{"attributes":{"externalReferences":[{"b":{"declaration":1230,"isOffset":false,"isSlot":false,"src":"9842:1:4","valueSize":1}},{"self":{"declaration":1198,"isOffset":false,"isSlot":false,"src":"9871:4:4","valueSize":1}}],"operations":"{\n b := and(mload(sub(mload(add(self, 32)), 31)), 0xFF)\n}"},"children":[],"id":1232,"name":"InlineAssembly","src":"9831:76:4"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1230,"type":"uint256","value":"b"},"id":1233,"name":"Identifier","src":"9909:1:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30783830","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 128","value":"0x80"},"id":1234,"name":"Literal","src":"9913:4:4"}],"id":1235,"name":"BinaryOperation","src":"9909:8:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1227,"type":"uint256","value":"l"},"id":1236,"name":"Identifier","src":"9933:1:4"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":1237,"name":"Literal","src":"9937:1:4"}],"id":1238,"name":"Assignment","src":"9933:5:4"}],"id":1239,"name":"ExpressionStatement","src":"9933:5:4"}],"id":1240,"name":"Block","src":"9919:30:4"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1230,"type":"uint256","value":"b"},"id":1241,"name":"Identifier","src":"9958:1:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30784530","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 224","value":"0xE0"},"id":1242,"name":"Literal","src":"9962:4:4"}],"id":1243,"name":"BinaryOperation","src":"9958:8:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1227,"type":"uint256","value":"l"},"id":1244,"name":"Identifier","src":"9982:1:4"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":1245,"name":"Literal","src":"9986:1:4"}],"id":1246,"name":"Assignment","src":"9982:5:4"}],"id":1247,"name":"ExpressionStatement","src":"9982:5:4"}],"id":1248,"name":"Block","src":"9968:30:4"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1230,"type":"uint256","value":"b"},"id":1249,"name":"Identifier","src":"10007:1:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30784630","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 240","value":"0xF0"},"id":1250,"name":"Literal","src":"10011:4:4"}],"id":1251,"name":"BinaryOperation","src":"10007:8:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1227,"type":"uint256","value":"l"},"id":1252,"name":"Identifier","src":"10031:1:4"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":1253,"name":"Literal","src":"10035:1:4"}],"id":1254,"name":"Assignment","src":"10031:5:4"}],"id":1255,"name":"ExpressionStatement","src":"10031:5:4"}],"id":1256,"name":"Block","src":"10017:30:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1227,"type":"uint256","value":"l"},"id":1257,"name":"Identifier","src":"10067:1:4"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":1258,"name":"Literal","src":"10071:1:4"}],"id":1259,"name":"Assignment","src":"10067:5:4"}],"id":1260,"name":"ExpressionStatement","src":"10067:5:4"}],"id":1261,"name":"Block","src":"10053:30:4"}],"id":1262,"name":"IfStatement","src":"10004:79:4"}],"id":1263,"name":"IfStatement","src":"9955:128:4"}],"id":1264,"name":"IfStatement","src":"9905:178:4"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1227,"type":"uint256","value":"l"},"id":1265,"name":"Identifier","src":"10139:1:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":708,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1198,"type":"struct strings.slice memory","value":"self"},"id":1266,"name":"Identifier","src":"10143:4:4"}],"id":1267,"name":"MemberAccess","src":"10143:9:4"}],"id":1268,"name":"BinaryOperation","src":"10139:13:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":708,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1200,"type":"struct strings.slice memory","value":"rune"},"id":1269,"name":"Identifier","src":"10168:4:4"}],"id":1271,"name":"MemberAccess","src":"10168:9:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":708,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1198,"type":"struct strings.slice memory","value":"self"},"id":1272,"name":"Identifier","src":"10180:4:4"}],"id":1273,"name":"MemberAccess","src":"10180:9:4"}],"id":1274,"name":"Assignment","src":"10168:21:4"}],"id":1275,"name":"ExpressionStatement","src":"10168:21:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_ptr","referencedDeclaration":710,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1198,"type":"struct strings.slice memory","value":"self"},"id":1276,"name":"Identifier","src":"10203:4:4"}],"id":1278,"name":"MemberAccess","src":"10203:9:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":708,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1198,"type":"struct strings.slice memory","value":"self"},"id":1279,"name":"Identifier","src":"10216:4:4"}],"id":1280,"name":"MemberAccess","src":"10216:9:4"}],"id":1281,"name":"Assignment","src":"10203:22:4"}],"id":1282,"name":"ExpressionStatement","src":"10203:22:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":708,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1198,"type":"struct strings.slice memory","value":"self"},"id":1283,"name":"Identifier","src":"10239:4:4"}],"id":1285,"name":"MemberAccess","src":"10239:9:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1286,"name":"Literal","src":"10251:1:4"}],"id":1287,"name":"Assignment","src":"10239:13:4"}],"id":1288,"name":"ExpressionStatement","src":"10239:13:4"},{"attributes":{"functionReturnParameters":1204},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1200,"type":"struct strings.slice memory","value":"rune"},"id":1289,"name":"Identifier","src":"10273:4:4"}],"id":1290,"name":"Return","src":"10266:11:4"}],"id":1291,"name":"Block","src":"10154:134:4"}],"id":1292,"name":"IfStatement","src":"10135:153:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_ptr","referencedDeclaration":710,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1198,"type":"struct strings.slice memory","value":"self"},"id":1293,"name":"Identifier","src":"10298:4:4"}],"id":1295,"name":"MemberAccess","src":"10298:9:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1227,"type":"uint256","value":"l"},"id":1296,"name":"Identifier","src":"10311:1:4"}],"id":1297,"name":"Assignment","src":"10298:14:4"}],"id":1298,"name":"ExpressionStatement","src":"10298:14:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":708,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1198,"type":"struct strings.slice memory","value":"self"},"id":1299,"name":"Identifier","src":"10322:4:4"}],"id":1301,"name":"MemberAccess","src":"10322:9:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1227,"type":"uint256","value":"l"},"id":1302,"name":"Identifier","src":"10335:1:4"}],"id":1303,"name":"Assignment","src":"10322:14:4"}],"id":1304,"name":"ExpressionStatement","src":"10322:14:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":708,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1200,"type":"struct strings.slice memory","value":"rune"},"id":1305,"name":"Identifier","src":"10346:4:4"}],"id":1307,"name":"MemberAccess","src":"10346:9:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1227,"type":"uint256","value":"l"},"id":1308,"name":"Identifier","src":"10358:1:4"}],"id":1309,"name":"Assignment","src":"10346:13:4"}],"id":1310,"name":"ExpressionStatement","src":"10346:13:4"},{"attributes":{"functionReturnParameters":1204},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1200,"type":"struct strings.slice memory","value":"rune"},"id":1311,"name":"Identifier","src":"10376:4:4"}],"id":1312,"name":"Return","src":"10369:11:4"}],"id":1313,"name":"Block","src":"9602:785:4"}],"id":1314,"name":"FunctionDefinition","src":"9509:878:4"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"nextRune","payable":false,"scope":2399,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":1327,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":711,"type":"struct strings.slice"},"id":1315,"name":"UserDefinedTypeName","src":"10645:5:4"}],"id":1316,"name":"VariableDeclaration","src":"10645:17:4"}],"id":1317,"name":"ParameterList","src":"10644:19:4"},{"children":[{"attributes":{"constant":false,"name":"ret","scope":1327,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":711,"type":"struct strings.slice"},"id":1318,"name":"UserDefinedTypeName","src":"10687:5:4"}],"id":1319,"name":"VariableDeclaration","src":"10687:16:4"}],"id":1320,"name":"ParameterList","src":"10686:18:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"struct strings.slice memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$711_memory_ptr","typeString":"struct strings.slice memory"},{"typeIdentifier":"t_struct$_slice_$711_memory_ptr","typeString":"struct strings.slice memory"}],"overloadedDeclarations":[1314,1327],"referencedDeclaration":1314,"type":"function (struct strings.slice memory,struct strings.slice memory) pure returns (struct strings.slice memory)","value":"nextRune"},"id":1321,"name":"Identifier","src":"10715:8:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1316,"type":"struct strings.slice memory","value":"self"},"id":1322,"name":"Identifier","src":"10724:4:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1319,"type":"struct strings.slice memory","value":"ret"},"id":1323,"name":"Identifier","src":"10730:3:4"}],"id":1324,"name":"FunctionCall","src":"10715:19:4"}],"id":1325,"name":"ExpressionStatement","src":"10715:19:4"}],"id":1326,"name":"Block","src":"10705:36:4"}],"id":1327,"name":"FunctionDefinition","src":"10627:114:4"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"ord","payable":false,"scope":2399,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":1474,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":711,"type":"struct strings.slice"},"id":1328,"name":"UserDefinedTypeName","src":"10950:5:4"}],"id":1329,"name":"VariableDeclaration","src":"10950:17:4"}],"id":1330,"name":"ParameterList","src":"10949:19:4"},{"children":[{"attributes":{"constant":false,"name":"ret","scope":1474,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1331,"name":"ElementaryTypeName","src":"10992:4:4"}],"id":1332,"name":"VariableDeclaration","src":"10992:8:4"}],"id":1333,"name":"ParameterList","src":"10991:10:4"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":708,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1329,"type":"struct strings.slice memory","value":"self"},"id":1334,"name":"Identifier","src":"11016:4:4"}],"id":1335,"name":"MemberAccess","src":"11016:9:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1336,"name":"Literal","src":"11029:1:4"}],"id":1337,"name":"BinaryOperation","src":"11016:14:4"},{"children":[{"attributes":{"functionReturnParameters":1333},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1338,"name":"Literal","src":"11053:1:4"}],"id":1339,"name":"Return","src":"11046:8:4"}],"id":1340,"name":"Block","src":"11032:33:4"}],"id":1341,"name":"IfStatement","src":"11012:53:4"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"word","scope":1474,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1342,"name":"ElementaryTypeName","src":"11075:4:4"}],"id":1343,"name":"VariableDeclaration","src":"11075:9:4"}],"id":1344,"name":"VariableDeclarationStatement","src":"11075:9:4"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"length","scope":1474,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1345,"name":"ElementaryTypeName","src":"11094:4:4"}],"id":1346,"name":"VariableDeclaration","src":"11094:11:4"}],"id":1347,"name":"VariableDeclarationStatement","src":"11094:11:4"},{"attributes":{"assignments":[1349]},"children":[{"attributes":{"constant":false,"name":"divisor","scope":1474,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1348,"name":"ElementaryTypeName","src":"11115:4:4"}],"id":1349,"name":"VariableDeclaration","src":"11115:12:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_452312848583266388373324160190187140051835877600158453279131187530910662656_by_1","typeString":"int_const 4523...(67 digits omitted)...2656"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"**","type":"int_const 4523...(67 digits omitted)...2656"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":1350,"name":"Literal","src":"11130:1:4"},{"attributes":{"argumentTypes":null,"hexvalue":"323438","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 248","value":"248"},"id":1351,"name":"Literal","src":"11135:3:4"}],"id":1352,"name":"BinaryOperation","src":"11130:8:4"}],"id":1353,"name":"VariableDeclarationStatement","src":"11115:23:4"},{"attributes":{"externalReferences":[{"word":{"declaration":1343,"isOffset":false,"isSlot":false,"src":"11204:4:4","valueSize":1}},{"self":{"declaration":1329,"isOffset":false,"isSlot":false,"src":"11227:4:4","valueSize":1}}],"operations":"{\n word := mload(mload(add(self, 32)))\n}"},"children":[],"id":1354,"name":"InlineAssembly","src":"11193:60:4"},{"attributes":{"assignments":[1356]},"children":[{"attributes":{"constant":false,"name":"b","scope":1474,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1355,"name":"ElementaryTypeName","src":"11249:4:4"}],"id":1356,"name":"VariableDeclaration","src":"11249:6:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"/","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1343,"type":"uint256","value":"word"},"id":1357,"name":"Identifier","src":"11258:4:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1349,"type":"uint256","value":"divisor"},"id":1358,"name":"Identifier","src":"11265:7:4"}],"id":1359,"name":"BinaryOperation","src":"11258:14:4"}],"id":1360,"name":"VariableDeclarationStatement","src":"11249:23:4"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1356,"type":"uint256","value":"b"},"id":1361,"name":"Identifier","src":"11286:1:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30783830","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 128","value":"0x80"},"id":1362,"name":"Literal","src":"11290:4:4"}],"id":1363,"name":"BinaryOperation","src":"11286:8:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1332,"type":"uint256","value":"ret"},"id":1364,"name":"Identifier","src":"11310:3:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1356,"type":"uint256","value":"b"},"id":1365,"name":"Identifier","src":"11316:1:4"}],"id":1366,"name":"Assignment","src":"11310:7:4"}],"id":1367,"name":"ExpressionStatement","src":"11310:7:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1346,"type":"uint256","value":"length"},"id":1368,"name":"Identifier","src":"11331:6:4"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":1369,"name":"Literal","src":"11340:1:4"}],"id":1370,"name":"Assignment","src":"11331:10:4"}],"id":1371,"name":"ExpressionStatement","src":"11331:10:4"}],"id":1372,"name":"Block","src":"11296:56:4"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1356,"type":"uint256","value":"b"},"id":1373,"name":"Identifier","src":"11361:1:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30784530","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 224","value":"0xE0"},"id":1374,"name":"Literal","src":"11365:4:4"}],"id":1375,"name":"BinaryOperation","src":"11361:8:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1332,"type":"uint256","value":"ret"},"id":1376,"name":"Identifier","src":"11385:3:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1356,"type":"uint256","value":"b"},"id":1377,"name":"Identifier","src":"11391:1:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30783146","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 31","value":"0x1F"},"id":1378,"name":"Literal","src":"11395:4:4"}],"id":1379,"name":"BinaryOperation","src":"11391:8:4"}],"id":1380,"name":"Assignment","src":"11385:14:4"}],"id":1381,"name":"ExpressionStatement","src":"11385:14:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1346,"type":"uint256","value":"length"},"id":1382,"name":"Identifier","src":"11413:6:4"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":1383,"name":"Literal","src":"11422:1:4"}],"id":1384,"name":"Assignment","src":"11413:10:4"}],"id":1385,"name":"ExpressionStatement","src":"11413:10:4"}],"id":1386,"name":"Block","src":"11371:63:4"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1356,"type":"uint256","value":"b"},"id":1387,"name":"Identifier","src":"11443:1:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30784630","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 240","value":"0xF0"},"id":1388,"name":"Literal","src":"11447:4:4"}],"id":1389,"name":"BinaryOperation","src":"11443:8:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1332,"type":"uint256","value":"ret"},"id":1390,"name":"Identifier","src":"11467:3:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1356,"type":"uint256","value":"b"},"id":1391,"name":"Identifier","src":"11473:1:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30783046","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 15","value":"0x0F"},"id":1392,"name":"Literal","src":"11477:4:4"}],"id":1393,"name":"BinaryOperation","src":"11473:8:4"}],"id":1394,"name":"Assignment","src":"11467:14:4"}],"id":1395,"name":"ExpressionStatement","src":"11467:14:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1346,"type":"uint256","value":"length"},"id":1396,"name":"Identifier","src":"11495:6:4"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":1397,"name":"Literal","src":"11504:1:4"}],"id":1398,"name":"Assignment","src":"11495:10:4"}],"id":1399,"name":"ExpressionStatement","src":"11495:10:4"}],"id":1400,"name":"Block","src":"11453:63:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1332,"type":"uint256","value":"ret"},"id":1401,"name":"Identifier","src":"11536:3:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1356,"type":"uint256","value":"b"},"id":1402,"name":"Identifier","src":"11542:1:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30783037","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 7","value":"0x07"},"id":1403,"name":"Literal","src":"11546:4:4"}],"id":1404,"name":"BinaryOperation","src":"11542:8:4"}],"id":1405,"name":"Assignment","src":"11536:14:4"}],"id":1406,"name":"ExpressionStatement","src":"11536:14:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1346,"type":"uint256","value":"length"},"id":1407,"name":"Identifier","src":"11564:6:4"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":1408,"name":"Literal","src":"11573:1:4"}],"id":1409,"name":"Assignment","src":"11564:10:4"}],"id":1410,"name":"ExpressionStatement","src":"11564:10:4"}],"id":1411,"name":"Block","src":"11522:63:4"}],"id":1412,"name":"IfStatement","src":"11440:145:4"}],"id":1413,"name":"IfStatement","src":"11358:227:4"}],"id":1414,"name":"IfStatement","src":"11282:303:4"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1346,"type":"uint256","value":"length"},"id":1415,"name":"Identifier","src":"11641:6:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":708,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1329,"type":"struct strings.slice memory","value":"self"},"id":1416,"name":"Identifier","src":"11650:4:4"}],"id":1417,"name":"MemberAccess","src":"11650:9:4"}],"id":1418,"name":"BinaryOperation","src":"11641:18:4"},{"children":[{"attributes":{"functionReturnParameters":1333},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1419,"name":"Literal","src":"11682:1:4"}],"id":1420,"name":"Return","src":"11675:8:4"}],"id":1421,"name":"Block","src":"11661:33:4"}],"id":1422,"name":"IfStatement","src":"11637:57:4"},{"children":[{"attributes":{"assignments":[1424]},"children":[{"attributes":{"constant":false,"name":"i","scope":1474,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1423,"name":"ElementaryTypeName","src":"11709:4:4"}],"id":1424,"name":"VariableDeclaration","src":"11709:6:4"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":1425,"name":"Literal","src":"11718:1:4"}],"id":1426,"name":"VariableDeclarationStatement","src":"11709:10:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1424,"type":"uint256","value":"i"},"id":1427,"name":"Identifier","src":"11721:1:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1346,"type":"uint256","value":"length"},"id":1428,"name":"Identifier","src":"11725:6:4"}],"id":1429,"name":"BinaryOperation","src":"11721:10:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1424,"type":"uint256","value":"i"},"id":1430,"name":"Identifier","src":"11733:1:4"}],"id":1431,"name":"UnaryOperation","src":"11733:3:4"}],"id":1432,"name":"ExpressionStatement","src":"11733:3:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1349,"type":"uint256","value":"divisor"},"id":1433,"name":"Identifier","src":"11752:7:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"/","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1349,"type":"uint256","value":"divisor"},"id":1434,"name":"Identifier","src":"11762:7:4"},{"attributes":{"argumentTypes":null,"hexvalue":"323536","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 256","value":"256"},"id":1435,"name":"Literal","src":"11772:3:4"}],"id":1436,"name":"BinaryOperation","src":"11762:13:4"}],"id":1437,"name":"Assignment","src":"11752:23:4"}],"id":1438,"name":"ExpressionStatement","src":"11752:23:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1356,"type":"uint256","value":"b"},"id":1439,"name":"Identifier","src":"11789:1:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"/","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1343,"type":"uint256","value":"word"},"id":1440,"name":"Identifier","src":"11794:4:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1349,"type":"uint256","value":"divisor"},"id":1441,"name":"Identifier","src":"11801:7:4"}],"id":1442,"name":"BinaryOperation","src":"11794:14:4"}],"id":1443,"name":"TupleExpression","src":"11793:16:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30784646","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 255","value":"0xFF"},"id":1444,"name":"Literal","src":"11812:4:4"}],"id":1445,"name":"BinaryOperation","src":"11793:23:4"}],"id":1446,"name":"Assignment","src":"11789:27:4"}],"id":1447,"name":"ExpressionStatement","src":"11789:27:4"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1356,"type":"uint256","value":"b"},"id":1448,"name":"Identifier","src":"11834:1:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30784330","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 192","value":"0xC0"},"id":1449,"name":"Literal","src":"11838:4:4"}],"id":1450,"name":"BinaryOperation","src":"11834:8:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30783830","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 128","value":"0x80"},"id":1451,"name":"Literal","src":"11846:4:4"}],"id":1452,"name":"BinaryOperation","src":"11834:16:4"},{"children":[{"attributes":{"functionReturnParameters":1333},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1453,"name":"Literal","src":"11919:1:4"}],"id":1454,"name":"Return","src":"11912:8:4"}],"id":1455,"name":"Block","src":"11852:83:4"}],"id":1456,"name":"IfStatement","src":"11830:105:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1332,"type":"uint256","value":"ret"},"id":1457,"name":"Identifier","src":"11948:3:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"|","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1332,"type":"uint256","value":"ret"},"id":1458,"name":"Identifier","src":"11955:3:4"},{"attributes":{"argumentTypes":null,"hexvalue":"3634","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 64","value":"64"},"id":1459,"name":"Literal","src":"11961:2:4"}],"id":1460,"name":"BinaryOperation","src":"11955:8:4"}],"id":1461,"name":"TupleExpression","src":"11954:10:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1356,"type":"uint256","value":"b"},"id":1462,"name":"Identifier","src":"11968:1:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30783346","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 63","value":"0x3F"},"id":1463,"name":"Literal","src":"11972:4:4"}],"id":1464,"name":"BinaryOperation","src":"11968:8:4"}],"id":1465,"name":"TupleExpression","src":"11967:10:4"}],"id":1466,"name":"BinaryOperation","src":"11954:23:4"}],"id":1467,"name":"Assignment","src":"11948:29:4"}],"id":1468,"name":"ExpressionStatement","src":"11948:29:4"}],"id":1469,"name":"Block","src":"11738:250:4"}],"id":1470,"name":"ForStatement","src":"11704:284:4"},{"attributes":{"functionReturnParameters":1333},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1332,"type":"uint256","value":"ret"},"id":1471,"name":"Identifier","src":"12005:3:4"}],"id":1472,"name":"Return","src":"11998:10:4"}],"id":1473,"name":"Block","src":"11002:1013:4"}],"id":1474,"name":"FunctionDefinition","src":"10937:1078:4"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"keccak","payable":false,"scope":2399,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":1483,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":711,"type":"struct strings.slice"},"id":1475,"name":"UserDefinedTypeName","src":"12182:5:4"}],"id":1476,"name":"VariableDeclaration","src":"12182:17:4"}],"id":1477,"name":"ParameterList","src":"12181:19:4"},{"children":[{"attributes":{"constant":false,"name":"ret","scope":1483,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":1478,"name":"ElementaryTypeName","src":"12224:7:4"}],"id":1479,"name":"VariableDeclaration","src":"12224:11:4"}],"id":1480,"name":"ParameterList","src":"12223:13:4"},{"children":[{"attributes":{"externalReferences":[{"ret":{"declaration":1479,"isOffset":false,"isSlot":false,"src":"12270:3:4","valueSize":1}},{"self":{"declaration":1476,"isOffset":false,"isSlot":false,"src":"12315:4:4","valueSize":1}},{"self":{"declaration":1476,"isOffset":false,"isSlot":false,"src":"12297:4:4","valueSize":1}}],"operations":"{\n ret := keccak256(mload(add(self, 32)), mload(self))\n}"},"children":[],"id":1481,"name":"InlineAssembly","src":"12247:90:4"}],"id":1482,"name":"Block","src":"12237:100:4"}],"id":1483,"name":"FunctionDefinition","src":"12166:171:4"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"startsWith","payable":false,"scope":2399,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":1517,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":711,"type":"struct strings.slice"},"id":1484,"name":"UserDefinedTypeName","src":"12606:5:4"}],"id":1485,"name":"VariableDeclaration","src":"12606:17:4"},{"attributes":{"constant":false,"name":"needle","scope":1517,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":711,"type":"struct strings.slice"},"id":1486,"name":"UserDefinedTypeName","src":"12625:5:4"}],"id":1487,"name":"VariableDeclaration","src":"12625:19:4"}],"id":1488,"name":"ParameterList","src":"12605:40:4"},{"children":[{"attributes":{"constant":false,"name":"","scope":1517,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":1489,"name":"ElementaryTypeName","src":"12669:4:4"}],"id":1490,"name":"VariableDeclaration","src":"12669:4:4"}],"id":1491,"name":"ParameterList","src":"12668:6:4"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":708,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1485,"type":"struct strings.slice memory","value":"self"},"id":1492,"name":"Identifier","src":"12689:4:4"}],"id":1493,"name":"MemberAccess","src":"12689:9:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":708,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1487,"type":"struct strings.slice memory","value":"needle"},"id":1494,"name":"Identifier","src":"12701:6:4"}],"id":1495,"name":"MemberAccess","src":"12701:11:4"}],"id":1496,"name":"BinaryOperation","src":"12689:23:4"},{"children":[{"attributes":{"functionReturnParameters":1491},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"66616c7365","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"false"},"id":1497,"name":"Literal","src":"12735:5:4"}],"id":1498,"name":"Return","src":"12728:12:4"}],"id":1499,"name":"Block","src":"12714:37:4"}],"id":1500,"name":"IfStatement","src":"12685:66:4"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":710,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1485,"type":"struct strings.slice memory","value":"self"},"id":1501,"name":"Identifier","src":"12765:4:4"}],"id":1502,"name":"MemberAccess","src":"12765:9:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":710,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1487,"type":"struct strings.slice memory","value":"needle"},"id":1503,"name":"Identifier","src":"12778:6:4"}],"id":1504,"name":"MemberAccess","src":"12778:11:4"}],"id":1505,"name":"BinaryOperation","src":"12765:24:4"},{"children":[{"attributes":{"functionReturnParameters":1491},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":1506,"name":"Literal","src":"12812:4:4"}],"id":1507,"name":"Return","src":"12805:11:4"}],"id":1508,"name":"Block","src":"12791:36:4"}],"id":1509,"name":"IfStatement","src":"12761:66:4"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"equal","scope":1517,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":1510,"name":"ElementaryTypeName","src":"12837:4:4"}],"id":1511,"name":"VariableDeclaration","src":"12837:10:4"}],"id":1512,"name":"VariableDeclarationStatement","src":"12837:10:4"},{"attributes":{"externalReferences":[{"needle":{"declaration":1487,"isOffset":false,"isSlot":false,"src":"12900:6:4","valueSize":1}},{"equal":{"declaration":1511,"isOffset":false,"isSlot":false,"src":"13024:5:4","valueSize":1}},{"self":{"declaration":1485,"isOffset":false,"isSlot":false,"src":"12945:4:4","valueSize":1}},{"needle":{"declaration":1487,"isOffset":false,"isSlot":false,"src":"12997:6:4","valueSize":1}}],"operations":"{\n let length := mload(needle)\n let selfptr := mload(add(self, 0x20))\n let needleptr := mload(add(needle, 0x20))\n equal := eq(keccak256(selfptr, length), keccak256(needleptr, length))\n}"},"children":[],"id":1513,"name":"InlineAssembly","src":"12857:261:4"},{"attributes":{"functionReturnParameters":1491},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1511,"type":"bool","value":"equal"},"id":1514,"name":"Identifier","src":"13119:5:4"}],"id":1515,"name":"Return","src":"13112:12:4"}],"id":1516,"name":"Block","src":"12675:456:4"}],"id":1517,"name":"FunctionDefinition","src":"12586:545:4"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"beyond","payable":false,"scope":2399,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":1567,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":711,"type":"struct strings.slice"},"id":1518,"name":"UserDefinedTypeName","src":"13419:5:4"}],"id":1519,"name":"VariableDeclaration","src":"13419:17:4"},{"attributes":{"constant":false,"name":"needle","scope":1567,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":711,"type":"struct strings.slice"},"id":1520,"name":"UserDefinedTypeName","src":"13438:5:4"}],"id":1521,"name":"VariableDeclaration","src":"13438:19:4"}],"id":1522,"name":"ParameterList","src":"13418:40:4"},{"children":[{"attributes":{"constant":false,"name":"","scope":1567,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":711,"type":"struct strings.slice"},"id":1523,"name":"UserDefinedTypeName","src":"13482:5:4"}],"id":1524,"name":"VariableDeclaration","src":"13482:5:4"}],"id":1525,"name":"ParameterList","src":"13481:14:4"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":708,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1519,"type":"struct strings.slice memory","value":"self"},"id":1526,"name":"Identifier","src":"13510:4:4"}],"id":1527,"name":"MemberAccess","src":"13510:9:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":708,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1521,"type":"struct strings.slice memory","value":"needle"},"id":1528,"name":"Identifier","src":"13522:6:4"}],"id":1529,"name":"MemberAccess","src":"13522:11:4"}],"id":1530,"name":"BinaryOperation","src":"13510:23:4"},{"children":[{"attributes":{"functionReturnParameters":1525},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1519,"type":"struct strings.slice memory","value":"self"},"id":1531,"name":"Identifier","src":"13556:4:4"}],"id":1532,"name":"Return","src":"13549:11:4"}],"id":1533,"name":"Block","src":"13535:36:4"}],"id":1534,"name":"IfStatement","src":"13506:65:4"},{"attributes":{"assignments":[1536]},"children":[{"attributes":{"constant":false,"name":"equal","scope":1567,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":1535,"name":"ElementaryTypeName","src":"13581:4:4"}],"id":1536,"name":"VariableDeclaration","src":"13581:10:4"},{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":1537,"name":"Literal","src":"13594:4:4"}],"id":1538,"name":"VariableDeclarationStatement","src":"13581:17:4"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":710,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1519,"type":"struct strings.slice memory","value":"self"},"id":1539,"name":"Identifier","src":"13612:4:4"}],"id":1540,"name":"MemberAccess","src":"13612:9:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":710,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1521,"type":"struct strings.slice memory","value":"needle"},"id":1541,"name":"Identifier","src":"13625:6:4"}],"id":1542,"name":"MemberAccess","src":"13625:11:4"}],"id":1543,"name":"BinaryOperation","src":"13612:24:4"},{"children":[{"attributes":{"externalReferences":[{"needle":{"declaration":1521,"isOffset":false,"isSlot":false,"src":"13699:6:4","valueSize":1}},{"needle":{"declaration":1521,"isOffset":false,"isSlot":false,"src":"13804:6:4","valueSize":1}},{"self":{"declaration":1519,"isOffset":false,"isSlot":false,"src":"13748:4:4","valueSize":1}},{"equal":{"declaration":1536,"isOffset":false,"isSlot":false,"src":"13835:5:4","valueSize":1}}],"operations":"{\n let length := mload(needle)\n let selfptr := mload(add(self, 0x20))\n let needleptr := mload(add(needle, 0x20))\n equal := eq(keccak256(selfptr, length), keccak256(needleptr, length))\n}"},"children":[],"id":1544,"name":"InlineAssembly","src":"13652:276:4"}],"id":1545,"name":"Block","src":"13638:290:4"}],"id":1546,"name":"IfStatement","src":"13608:320:4"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1536,"type":"bool","value":"equal"},"id":1547,"name":"Identifier","src":"13942:5:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":708,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1519,"type":"struct strings.slice memory","value":"self"},"id":1548,"name":"Identifier","src":"13963:4:4"}],"id":1550,"name":"MemberAccess","src":"13963:9:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":708,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1521,"type":"struct strings.slice memory","value":"needle"},"id":1551,"name":"Identifier","src":"13976:6:4"}],"id":1552,"name":"MemberAccess","src":"13976:11:4"}],"id":1553,"name":"Assignment","src":"13963:24:4"}],"id":1554,"name":"ExpressionStatement","src":"13963:24:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_ptr","referencedDeclaration":710,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1519,"type":"struct strings.slice memory","value":"self"},"id":1555,"name":"Identifier","src":"14001:4:4"}],"id":1557,"name":"MemberAccess","src":"14001:9:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":708,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1521,"type":"struct strings.slice memory","value":"needle"},"id":1558,"name":"Identifier","src":"14014:6:4"}],"id":1559,"name":"MemberAccess","src":"14014:11:4"}],"id":1560,"name":"Assignment","src":"14001:24:4"}],"id":1561,"name":"ExpressionStatement","src":"14001:24:4"}],"id":1562,"name":"Block","src":"13949:87:4"}],"id":1563,"name":"IfStatement","src":"13938:98:4"},{"attributes":{"functionReturnParameters":1525},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1519,"type":"struct strings.slice memory","value":"self"},"id":1564,"name":"Identifier","src":"14053:4:4"}],"id":1565,"name":"Return","src":"14046:11:4"}],"id":1566,"name":"Block","src":"13496:568:4"}],"id":1567,"name":"FunctionDefinition","src":"13403:661:4"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"endsWith","payable":false,"scope":2399,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":1611,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":711,"type":"struct strings.slice"},"id":1568,"name":"UserDefinedTypeName","src":"14332:5:4"}],"id":1569,"name":"VariableDeclaration","src":"14332:17:4"},{"attributes":{"constant":false,"name":"needle","scope":1611,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":711,"type":"struct strings.slice"},"id":1570,"name":"UserDefinedTypeName","src":"14351:5:4"}],"id":1571,"name":"VariableDeclaration","src":"14351:19:4"}],"id":1572,"name":"ParameterList","src":"14331:40:4"},{"children":[{"attributes":{"constant":false,"name":"","scope":1611,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":1573,"name":"ElementaryTypeName","src":"14395:4:4"}],"id":1574,"name":"VariableDeclaration","src":"14395:4:4"}],"id":1575,"name":"ParameterList","src":"14394:6:4"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":708,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1569,"type":"struct strings.slice memory","value":"self"},"id":1576,"name":"Identifier","src":"14415:4:4"}],"id":1577,"name":"MemberAccess","src":"14415:9:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":708,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1571,"type":"struct strings.slice memory","value":"needle"},"id":1578,"name":"Identifier","src":"14427:6:4"}],"id":1579,"name":"MemberAccess","src":"14427:11:4"}],"id":1580,"name":"BinaryOperation","src":"14415:23:4"},{"children":[{"attributes":{"functionReturnParameters":1575},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"66616c7365","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"false"},"id":1581,"name":"Literal","src":"14461:5:4"}],"id":1582,"name":"Return","src":"14454:12:4"}],"id":1583,"name":"Block","src":"14440:37:4"}],"id":1584,"name":"IfStatement","src":"14411:66:4"},{"attributes":{"assignments":[1586]},"children":[{"attributes":{"constant":false,"name":"selfptr","scope":1611,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1585,"name":"ElementaryTypeName","src":"14487:4:4"}],"id":1586,"name":"VariableDeclaration","src":"14487:12:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":710,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1569,"type":"struct strings.slice memory","value":"self"},"id":1587,"name":"Identifier","src":"14502:4:4"}],"id":1588,"name":"MemberAccess","src":"14502:9:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":708,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1569,"type":"struct strings.slice memory","value":"self"},"id":1589,"name":"Identifier","src":"14514:4:4"}],"id":1590,"name":"MemberAccess","src":"14514:9:4"}],"id":1591,"name":"BinaryOperation","src":"14502:21:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":708,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1571,"type":"struct strings.slice memory","value":"needle"},"id":1592,"name":"Identifier","src":"14526:6:4"}],"id":1593,"name":"MemberAccess","src":"14526:11:4"}],"id":1594,"name":"BinaryOperation","src":"14502:35:4"}],"id":1595,"name":"VariableDeclarationStatement","src":"14487:50:4"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1586,"type":"uint256","value":"selfptr"},"id":1596,"name":"Identifier","src":"14552:7:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":710,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1571,"type":"struct strings.slice memory","value":"needle"},"id":1597,"name":"Identifier","src":"14563:6:4"}],"id":1598,"name":"MemberAccess","src":"14563:11:4"}],"id":1599,"name":"BinaryOperation","src":"14552:22:4"},{"children":[{"attributes":{"functionReturnParameters":1575},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":1600,"name":"Literal","src":"14597:4:4"}],"id":1601,"name":"Return","src":"14590:11:4"}],"id":1602,"name":"Block","src":"14576:36:4"}],"id":1603,"name":"IfStatement","src":"14548:64:4"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"equal","scope":1611,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":1604,"name":"ElementaryTypeName","src":"14622:4:4"}],"id":1605,"name":"VariableDeclaration","src":"14622:10:4"}],"id":1606,"name":"VariableDeclarationStatement","src":"14622:10:4"},{"attributes":{"externalReferences":[{"needle":{"declaration":1571,"isOffset":false,"isSlot":false,"src":"14685:6:4","valueSize":1}},{"equal":{"declaration":1605,"isOffset":false,"isSlot":false,"src":"14759:5:4","valueSize":1}},{"needle":{"declaration":1571,"isOffset":false,"isSlot":false,"src":"14732:6:4","valueSize":1}},{"selfptr":{"declaration":1586,"isOffset":false,"isSlot":false,"src":"14781:7:4","valueSize":1}}],"operations":"{\n let length := mload(needle)\n let needleptr := mload(add(needle, 0x20))\n equal := eq(keccak256(selfptr, length), keccak256(needleptr, length))\n}"},"children":[],"id":1607,"name":"InlineAssembly","src":"14642:212:4"},{"attributes":{"functionReturnParameters":1575},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1605,"type":"bool","value":"equal"},"id":1608,"name":"Identifier","src":"14855:5:4"}],"id":1609,"name":"Return","src":"14848:12:4"}],"id":1610,"name":"Block","src":"14401:466:4"}],"id":1611,"name":"FunctionDefinition","src":"14314:553:4"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"until","payable":false,"scope":2399,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":1664,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":711,"type":"struct strings.slice"},"id":1612,"name":"UserDefinedTypeName","src":"15146:5:4"}],"id":1613,"name":"VariableDeclaration","src":"15146:17:4"},{"attributes":{"constant":false,"name":"needle","scope":1664,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":711,"type":"struct strings.slice"},"id":1614,"name":"UserDefinedTypeName","src":"15165:5:4"}],"id":1615,"name":"VariableDeclaration","src":"15165:19:4"}],"id":1616,"name":"ParameterList","src":"15145:40:4"},{"children":[{"attributes":{"constant":false,"name":"","scope":1664,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":711,"type":"struct strings.slice"},"id":1617,"name":"UserDefinedTypeName","src":"15209:5:4"}],"id":1618,"name":"VariableDeclaration","src":"15209:5:4"}],"id":1619,"name":"ParameterList","src":"15208:14:4"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":708,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1613,"type":"struct strings.slice memory","value":"self"},"id":1620,"name":"Identifier","src":"15237:4:4"}],"id":1621,"name":"MemberAccess","src":"15237:9:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":708,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1615,"type":"struct strings.slice memory","value":"needle"},"id":1622,"name":"Identifier","src":"15249:6:4"}],"id":1623,"name":"MemberAccess","src":"15249:11:4"}],"id":1624,"name":"BinaryOperation","src":"15237:23:4"},{"children":[{"attributes":{"functionReturnParameters":1619},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1613,"type":"struct strings.slice memory","value":"self"},"id":1625,"name":"Identifier","src":"15283:4:4"}],"id":1626,"name":"Return","src":"15276:11:4"}],"id":1627,"name":"Block","src":"15262:36:4"}],"id":1628,"name":"IfStatement","src":"15233:65:4"},{"attributes":{"assignments":[1630]},"children":[{"attributes":{"constant":false,"name":"selfptr","scope":1664,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1629,"name":"ElementaryTypeName","src":"15308:4:4"}],"id":1630,"name":"VariableDeclaration","src":"15308:12:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":710,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1613,"type":"struct strings.slice memory","value":"self"},"id":1631,"name":"Identifier","src":"15323:4:4"}],"id":1632,"name":"MemberAccess","src":"15323:9:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":708,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1613,"type":"struct strings.slice memory","value":"self"},"id":1633,"name":"Identifier","src":"15335:4:4"}],"id":1634,"name":"MemberAccess","src":"15335:9:4"}],"id":1635,"name":"BinaryOperation","src":"15323:21:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":708,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1615,"type":"struct strings.slice memory","value":"needle"},"id":1636,"name":"Identifier","src":"15347:6:4"}],"id":1637,"name":"MemberAccess","src":"15347:11:4"}],"id":1638,"name":"BinaryOperation","src":"15323:35:4"}],"id":1639,"name":"VariableDeclarationStatement","src":"15308:50:4"},{"attributes":{"assignments":[1641]},"children":[{"attributes":{"constant":false,"name":"equal","scope":1664,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":1640,"name":"ElementaryTypeName","src":"15368:4:4"}],"id":1641,"name":"VariableDeclaration","src":"15368:10:4"},{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":1642,"name":"Literal","src":"15381:4:4"}],"id":1643,"name":"VariableDeclarationStatement","src":"15368:17:4"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1630,"type":"uint256","value":"selfptr"},"id":1644,"name":"Identifier","src":"15399:7:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":710,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1615,"type":"struct strings.slice memory","value":"needle"},"id":1645,"name":"Identifier","src":"15410:6:4"}],"id":1646,"name":"MemberAccess","src":"15410:11:4"}],"id":1647,"name":"BinaryOperation","src":"15399:22:4"},{"children":[{"attributes":{"externalReferences":[{"needle":{"declaration":1615,"isOffset":false,"isSlot":false,"src":"15484:6:4","valueSize":1}},{"equal":{"declaration":1641,"isOffset":false,"isSlot":false,"src":"15566:5:4","valueSize":1}},{"needle":{"declaration":1615,"isOffset":false,"isSlot":false,"src":"15535:6:4","valueSize":1}},{"selfptr":{"declaration":1630,"isOffset":false,"isSlot":false,"src":"15588:7:4","valueSize":1}}],"operations":"{\n let length := mload(needle)\n let needleptr := mload(add(needle, 0x20))\n equal := eq(keccak256(selfptr, length), keccak256(needleptr, length))\n}"},"children":[],"id":1648,"name":"InlineAssembly","src":"15437:222:4"}],"id":1649,"name":"Block","src":"15423:236:4"}],"id":1650,"name":"IfStatement","src":"15395:264:4"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1641,"type":"bool","value":"equal"},"id":1651,"name":"Identifier","src":"15673:5:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":708,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1613,"type":"struct strings.slice memory","value":"self"},"id":1652,"name":"Identifier","src":"15694:4:4"}],"id":1654,"name":"MemberAccess","src":"15694:9:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":708,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1615,"type":"struct strings.slice memory","value":"needle"},"id":1655,"name":"Identifier","src":"15707:6:4"}],"id":1656,"name":"MemberAccess","src":"15707:11:4"}],"id":1657,"name":"Assignment","src":"15694:24:4"}],"id":1658,"name":"ExpressionStatement","src":"15694:24:4"}],"id":1659,"name":"Block","src":"15680:49:4"}],"id":1660,"name":"IfStatement","src":"15669:60:4"},{"attributes":{"functionReturnParameters":1619},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1613,"type":"struct strings.slice memory","value":"self"},"id":1661,"name":"Identifier","src":"15746:4:4"}],"id":1662,"name":"Return","src":"15739:11:4"}],"id":1663,"name":"Block","src":"15223:534:4"}],"id":1664,"name":"FunctionDefinition","src":"15131:626:4"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"findPtr","payable":false,"scope":2399,"stateMutability":"pure","superFunction":null,"visibility":"private"},"children":[{"children":[{"attributes":{"constant":false,"name":"selflen","scope":1785,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1665,"name":"ElementaryTypeName","src":"15931:4:4"}],"id":1666,"name":"VariableDeclaration","src":"15931:12:4"},{"attributes":{"constant":false,"name":"selfptr","scope":1785,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1667,"name":"ElementaryTypeName","src":"15945:4:4"}],"id":1668,"name":"VariableDeclaration","src":"15945:12:4"},{"attributes":{"constant":false,"name":"needlelen","scope":1785,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1669,"name":"ElementaryTypeName","src":"15959:4:4"}],"id":1670,"name":"VariableDeclaration","src":"15959:14:4"},{"attributes":{"constant":false,"name":"needleptr","scope":1785,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1671,"name":"ElementaryTypeName","src":"15975:4:4"}],"id":1672,"name":"VariableDeclaration","src":"15975:14:4"}],"id":1673,"name":"ParameterList","src":"15930:60:4"},{"children":[{"attributes":{"constant":false,"name":"","scope":1785,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1674,"name":"ElementaryTypeName","src":"16013:4:4"}],"id":1675,"name":"VariableDeclaration","src":"16013:4:4"}],"id":1676,"name":"ParameterList","src":"16012:6:4"},{"children":[{"attributes":{"assignments":[1678]},"children":[{"attributes":{"constant":false,"name":"ptr","scope":1785,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1677,"name":"ElementaryTypeName","src":"16029:4:4"}],"id":1678,"name":"VariableDeclaration","src":"16029:8:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1668,"type":"uint256","value":"selfptr"},"id":1679,"name":"Identifier","src":"16040:7:4"}],"id":1680,"name":"VariableDeclarationStatement","src":"16029:18:4"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"idx","scope":1785,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1681,"name":"ElementaryTypeName","src":"16057:4:4"}],"id":1682,"name":"VariableDeclaration","src":"16057:8:4"}],"id":1683,"name":"VariableDeclarationStatement","src":"16057:8:4"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1670,"type":"uint256","value":"needlelen"},"id":1684,"name":"Identifier","src":"16080:9:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1666,"type":"uint256","value":"selflen"},"id":1685,"name":"Identifier","src":"16093:7:4"}],"id":1686,"name":"BinaryOperation","src":"16080:20:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1670,"type":"uint256","value":"needlelen"},"id":1687,"name":"Identifier","src":"16120:9:4"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":1688,"name":"Literal","src":"16133:2:4"}],"id":1689,"name":"BinaryOperation","src":"16120:15:4"},{"children":[{"attributes":{"assignments":[1691]},"children":[{"attributes":{"constant":false,"name":"mask","scope":1785,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":1690,"name":"ElementaryTypeName","src":"16155:7:4"}],"id":1691,"name":"VariableDeclaration","src":"16155:12:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes32)","value":"bytes32"},"id":1692,"name":"ElementaryTypeNameExpression","src":"16170:7:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"~","prefix":true,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"**","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":1693,"name":"Literal","src":"16180:1:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"38","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 8","value":"8"},"id":1694,"name":"Literal","src":"16186:1:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":1695,"name":"Literal","src":"16191:2:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1670,"type":"uint256","value":"needlelen"},"id":1696,"name":"Identifier","src":"16196:9:4"}],"id":1697,"name":"BinaryOperation","src":"16191:14:4"}],"id":1698,"name":"TupleExpression","src":"16190:16:4"}],"id":1699,"name":"BinaryOperation","src":"16186:20:4"}],"id":1700,"name":"TupleExpression","src":"16185:22:4"}],"id":1701,"name":"BinaryOperation","src":"16180:27:4"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":1702,"name":"Literal","src":"16210:1:4"}],"id":1703,"name":"BinaryOperation","src":"16180:31:4"}],"id":1704,"name":"TupleExpression","src":"16179:33:4"}],"id":1705,"name":"UnaryOperation","src":"16178:34:4"}],"id":1706,"name":"FunctionCall","src":"16170:43:4"}],"id":1707,"name":"VariableDeclarationStatement","src":"16155:58:4"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"needledata","scope":1785,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":1708,"name":"ElementaryTypeName","src":"16232:7:4"}],"id":1709,"name":"VariableDeclaration","src":"16232:18:4"}],"id":1710,"name":"VariableDeclarationStatement","src":"16232:18:4"},{"attributes":{"externalReferences":[{"needleptr":{"declaration":1672,"isOffset":false,"isSlot":false,"src":"16303:9:4","valueSize":1}},{"needledata":{"declaration":1709,"isOffset":false,"isSlot":false,"src":"16279:10:4","valueSize":1}},{"mask":{"declaration":1691,"isOffset":false,"isSlot":false,"src":"16315:4:4","valueSize":1}}],"operations":"{\n needledata := and(mload(needleptr), mask)\n}"},"children":[],"id":1711,"name":"InlineAssembly","src":"16268:76:4"},{"attributes":{"assignments":[1713]},"children":[{"attributes":{"constant":false,"name":"end","scope":1785,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1712,"name":"ElementaryTypeName","src":"16340:4:4"}],"id":1713,"name":"VariableDeclaration","src":"16340:8:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1668,"type":"uint256","value":"selfptr"},"id":1714,"name":"Identifier","src":"16351:7:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1666,"type":"uint256","value":"selflen"},"id":1715,"name":"Identifier","src":"16361:7:4"}],"id":1716,"name":"BinaryOperation","src":"16351:17:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1670,"type":"uint256","value":"needlelen"},"id":1717,"name":"Identifier","src":"16371:9:4"}],"id":1718,"name":"BinaryOperation","src":"16351:29:4"}],"id":1719,"name":"VariableDeclarationStatement","src":"16340:40:4"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"ptrdata","scope":1785,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":1720,"name":"ElementaryTypeName","src":"16398:7:4"}],"id":1721,"name":"VariableDeclaration","src":"16398:15:4"}],"id":1722,"name":"VariableDeclarationStatement","src":"16398:15:4"},{"attributes":{"externalReferences":[{"ptr":{"declaration":1678,"isOffset":false,"isSlot":false,"src":"16463:3:4","valueSize":1}},{"ptrdata":{"declaration":1721,"isOffset":false,"isSlot":false,"src":"16442:7:4","valueSize":1}},{"mask":{"declaration":1691,"isOffset":false,"isSlot":false,"src":"16469:4:4","valueSize":1}}],"operations":"{\n ptrdata := and(mload(ptr), mask)\n}"},"children":[],"id":1723,"name":"InlineAssembly","src":"16431:68:4"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1721,"type":"bytes32","value":"ptrdata"},"id":1724,"name":"Identifier","src":"16501:7:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1709,"type":"bytes32","value":"needledata"},"id":1725,"name":"Identifier","src":"16512:10:4"}],"id":1726,"name":"BinaryOperation","src":"16501:21:4"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1678,"type":"uint256","value":"ptr"},"id":1727,"name":"Identifier","src":"16550:3:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1713,"type":"uint256","value":"end"},"id":1728,"name":"Identifier","src":"16557:3:4"}],"id":1729,"name":"BinaryOperation","src":"16550:10:4"},{"attributes":{"functionReturnParameters":1676},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1668,"type":"uint256","value":"selfptr"},"id":1730,"name":"Identifier","src":"16593:7:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1666,"type":"uint256","value":"selflen"},"id":1731,"name":"Identifier","src":"16603:7:4"}],"id":1732,"name":"BinaryOperation","src":"16593:17:4"}],"id":1733,"name":"Return","src":"16586:24:4"}],"id":1734,"name":"IfStatement","src":"16546:64:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1678,"type":"uint256","value":"ptr"},"id":1735,"name":"Identifier","src":"16632:3:4"}],"id":1736,"name":"UnaryOperation","src":"16632:5:4"}],"id":1737,"name":"ExpressionStatement","src":"16632:5:4"},{"attributes":{"externalReferences":[{"ptr":{"declaration":1678,"isOffset":false,"isSlot":false,"src":"16691:3:4","valueSize":1}},{"ptrdata":{"declaration":1721,"isOffset":false,"isSlot":false,"src":"16670:7:4","valueSize":1}},{"mask":{"declaration":1691,"isOffset":false,"isSlot":false,"src":"16697:4:4","valueSize":1}}],"operations":"{\n ptrdata := and(mload(ptr), mask)\n}"},"children":[],"id":1738,"name":"InlineAssembly","src":"16659:63:4"}],"id":1739,"name":"Block","src":"16524:198:4"}],"id":1740,"name":"WhileStatement","src":"16494:228:4"},{"attributes":{"functionReturnParameters":1676},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1678,"type":"uint256","value":"ptr"},"id":1741,"name":"Identifier","src":"16746:3:4"}],"id":1742,"name":"Return","src":"16739:10:4"}],"id":1743,"name":"Block","src":"16137:627:4"},{"children":[{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"hash","scope":1785,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":1744,"name":"ElementaryTypeName","src":"16837:7:4"}],"id":1745,"name":"VariableDeclaration","src":"16837:12:4"}],"id":1746,"name":"VariableDeclarationStatement","src":"16837:12:4"},{"attributes":{"externalReferences":[{"hash":{"declaration":1745,"isOffset":false,"isSlot":false,"src":"16878:4:4","valueSize":1}},{"needleptr":{"declaration":1672,"isOffset":false,"isSlot":false,"src":"16896:9:4","valueSize":1}},{"needlelen":{"declaration":1670,"isOffset":false,"isSlot":false,"src":"16907:9:4","valueSize":1}}],"operations":"{\n hash := keccak256(needleptr, needlelen)\n}"},"children":[],"id":1747,"name":"InlineAssembly","src":"16867:73:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1682,"type":"uint256","value":"idx"},"id":1748,"name":"Identifier","src":"16942:3:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1749,"name":"Literal","src":"16948:1:4"}],"id":1750,"name":"Assignment","src":"16942:7:4"}],"id":1751,"name":"ExpressionStatement","src":"16942:7:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1682,"type":"uint256","value":"idx"},"id":1752,"name":"Identifier","src":"16951:3:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1666,"type":"uint256","value":"selflen"},"id":1753,"name":"Identifier","src":"16958:7:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1670,"type":"uint256","value":"needlelen"},"id":1754,"name":"Identifier","src":"16968:9:4"}],"id":1755,"name":"BinaryOperation","src":"16958:19:4"}],"id":1756,"name":"BinaryOperation","src":"16951:26:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1682,"type":"uint256","value":"idx"},"id":1757,"name":"Identifier","src":"16979:3:4"}],"id":1758,"name":"UnaryOperation","src":"16979:5:4"}],"id":1759,"name":"ExpressionStatement","src":"16979:5:4"},{"children":[{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"testHash","scope":1785,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":1760,"name":"ElementaryTypeName","src":"17008:7:4"}],"id":1761,"name":"VariableDeclaration","src":"17008:16:4"}],"id":1762,"name":"VariableDeclarationStatement","src":"17008:16:4"},{"attributes":{"externalReferences":[{"testHash":{"declaration":1761,"isOffset":false,"isSlot":false,"src":"17057:8:4","valueSize":1}},{"ptr":{"declaration":1678,"isOffset":false,"isSlot":false,"src":"17079:3:4","valueSize":1}},{"needlelen":{"declaration":1670,"isOffset":false,"isSlot":false,"src":"17084:9:4","valueSize":1}}],"operations":"{\n testHash := keccak256(ptr, needlelen)\n}"},"children":[],"id":1763,"name":"InlineAssembly","src":"17046:73:4"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1745,"type":"bytes32","value":"hash"},"id":1764,"name":"Identifier","src":"17121:4:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1761,"type":"bytes32","value":"testHash"},"id":1765,"name":"Identifier","src":"17129:8:4"}],"id":1766,"name":"BinaryOperation","src":"17121:16:4"},{"attributes":{"functionReturnParameters":1676},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1678,"type":"uint256","value":"ptr"},"id":1767,"name":"Identifier","src":"17170:3:4"}],"id":1768,"name":"Return","src":"17163:10:4"}],"id":1769,"name":"IfStatement","src":"17117:56:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1678,"type":"uint256","value":"ptr"},"id":1770,"name":"Identifier","src":"17195:3:4"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":1771,"name":"Literal","src":"17202:1:4"}],"id":1772,"name":"Assignment","src":"17195:8:4"}],"id":1773,"name":"ExpressionStatement","src":"17195:8:4"}],"id":1774,"name":"Block","src":"16986:236:4"}],"id":1775,"name":"ForStatement","src":"16937:285:4"}],"id":1776,"name":"Block","src":"16770:466:4"}],"id":1777,"name":"IfStatement","src":"16116:1120:4"}],"id":1778,"name":"Block","src":"16102:1144:4"}],"id":1779,"name":"IfStatement","src":"16076:1170:4"},{"attributes":{"functionReturnParameters":1676},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1668,"type":"uint256","value":"selfptr"},"id":1780,"name":"Identifier","src":"17262:7:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1666,"type":"uint256","value":"selflen"},"id":1781,"name":"Identifier","src":"17272:7:4"}],"id":1782,"name":"BinaryOperation","src":"17262:17:4"}],"id":1783,"name":"Return","src":"17255:24:4"}],"id":1784,"name":"Block","src":"16019:1267:4"}],"id":1785,"name":"FunctionDefinition","src":"15914:1372:4"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"rfindPtr","payable":false,"scope":2399,"stateMutability":"pure","superFunction":null,"visibility":"private"},"children":[{"children":[{"attributes":{"constant":false,"name":"selflen","scope":1902,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1786,"name":"ElementaryTypeName","src":"17457:4:4"}],"id":1787,"name":"VariableDeclaration","src":"17457:12:4"},{"attributes":{"constant":false,"name":"selfptr","scope":1902,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1788,"name":"ElementaryTypeName","src":"17471:4:4"}],"id":1789,"name":"VariableDeclaration","src":"17471:12:4"},{"attributes":{"constant":false,"name":"needlelen","scope":1902,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1790,"name":"ElementaryTypeName","src":"17485:4:4"}],"id":1791,"name":"VariableDeclaration","src":"17485:14:4"},{"attributes":{"constant":false,"name":"needleptr","scope":1902,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1792,"name":"ElementaryTypeName","src":"17501:4:4"}],"id":1793,"name":"VariableDeclaration","src":"17501:14:4"}],"id":1794,"name":"ParameterList","src":"17456:60:4"},{"children":[{"attributes":{"constant":false,"name":"","scope":1902,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1795,"name":"ElementaryTypeName","src":"17539:4:4"}],"id":1796,"name":"VariableDeclaration","src":"17539:4:4"}],"id":1797,"name":"ParameterList","src":"17538:6:4"},{"children":[{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"ptr","scope":1902,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1798,"name":"ElementaryTypeName","src":"17555:4:4"}],"id":1799,"name":"VariableDeclaration","src":"17555:8:4"}],"id":1800,"name":"VariableDeclarationStatement","src":"17555:8:4"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1791,"type":"uint256","value":"needlelen"},"id":1801,"name":"Identifier","src":"17578:9:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1787,"type":"uint256","value":"selflen"},"id":1802,"name":"Identifier","src":"17591:7:4"}],"id":1803,"name":"BinaryOperation","src":"17578:20:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1791,"type":"uint256","value":"needlelen"},"id":1804,"name":"Identifier","src":"17618:9:4"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":1805,"name":"Literal","src":"17631:2:4"}],"id":1806,"name":"BinaryOperation","src":"17618:15:4"},{"children":[{"attributes":{"assignments":[1808]},"children":[{"attributes":{"constant":false,"name":"mask","scope":1902,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":1807,"name":"ElementaryTypeName","src":"17653:7:4"}],"id":1808,"name":"VariableDeclaration","src":"17653:12:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes32)","value":"bytes32"},"id":1809,"name":"ElementaryTypeNameExpression","src":"17668:7:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"~","prefix":true,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"**","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":1810,"name":"Literal","src":"17678:1:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"38","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 8","value":"8"},"id":1811,"name":"Literal","src":"17684:1:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":1812,"name":"Literal","src":"17689:2:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1791,"type":"uint256","value":"needlelen"},"id":1813,"name":"Identifier","src":"17694:9:4"}],"id":1814,"name":"BinaryOperation","src":"17689:14:4"}],"id":1815,"name":"TupleExpression","src":"17688:16:4"}],"id":1816,"name":"BinaryOperation","src":"17684:20:4"}],"id":1817,"name":"TupleExpression","src":"17683:22:4"}],"id":1818,"name":"BinaryOperation","src":"17678:27:4"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":1819,"name":"Literal","src":"17708:1:4"}],"id":1820,"name":"BinaryOperation","src":"17678:31:4"}],"id":1821,"name":"TupleExpression","src":"17677:33:4"}],"id":1822,"name":"UnaryOperation","src":"17676:34:4"}],"id":1823,"name":"FunctionCall","src":"17668:43:4"}],"id":1824,"name":"VariableDeclarationStatement","src":"17653:58:4"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"needledata","scope":1902,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":1825,"name":"ElementaryTypeName","src":"17730:7:4"}],"id":1826,"name":"VariableDeclaration","src":"17730:18:4"}],"id":1827,"name":"VariableDeclarationStatement","src":"17730:18:4"},{"attributes":{"externalReferences":[{"needleptr":{"declaration":1793,"isOffset":false,"isSlot":false,"src":"17801:9:4","valueSize":1}},{"needledata":{"declaration":1826,"isOffset":false,"isSlot":false,"src":"17777:10:4","valueSize":1}},{"mask":{"declaration":1808,"isOffset":false,"isSlot":false,"src":"17813:4:4","valueSize":1}}],"operations":"{\n needledata := and(mload(needleptr), mask)\n}"},"children":[],"id":1828,"name":"InlineAssembly","src":"17766:75:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1799,"type":"uint256","value":"ptr"},"id":1829,"name":"Identifier","src":"17838:3:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1789,"type":"uint256","value":"selfptr"},"id":1830,"name":"Identifier","src":"17844:7:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1787,"type":"uint256","value":"selflen"},"id":1831,"name":"Identifier","src":"17854:7:4"}],"id":1832,"name":"BinaryOperation","src":"17844:17:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1791,"type":"uint256","value":"needlelen"},"id":1833,"name":"Identifier","src":"17864:9:4"}],"id":1834,"name":"BinaryOperation","src":"17844:29:4"}],"id":1835,"name":"Assignment","src":"17838:35:4"}],"id":1836,"name":"ExpressionStatement","src":"17838:35:4"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"ptrdata","scope":1902,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":1837,"name":"ElementaryTypeName","src":"17891:7:4"}],"id":1838,"name":"VariableDeclaration","src":"17891:15:4"}],"id":1839,"name":"VariableDeclarationStatement","src":"17891:15:4"},{"attributes":{"externalReferences":[{"ptr":{"declaration":1799,"isOffset":false,"isSlot":false,"src":"17956:3:4","valueSize":1}},{"ptrdata":{"declaration":1838,"isOffset":false,"isSlot":false,"src":"17935:7:4","valueSize":1}},{"mask":{"declaration":1808,"isOffset":false,"isSlot":false,"src":"17962:4:4","valueSize":1}}],"operations":"{\n ptrdata := and(mload(ptr), mask)\n}"},"children":[],"id":1840,"name":"InlineAssembly","src":"17924:68:4"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1838,"type":"bytes32","value":"ptrdata"},"id":1841,"name":"Identifier","src":"17994:7:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1826,"type":"bytes32","value":"needledata"},"id":1842,"name":"Identifier","src":"18005:10:4"}],"id":1843,"name":"BinaryOperation","src":"17994:21:4"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1799,"type":"uint256","value":"ptr"},"id":1844,"name":"Identifier","src":"18043:3:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1789,"type":"uint256","value":"selfptr"},"id":1845,"name":"Identifier","src":"18050:7:4"}],"id":1846,"name":"BinaryOperation","src":"18043:14:4"},{"attributes":{"functionReturnParameters":1797},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1789,"type":"uint256","value":"selfptr"},"id":1847,"name":"Identifier","src":"18090:7:4"}],"id":1848,"name":"Return","src":"18083:14:4"}],"id":1849,"name":"IfStatement","src":"18039:58:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"--","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1799,"type":"uint256","value":"ptr"},"id":1850,"name":"Identifier","src":"18119:3:4"}],"id":1851,"name":"UnaryOperation","src":"18119:5:4"}],"id":1852,"name":"ExpressionStatement","src":"18119:5:4"},{"attributes":{"externalReferences":[{"ptr":{"declaration":1799,"isOffset":false,"isSlot":false,"src":"18178:3:4","valueSize":1}},{"ptrdata":{"declaration":1838,"isOffset":false,"isSlot":false,"src":"18157:7:4","valueSize":1}},{"mask":{"declaration":1808,"isOffset":false,"isSlot":false,"src":"18184:4:4","valueSize":1}}],"operations":"{\n ptrdata := and(mload(ptr), mask)\n}"},"children":[],"id":1853,"name":"InlineAssembly","src":"18146:63:4"}],"id":1854,"name":"Block","src":"18017:192:4"}],"id":1855,"name":"WhileStatement","src":"17987:222:4"},{"attributes":{"functionReturnParameters":1797},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1799,"type":"uint256","value":"ptr"},"id":1856,"name":"Identifier","src":"18233:3:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1791,"type":"uint256","value":"needlelen"},"id":1857,"name":"Identifier","src":"18239:9:4"}],"id":1858,"name":"BinaryOperation","src":"18233:15:4"}],"id":1859,"name":"Return","src":"18226:22:4"}],"id":1860,"name":"Block","src":"17635:628:4"},{"children":[{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"hash","scope":1902,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":1861,"name":"ElementaryTypeName","src":"18336:7:4"}],"id":1862,"name":"VariableDeclaration","src":"18336:12:4"}],"id":1863,"name":"VariableDeclarationStatement","src":"18336:12:4"},{"attributes":{"externalReferences":[{"hash":{"declaration":1862,"isOffset":false,"isSlot":false,"src":"18377:4:4","valueSize":1}},{"needleptr":{"declaration":1793,"isOffset":false,"isSlot":false,"src":"18395:9:4","valueSize":1}},{"needlelen":{"declaration":1791,"isOffset":false,"isSlot":false,"src":"18406:9:4","valueSize":1}}],"operations":"{\n hash := keccak256(needleptr, needlelen)\n}"},"children":[],"id":1864,"name":"InlineAssembly","src":"18366:72:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1799,"type":"uint256","value":"ptr"},"id":1865,"name":"Identifier","src":"18435:3:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1789,"type":"uint256","value":"selfptr"},"id":1866,"name":"Identifier","src":"18441:7:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1787,"type":"uint256","value":"selflen"},"id":1867,"name":"Identifier","src":"18452:7:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1791,"type":"uint256","value":"needlelen"},"id":1868,"name":"Identifier","src":"18462:9:4"}],"id":1869,"name":"BinaryOperation","src":"18452:19:4"}],"id":1870,"name":"TupleExpression","src":"18451:21:4"}],"id":1871,"name":"BinaryOperation","src":"18441:31:4"}],"id":1872,"name":"Assignment","src":"18435:37:4"}],"id":1873,"name":"ExpressionStatement","src":"18435:37:4"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1799,"type":"uint256","value":"ptr"},"id":1874,"name":"Identifier","src":"18497:3:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1789,"type":"uint256","value":"selfptr"},"id":1875,"name":"Identifier","src":"18504:7:4"}],"id":1876,"name":"BinaryOperation","src":"18497:14:4"},{"children":[{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"testHash","scope":1902,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":1877,"name":"ElementaryTypeName","src":"18535:7:4"}],"id":1878,"name":"VariableDeclaration","src":"18535:16:4"}],"id":1879,"name":"VariableDeclarationStatement","src":"18535:16:4"},{"attributes":{"externalReferences":[{"testHash":{"declaration":1878,"isOffset":false,"isSlot":false,"src":"18584:8:4","valueSize":1}},{"ptr":{"declaration":1799,"isOffset":false,"isSlot":false,"src":"18606:3:4","valueSize":1}},{"needlelen":{"declaration":1791,"isOffset":false,"isSlot":false,"src":"18611:9:4","valueSize":1}}],"operations":"{\n testHash := keccak256(ptr, needlelen)\n}"},"children":[],"id":1880,"name":"InlineAssembly","src":"18573:73:4"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1862,"type":"bytes32","value":"hash"},"id":1881,"name":"Identifier","src":"18648:4:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1878,"type":"bytes32","value":"testHash"},"id":1882,"name":"Identifier","src":"18656:8:4"}],"id":1883,"name":"BinaryOperation","src":"18648:16:4"},{"attributes":{"functionReturnParameters":1797},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1799,"type":"uint256","value":"ptr"},"id":1884,"name":"Identifier","src":"18697:3:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1791,"type":"uint256","value":"needlelen"},"id":1885,"name":"Identifier","src":"18703:9:4"}],"id":1886,"name":"BinaryOperation","src":"18697:15:4"}],"id":1887,"name":"Return","src":"18690:22:4"}],"id":1888,"name":"IfStatement","src":"18644:68:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1799,"type":"uint256","value":"ptr"},"id":1889,"name":"Identifier","src":"18734:3:4"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":1890,"name":"Literal","src":"18741:1:4"}],"id":1891,"name":"Assignment","src":"18734:8:4"}],"id":1892,"name":"ExpressionStatement","src":"18734:8:4"}],"id":1893,"name":"Block","src":"18513:248:4"}],"id":1894,"name":"WhileStatement","src":"18490:271:4"}],"id":1895,"name":"Block","src":"18269:506:4"}],"id":1896,"name":"IfStatement","src":"17614:1161:4"}],"id":1897,"name":"Block","src":"17600:1185:4"}],"id":1898,"name":"IfStatement","src":"17574:1211:4"},{"attributes":{"functionReturnParameters":1797},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1789,"type":"uint256","value":"selfptr"},"id":1899,"name":"Identifier","src":"18801:7:4"}],"id":1900,"name":"Return","src":"18794:14:4"}],"id":1901,"name":"Block","src":"17545:1270:4"}],"id":1902,"name":"FunctionDefinition","src":"17439:1376:4"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"find","payable":false,"scope":2399,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":1942,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":711,"type":"struct strings.slice"},"id":1903,"name":"UserDefinedTypeName","src":"19165:5:4"}],"id":1904,"name":"VariableDeclaration","src":"19165:17:4"},{"attributes":{"constant":false,"name":"needle","scope":1942,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":711,"type":"struct strings.slice"},"id":1905,"name":"UserDefinedTypeName","src":"19184:5:4"}],"id":1906,"name":"VariableDeclaration","src":"19184:19:4"}],"id":1907,"name":"ParameterList","src":"19164:40:4"},{"children":[{"attributes":{"constant":false,"name":"","scope":1942,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":711,"type":"struct strings.slice"},"id":1908,"name":"UserDefinedTypeName","src":"19228:5:4"}],"id":1909,"name":"VariableDeclaration","src":"19228:5:4"}],"id":1910,"name":"ParameterList","src":"19227:14:4"},{"children":[{"attributes":{"assignments":[1912]},"children":[{"attributes":{"constant":false,"name":"ptr","scope":1942,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1911,"name":"ElementaryTypeName","src":"19252:4:4"}],"id":1912,"name":"VariableDeclaration","src":"19252:8:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":1785,"type":"function (uint256,uint256,uint256,uint256) pure returns (uint256)","value":"findPtr"},"id":1913,"name":"Identifier","src":"19263:7:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":708,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1904,"type":"struct strings.slice memory","value":"self"},"id":1914,"name":"Identifier","src":"19271:4:4"}],"id":1915,"name":"MemberAccess","src":"19271:9:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":710,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1904,"type":"struct strings.slice memory","value":"self"},"id":1916,"name":"Identifier","src":"19282:4:4"}],"id":1917,"name":"MemberAccess","src":"19282:9:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":708,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1906,"type":"struct strings.slice memory","value":"needle"},"id":1918,"name":"Identifier","src":"19293:6:4"}],"id":1919,"name":"MemberAccess","src":"19293:11:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":710,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1906,"type":"struct strings.slice memory","value":"needle"},"id":1920,"name":"Identifier","src":"19306:6:4"}],"id":1921,"name":"MemberAccess","src":"19306:11:4"}],"id":1922,"name":"FunctionCall","src":"19263:55:4"}],"id":1923,"name":"VariableDeclarationStatement","src":"19252:66:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":708,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1904,"type":"struct strings.slice memory","value":"self"},"id":1924,"name":"Identifier","src":"19328:4:4"}],"id":1926,"name":"MemberAccess","src":"19328:9:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1912,"type":"uint256","value":"ptr"},"id":1927,"name":"Identifier","src":"19341:3:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":710,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1904,"type":"struct strings.slice memory","value":"self"},"id":1928,"name":"Identifier","src":"19347:4:4"}],"id":1929,"name":"MemberAccess","src":"19347:9:4"}],"id":1930,"name":"BinaryOperation","src":"19341:15:4"}],"id":1931,"name":"Assignment","src":"19328:28:4"}],"id":1932,"name":"ExpressionStatement","src":"19328:28:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_ptr","referencedDeclaration":710,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1904,"type":"struct strings.slice memory","value":"self"},"id":1933,"name":"Identifier","src":"19366:4:4"}],"id":1935,"name":"MemberAccess","src":"19366:9:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1912,"type":"uint256","value":"ptr"},"id":1936,"name":"Identifier","src":"19378:3:4"}],"id":1937,"name":"Assignment","src":"19366:15:4"}],"id":1938,"name":"ExpressionStatement","src":"19366:15:4"},{"attributes":{"functionReturnParameters":1910},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1904,"type":"struct strings.slice memory","value":"self"},"id":1939,"name":"Identifier","src":"19398:4:4"}],"id":1940,"name":"Return","src":"19391:11:4"}],"id":1941,"name":"Block","src":"19242:167:4"}],"id":1942,"name":"FunctionDefinition","src":"19151:258:4"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"rfind","payable":false,"scope":2399,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":1976,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":711,"type":"struct strings.slice"},"id":1943,"name":"UserDefinedTypeName","src":"19783:5:4"}],"id":1944,"name":"VariableDeclaration","src":"19783:17:4"},{"attributes":{"constant":false,"name":"needle","scope":1976,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":711,"type":"struct strings.slice"},"id":1945,"name":"UserDefinedTypeName","src":"19802:5:4"}],"id":1946,"name":"VariableDeclaration","src":"19802:19:4"}],"id":1947,"name":"ParameterList","src":"19782:40:4"},{"children":[{"attributes":{"constant":false,"name":"","scope":1976,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":711,"type":"struct strings.slice"},"id":1948,"name":"UserDefinedTypeName","src":"19846:5:4"}],"id":1949,"name":"VariableDeclaration","src":"19846:5:4"}],"id":1950,"name":"ParameterList","src":"19845:14:4"},{"children":[{"attributes":{"assignments":[1952]},"children":[{"attributes":{"constant":false,"name":"ptr","scope":1976,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1951,"name":"ElementaryTypeName","src":"19870:4:4"}],"id":1952,"name":"VariableDeclaration","src":"19870:8:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":1902,"type":"function (uint256,uint256,uint256,uint256) pure returns (uint256)","value":"rfindPtr"},"id":1953,"name":"Identifier","src":"19881:8:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":708,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1944,"type":"struct strings.slice memory","value":"self"},"id":1954,"name":"Identifier","src":"19890:4:4"}],"id":1955,"name":"MemberAccess","src":"19890:9:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":710,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1944,"type":"struct strings.slice memory","value":"self"},"id":1956,"name":"Identifier","src":"19901:4:4"}],"id":1957,"name":"MemberAccess","src":"19901:9:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":708,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1946,"type":"struct strings.slice memory","value":"needle"},"id":1958,"name":"Identifier","src":"19912:6:4"}],"id":1959,"name":"MemberAccess","src":"19912:11:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":710,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1946,"type":"struct strings.slice memory","value":"needle"},"id":1960,"name":"Identifier","src":"19925:6:4"}],"id":1961,"name":"MemberAccess","src":"19925:11:4"}],"id":1962,"name":"FunctionCall","src":"19881:56:4"}],"id":1963,"name":"VariableDeclarationStatement","src":"19870:67:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":708,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1944,"type":"struct strings.slice memory","value":"self"},"id":1964,"name":"Identifier","src":"19947:4:4"}],"id":1966,"name":"MemberAccess","src":"19947:9:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1952,"type":"uint256","value":"ptr"},"id":1967,"name":"Identifier","src":"19959:3:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":710,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1944,"type":"struct strings.slice memory","value":"self"},"id":1968,"name":"Identifier","src":"19965:4:4"}],"id":1969,"name":"MemberAccess","src":"19965:9:4"}],"id":1970,"name":"BinaryOperation","src":"19959:15:4"}],"id":1971,"name":"Assignment","src":"19947:27:4"}],"id":1972,"name":"ExpressionStatement","src":"19947:27:4"},{"attributes":{"functionReturnParameters":1950},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1944,"type":"struct strings.slice memory","value":"self"},"id":1973,"name":"Identifier","src":"19991:4:4"}],"id":1974,"name":"Return","src":"19984:11:4"}],"id":1975,"name":"Block","src":"19860:142:4"}],"id":1976,"name":"FunctionDefinition","src":"19768:234:4"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"split","payable":false,"scope":2399,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":2054,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":711,"type":"struct strings.slice"},"id":1977,"name":"UserDefinedTypeName","src":"20523:5:4"}],"id":1978,"name":"VariableDeclaration","src":"20523:17:4"},{"attributes":{"constant":false,"name":"needle","scope":2054,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":711,"type":"struct strings.slice"},"id":1979,"name":"UserDefinedTypeName","src":"20542:5:4"}],"id":1980,"name":"VariableDeclaration","src":"20542:19:4"},{"attributes":{"constant":false,"name":"token","scope":2054,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":711,"type":"struct strings.slice"},"id":1981,"name":"UserDefinedTypeName","src":"20563:5:4"}],"id":1982,"name":"VariableDeclaration","src":"20563:18:4"}],"id":1983,"name":"ParameterList","src":"20522:60:4"},{"children":[{"attributes":{"constant":false,"name":"","scope":2054,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":711,"type":"struct strings.slice"},"id":1984,"name":"UserDefinedTypeName","src":"20606:5:4"}],"id":1985,"name":"VariableDeclaration","src":"20606:5:4"}],"id":1986,"name":"ParameterList","src":"20605:14:4"},{"children":[{"attributes":{"assignments":[1988]},"children":[{"attributes":{"constant":false,"name":"ptr","scope":2054,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1987,"name":"ElementaryTypeName","src":"20630:4:4"}],"id":1988,"name":"VariableDeclaration","src":"20630:8:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":1785,"type":"function (uint256,uint256,uint256,uint256) pure returns (uint256)","value":"findPtr"},"id":1989,"name":"Identifier","src":"20641:7:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":708,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1978,"type":"struct strings.slice memory","value":"self"},"id":1990,"name":"Identifier","src":"20649:4:4"}],"id":1991,"name":"MemberAccess","src":"20649:9:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":710,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1978,"type":"struct strings.slice memory","value":"self"},"id":1992,"name":"Identifier","src":"20660:4:4"}],"id":1993,"name":"MemberAccess","src":"20660:9:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":708,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1980,"type":"struct strings.slice memory","value":"needle"},"id":1994,"name":"Identifier","src":"20671:6:4"}],"id":1995,"name":"MemberAccess","src":"20671:11:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":710,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1980,"type":"struct strings.slice memory","value":"needle"},"id":1996,"name":"Identifier","src":"20684:6:4"}],"id":1997,"name":"MemberAccess","src":"20684:11:4"}],"id":1998,"name":"FunctionCall","src":"20641:55:4"}],"id":1999,"name":"VariableDeclarationStatement","src":"20630:66:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_ptr","referencedDeclaration":710,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1982,"type":"struct strings.slice memory","value":"token"},"id":2000,"name":"Identifier","src":"20706:5:4"}],"id":2002,"name":"MemberAccess","src":"20706:10:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":710,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1978,"type":"struct strings.slice memory","value":"self"},"id":2003,"name":"Identifier","src":"20719:4:4"}],"id":2004,"name":"MemberAccess","src":"20719:9:4"}],"id":2005,"name":"Assignment","src":"20706:22:4"}],"id":2006,"name":"ExpressionStatement","src":"20706:22:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":708,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1982,"type":"struct strings.slice memory","value":"token"},"id":2007,"name":"Identifier","src":"20738:5:4"}],"id":2009,"name":"MemberAccess","src":"20738:10:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1988,"type":"uint256","value":"ptr"},"id":2010,"name":"Identifier","src":"20751:3:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":710,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1978,"type":"struct strings.slice memory","value":"self"},"id":2011,"name":"Identifier","src":"20757:4:4"}],"id":2012,"name":"MemberAccess","src":"20757:9:4"}],"id":2013,"name":"BinaryOperation","src":"20751:15:4"}],"id":2014,"name":"Assignment","src":"20738:28:4"}],"id":2015,"name":"ExpressionStatement","src":"20738:28:4"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1988,"type":"uint256","value":"ptr"},"id":2016,"name":"Identifier","src":"20780:3:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":710,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1978,"type":"struct strings.slice memory","value":"self"},"id":2017,"name":"Identifier","src":"20787:4:4"}],"id":2018,"name":"MemberAccess","src":"20787:9:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":708,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1978,"type":"struct strings.slice memory","value":"self"},"id":2019,"name":"Identifier","src":"20799:4:4"}],"id":2020,"name":"MemberAccess","src":"20799:9:4"}],"id":2021,"name":"BinaryOperation","src":"20787:21:4"}],"id":2022,"name":"BinaryOperation","src":"20780:28:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":708,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1978,"type":"struct strings.slice memory","value":"self"},"id":2023,"name":"Identifier","src":"20849:4:4"}],"id":2025,"name":"MemberAccess","src":"20849:9:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2026,"name":"Literal","src":"20861:1:4"}],"id":2027,"name":"Assignment","src":"20849:13:4"}],"id":2028,"name":"ExpressionStatement","src":"20849:13:4"}],"id":2029,"name":"Block","src":"20810:63:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":708,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1978,"type":"struct strings.slice memory","value":"self"},"id":2030,"name":"Identifier","src":"20893:4:4"}],"id":2032,"name":"MemberAccess","src":"20893:9:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":708,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1982,"type":"struct strings.slice memory","value":"token"},"id":2033,"name":"Identifier","src":"20906:5:4"}],"id":2034,"name":"MemberAccess","src":"20906:10:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":708,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1980,"type":"struct strings.slice memory","value":"needle"},"id":2035,"name":"Identifier","src":"20919:6:4"}],"id":2036,"name":"MemberAccess","src":"20919:11:4"}],"id":2037,"name":"BinaryOperation","src":"20906:24:4"}],"id":2038,"name":"Assignment","src":"20893:37:4"}],"id":2039,"name":"ExpressionStatement","src":"20893:37:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_ptr","referencedDeclaration":710,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1978,"type":"struct strings.slice memory","value":"self"},"id":2040,"name":"Identifier","src":"20944:4:4"}],"id":2042,"name":"MemberAccess","src":"20944:9:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1988,"type":"uint256","value":"ptr"},"id":2043,"name":"Identifier","src":"20956:3:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":708,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1980,"type":"struct strings.slice memory","value":"needle"},"id":2044,"name":"Identifier","src":"20962:6:4"}],"id":2045,"name":"MemberAccess","src":"20962:11:4"}],"id":2046,"name":"BinaryOperation","src":"20956:17:4"}],"id":2047,"name":"Assignment","src":"20944:29:4"}],"id":2048,"name":"ExpressionStatement","src":"20944:29:4"}],"id":2049,"name":"Block","src":"20879:105:4"}],"id":2050,"name":"IfStatement","src":"20776:208:4"},{"attributes":{"functionReturnParameters":1986},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1982,"type":"struct strings.slice memory","value":"token"},"id":2051,"name":"Identifier","src":"21000:5:4"}],"id":2052,"name":"Return","src":"20993:12:4"}],"id":2053,"name":"Block","src":"20620:392:4"}],"id":2054,"name":"FunctionDefinition","src":"20508:504:4"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"split","payable":false,"scope":2399,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":2070,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":711,"type":"struct strings.slice"},"id":2055,"name":"UserDefinedTypeName","src":"21498:5:4"}],"id":2056,"name":"VariableDeclaration","src":"21498:17:4"},{"attributes":{"constant":false,"name":"needle","scope":2070,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":711,"type":"struct strings.slice"},"id":2057,"name":"UserDefinedTypeName","src":"21517:5:4"}],"id":2058,"name":"VariableDeclaration","src":"21517:19:4"}],"id":2059,"name":"ParameterList","src":"21497:40:4"},{"children":[{"attributes":{"constant":false,"name":"token","scope":2070,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":711,"type":"struct strings.slice"},"id":2060,"name":"UserDefinedTypeName","src":"21561:5:4"}],"id":2061,"name":"VariableDeclaration","src":"21561:18:4"}],"id":2062,"name":"ParameterList","src":"21560:20:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"struct strings.slice memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$711_memory_ptr","typeString":"struct strings.slice memory"},{"typeIdentifier":"t_struct$_slice_$711_memory_ptr","typeString":"struct strings.slice memory"},{"typeIdentifier":"t_struct$_slice_$711_memory_ptr","typeString":"struct strings.slice memory"}],"overloadedDeclarations":[2054,2070],"referencedDeclaration":2054,"type":"function (struct strings.slice memory,struct strings.slice memory,struct strings.slice memory) pure returns (struct strings.slice memory)","value":"split"},"id":2063,"name":"Identifier","src":"21591:5:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2056,"type":"struct strings.slice memory","value":"self"},"id":2064,"name":"Identifier","src":"21597:4:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2058,"type":"struct strings.slice memory","value":"needle"},"id":2065,"name":"Identifier","src":"21603:6:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2061,"type":"struct strings.slice memory","value":"token"},"id":2066,"name":"Identifier","src":"21611:5:4"}],"id":2067,"name":"FunctionCall","src":"21591:26:4"}],"id":2068,"name":"ExpressionStatement","src":"21591:26:4"}],"id":2069,"name":"Block","src":"21581:43:4"}],"id":2070,"name":"FunctionDefinition","src":"21483:141:4"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"rsplit","payable":false,"scope":2399,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":2139,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":711,"type":"struct strings.slice"},"id":2071,"name":"UserDefinedTypeName","src":"22145:5:4"}],"id":2072,"name":"VariableDeclaration","src":"22145:17:4"},{"attributes":{"constant":false,"name":"needle","scope":2139,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":711,"type":"struct strings.slice"},"id":2073,"name":"UserDefinedTypeName","src":"22164:5:4"}],"id":2074,"name":"VariableDeclaration","src":"22164:19:4"},{"attributes":{"constant":false,"name":"token","scope":2139,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":711,"type":"struct strings.slice"},"id":2075,"name":"UserDefinedTypeName","src":"22185:5:4"}],"id":2076,"name":"VariableDeclaration","src":"22185:18:4"}],"id":2077,"name":"ParameterList","src":"22144:60:4"},{"children":[{"attributes":{"constant":false,"name":"","scope":2139,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":711,"type":"struct strings.slice"},"id":2078,"name":"UserDefinedTypeName","src":"22228:5:4"}],"id":2079,"name":"VariableDeclaration","src":"22228:5:4"}],"id":2080,"name":"ParameterList","src":"22227:14:4"},{"children":[{"attributes":{"assignments":[2082]},"children":[{"attributes":{"constant":false,"name":"ptr","scope":2139,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2081,"name":"ElementaryTypeName","src":"22252:4:4"}],"id":2082,"name":"VariableDeclaration","src":"22252:8:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":1902,"type":"function (uint256,uint256,uint256,uint256) pure returns (uint256)","value":"rfindPtr"},"id":2083,"name":"Identifier","src":"22263:8:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":708,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2072,"type":"struct strings.slice memory","value":"self"},"id":2084,"name":"Identifier","src":"22272:4:4"}],"id":2085,"name":"MemberAccess","src":"22272:9:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":710,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2072,"type":"struct strings.slice memory","value":"self"},"id":2086,"name":"Identifier","src":"22283:4:4"}],"id":2087,"name":"MemberAccess","src":"22283:9:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":708,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2074,"type":"struct strings.slice memory","value":"needle"},"id":2088,"name":"Identifier","src":"22294:6:4"}],"id":2089,"name":"MemberAccess","src":"22294:11:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":710,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2074,"type":"struct strings.slice memory","value":"needle"},"id":2090,"name":"Identifier","src":"22307:6:4"}],"id":2091,"name":"MemberAccess","src":"22307:11:4"}],"id":2092,"name":"FunctionCall","src":"22263:56:4"}],"id":2093,"name":"VariableDeclarationStatement","src":"22252:67:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_ptr","referencedDeclaration":710,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2076,"type":"struct strings.slice memory","value":"token"},"id":2094,"name":"Identifier","src":"22329:5:4"}],"id":2096,"name":"MemberAccess","src":"22329:10:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2082,"type":"uint256","value":"ptr"},"id":2097,"name":"Identifier","src":"22342:3:4"}],"id":2098,"name":"Assignment","src":"22329:16:4"}],"id":2099,"name":"ExpressionStatement","src":"22329:16:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":708,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2076,"type":"struct strings.slice memory","value":"token"},"id":2100,"name":"Identifier","src":"22355:5:4"}],"id":2102,"name":"MemberAccess","src":"22355:10:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":708,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2072,"type":"struct strings.slice memory","value":"self"},"id":2103,"name":"Identifier","src":"22368:4:4"}],"id":2104,"name":"MemberAccess","src":"22368:9:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2082,"type":"uint256","value":"ptr"},"id":2105,"name":"Identifier","src":"22381:3:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":710,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2072,"type":"struct strings.slice memory","value":"self"},"id":2106,"name":"Identifier","src":"22387:4:4"}],"id":2107,"name":"MemberAccess","src":"22387:9:4"}],"id":2108,"name":"BinaryOperation","src":"22381:15:4"}],"id":2109,"name":"TupleExpression","src":"22380:17:4"}],"id":2110,"name":"BinaryOperation","src":"22368:29:4"}],"id":2111,"name":"Assignment","src":"22355:42:4"}],"id":2112,"name":"ExpressionStatement","src":"22355:42:4"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2082,"type":"uint256","value":"ptr"},"id":2113,"name":"Identifier","src":"22411:3:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":710,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2072,"type":"struct strings.slice memory","value":"self"},"id":2114,"name":"Identifier","src":"22418:4:4"}],"id":2115,"name":"MemberAccess","src":"22418:9:4"}],"id":2116,"name":"BinaryOperation","src":"22411:16:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":708,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2072,"type":"struct strings.slice memory","value":"self"},"id":2117,"name":"Identifier","src":"22468:4:4"}],"id":2119,"name":"MemberAccess","src":"22468:9:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2120,"name":"Literal","src":"22480:1:4"}],"id":2121,"name":"Assignment","src":"22468:13:4"}],"id":2122,"name":"ExpressionStatement","src":"22468:13:4"}],"id":2123,"name":"Block","src":"22429:63:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":708,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2072,"type":"struct strings.slice memory","value":"self"},"id":2124,"name":"Identifier","src":"22512:4:4"}],"id":2126,"name":"MemberAccess","src":"22512:9:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":708,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2076,"type":"struct strings.slice memory","value":"token"},"id":2127,"name":"Identifier","src":"22525:5:4"}],"id":2128,"name":"MemberAccess","src":"22525:10:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":708,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2074,"type":"struct strings.slice memory","value":"needle"},"id":2129,"name":"Identifier","src":"22538:6:4"}],"id":2130,"name":"MemberAccess","src":"22538:11:4"}],"id":2131,"name":"BinaryOperation","src":"22525:24:4"}],"id":2132,"name":"Assignment","src":"22512:37:4"}],"id":2133,"name":"ExpressionStatement","src":"22512:37:4"}],"id":2134,"name":"Block","src":"22498:62:4"}],"id":2135,"name":"IfStatement","src":"22407:153:4"},{"attributes":{"functionReturnParameters":2080},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2076,"type":"struct strings.slice memory","value":"token"},"id":2136,"name":"Identifier","src":"22576:5:4"}],"id":2137,"name":"Return","src":"22569:12:4"}],"id":2138,"name":"Block","src":"22242:346:4"}],"id":2139,"name":"FunctionDefinition","src":"22129:459:4"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"rsplit","payable":false,"scope":2399,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":2155,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":711,"type":"struct strings.slice"},"id":2140,"name":"UserDefinedTypeName","src":"23073:5:4"}],"id":2141,"name":"VariableDeclaration","src":"23073:17:4"},{"attributes":{"constant":false,"name":"needle","scope":2155,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":711,"type":"struct strings.slice"},"id":2142,"name":"UserDefinedTypeName","src":"23092:5:4"}],"id":2143,"name":"VariableDeclaration","src":"23092:19:4"}],"id":2144,"name":"ParameterList","src":"23072:40:4"},{"children":[{"attributes":{"constant":false,"name":"token","scope":2155,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":711,"type":"struct strings.slice"},"id":2145,"name":"UserDefinedTypeName","src":"23136:5:4"}],"id":2146,"name":"VariableDeclaration","src":"23136:18:4"}],"id":2147,"name":"ParameterList","src":"23135:20:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"struct strings.slice memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$711_memory_ptr","typeString":"struct strings.slice memory"},{"typeIdentifier":"t_struct$_slice_$711_memory_ptr","typeString":"struct strings.slice memory"},{"typeIdentifier":"t_struct$_slice_$711_memory_ptr","typeString":"struct strings.slice memory"}],"overloadedDeclarations":[2139,2155],"referencedDeclaration":2139,"type":"function (struct strings.slice memory,struct strings.slice memory,struct strings.slice memory) pure returns (struct strings.slice memory)","value":"rsplit"},"id":2148,"name":"Identifier","src":"23166:6:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2141,"type":"struct strings.slice memory","value":"self"},"id":2149,"name":"Identifier","src":"23173:4:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2143,"type":"struct strings.slice memory","value":"needle"},"id":2150,"name":"Identifier","src":"23179:6:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2146,"type":"struct strings.slice memory","value":"token"},"id":2151,"name":"Identifier","src":"23187:5:4"}],"id":2152,"name":"FunctionCall","src":"23166:27:4"}],"id":2153,"name":"ExpressionStatement","src":"23166:27:4"}],"id":2154,"name":"Block","src":"23156:44:4"}],"id":2155,"name":"FunctionDefinition","src":"23057:143:4"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"count","payable":false,"scope":2399,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":2214,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":711,"type":"struct strings.slice"},"id":2156,"name":"UserDefinedTypeName","src":"23484:5:4"}],"id":2157,"name":"VariableDeclaration","src":"23484:17:4"},{"attributes":{"constant":false,"name":"needle","scope":2214,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":711,"type":"struct strings.slice"},"id":2158,"name":"UserDefinedTypeName","src":"23503:5:4"}],"id":2159,"name":"VariableDeclaration","src":"23503:19:4"}],"id":2160,"name":"ParameterList","src":"23483:40:4"},{"children":[{"attributes":{"constant":false,"name":"cnt","scope":2214,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2161,"name":"ElementaryTypeName","src":"23547:4:4"}],"id":2162,"name":"VariableDeclaration","src":"23547:8:4"}],"id":2163,"name":"ParameterList","src":"23546:10:4"},{"children":[{"attributes":{"assignments":[2165]},"children":[{"attributes":{"constant":false,"name":"ptr","scope":2214,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2164,"name":"ElementaryTypeName","src":"23567:4:4"}],"id":2165,"name":"VariableDeclaration","src":"23567:8:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":1785,"type":"function (uint256,uint256,uint256,uint256) pure returns (uint256)","value":"findPtr"},"id":2166,"name":"Identifier","src":"23578:7:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":708,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2157,"type":"struct strings.slice memory","value":"self"},"id":2167,"name":"Identifier","src":"23586:4:4"}],"id":2168,"name":"MemberAccess","src":"23586:9:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":710,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2157,"type":"struct strings.slice memory","value":"self"},"id":2169,"name":"Identifier","src":"23597:4:4"}],"id":2170,"name":"MemberAccess","src":"23597:9:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":708,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2159,"type":"struct strings.slice memory","value":"needle"},"id":2171,"name":"Identifier","src":"23608:6:4"}],"id":2172,"name":"MemberAccess","src":"23608:11:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":710,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2159,"type":"struct strings.slice memory","value":"needle"},"id":2173,"name":"Identifier","src":"23621:6:4"}],"id":2174,"name":"MemberAccess","src":"23621:11:4"}],"id":2175,"name":"FunctionCall","src":"23578:55:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":708,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2159,"type":"struct strings.slice memory","value":"needle"},"id":2176,"name":"Identifier","src":"23636:6:4"}],"id":2177,"name":"MemberAccess","src":"23636:11:4"}],"id":2178,"name":"BinaryOperation","src":"23578:69:4"}],"id":2179,"name":"VariableDeclarationStatement","src":"23567:80:4"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2165,"type":"uint256","value":"ptr"},"id":2180,"name":"Identifier","src":"23664:3:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":710,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2157,"type":"struct strings.slice memory","value":"self"},"id":2181,"name":"Identifier","src":"23671:4:4"}],"id":2182,"name":"MemberAccess","src":"23671:9:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":708,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2157,"type":"struct strings.slice memory","value":"self"},"id":2183,"name":"Identifier","src":"23683:4:4"}],"id":2184,"name":"MemberAccess","src":"23683:9:4"}],"id":2185,"name":"BinaryOperation","src":"23671:21:4"}],"id":2186,"name":"BinaryOperation","src":"23664:28:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2162,"type":"uint256","value":"cnt"},"id":2187,"name":"Identifier","src":"23708:3:4"}],"id":2188,"name":"UnaryOperation","src":"23708:5:4"}],"id":2189,"name":"ExpressionStatement","src":"23708:5:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2165,"type":"uint256","value":"ptr"},"id":2190,"name":"Identifier","src":"23727:3:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":1785,"type":"function (uint256,uint256,uint256,uint256) pure returns (uint256)","value":"findPtr"},"id":2191,"name":"Identifier","src":"23733:7:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":708,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2157,"type":"struct strings.slice memory","value":"self"},"id":2192,"name":"Identifier","src":"23741:4:4"}],"id":2193,"name":"MemberAccess","src":"23741:9:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2165,"type":"uint256","value":"ptr"},"id":2194,"name":"Identifier","src":"23754:3:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":710,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2157,"type":"struct strings.slice memory","value":"self"},"id":2195,"name":"Identifier","src":"23760:4:4"}],"id":2196,"name":"MemberAccess","src":"23760:9:4"}],"id":2197,"name":"BinaryOperation","src":"23754:15:4"}],"id":2198,"name":"TupleExpression","src":"23753:17:4"}],"id":2199,"name":"BinaryOperation","src":"23741:29:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2165,"type":"uint256","value":"ptr"},"id":2200,"name":"Identifier","src":"23772:3:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":708,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2159,"type":"struct strings.slice memory","value":"needle"},"id":2201,"name":"Identifier","src":"23777:6:4"}],"id":2202,"name":"MemberAccess","src":"23777:11:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":710,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2159,"type":"struct strings.slice memory","value":"needle"},"id":2203,"name":"Identifier","src":"23790:6:4"}],"id":2204,"name":"MemberAccess","src":"23790:11:4"}],"id":2205,"name":"FunctionCall","src":"23733:69:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":708,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2159,"type":"struct strings.slice memory","value":"needle"},"id":2206,"name":"Identifier","src":"23805:6:4"}],"id":2207,"name":"MemberAccess","src":"23805:11:4"}],"id":2208,"name":"BinaryOperation","src":"23733:83:4"}],"id":2209,"name":"Assignment","src":"23727:89:4"}],"id":2210,"name":"ExpressionStatement","src":"23727:89:4"}],"id":2211,"name":"Block","src":"23694:133:4"}],"id":2212,"name":"WhileStatement","src":"23657:170:4"}],"id":2213,"name":"Block","src":"23557:276:4"}],"id":2214,"name":"FunctionDefinition","src":"23469:364:4"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"contains","payable":false,"scope":2399,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":2238,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":711,"type":"struct strings.slice"},"id":2215,"name":"UserDefinedTypeName","src":"24090:5:4"}],"id":2216,"name":"VariableDeclaration","src":"24090:17:4"},{"attributes":{"constant":false,"name":"needle","scope":2238,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":711,"type":"struct strings.slice"},"id":2217,"name":"UserDefinedTypeName","src":"24109:5:4"}],"id":2218,"name":"VariableDeclaration","src":"24109:19:4"}],"id":2219,"name":"ParameterList","src":"24089:40:4"},{"children":[{"attributes":{"constant":false,"name":"","scope":2238,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2220,"name":"ElementaryTypeName","src":"24153:4:4"}],"id":2221,"name":"VariableDeclaration","src":"24153:4:4"}],"id":2222,"name":"ParameterList","src":"24152:6:4"},{"children":[{"attributes":{"functionReturnParameters":2222},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":1902,"type":"function (uint256,uint256,uint256,uint256) pure returns (uint256)","value":"rfindPtr"},"id":2223,"name":"Identifier","src":"24176:8:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":708,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2216,"type":"struct strings.slice memory","value":"self"},"id":2224,"name":"Identifier","src":"24185:4:4"}],"id":2225,"name":"MemberAccess","src":"24185:9:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":710,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2216,"type":"struct strings.slice memory","value":"self"},"id":2226,"name":"Identifier","src":"24196:4:4"}],"id":2227,"name":"MemberAccess","src":"24196:9:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":708,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2218,"type":"struct strings.slice memory","value":"needle"},"id":2228,"name":"Identifier","src":"24207:6:4"}],"id":2229,"name":"MemberAccess","src":"24207:11:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":710,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2218,"type":"struct strings.slice memory","value":"needle"},"id":2230,"name":"Identifier","src":"24220:6:4"}],"id":2231,"name":"MemberAccess","src":"24220:11:4"}],"id":2232,"name":"FunctionCall","src":"24176:56:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":710,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2216,"type":"struct strings.slice memory","value":"self"},"id":2233,"name":"Identifier","src":"24236:4:4"}],"id":2234,"name":"MemberAccess","src":"24236:9:4"}],"id":2235,"name":"BinaryOperation","src":"24176:69:4"}],"id":2236,"name":"Return","src":"24169:76:4"}],"id":2237,"name":"Block","src":"24159:93:4"}],"id":2238,"name":"FunctionDefinition","src":"24072:180:4"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"concat","payable":false,"scope":2399,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":2284,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":711,"type":"struct strings.slice"},"id":2239,"name":"UserDefinedTypeName","src":"24555:5:4"}],"id":2240,"name":"VariableDeclaration","src":"24555:17:4"},{"attributes":{"constant":false,"name":"other","scope":2284,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":711,"type":"struct strings.slice"},"id":2241,"name":"UserDefinedTypeName","src":"24574:5:4"}],"id":2242,"name":"VariableDeclaration","src":"24574:18:4"}],"id":2243,"name":"ParameterList","src":"24554:39:4"},{"children":[{"attributes":{"constant":false,"name":"","scope":2284,"stateVariable":false,"storageLocation":"memory","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":2244,"name":"ElementaryTypeName","src":"24617:6:4"}],"id":2245,"name":"VariableDeclaration","src":"24617:6:4"}],"id":2246,"name":"ParameterList","src":"24616:15:4"},{"children":[{"attributes":{"assignments":[2248]},"children":[{"attributes":{"constant":false,"name":"ret","scope":2284,"stateVariable":false,"storageLocation":"memory","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":2247,"name":"ElementaryTypeName","src":"24642:6:4"}],"id":2248,"name":"VariableDeclaration","src":"24642:17:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (string memory)"},"children":[{"attributes":{"name":"string","type":"string"},"id":2249,"name":"ElementaryTypeName","src":"24666:6:4"}],"id":2250,"name":"NewExpression","src":"24662:10:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":708,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2240,"type":"struct strings.slice memory","value":"self"},"id":2251,"name":"Identifier","src":"24673:4:4"}],"id":2252,"name":"MemberAccess","src":"24673:9:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":708,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2242,"type":"struct strings.slice memory","value":"other"},"id":2253,"name":"Identifier","src":"24685:5:4"}],"id":2254,"name":"MemberAccess","src":"24685:10:4"}],"id":2255,"name":"BinaryOperation","src":"24673:22:4"}],"id":2256,"name":"FunctionCall","src":"24662:34:4"}],"id":2257,"name":"VariableDeclarationStatement","src":"24642:54:4"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"retptr","scope":2284,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2258,"name":"ElementaryTypeName","src":"24706:4:4"}],"id":2259,"name":"VariableDeclaration","src":"24706:11:4"}],"id":2260,"name":"VariableDeclarationStatement","src":"24706:11:4"},{"attributes":{"externalReferences":[{"retptr":{"declaration":2259,"isOffset":false,"isSlot":false,"src":"24738:6:4","valueSize":1}},{"ret":{"declaration":2248,"isOffset":false,"isSlot":false,"src":"24752:3:4","valueSize":1}}],"operations":"{\n retptr := add(ret, 32)\n}"},"children":[],"id":2261,"name":"InlineAssembly","src":"24727:50:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":751,"type":"function (uint256,uint256,uint256) pure","value":"memcpy"},"id":2262,"name":"Identifier","src":"24771:6:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2259,"type":"uint256","value":"retptr"},"id":2263,"name":"Identifier","src":"24778:6:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":710,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2240,"type":"struct strings.slice memory","value":"self"},"id":2264,"name":"Identifier","src":"24786:4:4"}],"id":2265,"name":"MemberAccess","src":"24786:9:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":708,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2240,"type":"struct strings.slice memory","value":"self"},"id":2266,"name":"Identifier","src":"24797:4:4"}],"id":2267,"name":"MemberAccess","src":"24797:9:4"}],"id":2268,"name":"FunctionCall","src":"24771:36:4"}],"id":2269,"name":"ExpressionStatement","src":"24771:36:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":751,"type":"function (uint256,uint256,uint256) pure","value":"memcpy"},"id":2270,"name":"Identifier","src":"24817:6:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2259,"type":"uint256","value":"retptr"},"id":2271,"name":"Identifier","src":"24824:6:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":708,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2240,"type":"struct strings.slice memory","value":"self"},"id":2272,"name":"Identifier","src":"24833:4:4"}],"id":2273,"name":"MemberAccess","src":"24833:9:4"}],"id":2274,"name":"BinaryOperation","src":"24824:18:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":710,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2242,"type":"struct strings.slice memory","value":"other"},"id":2275,"name":"Identifier","src":"24844:5:4"}],"id":2276,"name":"MemberAccess","src":"24844:10:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":708,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2242,"type":"struct strings.slice memory","value":"other"},"id":2277,"name":"Identifier","src":"24856:5:4"}],"id":2278,"name":"MemberAccess","src":"24856:10:4"}],"id":2279,"name":"FunctionCall","src":"24817:50:4"}],"id":2280,"name":"ExpressionStatement","src":"24817:50:4"},{"attributes":{"functionReturnParameters":2246},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2248,"type":"string memory","value":"ret"},"id":2281,"name":"Identifier","src":"24884:3:4"}],"id":2282,"name":"Return","src":"24877:10:4"}],"id":2283,"name":"Block","src":"24632:262:4"}],"id":2284,"name":"FunctionDefinition","src":"24539:355:4"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"join","payable":false,"scope":2399,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":2398,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":711,"type":"struct strings.slice"},"id":2285,"name":"UserDefinedTypeName","src":"25244:5:4"}],"id":2286,"name":"VariableDeclaration","src":"25244:17:4"},{"attributes":{"constant":false,"name":"parts","scope":2398,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"struct strings.slice[]"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":711,"type":"struct strings.slice"},"id":2287,"name":"UserDefinedTypeName","src":"25263:5:4"}],"id":2288,"name":"ArrayTypeName","src":"25263:7:4"}],"id":2289,"name":"VariableDeclaration","src":"25263:20:4"}],"id":2290,"name":"ParameterList","src":"25243:41:4"},{"children":[{"attributes":{"constant":false,"name":"","scope":2398,"stateVariable":false,"storageLocation":"memory","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":2291,"name":"ElementaryTypeName","src":"25308:6:4"}],"id":2292,"name":"VariableDeclaration","src":"25308:6:4"}],"id":2293,"name":"ParameterList","src":"25307:15:4"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2289,"type":"struct strings.slice memory[] memory","value":"parts"},"id":2294,"name":"Identifier","src":"25337:5:4"}],"id":2295,"name":"MemberAccess","src":"25337:12:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2296,"name":"Literal","src":"25353:1:4"}],"id":2297,"name":"BinaryOperation","src":"25337:17:4"},{"attributes":{"functionReturnParameters":2293},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"\"","value":""},"id":2298,"name":"Literal","src":"25375:2:4"}],"id":2299,"name":"Return","src":"25368:9:4"}],"id":2300,"name":"IfStatement","src":"25333:44:4"},{"attributes":{"assignments":[2302]},"children":[{"attributes":{"constant":false,"name":"length","scope":2398,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2301,"name":"ElementaryTypeName","src":"25388:4:4"}],"id":2302,"name":"VariableDeclaration","src":"25388:11:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":708,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2286,"type":"struct strings.slice memory","value":"self"},"id":2303,"name":"Identifier","src":"25402:4:4"}],"id":2304,"name":"MemberAccess","src":"25402:9:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2289,"type":"struct strings.slice memory[] memory","value":"parts"},"id":2305,"name":"Identifier","src":"25415:5:4"}],"id":2306,"name":"MemberAccess","src":"25415:12:4"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":2307,"name":"Literal","src":"25430:1:4"}],"id":2308,"name":"BinaryOperation","src":"25415:16:4"}],"id":2309,"name":"TupleExpression","src":"25414:18:4"}],"id":2310,"name":"BinaryOperation","src":"25402:30:4"}],"id":2311,"name":"VariableDeclarationStatement","src":"25388:44:4"},{"children":[{"attributes":{"assignments":[2313]},"children":[{"attributes":{"constant":false,"name":"i","scope":2398,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2312,"name":"ElementaryTypeName","src":"25446:4:4"}],"id":2313,"name":"VariableDeclaration","src":"25446:6:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2314,"name":"Literal","src":"25455:1:4"}],"id":2315,"name":"VariableDeclarationStatement","src":"25446:10:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2313,"type":"uint256","value":"i"},"id":2316,"name":"Identifier","src":"25458:1:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2289,"type":"struct strings.slice memory[] memory","value":"parts"},"id":2317,"name":"Identifier","src":"25462:5:4"}],"id":2318,"name":"MemberAccess","src":"25462:12:4"}],"id":2319,"name":"BinaryOperation","src":"25458:16:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2313,"type":"uint256","value":"i"},"id":2320,"name":"Identifier","src":"25476:1:4"}],"id":2321,"name":"UnaryOperation","src":"25476:3:4"}],"id":2322,"name":"ExpressionStatement","src":"25476:3:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2302,"type":"uint256","value":"length"},"id":2323,"name":"Identifier","src":"25493:6:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":708,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct strings.slice memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2289,"type":"struct strings.slice memory[] memory","value":"parts"},"id":2324,"name":"Identifier","src":"25503:5:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2313,"type":"uint256","value":"i"},"id":2325,"name":"Identifier","src":"25509:1:4"}],"id":2326,"name":"IndexAccess","src":"25503:8:4"}],"id":2327,"name":"MemberAccess","src":"25503:13:4"}],"id":2328,"name":"Assignment","src":"25493:23:4"}],"id":2329,"name":"ExpressionStatement","src":"25493:23:4"}],"id":2330,"name":"ForStatement","src":"25442:74:4"},{"attributes":{"assignments":[2332]},"children":[{"attributes":{"constant":false,"name":"ret","scope":2398,"stateVariable":false,"storageLocation":"memory","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":2331,"name":"ElementaryTypeName","src":"25527:6:4"}],"id":2332,"name":"VariableDeclaration","src":"25527:17:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (string memory)"},"children":[{"attributes":{"name":"string","type":"string"},"id":2333,"name":"ElementaryTypeName","src":"25551:6:4"}],"id":2334,"name":"NewExpression","src":"25547:10:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2302,"type":"uint256","value":"length"},"id":2335,"name":"Identifier","src":"25558:6:4"}],"id":2336,"name":"FunctionCall","src":"25547:18:4"}],"id":2337,"name":"VariableDeclarationStatement","src":"25527:38:4"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"retptr","scope":2398,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2338,"name":"ElementaryTypeName","src":"25575:4:4"}],"id":2339,"name":"VariableDeclaration","src":"25575:11:4"}],"id":2340,"name":"VariableDeclarationStatement","src":"25575:11:4"},{"attributes":{"externalReferences":[{"retptr":{"declaration":2339,"isOffset":false,"isSlot":false,"src":"25607:6:4","valueSize":1}},{"ret":{"declaration":2332,"isOffset":false,"isSlot":false,"src":"25621:3:4","valueSize":1}}],"operations":"{\n retptr := add(ret, 32)\n}"},"children":[],"id":2341,"name":"InlineAssembly","src":"25596:48:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2313,"type":"uint256","value":"i"},"id":2342,"name":"Identifier","src":"25645:1:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2343,"name":"Literal","src":"25649:1:4"}],"id":2344,"name":"Assignment","src":"25645:5:4"}],"id":2345,"name":"ExpressionStatement","src":"25645:5:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2313,"type":"uint256","value":"i"},"id":2346,"name":"Identifier","src":"25652:1:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2289,"type":"struct strings.slice memory[] memory","value":"parts"},"id":2347,"name":"Identifier","src":"25656:5:4"}],"id":2348,"name":"MemberAccess","src":"25656:12:4"}],"id":2349,"name":"BinaryOperation","src":"25652:16:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2313,"type":"uint256","value":"i"},"id":2350,"name":"Identifier","src":"25670:1:4"}],"id":2351,"name":"UnaryOperation","src":"25670:3:4"}],"id":2352,"name":"ExpressionStatement","src":"25670:3:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":751,"type":"function (uint256,uint256,uint256) pure","value":"memcpy"},"id":2353,"name":"Identifier","src":"25689:6:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2339,"type":"uint256","value":"retptr"},"id":2354,"name":"Identifier","src":"25696:6:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":710,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct strings.slice memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2289,"type":"struct strings.slice memory[] memory","value":"parts"},"id":2355,"name":"Identifier","src":"25704:5:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2313,"type":"uint256","value":"i"},"id":2356,"name":"Identifier","src":"25710:1:4"}],"id":2357,"name":"IndexAccess","src":"25704:8:4"}],"id":2358,"name":"MemberAccess","src":"25704:13:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":708,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct strings.slice memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2289,"type":"struct strings.slice memory[] memory","value":"parts"},"id":2359,"name":"Identifier","src":"25719:5:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2313,"type":"uint256","value":"i"},"id":2360,"name":"Identifier","src":"25725:1:4"}],"id":2361,"name":"IndexAccess","src":"25719:8:4"}],"id":2362,"name":"MemberAccess","src":"25719:13:4"}],"id":2363,"name":"FunctionCall","src":"25689:44:4"}],"id":2364,"name":"ExpressionStatement","src":"25689:44:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2339,"type":"uint256","value":"retptr"},"id":2365,"name":"Identifier","src":"25747:6:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":708,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct strings.slice memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2289,"type":"struct strings.slice memory[] memory","value":"parts"},"id":2366,"name":"Identifier","src":"25757:5:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2313,"type":"uint256","value":"i"},"id":2367,"name":"Identifier","src":"25763:1:4"}],"id":2368,"name":"IndexAccess","src":"25757:8:4"}],"id":2369,"name":"MemberAccess","src":"25757:13:4"}],"id":2370,"name":"Assignment","src":"25747:23:4"}],"id":2371,"name":"ExpressionStatement","src":"25747:23:4"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2313,"type":"uint256","value":"i"},"id":2372,"name":"Identifier","src":"25788:1:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2289,"type":"struct strings.slice memory[] memory","value":"parts"},"id":2373,"name":"Identifier","src":"25792:5:4"}],"id":2374,"name":"MemberAccess","src":"25792:12:4"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":2375,"name":"Literal","src":"25807:1:4"}],"id":2376,"name":"BinaryOperation","src":"25792:16:4"}],"id":2377,"name":"BinaryOperation","src":"25788:20:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":751,"type":"function (uint256,uint256,uint256) pure","value":"memcpy"},"id":2378,"name":"Identifier","src":"25828:6:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2339,"type":"uint256","value":"retptr"},"id":2379,"name":"Identifier","src":"25835:6:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":710,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2286,"type":"struct strings.slice memory","value":"self"},"id":2380,"name":"Identifier","src":"25843:4:4"}],"id":2381,"name":"MemberAccess","src":"25843:9:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":708,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2286,"type":"struct strings.slice memory","value":"self"},"id":2382,"name":"Identifier","src":"25854:4:4"}],"id":2383,"name":"MemberAccess","src":"25854:9:4"}],"id":2384,"name":"FunctionCall","src":"25828:36:4"}],"id":2385,"name":"ExpressionStatement","src":"25828:36:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2339,"type":"uint256","value":"retptr"},"id":2386,"name":"Identifier","src":"25882:6:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":708,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2286,"type":"struct strings.slice memory","value":"self"},"id":2387,"name":"Identifier","src":"25892:4:4"}],"id":2388,"name":"MemberAccess","src":"25892:9:4"}],"id":2389,"name":"Assignment","src":"25882:19:4"}],"id":2390,"name":"ExpressionStatement","src":"25882:19:4"}],"id":2391,"name":"Block","src":"25810:106:4"}],"id":2392,"name":"IfStatement","src":"25784:132:4"}],"id":2393,"name":"Block","src":"25675:251:4"}],"id":2394,"name":"ForStatement","src":"25641:285:4"},{"attributes":{"functionReturnParameters":2293},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2332,"type":"string memory","value":"ret"},"id":2395,"name":"Identifier","src":"25943:3:4"}],"id":2396,"name":"Return","src":"25936:10:4"}],"id":2397,"name":"Block","src":"25323:630:4"}],"id":2398,"name":"FunctionDefinition","src":"25230:723:4"}],"id":2399,"name":"ContractDefinition","src":"2600:23355:4"}],"id":2400,"name":"SourceUnit","src":"2574:23382:4"}},"internals/claimable.sol":{"AST":{"attributes":{"absolutePath":"internals/claimable.sol","exportedSymbols":{"Claimable":[2452]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".25"]},"id":2401,"name":"PragmaDirective","src":"769:24:5"},{"attributes":{"SourceUnit":2705,"absolutePath":"externals/ERC20.sol","file":"../externals/ERC20.sol","scope":2453,"symbolAliases":[null],"unitAlias":""},"id":2402,"name":"ImportDirective","src":"795:32:5"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"contract","documentation":"@title Claimable, allowing contract to withdraw tokens accidentally sent to itself","fullyImplemented":true,"linearizedBaseContracts":[2452],"name":"Claimable","scope":2453},"children":[{"attributes":{"anonymous":false,"documentation":null,"name":"Claimed"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_to","scope":2410,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2403,"name":"ElementaryTypeName","src":"957:7:5"}],"id":2404,"name":"VariableDeclaration","src":"957:11:5"},{"attributes":{"constant":false,"indexed":false,"name":"_asset","scope":2410,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2405,"name":"ElementaryTypeName","src":"970:7:5"}],"id":2406,"name":"VariableDeclaration","src":"970:14:5"},{"attributes":{"constant":false,"indexed":false,"name":"_amount","scope":2410,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2407,"name":"ElementaryTypeName","src":"986:4:5"}],"id":2408,"name":"VariableDeclaration","src":"986:12:5"}],"id":2409,"name":"ParameterList","src":"956:43:5"}],"id":2410,"name":"EventDefinition","src":"943:57:5"},{"attributes":{"constant":false,"documentation":"@dev This function is used to move tokens sent accidentally to this contract method.\n @dev The owner can chose the new destination address\n @param _to is the recipient's address.\n @param _asset is the address of an ERC20 token or 0x0 for ether.\n @param _amount is the amount to be transferred in base units.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_claim","payable":false,"scope":2452,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_to","scope":2451,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2411,"name":"ElementaryTypeName","src":"1366:7:5"}],"id":2412,"name":"VariableDeclaration","src":"1366:11:5"},{"attributes":{"constant":false,"name":"_asset","scope":2451,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2413,"name":"ElementaryTypeName","src":"1379:7:5"}],"id":2414,"name":"VariableDeclaration","src":"1379:14:5"},{"attributes":{"constant":false,"name":"_amount","scope":2451,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2415,"name":"ElementaryTypeName","src":"1395:4:5"}],"id":2416,"name":"VariableDeclaration","src":"1395:12:5"}],"id":2417,"name":"ParameterList","src":"1365:43:5"},{"attributes":{"parameters":[null]},"children":[],"id":2418,"name":"ParameterList","src":"1418:0:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2414,"type":"address","value":"_asset"},"id":2419,"name":"Identifier","src":"1476:6:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":2420,"name":"ElementaryTypeNameExpression","src":"1486:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2421,"name":"Literal","src":"1494:1:5"}],"id":2422,"name":"FunctionCall","src":"1486:10:5"}],"id":2423,"name":"BinaryOperation","src":"1476:20:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"transfer","referencedDeclaration":null,"type":"function (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2412,"type":"address","value":"_to"},"id":2424,"name":"Identifier","src":"1512:3:5"}],"id":2426,"name":"MemberAccess","src":"1512:12:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2416,"type":"uint256","value":"_amount"},"id":2427,"name":"Identifier","src":"1525:7:5"}],"id":2428,"name":"FunctionCall","src":"1512:21:5"}],"id":2429,"name":"ExpressionStatement","src":"1512:21:5"}],"id":2430,"name":"Block","src":"1498:46:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_bebbba0e3133c903fb13ff92bbd373380a11a38636d3fcb2a56e9eeaa3171b67","typeString":"literal_string \"ERC20 token transfer was unsuccessful\""}],"overloadedDeclarations":[3722,3723],"referencedDeclaration":3723,"type":"function (bool,string memory) pure","value":"require"},"id":2431,"name":"Identifier","src":"1564:7:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"transfer","referencedDeclaration":2692,"type":"function (address,uint256) external returns (bool)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract ERC20","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2704,"type":"type(contract ERC20)","value":"ERC20"},"id":2432,"name":"Identifier","src":"1572:5:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2414,"type":"address","value":"_asset"},"id":2433,"name":"Identifier","src":"1578:6:5"}],"id":2434,"name":"FunctionCall","src":"1572:13:5"}],"id":2435,"name":"MemberAccess","src":"1572:22:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2412,"type":"address","value":"_to"},"id":2436,"name":"Identifier","src":"1595:3:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2416,"type":"uint256","value":"_amount"},"id":2437,"name":"Identifier","src":"1600:7:5"}],"id":2438,"name":"FunctionCall","src":"1572:36:5"},{"attributes":{"argumentTypes":null,"hexvalue":"455243323020746f6b656e207472616e736665722077617320756e7375636365737366756c","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"ERC20 token transfer was unsuccessful\"","value":"ERC20 token transfer was unsuccessful"},"id":2439,"name":"Literal","src":"1610:39:5"}],"id":2440,"name":"FunctionCall","src":"1564:86:5"}],"id":2441,"name":"ExpressionStatement","src":"1564:86:5"}],"id":2442,"name":"Block","src":"1550:111:5"}],"id":2443,"name":"IfStatement","src":"1472:189:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":2410,"type":"function (address,address,uint256)","value":"Claimed"},"id":2444,"name":"Identifier","src":"1676:7:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2412,"type":"address","value":"_to"},"id":2445,"name":"Identifier","src":"1684:3:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2414,"type":"address","value":"_asset"},"id":2446,"name":"Identifier","src":"1689:6:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2416,"type":"uint256","value":"_amount"},"id":2447,"name":"Identifier","src":"1697:7:5"}],"id":2448,"name":"FunctionCall","src":"1676:29:5"}],"id":2449,"name":"EmitStatement","src":"1671:34:5"}],"id":2450,"name":"Block","src":"1418:294:5"}],"id":2451,"name":"FunctionDefinition","src":"1350:362:5"}],"id":2452,"name":"ContractDefinition","src":"917:797:5"}],"id":2453,"name":"SourceUnit","src":"769:946:5"}},"internals/controllable.sol":{"AST":{"attributes":{"absolutePath":"internals/controllable.sol","exportedSymbols":{"Controllable":[2508]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".25"]},"id":2454,"name":"PragmaDirective","src":"772:24:6"},{"attributes":{"SourceUnit":3066,"absolutePath":"internals/controller.sol","file":"./controller.sol","scope":2509,"symbolAliases":[null],"unitAlias":""},"id":2455,"name":"ImportDirective","src":"798:26:6"},{"attributes":{"SourceUnit":3117,"absolutePath":"internals/ensResolvable.sol","file":"../internals/ensResolvable.sol","scope":2509,"symbolAliases":[null],"unitAlias":""},"id":2456,"name":"ImportDirective","src":"825:40:6"},{"attributes":{"contractDependencies":[3116],"contractKind":"contract","documentation":"@title Controllable implements access control functionality of the Controller found via ENS.","fullyImplemented":false,"linearizedBaseContracts":[2508,3116],"name":"Controllable","scope":2509},"children":[{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"ENSResolvable","referencedDeclaration":3116,"type":"contract ENSResolvable"},"id":2457,"name":"UserDefinedTypeName","src":"990:13:6"}],"id":2458,"name":"InheritanceSpecifier","src":"990:13:6"},{"attributes":{"constant":false,"name":"_controllerNode","scope":2508,"stateVariable":true,"storageLocation":"default","type":"bytes32","value":null,"visibility":"private"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":2459,"name":"ElementaryTypeName","src":"1087:7:6"}],"id":2460,"name":"VariableDeclaration","src":"1087:31:6"},{"attributes":{"constant":false,"documentation":"@notice Constructor initializes the controller contract object.\n @param _controllerNameHash_ is the ENS name hash of the Controller.","implemented":true,"isConstructor":true,"modifiers":[null],"name":"","payable":false,"scope":2508,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_controllerNameHash_","scope":2470,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":2461,"name":"ElementaryTypeName","src":"1285:7:6"}],"id":2462,"name":"VariableDeclaration","src":"1285:28:6"}],"id":2463,"name":"ParameterList","src":"1284:30:6"},{"attributes":{"parameters":[null]},"children":[],"id":2464,"name":"ParameterList","src":"1324:0:6"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2460,"type":"bytes32","value":"_controllerNode"},"id":2465,"name":"Identifier","src":"1334:15:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2462,"type":"bytes32","value":"_controllerNameHash_"},"id":2466,"name":"Identifier","src":"1352:20:6"}],"id":2467,"name":"Assignment","src":"1334:38:6"}],"id":2468,"name":"ExpressionStatement","src":"1334:38:6"}],"id":2469,"name":"Block","src":"1324:55:6"}],"id":2470,"name":"FunctionDefinition","src":"1273:106:6"},{"attributes":{"documentation":"@notice Checks if message sender is the controller.","name":"onlyController","visibility":"internal"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":2471,"name":"ParameterList","src":"1468:2:6"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_918bc5a096178f6e8c423f958a6008c4b24fd25b7a3ca0123b85463c61a2e566","typeString":"literal_string \"sender is not a controller\""}],"overloadedDeclarations":[3722,3723],"referencedDeclaration":3723,"type":"function (bool,string memory) pure","value":"require"},"id":2472,"name":"Identifier","src":"1481:7:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2507,"type":"function (address) view returns (bool)","value":"_isController"},"id":2473,"name":"Identifier","src":"1489:13:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3719,"type":"msg","value":"msg"},"id":2474,"name":"Identifier","src":"1503:3:6"}],"id":2475,"name":"MemberAccess","src":"1503:10:6"}],"id":2476,"name":"FunctionCall","src":"1489:25:6"},{"attributes":{"argumentTypes":null,"hexvalue":"73656e646572206973206e6f74206120636f6e74726f6c6c6572","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"sender is not a controller\"","value":"sender is not a controller"},"id":2477,"name":"Literal","src":"1516:28:6"}],"id":2478,"name":"FunctionCall","src":"1481:64:6"}],"id":2479,"name":"ExpressionStatement","src":"1481:64:6"},{"id":2480,"name":"PlaceholderStatement","src":"1555:1:6"}],"id":2481,"name":"Block","src":"1471:92:6"}],"id":2482,"name":"ModifierDefinition","src":"1445:118:6"},{"attributes":{"constant":true,"documentation":"@return the controller name hash registered in ENS.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"controllerNode","payable":false,"scope":2508,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":2483,"name":"ParameterList","src":"1652:2:6"},{"children":[{"attributes":{"constant":false,"name":"","scope":2490,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":2484,"name":"ElementaryTypeName","src":"1678:7:6"}],"id":2485,"name":"VariableDeclaration","src":"1678:7:6"}],"id":2486,"name":"ParameterList","src":"1677:9:6"},{"children":[{"attributes":{"functionReturnParameters":2486},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2460,"type":"bytes32","value":"_controllerNode"},"id":2487,"name":"Identifier","src":"1704:15:6"}],"id":2488,"name":"Return","src":"1697:22:6"}],"id":2489,"name":"Block","src":"1687:39:6"}],"id":2490,"name":"FunctionDefinition","src":"1629:97:6"},{"attributes":{"constant":true,"documentation":"@return true if the provided account is the controller.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_isController","payable":false,"scope":2508,"stateMutability":"view","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":2507,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2491,"name":"ElementaryTypeName","src":"1819:7:6"}],"id":2492,"name":"VariableDeclaration","src":"1819:16:6"}],"id":2493,"name":"ParameterList","src":"1818:18:6"},{"children":[{"attributes":{"constant":false,"name":"","scope":2507,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2494,"name":"ElementaryTypeName","src":"1860:4:6"}],"id":2495,"name":"VariableDeclaration","src":"1860:4:6"}],"id":2496,"name":"ParameterList","src":"1859:6:6"},{"children":[{"attributes":{"functionReturnParameters":2496},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"isController","referencedDeclaration":2715,"type":"function (address) view external returns (bool)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract IController","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2716,"type":"type(contract IController)","value":"IController"},"id":2497,"name":"Identifier","src":"1883:11:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[null],"referencedDeclaration":3115,"type":"function (bytes32) view returns (address)","value":"_ensResolve"},"id":2498,"name":"Identifier","src":"1895:11:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2460,"type":"bytes32","value":"_controllerNode"},"id":2499,"name":"Identifier","src":"1907:15:6"}],"id":2500,"name":"FunctionCall","src":"1895:28:6"}],"id":2501,"name":"FunctionCall","src":"1883:41:6"}],"id":2502,"name":"MemberAccess","src":"1883:54:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2492,"type":"address","value":"_account"},"id":2503,"name":"Identifier","src":"1938:8:6"}],"id":2504,"name":"FunctionCall","src":"1883:64:6"}],"id":2505,"name":"Return","src":"1876:71:6"}],"id":2506,"name":"Block","src":"1866:88:6"}],"id":2507,"name":"FunctionDefinition","src":"1796:158:6"}],"id":2508,"name":"ContractDefinition","src":"965:992:6"}],"id":2509,"name":"SourceUnit","src":"772:1186:6"}},"internals/controller.sol":{"AST":{"attributes":{"absolutePath":"internals/controller.sol","exportedSymbols":{"Controller":[3065],"IController":[2716]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".25"]},"id":2706,"name":"PragmaDirective","src":"770:24:7"},{"attributes":{"SourceUnit":2666,"absolutePath":"internals/ownable.sol","file":"./ownable.sol","scope":3066,"symbolAliases":[null],"unitAlias":""},"id":2707,"name":"ImportDirective","src":"796:23:7"},{"attributes":{"SourceUnit":2453,"absolutePath":"internals/claimable.sol","file":"./claimable.sol","scope":3066,"symbolAliases":[null],"unitAlias":""},"id":2708,"name":"ImportDirective","src":"820:25:7"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"interface","documentation":"@title The IController interface provides access to the isController check.","fullyImplemented":false,"linearizedBaseContracts":[2716],"name":"IController","scope":3066},"children":[{"attributes":{"body":null,"constant":true,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"isController","payable":false,"scope":2716,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"","scope":2715,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2709,"name":"ElementaryTypeName","src":"977:7:7"}],"id":2710,"name":"VariableDeclaration","src":"977:7:7"}],"id":2711,"name":"ParameterList","src":"976:9:7"},{"children":[{"attributes":{"constant":false,"name":"","scope":2715,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2712,"name":"ElementaryTypeName","src":"1009:4:7"}],"id":2713,"name":"VariableDeclaration","src":"1009:4:7"}],"id":2714,"name":"ParameterList","src":"1008:6:7"}],"id":2715,"name":"FunctionDefinition","src":"955:60:7"}],"id":2716,"name":"ContractDefinition","src":"927:90:7"},{"attributes":{"contractDependencies":[2452,2665,2716],"contractKind":"contract","documentation":"@title Controller stores a list of controller addresses that can be used for authentication in other contracts.\n @notice The Controller implements a hierarchy of concepts, Owner, Admin, and the Controllers.\n @dev Owner can change the Admins\n @dev Admins and can the Controllers\n @dev Controllers are used by the application.","fullyImplemented":true,"linearizedBaseContracts":[3065,2452,2665,2716],"name":"Controller","scope":3066},"children":[{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"IController","referencedDeclaration":2716,"type":"contract IController"},"id":2717,"name":"UserDefinedTypeName","src":"1384:11:7"}],"id":2718,"name":"InheritanceSpecifier","src":"1384:11:7"},{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"Ownable","referencedDeclaration":2665,"type":"contract Ownable"},"id":2719,"name":"UserDefinedTypeName","src":"1397:7:7"}],"id":2720,"name":"InheritanceSpecifier","src":"1397:7:7"},{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"Claimable","referencedDeclaration":2452,"type":"contract Claimable"},"id":2721,"name":"UserDefinedTypeName","src":"1406:9:7"}],"id":2722,"name":"InheritanceSpecifier","src":"1406:9:7"},{"attributes":{"anonymous":false,"documentation":null,"name":"AddedController"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_sender","scope":2728,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2723,"name":"ElementaryTypeName","src":"1445:7:7"}],"id":2724,"name":"VariableDeclaration","src":"1445:15:7"},{"attributes":{"constant":false,"indexed":false,"name":"_controller","scope":2728,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2725,"name":"ElementaryTypeName","src":"1462:7:7"}],"id":2726,"name":"VariableDeclaration","src":"1462:19:7"}],"id":2727,"name":"ParameterList","src":"1444:38:7"}],"id":2728,"name":"EventDefinition","src":"1423:60:7"},{"attributes":{"anonymous":false,"documentation":null,"name":"RemovedController"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_sender","scope":2734,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2729,"name":"ElementaryTypeName","src":"1512:7:7"}],"id":2730,"name":"VariableDeclaration","src":"1512:15:7"},{"attributes":{"constant":false,"indexed":false,"name":"_controller","scope":2734,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2731,"name":"ElementaryTypeName","src":"1529:7:7"}],"id":2732,"name":"VariableDeclaration","src":"1529:19:7"}],"id":2733,"name":"ParameterList","src":"1511:38:7"}],"id":2734,"name":"EventDefinition","src":"1488:62:7"},{"attributes":{"anonymous":false,"documentation":null,"name":"AddedAdmin"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_sender","scope":2740,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2735,"name":"ElementaryTypeName","src":"1573:7:7"}],"id":2736,"name":"VariableDeclaration","src":"1573:15:7"},{"attributes":{"constant":false,"indexed":false,"name":"_admin","scope":2740,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2737,"name":"ElementaryTypeName","src":"1590:7:7"}],"id":2738,"name":"VariableDeclaration","src":"1590:14:7"}],"id":2739,"name":"ParameterList","src":"1572:33:7"}],"id":2740,"name":"EventDefinition","src":"1556:50:7"},{"attributes":{"anonymous":false,"documentation":null,"name":"RemovedAdmin"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_sender","scope":2746,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2741,"name":"ElementaryTypeName","src":"1630:7:7"}],"id":2742,"name":"VariableDeclaration","src":"1630:15:7"},{"attributes":{"constant":false,"indexed":false,"name":"_admin","scope":2746,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2743,"name":"ElementaryTypeName","src":"1647:7:7"}],"id":2744,"name":"VariableDeclaration","src":"1647:14:7"}],"id":2745,"name":"ParameterList","src":"1629:33:7"}],"id":2746,"name":"EventDefinition","src":"1611:52:7"},{"attributes":{"constant":false,"name":"_isAdmin","scope":3065,"stateVariable":true,"storageLocation":"default","type":"mapping(address => bool)","value":null,"visibility":"private"},"children":[{"attributes":{"type":"mapping(address => bool)"},"children":[{"attributes":{"name":"address","type":"address"},"id":2747,"name":"ElementaryTypeName","src":"1678:7:7"},{"attributes":{"name":"bool","type":"bool"},"id":2748,"name":"ElementaryTypeName","src":"1689:4:7"}],"id":2749,"name":"Mapping","src":"1669:25:7"}],"id":2750,"name":"VariableDeclaration","src":"1669:42:7"},{"attributes":{"constant":false,"name":"_adminCount","scope":3065,"stateVariable":true,"storageLocation":"default","type":"uint256","value":null,"visibility":"private"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2751,"name":"ElementaryTypeName","src":"1717:4:7"}],"id":2752,"name":"VariableDeclaration","src":"1717:24:7"},{"attributes":{"constant":false,"name":"_isController","scope":3065,"stateVariable":true,"storageLocation":"default","type":"mapping(address => bool)","value":null,"visibility":"private"},"children":[{"attributes":{"type":"mapping(address => bool)"},"children":[{"attributes":{"name":"address","type":"address"},"id":2753,"name":"ElementaryTypeName","src":"1757:7:7"},{"attributes":{"name":"bool","type":"bool"},"id":2754,"name":"ElementaryTypeName","src":"1768:4:7"}],"id":2755,"name":"Mapping","src":"1748:25:7"}],"id":2756,"name":"VariableDeclaration","src":"1748:47:7"},{"attributes":{"constant":false,"name":"_controllerCount","scope":3065,"stateVariable":true,"storageLocation":"default","type":"uint256","value":null,"visibility":"private"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2757,"name":"ElementaryTypeName","src":"1801:4:7"}],"id":2758,"name":"VariableDeclaration","src":"1801:29:7"},{"attributes":{"constant":false,"documentation":"@notice Constructor initializes the owner with the provided address.\n @param _ownerAddress_ address of the owner.\n @param _transferable_ indicates whether the contract ownership can be transferred.","implemented":true,"isConstructor":true,"name":"","payable":false,"scope":3065,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"_ownerAddress_","scope":2770,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2759,"name":"ElementaryTypeName","src":"2069:7:7"}],"id":2760,"name":"VariableDeclaration","src":"2069:22:7"},{"attributes":{"constant":false,"name":"_transferable_","scope":2770,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2761,"name":"ElementaryTypeName","src":"2093:4:7"}],"id":2762,"name":"VariableDeclaration","src":"2093:19:7"}],"id":2763,"name":"ParameterList","src":"2068:45:7"},{"attributes":{"parameters":[null]},"children":[],"id":2768,"name":"ParameterList","src":"2161:0:7"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2665,"type":"type(contract Ownable)","value":"Ownable"},"id":2764,"name":"Identifier","src":"2114:7:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2760,"type":"address","value":"_ownerAddress_"},"id":2765,"name":"Identifier","src":"2122:14:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2762,"type":"bool","value":"_transferable_"},"id":2766,"name":"Identifier","src":"2138:14:7"}],"id":2767,"name":"ModifierInvocation","src":"2114:39:7"},{"attributes":{"statements":[null]},"children":[],"id":2769,"name":"Block","src":"2161:3:7"}],"id":2770,"name":"FunctionDefinition","src":"2057:107:7"},{"attributes":{"documentation":"@notice Checks if message sender is an admin.","name":"onlyAdmin","visibility":"internal"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":2771,"name":"ParameterList","src":"2242:2:7"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_156cbb05733026f4aa0b363c6a3be5f21b7ab8f248a865cc639a4d928ddeabb8","typeString":"literal_string \"sender is not an admin\""}],"overloadedDeclarations":[3722,3723],"referencedDeclaration":3723,"type":"function (bool,string memory) pure","value":"require"},"id":2772,"name":"Identifier","src":"2255:7:7"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2870,"type":"function (address) view returns (bool)","value":"isAdmin"},"id":2773,"name":"Identifier","src":"2263:7:7"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3719,"type":"msg","value":"msg"},"id":2774,"name":"Identifier","src":"2271:3:7"}],"id":2775,"name":"MemberAccess","src":"2271:10:7"}],"id":2776,"name":"FunctionCall","src":"2263:19:7"},{"attributes":{"argumentTypes":null,"hexvalue":"73656e646572206973206e6f7420616e2061646d696e","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"sender is not an admin\"","value":"sender is not an admin"},"id":2777,"name":"Literal","src":"2284:24:7"}],"id":2778,"name":"FunctionCall","src":"2255:54:7"}],"id":2779,"name":"ExpressionStatement","src":"2255:54:7"},{"id":2780,"name":"PlaceholderStatement","src":"2319:1:7"}],"id":2781,"name":"Block","src":"2245:82:7"}],"id":2782,"name":"ModifierDefinition","src":"2224:103:7"},{"attributes":{"documentation":"@notice Checks if message sender is a controller.","name":"onlyController","visibility":"internal"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":2783,"name":"ParameterList","src":"2414:2:7"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_918bc5a096178f6e8c423f958a6008c4b24fd25b7a3ca0123b85463c61a2e566","typeString":"literal_string \"sender is not a controller\""}],"overloadedDeclarations":[3722,3723],"referencedDeclaration":3723,"type":"function (bool,string memory) pure","value":"require"},"id":2784,"name":"Identifier","src":"2427:7:7"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2882,"type":"function (address) view returns (bool)","value":"isController"},"id":2785,"name":"Identifier","src":"2435:12:7"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3719,"type":"msg","value":"msg"},"id":2786,"name":"Identifier","src":"2448:3:7"}],"id":2787,"name":"MemberAccess","src":"2448:10:7"}],"id":2788,"name":"FunctionCall","src":"2435:24:7"},{"attributes":{"argumentTypes":null,"hexvalue":"73656e646572206973206e6f74206120636f6e74726f6c6c6572","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"sender is not a controller\"","value":"sender is not a controller"},"id":2789,"name":"Literal","src":"2461:28:7"}],"id":2790,"name":"FunctionCall","src":"2427:63:7"}],"id":2791,"name":"ExpressionStatement","src":"2427:63:7"},{"id":2792,"name":"PlaceholderStatement","src":"2500:1:7"}],"id":2793,"name":"Block","src":"2417:91:7"}],"id":2794,"name":"ModifierDefinition","src":"2391:117:7"},{"attributes":{"constant":false,"documentation":"@notice Add a new admin to the list of admins.\n @param _account address to add to the list of admins.","implemented":true,"isConstructor":false,"name":"addAdmin","payable":false,"scope":3065,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":2806,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2795,"name":"ElementaryTypeName","src":"2649:7:7"}],"id":2796,"name":"VariableDeclaration","src":"2649:16:7"}],"id":2797,"name":"ParameterList","src":"2648:18:7"},{"attributes":{"parameters":[null]},"children":[],"id":2800,"name":"ParameterList","src":"2686:0:7"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2567,"type":"modifier ()","value":"onlyOwner"},"id":2798,"name":"Identifier","src":"2676:9:7"}],"id":2799,"name":"ModifierInvocation","src":"2676:9:7"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2936,"type":"function (address)","value":"_addAdmin"},"id":2801,"name":"Identifier","src":"2696:9:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2796,"type":"address","value":"_account"},"id":2802,"name":"Identifier","src":"2706:8:7"}],"id":2803,"name":"FunctionCall","src":"2696:19:7"}],"id":2804,"name":"ExpressionStatement","src":"2696:19:7"}],"id":2805,"name":"Block","src":"2686:36:7"}],"id":2806,"name":"FunctionDefinition","src":"2631:91:7"},{"attributes":{"constant":false,"documentation":"@notice Remove a admin from the list of admins.\n @param _account address to remove from the list of admins.","implemented":true,"isConstructor":false,"name":"removeAdmin","payable":false,"scope":3065,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":2818,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2807,"name":"ElementaryTypeName","src":"2872:7:7"}],"id":2808,"name":"VariableDeclaration","src":"2872:16:7"}],"id":2809,"name":"ParameterList","src":"2871:18:7"},{"attributes":{"parameters":[null]},"children":[],"id":2812,"name":"ParameterList","src":"2909:0:7"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2567,"type":"modifier ()","value":"onlyOwner"},"id":2810,"name":"Identifier","src":"2899:9:7"}],"id":2811,"name":"ModifierInvocation","src":"2899:9:7"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2964,"type":"function (address)","value":"_removeAdmin"},"id":2813,"name":"Identifier","src":"2919:12:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2808,"type":"address","value":"_account"},"id":2814,"name":"Identifier","src":"2932:8:7"}],"id":2815,"name":"FunctionCall","src":"2919:22:7"}],"id":2816,"name":"ExpressionStatement","src":"2919:22:7"}],"id":2817,"name":"Block","src":"2909:39:7"}],"id":2818,"name":"FunctionDefinition","src":"2851:97:7"},{"attributes":{"constant":true,"documentation":"@return the current number of admins.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"adminCount","payable":false,"scope":3065,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":2819,"name":"ParameterList","src":"3019:2:7"},{"children":[{"attributes":{"constant":false,"name":"","scope":2826,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2820,"name":"ElementaryTypeName","src":"3045:4:7"}],"id":2821,"name":"VariableDeclaration","src":"3045:4:7"}],"id":2822,"name":"ParameterList","src":"3044:6:7"},{"children":[{"attributes":{"functionReturnParameters":2822},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2752,"type":"uint256","value":"_adminCount"},"id":2823,"name":"Identifier","src":"3068:11:7"}],"id":2824,"name":"Return","src":"3061:18:7"}],"id":2825,"name":"Block","src":"3051:35:7"}],"id":2826,"name":"FunctionDefinition","src":"3000:86:7"},{"attributes":{"constant":false,"documentation":"@notice Add a new controller to the list of controllers.\n @param _account address to add to the list of controllers.","implemented":true,"isConstructor":false,"name":"addController","payable":false,"scope":3065,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":2838,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2827,"name":"ElementaryTypeName","src":"3247:7:7"}],"id":2828,"name":"VariableDeclaration","src":"3247:16:7"}],"id":2829,"name":"ParameterList","src":"3246:18:7"},{"attributes":{"parameters":[null]},"children":[],"id":2832,"name":"ParameterList","src":"3284:0:7"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2782,"type":"modifier ()","value":"onlyAdmin"},"id":2830,"name":"Identifier","src":"3274:9:7"}],"id":2831,"name":"ModifierInvocation","src":"3274:9:7"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":3018,"type":"function (address)","value":"_addController"},"id":2833,"name":"Identifier","src":"3294:14:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2828,"type":"address","value":"_account"},"id":2834,"name":"Identifier","src":"3309:8:7"}],"id":2835,"name":"FunctionCall","src":"3294:24:7"}],"id":2836,"name":"ExpressionStatement","src":"3294:24:7"}],"id":2837,"name":"Block","src":"3284:41:7"}],"id":2838,"name":"FunctionDefinition","src":"3224:101:7"},{"attributes":{"constant":false,"documentation":"@notice Remove a controller from the list of controllers.\n @param _account address to remove from the list of controllers.","implemented":true,"isConstructor":false,"name":"removeController","payable":false,"scope":3065,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":2850,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2839,"name":"ElementaryTypeName","src":"3495:7:7"}],"id":2840,"name":"VariableDeclaration","src":"3495:16:7"}],"id":2841,"name":"ParameterList","src":"3494:18:7"},{"attributes":{"parameters":[null]},"children":[],"id":2844,"name":"ParameterList","src":"3532:0:7"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2782,"type":"modifier ()","value":"onlyAdmin"},"id":2842,"name":"Identifier","src":"3522:9:7"}],"id":2843,"name":"ModifierInvocation","src":"3522:9:7"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":3046,"type":"function (address)","value":"_removeController"},"id":2845,"name":"Identifier","src":"3542:17:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2840,"type":"address","value":"_account"},"id":2846,"name":"Identifier","src":"3560:8:7"}],"id":2847,"name":"FunctionCall","src":"3542:27:7"}],"id":2848,"name":"ExpressionStatement","src":"3542:27:7"}],"id":2849,"name":"Block","src":"3532:44:7"}],"id":2850,"name":"FunctionDefinition","src":"3469:107:7"},{"attributes":{"constant":true,"documentation":"@notice count the Controllers\n @return the current number of controllers.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"controllerCount","payable":false,"scope":3065,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":2851,"name":"ParameterList","src":"3695:2:7"},{"children":[{"attributes":{"constant":false,"name":"","scope":2858,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2852,"name":"ElementaryTypeName","src":"3721:4:7"}],"id":2853,"name":"VariableDeclaration","src":"3721:4:7"}],"id":2854,"name":"ParameterList","src":"3720:6:7"},{"children":[{"attributes":{"functionReturnParameters":2854},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2758,"type":"uint256","value":"_controllerCount"},"id":2855,"name":"Identifier","src":"3744:16:7"}],"id":2856,"name":"Return","src":"3737:23:7"}],"id":2857,"name":"Block","src":"3727:40:7"}],"id":2858,"name":"FunctionDefinition","src":"3671:96:7"},{"attributes":{"constant":true,"documentation":"@notice is an address an Admin?\n @return true if the provided account is an admin.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"isAdmin","payable":false,"scope":3065,"stateMutability":"view","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":2870,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2859,"name":"ElementaryTypeName","src":"3888:7:7"}],"id":2860,"name":"VariableDeclaration","src":"3888:16:7"}],"id":2861,"name":"ParameterList","src":"3887:18:7"},{"children":[{"attributes":{"constant":false,"name":"","scope":2870,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2862,"name":"ElementaryTypeName","src":"3927:4:7"}],"id":2863,"name":"VariableDeclaration","src":"3927:4:7"}],"id":2864,"name":"ParameterList","src":"3926:6:7"},{"children":[{"attributes":{"functionReturnParameters":2864},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2750,"type":"mapping(address => bool)","value":"_isAdmin"},"id":2865,"name":"Identifier","src":"3950:8:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2860,"type":"address","value":"_account"},"id":2866,"name":"Identifier","src":"3959:8:7"}],"id":2867,"name":"IndexAccess","src":"3950:18:7"}],"id":2868,"name":"Return","src":"3943:25:7"}],"id":2869,"name":"Block","src":"3933:42:7"}],"id":2870,"name":"FunctionDefinition","src":"3871:104:7"},{"attributes":{"constant":true,"documentation":"@notice is an address a Controller?\n @return true if the provided account is a controller.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"isController","payable":false,"scope":3065,"stateMutability":"view","superFunction":2715,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":2882,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2871,"name":"ElementaryTypeName","src":"4109:7:7"}],"id":2872,"name":"VariableDeclaration","src":"4109:16:7"}],"id":2873,"name":"ParameterList","src":"4108:18:7"},{"children":[{"attributes":{"constant":false,"name":"","scope":2882,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2874,"name":"ElementaryTypeName","src":"4148:4:7"}],"id":2875,"name":"VariableDeclaration","src":"4148:4:7"}],"id":2876,"name":"ParameterList","src":"4147:6:7"},{"children":[{"attributes":{"functionReturnParameters":2876},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2756,"type":"mapping(address => bool)","value":"_isController"},"id":2877,"name":"Identifier","src":"4171:13:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2872,"type":"address","value":"_account"},"id":2878,"name":"Identifier","src":"4185:8:7"}],"id":2879,"name":"IndexAccess","src":"4171:23:7"}],"id":2880,"name":"Return","src":"4164:30:7"}],"id":2881,"name":"Block","src":"4154:47:7"}],"id":2882,"name":"FunctionDefinition","src":"4087:114:7"},{"attributes":{"constant":false,"documentation":"@notice Internal-only function that adds a new admin.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_addAdmin","payable":false,"scope":3065,"stateMutability":"nonpayable","superFunction":null,"visibility":"private"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":2936,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2883,"name":"ElementaryTypeName","src":"4288:7:7"}],"id":2884,"name":"VariableDeclaration","src":"4288:16:7"}],"id":2885,"name":"ParameterList","src":"4287:18:7"},{"attributes":{"parameters":[null]},"children":[],"id":2886,"name":"ParameterList","src":"4314:0:7"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_491ef411eef1615ecf908753bd22ae846aac933d79b0327335a18e3988db6215","typeString":"literal_string \"provided account is already an admin\""}],"overloadedDeclarations":[3722,3723],"referencedDeclaration":3723,"type":"function (bool,string memory) pure","value":"require"},"id":2887,"name":"Identifier","src":"4324:7:7"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2750,"type":"mapping(address => bool)","value":"_isAdmin"},"id":2888,"name":"Identifier","src":"4333:8:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2884,"type":"address","value":"_account"},"id":2889,"name":"Identifier","src":"4342:8:7"}],"id":2890,"name":"IndexAccess","src":"4333:18:7"}],"id":2891,"name":"UnaryOperation","src":"4332:19:7"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e7420697320616c726561647920616e2061646d696e","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is already an admin\"","value":"provided account is already an admin"},"id":2892,"name":"Literal","src":"4353:38:7"}],"id":2893,"name":"FunctionCall","src":"4324:68:7"}],"id":2894,"name":"ExpressionStatement","src":"4324:68:7"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ea5e43d1c86e3916e6efb6c5ad4a915069293195e26cfb0847e731b480c61b69","typeString":"literal_string \"provided account is already a controller\""}],"overloadedDeclarations":[3722,3723],"referencedDeclaration":3723,"type":"function (bool,string memory) pure","value":"require"},"id":2895,"name":"Identifier","src":"4402:7:7"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2756,"type":"mapping(address => bool)","value":"_isController"},"id":2896,"name":"Identifier","src":"4411:13:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2884,"type":"address","value":"_account"},"id":2897,"name":"Identifier","src":"4425:8:7"}],"id":2898,"name":"IndexAccess","src":"4411:23:7"}],"id":2899,"name":"UnaryOperation","src":"4410:24:7"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e7420697320616c7265616479206120636f6e74726f6c6c6572","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is already a controller\"","value":"provided account is already a controller"},"id":2900,"name":"Literal","src":"4436:42:7"}],"id":2901,"name":"FunctionCall","src":"4402:77:7"}],"id":2902,"name":"ExpressionStatement","src":"4402:77:7"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_28b510b314348cd3eee423698115cd76923e2c39fff2abeefc9606aa1cd4c741","typeString":"literal_string \"provided account is already the owner\""}],"overloadedDeclarations":[3722,3723],"referencedDeclaration":3723,"type":"function (bool,string memory) pure","value":"require"},"id":2903,"name":"Identifier","src":"4489:7:7"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2664,"type":"function (address) view returns (bool)","value":"_isOwner"},"id":2904,"name":"Identifier","src":"4498:8:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2884,"type":"address","value":"_account"},"id":2905,"name":"Identifier","src":"4507:8:7"}],"id":2906,"name":"FunctionCall","src":"4498:18:7"}],"id":2907,"name":"UnaryOperation","src":"4497:19:7"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e7420697320616c726561647920746865206f776e6572","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is already the owner\"","value":"provided account is already the owner"},"id":2908,"name":"Literal","src":"4518:39:7"}],"id":2909,"name":"FunctionCall","src":"4489:69:7"}],"id":2910,"name":"ExpressionStatement","src":"4489:69:7"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_da72d12cc1dab77bb87826430977e9a5d381ba54a70ad14cb2761e202f01ff3b","typeString":"literal_string \"provided account is the zero address\""}],"overloadedDeclarations":[3722,3723],"referencedDeclaration":3723,"type":"function (bool,string memory) pure","value":"require"},"id":2911,"name":"Identifier","src":"4568:7:7"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2884,"type":"address","value":"_account"},"id":2912,"name":"Identifier","src":"4576:8:7"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":2913,"name":"ElementaryTypeNameExpression","src":"4588:7:7"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2914,"name":"Literal","src":"4596:1:7"}],"id":2915,"name":"FunctionCall","src":"4588:10:7"}],"id":2916,"name":"BinaryOperation","src":"4576:22:7"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e7420697320746865207a65726f2061646472657373","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is the zero address\"","value":"provided account is the zero address"},"id":2917,"name":"Literal","src":"4600:38:7"}],"id":2918,"name":"FunctionCall","src":"4568:71:7"}],"id":2919,"name":"ExpressionStatement","src":"4568:71:7"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2750,"type":"mapping(address => bool)","value":"_isAdmin"},"id":2920,"name":"Identifier","src":"4649:8:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2884,"type":"address","value":"_account"},"id":2921,"name":"Identifier","src":"4658:8:7"}],"id":2922,"name":"IndexAccess","src":"4649:18:7"},{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":2923,"name":"Literal","src":"4670:4:7"}],"id":2924,"name":"Assignment","src":"4649:25:7"}],"id":2925,"name":"ExpressionStatement","src":"4649:25:7"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2752,"type":"uint256","value":"_adminCount"},"id":2926,"name":"Identifier","src":"4684:11:7"}],"id":2927,"name":"UnaryOperation","src":"4684:13:7"}],"id":2928,"name":"ExpressionStatement","src":"4684:13:7"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2740,"type":"function (address,address)","value":"AddedAdmin"},"id":2929,"name":"Identifier","src":"4712:10:7"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3719,"type":"msg","value":"msg"},"id":2930,"name":"Identifier","src":"4723:3:7"}],"id":2931,"name":"MemberAccess","src":"4723:10:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2884,"type":"address","value":"_account"},"id":2932,"name":"Identifier","src":"4735:8:7"}],"id":2933,"name":"FunctionCall","src":"4712:32:7"}],"id":2934,"name":"EmitStatement","src":"4707:37:7"}],"id":2935,"name":"Block","src":"4314:437:7"}],"id":2936,"name":"FunctionDefinition","src":"4269:482:7"},{"attributes":{"constant":false,"documentation":"@notice Internal-only function that removes an existing admin.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_removeAdmin","payable":false,"scope":3065,"stateMutability":"nonpayable","superFunction":null,"visibility":"private"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":2964,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2937,"name":"ElementaryTypeName","src":"4850:7:7"}],"id":2938,"name":"VariableDeclaration","src":"4850:16:7"}],"id":2939,"name":"ParameterList","src":"4849:18:7"},{"attributes":{"parameters":[null]},"children":[],"id":2940,"name":"ParameterList","src":"4876:0:7"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1c739c60677de73f71e20970ace8544e82a98bdcd16e21df5754e7a2756cbedc","typeString":"literal_string \"provided account is not an admin\""}],"overloadedDeclarations":[3722,3723],"referencedDeclaration":3723,"type":"function (bool,string memory) pure","value":"require"},"id":2941,"name":"Identifier","src":"4886:7:7"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2750,"type":"mapping(address => bool)","value":"_isAdmin"},"id":2942,"name":"Identifier","src":"4894:8:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2938,"type":"address","value":"_account"},"id":2943,"name":"Identifier","src":"4903:8:7"}],"id":2944,"name":"IndexAccess","src":"4894:18:7"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e74206973206e6f7420616e2061646d696e","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is not an admin\"","value":"provided account is not an admin"},"id":2945,"name":"Literal","src":"4914:34:7"}],"id":2946,"name":"FunctionCall","src":"4886:63:7"}],"id":2947,"name":"ExpressionStatement","src":"4886:63:7"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2750,"type":"mapping(address => bool)","value":"_isAdmin"},"id":2948,"name":"Identifier","src":"4959:8:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2938,"type":"address","value":"_account"},"id":2949,"name":"Identifier","src":"4968:8:7"}],"id":2950,"name":"IndexAccess","src":"4959:18:7"},{"attributes":{"argumentTypes":null,"hexvalue":"66616c7365","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"false"},"id":2951,"name":"Literal","src":"4980:5:7"}],"id":2952,"name":"Assignment","src":"4959:26:7"}],"id":2953,"name":"ExpressionStatement","src":"4959:26:7"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"--","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2752,"type":"uint256","value":"_adminCount"},"id":2954,"name":"Identifier","src":"4995:11:7"}],"id":2955,"name":"UnaryOperation","src":"4995:13:7"}],"id":2956,"name":"ExpressionStatement","src":"4995:13:7"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2746,"type":"function (address,address)","value":"RemovedAdmin"},"id":2957,"name":"Identifier","src":"5023:12:7"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3719,"type":"msg","value":"msg"},"id":2958,"name":"Identifier","src":"5036:3:7"}],"id":2959,"name":"MemberAccess","src":"5036:10:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2938,"type":"address","value":"_account"},"id":2960,"name":"Identifier","src":"5048:8:7"}],"id":2961,"name":"FunctionCall","src":"5023:34:7"}],"id":2962,"name":"EmitStatement","src":"5018:39:7"}],"id":2963,"name":"Block","src":"4876:188:7"}],"id":2964,"name":"FunctionDefinition","src":"4828:236:7"},{"attributes":{"constant":false,"documentation":"@notice Internal-only function that adds a new controller.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_addController","payable":false,"scope":3065,"stateMutability":"nonpayable","superFunction":null,"visibility":"private"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":3018,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2965,"name":"ElementaryTypeName","src":"5161:7:7"}],"id":2966,"name":"VariableDeclaration","src":"5161:16:7"}],"id":2967,"name":"ParameterList","src":"5160:18:7"},{"attributes":{"parameters":[null]},"children":[],"id":2968,"name":"ParameterList","src":"5187:0:7"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_491ef411eef1615ecf908753bd22ae846aac933d79b0327335a18e3988db6215","typeString":"literal_string \"provided account is already an admin\""}],"overloadedDeclarations":[3722,3723],"referencedDeclaration":3723,"type":"function (bool,string memory) pure","value":"require"},"id":2969,"name":"Identifier","src":"5197:7:7"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2750,"type":"mapping(address => bool)","value":"_isAdmin"},"id":2970,"name":"Identifier","src":"5206:8:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2966,"type":"address","value":"_account"},"id":2971,"name":"Identifier","src":"5215:8:7"}],"id":2972,"name":"IndexAccess","src":"5206:18:7"}],"id":2973,"name":"UnaryOperation","src":"5205:19:7"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e7420697320616c726561647920616e2061646d696e","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is already an admin\"","value":"provided account is already an admin"},"id":2974,"name":"Literal","src":"5226:38:7"}],"id":2975,"name":"FunctionCall","src":"5197:68:7"}],"id":2976,"name":"ExpressionStatement","src":"5197:68:7"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ea5e43d1c86e3916e6efb6c5ad4a915069293195e26cfb0847e731b480c61b69","typeString":"literal_string \"provided account is already a controller\""}],"overloadedDeclarations":[3722,3723],"referencedDeclaration":3723,"type":"function (bool,string memory) pure","value":"require"},"id":2977,"name":"Identifier","src":"5275:7:7"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2756,"type":"mapping(address => bool)","value":"_isController"},"id":2978,"name":"Identifier","src":"5284:13:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2966,"type":"address","value":"_account"},"id":2979,"name":"Identifier","src":"5298:8:7"}],"id":2980,"name":"IndexAccess","src":"5284:23:7"}],"id":2981,"name":"UnaryOperation","src":"5283:24:7"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e7420697320616c7265616479206120636f6e74726f6c6c6572","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is already a controller\"","value":"provided account is already a controller"},"id":2982,"name":"Literal","src":"5309:42:7"}],"id":2983,"name":"FunctionCall","src":"5275:77:7"}],"id":2984,"name":"ExpressionStatement","src":"5275:77:7"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_28b510b314348cd3eee423698115cd76923e2c39fff2abeefc9606aa1cd4c741","typeString":"literal_string \"provided account is already the owner\""}],"overloadedDeclarations":[3722,3723],"referencedDeclaration":3723,"type":"function (bool,string memory) pure","value":"require"},"id":2985,"name":"Identifier","src":"5362:7:7"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2664,"type":"function (address) view returns (bool)","value":"_isOwner"},"id":2986,"name":"Identifier","src":"5371:8:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2966,"type":"address","value":"_account"},"id":2987,"name":"Identifier","src":"5380:8:7"}],"id":2988,"name":"FunctionCall","src":"5371:18:7"}],"id":2989,"name":"UnaryOperation","src":"5370:19:7"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e7420697320616c726561647920746865206f776e6572","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is already the owner\"","value":"provided account is already the owner"},"id":2990,"name":"Literal","src":"5391:39:7"}],"id":2991,"name":"FunctionCall","src":"5362:69:7"}],"id":2992,"name":"ExpressionStatement","src":"5362:69:7"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_da72d12cc1dab77bb87826430977e9a5d381ba54a70ad14cb2761e202f01ff3b","typeString":"literal_string \"provided account is the zero address\""}],"overloadedDeclarations":[3722,3723],"referencedDeclaration":3723,"type":"function (bool,string memory) pure","value":"require"},"id":2993,"name":"Identifier","src":"5441:7:7"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2966,"type":"address","value":"_account"},"id":2994,"name":"Identifier","src":"5449:8:7"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":2995,"name":"ElementaryTypeNameExpression","src":"5461:7:7"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2996,"name":"Literal","src":"5469:1:7"}],"id":2997,"name":"FunctionCall","src":"5461:10:7"}],"id":2998,"name":"BinaryOperation","src":"5449:22:7"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e7420697320746865207a65726f2061646472657373","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is the zero address\"","value":"provided account is the zero address"},"id":2999,"name":"Literal","src":"5473:38:7"}],"id":3000,"name":"FunctionCall","src":"5441:71:7"}],"id":3001,"name":"ExpressionStatement","src":"5441:71:7"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2756,"type":"mapping(address => bool)","value":"_isController"},"id":3002,"name":"Identifier","src":"5522:13:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2966,"type":"address","value":"_account"},"id":3003,"name":"Identifier","src":"5536:8:7"}],"id":3004,"name":"IndexAccess","src":"5522:23:7"},{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":3005,"name":"Literal","src":"5548:4:7"}],"id":3006,"name":"Assignment","src":"5522:30:7"}],"id":3007,"name":"ExpressionStatement","src":"5522:30:7"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2758,"type":"uint256","value":"_controllerCount"},"id":3008,"name":"Identifier","src":"5562:16:7"}],"id":3009,"name":"UnaryOperation","src":"5562:18:7"}],"id":3010,"name":"ExpressionStatement","src":"5562:18:7"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2728,"type":"function (address,address)","value":"AddedController"},"id":3011,"name":"Identifier","src":"5595:15:7"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3719,"type":"msg","value":"msg"},"id":3012,"name":"Identifier","src":"5611:3:7"}],"id":3013,"name":"MemberAccess","src":"5611:10:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2966,"type":"address","value":"_account"},"id":3014,"name":"Identifier","src":"5623:8:7"}],"id":3015,"name":"FunctionCall","src":"5595:37:7"}],"id":3016,"name":"EmitStatement","src":"5590:42:7"}],"id":3017,"name":"Block","src":"5187:452:7"}],"id":3018,"name":"FunctionDefinition","src":"5137:502:7"},{"attributes":{"constant":false,"documentation":"@notice Internal-only function that removes an existing controller.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_removeController","payable":false,"scope":3065,"stateMutability":"nonpayable","superFunction":null,"visibility":"private"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":3046,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3019,"name":"ElementaryTypeName","src":"5748:7:7"}],"id":3020,"name":"VariableDeclaration","src":"5748:16:7"}],"id":3021,"name":"ParameterList","src":"5747:18:7"},{"attributes":{"parameters":[null]},"children":[],"id":3022,"name":"ParameterList","src":"5774:0:7"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_61b6700985eb6a295850095b1dc6d25862c09fd9ea7ce39c0e5f303dfe8ed582","typeString":"literal_string \"provided account is not a controller\""}],"overloadedDeclarations":[3722,3723],"referencedDeclaration":3723,"type":"function (bool,string memory) pure","value":"require"},"id":3023,"name":"Identifier","src":"5784:7:7"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2756,"type":"mapping(address => bool)","value":"_isController"},"id":3024,"name":"Identifier","src":"5792:13:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3020,"type":"address","value":"_account"},"id":3025,"name":"Identifier","src":"5806:8:7"}],"id":3026,"name":"IndexAccess","src":"5792:23:7"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e74206973206e6f74206120636f6e74726f6c6c6572","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is not a controller\"","value":"provided account is not a controller"},"id":3027,"name":"Literal","src":"5817:38:7"}],"id":3028,"name":"FunctionCall","src":"5784:72:7"}],"id":3029,"name":"ExpressionStatement","src":"5784:72:7"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2756,"type":"mapping(address => bool)","value":"_isController"},"id":3030,"name":"Identifier","src":"5866:13:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3020,"type":"address","value":"_account"},"id":3031,"name":"Identifier","src":"5880:8:7"}],"id":3032,"name":"IndexAccess","src":"5866:23:7"},{"attributes":{"argumentTypes":null,"hexvalue":"66616c7365","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"false"},"id":3033,"name":"Literal","src":"5892:5:7"}],"id":3034,"name":"Assignment","src":"5866:31:7"}],"id":3035,"name":"ExpressionStatement","src":"5866:31:7"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"--","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2758,"type":"uint256","value":"_controllerCount"},"id":3036,"name":"Identifier","src":"5907:16:7"}],"id":3037,"name":"UnaryOperation","src":"5907:18:7"}],"id":3038,"name":"ExpressionStatement","src":"5907:18:7"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2734,"type":"function (address,address)","value":"RemovedController"},"id":3039,"name":"Identifier","src":"5940:17:7"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3719,"type":"msg","value":"msg"},"id":3040,"name":"Identifier","src":"5958:3:7"}],"id":3041,"name":"MemberAccess","src":"5958:10:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3020,"type":"address","value":"_account"},"id":3042,"name":"Identifier","src":"5970:8:7"}],"id":3043,"name":"FunctionCall","src":"5940:39:7"}],"id":3044,"name":"EmitStatement","src":"5935:44:7"}],"id":3045,"name":"Block","src":"5774:212:7"}],"id":3046,"name":"FunctionDefinition","src":"5721:265:7"},{"attributes":{"constant":false,"documentation":"/ @notice Withdraw tokens from the smart contract to the specified account.","implemented":true,"isConstructor":false,"name":"claim","payable":false,"scope":3065,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_to","scope":3064,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3047,"name":"ElementaryTypeName","src":"6090:7:7"}],"id":3048,"name":"VariableDeclaration","src":"6090:11:7"},{"attributes":{"constant":false,"name":"_asset","scope":3064,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3049,"name":"ElementaryTypeName","src":"6103:7:7"}],"id":3050,"name":"VariableDeclaration","src":"6103:14:7"},{"attributes":{"constant":false,"name":"_amount","scope":3064,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":3051,"name":"ElementaryTypeName","src":"6119:4:7"}],"id":3052,"name":"VariableDeclaration","src":"6119:12:7"}],"id":3053,"name":"ParameterList","src":"6089:43:7"},{"attributes":{"parameters":[null]},"children":[],"id":3056,"name":"ParameterList","src":"6152:0:7"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2567,"type":"modifier ()","value":"onlyOwner"},"id":3054,"name":"Identifier","src":"6142:9:7"}],"id":3055,"name":"ModifierInvocation","src":"6142:9:7"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":2451,"type":"function (address,address,uint256)","value":"_claim"},"id":3057,"name":"Identifier","src":"6162:6:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3048,"type":"address","value":"_to"},"id":3058,"name":"Identifier","src":"6169:3:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3050,"type":"address","value":"_asset"},"id":3059,"name":"Identifier","src":"6174:6:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3052,"type":"uint256","value":"_amount"},"id":3060,"name":"Identifier","src":"6182:7:7"}],"id":3061,"name":"FunctionCall","src":"6162:28:7"}],"id":3062,"name":"ExpressionStatement","src":"6162:28:7"}],"id":3063,"name":"Block","src":"6152:45:7"}],"id":3064,"name":"FunctionDefinition","src":"6075:122:7"}],"id":3065,"name":"ContractDefinition","src":"1361:4838:7"}],"id":3066,"name":"SourceUnit","src":"770:5430:7"}},"internals/ensResolvable.sol":{"AST":{"attributes":{"absolutePath":"internals/ensResolvable.sol","exportedSymbols":{"ENSResolvable":[3116]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".25"]},"id":3067,"name":"PragmaDirective","src":"773:24:8"},{"attributes":{"SourceUnit":3197,"absolutePath":"externals/ens/ENS.sol","file":"../externals/ens/ENS.sol","scope":3117,"symbolAliases":[null],"unitAlias":""},"id":3068,"name":"ImportDirective","src":"799:34:8"},{"attributes":{"SourceUnit":3705,"absolutePath":"externals/ens/PublicResolver.sol","file":"../externals/ens/PublicResolver.sol","scope":3117,"symbolAliases":[null],"unitAlias":""},"id":3069,"name":"ImportDirective","src":"834:45:8"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"contract","documentation":"@title ENSResolvable - Ethereum Name Service Resolver\n@notice contract should be used to get an address for an ENS nodeHash","fullyImplemented":true,"linearizedBaseContracts":[3116],"name":"ENSResolvable","scope":3117},"children":[{"attributes":{"constant":false,"name":"_ens","scope":3116,"stateVariable":true,"storageLocation":"default","type":"contract ENS","value":null,"visibility":"private"},"children":[{"attributes":{"contractScope":null,"name":"ENS","referencedDeclaration":3196,"type":"contract ENS"},"id":3070,"name":"UserDefinedTypeName","src":"1084:3:8"}],"id":3071,"name":"VariableDeclaration","src":"1084:16:8"},{"attributes":{"constant":false,"name":"_ensRegistry","scope":3116,"stateVariable":true,"storageLocation":"default","type":"address","value":null,"visibility":"private"},"children":[{"attributes":{"name":"address","type":"address"},"id":3072,"name":"ElementaryTypeName","src":"1179:7:8"}],"id":3073,"name":"VariableDeclaration","src":"1179:28:8"},{"attributes":{"constant":false,"documentation":"@param _ensReg_ is the ENS registry used","implemented":true,"isConstructor":true,"modifiers":[null],"name":"","payable":false,"scope":3116,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_ensReg_","scope":3089,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3074,"name":"ElementaryTypeName","src":"1275:7:8"}],"id":3075,"name":"VariableDeclaration","src":"1275:16:8"}],"id":3076,"name":"ParameterList","src":"1274:18:8"},{"attributes":{"parameters":[null]},"children":[],"id":3077,"name":"ParameterList","src":"1302:0:8"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3073,"type":"address","value":"_ensRegistry"},"id":3078,"name":"Identifier","src":"1312:12:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3075,"type":"address","value":"_ensReg_"},"id":3079,"name":"Identifier","src":"1327:8:8"}],"id":3080,"name":"Assignment","src":"1312:23:8"}],"id":3081,"name":"ExpressionStatement","src":"1312:23:8"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"contract ENS"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3071,"type":"contract ENS","value":"_ens"},"id":3082,"name":"Identifier","src":"1345:4:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract ENS","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":3196,"type":"type(contract ENS)","value":"ENS"},"id":3083,"name":"Identifier","src":"1352:3:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3073,"type":"address","value":"_ensRegistry"},"id":3084,"name":"Identifier","src":"1356:12:8"}],"id":3085,"name":"FunctionCall","src":"1352:17:8"}],"id":3086,"name":"Assignment","src":"1345:24:8"}],"id":3087,"name":"ExpressionStatement","src":"1345:24:8"}],"id":3088,"name":"Block","src":"1302:74:8"}],"id":3089,"name":"FunctionDefinition","src":"1263:113:8"},{"attributes":{"constant":true,"documentation":"@notice this is used to that one can observe which ENS registry is being used","implemented":true,"isConstructor":false,"modifiers":[null],"name":"ensRegistry","payable":false,"scope":3116,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":3090,"name":"ParameterList","src":"1488:2:8"},{"children":[{"attributes":{"constant":false,"name":"","scope":3097,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3091,"name":"ElementaryTypeName","src":"1514:7:8"}],"id":3092,"name":"VariableDeclaration","src":"1514:7:8"}],"id":3093,"name":"ParameterList","src":"1513:9:8"},{"children":[{"attributes":{"functionReturnParameters":3093},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3073,"type":"address","value":"_ensRegistry"},"id":3094,"name":"Identifier","src":"1540:12:8"}],"id":3095,"name":"Return","src":"1533:19:8"}],"id":3096,"name":"Block","src":"1523:36:8"}],"id":3097,"name":"FunctionDefinition","src":"1468:91:8"},{"attributes":{"constant":true,"documentation":"@notice helper function used to get the address of a node Hash\n @param _nodeHash of the ENS entry that needs resolving\n @return the address of the said nodeHash","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_ensResolve","payable":false,"scope":3116,"stateMutability":"view","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_nodeHash","scope":3115,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3098,"name":"ElementaryTypeName","src":"1769:7:8"}],"id":3099,"name":"VariableDeclaration","src":"1769:17:8"}],"id":3100,"name":"ParameterList","src":"1768:19:8"},{"children":[{"attributes":{"constant":false,"name":"","scope":3115,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3101,"name":"ElementaryTypeName","src":"1811:7:8"}],"id":3102,"name":"VariableDeclaration","src":"1811:7:8"}],"id":3103,"name":"ParameterList","src":"1810:9:8"},{"children":[{"attributes":{"functionReturnParameters":3103},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"addr","referencedDeclaration":3663,"type":"function (bytes32) view external returns (address)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract PublicResolver","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":3704,"type":"type(contract PublicResolver)","value":"PublicResolver"},"id":3104,"name":"Identifier","src":"1837:14:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"resolver","referencedDeclaration":3188,"type":"function (bytes32) view external returns (address)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3071,"type":"contract ENS","value":"_ens"},"id":3105,"name":"Identifier","src":"1852:4:8"}],"id":3106,"name":"MemberAccess","src":"1852:13:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3099,"type":"bytes32","value":"_nodeHash"},"id":3107,"name":"Identifier","src":"1866:9:8"}],"id":3108,"name":"FunctionCall","src":"1852:24:8"}],"id":3109,"name":"FunctionCall","src":"1837:40:8"}],"id":3110,"name":"MemberAccess","src":"1837:45:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3099,"type":"bytes32","value":"_nodeHash"},"id":3111,"name":"Identifier","src":"1883:9:8"}],"id":3112,"name":"FunctionCall","src":"1837:56:8"}],"id":3113,"name":"Return","src":"1830:63:8"}],"id":3114,"name":"Block","src":"1820:80:8"}],"id":3115,"name":"FunctionDefinition","src":"1748:152:8"}],"id":3116,"name":"ContractDefinition","src":"1012:891:8"}],"id":3117,"name":"SourceUnit","src":"773:1131:8"}},"internals/ownable.sol":{"AST":{"attributes":{"absolutePath":"internals/ownable.sol","exportedSymbols":{"Ownable":[2665]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".25"]},"id":2510,"name":"PragmaDirective","src":"767:24:9"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"contract","documentation":"@title Ownable has an owner address and provides basic authorization control functions.\n This contract is modified version of the MIT OpenZepplin Ownable contract\n This contract allows for the transferOwnership operation to be made impossible\n https://github.com/OpenZeppelin/openzeppelin-solidity/blob/master/contracts/ownership/Ownable.sol","fullyImplemented":true,"linearizedBaseContracts":[2665],"name":"Ownable","scope":2666},"children":[{"attributes":{"anonymous":false,"documentation":null,"name":"TransferredOwnership"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_from","scope":2516,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2511,"name":"ElementaryTypeName","src":"1199:7:9"}],"id":2512,"name":"VariableDeclaration","src":"1199:13:9"},{"attributes":{"constant":false,"indexed":false,"name":"_to","scope":2516,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2513,"name":"ElementaryTypeName","src":"1214:7:9"}],"id":2514,"name":"VariableDeclaration","src":"1214:11:9"}],"id":2515,"name":"ParameterList","src":"1198:28:9"}],"id":2516,"name":"EventDefinition","src":"1172:55:9"},{"attributes":{"anonymous":false,"documentation":null,"name":"LockedOwnership"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_locked","scope":2520,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2517,"name":"ElementaryTypeName","src":"1254:7:9"}],"id":2518,"name":"VariableDeclaration","src":"1254:15:9"}],"id":2519,"name":"ParameterList","src":"1253:17:9"}],"id":2520,"name":"EventDefinition","src":"1232:39:9"},{"attributes":{"constant":false,"name":"_owner","scope":2665,"stateVariable":true,"storageLocation":"default","type":"address","value":null,"visibility":"private"},"children":[{"attributes":{"name":"address","type":"address"},"id":2521,"name":"ElementaryTypeName","src":"1277:7:9"}],"id":2522,"name":"VariableDeclaration","src":"1277:22:9"},{"attributes":{"constant":false,"name":"_isTransferable","scope":2665,"stateVariable":true,"storageLocation":"default","type":"bool","value":null,"visibility":"private"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2523,"name":"ElementaryTypeName","src":"1305:4:9"}],"id":2524,"name":"VariableDeclaration","src":"1305:28:9"},{"attributes":{"constant":false,"documentation":"@notice Constructor sets the original owner of the contract and whether or not it is one time transferable.","implemented":true,"isConstructor":true,"modifiers":[null],"name":"","payable":false,"scope":2665,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account_","scope":2555,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2525,"name":"ElementaryTypeName","src":"1468:7:9"}],"id":2526,"name":"VariableDeclaration","src":"1468:17:9"},{"attributes":{"constant":false,"name":"_transferable_","scope":2555,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2527,"name":"ElementaryTypeName","src":"1487:4:9"}],"id":2528,"name":"VariableDeclaration","src":"1487:19:9"}],"id":2529,"name":"ParameterList","src":"1467:40:9"},{"attributes":{"parameters":[null]},"children":[],"id":2530,"name":"ParameterList","src":"1517:0:9"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2522,"type":"address","value":"_owner"},"id":2531,"name":"Identifier","src":"1527:6:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2526,"type":"address","value":"_account_"},"id":2532,"name":"Identifier","src":"1536:9:9"}],"id":2533,"name":"Assignment","src":"1527:18:9"}],"id":2534,"name":"ExpressionStatement","src":"1527:18:9"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2524,"type":"bool","value":"_isTransferable"},"id":2535,"name":"Identifier","src":"1555:15:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2528,"type":"bool","value":"_transferable_"},"id":2536,"name":"Identifier","src":"1573:14:9"}],"id":2537,"name":"Assignment","src":"1555:32:9"}],"id":2538,"name":"ExpressionStatement","src":"1555:32:9"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2524,"type":"bool","value":"_isTransferable"},"id":2539,"name":"Identifier","src":"1671:15:9"}],"id":2540,"name":"UnaryOperation","src":"1670:16:9"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2520,"type":"function (address)","value":"LockedOwnership"},"id":2541,"name":"Identifier","src":"1707:15:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2526,"type":"address","value":"_account_"},"id":2542,"name":"Identifier","src":"1723:9:9"}],"id":2543,"name":"FunctionCall","src":"1707:26:9"}],"id":2544,"name":"EmitStatement","src":"1702:31:9"}],"id":2545,"name":"Block","src":"1688:56:9"}],"id":2546,"name":"IfStatement","src":"1666:78:9"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2516,"type":"function (address,address)","value":"TransferredOwnership"},"id":2547,"name":"Identifier","src":"1758:20:9"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":2548,"name":"ElementaryTypeNameExpression","src":"1779:7:9"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2549,"name":"Literal","src":"1787:1:9"}],"id":2550,"name":"FunctionCall","src":"1779:10:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2526,"type":"address","value":"_account_"},"id":2551,"name":"Identifier","src":"1791:9:9"}],"id":2552,"name":"FunctionCall","src":"1758:43:9"}],"id":2553,"name":"EmitStatement","src":"1753:48:9"}],"id":2554,"name":"Block","src":"1517:291:9"}],"id":2555,"name":"FunctionDefinition","src":"1456:352:9"},{"attributes":{"documentation":"@notice Reverts if called by any account other than the owner.","name":"onlyOwner","visibility":"internal"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":2556,"name":"ParameterList","src":"1903:2:9"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_96d7cc6c06f3d4101b2a14e4ad2906b79dc824ab8a44b63e774a71d2b9c7abd2","typeString":"literal_string \"sender is not an owner\""}],"overloadedDeclarations":[3722,3723],"referencedDeclaration":3723,"type":"function (bool,string memory) pure","value":"require"},"id":2557,"name":"Identifier","src":"1916:7:9"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2664,"type":"function (address) view returns (bool)","value":"_isOwner"},"id":2558,"name":"Identifier","src":"1924:8:9"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3719,"type":"msg","value":"msg"},"id":2559,"name":"Identifier","src":"1933:3:9"}],"id":2560,"name":"MemberAccess","src":"1933:10:9"}],"id":2561,"name":"FunctionCall","src":"1924:20:9"},{"attributes":{"argumentTypes":null,"hexvalue":"73656e646572206973206e6f7420616e206f776e6572","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"sender is not an owner\"","value":"sender is not an owner"},"id":2562,"name":"Literal","src":"1946:24:9"}],"id":2563,"name":"FunctionCall","src":"1916:55:9"}],"id":2564,"name":"ExpressionStatement","src":"1916:55:9"},{"id":2565,"name":"PlaceholderStatement","src":"1981:1:9"}],"id":2566,"name":"Block","src":"1906:83:9"}],"id":2567,"name":"ModifierDefinition","src":"1885:104:9"},{"attributes":{"constant":false,"documentation":"@notice Allows the current owner to transfer control of the contract to a new address.\n @param _account address to transfer ownership to.\n @param _transferable indicates whether to keep the ownership transferable.","implemented":true,"isConstructor":false,"name":"transferOwnership","payable":false,"scope":2665,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":2612,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2568,"name":"ElementaryTypeName","src":"2258:7:9"}],"id":2569,"name":"VariableDeclaration","src":"2258:16:9"},{"attributes":{"constant":false,"name":"_transferable","scope":2612,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2570,"name":"ElementaryTypeName","src":"2276:4:9"}],"id":2571,"name":"VariableDeclaration","src":"2276:18:9"}],"id":2572,"name":"ParameterList","src":"2257:38:9"},{"attributes":{"parameters":[null]},"children":[],"id":2575,"name":"ParameterList","src":"2315:0:9"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2567,"type":"modifier ()","value":"onlyOwner"},"id":2573,"name":"Identifier","src":"2305:9:9"}],"id":2574,"name":"ModifierInvocation","src":"2305:9:9"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b2967f1eb3e333ead270a5eb332284149554452f916a981f27e70894d40a893f","typeString":"literal_string \"ownership is not transferable\""}],"overloadedDeclarations":[3722,3723],"referencedDeclaration":3723,"type":"function (bool,string memory) pure","value":"require"},"id":2576,"name":"Identifier","src":"2380:7:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2524,"type":"bool","value":"_isTransferable"},"id":2577,"name":"Identifier","src":"2388:15:9"},{"attributes":{"argumentTypes":null,"hexvalue":"6f776e657273686970206973206e6f74207472616e7366657261626c65","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"ownership is not transferable\"","value":"ownership is not transferable"},"id":2578,"name":"Literal","src":"2405:31:9"}],"id":2579,"name":"FunctionCall","src":"2380:57:9"}],"id":2580,"name":"ExpressionStatement","src":"2380:57:9"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_be619f073d6b85c603c617050d1729f1cf3b31bf6ae5ae03f35765577d9bb6c8","typeString":"literal_string \"owner cannot be set to zero address\""}],"overloadedDeclarations":[3722,3723],"referencedDeclaration":3723,"type":"function (bool,string memory) pure","value":"require"},"id":2581,"name":"Identifier","src":"2510:7:9"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2569,"type":"address","value":"_account"},"id":2582,"name":"Identifier","src":"2518:8:9"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":2583,"name":"ElementaryTypeNameExpression","src":"2530:7:9"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2584,"name":"Literal","src":"2538:1:9"}],"id":2585,"name":"FunctionCall","src":"2530:10:9"}],"id":2586,"name":"BinaryOperation","src":"2518:22:9"},{"attributes":{"argumentTypes":null,"hexvalue":"6f776e65722063616e6e6f742062652073657420746f207a65726f2061646472657373","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"owner cannot be set to zero address\"","value":"owner cannot be set to zero address"},"id":2587,"name":"Literal","src":"2542:37:9"}],"id":2588,"name":"FunctionCall","src":"2510:70:9"}],"id":2589,"name":"ExpressionStatement","src":"2510:70:9"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2524,"type":"bool","value":"_isTransferable"},"id":2590,"name":"Identifier","src":"2665:15:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2571,"type":"bool","value":"_transferable"},"id":2591,"name":"Identifier","src":"2683:13:9"}],"id":2592,"name":"Assignment","src":"2665:31:9"}],"id":2593,"name":"ExpressionStatement","src":"2665:31:9"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2571,"type":"bool","value":"_transferable"},"id":2594,"name":"Identifier","src":"2780:13:9"}],"id":2595,"name":"UnaryOperation","src":"2779:14:9"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2520,"type":"function (address)","value":"LockedOwnership"},"id":2596,"name":"Identifier","src":"2814:15:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2569,"type":"address","value":"_account"},"id":2597,"name":"Identifier","src":"2830:8:9"}],"id":2598,"name":"FunctionCall","src":"2814:25:9"}],"id":2599,"name":"EmitStatement","src":"2809:30:9"}],"id":2600,"name":"Block","src":"2795:55:9"}],"id":2601,"name":"IfStatement","src":"2775:75:9"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2516,"type":"function (address,address)","value":"TransferredOwnership"},"id":2602,"name":"Identifier","src":"2910:20:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2522,"type":"address","value":"_owner"},"id":2603,"name":"Identifier","src":"2931:6:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2569,"type":"address","value":"_account"},"id":2604,"name":"Identifier","src":"2939:8:9"}],"id":2605,"name":"FunctionCall","src":"2910:38:9"}],"id":2606,"name":"EmitStatement","src":"2905:43:9"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2522,"type":"address","value":"_owner"},"id":2607,"name":"Identifier","src":"3008:6:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2569,"type":"address","value":"_account"},"id":2608,"name":"Identifier","src":"3017:8:9"}],"id":2609,"name":"Assignment","src":"3008:17:9"}],"id":2610,"name":"ExpressionStatement","src":"3008:17:9"}],"id":2611,"name":"Block","src":"2315:717:9"}],"id":2612,"name":"FunctionDefinition","src":"2231:801:9"},{"attributes":{"constant":true,"documentation":"@notice check if the ownership is transferable.\n @return true if the ownership is transferable.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"isTransferable","payable":false,"scope":2665,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":2613,"name":"ParameterList","src":"3172:2:9"},{"children":[{"attributes":{"constant":false,"name":"","scope":2620,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2614,"name":"ElementaryTypeName","src":"3198:4:9"}],"id":2615,"name":"VariableDeclaration","src":"3198:4:9"}],"id":2616,"name":"ParameterList","src":"3197:6:9"},{"children":[{"attributes":{"functionReturnParameters":2616},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2524,"type":"bool","value":"_isTransferable"},"id":2617,"name":"Identifier","src":"3221:15:9"}],"id":2618,"name":"Return","src":"3214:22:9"}],"id":2619,"name":"Block","src":"3204:39:9"}],"id":2620,"name":"FunctionDefinition","src":"3149:94:9"},{"attributes":{"constant":false,"documentation":"@notice Allows the current owner to relinquish control of the contract.\n @dev Renouncing to ownership will leave the contract without an owner and unusable.\n @dev It will not be possible to call the functions with the `onlyOwner` modifier anymore.","implemented":true,"isConstructor":false,"name":"renounceOwnership","payable":false,"scope":2665,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":2621,"name":"ParameterList","src":"3545:2:9"},{"attributes":{"parameters":[null]},"children":[],"id":2624,"name":"ParameterList","src":"3567:0:9"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2567,"type":"modifier ()","value":"onlyOwner"},"id":2622,"name":"Identifier","src":"3557:9:9"}],"id":2623,"name":"ModifierInvocation","src":"3557:9:9"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b2967f1eb3e333ead270a5eb332284149554452f916a981f27e70894d40a893f","typeString":"literal_string \"ownership is not transferable\""}],"overloadedDeclarations":[3722,3723],"referencedDeclaration":3723,"type":"function (bool,string memory) pure","value":"require"},"id":2625,"name":"Identifier","src":"3632:7:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2524,"type":"bool","value":"_isTransferable"},"id":2626,"name":"Identifier","src":"3640:15:9"},{"attributes":{"argumentTypes":null,"hexvalue":"6f776e657273686970206973206e6f74207472616e7366657261626c65","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"ownership is not transferable\"","value":"ownership is not transferable"},"id":2627,"name":"Literal","src":"3657:31:9"}],"id":2628,"name":"FunctionCall","src":"3632:57:9"}],"id":2629,"name":"ExpressionStatement","src":"3632:57:9"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2522,"type":"address","value":"_owner"},"id":2630,"name":"Identifier","src":"3743:6:9"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":2631,"name":"ElementaryTypeNameExpression","src":"3752:7:9"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2632,"name":"Literal","src":"3760:1:9"}],"id":2633,"name":"FunctionCall","src":"3752:10:9"}],"id":2634,"name":"Assignment","src":"3743:19:9"}],"id":2635,"name":"ExpressionStatement","src":"3743:19:9"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2516,"type":"function (address,address)","value":"TransferredOwnership"},"id":2636,"name":"Identifier","src":"3778:20:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2522,"type":"address","value":"_owner"},"id":2637,"name":"Identifier","src":"3799:6:9"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":2638,"name":"ElementaryTypeNameExpression","src":"3807:7:9"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2639,"name":"Literal","src":"3815:1:9"}],"id":2640,"name":"FunctionCall","src":"3807:10:9"}],"id":2641,"name":"FunctionCall","src":"3778:40:9"}],"id":2642,"name":"EmitStatement","src":"3773:45:9"}],"id":2643,"name":"Block","src":"3567:258:9"}],"id":2644,"name":"FunctionDefinition","src":"3519:306:9"},{"attributes":{"constant":true,"documentation":"@notice Find out owner address\n @return address of the owner.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"owner","payable":false,"scope":2665,"stateMutability":"view","superFunction":null,"visibility":"public"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":2645,"name":"ParameterList","src":"3922:2:9"},{"children":[{"attributes":{"constant":false,"name":"","scope":2652,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2646,"name":"ElementaryTypeName","src":"3946:7:9"}],"id":2647,"name":"VariableDeclaration","src":"3946:7:9"}],"id":2648,"name":"ParameterList","src":"3945:9:9"},{"children":[{"attributes":{"functionReturnParameters":2648},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2522,"type":"address","value":"_owner"},"id":2649,"name":"Identifier","src":"3972:6:9"}],"id":2650,"name":"Return","src":"3965:13:9"}],"id":2651,"name":"Block","src":"3955:30:9"}],"id":2652,"name":"FunctionDefinition","src":"3908:77:9"},{"attributes":{"constant":true,"documentation":"@notice Check if owner address\n @return true if sender is the owner of the contract.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_isOwner","payable":false,"scope":2665,"stateMutability":"view","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_address","scope":2664,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2653,"name":"ElementaryTypeName","src":"4109:7:9"}],"id":2654,"name":"VariableDeclaration","src":"4109:16:9"}],"id":2655,"name":"ParameterList","src":"4108:18:9"},{"children":[{"attributes":{"constant":false,"name":"","scope":2664,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2656,"name":"ElementaryTypeName","src":"4150:4:9"}],"id":2657,"name":"VariableDeclaration","src":"4150:4:9"}],"id":2658,"name":"ParameterList","src":"4149:6:9"},{"children":[{"attributes":{"functionReturnParameters":2658},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2654,"type":"address","value":"_address"},"id":2659,"name":"Identifier","src":"4173:8:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2522,"type":"address","value":"_owner"},"id":2660,"name":"Identifier","src":"4185:6:9"}],"id":2661,"name":"BinaryOperation","src":"4173:18:9"}],"id":2662,"name":"Return","src":"4166:25:9"}],"id":2663,"name":"Block","src":"4156:42:9"}],"id":2664,"name":"FunctionDefinition","src":"4091:107:9"}],"id":2665,"name":"ContractDefinition","src":"1149:3051:9"}],"id":2666,"name":"SourceUnit","src":"767:3434:9"}},"internals/tokenWhitelist.sol":{"AST":{"attributes":{"absolutePath":"internals/tokenWhitelist.sol","exportedSymbols":{"ITokenWhitelist":[63],"TokenWhitelist":[576]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".25"]},"id":1,"name":"PragmaDirective","src":"774:24:10"},{"attributes":{"SourceUnit":2666,"absolutePath":"internals/ownable.sol","file":"./ownable.sol","scope":577,"symbolAliases":[null],"unitAlias":""},"id":2,"name":"ImportDirective","src":"800:23:10"},{"attributes":{"SourceUnit":2509,"absolutePath":"internals/controllable.sol","file":"./controllable.sol","scope":577,"symbolAliases":[null],"unitAlias":""},"id":3,"name":"ImportDirective","src":"824:28:10"},{"attributes":{"SourceUnit":2453,"absolutePath":"internals/claimable.sol","file":"./claimable.sol","scope":577,"symbolAliases":[null],"unitAlias":""},"id":4,"name":"ImportDirective","src":"853:25:10"},{"attributes":{"SourceUnit":2400,"absolutePath":"externals/strings.sol","file":"../externals/strings.sol","scope":577,"symbolAliases":[null],"unitAlias":""},"id":5,"name":"ImportDirective","src":"879:34:10"},{"attributes":{"SourceUnit":705,"absolutePath":"externals/SafeMath.sol","file":"../externals/SafeMath.sol","scope":577,"symbolAliases":[null],"unitAlias":""},"id":6,"name":"ImportDirective","src":"914:35:10"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"interface","documentation":"@title The ITokenWhitelist interface provides access to a whitelist of tokens.","fullyImplemented":false,"linearizedBaseContracts":[63],"name":"ITokenWhitelist","scope":577},"children":[{"attributes":{"body":null,"constant":true,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"getTokenInfo","payable":false,"scope":63,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"","scope":25,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":7,"name":"ElementaryTypeName","src":"1088:7:10"}],"id":8,"name":"VariableDeclaration","src":"1088:7:10"}],"id":9,"name":"ParameterList","src":"1087:9:10"},{"children":[{"attributes":{"constant":false,"name":"","scope":25,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":10,"name":"ElementaryTypeName","src":"1120:6:10"}],"id":11,"name":"VariableDeclaration","src":"1120:6:10"},{"attributes":{"constant":false,"name":"","scope":25,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":12,"name":"ElementaryTypeName","src":"1128:7:10"}],"id":13,"name":"VariableDeclaration","src":"1128:7:10"},{"attributes":{"constant":false,"name":"","scope":25,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":14,"name":"ElementaryTypeName","src":"1137:7:10"}],"id":15,"name":"VariableDeclaration","src":"1137:7:10"},{"attributes":{"constant":false,"name":"","scope":25,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":16,"name":"ElementaryTypeName","src":"1146:4:10"}],"id":17,"name":"VariableDeclaration","src":"1146:4:10"},{"attributes":{"constant":false,"name":"","scope":25,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":18,"name":"ElementaryTypeName","src":"1152:4:10"}],"id":19,"name":"VariableDeclaration","src":"1152:4:10"},{"attributes":{"constant":false,"name":"","scope":25,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":20,"name":"ElementaryTypeName","src":"1158:4:10"}],"id":21,"name":"VariableDeclaration","src":"1158:4:10"},{"attributes":{"constant":false,"name":"","scope":25,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":22,"name":"ElementaryTypeName","src":"1164:7:10"}],"id":23,"name":"VariableDeclaration","src":"1164:7:10"}],"id":24,"name":"ParameterList","src":"1119:53:10"}],"id":25,"name":"FunctionDefinition","src":"1066:107:10"},{"attributes":{"body":null,"constant":true,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"getStablecoinInfo","payable":false,"scope":63,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":26,"name":"ParameterList","src":"1204:2:10"},{"children":[{"attributes":{"constant":false,"name":"","scope":42,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":27,"name":"ElementaryTypeName","src":"1230:6:10"}],"id":28,"name":"VariableDeclaration","src":"1230:6:10"},{"attributes":{"constant":false,"name":"","scope":42,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":29,"name":"ElementaryTypeName","src":"1238:7:10"}],"id":30,"name":"VariableDeclaration","src":"1238:7:10"},{"attributes":{"constant":false,"name":"","scope":42,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":31,"name":"ElementaryTypeName","src":"1247:7:10"}],"id":32,"name":"VariableDeclaration","src":"1247:7:10"},{"attributes":{"constant":false,"name":"","scope":42,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":33,"name":"ElementaryTypeName","src":"1256:4:10"}],"id":34,"name":"VariableDeclaration","src":"1256:4:10"},{"attributes":{"constant":false,"name":"","scope":42,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":35,"name":"ElementaryTypeName","src":"1262:4:10"}],"id":36,"name":"VariableDeclaration","src":"1262:4:10"},{"attributes":{"constant":false,"name":"","scope":42,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":37,"name":"ElementaryTypeName","src":"1268:4:10"}],"id":38,"name":"VariableDeclaration","src":"1268:4:10"},{"attributes":{"constant":false,"name":"","scope":42,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":39,"name":"ElementaryTypeName","src":"1274:7:10"}],"id":40,"name":"VariableDeclaration","src":"1274:7:10"}],"id":41,"name":"ParameterList","src":"1229:53:10"}],"id":42,"name":"FunctionDefinition","src":"1178:105:10"},{"attributes":{"body":null,"constant":true,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"tokenAddressArray","payable":false,"scope":63,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":43,"name":"ParameterList","src":"1314:2:10"},{"children":[{"attributes":{"constant":false,"name":"","scope":48,"stateVariable":false,"storageLocation":"default","type":"address[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"address[]"},"children":[{"attributes":{"name":"address","type":"address"},"id":44,"name":"ElementaryTypeName","src":"1340:7:10"}],"id":45,"name":"ArrayTypeName","src":"1340:9:10"}],"id":46,"name":"VariableDeclaration","src":"1340:9:10"}],"id":47,"name":"ParameterList","src":"1339:11:10"}],"id":48,"name":"FunctionDefinition","src":"1288:63:10"},{"attributes":{"body":null,"constant":false,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"updateTokenRate","payable":false,"scope":63,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"","scope":57,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":49,"name":"ElementaryTypeName","src":"1381:7:10"}],"id":50,"name":"VariableDeclaration","src":"1381:7:10"},{"attributes":{"constant":false,"name":"","scope":57,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":51,"name":"ElementaryTypeName","src":"1390:4:10"}],"id":52,"name":"VariableDeclaration","src":"1390:4:10"},{"attributes":{"constant":false,"name":"","scope":57,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":53,"name":"ElementaryTypeName","src":"1396:4:10"}],"id":54,"name":"VariableDeclaration","src":"1396:4:10"}],"id":55,"name":"ParameterList","src":"1380:21:10"},{"attributes":{"parameters":[null]},"children":[],"id":56,"name":"ParameterList","src":"1410:0:10"}],"id":57,"name":"FunctionDefinition","src":"1356:55:10"},{"attributes":{"body":null,"constant":true,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"stablecoin","payable":false,"scope":63,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":58,"name":"ParameterList","src":"1435:2:10"},{"children":[{"attributes":{"constant":false,"name":"","scope":62,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":59,"name":"ElementaryTypeName","src":"1461:7:10"}],"id":60,"name":"VariableDeclaration","src":"1461:7:10"}],"id":61,"name":"ParameterList","src":"1460:9:10"}],"id":62,"name":"FunctionDefinition","src":"1416:54:10"}],"id":63,"name":"ContractDefinition","src":"1034:438:10"},{"attributes":{"contractDependencies":[2452,2508,2665,3116],"contractKind":"contract","documentation":"@title TokenWhitelist stores a list of tokens used by the Consumer Contract Wallet, the Oracle, the TKN Holder and the TKN Licence Contract","fullyImplemented":true,"linearizedBaseContracts":[576,2452,2665,2508,3116],"name":"TokenWhitelist","scope":577},"children":[{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"ENSResolvable","referencedDeclaration":3116,"type":"contract ENSResolvable"},"id":64,"name":"UserDefinedTypeName","src":"1646:13:10"}],"id":65,"name":"InheritanceSpecifier","src":"1646:13:10"},{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"Controllable","referencedDeclaration":2508,"type":"contract Controllable"},"id":66,"name":"UserDefinedTypeName","src":"1661:12:10"}],"id":67,"name":"InheritanceSpecifier","src":"1661:12:10"},{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"Ownable","referencedDeclaration":2665,"type":"contract Ownable"},"id":68,"name":"UserDefinedTypeName","src":"1675:7:10"}],"id":69,"name":"InheritanceSpecifier","src":"1675:7:10"},{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"Claimable","referencedDeclaration":2452,"type":"contract Claimable"},"id":70,"name":"UserDefinedTypeName","src":"1684:9:10"}],"id":71,"name":"InheritanceSpecifier","src":"1684:9:10"},{"attributes":{"typeName":null},"children":[{"attributes":{"contractScope":null,"name":"strings","referencedDeclaration":2399,"type":"library strings"},"id":72,"name":"UserDefinedTypeName","src":"1706:7:10"}],"id":73,"name":"UsingForDirective","src":"1700:20:10"},{"children":[{"attributes":{"contractScope":null,"name":"SafeMath","referencedDeclaration":704,"type":"library SafeMath"},"id":74,"name":"UserDefinedTypeName","src":"1731:8:10"},{"attributes":{"name":"uint256","type":"uint256"},"id":75,"name":"ElementaryTypeName","src":"1744:7:10"}],"id":76,"name":"UsingForDirective","src":"1725:27:10"},{"attributes":{"anonymous":false,"documentation":null,"name":"UpdatedTokenRate"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_sender","scope":84,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":77,"name":"ElementaryTypeName","src":"1781:7:10"}],"id":78,"name":"VariableDeclaration","src":"1781:15:10"},{"attributes":{"constant":false,"indexed":false,"name":"_token","scope":84,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":79,"name":"ElementaryTypeName","src":"1798:7:10"}],"id":80,"name":"VariableDeclaration","src":"1798:14:10"},{"attributes":{"constant":false,"indexed":false,"name":"_rate","scope":84,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":81,"name":"ElementaryTypeName","src":"1814:4:10"}],"id":82,"name":"VariableDeclaration","src":"1814:10:10"}],"id":83,"name":"ParameterList","src":"1780:45:10"}],"id":84,"name":"EventDefinition","src":"1758:68:10"},{"attributes":{"anonymous":false,"documentation":null,"name":"AddedToken"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_sender","scope":98,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":85,"name":"ElementaryTypeName","src":"1849:7:10"}],"id":86,"name":"VariableDeclaration","src":"1849:15:10"},{"attributes":{"constant":false,"indexed":false,"name":"_token","scope":98,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":87,"name":"ElementaryTypeName","src":"1866:7:10"}],"id":88,"name":"VariableDeclaration","src":"1866:14:10"},{"attributes":{"constant":false,"indexed":false,"name":"_symbol","scope":98,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":89,"name":"ElementaryTypeName","src":"1882:6:10"}],"id":90,"name":"VariableDeclaration","src":"1882:14:10"},{"attributes":{"constant":false,"indexed":false,"name":"_magnitude","scope":98,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":91,"name":"ElementaryTypeName","src":"1898:4:10"}],"id":92,"name":"VariableDeclaration","src":"1898:15:10"},{"attributes":{"constant":false,"indexed":false,"name":"_loadable","scope":98,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":93,"name":"ElementaryTypeName","src":"1915:4:10"}],"id":94,"name":"VariableDeclaration","src":"1915:14:10"},{"attributes":{"constant":false,"indexed":false,"name":"_burnable","scope":98,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":95,"name":"ElementaryTypeName","src":"1931:4:10"}],"id":96,"name":"VariableDeclaration","src":"1931:14:10"}],"id":97,"name":"ParameterList","src":"1848:98:10"}],"id":98,"name":"EventDefinition","src":"1832:115:10"},{"attributes":{"anonymous":false,"documentation":null,"name":"RemovedToken"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_sender","scope":104,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":99,"name":"ElementaryTypeName","src":"1971:7:10"}],"id":100,"name":"VariableDeclaration","src":"1971:15:10"},{"attributes":{"constant":false,"indexed":false,"name":"_token","scope":104,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":101,"name":"ElementaryTypeName","src":"1988:7:10"}],"id":102,"name":"VariableDeclaration","src":"1988:14:10"}],"id":103,"name":"ParameterList","src":"1970:33:10"}],"id":104,"name":"EventDefinition","src":"1952:52:10"},{"attributes":{"canonicalName":"TokenWhitelist.Token","name":"Token","scope":576,"visibility":"public"},"children":[{"attributes":{"constant":false,"name":"symbol","scope":119,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":105,"name":"ElementaryTypeName","src":"2033:6:10"}],"id":106,"name":"VariableDeclaration","src":"2033:13:10"},{"attributes":{"constant":false,"name":"magnitude","scope":119,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":107,"name":"ElementaryTypeName","src":"2075:4:10"}],"id":108,"name":"VariableDeclaration","src":"2075:14:10"},{"attributes":{"constant":false,"name":"rate","scope":119,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":109,"name":"ElementaryTypeName","src":"2116:4:10"}],"id":110,"name":"VariableDeclaration","src":"2116:9:10"},{"attributes":{"constant":false,"name":"available","scope":119,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":111,"name":"ElementaryTypeName","src":"2172:4:10"}],"id":112,"name":"VariableDeclaration","src":"2172:14:10"},{"attributes":{"constant":false,"name":"loadable","scope":119,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":113,"name":"ElementaryTypeName","src":"2240:4:10"}],"id":114,"name":"VariableDeclaration","src":"2240:13:10"},{"attributes":{"constant":false,"name":"burnable","scope":119,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":115,"name":"ElementaryTypeName","src":"2313:4:10"}],"id":116,"name":"VariableDeclaration","src":"2313:13:10"},{"attributes":{"constant":false,"name":"lastUpdate","scope":119,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":117,"name":"ElementaryTypeName","src":"2396:4:10"}],"id":118,"name":"VariableDeclaration","src":"2396:15:10"}],"id":119,"name":"StructDefinition","src":"2010:441:10"},{"attributes":{"constant":false,"name":"_tokenInfoMap","scope":576,"stateVariable":true,"storageLocation":"default","type":"mapping(address => struct TokenWhitelist.Token)","value":null,"visibility":"private"},"children":[{"attributes":{"type":"mapping(address => struct TokenWhitelist.Token)"},"children":[{"attributes":{"name":"address","type":"address"},"id":120,"name":"ElementaryTypeName","src":"2465:7:10"},{"attributes":{"contractScope":null,"name":"Token","referencedDeclaration":119,"type":"struct TokenWhitelist.Token"},"id":121,"name":"UserDefinedTypeName","src":"2476:5:10"}],"id":122,"name":"Mapping","src":"2457:25:10"}],"id":123,"name":"VariableDeclaration","src":"2457:47:10"},{"attributes":{"constant":false,"name":"_tokenAddressArray","scope":576,"stateVariable":true,"storageLocation":"default","type":"address[]","value":null,"visibility":"private"},"children":[{"attributes":{"length":null,"type":"address[]"},"children":[{"attributes":{"name":"address","type":"address"},"id":124,"name":"ElementaryTypeName","src":"2510:7:10"}],"id":125,"name":"ArrayTypeName","src":"2510:9:10"}],"id":126,"name":"VariableDeclaration","src":"2510:36:10"},{"attributes":{"documentation":null,"name":"onlyControllerOrOracle","visibility":"internal"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":127,"name":"ParameterList","src":"2584:2:10"},{"children":[{"attributes":{"assignments":[129]},"children":[{"attributes":{"constant":false,"name":"oracleAddress","scope":149,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":128,"name":"ElementaryTypeName","src":"2597:7:10"}],"id":129,"name":"VariableDeclaration","src":"2597:21:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[null],"referencedDeclaration":3115,"type":"function (bytes32) view returns (address)","value":"_ensResolve"},"id":130,"name":"Identifier","src":"2621:11:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":153,"type":"bytes32","value":"_oracleNode"},"id":131,"name":"Identifier","src":"2633:11:10"}],"id":132,"name":"FunctionCall","src":"2621:24:10"}],"id":133,"name":"VariableDeclarationStatement","src":"2597:48:10"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7f651a1c3852ff2a697b659eaace9616ca61af623afbb095898c910cf89ec35f","typeString":"literal_string \"either oracle or controller\""}],"overloadedDeclarations":[3722,3723],"referencedDeclaration":3723,"type":"function (bool,string memory) pure","value":"require"},"id":134,"name":"Identifier","src":"2655:7:10"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"||","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2507,"type":"function (address) view returns (bool)","value":"_isController"},"id":135,"name":"Identifier","src":"2664:13:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3719,"type":"msg","value":"msg"},"id":136,"name":"Identifier","src":"2678:3:10"}],"id":137,"name":"MemberAccess","src":"2678:10:10"}],"id":138,"name":"FunctionCall","src":"2664:25:10"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3719,"type":"msg","value":"msg"},"id":139,"name":"Identifier","src":"2693:3:10"}],"id":140,"name":"MemberAccess","src":"2693:10:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":129,"type":"address","value":"oracleAddress"},"id":141,"name":"Identifier","src":"2707:13:10"}],"id":142,"name":"BinaryOperation","src":"2693:27:10"}],"id":143,"name":"BinaryOperation","src":"2664:56:10"},{"attributes":{"argumentTypes":null,"hexvalue":"656974686572206f7261636c65206f7220636f6e74726f6c6c6572","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"either oracle or controller\"","value":"either oracle or controller"},"id":144,"name":"Literal","src":"2722:29:10"}],"id":145,"name":"FunctionCall","src":"2655:97:10"}],"id":146,"name":"ExpressionStatement","src":"2655:97:10"},{"id":147,"name":"PlaceholderStatement","src":"2762:1:10"}],"id":148,"name":"Block","src":"2587:183:10"}],"id":149,"name":"ModifierDefinition","src":"2553:217:10"},{"attributes":{"constant":false,"name":"_stablecoin","scope":576,"stateVariable":true,"storageLocation":"default","type":"address","value":null,"visibility":"private"},"children":[{"attributes":{"name":"address","type":"address"},"id":150,"name":"ElementaryTypeName","src":"2819:7:10"}],"id":151,"name":"VariableDeclaration","src":"2819:27:10"},{"attributes":{"constant":false,"name":"_oracleNode","scope":576,"stateVariable":true,"storageLocation":"default","type":"bytes32","value":null,"visibility":"private"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":152,"name":"ElementaryTypeName","src":"2930:7:10"}],"id":153,"name":"VariableDeclaration","src":"2930:27:10"},{"attributes":{"constant":false,"documentation":"@notice Constructor initializes ENSResolvable, Controllable, and Ownable\n @param _oracleNameHash_ is the ENS name hash of the Oracle.\n @param _stabelcoinAddress_ is the address of the stablecoint used by the wallet","implemented":true,"isConstructor":true,"name":"","payable":false,"scope":576,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"_ens_","scope":187,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":154,"name":"ElementaryTypeName","src":"3213:7:10"}],"id":155,"name":"VariableDeclaration","src":"3213:13:10"},{"attributes":{"constant":false,"name":"_oracleNameHash_","scope":187,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":156,"name":"ElementaryTypeName","src":"3228:7:10"}],"id":157,"name":"VariableDeclaration","src":"3228:24:10"},{"attributes":{"constant":false,"name":"_controllerNameHash_","scope":187,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":158,"name":"ElementaryTypeName","src":"3254:7:10"}],"id":159,"name":"VariableDeclaration","src":"3254:28:10"},{"attributes":{"constant":false,"name":"_owner_","scope":187,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":160,"name":"ElementaryTypeName","src":"3284:7:10"}],"id":161,"name":"VariableDeclaration","src":"3284:15:10"},{"attributes":{"constant":false,"name":"_transferable_","scope":187,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":162,"name":"ElementaryTypeName","src":"3301:4:10"}],"id":163,"name":"VariableDeclaration","src":"3301:19:10"},{"attributes":{"constant":false,"name":"_stabelcoinAddress_","scope":187,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":164,"name":"ElementaryTypeName","src":"3322:7:10"}],"id":165,"name":"VariableDeclaration","src":"3322:27:10"}],"id":166,"name":"ParameterList","src":"3212:138:10"},{"attributes":{"parameters":[null]},"children":[],"id":177,"name":"ParameterList","src":"3447:0:10"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3116,"type":"type(contract ENSResolvable)","value":"ENSResolvable"},"id":167,"name":"Identifier","src":"3351:13:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":155,"type":"address","value":"_ens_"},"id":168,"name":"Identifier","src":"3365:5:10"}],"id":169,"name":"ModifierInvocation","src":"3351:20:10"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2508,"type":"type(contract Controllable)","value":"Controllable"},"id":170,"name":"Identifier","src":"3372:12:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":159,"type":"bytes32","value":"_controllerNameHash_"},"id":171,"name":"Identifier","src":"3385:20:10"}],"id":172,"name":"ModifierInvocation","src":"3372:34:10"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2665,"type":"type(contract Ownable)","value":"Ownable"},"id":173,"name":"Identifier","src":"3407:7:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":161,"type":"address","value":"_owner_"},"id":174,"name":"Identifier","src":"3415:7:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":163,"type":"bool","value":"_transferable_"},"id":175,"name":"Identifier","src":"3424:14:10"}],"id":176,"name":"ModifierInvocation","src":"3407:32:10"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":153,"type":"bytes32","value":"_oracleNode"},"id":178,"name":"Identifier","src":"3457:11:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":157,"type":"bytes32","value":"_oracleNameHash_"},"id":179,"name":"Identifier","src":"3471:16:10"}],"id":180,"name":"Assignment","src":"3457:30:10"}],"id":181,"name":"ExpressionStatement","src":"3457:30:10"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":151,"type":"address","value":"_stablecoin"},"id":182,"name":"Identifier","src":"3497:11:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":165,"type":"address","value":"_stabelcoinAddress_"},"id":183,"name":"Identifier","src":"3511:19:10"}],"id":184,"name":"Assignment","src":"3497:33:10"}],"id":185,"name":"ExpressionStatement","src":"3497:33:10"}],"id":186,"name":"Block","src":"3447:90:10"}],"id":187,"name":"FunctionDefinition","src":"3201:336:10"},{"attributes":{"constant":false,"documentation":"@notice Add ERC20 tokens to the list of whitelisted tokens.\n @param _tokens ERC20 token contract addresses.\n @param _symbols ERC20 token names.\n @param _magnitude 10 to the power of number of decimal places used by each ERC20 token.\n @param _loadable is a bool that states whether or not a token is loadable to the TokenCard.\n @param _burnable is a bool that states whether or not a token is burnable in the TKN Holder Contract.\n @param _lastUpdate is a unit representing an ISO datetime e.g. 20180913153211","implemented":true,"isConstructor":false,"name":"addTokens","payable":false,"scope":576,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_tokens","scope":319,"stateVariable":false,"storageLocation":"default","type":"address[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"address[]"},"children":[{"attributes":{"name":"address","type":"address"},"id":188,"name":"ElementaryTypeName","src":"4120:7:10"}],"id":189,"name":"ArrayTypeName","src":"4120:9:10"}],"id":190,"name":"VariableDeclaration","src":"4120:17:10"},{"attributes":{"constant":false,"name":"_symbols","scope":319,"stateVariable":false,"storageLocation":"default","type":"bytes32[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"bytes32[]"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":191,"name":"ElementaryTypeName","src":"4139:7:10"}],"id":192,"name":"ArrayTypeName","src":"4139:9:10"}],"id":193,"name":"VariableDeclaration","src":"4139:18:10"},{"attributes":{"constant":false,"name":"_magnitude","scope":319,"stateVariable":false,"storageLocation":"default","type":"uint256[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"uint256[]"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":194,"name":"ElementaryTypeName","src":"4159:4:10"}],"id":195,"name":"ArrayTypeName","src":"4159:6:10"}],"id":196,"name":"VariableDeclaration","src":"4159:17:10"},{"attributes":{"constant":false,"name":"_loadable","scope":319,"stateVariable":false,"storageLocation":"default","type":"bool[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"bool[]"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":197,"name":"ElementaryTypeName","src":"4178:4:10"}],"id":198,"name":"ArrayTypeName","src":"4178:6:10"}],"id":199,"name":"VariableDeclaration","src":"4178:16:10"},{"attributes":{"constant":false,"name":"_burnable","scope":319,"stateVariable":false,"storageLocation":"default","type":"bool[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"bool[]"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":200,"name":"ElementaryTypeName","src":"4196:4:10"}],"id":201,"name":"ArrayTypeName","src":"4196:6:10"}],"id":202,"name":"VariableDeclaration","src":"4196:16:10"},{"attributes":{"constant":false,"name":"_lastUpdate","scope":319,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":203,"name":"ElementaryTypeName","src":"4214:4:10"}],"id":204,"name":"VariableDeclaration","src":"4214:16:10"}],"id":205,"name":"ParameterList","src":"4119:112:10"},{"attributes":{"parameters":[null]},"children":[],"id":208,"name":"ParameterList","src":"4256:0:10"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2482,"type":"modifier ()","value":"onlyController"},"id":206,"name":"Identifier","src":"4241:14:10"}],"id":207,"name":"ModifierInvocation","src":"4241:14:10"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_229d13192b5da189e34c035711b06ef00014d6b1ae3d20f5919a9f7f0dc28e53","typeString":"literal_string \"parameter lengths do not match\""}],"overloadedDeclarations":[3722,3723],"referencedDeclaration":3723,"type":"function (bool,string memory) pure","value":"require"},"id":209,"name":"Identifier","src":"4327:7:10"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&&","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&&","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&&","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":190,"type":"address[] calldata","value":"_tokens"},"id":210,"name":"Identifier","src":"4335:7:10"}],"id":211,"name":"MemberAccess","src":"4335:14:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":193,"type":"bytes32[] calldata","value":"_symbols"},"id":212,"name":"Identifier","src":"4353:8:10"}],"id":213,"name":"MemberAccess","src":"4353:15:10"}],"id":214,"name":"BinaryOperation","src":"4335:33:10"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":190,"type":"address[] calldata","value":"_tokens"},"id":215,"name":"Identifier","src":"4372:7:10"}],"id":216,"name":"MemberAccess","src":"4372:14:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":196,"type":"uint256[] calldata","value":"_magnitude"},"id":217,"name":"Identifier","src":"4390:10:10"}],"id":218,"name":"MemberAccess","src":"4390:17:10"}],"id":219,"name":"BinaryOperation","src":"4372:35:10"}],"id":220,"name":"BinaryOperation","src":"4335:72:10"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":190,"type":"address[] calldata","value":"_tokens"},"id":221,"name":"Identifier","src":"4411:7:10"}],"id":222,"name":"MemberAccess","src":"4411:14:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":199,"type":"bool[] calldata","value":"_loadable"},"id":223,"name":"Identifier","src":"4429:9:10"}],"id":224,"name":"MemberAccess","src":"4429:16:10"}],"id":225,"name":"BinaryOperation","src":"4411:34:10"}],"id":226,"name":"BinaryOperation","src":"4335:110:10"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":190,"type":"address[] calldata","value":"_tokens"},"id":227,"name":"Identifier","src":"4449:7:10"}],"id":228,"name":"MemberAccess","src":"4449:14:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":199,"type":"bool[] calldata","value":"_loadable"},"id":229,"name":"Identifier","src":"4467:9:10"}],"id":230,"name":"MemberAccess","src":"4467:16:10"}],"id":231,"name":"BinaryOperation","src":"4449:34:10"}],"id":232,"name":"BinaryOperation","src":"4335:148:10"},{"attributes":{"argumentTypes":null,"hexvalue":"706172616d65746572206c656e6774687320646f206e6f74206d61746368","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"parameter lengths do not match\"","value":"parameter lengths do not match"},"id":233,"name":"Literal","src":"4485:32:10"}],"id":234,"name":"FunctionCall","src":"4327:191:10"}],"id":235,"name":"ExpressionStatement","src":"4327:191:10"},{"children":[{"attributes":{"assignments":[237]},"children":[{"attributes":{"constant":false,"name":"i","scope":319,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":236,"name":"ElementaryTypeName","src":"4592:4:10"}],"id":237,"name":"VariableDeclaration","src":"4592:6:10"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":238,"name":"Literal","src":"4601:1:10"}],"id":239,"name":"VariableDeclarationStatement","src":"4592:10:10"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":237,"type":"uint256","value":"i"},"id":240,"name":"Identifier","src":"4604:1:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":190,"type":"address[] calldata","value":"_tokens"},"id":241,"name":"Identifier","src":"4608:7:10"}],"id":242,"name":"MemberAccess","src":"4608:14:10"}],"id":243,"name":"BinaryOperation","src":"4604:18:10"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":237,"type":"uint256","value":"i"},"id":244,"name":"Identifier","src":"4624:1:10"}],"id":245,"name":"UnaryOperation","src":"4624:3:10"}],"id":246,"name":"ExpressionStatement","src":"4624:3:10"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e7eb3a05df4990307bc322b918e16d072d8c2936ee70a5abacdb05979a5cec23","typeString":"literal_string \"token already available\""}],"overloadedDeclarations":[3722,3723],"referencedDeclaration":3723,"type":"function (bool,string memory) pure","value":"require"},"id":247,"name":"Identifier","src":"4706:7:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"available","referencedDeclaration":112,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct TokenWhitelist.Token storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":123,"type":"mapping(address => struct TokenWhitelist.Token storage ref)","value":"_tokenInfoMap"},"id":248,"name":"Identifier","src":"4715:13:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":190,"type":"address[] calldata","value":"_tokens"},"id":249,"name":"Identifier","src":"4729:7:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":237,"type":"uint256","value":"i"},"id":250,"name":"Identifier","src":"4737:1:10"}],"id":251,"name":"IndexAccess","src":"4729:10:10"}],"id":252,"name":"IndexAccess","src":"4715:25:10"}],"id":253,"name":"MemberAccess","src":"4715:35:10"}],"id":254,"name":"UnaryOperation","src":"4714:36:10"},{"attributes":{"argumentTypes":null,"hexvalue":"746f6b656e20616c726561647920617661696c61626c65","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"token already available\"","value":"token already available"},"id":255,"name":"Literal","src":"4752:25:10"}],"id":256,"name":"FunctionCall","src":"4706:72:10"}],"id":257,"name":"ExpressionStatement","src":"4706:72:10"},{"attributes":{"assignments":[259]},"children":[{"attributes":{"constant":false,"name":"symbol","scope":319,"stateVariable":false,"storageLocation":"memory","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":258,"name":"ElementaryTypeName","src":"4838:6:10"}],"id":259,"name":"VariableDeclaration","src":"4838:20:10"},{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"toString","referencedDeclaration":949,"type":"function (struct strings.slice memory) pure returns (string memory)"},"children":[{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"struct strings.slice memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"toSliceB32","referencedDeclaration":904,"type":"function (bytes32) pure returns (struct strings.slice memory)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":193,"type":"bytes32[] calldata","value":"_symbols"},"id":260,"name":"Identifier","src":"4861:8:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":237,"type":"uint256","value":"i"},"id":261,"name":"Identifier","src":"4870:1:10"}],"id":262,"name":"IndexAccess","src":"4861:11:10"}],"id":263,"name":"MemberAccess","src":"4861:22:10"}],"id":264,"name":"FunctionCall","src":"4861:24:10"}],"id":265,"name":"MemberAccess","src":"4861:33:10"}],"id":266,"name":"FunctionCall","src":"4861:35:10"}],"id":267,"name":"VariableDeclarationStatement","src":"4838:58:10"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"struct TokenWhitelist.Token storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"struct TokenWhitelist.Token storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":123,"type":"mapping(address => struct TokenWhitelist.Token storage ref)","value":"_tokenInfoMap"},"id":268,"name":"Identifier","src":"4958:13:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":190,"type":"address[] calldata","value":"_tokens"},"id":269,"name":"Identifier","src":"4972:7:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":237,"type":"uint256","value":"i"},"id":270,"name":"Identifier","src":"4980:1:10"}],"id":271,"name":"IndexAccess","src":"4972:10:10"}],"id":272,"name":"IndexAccess","src":"4958:25:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":true,"lValueRequested":false,"names":["symbol","magnitude","rate","available","loadable","burnable","lastUpdate"],"type":"struct TokenWhitelist.Token memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":119,"type":"type(struct TokenWhitelist.Token storage pointer)","value":"Token"},"id":273,"name":"Identifier","src":"4986:5:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":259,"type":"string memory","value":"symbol"},"id":274,"name":"Identifier","src":"5019:6:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":196,"type":"uint256[] calldata","value":"_magnitude"},"id":275,"name":"Identifier","src":"5055:10:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":237,"type":"uint256","value":"i"},"id":276,"name":"Identifier","src":"5066:1:10"}],"id":277,"name":"IndexAccess","src":"5055:13:10"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":278,"name":"Literal","src":"5093:1:10"},{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":279,"name":"Literal","src":"5124:4:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":199,"type":"bool[] calldata","value":"_loadable"},"id":280,"name":"Identifier","src":"5157:9:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":237,"type":"uint256","value":"i"},"id":281,"name":"Identifier","src":"5167:1:10"}],"id":282,"name":"IndexAccess","src":"5157:12:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":202,"type":"bool[] calldata","value":"_burnable"},"id":283,"name":"Identifier","src":"5197:9:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":237,"type":"uint256","value":"i"},"id":284,"name":"Identifier","src":"5207:1:10"}],"id":285,"name":"IndexAccess","src":"5197:12:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":204,"type":"uint256","value":"_lastUpdate"},"id":286,"name":"Identifier","src":"5240:11:10"}],"id":287,"name":"FunctionCall","src":"4986:284:10"}],"id":288,"name":"Assignment","src":"4958:312:10"}],"id":289,"name":"ExpressionStatement","src":"4958:312:10"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"push","referencedDeclaration":null,"type":"function (address) returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":126,"type":"address[] storage ref","value":"_tokenAddressArray"},"id":290,"name":"Identifier","src":"5342:18:10"}],"id":292,"name":"MemberAccess","src":"5342:23:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":190,"type":"address[] calldata","value":"_tokens"},"id":293,"name":"Identifier","src":"5366:7:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":237,"type":"uint256","value":"i"},"id":294,"name":"Identifier","src":"5374:1:10"}],"id":295,"name":"IndexAccess","src":"5366:10:10"}],"id":296,"name":"FunctionCall","src":"5342:35:10"}],"id":297,"name":"ExpressionStatement","src":"5342:35:10"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"overloadedDeclarations":[null],"referencedDeclaration":98,"type":"function (address,address,string memory,uint256,bool,bool)","value":"AddedToken"},"id":298,"name":"Identifier","src":"5438:10:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3719,"type":"msg","value":"msg"},"id":299,"name":"Identifier","src":"5449:3:10"}],"id":300,"name":"MemberAccess","src":"5449:10:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":190,"type":"address[] calldata","value":"_tokens"},"id":301,"name":"Identifier","src":"5461:7:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":237,"type":"uint256","value":"i"},"id":302,"name":"Identifier","src":"5469:1:10"}],"id":303,"name":"IndexAccess","src":"5461:10:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":259,"type":"string memory","value":"symbol"},"id":304,"name":"Identifier","src":"5473:6:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":196,"type":"uint256[] calldata","value":"_magnitude"},"id":305,"name":"Identifier","src":"5481:10:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":237,"type":"uint256","value":"i"},"id":306,"name":"Identifier","src":"5492:1:10"}],"id":307,"name":"IndexAccess","src":"5481:13:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":199,"type":"bool[] calldata","value":"_loadable"},"id":308,"name":"Identifier","src":"5496:9:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":237,"type":"uint256","value":"i"},"id":309,"name":"Identifier","src":"5506:1:10"}],"id":310,"name":"IndexAccess","src":"5496:12:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":202,"type":"bool[] calldata","value":"_burnable"},"id":311,"name":"Identifier","src":"5510:9:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":237,"type":"uint256","value":"i"},"id":312,"name":"Identifier","src":"5520:1:10"}],"id":313,"name":"IndexAccess","src":"5510:12:10"}],"id":314,"name":"FunctionCall","src":"5438:85:10"}],"id":315,"name":"EmitStatement","src":"5433:90:10"}],"id":316,"name":"Block","src":"4629:905:10"}],"id":317,"name":"ForStatement","src":"4587:947:10"}],"id":318,"name":"Block","src":"4256:1284:10"}],"id":319,"name":"FunctionDefinition","src":"4101:1439:10"},{"attributes":{"constant":false,"documentation":"@notice Remove ERC20 tokens from the whitelist of tokens.\n @param _tokens ERC20 token contract addresses.","implemented":true,"isConstructor":false,"name":"removeTokens","payable":false,"scope":576,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_tokens","scope":409,"stateVariable":false,"storageLocation":"default","type":"address[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"address[]"},"children":[{"attributes":{"name":"address","type":"address"},"id":320,"name":"ElementaryTypeName","src":"5689:7:10"}],"id":321,"name":"ArrayTypeName","src":"5689:9:10"}],"id":322,"name":"VariableDeclaration","src":"5689:17:10"}],"id":323,"name":"ParameterList","src":"5688:19:10"},{"attributes":{"parameters":[null]},"children":[],"id":326,"name":"ParameterList","src":"5732:0:10"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2482,"type":"modifier ()","value":"onlyController"},"id":324,"name":"Identifier","src":"5717:14:10"}],"id":325,"name":"ModifierInvocation","src":"5717:14:10"},{"children":[{"children":[{"attributes":{"assignments":[328]},"children":[{"attributes":{"constant":false,"name":"i","scope":409,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":327,"name":"ElementaryTypeName","src":"5850:4:10"}],"id":328,"name":"VariableDeclaration","src":"5850:6:10"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":329,"name":"Literal","src":"5859:1:10"}],"id":330,"name":"VariableDeclarationStatement","src":"5850:10:10"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":328,"type":"uint256","value":"i"},"id":331,"name":"Identifier","src":"5862:1:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":322,"type":"address[] calldata","value":"_tokens"},"id":332,"name":"Identifier","src":"5866:7:10"}],"id":333,"name":"MemberAccess","src":"5866:14:10"}],"id":334,"name":"BinaryOperation","src":"5862:18:10"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":328,"type":"uint256","value":"i"},"id":335,"name":"Identifier","src":"5882:1:10"}],"id":336,"name":"UnaryOperation","src":"5882:3:10"}],"id":337,"name":"ExpressionStatement","src":"5882:3:10"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d487155ec60125f09758305e6de21696dc3e345a5b0edca0b920691dd5be4852","typeString":"literal_string \"token is not available\""}],"overloadedDeclarations":[3722,3723],"referencedDeclaration":3723,"type":"function (bool,string memory) pure","value":"require"},"id":338,"name":"Identifier","src":"5970:7:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"available","referencedDeclaration":112,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct TokenWhitelist.Token storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":123,"type":"mapping(address => struct TokenWhitelist.Token storage ref)","value":"_tokenInfoMap"},"id":339,"name":"Identifier","src":"5978:13:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":322,"type":"address[] calldata","value":"_tokens"},"id":340,"name":"Identifier","src":"5992:7:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":328,"type":"uint256","value":"i"},"id":341,"name":"Identifier","src":"6000:1:10"}],"id":342,"name":"IndexAccess","src":"5992:10:10"}],"id":343,"name":"IndexAccess","src":"5978:25:10"}],"id":344,"name":"MemberAccess","src":"5978:35:10"},{"attributes":{"argumentTypes":null,"hexvalue":"746f6b656e206973206e6f7420617661696c61626c65","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"token is not available\"","value":"token is not available"},"id":345,"name":"Literal","src":"6015:24:10"}],"id":346,"name":"FunctionCall","src":"5970:70:10"}],"id":347,"name":"ExpressionStatement","src":"5970:70:10"},{"attributes":{"assignments":[349]},"children":[{"attributes":{"constant":false,"name":"token","scope":409,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":348,"name":"ElementaryTypeName","src":"6094:7:10"}],"id":349,"name":"VariableDeclaration","src":"6094:13:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":322,"type":"address[] calldata","value":"_tokens"},"id":350,"name":"Identifier","src":"6110:7:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":328,"type":"uint256","value":"i"},"id":351,"name":"Identifier","src":"6118:1:10"}],"id":352,"name":"IndexAccess","src":"6110:10:10"}],"id":353,"name":"VariableDeclarationStatement","src":"6094:26:10"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"delete","prefix":true,"type":"tuple()"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"struct TokenWhitelist.Token storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":123,"type":"mapping(address => struct TokenWhitelist.Token storage ref)","value":"_tokenInfoMap"},"id":354,"name":"Identifier","src":"6181:13:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":349,"type":"address","value":"token"},"id":355,"name":"Identifier","src":"6195:5:10"}],"id":356,"name":"IndexAccess","src":"6181:20:10"}],"id":357,"name":"UnaryOperation","src":"6174:27:10"}],"id":358,"name":"ExpressionStatement","src":"6174:27:10"},{"children":[{"attributes":{"assignments":[360]},"children":[{"attributes":{"constant":false,"name":"j","scope":409,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":359,"name":"ElementaryTypeName","src":"6283:4:10"}],"id":360,"name":"VariableDeclaration","src":"6283:6:10"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":361,"name":"Literal","src":"6292:1:10"}],"id":362,"name":"VariableDeclarationStatement","src":"6283:10:10"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":360,"type":"uint256","value":"j"},"id":363,"name":"Identifier","src":"6295:1:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sub","referencedDeclaration":659,"type":"function (uint256,uint256) pure returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":126,"type":"address[] storage ref","value":"_tokenAddressArray"},"id":364,"name":"Identifier","src":"6299:18:10"}],"id":365,"name":"MemberAccess","src":"6299:25:10"}],"id":366,"name":"MemberAccess","src":"6299:29:10"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":367,"name":"Literal","src":"6329:1:10"}],"id":368,"name":"FunctionCall","src":"6299:32:10"}],"id":369,"name":"BinaryOperation","src":"6295:36:10"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":360,"type":"uint256","value":"j"},"id":370,"name":"Identifier","src":"6333:1:10"}],"id":371,"name":"UnaryOperation","src":"6333:3:10"}],"id":372,"name":"ExpressionStatement","src":"6333:3:10"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":126,"type":"address[] storage ref","value":"_tokenAddressArray"},"id":373,"name":"Identifier","src":"6360:18:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":360,"type":"uint256","value":"j"},"id":374,"name":"Identifier","src":"6379:1:10"}],"id":375,"name":"IndexAccess","src":"6360:21:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":349,"type":"address","value":"token"},"id":376,"name":"Identifier","src":"6385:5:10"}],"id":377,"name":"BinaryOperation","src":"6360:30:10"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"address"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":126,"type":"address[] storage ref","value":"_tokenAddressArray"},"id":378,"name":"Identifier","src":"6414:18:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":360,"type":"uint256","value":"j"},"id":379,"name":"Identifier","src":"6433:1:10"}],"id":380,"name":"IndexAccess","src":"6414:21:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":126,"type":"address[] storage ref","value":"_tokenAddressArray"},"id":381,"name":"Identifier","src":"6438:18:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sub","referencedDeclaration":659,"type":"function (uint256,uint256) pure returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":126,"type":"address[] storage ref","value":"_tokenAddressArray"},"id":382,"name":"Identifier","src":"6457:18:10"}],"id":383,"name":"MemberAccess","src":"6457:25:10"}],"id":384,"name":"MemberAccess","src":"6457:29:10"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":385,"name":"Literal","src":"6487:1:10"}],"id":386,"name":"FunctionCall","src":"6457:32:10"}],"id":387,"name":"IndexAccess","src":"6438:52:10"}],"id":388,"name":"Assignment","src":"6414:76:10"}],"id":389,"name":"ExpressionStatement","src":"6414:76:10"},{"id":390,"name":"Break","src":"6512:5:10"}],"id":391,"name":"Block","src":"6392:144:10"}],"id":392,"name":"IfStatement","src":"6356:180:10"}],"id":393,"name":"Block","src":"6338:212:10"}],"id":394,"name":"ForStatement","src":"6278:272:10"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"--","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":126,"type":"address[] storage ref","value":"_tokenAddressArray"},"id":395,"name":"Identifier","src":"6563:18:10"}],"id":397,"name":"MemberAccess","src":"6563:25:10"}],"id":398,"name":"UnaryOperation","src":"6563:27:10"}],"id":399,"name":"ExpressionStatement","src":"6563:27:10"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":104,"type":"function (address,address)","value":"RemovedToken"},"id":400,"name":"Identifier","src":"6650:12:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3719,"type":"msg","value":"msg"},"id":401,"name":"Identifier","src":"6663:3:10"}],"id":402,"name":"MemberAccess","src":"6663:10:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":349,"type":"address","value":"token"},"id":403,"name":"Identifier","src":"6675:5:10"}],"id":404,"name":"FunctionCall","src":"6650:31:10"}],"id":405,"name":"EmitStatement","src":"6645:36:10"}],"id":406,"name":"Block","src":"5887:805:10"}],"id":407,"name":"ForStatement","src":"5845:847:10"}],"id":408,"name":"Block","src":"5732:966:10"}],"id":409,"name":"FunctionDefinition","src":"5667:1031:10"},{"attributes":{"constant":false,"documentation":"@notice Update ERC20 token exchange rate.\n @param _token ERC20 token contract address.\n @param _rate ERC20 token exchange rate in wei.\n @param _updateDate date for the token updates. This will be compared to when oracle updates are received.","implemented":true,"isConstructor":false,"name":"updateTokenRate","payable":false,"scope":576,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_token","scope":450,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":410,"name":"ElementaryTypeName","src":"7000:7:10"}],"id":411,"name":"VariableDeclaration","src":"7000:14:10"},{"attributes":{"constant":false,"name":"_rate","scope":450,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":412,"name":"ElementaryTypeName","src":"7016:4:10"}],"id":413,"name":"VariableDeclaration","src":"7016:10:10"},{"attributes":{"constant":false,"name":"_updateDate","scope":450,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":414,"name":"ElementaryTypeName","src":"7028:4:10"}],"id":415,"name":"VariableDeclaration","src":"7028:16:10"}],"id":416,"name":"ParameterList","src":"6999:46:10"},{"attributes":{"parameters":[null]},"children":[],"id":419,"name":"ParameterList","src":"7078:0:10"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":149,"type":"modifier ()","value":"onlyControllerOrOracle"},"id":417,"name":"Identifier","src":"7055:22:10"}],"id":418,"name":"ModifierInvocation","src":"7055:22:10"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d487155ec60125f09758305e6de21696dc3e345a5b0edca0b920691dd5be4852","typeString":"literal_string \"token is not available\""}],"overloadedDeclarations":[3722,3723],"referencedDeclaration":3723,"type":"function (bool,string memory) pure","value":"require"},"id":420,"name":"Identifier","src":"7130:7:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"available","referencedDeclaration":112,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct TokenWhitelist.Token storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":123,"type":"mapping(address => struct TokenWhitelist.Token storage ref)","value":"_tokenInfoMap"},"id":421,"name":"Identifier","src":"7138:13:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":411,"type":"address","value":"_token"},"id":422,"name":"Identifier","src":"7152:6:10"}],"id":423,"name":"IndexAccess","src":"7138:21:10"}],"id":424,"name":"MemberAccess","src":"7138:31:10"},{"attributes":{"argumentTypes":null,"hexvalue":"746f6b656e206973206e6f7420617661696c61626c65","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"token is not available\"","value":"token is not available"},"id":425,"name":"Literal","src":"7171:24:10"}],"id":426,"name":"FunctionCall","src":"7130:66:10"}],"id":427,"name":"ExpressionStatement","src":"7130:66:10"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"rate","referencedDeclaration":110,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct TokenWhitelist.Token storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":123,"type":"mapping(address => struct TokenWhitelist.Token storage ref)","value":"_tokenInfoMap"},"id":428,"name":"Identifier","src":"7242:13:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":411,"type":"address","value":"_token"},"id":429,"name":"Identifier","src":"7256:6:10"}],"id":430,"name":"IndexAccess","src":"7242:21:10"}],"id":431,"name":"MemberAccess","src":"7242:26:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":413,"type":"uint256","value":"_rate"},"id":432,"name":"Identifier","src":"7271:5:10"}],"id":433,"name":"Assignment","src":"7242:34:10"}],"id":434,"name":"ExpressionStatement","src":"7242:34:10"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"lastUpdate","referencedDeclaration":118,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct TokenWhitelist.Token storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":123,"type":"mapping(address => struct TokenWhitelist.Token storage ref)","value":"_tokenInfoMap"},"id":435,"name":"Identifier","src":"7339:13:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":411,"type":"address","value":"_token"},"id":436,"name":"Identifier","src":"7353:6:10"}],"id":437,"name":"IndexAccess","src":"7339:21:10"}],"id":438,"name":"MemberAccess","src":"7339:32:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":415,"type":"uint256","value":"_updateDate"},"id":439,"name":"Identifier","src":"7374:11:10"}],"id":440,"name":"Assignment","src":"7339:46:10"}],"id":441,"name":"ExpressionStatement","src":"7339:46:10"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":84,"type":"function (address,address,uint256)","value":"UpdatedTokenRate"},"id":442,"name":"Identifier","src":"7439:16:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3719,"type":"msg","value":"msg"},"id":443,"name":"Identifier","src":"7456:3:10"}],"id":444,"name":"MemberAccess","src":"7456:10:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":411,"type":"address","value":"_token"},"id":445,"name":"Identifier","src":"7468:6:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":413,"type":"uint256","value":"_rate"},"id":446,"name":"Identifier","src":"7476:5:10"}],"id":447,"name":"FunctionCall","src":"7439:43:10"}],"id":448,"name":"EmitStatement","src":"7434:48:10"}],"id":449,"name":"Block","src":"7078:411:10"}],"id":450,"name":"FunctionDefinition","src":"6975:514:10"},{"attributes":{"constant":false,"documentation":"/ @notice Withdraw tokens from the smart contract to the specified account.","implemented":true,"isConstructor":false,"name":"claim","payable":false,"scope":576,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_to","scope":468,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":451,"name":"ElementaryTypeName","src":"7593:7:10"}],"id":452,"name":"VariableDeclaration","src":"7593:11:10"},{"attributes":{"constant":false,"name":"_asset","scope":468,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":453,"name":"ElementaryTypeName","src":"7606:7:10"}],"id":454,"name":"VariableDeclaration","src":"7606:14:10"},{"attributes":{"constant":false,"name":"_amount","scope":468,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":455,"name":"ElementaryTypeName","src":"7622:4:10"}],"id":456,"name":"VariableDeclaration","src":"7622:12:10"}],"id":457,"name":"ParameterList","src":"7592:43:10"},{"attributes":{"parameters":[null]},"children":[],"id":460,"name":"ParameterList","src":"7655:0:10"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2567,"type":"modifier ()","value":"onlyOwner"},"id":458,"name":"Identifier","src":"7645:9:10"}],"id":459,"name":"ModifierInvocation","src":"7645:9:10"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":2451,"type":"function (address,address,uint256)","value":"_claim"},"id":461,"name":"Identifier","src":"7665:6:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":452,"type":"address","value":"_to"},"id":462,"name":"Identifier","src":"7672:3:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":454,"type":"address","value":"_asset"},"id":463,"name":"Identifier","src":"7677:6:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":456,"type":"uint256","value":"_amount"},"id":464,"name":"Identifier","src":"7685:7:10"}],"id":465,"name":"FunctionCall","src":"7665:28:10"}],"id":466,"name":"ExpressionStatement","src":"7665:28:10"}],"id":467,"name":"Block","src":"7655:45:10"}],"id":468,"name":"FunctionDefinition","src":"7578:122:10"},{"attributes":{"constant":true,"documentation":"@notice This returns all of the fields for a given token\n @param _a is the address of a given token\n @return string of the token's symbol\n @return uint of the token's magnitude\n @return uint of the token's exchange rate to ETH\n @return bool whether the token is available\n @return bool whether the token is loadable to the TokenCard\n @return bool whether the token is burnable to the TKN Holder Contract\n @return uint of the lastUpdated time of the token's exchange rate","implemented":true,"isConstructor":false,"modifiers":[null],"name":"getTokenInfo","payable":false,"scope":576,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_a","scope":510,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":469,"name":"ElementaryTypeName","src":"8263:7:10"}],"id":470,"name":"VariableDeclaration","src":"8263:10:10"}],"id":471,"name":"ParameterList","src":"8262:12:10"},{"children":[{"attributes":{"constant":false,"name":"","scope":510,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":472,"name":"ElementaryTypeName","src":"8298:6:10"}],"id":473,"name":"VariableDeclaration","src":"8298:6:10"},{"attributes":{"constant":false,"name":"","scope":510,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":474,"name":"ElementaryTypeName","src":"8306:7:10"}],"id":475,"name":"VariableDeclaration","src":"8306:7:10"},{"attributes":{"constant":false,"name":"","scope":510,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":476,"name":"ElementaryTypeName","src":"8315:7:10"}],"id":477,"name":"VariableDeclaration","src":"8315:7:10"},{"attributes":{"constant":false,"name":"","scope":510,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":478,"name":"ElementaryTypeName","src":"8324:4:10"}],"id":479,"name":"VariableDeclaration","src":"8324:4:10"},{"attributes":{"constant":false,"name":"","scope":510,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":480,"name":"ElementaryTypeName","src":"8330:4:10"}],"id":481,"name":"VariableDeclaration","src":"8330:4:10"},{"attributes":{"constant":false,"name":"","scope":510,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":482,"name":"ElementaryTypeName","src":"8336:4:10"}],"id":483,"name":"VariableDeclaration","src":"8336:4:10"},{"attributes":{"constant":false,"name":"","scope":510,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":484,"name":"ElementaryTypeName","src":"8342:7:10"}],"id":485,"name":"VariableDeclaration","src":"8342:7:10"}],"id":486,"name":"ParameterList","src":"8297:53:10"},{"children":[{"attributes":{"assignments":[488]},"children":[{"attributes":{"constant":false,"name":"tokenInfo","scope":510,"stateVariable":false,"storageLocation":"storage","type":"struct TokenWhitelist.Token","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"Token","referencedDeclaration":119,"type":"struct TokenWhitelist.Token"},"id":487,"name":"UserDefinedTypeName","src":"8361:5:10"}],"id":488,"name":"VariableDeclaration","src":"8361:23:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct TokenWhitelist.Token storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":123,"type":"mapping(address => struct TokenWhitelist.Token storage ref)","value":"_tokenInfoMap"},"id":489,"name":"Identifier","src":"8387:13:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":470,"type":"address","value":"_a"},"id":490,"name":"Identifier","src":"8401:2:10"}],"id":491,"name":"IndexAccess","src":"8387:17:10"}],"id":492,"name":"VariableDeclarationStatement","src":"8361:43:10"},{"attributes":{"functionReturnParameters":486},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"tuple(string storage ref,uint256,uint256,bool,bool,bool,uint256)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"symbol","referencedDeclaration":106,"type":"string storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":488,"type":"struct TokenWhitelist.Token storage pointer","value":"tokenInfo"},"id":493,"name":"Identifier","src":"8422:9:10"}],"id":494,"name":"MemberAccess","src":"8422:16:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"magnitude","referencedDeclaration":108,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":488,"type":"struct TokenWhitelist.Token storage pointer","value":"tokenInfo"},"id":495,"name":"Identifier","src":"8440:9:10"}],"id":496,"name":"MemberAccess","src":"8440:19:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"rate","referencedDeclaration":110,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":488,"type":"struct TokenWhitelist.Token storage pointer","value":"tokenInfo"},"id":497,"name":"Identifier","src":"8461:9:10"}],"id":498,"name":"MemberAccess","src":"8461:14:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"available","referencedDeclaration":112,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":488,"type":"struct TokenWhitelist.Token storage pointer","value":"tokenInfo"},"id":499,"name":"Identifier","src":"8477:9:10"}],"id":500,"name":"MemberAccess","src":"8477:19:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"loadable","referencedDeclaration":114,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":488,"type":"struct TokenWhitelist.Token storage pointer","value":"tokenInfo"},"id":501,"name":"Identifier","src":"8498:9:10"}],"id":502,"name":"MemberAccess","src":"8498:18:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"burnable","referencedDeclaration":116,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":488,"type":"struct TokenWhitelist.Token storage pointer","value":"tokenInfo"},"id":503,"name":"Identifier","src":"8518:9:10"}],"id":504,"name":"MemberAccess","src":"8518:18:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"lastUpdate","referencedDeclaration":118,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":488,"type":"struct TokenWhitelist.Token storage pointer","value":"tokenInfo"},"id":505,"name":"Identifier","src":"8538:9:10"}],"id":506,"name":"MemberAccess","src":"8538:20:10"}],"id":507,"name":"TupleExpression","src":"8421:138:10"}],"id":508,"name":"Return","src":"8414:145:10"}],"id":509,"name":"Block","src":"8351:215:10"}],"id":510,"name":"FunctionDefinition","src":"8241:325:10"},{"attributes":{"constant":true,"documentation":"@notice This returns all of the fields for our StableCoin\n @return string of the token's symbol\n @return uint of the token's magnitude\n @return uint of the token's exchange rate to ETH\n @return bool whether the token is available\n @return bool whether the token is loadable to the TokenCard\n @return bool whether the token is burnable to the TKN Holder Contract\n @return uint of the lastUpdated time of the token's exchange rate","implemented":true,"isConstructor":false,"modifiers":[null],"name":"getStablecoinInfo","payable":false,"scope":576,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":511,"name":"ParameterList","src":"9084:2:10"},{"children":[{"attributes":{"constant":false,"name":"","scope":550,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":512,"name":"ElementaryTypeName","src":"9110:6:10"}],"id":513,"name":"VariableDeclaration","src":"9110:6:10"},{"attributes":{"constant":false,"name":"","scope":550,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":514,"name":"ElementaryTypeName","src":"9118:7:10"}],"id":515,"name":"VariableDeclaration","src":"9118:7:10"},{"attributes":{"constant":false,"name":"","scope":550,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":516,"name":"ElementaryTypeName","src":"9127:7:10"}],"id":517,"name":"VariableDeclaration","src":"9127:7:10"},{"attributes":{"constant":false,"name":"","scope":550,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":518,"name":"ElementaryTypeName","src":"9136:4:10"}],"id":519,"name":"VariableDeclaration","src":"9136:4:10"},{"attributes":{"constant":false,"name":"","scope":550,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":520,"name":"ElementaryTypeName","src":"9142:4:10"}],"id":521,"name":"VariableDeclaration","src":"9142:4:10"},{"attributes":{"constant":false,"name":"","scope":550,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":522,"name":"ElementaryTypeName","src":"9148:4:10"}],"id":523,"name":"VariableDeclaration","src":"9148:4:10"},{"attributes":{"constant":false,"name":"","scope":550,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":524,"name":"ElementaryTypeName","src":"9154:7:10"}],"id":525,"name":"VariableDeclaration","src":"9154:7:10"}],"id":526,"name":"ParameterList","src":"9109:53:10"},{"children":[{"attributes":{"assignments":[528]},"children":[{"attributes":{"constant":false,"name":"stablecoinInfo","scope":550,"stateVariable":false,"storageLocation":"storage","type":"struct TokenWhitelist.Token","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"Token","referencedDeclaration":119,"type":"struct TokenWhitelist.Token"},"id":527,"name":"UserDefinedTypeName","src":"9173:5:10"}],"id":528,"name":"VariableDeclaration","src":"9173:28:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct TokenWhitelist.Token storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":123,"type":"mapping(address => struct TokenWhitelist.Token storage ref)","value":"_tokenInfoMap"},"id":529,"name":"Identifier","src":"9204:13:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":151,"type":"address","value":"_stablecoin"},"id":530,"name":"Identifier","src":"9218:11:10"}],"id":531,"name":"IndexAccess","src":"9204:26:10"}],"id":532,"name":"VariableDeclarationStatement","src":"9173:57:10"},{"attributes":{"functionReturnParameters":526},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"tuple(string storage ref,uint256,uint256,bool,bool,bool,uint256)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"symbol","referencedDeclaration":106,"type":"string storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":528,"type":"struct TokenWhitelist.Token storage pointer","value":"stablecoinInfo"},"id":533,"name":"Identifier","src":"9248:14:10"}],"id":534,"name":"MemberAccess","src":"9248:21:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"magnitude","referencedDeclaration":108,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":528,"type":"struct TokenWhitelist.Token storage pointer","value":"stablecoinInfo"},"id":535,"name":"Identifier","src":"9271:14:10"}],"id":536,"name":"MemberAccess","src":"9271:24:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"rate","referencedDeclaration":110,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":528,"type":"struct TokenWhitelist.Token storage pointer","value":"stablecoinInfo"},"id":537,"name":"Identifier","src":"9297:14:10"}],"id":538,"name":"MemberAccess","src":"9297:19:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"available","referencedDeclaration":112,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":528,"type":"struct TokenWhitelist.Token storage pointer","value":"stablecoinInfo"},"id":539,"name":"Identifier","src":"9318:14:10"}],"id":540,"name":"MemberAccess","src":"9318:24:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"loadable","referencedDeclaration":114,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":528,"type":"struct TokenWhitelist.Token storage pointer","value":"stablecoinInfo"},"id":541,"name":"Identifier","src":"9344:14:10"}],"id":542,"name":"MemberAccess","src":"9344:23:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"burnable","referencedDeclaration":116,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":528,"type":"struct TokenWhitelist.Token storage pointer","value":"stablecoinInfo"},"id":543,"name":"Identifier","src":"9369:14:10"}],"id":544,"name":"MemberAccess","src":"9369:23:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"lastUpdate","referencedDeclaration":118,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":528,"type":"struct TokenWhitelist.Token storage pointer","value":"stablecoinInfo"},"id":545,"name":"Identifier","src":"9394:14:10"}],"id":546,"name":"MemberAccess","src":"9394:25:10"}],"id":547,"name":"TupleExpression","src":"9247:173:10"}],"id":548,"name":"Return","src":"9240:180:10"}],"id":549,"name":"Block","src":"9163:264:10"}],"id":550,"name":"FunctionDefinition","src":"9058:369:10"},{"attributes":{"constant":true,"documentation":"@notice This returns an array of our whitelisted address\n @return address[] of our whitelisted tokens","implemented":true,"isConstructor":false,"modifiers":[null],"name":"tokenAddressArray","payable":false,"scope":576,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":551,"name":"ParameterList","src":"9576:2:10"},{"children":[{"attributes":{"constant":false,"name":"","scope":559,"stateVariable":false,"storageLocation":"default","type":"address[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"address[]"},"children":[{"attributes":{"name":"address","type":"address"},"id":552,"name":"ElementaryTypeName","src":"9602:7:10"}],"id":553,"name":"ArrayTypeName","src":"9602:9:10"}],"id":554,"name":"VariableDeclaration","src":"9602:9:10"}],"id":555,"name":"ParameterList","src":"9601:11:10"},{"children":[{"attributes":{"functionReturnParameters":555},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":126,"type":"address[] storage ref","value":"_tokenAddressArray"},"id":556,"name":"Identifier","src":"9630:18:10"}],"id":557,"name":"Return","src":"9623:25:10"}],"id":558,"name":"Block","src":"9613:42:10"}],"id":559,"name":"FunctionDefinition","src":"9550:105:10"},{"attributes":{"constant":true,"documentation":"@notice This returns the address of our stablecoin of choice\n @return the address of the stablecoin contract.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"stablecoin","payable":false,"scope":576,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":560,"name":"ParameterList","src":"9805:2:10"},{"children":[{"attributes":{"constant":false,"name":"","scope":567,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":561,"name":"ElementaryTypeName","src":"9831:7:10"}],"id":562,"name":"VariableDeclaration","src":"9831:7:10"}],"id":563,"name":"ParameterList","src":"9830:9:10"},{"children":[{"attributes":{"functionReturnParameters":563},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":151,"type":"address","value":"_stablecoin"},"id":564,"name":"Identifier","src":"9857:11:10"}],"id":565,"name":"Return","src":"9850:18:10"}],"id":566,"name":"Block","src":"9840:35:10"}],"id":567,"name":"FunctionDefinition","src":"9786:89:10"},{"attributes":{"constant":true,"documentation":"@notice this returns the node hash of our Oracle\n @return the oracle node registered in ENS.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"oracleNode","payable":false,"scope":576,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":568,"name":"ParameterList","src":"10008:2:10"},{"children":[{"attributes":{"constant":false,"name":"","scope":575,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":569,"name":"ElementaryTypeName","src":"10034:7:10"}],"id":570,"name":"VariableDeclaration","src":"10034:7:10"}],"id":571,"name":"ParameterList","src":"10033:9:10"},{"children":[{"attributes":{"functionReturnParameters":571},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":153,"type":"bytes32","value":"_oracleNode"},"id":572,"name":"Identifier","src":"10060:11:10"}],"id":573,"name":"Return","src":"10053:18:10"}],"id":574,"name":"Block","src":"10043:35:10"}],"id":575,"name":"FunctionDefinition","src":"9989:89:10"}],"id":576,"name":"ContractDefinition","src":"1619:8461:10"}],"id":577,"name":"SourceUnit","src":"774:9307:10"}}},"version":"0.4.25+commit.59dbf8f1.Linux.g++"} \ No newline at end of file diff --git a/build/mocks/tokenWhitelistableExporter/Claimable.abi b/build/mocks/tokenWhitelistableExporter/Claimable.abi new file mode 100644 index 00000000..1a28b788 --- /dev/null +++ b/build/mocks/tokenWhitelistableExporter/Claimable.abi @@ -0,0 +1 @@ +[{"anonymous":false,"inputs":[{"indexed":false,"name":"_to","type":"address"},{"indexed":false,"name":"_asset","type":"address"},{"indexed":false,"name":"_amount","type":"uint256"}],"name":"Claimed","type":"event"}] \ No newline at end of file diff --git a/build/mocks/tokenWhitelistableExporter/Claimable.bin b/build/mocks/tokenWhitelistableExporter/Claimable.bin new file mode 100644 index 00000000..44b20f35 --- /dev/null +++ b/build/mocks/tokenWhitelistableExporter/Claimable.bin @@ -0,0 +1 @@ +6080604052348015600f57600080fd5b50603580601d6000396000f3006080604052600080fd00a165627a7a72305820395b628221b28dc04b0498f55415adf15a37b484bd593b1cfd29b4eab19dc5300029 \ No newline at end of file diff --git a/build/mocks/tokenWhitelistableExporter/Controller.abi b/build/mocks/tokenWhitelistableExporter/Controller.abi index 5df6cd3a..10bc0c9e 100644 --- a/build/mocks/tokenWhitelistableExporter/Controller.abi +++ b/build/mocks/tokenWhitelistableExporter/Controller.abi @@ -1 +1 @@ -[{"constant":true,"inputs":[],"name":"controllerCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_account","type":"address"}],"name":"removeAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isTransferable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_account","type":"address"}],"name":"isAdmin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"adminCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_account","type":"address"}],"name":"addAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_account","type":"address"}],"name":"addController","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_account","type":"address"},{"name":"_transferable","type":"bool"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_account","type":"address"}],"name":"isController","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_account","type":"address"}],"name":"removeController","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_ownerAddress_","type":"address"},{"name":"_transferable_","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_sender","type":"address"},{"indexed":false,"name":"_controller","type":"address"}],"name":"AddedController","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_sender","type":"address"},{"indexed":false,"name":"_controller","type":"address"}],"name":"RemovedController","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_sender","type":"address"},{"indexed":false,"name":"_admin","type":"address"}],"name":"AddedAdmin","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_sender","type":"address"},{"indexed":false,"name":"_admin","type":"address"}],"name":"RemovedAdmin","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_from","type":"address"},{"indexed":false,"name":"_to","type":"address"}],"name":"TransferredOwnership","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_locked","type":"address"}],"name":"LockedOwnership","type":"event"}] \ No newline at end of file +[{"constant":true,"inputs":[],"name":"controllerCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_account","type":"address"}],"name":"removeAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isTransferable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_account","type":"address"}],"name":"isAdmin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"adminCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_account","type":"address"}],"name":"addAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_asset","type":"address"},{"name":"_amount","type":"uint256"}],"name":"claim","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_account","type":"address"}],"name":"addController","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_account","type":"address"},{"name":"_transferable","type":"bool"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_account","type":"address"}],"name":"isController","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_account","type":"address"}],"name":"removeController","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_ownerAddress_","type":"address"},{"name":"_transferable_","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_sender","type":"address"},{"indexed":false,"name":"_controller","type":"address"}],"name":"AddedController","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_sender","type":"address"},{"indexed":false,"name":"_controller","type":"address"}],"name":"RemovedController","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_sender","type":"address"},{"indexed":false,"name":"_admin","type":"address"}],"name":"AddedAdmin","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_sender","type":"address"},{"indexed":false,"name":"_admin","type":"address"}],"name":"RemovedAdmin","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_to","type":"address"},{"indexed":false,"name":"_asset","type":"address"},{"indexed":false,"name":"_amount","type":"uint256"}],"name":"Claimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_from","type":"address"},{"indexed":false,"name":"_to","type":"address"}],"name":"TransferredOwnership","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_locked","type":"address"}],"name":"LockedOwnership","type":"event"}] \ No newline at end of file diff --git a/build/mocks/tokenWhitelistableExporter/Controller.bin b/build/mocks/tokenWhitelistableExporter/Controller.bin index bbc39dbe..afa63062 100644 --- a/build/mocks/tokenWhitelistableExporter/Controller.bin +++ b/build/mocks/tokenWhitelistableExporter/Controller.bin @@ -1 +1 @@ -608060405234801561001057600080fd5b5060405160408061103a83398101604052805160209091015160008054600160a060020a031916600160a060020a0384161760a060020a60ff02191674010000000000000000000000000000000000000000831515810291909117918290558391839160ff91041615156100bb5760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b6040805160008152600160a060020a038416602082015281517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea5929181900390910190a150505050610f28806101126000396000f3006080604052600436106100b95763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166315b9a8b881146100be5780631785f53c146100e55780632121dc751461010857806324d7806c146101315780632b7832b3146101525780637048027514610167578063715018a6146101885780638da5cb5b1461019d578063a7fc7a07146101ce578063b242e534146101ef578063b429afeb14610215578063f6a74ed714610236575b600080fd5b3480156100ca57600080fd5b506100d3610257565b60408051918252519081900360200190f35b3480156100f157600080fd5b50610106600160a060020a036004351661025d565b005b34801561011457600080fd5b5061011d6102b6565b604080519115158252519081900360200190f35b34801561013d57600080fd5b5061011d600160a060020a03600435166102d7565b34801561015e57600080fd5b506100d36102f5565b34801561017357600080fd5b50610106600160a060020a03600435166102fb565b34801561019457600080fd5b50610106610351565b3480156101a957600080fd5b506101b261046c565b60408051600160a060020a039092168252519081900360200190f35b3480156101da57600080fd5b50610106600160a060020a036004351661047b565b3480156101fb57600080fd5b50610106600160a060020a036004351660243515156104e3565b34801561022157600080fd5b5061011d600160a060020a0360043516610722565b34801561024257600080fd5b50610106600160a060020a0360043516610740565b60045490565b610266336107a8565b15156102aa576040805160e560020a62461bcd0281526020600482015260166024820152600080516020610edd833981519152604482015290519081900360640190fd5b6102b3816107bc565b50565b60005474010000000000000000000000000000000000000000900460ff1690565b600160a060020a031660009081526001602052604090205460ff1690565b60025490565b610304336107a8565b1515610348576040805160e560020a62461bcd0281526020600482015260166024820152600080516020610edd833981519152604482015290519081900360640190fd5b6102b381610897565b61035a336107a8565b151561039e576040805160e560020a62461bcd0281526020600482015260166024820152600080516020610edd833981519152604482015290519081900360640190fd5b60005474010000000000000000000000000000000000000000900460ff161515610412576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916815560408051828152602081019290925280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1565b600054600160a060020a031690565b610484336102d7565b15156104da576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e2061646d696e00000000000000000000604482015290519081900360640190fd5b6102b381610b38565b6104ec336107a8565b1515610530576040805160e560020a62461bcd0281526020600482015260166024820152600080516020610edd833981519152604482015290519081900360640190fd5b60005474010000000000000000000000000000000000000000900460ff1615156105a4576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b600160a060020a038216151561062a576040805160e560020a62461bcd02815260206004820152602360248201527f6f776e65722063616e6e6f742062652073657420746f207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6000805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000831515908102919091179091556106aa5760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b60005460408051600160a060020a039283168152918416602083015280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1506000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a031660009081526003602052604090205460ff1690565b610749336102d7565b151561079f576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e2061646d696e00000000000000000000604482015290519081900360640190fd5b6102b381610ddc565b600054600160a060020a0390811691161490565b600160a060020a03811660009081526001602052604090205460ff16151561082e576040805160e560020a62461bcd02815260206004820181905260248201527f70726f7669646564206163636f756e74206973206e6f7420616e2061646d696e604482015290519081900360640190fd5b600160a060020a038116600081815260016020908152604091829020805460ff191690556002805460001901905581513381529081019290925280517f787a2e12f4a55b658b8f573c32432ee11a5e8b51677d1e1e937aaf6a0bb5776e9281900390910190a150565b600160a060020a03811660009081526001602052604090205460ff161561092d576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320616c726561647920616e206160448201527f646d696e00000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a03811660009081526003602052604090205460ff16156109c4576040805160e560020a62461bcd02815260206004820152602860248201527f70726f7669646564206163636f756e7420697320616c7265616479206120636f60448201527f6e74726f6c6c6572000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6109cd816107a8565b15610a48576040805160e560020a62461bcd02815260206004820152602560248201527f70726f7669646564206163636f756e7420697320616c7265616479207468652060448201527f6f776e6572000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0381161515610acd576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260016020818152604092839020805460ff1916831790556002805490920190915581513381529081019290925280517fc58b647b8ba5a8cab2f11f32673636cc1061324240972ed05e8cc005b81a4b7a9281900390910190a150565b600160a060020a03811660009081526001602052604090205460ff1615610bce576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320616c726561647920616e206160448201527f646d696e00000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a03811660009081526003602052604090205460ff1615610c65576040805160e560020a62461bcd02815260206004820152602860248201527f70726f7669646564206163636f756e7420697320616c7265616479206120636f60448201527f6e74726f6c6c6572000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b610c6e816107a8565b15610ce9576040805160e560020a62461bcd02815260206004820152602560248201527f70726f7669646564206163636f756e7420697320616c7265616479207468652060448201527f6f776e6572000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0381161515610d6e576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260036020908152604091829020805460ff1916600190811790915560048054909101905581513381529081019290925280517fb890d5abdcd5c2b61ce8bbc2cf6af9b6d7f7451830cbc85037cbdd182c86fe1d9281900390910190a150565b600160a060020a03811660009081526003602052604090205460ff161515610e73576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e74206973206e6f74206120636f6e74726f60448201527f6c6c657200000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260036020908152604091829020805460ff191690556004805460001901905581513381529081019290925280517fb6a283aaede08e15ef55c74e3014e30eb0c0040d4b156cccb77391268ea373949281900390910190a150560073656e646572206973206e6f7420616e206f776e657200000000000000000000a165627a7a72305820e3381d505607ee63056d5ba42a87e53a7b0dab423e773fa53f1e050ccb6949390029 \ No newline at end of file +608060405234801561001057600080fd5b5060405160408061128b83398101604052805160209091015160008054600160a060020a031916600160a060020a0384161760a060020a60ff02191674010000000000000000000000000000000000000000831515810291909117918290558391839160ff91041615156100bb5760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b6040805160008152600160a060020a038416602082015281517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea5929181900390910190a150505050611179806101126000396000f3006080604052600436106100c45763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166315b9a8b881146100c95780631785f53c146100f05780632121dc751461011357806324d7806c1461013c5780632b7832b31461015d5780637048027514610172578063715018a6146101935780638da5cb5b146101a8578063996cba68146101d9578063a7fc7a0714610203578063b242e53414610224578063b429afeb1461024a578063f6a74ed71461026b575b600080fd5b3480156100d557600080fd5b506100de61028c565b60408051918252519081900360200190f35b3480156100fc57600080fd5b50610111600160a060020a0360043516610292565b005b34801561011f57600080fd5b506101286102eb565b604080519115158252519081900360200190f35b34801561014857600080fd5b50610128600160a060020a036004351661030c565b34801561016957600080fd5b506100de61032a565b34801561017e57600080fd5b50610111600160a060020a0360043516610330565b34801561019f57600080fd5b50610111610386565b3480156101b457600080fd5b506101bd6104a1565b60408051600160a060020a039092168252519081900360200190f35b3480156101e557600080fd5b50610111600160a060020a03600435811690602435166044356104b0565b34801561020f57600080fd5b50610111600160a060020a036004351661050d565b34801561023057600080fd5b50610111600160a060020a03600435166024351515610575565b34801561025657600080fd5b50610128600160a060020a03600435166107b4565b34801561027757600080fd5b50610111600160a060020a03600435166107d2565b60045490565b61029b3361083a565b15156102df576040805160e560020a62461bcd028152602060048201526016602482015260008051602061112e833981519152604482015290519081900360640190fd5b6102e88161084e565b50565b60005474010000000000000000000000000000000000000000900460ff1690565b600160a060020a031660009081526001602052604090205460ff1690565b60025490565b6103393361083a565b151561037d576040805160e560020a62461bcd028152602060048201526016602482015260008051602061112e833981519152604482015290519081900360640190fd5b6102e881610929565b61038f3361083a565b15156103d3576040805160e560020a62461bcd028152602060048201526016602482015260008051602061112e833981519152604482015290519081900360640190fd5b60005474010000000000000000000000000000000000000000900460ff161515610447576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916815560408051828152602081019290925280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1565b600054600160a060020a031690565b6104b93361083a565b15156104fd576040805160e560020a62461bcd028152602060048201526016602482015260008051602061112e833981519152604482015290519081900360640190fd5b610508838383610bca565b505050565b6105163361030c565b151561056c576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e2061646d696e00000000000000000000604482015290519081900360640190fd5b6102e881610d89565b61057e3361083a565b15156105c2576040805160e560020a62461bcd028152602060048201526016602482015260008051602061112e833981519152604482015290519081900360640190fd5b60005474010000000000000000000000000000000000000000900460ff161515610636576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b600160a060020a03821615156106bc576040805160e560020a62461bcd02815260206004820152602360248201527f6f776e65722063616e6e6f742062652073657420746f207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6000805474ff00000000000000000000000000000000000000001916740100000000000000000000000000000000000000008315159081029190911790915561073c5760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b60005460408051600160a060020a039283168152918416602083015280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1506000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a031660009081526003602052604090205460ff1690565b6107db3361030c565b1515610831576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e2061646d696e00000000000000000000604482015290519081900360640190fd5b6102e88161102d565b600054600160a060020a0390811691161490565b600160a060020a03811660009081526001602052604090205460ff1615156108c0576040805160e560020a62461bcd02815260206004820181905260248201527f70726f7669646564206163636f756e74206973206e6f7420616e2061646d696e604482015290519081900360640190fd5b600160a060020a038116600081815260016020908152604091829020805460ff191690556002805460001901905581513381529081019290925280517f787a2e12f4a55b658b8f573c32432ee11a5e8b51677d1e1e937aaf6a0bb5776e9281900390910190a150565b600160a060020a03811660009081526001602052604090205460ff16156109bf576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320616c726561647920616e206160448201527f646d696e00000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a03811660009081526003602052604090205460ff1615610a56576040805160e560020a62461bcd02815260206004820152602860248201527f70726f7669646564206163636f756e7420697320616c7265616479206120636f60448201527f6e74726f6c6c6572000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b610a5f8161083a565b15610ada576040805160e560020a62461bcd02815260206004820152602560248201527f70726f7669646564206163636f756e7420697320616c7265616479207468652060448201527f6f776e6572000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0381161515610b5f576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260016020818152604092839020805460ff1916831790556002805490920190915581513381529081019290925280517fc58b647b8ba5a8cab2f11f32673636cc1061324240972ed05e8cc005b81a4b7a9281900390910190a150565b600160a060020a0382161515610c1657604051600160a060020a0384169082156108fc029083906000818181858888f19350505050158015610c10573d6000803e3d6000fd5b50610d3a565b81600160a060020a031663a9059cbb84836040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b158015610c9257600080fd5b505af1158015610ca6573d6000803e3d6000fd5b505050506040513d6020811015610cbc57600080fd5b50511515610d3a576040805160e560020a62461bcd02815260206004820152602560248201527f455243323020746f6b656e207472616e736665722077617320756e737563636560448201527f737366756c000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60408051600160a060020a0380861682528416602082015280820183905290517ff7a40077ff7a04c7e61f6f26fb13774259ddf1b6bce9ecf26a8276cdd39926839181900360600190a1505050565b600160a060020a03811660009081526001602052604090205460ff1615610e1f576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320616c726561647920616e206160448201527f646d696e00000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a03811660009081526003602052604090205460ff1615610eb6576040805160e560020a62461bcd02815260206004820152602860248201527f70726f7669646564206163636f756e7420697320616c7265616479206120636f60448201527f6e74726f6c6c6572000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b610ebf8161083a565b15610f3a576040805160e560020a62461bcd02815260206004820152602560248201527f70726f7669646564206163636f756e7420697320616c7265616479207468652060448201527f6f776e6572000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0381161515610fbf576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260036020908152604091829020805460ff1916600190811790915560048054909101905581513381529081019290925280517fb890d5abdcd5c2b61ce8bbc2cf6af9b6d7f7451830cbc85037cbdd182c86fe1d9281900390910190a150565b600160a060020a03811660009081526003602052604090205460ff1615156110c4576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e74206973206e6f74206120636f6e74726f60448201527f6c6c657200000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260036020908152604091829020805460ff191690556004805460001901905581513381529081019290925280517fb6a283aaede08e15ef55c74e3014e30eb0c0040d4b156cccb77391268ea373949281900390910190a150560073656e646572206973206e6f7420616e206f776e657200000000000000000000a165627a7a723058200e752e3a88decc3d8c5d0c377c032b4fe39f5eb66a5b9fe8ce60f184698d72480029 \ No newline at end of file diff --git a/build/mocks/tokenWhitelistableExporter/ERC20.abi b/build/mocks/tokenWhitelistableExporter/ERC20.abi new file mode 100644 index 00000000..e5360d0e --- /dev/null +++ b/build/mocks/tokenWhitelistableExporter/ERC20.abi @@ -0,0 +1 @@ +[{"constant":false,"inputs":[{"name":"","type":"address"},{"name":"","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"","type":"address"},{"name":"","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] \ No newline at end of file diff --git a/build/mocks/tokenWhitelistableExporter/ERC20.bin b/build/mocks/tokenWhitelistableExporter/ERC20.bin new file mode 100644 index 00000000..e69de29b diff --git a/build/mocks/tokenWhitelistableExporter/TokenWhitelist.abi b/build/mocks/tokenWhitelistableExporter/TokenWhitelist.abi index b9f49cf9..09993a1c 100644 --- a/build/mocks/tokenWhitelistableExporter/TokenWhitelist.abi +++ b/build/mocks/tokenWhitelistableExporter/TokenWhitelist.abi @@ -1 +1 @@ -[{"constant":true,"inputs":[{"name":"_a","type":"address"}],"name":"getTokenInfo","outputs":[{"name":"","type":"string"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"bool"},{"name":"","type":"bool"},{"name":"","type":"bool"},{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isTransferable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_tokens","type":"address[]"},{"name":"_symbols","type":"bytes32[]"},{"name":"_magnitude","type":"uint256[]"},{"name":"_loadable","type":"bool[]"},{"name":"_burnable","type":"bool[]"},{"name":"_lastUpdate","type":"uint256"}],"name":"addTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getStablecoinInfo","outputs":[{"name":"","type":"string"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"bool"},{"name":"","type":"bool"},{"name":"","type":"bool"},{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokenAddressArray","outputs":[{"name":"","type":"address[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_tokens","type":"address[]"}],"name":"removeTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ensRegistry","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"oracleNode","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_account","type":"address"},{"name":"_transferable","type":"bool"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"},{"name":"_rate","type":"uint256"},{"name":"_updateDate","type":"uint256"}],"name":"updateTokenRate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"controllerNode","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"stablecoin","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_ens_","type":"address"},{"name":"_oracleNameHash_","type":"bytes32"},{"name":"_controllerNameHash_","type":"bytes32"},{"name":"_owner_","type":"address"},{"name":"_transferable_","type":"bool"},{"name":"_stabelcoinAddress_","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_sender","type":"address"},{"indexed":false,"name":"_token","type":"address"},{"indexed":false,"name":"_rate","type":"uint256"}],"name":"UpdatedTokenRate","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_sender","type":"address"},{"indexed":false,"name":"_token","type":"address"},{"indexed":false,"name":"_symbol","type":"string"},{"indexed":false,"name":"_magnitude","type":"uint256"},{"indexed":false,"name":"_loadable","type":"bool"},{"indexed":false,"name":"_burnable","type":"bool"}],"name":"AddedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_sender","type":"address"},{"indexed":false,"name":"_token","type":"address"}],"name":"RemovedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_from","type":"address"},{"indexed":false,"name":"_to","type":"address"}],"name":"TransferredOwnership","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_locked","type":"address"}],"name":"LockedOwnership","type":"event"}] \ No newline at end of file +[{"constant":true,"inputs":[{"name":"_a","type":"address"}],"name":"getTokenInfo","outputs":[{"name":"","type":"string"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"bool"},{"name":"","type":"bool"},{"name":"","type":"bool"},{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isTransferable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_tokens","type":"address[]"},{"name":"_symbols","type":"bytes32[]"},{"name":"_magnitude","type":"uint256[]"},{"name":"_loadable","type":"bool[]"},{"name":"_burnable","type":"bool[]"},{"name":"_lastUpdate","type":"uint256"}],"name":"addTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getStablecoinInfo","outputs":[{"name":"","type":"string"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"bool"},{"name":"","type":"bool"},{"name":"","type":"bool"},{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokenAddressArray","outputs":[{"name":"","type":"address[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_tokens","type":"address[]"}],"name":"removeTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ensRegistry","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"oracleNode","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_asset","type":"address"},{"name":"_amount","type":"uint256"}],"name":"claim","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_account","type":"address"},{"name":"_transferable","type":"bool"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"},{"name":"_rate","type":"uint256"},{"name":"_updateDate","type":"uint256"}],"name":"updateTokenRate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"controllerNode","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"stablecoin","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_ens_","type":"address"},{"name":"_oracleNameHash_","type":"bytes32"},{"name":"_controllerNameHash_","type":"bytes32"},{"name":"_owner_","type":"address"},{"name":"_transferable_","type":"bool"},{"name":"_stabelcoinAddress_","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_sender","type":"address"},{"indexed":false,"name":"_token","type":"address"},{"indexed":false,"name":"_rate","type":"uint256"}],"name":"UpdatedTokenRate","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_sender","type":"address"},{"indexed":false,"name":"_token","type":"address"},{"indexed":false,"name":"_symbol","type":"string"},{"indexed":false,"name":"_magnitude","type":"uint256"},{"indexed":false,"name":"_loadable","type":"bool"},{"indexed":false,"name":"_burnable","type":"bool"}],"name":"AddedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_sender","type":"address"},{"indexed":false,"name":"_token","type":"address"}],"name":"RemovedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_to","type":"address"},{"indexed":false,"name":"_asset","type":"address"},{"indexed":false,"name":"_amount","type":"uint256"}],"name":"Claimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_from","type":"address"},{"indexed":false,"name":"_to","type":"address"}],"name":"TransferredOwnership","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_locked","type":"address"}],"name":"LockedOwnership","type":"event"}] \ No newline at end of file diff --git a/build/mocks/tokenWhitelistableExporter/TokenWhitelist.bin b/build/mocks/tokenWhitelistableExporter/TokenWhitelist.bin index 6d008f22..fd906e9e 100644 --- a/build/mocks/tokenWhitelistableExporter/TokenWhitelist.bin +++ b/build/mocks/tokenWhitelistableExporter/TokenWhitelist.bin @@ -1 +1 @@ -608060405234801561001057600080fd5b5060405160c08061189f83398101604090815281516020830151918301516060840151608085015160a09095015160018054600160a060020a03808716600160a060020a03199283161792839055600080548316938216939093179092556002859055600380548915157401000000000000000000000000000000000000000090810260a060020a60ff0219958816929094169190911793909316919091179081905594969394929392849184910460ff1615156101055760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b6040805160008152600160a060020a038416602082015281517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea5929181900390910190a15050600794909455505060068054600160a060020a031916600160a060020a03909316929092179091555061171a9050806101856000396000f3006080604052600436106100cf5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631f69565f81146100d45780632121dc751461019f57806334c73edc146101c85780633efec5e91461021d578063443dd2a4146102325780636c3824ef14610297578063715018a6146102b75780637d73b231146102cc57806380cc0dda146102fd5780638da5cb5b14610324578063b242e53414610339578063d545782e1461035f578063e2b4ce9714610386578063e9cbd8221461039b575b600080fd5b3480156100e057600080fd5b506100f5600160a060020a03600435166103b0565b6040805160208082018990529181018790528515156060820152841515608082015283151560a082015260c0810183905260e08082528951908201528851909182916101008301918b019080838360005b8381101561015e578181015183820152602001610146565b50505050905090810190601f16801561018b5780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b3480156101ab57600080fd5b506101b46104ac565b604080519115158252519081900360200190f35b3480156101d457600080fd5b5061021b602460048035828101929082013591813580830192908201359160443580830192908201359160643580830192908201359160843591820191013560a4356104ce565b005b34801561022957600080fd5b506100f5610965565b34801561023e57600080fd5b50610247610a61565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561028357818101518382015260200161026b565b505050509050019250505060405180910390f35b3480156102a357600080fd5b5061021b6004803560248101910135610ac3565b3480156102c357600080fd5b5061021b610d62565b3480156102d857600080fd5b506102e1610e8f565b60408051600160a060020a039092168252519081900360200190f35b34801561030957600080fd5b50610312610e9e565b60408051918252519081900360200190f35b34801561033057600080fd5b506102e1610ea4565b34801561034557600080fd5b5061021b600160a060020a03600435166024351515610eb3565b34801561036b57600080fd5b5061021b600160a060020a0360043516602435604435611104565b34801561039257600080fd5b50610312611266565b3480156103a757600080fd5b506102e161126c565b600160a060020a0381166000908152600460208181526040808420600180820154600280840154600385015497850154855487516101009682161587026000190190911693909304601f81018990048902840189019097528683526060999889988998899889988998919788979296929560ff808216969382048116956201000090920416939289919083018282801561048b5780601f106104605761010080835404028352916020019161048b565b820191906000526020600020905b81548152906001019060200180831161046e57829003601f168201915b50505050509650975097509750975097509750975050919395979092949650565b60035474010000000000000000000000000000000000000000900460ff165b90565b600060606104db3361127b565b1515610531576040805160e560020a62461bcd02815260206004820152601a60248201527f73656e646572206973206e6f74206120636f6e74726f6c6c6572000000000000604482015290519081900360640190fd5b8b8a14801561053f57508b88145b801561054a57508b86145b801561055557508b86145b15156105ab576040805160e560020a62461bcd02815260206004820152601e60248201527f706172616d65746572206c656e6774687320646f206e6f74206d617463680000604482015290519081900360640190fd5b600091505b8b82101561095657600460008e8e858181106105c857fe5b60209081029290920135600160a060020a03168352508101919091526040016000206003015460ff1615610646576040805160e560020a62461bcd02815260206004820152601760248201527f746f6b656e20616c726561647920617661696c61626c65000000000000000000604482015290519081900360640190fd5b61066c6106678c8c8581811061065857fe5b6020029190910135905061132d565b611359565b905060e0604051908101604052808281526020018a8a85818110151561068e57fe5b9050602002013581526020016000815260200160011515815260200188888581811015156106b857fe5b602090810292909201351515835250018686858181106106d457fe5b60209081029290920135151583525001849052600460008f8f868181106106f757fe5b90506020020135600160a060020a0316600160a060020a0316600160a060020a0316815260200190815260200160002060008201518160000190805190602001906107439291906115cf565b5060208201516001820155604082015160028201556060820151600382018054608085015160a08601511515620100000262ff0000199115156101000261ff001995151560ff199094169390931794909416919091171691909117905560c09091015160049091015560058d8d848181106107ba57fe5b8354600181018555600094855260209485902001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0395909202939093013593909316929092179055507f1802e89da3f6ef84e024e37454c226b1e13bf846ce71cd2a1d24faef9cbf779b338e8e8581811061083157fe5b90506020020135600160a060020a0316838c8c87818110151561085057fe5b905060200201358b8b88818110151561086557fe5b9050602002013515158a8a89818110151561087c57fe5b9050602002013515156040518087600160a060020a0316600160a060020a0316815260200186600160a060020a0316600160a060020a03168152602001806020018581526020018415151515815260200183151515158152602001828103825286818151815260200191508051906020019080838360005b8381101561090c5781810151838201526020016108f4565b50505050905090810190601f1680156109395780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390a16001909101906105b0565b50505050505050505050505050565b600654600160a060020a03166000908152600460208181526040808420600180820154600280840154600385015497850154855487516101009682161587026000190190911693909304601f81018990048902840189019097528683526060999889988998899889988998919788979296929560ff8082169693820481169562010000909204169392899190830182828015610a425780601f10610a1757610100808354040283529160200191610a42565b820191906000526020600020905b815481529060010190602001808311610a2557829003601f168201915b5050505050965097509750975097509750975097505090919293949596565b60606005805480602002602001604051908101604052809291908181526020018280548015610ab957602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610a9b575b5050505050905090565b6000806000610ad13361127b565b1515610b27576040805160e560020a62461bcd02815260206004820152601a60248201527f73656e646572206973206e6f74206120636f6e74726f6c6c6572000000000000604482015290519081900360640190fd5b600092505b83831015610d5b5760046000868686818110610b4457fe5b60209081029290920135600160a060020a03168352508101919091526040016000206003015460ff161515610bc3576040805160e560020a62461bcd02815260206004820152601660248201527f746f6b656e206973206e6f7420617661696c61626c6500000000000000000000604482015290519081900360640190fd5b848484818110610bcf57fe5b60209081029290920135600160a060020a03166000818152600490935260408320909450919050610c00828261164d565b506000600182018190556002820181905560038201805462ffffff19169055600490910181905590505b600554610c3e90600163ffffffff6113b316565b811015610cf95781600160a060020a0316600582815481101515610c5e57fe5b600091825260209091200154600160a060020a03161415610cf15760058054610c8e90600163ffffffff6113b316565b81548110610c9857fe5b60009182526020909120015460058054600160a060020a039092169183908110610cbe57fe5b9060005260206000200160006101000a815481600160a060020a030219169083600160a060020a03160217905550610cf9565b600101610c2a565b6005805490610d0c906000198301611694565b5060408051338152600160a060020a038416602082015281517f703f7e3f084d5b8dcc12fddcfd9a70d65b6b21ec7659e4608dbaf4419ede3ad0929181900390910190a1600190920191610b2c565b5050505050565b610d6b336113ca565b1515610dc1576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e206f776e657200000000000000000000604482015290519081900360640190fd5b60035474010000000000000000000000000000000000000000900460ff161515610e35576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b6003805473ffffffffffffffffffffffffffffffffffffffff19169055604080516000808252602082015281517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea5929181900390910190a1565b600154600160a060020a031690565b60075490565b600354600160a060020a031690565b610ebc336113ca565b1515610f12576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e206f776e657200000000000000000000604482015290519081900360640190fd5b60035474010000000000000000000000000000000000000000900460ff161515610f86576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b600160a060020a038216151561100c576040805160e560020a62461bcd02815260206004820152602360248201527f6f776e65722063616e6e6f742062652073657420746f207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6003805474ff00000000000000000000000000000000000000001916740100000000000000000000000000000000000000008315159081029190911790915561108c5760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b60035460408051600160a060020a039283168152918416602083015280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1506003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60006111116007546113de565b905061111c3361127b565b8061112f575033600160a060020a038216145b1515611185576040805160e560020a62461bcd02815260206004820152601b60248201527f656974686572206f7261636c65206f7220636f6e74726f6c6c65720000000000604482015290519081900360640190fd5b600160a060020a03841660009081526004602052604090206003015460ff1615156111fa576040805160e560020a62461bcd02815260206004820152601660248201527f746f6b656e206973206e6f7420617661696c61626c6500000000000000000000604482015290519081900360640190fd5b600160a060020a03841660008181526004602081815260409283902060028101889055909101859055815133815290810192909252818101859052517fdb3a4cfb4cd8ac94343ff7440cee8d05ade309056203f0e53ca49b6db8197c7d9181900360600190a150505050565b60025490565b600654600160a060020a031690565b60006112886002546113de565b600160a060020a031663b429afeb836040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b1580156112fb57600080fd5b505af115801561130f573d6000803e3d6000fd5b505050506040513d602081101561132557600080fd5b505192915050565b6113356116bd565b6040516020810160405282815280602083015250611352826114d5565b8152919050565b606080600083600001516040519080825280601f01601f191660200182016040528015611390578160200160208202803883390190505b5091506020820190506113ac818560200151866000015161158b565b5092915050565b600080838311156113c357600080fd5b5050900390565b600354600160a060020a0390811691161490565b60008054604080517f0178b8bf000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691630178b8bf9160248082019260209290919082900301818787803b15801561144557600080fd5b505af1158015611459573d6000803e3d6000fd5b505050506040513d602081101561146f57600080fd5b5051604080517f3b3b57de000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691633b3b57de916024808201926020929091908290030181600087803b1580156112fb57600080fd5b6000808215156114e85760009150611585565b6fffffffffffffffffffffffffffffffff8316151561151b57601001700100000000000000000000000000000000830492505b67ffffffffffffffff8316151561153e5760080168010000000000000000830492505b63ffffffff8316151561155957600401640100000000830492505b61ffff831615156115705760020162010000830492505b60ff8316151561157e576001015b8060200391505b50919050565b60005b602082106115b0578251845260209384019390920191601f199091019061158e565b50905182516020929092036101000a6000190180199091169116179052565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061161057805160ff191683800117855561163d565b8280016001018555821561163d579182015b8281111561163d578251825591602001919060010190611622565b506116499291506116d4565b5090565b50805460018160011615610100020316600290046000825580601f106116735750611691565b601f01602090049060005260206000209081019061169191906116d4565b50565b8154818355818111156116b8576000838152602090206116b89181019083016116d4565b505050565b604080518082019091526000808252602082015290565b6104cb91905b8082111561164957600081556001016116da5600a165627a7a7230582093b6ea30833eac9793938fe8dab81d00e6ef1dbb9489c89e10258ba8847c4c870029 \ No newline at end of file +608060405234801561001057600080fd5b5060405160c080611ab283398101604090815281516020830151918301516060840151608085015160a09095015160018054600160a060020a03808716600160a060020a03199283161792839055600080548316938216939093179092556002859055600380548915157401000000000000000000000000000000000000000090810260a060020a60ff0219958816929094169190911793909316919091179081905594969394929392849184910460ff1615156101055760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b6040805160008152600160a060020a038416602082015281517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea5929181900390910190a15050600794909455505060068054600160a060020a031916600160a060020a03909316929092179091555061192d9050806101856000396000f3006080604052600436106100c15763ffffffff60e060020a6000350416631f69565f81146100c65780632121dc751461019157806334c73edc146101ba5780633efec5e91461020f578063443dd2a4146102245780636c3824ef14610289578063715018a6146102a95780637d73b231146102be57806380cc0dda146102ef5780638da5cb5b14610316578063996cba681461032b578063b242e53414610355578063d545782e1461037b578063e2b4ce97146103a2578063e9cbd822146103b7575b600080fd5b3480156100d257600080fd5b506100e7600160a060020a03600435166103cc565b6040805160208082018990529181018790528515156060820152841515608082015283151560a082015260c0810183905260e08082528951908201528851909182916101008301918b019080838360005b83811015610150578181015183820152602001610138565b50505050905090810190601f16801561017d5780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b34801561019d57600080fd5b506101a66104c8565b604080519115158252519081900360200190f35b3480156101c657600080fd5b5061020d602460048035828101929082013591813580830192908201359160443580830192908201359160643580830192908201359160843591820191013560a4356104ea565b005b34801561021b57600080fd5b506100e7610981565b34801561023057600080fd5b50610239610a7d565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561027557818101518382015260200161025d565b505050509050019250505060405180910390f35b34801561029557600080fd5b5061020d6004803560248101910135610adf565b3480156102b557600080fd5b5061020d610d7e565b3480156102ca57600080fd5b506102d3610eab565b60408051600160a060020a039092168252519081900360200190f35b3480156102fb57600080fd5b50610304610eba565b60408051918252519081900360200190f35b34801561032257600080fd5b506102d3610ec0565b34801561033757600080fd5b5061020d600160a060020a0360043581169060243516604435610ecf565b34801561036157600080fd5b5061020d600160a060020a03600435166024351515610f3e565b34801561038757600080fd5b5061020d600160a060020a036004351660243560443561118f565b3480156103ae57600080fd5b506103046112f1565b3480156103c357600080fd5b506102d36112f7565b600160a060020a0381166000908152600460208181526040808420600180820154600280840154600385015497850154855487516101009682161587026000190190911693909304601f81018990048902840189019097528683526060999889988998899889988998919788979296929560ff80821696938204811695620100009092041693928991908301828280156104a75780601f1061047c576101008083540402835291602001916104a7565b820191906000526020600020905b81548152906001019060200180831161048a57829003601f168201915b50505050509650975097509750975097509750975050919395979092949650565b60035474010000000000000000000000000000000000000000900460ff165b90565b600060606104f733611306565b151561054d576040805160e560020a62461bcd02815260206004820152601a60248201527f73656e646572206973206e6f74206120636f6e74726f6c6c6572000000000000604482015290519081900360640190fd5b8b8a14801561055b57508b88145b801561056657508b86145b801561057157508b86145b15156105c7576040805160e560020a62461bcd02815260206004820152601e60248201527f706172616d65746572206c656e6774687320646f206e6f74206d617463680000604482015290519081900360640190fd5b600091505b8b82101561097257600460008e8e858181106105e457fe5b60209081029290920135600160a060020a03168352508101919091526040016000206003015460ff1615610662576040805160e560020a62461bcd02815260206004820152601760248201527f746f6b656e20616c726561647920617661696c61626c65000000000000000000604482015290519081900360640190fd5b6106886106838c8c8581811061067457fe5b6020029190910135905061139f565b6113cb565b905060e0604051908101604052808281526020018a8a8581811015156106aa57fe5b9050602002013581526020016000815260200160011515815260200188888581811015156106d457fe5b602090810292909201351515835250018686858181106106f057fe5b60209081029290920135151583525001849052600460008f8f8681811061071357fe5b90506020020135600160a060020a0316600160a060020a0316600160a060020a03168152602001908152602001600020600082015181600001908051906020019061075f9291906117e7565b5060208201516001820155604082015160028201556060820151600382018054608085015160a08601511515620100000262ff0000199115156101000261ff001995151560ff199094169390931794909416919091171691909117905560c09091015160049091015560058d8d848181106107d657fe5b8354600181018555600094855260209485902001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0395909202939093013593909316929092179055507f1802e89da3f6ef84e024e37454c226b1e13bf846ce71cd2a1d24faef9cbf779b338e8e8581811061084d57fe5b90506020020135600160a060020a0316838c8c87818110151561086c57fe5b905060200201358b8b88818110151561088157fe5b9050602002013515158a8a89818110151561089857fe5b9050602002013515156040518087600160a060020a0316600160a060020a0316815260200186600160a060020a0316600160a060020a03168152602001806020018581526020018415151515815260200183151515158152602001828103825286818151815260200191508051906020019080838360005b83811015610928578181015183820152602001610910565b50505050905090810190601f1680156109555780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390a16001909101906105cc565b50505050505050505050505050565b600654600160a060020a03166000908152600460208181526040808420600180820154600280840154600385015497850154855487516101009682161587026000190190911693909304601f81018990048902840189019097528683526060999889988998899889988998919788979296929560ff8082169693820481169562010000909204169392899190830182828015610a5e5780601f10610a3357610100808354040283529160200191610a5e565b820191906000526020600020905b815481529060010190602001808311610a4157829003601f168201915b5050505050965097509750975097509750975097505090919293949596565b60606005805480602002602001604051908101604052809291908181526020018280548015610ad557602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610ab7575b5050505050905090565b6000806000610aed33611306565b1515610b43576040805160e560020a62461bcd02815260206004820152601a60248201527f73656e646572206973206e6f74206120636f6e74726f6c6c6572000000000000604482015290519081900360640190fd5b600092505b83831015610d775760046000868686818110610b6057fe5b60209081029290920135600160a060020a03168352508101919091526040016000206003015460ff161515610bdf576040805160e560020a62461bcd02815260206004820152601660248201527f746f6b656e206973206e6f7420617661696c61626c6500000000000000000000604482015290519081900360640190fd5b848484818110610beb57fe5b60209081029290920135600160a060020a03166000818152600490935260408320909450919050610c1c8282611865565b506000600182018190556002820181905560038201805462ffffff19169055600490910181905590505b600554610c5a90600163ffffffff61142516565b811015610d155781600160a060020a0316600582815481101515610c7a57fe5b600091825260209091200154600160a060020a03161415610d0d5760058054610caa90600163ffffffff61142516565b81548110610cb457fe5b60009182526020909120015460058054600160a060020a039092169183908110610cda57fe5b9060005260206000200160006101000a815481600160a060020a030219169083600160a060020a03160217905550610d15565b600101610c46565b6005805490610d289060001983016118ac565b5060408051338152600160a060020a038416602082015281517f703f7e3f084d5b8dcc12fddcfd9a70d65b6b21ec7659e4608dbaf4419ede3ad0929181900390910190a1600190920191610b48565b5050505050565b610d873361143c565b1515610ddd576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e206f776e657200000000000000000000604482015290519081900360640190fd5b60035474010000000000000000000000000000000000000000900460ff161515610e51576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b6003805473ffffffffffffffffffffffffffffffffffffffff19169055604080516000808252602082015281517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea5929181900390910190a1565b600154600160a060020a031690565b60075490565b600354600160a060020a031690565b610ed83361143c565b1515610f2e576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e206f776e657200000000000000000000604482015290519081900360640190fd5b610f39838383611450565b505050565b610f473361143c565b1515610f9d576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e206f776e657200000000000000000000604482015290519081900360640190fd5b60035474010000000000000000000000000000000000000000900460ff161515611011576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b600160a060020a0382161515611097576040805160e560020a62461bcd02815260206004820152602360248201527f6f776e65722063616e6e6f742062652073657420746f207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6003805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000831515908102919091179091556111175760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b60035460408051600160a060020a039283168152918416602083015280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1506003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600061119c6007546115f6565b90506111a733611306565b806111ba575033600160a060020a038216145b1515611210576040805160e560020a62461bcd02815260206004820152601b60248201527f656974686572206f7261636c65206f7220636f6e74726f6c6c65720000000000604482015290519081900360640190fd5b600160a060020a03841660009081526004602052604090206003015460ff161515611285576040805160e560020a62461bcd02815260206004820152601660248201527f746f6b656e206973206e6f7420617661696c61626c6500000000000000000000604482015290519081900360640190fd5b600160a060020a03841660008181526004602081815260409283902060028101889055909101859055815133815290810192909252818101859052517fdb3a4cfb4cd8ac94343ff7440cee8d05ade309056203f0e53ca49b6db8197c7d9181900360600190a150505050565b60025490565b600654600160a060020a031690565b60006113136002546115f6565b600160a060020a031663b429afeb836040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b15801561136d57600080fd5b505af1158015611381573d6000803e3d6000fd5b505050506040513d602081101561139757600080fd5b505192915050565b6113a76118d0565b60405160208101604052828152806020830152506113c4826116ed565b8152919050565b606080600083600001516040519080825280601f01601f191660200182016040528015611402578160200160208202803883390190505b50915060208201905061141e81856020015186600001516117a3565b5092915050565b6000808383111561143557600080fd5b5050900390565b600354600160a060020a0390811691161490565b600160a060020a038216151561149c57604051600160a060020a0384169082156108fc029083906000818181858888f19350505050158015611496573d6000803e3d6000fd5b506115a7565b81600160a060020a031663a9059cbb84836040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b1580156114ff57600080fd5b505af1158015611513573d6000803e3d6000fd5b505050506040513d602081101561152957600080fd5b505115156115a7576040805160e560020a62461bcd02815260206004820152602560248201527f455243323020746f6b656e207472616e736665722077617320756e737563636560448201527f737366756c000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60408051600160a060020a0380861682528416602082015280820183905290517ff7a40077ff7a04c7e61f6f26fb13774259ddf1b6bce9ecf26a8276cdd39926839181900360600190a1505050565b60008054604080517f0178b8bf000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691630178b8bf9160248082019260209290919082900301818787803b15801561165d57600080fd5b505af1158015611671573d6000803e3d6000fd5b505050506040513d602081101561168757600080fd5b5051604080517f3b3b57de000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691633b3b57de916024808201926020929091908290030181600087803b15801561136d57600080fd5b600080821515611700576000915061179d565b6fffffffffffffffffffffffffffffffff8316151561173357601001700100000000000000000000000000000000830492505b67ffffffffffffffff831615156117565760080168010000000000000000830492505b63ffffffff8316151561177157600401640100000000830492505b61ffff831615156117885760020162010000830492505b60ff83161515611796576001015b8060200391505b50919050565b60005b602082106117c8578251845260209384019390920191601f19909101906117a6565b50905182516020929092036101000a6000190180199091169116179052565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061182857805160ff1916838001178555611855565b82800160010185558215611855579182015b8281111561185557825182559160200191906001019061183a565b506118619291506118e7565b5090565b50805460018160011615610100020316600290046000825580601f1061188b57506118a9565b601f0160209004906000526020600020908101906118a991906118e7565b50565b815481835581811115610f3957600083815260209020610f399181019083016118e7565b604080518082019091526000808252602082015290565b6104e791905b8082111561186157600081556001016118ed5600a165627a7a723058208c4be71ac085882be552fd06a3c105b468b8d2bbdf25c86681a98320fb418c500029 \ No newline at end of file diff --git a/build/mocks/tokenWhitelistableExporter/TokenWhitelistableExporter.bin b/build/mocks/tokenWhitelistableExporter/TokenWhitelistableExporter.bin index 6376c8b3..4c25bb67 100644 --- a/build/mocks/tokenWhitelistableExporter/TokenWhitelistableExporter.bin +++ b/build/mocks/tokenWhitelistableExporter/TokenWhitelistableExporter.bin @@ -1 +1 @@ -608060405234801561001057600080fd5b5060405160408061092783398101604052805160209091015160018054600160a060020a03938416600160a060020a031991821617918290556000805490911691909316179091556002556108bd8061006a6000396000f30060806040526004361061007f5763ffffffff60e060020a6000350416630cde34b0811461008457806317e73794146100b95780631f69565f146100da5780632ff0fcaa146101a55780633efec5e9146101c6578063443dd2a4146101db5780637d73b23114610240578063877337b014610271578063d545782e14610298575b600080fd5b34801561009057600080fd5b506100a5600160a060020a03600435166102c1565b604080519115158252519081900360200190f35b3480156100c557600080fd5b506100a5600160a060020a03600435166102d2565b3480156100e657600080fd5b506100fb600160a060020a03600435166102dd565b6040805160208082018990529181018790528515156060820152841515608082015283151560a082015260c0810183905260e08082528951908201528851909182916101008301918b019080838360005b8381101561016457818101518382015260200161014c565b50505050905090810190601f1680156101915780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b3480156101b157600080fd5b506100a5600160a060020a0360043516610308565b3480156101d257600080fd5b506100fb610313565b3480156101e757600080fd5b506101f061033c565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561022c578181015183820152602001610214565b505050509050019250505060405180910390f35b34801561024c57600080fd5b5061025561034b565b60408051600160a060020a039092168252519081900360200190f35b34801561027d57600080fd5b5061028661035a565b60408051918252519081900360200190f35b3480156102a457600080fd5b506102bf600160a060020a0360043516602435604435610360565b005b60006102cc82610370565b92915050565b60006102cc82610389565b60606000806000806000806102f1886103a3565b959e949d50929b5090995097509550909350915050565b60006102cc826104d5565b60606000806000806000806103266104ef565b959d949c50929a50909850965094509092509050565b60606103466105fc565b905090565b600154600160a060020a031690565b60025490565b61036b8383836106d6565b505050565b60008061037c836103a3565b5098975050505050505050565b600080610395836103a3565b509098975050505050505050565b60606000806000806000806103b9600254610768565b600160a060020a0316631f69565f896040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b15801561041357600080fd5b505af1158015610427573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260e081101561045057600080fd5b81019080805164010000000081111561046857600080fd5b8201602081018481111561047b57600080fd5b815164010000000081118282018710171561049557600080fd5b5050602082015160408301516060840151608085015160a086015160c090960151949e50929c50909a509850965090945092505050919395979092949650565b6000806104e1836103a3565b509198975050505050505050565b6060600080600080600080610505600254610768565b600160a060020a0316633efec5e96040518163ffffffff1660e060020a028152600401600060405180830381600087803b15801561054257600080fd5b505af1158015610556573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260e081101561057f57600080fd5b81019080805164010000000081111561059757600080fd5b820160208101848111156105aa57600080fd5b81516401000000008111828201871017156105c457600080fd5b5050602082015160408301516060840151608085015160a086015160c090960151949f939e50919c509a509850919650945092505050565b6060610609600254610768565b600160a060020a031663443dd2a46040518163ffffffff1660e060020a028152600401600060405180830381600087803b15801561064657600080fd5b505af115801561065a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561068357600080fd5b81019080805164010000000081111561069b57600080fd5b820160208101848111156106ae57600080fd5b81518560208202830111640100000000821117156106cb57600080fd5b509094505050505090565b6106e1600254610768565b600160a060020a031663d545782e8484846040518463ffffffff1660e060020a0281526004018084600160a060020a0316600160a060020a031681526020018381526020018281526020019350505050600060405180830381600087803b15801561074b57600080fd5b505af115801561075f573d6000803e3d6000fd5b50505050505050565b60008054604080517f0178b8bf000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691630178b8bf9160248082019260209290919082900301818787803b1580156107cf57600080fd5b505af11580156107e3573d6000803e3d6000fd5b505050506040513d60208110156107f957600080fd5b5051604080517f3b3b57de000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691633b3b57de916024808201926020929091908290030181600087803b15801561085f57600080fd5b505af1158015610873573d6000803e3d6000fd5b505050506040513d602081101561088957600080fd5b5051929150505600a165627a7a723058208a18600ae5d0d7811638873b67f7313459bd93d21a9d3593358def452be97a250029 \ No newline at end of file +608060405234801561001057600080fd5b5060405160408061092783398101604052805160209091015160018054600160a060020a03938416600160a060020a031991821617918290556000805490911691909316179091556002556108bd8061006a6000396000f30060806040526004361061007f5763ffffffff60e060020a6000350416630cde34b0811461008457806317e73794146100b95780631f69565f146100da5780632ff0fcaa146101a55780633efec5e9146101c6578063443dd2a4146101db5780637d73b23114610240578063877337b014610271578063d545782e14610298575b600080fd5b34801561009057600080fd5b506100a5600160a060020a03600435166102c1565b604080519115158252519081900360200190f35b3480156100c557600080fd5b506100a5600160a060020a03600435166102d2565b3480156100e657600080fd5b506100fb600160a060020a03600435166102dd565b6040805160208082018990529181018790528515156060820152841515608082015283151560a082015260c0810183905260e08082528951908201528851909182916101008301918b019080838360005b8381101561016457818101518382015260200161014c565b50505050905090810190601f1680156101915780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b3480156101b157600080fd5b506100a5600160a060020a0360043516610308565b3480156101d257600080fd5b506100fb610313565b3480156101e757600080fd5b506101f061033c565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561022c578181015183820152602001610214565b505050509050019250505060405180910390f35b34801561024c57600080fd5b5061025561034b565b60408051600160a060020a039092168252519081900360200190f35b34801561027d57600080fd5b5061028661035a565b60408051918252519081900360200190f35b3480156102a457600080fd5b506102bf600160a060020a0360043516602435604435610360565b005b60006102cc82610370565b92915050565b60006102cc82610389565b60606000806000806000806102f1886103a3565b959e949d50929b5090995097509550909350915050565b60006102cc826104d5565b60606000806000806000806103266104ef565b959d949c50929a50909850965094509092509050565b60606103466105fc565b905090565b600154600160a060020a031690565b60025490565b61036b8383836106d6565b505050565b60008061037c836103a3565b5098975050505050505050565b600080610395836103a3565b509098975050505050505050565b60606000806000806000806103b9600254610768565b600160a060020a0316631f69565f896040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b15801561041357600080fd5b505af1158015610427573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260e081101561045057600080fd5b81019080805164010000000081111561046857600080fd5b8201602081018481111561047b57600080fd5b815164010000000081118282018710171561049557600080fd5b5050602082015160408301516060840151608085015160a086015160c090960151949e50929c50909a509850965090945092505050919395979092949650565b6000806104e1836103a3565b509198975050505050505050565b6060600080600080600080610505600254610768565b600160a060020a0316633efec5e96040518163ffffffff1660e060020a028152600401600060405180830381600087803b15801561054257600080fd5b505af1158015610556573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260e081101561057f57600080fd5b81019080805164010000000081111561059757600080fd5b820160208101848111156105aa57600080fd5b81516401000000008111828201871017156105c457600080fd5b5050602082015160408301516060840151608085015160a086015160c090960151949f939e50919c509a509850919650945092505050565b6060610609600254610768565b600160a060020a031663443dd2a46040518163ffffffff1660e060020a028152600401600060405180830381600087803b15801561064657600080fd5b505af115801561065a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561068357600080fd5b81019080805164010000000081111561069b57600080fd5b820160208101848111156106ae57600080fd5b81518560208202830111640100000000821117156106cb57600080fd5b509094505050505090565b6106e1600254610768565b600160a060020a031663d545782e8484846040518463ffffffff1660e060020a0281526004018084600160a060020a0316600160a060020a031681526020018381526020018281526020019350505050600060405180830381600087803b15801561074b57600080fd5b505af115801561075f573d6000803e3d6000fd5b50505050505050565b60008054604080517f0178b8bf000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691630178b8bf9160248082019260209290919082900301818787803b1580156107cf57600080fd5b505af11580156107e3573d6000803e3d6000fd5b505050506040513d60208110156107f957600080fd5b5051604080517f3b3b57de000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691633b3b57de916024808201926020929091908290030181600087803b15801561085f57600080fd5b505af1158015610873573d6000803e3d6000fd5b505050506040513d602081101561088957600080fd5b5051929150505600a165627a7a72305820a200f44d223d63a0cda8b6ce77784eb74e9f901368a95cd7177c0a97137c32930029 \ No newline at end of file diff --git a/build/mocks/tokenWhitelistableExporter/combined.json b/build/mocks/tokenWhitelistableExporter/combined.json index 0372a8f8..0e339b36 100644 --- a/build/mocks/tokenWhitelistableExporter/combined.json +++ b/build/mocks/tokenWhitelistableExporter/combined.json @@ -1 +1 @@ -{"contracts":{"externals/SafeMath.sol:SafeMath":{"bin":"604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820564cf9c59188bb4d206d867a51ebdc48341c3b90a16491599b74ecfe95674b940029","bin-runtime":"73000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820564cf9c59188bb4d206d867a51ebdc48341c3b90a16491599b74ecfe95674b940029","srcmap":"1289:1531:0:-;;132:2:-1;166:7;155:9;146:7;137:37;252:7;246:14;243:1;238:23;232:4;229:33;270:1;265:20;;;;222:63;;265:20;274:9;222:63;;298:9;295:1;288:20;328:4;319:7;311:22;352:7;343;336:24","srcmap-runtime":"1289:1531:0:-;;;;;;;;"},"externals/ens/ENS.sol:ENS":{"bin":"","bin-runtime":"","srcmap":"","srcmap-runtime":""},"externals/ens/PublicResolver.sol:PublicResolver":{"bin":"608060405234801561001057600080fd5b50604051602080611400833981016040525160008054600160a060020a03909216600160a060020a03199092169190911790556113ae806100526000396000f3006080604052600436106100da5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166301ffc9a781146100df57806310f13a8c146101155780632203ab56146101b357806329cd62ea1461024d5780632dff69411461026b5780633b3b57de1461029557806359d1d43c146102c9578063623195b01461039c578063691f3431146103fc5780637737221314610414578063aa4cb54714610472578063c3d014d6146104d0578063c8690233146104eb578063d5fa2b001461051c578063e89401a114610540575b600080fd5b3480156100eb57600080fd5b50610101600160e060020a031960043516610558565b604080519115158252519081900360200190f35b34801561012157600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526101b195833595369560449491939091019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437509497506106f99650505050505050565b005b3480156101bf57600080fd5b506101ce60043560243561091f565b6040518083815260200180602001828103825283818151815260200191508051906020019080838360005b838110156102115781810151838201526020016101f9565b50505050905090810190601f16801561023e5780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b34801561025957600080fd5b506101b1600435602435604435610a2b565b34801561027757600080fd5b50610283600435610b2b565b60408051918252519081900360200190f35b3480156102a157600080fd5b506102ad600435610b41565b60408051600160a060020a039092168252519081900360200190f35b3480156102d557600080fd5b5060408051602060046024803582810135601f8101859004850286018501909652858552610327958335953695604494919390910191908190840183828082843750949750610b5c9650505050505050565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610361578181015183820152602001610349565b50505050905090810190601f16801561038e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103a857600080fd5b50604080516020600460443581810135601f81018490048402850184019095528484526101b1948235946024803595369594606494920191908190840183828082843750949750610c659650505050505050565b34801561040857600080fd5b50610327600435610d66565b34801561042057600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526101b1958335953695604494919390910191908190840183828082843750949750610e0a9650505050505050565b34801561047e57600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526101b1958335953695604494919390910191908190840183828082843750949750610f609650505050505050565b3480156104dc57600080fd5b506101b1600435602435611076565b3480156104f757600080fd5b50610503600435611157565b6040805192835260208301919091528051918290030190f35b34801561052857600080fd5b506101b1600435600160a060020a0360243516611174565b34801561054c57600080fd5b50610327600435611278565b6000600160e060020a031982167f3b3b57de0000000000000000000000000000000000000000000000000000000014806105bb5750600160e060020a031982167fd8389dc500000000000000000000000000000000000000000000000000000000145b806105ef5750600160e060020a031982167f691f343100000000000000000000000000000000000000000000000000000000145b806106235750600160e060020a031982167f2203ab5600000000000000000000000000000000000000000000000000000000145b806106575750600160e060020a031982167fc869023300000000000000000000000000000000000000000000000000000000145b8061068b5750600160e060020a031982167f59d1d43c00000000000000000000000000000000000000000000000000000000145b806106bf5750600160e060020a031982167fe89401a100000000000000000000000000000000000000000000000000000000145b806106f35750600160e060020a031982167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b600080546040805160e060020a6302571be302815260048101879052905186933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b15801561074c57600080fd5b505af1158015610760573d6000803e3d6000fd5b505050506040513d602081101561077657600080fd5b5051600160a060020a03161461078b57600080fd5b6000848152600160209081526040918290209151855185936005019287929182918401908083835b602083106107d25780518252601f1990920191602091820191016107b3565b51815160209384036101000a6000190180199092169116179052920194855250604051938490038101909320845161081395919491909101925090506112e7565b5083600019167fd8c9334b1a9c2f9da342a0a2b32629c1a229b6445dad78947f674b44444a75508485604051808060200180602001838103835285818151815260200191508051906020019080838360005b8381101561087d578181015183820152602001610865565b50505050905090810190601f1680156108aa5780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b838110156108dd5781810151838201526020016108c5565b50505050905090810190601f16801561090a5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a250505050565b60008281526001602081905260409091206060905b838311610a1e578284161580159061096d5750600083815260068201602052604081205460026000196101006001841615020190911604115b15610a1357600083815260068201602090815260409182902080548351601f600260001961010060018616150201909316929092049182018490048402810184019094528084529091830182828015610a075780601f106109dc57610100808354040283529160200191610a07565b820191906000526020600020905b8154815290600101906020018083116109ea57829003601f168201915b50505050509150610a23565b600290920291610934565b600092505b509250929050565b600080546040805160e060020a6302571be302815260048101879052905186933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b158015610a7e57600080fd5b505af1158015610a92573d6000803e3d6000fd5b505050506040513d6020811015610aa857600080fd5b5051600160a060020a031614610abd57600080fd5b604080518082018252848152602080820185815260008881526001835284902092516003840155516004909201919091558151858152908101849052815186927f1d6f5e03d3f63eb58751986629a5439baee5079ff04f345becb66e23eb154e46928290030190a250505050565b6000908152600160208190526040909120015490565b600090815260016020526040902054600160a060020a031690565b600082815260016020908152604091829020915183516060936005019285929182918401908083835b60208310610ba45780518252601f199092019160209182019101610b85565b518151600019602094850361010090810a820192831692199390931691909117909252949092019687526040805197889003820188208054601f6002600183161590980290950116959095049283018290048202880182019052818752929450925050830182828015610c585780601f10610c2d57610100808354040283529160200191610c58565b820191906000526020600020905b815481529060010190602001808311610c3b57829003601f168201915b5050505050905092915050565b600080546040805160e060020a6302571be302815260048101879052905186933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b158015610cb857600080fd5b505af1158015610ccc573d6000803e3d6000fd5b505050506040513d6020811015610ce257600080fd5b5051600160a060020a031614610cf757600080fd5b6000198301831615610d0857600080fd5b600084815260016020908152604080832086845260060182529091208351610d32928501906112e7565b50604051839085907faa121bbeef5f32f5961a2a28966e769023910fc9479059ee3495d4c1a696efe390600090a350505050565b6000818152600160208181526040928390206002908101805485516000199582161561010002959095011691909104601f81018390048302840183019094528383526060939091830182828015610dfe5780601f10610dd357610100808354040283529160200191610dfe565b820191906000526020600020905b815481529060010190602001808311610de157829003601f168201915b50505050509050919050565b600080546040805160e060020a6302571be302815260048101869052905185933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b158015610e5d57600080fd5b505af1158015610e71573d6000803e3d6000fd5b505050506040513d6020811015610e8757600080fd5b5051600160a060020a031614610e9c57600080fd5b60008381526001602090815260409091208351610ec1926002909201918501906112e7565b50604080516020808252845181830152845186937fb7d29e911041e8d9b843369e890bcb72c9388692ba48b65ac54e7214c4c348f79387939092839283019185019080838360005b83811015610f21578181015183820152602001610f09565b50505050905090810190601f168015610f4e5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505050565b600080546040805160e060020a6302571be302815260048101869052905185933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b158015610fb357600080fd5b505af1158015610fc7573d6000803e3d6000fd5b505050506040513d6020811015610fdd57600080fd5b5051600160a060020a031614610ff257600080fd5b60008381526001602090815260409091208351611017926007909201918501906112e7565b50604080516020808252845181830152845186937fc0b0fc07269fc2749adada3221c095a1d2187b2d075b51c915857b520f3a502193879390928392830191850190808383600083811015610f21578181015183820152602001610f09565b600080546040805160e060020a6302571be302815260048101869052905185933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b1580156110c957600080fd5b505af11580156110dd573d6000803e3d6000fd5b505050506040513d60208110156110f357600080fd5b5051600160a060020a03161461110857600080fd5b6000838152600160208181526040928390209091018490558151848152915185927f0424b6fe0d9c3bdbece0e7879dc241bb0c22e900be8b6c168b4ee08bd9bf83bc92908290030190a2505050565b600090815260016020526040902060038101546004909101549091565b600080546040805160e060020a6302571be302815260048101869052905185933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b1580156111c757600080fd5b505af11580156111db573d6000803e3d6000fd5b505050506040513d60208110156111f157600080fd5b5051600160a060020a03161461120657600080fd5b600083815260016020908152604091829020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386169081179091558251908152915185927f52d7d861f09ab3d26239d492e8968629f95e9e318cf0b73bfddc441522a15fd292908290030190a2505050565b60008181526001602081815260409283902060070180548451600260001995831615610100029590950190911693909304601f81018390048302840183019094528383526060939091830182828015610dfe5780601f10610dd357610100808354040283529160200191610dfe565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061132857805160ff1916838001178555611355565b82800160010185558215611355579182015b8281111561135557825182559160200191906001019061133a565b50611361929150611365565b5090565b61137f91905b80821115611361576000815560010161136b565b905600a165627a7a72305820bf76237672851602565e309e20eddff44fc668000bb45495e385fdd9e24f4e310029","bin-runtime":"6080604052600436106100da5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166301ffc9a781146100df57806310f13a8c146101155780632203ab56146101b357806329cd62ea1461024d5780632dff69411461026b5780633b3b57de1461029557806359d1d43c146102c9578063623195b01461039c578063691f3431146103fc5780637737221314610414578063aa4cb54714610472578063c3d014d6146104d0578063c8690233146104eb578063d5fa2b001461051c578063e89401a114610540575b600080fd5b3480156100eb57600080fd5b50610101600160e060020a031960043516610558565b604080519115158252519081900360200190f35b34801561012157600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526101b195833595369560449491939091019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437509497506106f99650505050505050565b005b3480156101bf57600080fd5b506101ce60043560243561091f565b6040518083815260200180602001828103825283818151815260200191508051906020019080838360005b838110156102115781810151838201526020016101f9565b50505050905090810190601f16801561023e5780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b34801561025957600080fd5b506101b1600435602435604435610a2b565b34801561027757600080fd5b50610283600435610b2b565b60408051918252519081900360200190f35b3480156102a157600080fd5b506102ad600435610b41565b60408051600160a060020a039092168252519081900360200190f35b3480156102d557600080fd5b5060408051602060046024803582810135601f8101859004850286018501909652858552610327958335953695604494919390910191908190840183828082843750949750610b5c9650505050505050565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610361578181015183820152602001610349565b50505050905090810190601f16801561038e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103a857600080fd5b50604080516020600460443581810135601f81018490048402850184019095528484526101b1948235946024803595369594606494920191908190840183828082843750949750610c659650505050505050565b34801561040857600080fd5b50610327600435610d66565b34801561042057600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526101b1958335953695604494919390910191908190840183828082843750949750610e0a9650505050505050565b34801561047e57600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526101b1958335953695604494919390910191908190840183828082843750949750610f609650505050505050565b3480156104dc57600080fd5b506101b1600435602435611076565b3480156104f757600080fd5b50610503600435611157565b6040805192835260208301919091528051918290030190f35b34801561052857600080fd5b506101b1600435600160a060020a0360243516611174565b34801561054c57600080fd5b50610327600435611278565b6000600160e060020a031982167f3b3b57de0000000000000000000000000000000000000000000000000000000014806105bb5750600160e060020a031982167fd8389dc500000000000000000000000000000000000000000000000000000000145b806105ef5750600160e060020a031982167f691f343100000000000000000000000000000000000000000000000000000000145b806106235750600160e060020a031982167f2203ab5600000000000000000000000000000000000000000000000000000000145b806106575750600160e060020a031982167fc869023300000000000000000000000000000000000000000000000000000000145b8061068b5750600160e060020a031982167f59d1d43c00000000000000000000000000000000000000000000000000000000145b806106bf5750600160e060020a031982167fe89401a100000000000000000000000000000000000000000000000000000000145b806106f35750600160e060020a031982167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b600080546040805160e060020a6302571be302815260048101879052905186933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b15801561074c57600080fd5b505af1158015610760573d6000803e3d6000fd5b505050506040513d602081101561077657600080fd5b5051600160a060020a03161461078b57600080fd5b6000848152600160209081526040918290209151855185936005019287929182918401908083835b602083106107d25780518252601f1990920191602091820191016107b3565b51815160209384036101000a6000190180199092169116179052920194855250604051938490038101909320845161081395919491909101925090506112e7565b5083600019167fd8c9334b1a9c2f9da342a0a2b32629c1a229b6445dad78947f674b44444a75508485604051808060200180602001838103835285818151815260200191508051906020019080838360005b8381101561087d578181015183820152602001610865565b50505050905090810190601f1680156108aa5780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b838110156108dd5781810151838201526020016108c5565b50505050905090810190601f16801561090a5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a250505050565b60008281526001602081905260409091206060905b838311610a1e578284161580159061096d5750600083815260068201602052604081205460026000196101006001841615020190911604115b15610a1357600083815260068201602090815260409182902080548351601f600260001961010060018616150201909316929092049182018490048402810184019094528084529091830182828015610a075780601f106109dc57610100808354040283529160200191610a07565b820191906000526020600020905b8154815290600101906020018083116109ea57829003601f168201915b50505050509150610a23565b600290920291610934565b600092505b509250929050565b600080546040805160e060020a6302571be302815260048101879052905186933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b158015610a7e57600080fd5b505af1158015610a92573d6000803e3d6000fd5b505050506040513d6020811015610aa857600080fd5b5051600160a060020a031614610abd57600080fd5b604080518082018252848152602080820185815260008881526001835284902092516003840155516004909201919091558151858152908101849052815186927f1d6f5e03d3f63eb58751986629a5439baee5079ff04f345becb66e23eb154e46928290030190a250505050565b6000908152600160208190526040909120015490565b600090815260016020526040902054600160a060020a031690565b600082815260016020908152604091829020915183516060936005019285929182918401908083835b60208310610ba45780518252601f199092019160209182019101610b85565b518151600019602094850361010090810a820192831692199390931691909117909252949092019687526040805197889003820188208054601f6002600183161590980290950116959095049283018290048202880182019052818752929450925050830182828015610c585780601f10610c2d57610100808354040283529160200191610c58565b820191906000526020600020905b815481529060010190602001808311610c3b57829003601f168201915b5050505050905092915050565b600080546040805160e060020a6302571be302815260048101879052905186933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b158015610cb857600080fd5b505af1158015610ccc573d6000803e3d6000fd5b505050506040513d6020811015610ce257600080fd5b5051600160a060020a031614610cf757600080fd5b6000198301831615610d0857600080fd5b600084815260016020908152604080832086845260060182529091208351610d32928501906112e7565b50604051839085907faa121bbeef5f32f5961a2a28966e769023910fc9479059ee3495d4c1a696efe390600090a350505050565b6000818152600160208181526040928390206002908101805485516000199582161561010002959095011691909104601f81018390048302840183019094528383526060939091830182828015610dfe5780601f10610dd357610100808354040283529160200191610dfe565b820191906000526020600020905b815481529060010190602001808311610de157829003601f168201915b50505050509050919050565b600080546040805160e060020a6302571be302815260048101869052905185933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b158015610e5d57600080fd5b505af1158015610e71573d6000803e3d6000fd5b505050506040513d6020811015610e8757600080fd5b5051600160a060020a031614610e9c57600080fd5b60008381526001602090815260409091208351610ec1926002909201918501906112e7565b50604080516020808252845181830152845186937fb7d29e911041e8d9b843369e890bcb72c9388692ba48b65ac54e7214c4c348f79387939092839283019185019080838360005b83811015610f21578181015183820152602001610f09565b50505050905090810190601f168015610f4e5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505050565b600080546040805160e060020a6302571be302815260048101869052905185933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b158015610fb357600080fd5b505af1158015610fc7573d6000803e3d6000fd5b505050506040513d6020811015610fdd57600080fd5b5051600160a060020a031614610ff257600080fd5b60008381526001602090815260409091208351611017926007909201918501906112e7565b50604080516020808252845181830152845186937fc0b0fc07269fc2749adada3221c095a1d2187b2d075b51c915857b520f3a502193879390928392830191850190808383600083811015610f21578181015183820152602001610f09565b600080546040805160e060020a6302571be302815260048101869052905185933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b1580156110c957600080fd5b505af11580156110dd573d6000803e3d6000fd5b505050506040513d60208110156110f357600080fd5b5051600160a060020a03161461110857600080fd5b6000838152600160208181526040928390209091018490558151848152915185927f0424b6fe0d9c3bdbece0e7879dc241bb0c22e900be8b6c168b4ee08bd9bf83bc92908290030190a2505050565b600090815260016020526040902060038101546004909101549091565b600080546040805160e060020a6302571be302815260048101869052905185933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b1580156111c757600080fd5b505af11580156111db573d6000803e3d6000fd5b505050506040513d60208110156111f157600080fd5b5051600160a060020a03161461120657600080fd5b600083815260016020908152604091829020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386169081179091558251908152915185927f52d7d861f09ab3d26239d492e8968629f95e9e318cf0b73bfddc441522a15fd292908290030190a2505050565b60008181526001602081815260409283902060070180548451600260001995831615610100029590950190911693909304601f81018390048302840183019094528383526060939091830182828015610dfe5780601f10610dd357610100808354040283529160200191610dfe565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061132857805160ff1916838001178555611355565b82800160010185558215611355579182015b8281111561135557825182559160200191906001019061133a565b50611361929150611365565b5090565b61137f91905b80821115611361576000815560010161136b565b905600a165627a7a72305820bf76237672851602565e309e20eddff44fc668000bb45495e385fdd9e24f4e310029","srcmap":"1553:8134:2:-;;;3005:62;8:9:-1;5:2;;;30:1;27;20:12;5:2;3005:62:2;;;;;;;;;;;;;3047:3;:13;;-1:-1:-1;;;;;3047:13:2;;;-1:-1:-1;;;;;;3047:13:2;;;;;;;;;1553:8134;;;;;;","srcmap-runtime":"1553:8134:2:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9238:447;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9238:447:2;-1:-1:-1;;;;;;9238:447:2;;;;;;;;;;;;;;;;;;;;;;;6084:171;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6084:171:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6084:171:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6084:171:2;;;;-1:-1:-1;6084:171:2;-1:-1:-1;6084:171:2;;-1:-1:-1;6084:171:2;;;;;;;;-1:-1:-1;6084:171:2;;-1:-1:-1;6084:171:2;;-1:-1:-1;;;;;;;6084:171:2;;;7296:451;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7296:451:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;7296:451:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5631:174;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5631:174:2;;;;;;;;;8351:106;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8351:106:2;;;;;;;;;;;;;;;;;;;;;8887:100;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8887:100:2;;;;;;;;;-1:-1:-1;;;;;8887:100:2;;;;;;;;;;;;;;6472:116;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6472:116:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6472:116:2;;-1:-1:-1;6472:116:2;;-1:-1:-1;;;;;;;6472:116:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;6472:116:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5057:297;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5057:297:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5057:297:2;;-1:-1:-1;5057:297:2;;-1:-1:-1;;;;;;;5057:297:2;7947:99;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7947:99:2;;;;;4607:148;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4607:148:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4607:148:2;;-1:-1:-1;4607:148:2;;-1:-1:-1;;;;;;;4607:148:2;4200:162;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4200:162:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4200:162:2;;-1:-1:-1;4200:162:2;;-1:-1:-1;;;;;;;4200:162:2;3813:158;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3813:158:2;;;;;;;6830:145;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6830:145:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;3293:149;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3293:149:2;;;-1:-1:-1;;;;;3293:149:2;;;;;8620:108;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8620:108:2;;;;;9238:447;9306:4;-1:-1:-1;;;;;;9329:32:2;;9344:17;9329:32;;:79;;-1:-1:-1;;;;;;;9373:35:2;;9388:20;9373:35;9329:79;:123;;;-1:-1:-1;;;;;;;9420:32:2;;9435:17;9420:32;9329:123;:166;;;-1:-1:-1;;;;;;;9464:31:2;;9479:16;9464:31;9329:166;:212;;;-1:-1:-1;;;;;;;9507:34:2;;9522:19;9507:34;9329:212;:256;;;-1:-1:-1;;;;;;;9553:32:2;;9568:17;9553:32;9329:256;:305;;;-1:-1:-1;;;;;;;9597:37:2;;9612:22;9597:37;9329:305;:349;;;-1:-1:-1;;;;;;;9646:32:2;;9661:17;9646:32;9329:349;9322:356;9238:447;-1:-1:-1;;9238:447:2:o;6084:171::-;2865:3;;;:15;;;-1:-1:-1;;;;;2865:15:2;;;;;;;;;;6159:4;;2884:10;;-1:-1:-1;;;;;2865:3:2;;:9;;:15;;;;;;;;;;;;;;;;:3;:15;;;5:2:-1;;;;30:1;27;20:12;5:2;2865:15:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2865:15:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2865:15:2;-1:-1:-1;;;;;2865:29:2;;2857:38;;;;;;6175:13;;;;:7;:13;;;;;;;;;:23;;;;6201:5;;6175:18;;;6194:3;;6175:23;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;6175:23:2;;;;;-1:-1:-1;6175:23:2;;;;;;;;;;;:31;;;;:23;;:31;;;;;-1:-1:-1;6175:31:2;-1:-1:-1;6175:31:2;:::i;:::-;;6233:4;6221:27;;;;6239:3;6244;6221:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;6221:27:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6221:27:2;;;;;;;;;;;;;;;;;;;;;;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;6221:27:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6084:171;;;;:::o;7296:451::-;7366:19;7433:13;;;:7;:13;;;;;;;;7387:10;;7456:260;7478:27;;;7456:260;;7545:26;;;7544:33;;;;:72;;-1:-1:-1;7615:1:2;7581:24;;;:11;;;:24;;;;;:31;;-1:-1:-1;;7581:31:2;;;;;;;;;;;:35;7544:72;7540:166;;;7643:24;;;;:11;;;:24;;;;;;;;;7636:31;;;;;;-1:-1:-1;;7636:31:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7643:24;;7636:31;;7643:24;7636:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7685:7;;7540:166;7507:17;;;;;7456:260;;;7739:1;7725:15;;7296:451;;;;;;;:::o;5631:174::-;2865:3;;;:15;;;-1:-1:-1;;;;;2865:15:2;;;;;;;;;;5704:4;;2884:10;;-1:-1:-1;;;;;2865:3:2;;:9;;:15;;;;;;;;;;;;;;;;:3;:15;;;5:2:-1;;;;30:1;27;20:12;5:2;2865:15:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2865:15:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2865:15:2;-1:-1:-1;;;;;2865:29:2;;2857:38;;;;;;5743:15;;;;;;;;;;;;;;;;;;-1:-1:-1;5720:13:2;;;:7;:13;;;;;:38;;:20;;;:38;;;;;;;;;;5773:25;;;;;;;;;;;;;5728:4;;5773:25;;;;;;;;5631:174;;;;:::o;8351:106::-;8403:7;8429:13;;;:7;:13;;;;;;;;:21;;;8351:106::o;8887:100::-;8936:7;8962:13;;;:7;:13;;;;;:18;-1:-1:-1;;;;;8962:18:2;;8887:100::o;6472:116::-;6558:13;;;;:7;:13;;;;;;;;;:23;;;;6533:6;;6558:18;;;6577:3;;6558:23;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;-1:-1;;263:2;259:12;;;254:3;250:22;;;246:30;;340:21;;;311:9;;295:26;;;;377:20;;;;365:33;;;6558:23:2;;;;;;;;;;;;;;;;;;6551:30;;;;274:1:-1;6551:30:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6558:23;;-1:-1:-1;6551:30:2;-1:-1:-1;;6551:30:2;;6558:23;6551:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6472:116;;;;:::o;5057:297::-;2865:3;;;:15;;;-1:-1:-1;;;;;2865:15:2;;;;;;;;;;5138:4;;2884:10;;-1:-1:-1;;;;;2865:3:2;;:9;;:15;;;;;;;;;;;;;;;;:3;:15;;;5:2:-1;;;;30:1;27;20:12;5:2;2865:15:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2865:15:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2865:15:2;-1:-1:-1;;;;;2865:29:2;;2857:38;;;;;;-1:-1:-1;;5209:15:2;;5208:31;;5207:38;5199:47;;;;;;5265:13;;;;:7;:13;;;;;;;;:31;;;:18;;:31;;;;;:38;;;;;;;;:::i;:::-;-1:-1:-1;5318:29:2;;5335:11;;5329:4;;5318:29;;;;;5057:297;;;;:::o;7947:99::-;8021:13;;;;:7;:13;;;;;;;;;:18;;;;8014:25;;;;-1:-1:-1;;8014:25:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7996:6;;8021:18;;8014:25;;8021:18;8014:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7947:99;;;:::o;4607:148::-;2865:3;;;:15;;;-1:-1:-1;;;;;2865:15:2;;;;;;;;;;4669:4;;2884:10;;-1:-1:-1;;;;;2865:3:2;;:9;;:15;;;;;;;;;;;;;;;;:3;:15;;;5:2:-1;;;;30:1;27;20:12;5:2;2865:15:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2865:15:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2865:15:2;-1:-1:-1;;;;;2865:29:2;;2857:38;;;;;;4685:13;;;;:7;:13;;;;;;;;:25;;;;:18;;;;;:25;;;;:::i;:::-;-1:-1:-1;4725:23:2;;;;;;;;;;;;;;;4737:4;;4725:23;;4743:4;;4725:23;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;4725:23:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4607:148;;;:::o;4200:162::-;2865:3;;;:15;;;-1:-1:-1;;;;;2865:15:2;;;;;;;;;;4266:4;;2884:10;;-1:-1:-1;;;;;2865:3:2;;:9;;:15;;;;;;;;;;;;;;;;:3;:15;;;5:2:-1;;;;30:1;27;20:12;5:2;2865:15:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2865:15:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2865:15:2;-1:-1:-1;;;;;2865:29:2;;2857:38;;;;;;4282:13;;;;:7;:13;;;;;;;;:30;;;;:23;;;;;:30;;;;:::i;:::-;-1:-1:-1;4327:28:2;;;;;;;;;;;;;;;4344:4;;4327:28;;4350:4;;4327:28;;;;;;;;;;;;;;33:3:-1;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;3813:158:2;2865:3;;;:15;;;-1:-1:-1;;;;;2865:15:2;;;;;;;;;;3879:4;;2884:10;;-1:-1:-1;;;;;2865:3:2;;:9;;:15;;;;;;;;;;;;;;;;:3;:15;;;5:2:-1;;;;30:1;27;20:12;5:2;2865:15:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2865:15:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2865:15:2;-1:-1:-1;;;;;2865:29:2;;2857:38;;;;;;3895:13;;;;:7;:13;;;;;;;;;:21;;;:28;;;3938:26;;;;;;;3903:4;;3938:26;;;;;;;;;3813:158;;;:::o;6830:145::-;6881:9;6921:13;;;:7;:13;;;;;:20;;;:22;6945;;;;;6921;;6830:145::o;3293:149::-;2865:3;;;:15;;;-1:-1:-1;;;;;2865:15:2;;;;;;;;;;3356:4;;2884:10;;-1:-1:-1;;;;;2865:3:2;;:9;;:15;;;;;;;;;;;;;;;;:3;:15;;;5:2:-1;;;;30:1;27;20:12;5:2;2865:15:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2865:15:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2865:15:2;-1:-1:-1;;;;;2865:29:2;;2857:38;;;;;;3372:13;;;;:7;:13;;;;;;;;;:25;;-1:-1:-1;;3372:25:2;-1:-1:-1;;;;;3372:25:2;;;;;;;;3412:23;;;;;;;3372:13;;3412:23;;;;;;;;;3293:149;;;:::o;8620:108::-;8698:13;;;;:7;:13;;;;;;;;;:23;;8691:30;;;;;-1:-1:-1;;8691:30:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8674:5;;8698:23;;8691:30;;8698:23;8691:30;;;;;;;;;;;;;;;;;;;;;;;;1553:8134;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1553:8134:2;;;-1:-1:-1;1553:8134:2;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o"},"externals/strings.sol:strings":{"bin":"604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a7230582024a2b0f9f886001e5fd3db71aa4fb1e8f4254fc3db05e9d54265f7c101091af20029","bin-runtime":"73000000000000000000000000000000000000000030146080604052600080fd00a165627a7a7230582024a2b0f9f886001e5fd3db71aa4fb1e8f4254fc3db05e9d54265f7c101091af20029","srcmap":"2600:23355:3:-;;132:2:-1;166:7;155:9;146:7;137:37;252:7;246:14;243:1;238:23;232:4;229:33;270:1;265:20;;;;222:63;;265:20;274:9;222:63;;298:9;295:1;288:20;328:4;319:7;311:22;352:7;343;336:24","srcmap-runtime":"2600:23355:3:-;;;;;;;;"},"internals/controllable.sol:Controllable":{"bin":"","bin-runtime":"","srcmap":"","srcmap-runtime":""},"internals/controller.sol:Controller":{"bin":"608060405234801561001057600080fd5b5060405160408061103a83398101604052805160209091015160008054600160a060020a031916600160a060020a0384161760a060020a60ff02191674010000000000000000000000000000000000000000831515810291909117918290558391839160ff91041615156100bb5760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b6040805160008152600160a060020a038416602082015281517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea5929181900390910190a150505050610f28806101126000396000f3006080604052600436106100b95763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166315b9a8b881146100be5780631785f53c146100e55780632121dc751461010857806324d7806c146101315780632b7832b3146101525780637048027514610167578063715018a6146101885780638da5cb5b1461019d578063a7fc7a07146101ce578063b242e534146101ef578063b429afeb14610215578063f6a74ed714610236575b600080fd5b3480156100ca57600080fd5b506100d3610257565b60408051918252519081900360200190f35b3480156100f157600080fd5b50610106600160a060020a036004351661025d565b005b34801561011457600080fd5b5061011d6102b6565b604080519115158252519081900360200190f35b34801561013d57600080fd5b5061011d600160a060020a03600435166102d7565b34801561015e57600080fd5b506100d36102f5565b34801561017357600080fd5b50610106600160a060020a03600435166102fb565b34801561019457600080fd5b50610106610351565b3480156101a957600080fd5b506101b261046c565b60408051600160a060020a039092168252519081900360200190f35b3480156101da57600080fd5b50610106600160a060020a036004351661047b565b3480156101fb57600080fd5b50610106600160a060020a036004351660243515156104e3565b34801561022157600080fd5b5061011d600160a060020a0360043516610722565b34801561024257600080fd5b50610106600160a060020a0360043516610740565b60045490565b610266336107a8565b15156102aa576040805160e560020a62461bcd0281526020600482015260166024820152600080516020610edd833981519152604482015290519081900360640190fd5b6102b3816107bc565b50565b60005474010000000000000000000000000000000000000000900460ff1690565b600160a060020a031660009081526001602052604090205460ff1690565b60025490565b610304336107a8565b1515610348576040805160e560020a62461bcd0281526020600482015260166024820152600080516020610edd833981519152604482015290519081900360640190fd5b6102b381610897565b61035a336107a8565b151561039e576040805160e560020a62461bcd0281526020600482015260166024820152600080516020610edd833981519152604482015290519081900360640190fd5b60005474010000000000000000000000000000000000000000900460ff161515610412576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916815560408051828152602081019290925280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1565b600054600160a060020a031690565b610484336102d7565b15156104da576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e2061646d696e00000000000000000000604482015290519081900360640190fd5b6102b381610b38565b6104ec336107a8565b1515610530576040805160e560020a62461bcd0281526020600482015260166024820152600080516020610edd833981519152604482015290519081900360640190fd5b60005474010000000000000000000000000000000000000000900460ff1615156105a4576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b600160a060020a038216151561062a576040805160e560020a62461bcd02815260206004820152602360248201527f6f776e65722063616e6e6f742062652073657420746f207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6000805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000831515908102919091179091556106aa5760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b60005460408051600160a060020a039283168152918416602083015280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1506000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a031660009081526003602052604090205460ff1690565b610749336102d7565b151561079f576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e2061646d696e00000000000000000000604482015290519081900360640190fd5b6102b381610ddc565b600054600160a060020a0390811691161490565b600160a060020a03811660009081526001602052604090205460ff16151561082e576040805160e560020a62461bcd02815260206004820181905260248201527f70726f7669646564206163636f756e74206973206e6f7420616e2061646d696e604482015290519081900360640190fd5b600160a060020a038116600081815260016020908152604091829020805460ff191690556002805460001901905581513381529081019290925280517f787a2e12f4a55b658b8f573c32432ee11a5e8b51677d1e1e937aaf6a0bb5776e9281900390910190a150565b600160a060020a03811660009081526001602052604090205460ff161561092d576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320616c726561647920616e206160448201527f646d696e00000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a03811660009081526003602052604090205460ff16156109c4576040805160e560020a62461bcd02815260206004820152602860248201527f70726f7669646564206163636f756e7420697320616c7265616479206120636f60448201527f6e74726f6c6c6572000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6109cd816107a8565b15610a48576040805160e560020a62461bcd02815260206004820152602560248201527f70726f7669646564206163636f756e7420697320616c7265616479207468652060448201527f6f776e6572000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0381161515610acd576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260016020818152604092839020805460ff1916831790556002805490920190915581513381529081019290925280517fc58b647b8ba5a8cab2f11f32673636cc1061324240972ed05e8cc005b81a4b7a9281900390910190a150565b600160a060020a03811660009081526001602052604090205460ff1615610bce576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320616c726561647920616e206160448201527f646d696e00000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a03811660009081526003602052604090205460ff1615610c65576040805160e560020a62461bcd02815260206004820152602860248201527f70726f7669646564206163636f756e7420697320616c7265616479206120636f60448201527f6e74726f6c6c6572000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b610c6e816107a8565b15610ce9576040805160e560020a62461bcd02815260206004820152602560248201527f70726f7669646564206163636f756e7420697320616c7265616479207468652060448201527f6f776e6572000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0381161515610d6e576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260036020908152604091829020805460ff1916600190811790915560048054909101905581513381529081019290925280517fb890d5abdcd5c2b61ce8bbc2cf6af9b6d7f7451830cbc85037cbdd182c86fe1d9281900390910190a150565b600160a060020a03811660009081526003602052604090205460ff161515610e73576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e74206973206e6f74206120636f6e74726f60448201527f6c6c657200000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260036020908152604091829020805460ff191690556004805460001901905581513381529081019290925280517fb6a283aaede08e15ef55c74e3014e30eb0c0040d4b156cccb77391268ea373949281900390910190a150560073656e646572206973206e6f7420616e206f776e657200000000000000000000a165627a7a72305820e3381d505607ee63056d5ba42a87e53a7b0dab423e773fa53f1e050ccb6949390029","bin-runtime":"6080604052600436106100b95763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166315b9a8b881146100be5780631785f53c146100e55780632121dc751461010857806324d7806c146101315780632b7832b3146101525780637048027514610167578063715018a6146101885780638da5cb5b1461019d578063a7fc7a07146101ce578063b242e534146101ef578063b429afeb14610215578063f6a74ed714610236575b600080fd5b3480156100ca57600080fd5b506100d3610257565b60408051918252519081900360200190f35b3480156100f157600080fd5b50610106600160a060020a036004351661025d565b005b34801561011457600080fd5b5061011d6102b6565b604080519115158252519081900360200190f35b34801561013d57600080fd5b5061011d600160a060020a03600435166102d7565b34801561015e57600080fd5b506100d36102f5565b34801561017357600080fd5b50610106600160a060020a03600435166102fb565b34801561019457600080fd5b50610106610351565b3480156101a957600080fd5b506101b261046c565b60408051600160a060020a039092168252519081900360200190f35b3480156101da57600080fd5b50610106600160a060020a036004351661047b565b3480156101fb57600080fd5b50610106600160a060020a036004351660243515156104e3565b34801561022157600080fd5b5061011d600160a060020a0360043516610722565b34801561024257600080fd5b50610106600160a060020a0360043516610740565b60045490565b610266336107a8565b15156102aa576040805160e560020a62461bcd0281526020600482015260166024820152600080516020610edd833981519152604482015290519081900360640190fd5b6102b3816107bc565b50565b60005474010000000000000000000000000000000000000000900460ff1690565b600160a060020a031660009081526001602052604090205460ff1690565b60025490565b610304336107a8565b1515610348576040805160e560020a62461bcd0281526020600482015260166024820152600080516020610edd833981519152604482015290519081900360640190fd5b6102b381610897565b61035a336107a8565b151561039e576040805160e560020a62461bcd0281526020600482015260166024820152600080516020610edd833981519152604482015290519081900360640190fd5b60005474010000000000000000000000000000000000000000900460ff161515610412576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916815560408051828152602081019290925280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1565b600054600160a060020a031690565b610484336102d7565b15156104da576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e2061646d696e00000000000000000000604482015290519081900360640190fd5b6102b381610b38565b6104ec336107a8565b1515610530576040805160e560020a62461bcd0281526020600482015260166024820152600080516020610edd833981519152604482015290519081900360640190fd5b60005474010000000000000000000000000000000000000000900460ff1615156105a4576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b600160a060020a038216151561062a576040805160e560020a62461bcd02815260206004820152602360248201527f6f776e65722063616e6e6f742062652073657420746f207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6000805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000831515908102919091179091556106aa5760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b60005460408051600160a060020a039283168152918416602083015280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1506000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a031660009081526003602052604090205460ff1690565b610749336102d7565b151561079f576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e2061646d696e00000000000000000000604482015290519081900360640190fd5b6102b381610ddc565b600054600160a060020a0390811691161490565b600160a060020a03811660009081526001602052604090205460ff16151561082e576040805160e560020a62461bcd02815260206004820181905260248201527f70726f7669646564206163636f756e74206973206e6f7420616e2061646d696e604482015290519081900360640190fd5b600160a060020a038116600081815260016020908152604091829020805460ff191690556002805460001901905581513381529081019290925280517f787a2e12f4a55b658b8f573c32432ee11a5e8b51677d1e1e937aaf6a0bb5776e9281900390910190a150565b600160a060020a03811660009081526001602052604090205460ff161561092d576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320616c726561647920616e206160448201527f646d696e00000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a03811660009081526003602052604090205460ff16156109c4576040805160e560020a62461bcd02815260206004820152602860248201527f70726f7669646564206163636f756e7420697320616c7265616479206120636f60448201527f6e74726f6c6c6572000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6109cd816107a8565b15610a48576040805160e560020a62461bcd02815260206004820152602560248201527f70726f7669646564206163636f756e7420697320616c7265616479207468652060448201527f6f776e6572000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0381161515610acd576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260016020818152604092839020805460ff1916831790556002805490920190915581513381529081019290925280517fc58b647b8ba5a8cab2f11f32673636cc1061324240972ed05e8cc005b81a4b7a9281900390910190a150565b600160a060020a03811660009081526001602052604090205460ff1615610bce576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320616c726561647920616e206160448201527f646d696e00000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a03811660009081526003602052604090205460ff1615610c65576040805160e560020a62461bcd02815260206004820152602860248201527f70726f7669646564206163636f756e7420697320616c7265616479206120636f60448201527f6e74726f6c6c6572000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b610c6e816107a8565b15610ce9576040805160e560020a62461bcd02815260206004820152602560248201527f70726f7669646564206163636f756e7420697320616c7265616479207468652060448201527f6f776e6572000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0381161515610d6e576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260036020908152604091829020805460ff1916600190811790915560048054909101905581513381529081019290925280517fb890d5abdcd5c2b61ce8bbc2cf6af9b6d7f7451830cbc85037cbdd182c86fe1d9281900390910190a150565b600160a060020a03811660009081526003602052604090205460ff161515610e73576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e74206973206e6f74206120636f6e74726f60448201527f6c6c657200000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260036020908152604091829020805460ff191690556004805460001901905581513381529081019290925280517fb6a283aaede08e15ef55c74e3014e30eb0c0040d4b156cccb77391268ea373949281900390910190a150560073656e646572206973206e6f7420616e206f776e657200000000000000000000a165627a7a72305820e3381d505607ee63056d5ba42a87e53a7b0dab423e773fa53f1e050ccb6949390029","srcmap":"1335:4616:5:-;;;2020:107;8:9:-1;5:2;;;30:1;27;20:12;5:2;2020:107:5;;;;;;;;;;;;;;;;;;;1527:6:7;:18;;-1:-1:-1;;;;;;1527:18:7;-1:-1:-1;;;;;1527:18:7;;;-1:-1:-1;;;;;;1555:32:7;;;;;;;;;;;;;;;2020:107:5;;;;1555:32:7;1671:15;;;1670:16;1666:78;;;1707:26;;;-1:-1:-1;;;;;1707:26:7;;;;;;;;;;;;;;;1666:78;1758:43;;;1787:1;1758:43;;-1:-1:-1;;;;;1758:43:7;;;;;;;;;;;;;;;;;;;1456:352;;2020:107:5;;1335:4616;;;;;;","srcmap-runtime":"1335:4616:5:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3634:96;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3634:96:5;;;;;;;;;;;;;;;;;;;;2814:97;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2814:97:5;-1:-1:-1;;;;;2814:97:5;;;;;;;3149:94:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3149:94:7;;;;;;;;;;;;;;;;;;;;;;3834:104:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3834:104:5;-1:-1:-1;;;;;3834:104:5;;;;;2963:86;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2963:86:5;;;;2594:91;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2594:91:5;-1:-1:-1;;;;;2594:91:5;;;;;3519:306:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3519:306:7;;;;3908:77;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3908:77:7;;;;;;;;-1:-1:-1;;;;;3908:77:7;;;;;;;;;;;;;;3187:101:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3187:101:5;-1:-1:-1;;;;;3187:101:5;;;;;2231:801:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2231:801:7;-1:-1:-1;;;;;2231:801:7;;;;;;;;;4050:114:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4050:114:5;-1:-1:-1;;;;;4050:114:5;;;;;3432:107;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3432:107:5;-1:-1:-1;;;;;3432:107:5;;;;;3634:96;3707:16;;3634:96;:::o;2814:97::-;1924:20:7;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:7;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1916:55:7;;;;;;;;;;;;;;;2882:22:5;2895:8;2882:12;:22::i;:::-;2814:97;:::o;3149:94:7:-;3198:4;3221:15;;;;;;;3149:94::o;3834:104:5:-;-1:-1:-1;;;;;3913:18:5;3890:4;3913:18;;;:8;:18;;;;;;;;;3834:104::o;2963:86::-;3031:11;;2963:86;:::o;2594:91::-;1924:20:7;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:7;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1916:55:7;;;;;;;;;;;;;;;2659:19:5;2669:8;2659:9;:19::i;3519:306:7:-;1924:20;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:7;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1916:55:7;;;;;;;;;;;;;;;3640:15;;;;;;;3632:57;;;;;;;-1:-1:-1;;;;;3632:57:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;3760:1;3743:19;;-1:-1:-1;;3743:19:7;;;3778:40;;;;;;;;;;;;;;;;;;;;;;;;;3519:306::o;3908:77::-;3946:7;3972:6;-1:-1:-1;;;;;3972:6:7;3908:77;:::o;3187:101:5:-;2226:19;2234:10;2226:7;:19::i;:::-;2218:54;;;;;;;-1:-1:-1;;;;;2218:54:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;3257:24;3272:8;3257:14;:24::i;2231:801:7:-;1924:20;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:7;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1916:55:7;;;;;;;;;;;;;;;2388:15;;;;;;;2380:57;;;;;;;-1:-1:-1;;;;;2380:57:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2518:22:7;;;;2510:70;;;;;-1:-1:-1;;;;;2510:70:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2665:15;:31;;-1:-1:-1;;2665:31:7;;;;;;;;;;;;;;;2775:75;;2814:25;;;-1:-1:-1;;;;;2814:25:7;;;;;;;;;;;;;;;2775:75;2931:6;;2910:38;;;-1:-1:-1;;;;;2931:6:7;;;2910:38;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3008:6:7;:17;;-1:-1:-1;;3008:17:7;-1:-1:-1;;;;;3008:17:7;;;;;;;;;;2231:801::o;4050:114:5:-;-1:-1:-1;;;;;4134:23:5;4111:4;4134:23;;;:13;:23;;;;;;;;;4050:114::o;3432:107::-;2226:19;2234:10;2226:7;:19::i;:::-;2218:54;;;;;;;-1:-1:-1;;;;;2218:54:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;3505:27;3523:8;3505:17;:27::i;4091:107:7:-;4150:4;4185:6;-1:-1:-1;;;;;4185:6:7;;;4173:18;;;;4091:107::o;4791:236:5:-;-1:-1:-1;;;;;4857:18:5;;;;;;:8;:18;;;;;;;;4849:63;;;;;;;-1:-1:-1;;;;;4849:63:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4922:18:5;;4943:5;4922:18;;;:8;:18;;;;;;;;;:26;;-1:-1:-1;;4922:26:5;;;4958:11;:13;;-1:-1:-1;;4958:13:5;;;4986:34;;4999:10;4986:34;;;;;;;;;;;;;;;;;;;;;4791:236;:::o;4232:482::-;-1:-1:-1;;;;;4296:18:5;;;;;;:8;:18;;;;;;;;4295:19;4287:68;;;;;-1:-1:-1;;;;;4287:68:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4374:23:5;;;;;;:13;:23;;;;;;;;4373:24;4365:77;;;;;-1:-1:-1;;;;;4365:77:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4461:18;4470:8;4461;:18::i;:::-;4460:19;4452:69;;;;;-1:-1:-1;;;;;4452:69:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4539:22:5;;;;4531:71;;;;;-1:-1:-1;;;;;4531:71:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4612:18:5;;;;;;4633:4;4612:18;;;;;;;;;:25;;-1:-1:-1;;4612:25:5;;;;;4647:11;:13;;;;;;;;4675:32;;4686:10;4675:32;;;;;;;;;;;;;;;;;;;;;4232:482;:::o;5100:502::-;-1:-1:-1;;;;;5169:18:5;;;;;;:8;:18;;;;;;;;5168:19;5160:68;;;;;-1:-1:-1;;;;;5160:68:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5247:23:5;;;;;;:13;:23;;;;;;;;5246:24;5238:77;;;;;-1:-1:-1;;;;;5238:77:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5334:18;5343:8;5334;:18::i;:::-;5333:19;5325:69;;;;;-1:-1:-1;;;;;5325:69:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5412:22:5;;;;5404:71;;;;;-1:-1:-1;;;;;5404:71:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5485:23:5;;;;;;:13;:23;;;;;;;;;:30;;-1:-1:-1;;5485:30:5;5511:4;5485:30;;;;;;5525:16;:18;;;;;;;5558:37;;5574:10;5558:37;;;;;;;;;;;;;;;;;;;;;5100:502;:::o;5684:265::-;-1:-1:-1;;;;;5755:23:5;;;;;;:13;:23;;;;;;;;5747:72;;;;;;;-1:-1:-1;;;;;5747:72:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5829:23:5;;5855:5;5829:23;;;:13;:23;;;;;;;;;:31;;-1:-1:-1;;5829:31:5;;;5870:16;:18;;-1:-1:-1;;5870:18:5;;;5903:39;;5921:10;5903:39;;;;;;;;;;;;;;;;;;;;;5684:265;:::o"},"internals/controller.sol:IController":{"bin":"","bin-runtime":"","srcmap":"","srcmap-runtime":""},"internals/ensResolvable.sol:ENSResolvable":{"bin":"","bin-runtime":"","srcmap":"","srcmap-runtime":""},"internals/ownable.sol:Ownable":{"bin":"","bin-runtime":"","srcmap":"","srcmap-runtime":""},"internals/tokenWhitelist.sol:ITokenWhitelist":{"bin":"","bin-runtime":"","srcmap":"","srcmap-runtime":""},"internals/tokenWhitelist.sol:TokenWhitelist":{"bin":"608060405234801561001057600080fd5b5060405160c08061189f83398101604090815281516020830151918301516060840151608085015160a09095015160018054600160a060020a03808716600160a060020a03199283161792839055600080548316938216939093179092556002859055600380548915157401000000000000000000000000000000000000000090810260a060020a60ff0219958816929094169190911793909316919091179081905594969394929392849184910460ff1615156101055760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b6040805160008152600160a060020a038416602082015281517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea5929181900390910190a15050600794909455505060068054600160a060020a031916600160a060020a03909316929092179091555061171a9050806101856000396000f3006080604052600436106100cf5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631f69565f81146100d45780632121dc751461019f57806334c73edc146101c85780633efec5e91461021d578063443dd2a4146102325780636c3824ef14610297578063715018a6146102b75780637d73b231146102cc57806380cc0dda146102fd5780638da5cb5b14610324578063b242e53414610339578063d545782e1461035f578063e2b4ce9714610386578063e9cbd8221461039b575b600080fd5b3480156100e057600080fd5b506100f5600160a060020a03600435166103b0565b6040805160208082018990529181018790528515156060820152841515608082015283151560a082015260c0810183905260e08082528951908201528851909182916101008301918b019080838360005b8381101561015e578181015183820152602001610146565b50505050905090810190601f16801561018b5780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b3480156101ab57600080fd5b506101b46104ac565b604080519115158252519081900360200190f35b3480156101d457600080fd5b5061021b602460048035828101929082013591813580830192908201359160443580830192908201359160643580830192908201359160843591820191013560a4356104ce565b005b34801561022957600080fd5b506100f5610965565b34801561023e57600080fd5b50610247610a61565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561028357818101518382015260200161026b565b505050509050019250505060405180910390f35b3480156102a357600080fd5b5061021b6004803560248101910135610ac3565b3480156102c357600080fd5b5061021b610d62565b3480156102d857600080fd5b506102e1610e8f565b60408051600160a060020a039092168252519081900360200190f35b34801561030957600080fd5b50610312610e9e565b60408051918252519081900360200190f35b34801561033057600080fd5b506102e1610ea4565b34801561034557600080fd5b5061021b600160a060020a03600435166024351515610eb3565b34801561036b57600080fd5b5061021b600160a060020a0360043516602435604435611104565b34801561039257600080fd5b50610312611266565b3480156103a757600080fd5b506102e161126c565b600160a060020a0381166000908152600460208181526040808420600180820154600280840154600385015497850154855487516101009682161587026000190190911693909304601f81018990048902840189019097528683526060999889988998899889988998919788979296929560ff808216969382048116956201000090920416939289919083018282801561048b5780601f106104605761010080835404028352916020019161048b565b820191906000526020600020905b81548152906001019060200180831161046e57829003601f168201915b50505050509650975097509750975097509750975050919395979092949650565b60035474010000000000000000000000000000000000000000900460ff165b90565b600060606104db3361127b565b1515610531576040805160e560020a62461bcd02815260206004820152601a60248201527f73656e646572206973206e6f74206120636f6e74726f6c6c6572000000000000604482015290519081900360640190fd5b8b8a14801561053f57508b88145b801561054a57508b86145b801561055557508b86145b15156105ab576040805160e560020a62461bcd02815260206004820152601e60248201527f706172616d65746572206c656e6774687320646f206e6f74206d617463680000604482015290519081900360640190fd5b600091505b8b82101561095657600460008e8e858181106105c857fe5b60209081029290920135600160a060020a03168352508101919091526040016000206003015460ff1615610646576040805160e560020a62461bcd02815260206004820152601760248201527f746f6b656e20616c726561647920617661696c61626c65000000000000000000604482015290519081900360640190fd5b61066c6106678c8c8581811061065857fe5b6020029190910135905061132d565b611359565b905060e0604051908101604052808281526020018a8a85818110151561068e57fe5b9050602002013581526020016000815260200160011515815260200188888581811015156106b857fe5b602090810292909201351515835250018686858181106106d457fe5b60209081029290920135151583525001849052600460008f8f868181106106f757fe5b90506020020135600160a060020a0316600160a060020a0316600160a060020a0316815260200190815260200160002060008201518160000190805190602001906107439291906115cf565b5060208201516001820155604082015160028201556060820151600382018054608085015160a08601511515620100000262ff0000199115156101000261ff001995151560ff199094169390931794909416919091171691909117905560c09091015160049091015560058d8d848181106107ba57fe5b8354600181018555600094855260209485902001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0395909202939093013593909316929092179055507f1802e89da3f6ef84e024e37454c226b1e13bf846ce71cd2a1d24faef9cbf779b338e8e8581811061083157fe5b90506020020135600160a060020a0316838c8c87818110151561085057fe5b905060200201358b8b88818110151561086557fe5b9050602002013515158a8a89818110151561087c57fe5b9050602002013515156040518087600160a060020a0316600160a060020a0316815260200186600160a060020a0316600160a060020a03168152602001806020018581526020018415151515815260200183151515158152602001828103825286818151815260200191508051906020019080838360005b8381101561090c5781810151838201526020016108f4565b50505050905090810190601f1680156109395780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390a16001909101906105b0565b50505050505050505050505050565b600654600160a060020a03166000908152600460208181526040808420600180820154600280840154600385015497850154855487516101009682161587026000190190911693909304601f81018990048902840189019097528683526060999889988998899889988998919788979296929560ff8082169693820481169562010000909204169392899190830182828015610a425780601f10610a1757610100808354040283529160200191610a42565b820191906000526020600020905b815481529060010190602001808311610a2557829003601f168201915b5050505050965097509750975097509750975097505090919293949596565b60606005805480602002602001604051908101604052809291908181526020018280548015610ab957602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610a9b575b5050505050905090565b6000806000610ad13361127b565b1515610b27576040805160e560020a62461bcd02815260206004820152601a60248201527f73656e646572206973206e6f74206120636f6e74726f6c6c6572000000000000604482015290519081900360640190fd5b600092505b83831015610d5b5760046000868686818110610b4457fe5b60209081029290920135600160a060020a03168352508101919091526040016000206003015460ff161515610bc3576040805160e560020a62461bcd02815260206004820152601660248201527f746f6b656e206973206e6f7420617661696c61626c6500000000000000000000604482015290519081900360640190fd5b848484818110610bcf57fe5b60209081029290920135600160a060020a03166000818152600490935260408320909450919050610c00828261164d565b506000600182018190556002820181905560038201805462ffffff19169055600490910181905590505b600554610c3e90600163ffffffff6113b316565b811015610cf95781600160a060020a0316600582815481101515610c5e57fe5b600091825260209091200154600160a060020a03161415610cf15760058054610c8e90600163ffffffff6113b316565b81548110610c9857fe5b60009182526020909120015460058054600160a060020a039092169183908110610cbe57fe5b9060005260206000200160006101000a815481600160a060020a030219169083600160a060020a03160217905550610cf9565b600101610c2a565b6005805490610d0c906000198301611694565b5060408051338152600160a060020a038416602082015281517f703f7e3f084d5b8dcc12fddcfd9a70d65b6b21ec7659e4608dbaf4419ede3ad0929181900390910190a1600190920191610b2c565b5050505050565b610d6b336113ca565b1515610dc1576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e206f776e657200000000000000000000604482015290519081900360640190fd5b60035474010000000000000000000000000000000000000000900460ff161515610e35576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b6003805473ffffffffffffffffffffffffffffffffffffffff19169055604080516000808252602082015281517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea5929181900390910190a1565b600154600160a060020a031690565b60075490565b600354600160a060020a031690565b610ebc336113ca565b1515610f12576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e206f776e657200000000000000000000604482015290519081900360640190fd5b60035474010000000000000000000000000000000000000000900460ff161515610f86576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b600160a060020a038216151561100c576040805160e560020a62461bcd02815260206004820152602360248201527f6f776e65722063616e6e6f742062652073657420746f207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6003805474ff00000000000000000000000000000000000000001916740100000000000000000000000000000000000000008315159081029190911790915561108c5760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b60035460408051600160a060020a039283168152918416602083015280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1506003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60006111116007546113de565b905061111c3361127b565b8061112f575033600160a060020a038216145b1515611185576040805160e560020a62461bcd02815260206004820152601b60248201527f656974686572206f7261636c65206f7220636f6e74726f6c6c65720000000000604482015290519081900360640190fd5b600160a060020a03841660009081526004602052604090206003015460ff1615156111fa576040805160e560020a62461bcd02815260206004820152601660248201527f746f6b656e206973206e6f7420617661696c61626c6500000000000000000000604482015290519081900360640190fd5b600160a060020a03841660008181526004602081815260409283902060028101889055909101859055815133815290810192909252818101859052517fdb3a4cfb4cd8ac94343ff7440cee8d05ade309056203f0e53ca49b6db8197c7d9181900360600190a150505050565b60025490565b600654600160a060020a031690565b60006112886002546113de565b600160a060020a031663b429afeb836040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b1580156112fb57600080fd5b505af115801561130f573d6000803e3d6000fd5b505050506040513d602081101561132557600080fd5b505192915050565b6113356116bd565b6040516020810160405282815280602083015250611352826114d5565b8152919050565b606080600083600001516040519080825280601f01601f191660200182016040528015611390578160200160208202803883390190505b5091506020820190506113ac818560200151866000015161158b565b5092915050565b600080838311156113c357600080fd5b5050900390565b600354600160a060020a0390811691161490565b60008054604080517f0178b8bf000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691630178b8bf9160248082019260209290919082900301818787803b15801561144557600080fd5b505af1158015611459573d6000803e3d6000fd5b505050506040513d602081101561146f57600080fd5b5051604080517f3b3b57de000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691633b3b57de916024808201926020929091908290030181600087803b1580156112fb57600080fd5b6000808215156114e85760009150611585565b6fffffffffffffffffffffffffffffffff8316151561151b57601001700100000000000000000000000000000000830492505b67ffffffffffffffff8316151561153e5760080168010000000000000000830492505b63ffffffff8316151561155957600401640100000000830492505b61ffff831615156115705760020162010000830492505b60ff8316151561157e576001015b8060200391505b50919050565b60005b602082106115b0578251845260209384019390920191601f199091019061158e565b50905182516020929092036101000a6000190180199091169116179052565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061161057805160ff191683800117855561163d565b8280016001018555821561163d579182015b8281111561163d578251825591602001919060010190611622565b506116499291506116d4565b5090565b50805460018160011615610100020316600290046000825580601f106116735750611691565b601f01602090049060005260206000209081019061169191906116d4565b50565b8154818355818111156116b8576000838152602090206116b89181019083016116d4565b505050565b604080518082019091526000808252602082015290565b6104cb91905b8082111561164957600081556001016116da5600a165627a7a7230582093b6ea30833eac9793938fe8dab81d00e6ef1dbb9489c89e10258ba8847c4c870029","bin-runtime":"6080604052600436106100cf5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631f69565f81146100d45780632121dc751461019f57806334c73edc146101c85780633efec5e91461021d578063443dd2a4146102325780636c3824ef14610297578063715018a6146102b75780637d73b231146102cc57806380cc0dda146102fd5780638da5cb5b14610324578063b242e53414610339578063d545782e1461035f578063e2b4ce9714610386578063e9cbd8221461039b575b600080fd5b3480156100e057600080fd5b506100f5600160a060020a03600435166103b0565b6040805160208082018990529181018790528515156060820152841515608082015283151560a082015260c0810183905260e08082528951908201528851909182916101008301918b019080838360005b8381101561015e578181015183820152602001610146565b50505050905090810190601f16801561018b5780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b3480156101ab57600080fd5b506101b46104ac565b604080519115158252519081900360200190f35b3480156101d457600080fd5b5061021b602460048035828101929082013591813580830192908201359160443580830192908201359160643580830192908201359160843591820191013560a4356104ce565b005b34801561022957600080fd5b506100f5610965565b34801561023e57600080fd5b50610247610a61565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561028357818101518382015260200161026b565b505050509050019250505060405180910390f35b3480156102a357600080fd5b5061021b6004803560248101910135610ac3565b3480156102c357600080fd5b5061021b610d62565b3480156102d857600080fd5b506102e1610e8f565b60408051600160a060020a039092168252519081900360200190f35b34801561030957600080fd5b50610312610e9e565b60408051918252519081900360200190f35b34801561033057600080fd5b506102e1610ea4565b34801561034557600080fd5b5061021b600160a060020a03600435166024351515610eb3565b34801561036b57600080fd5b5061021b600160a060020a0360043516602435604435611104565b34801561039257600080fd5b50610312611266565b3480156103a757600080fd5b506102e161126c565b600160a060020a0381166000908152600460208181526040808420600180820154600280840154600385015497850154855487516101009682161587026000190190911693909304601f81018990048902840189019097528683526060999889988998899889988998919788979296929560ff808216969382048116956201000090920416939289919083018282801561048b5780601f106104605761010080835404028352916020019161048b565b820191906000526020600020905b81548152906001019060200180831161046e57829003601f168201915b50505050509650975097509750975097509750975050919395979092949650565b60035474010000000000000000000000000000000000000000900460ff165b90565b600060606104db3361127b565b1515610531576040805160e560020a62461bcd02815260206004820152601a60248201527f73656e646572206973206e6f74206120636f6e74726f6c6c6572000000000000604482015290519081900360640190fd5b8b8a14801561053f57508b88145b801561054a57508b86145b801561055557508b86145b15156105ab576040805160e560020a62461bcd02815260206004820152601e60248201527f706172616d65746572206c656e6774687320646f206e6f74206d617463680000604482015290519081900360640190fd5b600091505b8b82101561095657600460008e8e858181106105c857fe5b60209081029290920135600160a060020a03168352508101919091526040016000206003015460ff1615610646576040805160e560020a62461bcd02815260206004820152601760248201527f746f6b656e20616c726561647920617661696c61626c65000000000000000000604482015290519081900360640190fd5b61066c6106678c8c8581811061065857fe5b6020029190910135905061132d565b611359565b905060e0604051908101604052808281526020018a8a85818110151561068e57fe5b9050602002013581526020016000815260200160011515815260200188888581811015156106b857fe5b602090810292909201351515835250018686858181106106d457fe5b60209081029290920135151583525001849052600460008f8f868181106106f757fe5b90506020020135600160a060020a0316600160a060020a0316600160a060020a0316815260200190815260200160002060008201518160000190805190602001906107439291906115cf565b5060208201516001820155604082015160028201556060820151600382018054608085015160a08601511515620100000262ff0000199115156101000261ff001995151560ff199094169390931794909416919091171691909117905560c09091015160049091015560058d8d848181106107ba57fe5b8354600181018555600094855260209485902001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0395909202939093013593909316929092179055507f1802e89da3f6ef84e024e37454c226b1e13bf846ce71cd2a1d24faef9cbf779b338e8e8581811061083157fe5b90506020020135600160a060020a0316838c8c87818110151561085057fe5b905060200201358b8b88818110151561086557fe5b9050602002013515158a8a89818110151561087c57fe5b9050602002013515156040518087600160a060020a0316600160a060020a0316815260200186600160a060020a0316600160a060020a03168152602001806020018581526020018415151515815260200183151515158152602001828103825286818151815260200191508051906020019080838360005b8381101561090c5781810151838201526020016108f4565b50505050905090810190601f1680156109395780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390a16001909101906105b0565b50505050505050505050505050565b600654600160a060020a03166000908152600460208181526040808420600180820154600280840154600385015497850154855487516101009682161587026000190190911693909304601f81018990048902840189019097528683526060999889988998899889988998919788979296929560ff8082169693820481169562010000909204169392899190830182828015610a425780601f10610a1757610100808354040283529160200191610a42565b820191906000526020600020905b815481529060010190602001808311610a2557829003601f168201915b5050505050965097509750975097509750975097505090919293949596565b60606005805480602002602001604051908101604052809291908181526020018280548015610ab957602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610a9b575b5050505050905090565b6000806000610ad13361127b565b1515610b27576040805160e560020a62461bcd02815260206004820152601a60248201527f73656e646572206973206e6f74206120636f6e74726f6c6c6572000000000000604482015290519081900360640190fd5b600092505b83831015610d5b5760046000868686818110610b4457fe5b60209081029290920135600160a060020a03168352508101919091526040016000206003015460ff161515610bc3576040805160e560020a62461bcd02815260206004820152601660248201527f746f6b656e206973206e6f7420617661696c61626c6500000000000000000000604482015290519081900360640190fd5b848484818110610bcf57fe5b60209081029290920135600160a060020a03166000818152600490935260408320909450919050610c00828261164d565b506000600182018190556002820181905560038201805462ffffff19169055600490910181905590505b600554610c3e90600163ffffffff6113b316565b811015610cf95781600160a060020a0316600582815481101515610c5e57fe5b600091825260209091200154600160a060020a03161415610cf15760058054610c8e90600163ffffffff6113b316565b81548110610c9857fe5b60009182526020909120015460058054600160a060020a039092169183908110610cbe57fe5b9060005260206000200160006101000a815481600160a060020a030219169083600160a060020a03160217905550610cf9565b600101610c2a565b6005805490610d0c906000198301611694565b5060408051338152600160a060020a038416602082015281517f703f7e3f084d5b8dcc12fddcfd9a70d65b6b21ec7659e4608dbaf4419ede3ad0929181900390910190a1600190920191610b2c565b5050505050565b610d6b336113ca565b1515610dc1576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e206f776e657200000000000000000000604482015290519081900360640190fd5b60035474010000000000000000000000000000000000000000900460ff161515610e35576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b6003805473ffffffffffffffffffffffffffffffffffffffff19169055604080516000808252602082015281517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea5929181900390910190a1565b600154600160a060020a031690565b60075490565b600354600160a060020a031690565b610ebc336113ca565b1515610f12576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e206f776e657200000000000000000000604482015290519081900360640190fd5b60035474010000000000000000000000000000000000000000900460ff161515610f86576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b600160a060020a038216151561100c576040805160e560020a62461bcd02815260206004820152602360248201527f6f776e65722063616e6e6f742062652073657420746f207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6003805474ff00000000000000000000000000000000000000001916740100000000000000000000000000000000000000008315159081029190911790915561108c5760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b60035460408051600160a060020a039283168152918416602083015280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1506003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60006111116007546113de565b905061111c3361127b565b8061112f575033600160a060020a038216145b1515611185576040805160e560020a62461bcd02815260206004820152601b60248201527f656974686572206f7261636c65206f7220636f6e74726f6c6c65720000000000604482015290519081900360640190fd5b600160a060020a03841660009081526004602052604090206003015460ff1615156111fa576040805160e560020a62461bcd02815260206004820152601660248201527f746f6b656e206973206e6f7420617661696c61626c6500000000000000000000604482015290519081900360640190fd5b600160a060020a03841660008181526004602081815260409283902060028101889055909101859055815133815290810192909252818101859052517fdb3a4cfb4cd8ac94343ff7440cee8d05ade309056203f0e53ca49b6db8197c7d9181900360600190a150505050565b60025490565b600654600160a060020a031690565b60006112886002546113de565b600160a060020a031663b429afeb836040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b1580156112fb57600080fd5b505af115801561130f573d6000803e3d6000fd5b505050506040513d602081101561132557600080fd5b505192915050565b6113356116bd565b6040516020810160405282815280602083015250611352826114d5565b8152919050565b606080600083600001516040519080825280601f01601f191660200182016040528015611390578160200160208202803883390190505b5091506020820190506113ac818560200151866000015161158b565b5092915050565b600080838311156113c357600080fd5b5050900390565b600354600160a060020a0390811691161490565b60008054604080517f0178b8bf000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691630178b8bf9160248082019260209290919082900301818787803b15801561144557600080fd5b505af1158015611459573d6000803e3d6000fd5b505050506040513d602081101561146f57600080fd5b5051604080517f3b3b57de000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691633b3b57de916024808201926020929091908290030181600087803b1580156112fb57600080fd5b6000808215156114e85760009150611585565b6fffffffffffffffffffffffffffffffff8316151561151b57601001700100000000000000000000000000000000830492505b67ffffffffffffffff8316151561153e5760080168010000000000000000830492505b63ffffffff8316151561155957600401640100000000830492505b61ffff831615156115705760020162010000830492505b60ff8316151561157e576001015b8060200391505b50919050565b60005b602082106115b0578251845260209384019390920191601f199091019061158e565b50905182516020929092036101000a6000190180199091169116179052565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061161057805160ff191683800117855561163d565b8280016001018555821561163d579182015b8281111561163d578251825591602001919060010190611622565b506116499291506116d4565b5090565b50805460018160011615610100020316600290046000825580601f106116735750611691565b601f01602090049060005260206000209081019061169191906116d4565b50565b8154818355818111156116b8576000838152602090206116b89181019083016116d4565b505050565b604080518082019091526000808252602082015290565b6104cb91905b8082111561164957600081556001016116da5600a165627a7a7230582093b6ea30833eac9793938fe8dab81d00e6ef1dbb9489c89e10258ba8847c4c870029","srcmap":"1593:8239:8:-;;;3164:336;8:9:-1;5:2;;;30:1;27;20:12;5:2;3164:336:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1312:12:6;:23;;-1:-1:-1;;;;;1312:23:6;;;-1:-1:-1;;;;;;1312:23:6;;;;;;;;:12;1345:24;;;;1356:12;;;1345:24;;;;;;;1334:15:4;:38;;;1527:6:7;:18;;1555:32;;;;;;;-1:-1:-1;;;;;;1527:18:7;;;;;;;;;;;1555:32;;;;;;;;;;;;3164:336:8;;;;;;;;;;;1671:15:7;1555:32;1671:15;1670:16;1666:78;;;1707:26;;;-1:-1:-1;;;;;1707:26:7;;;;;;;;;;;;;;;1666:78;1758:43;;;1787:1;1758:43;;-1:-1:-1;;;;;1758:43:7;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3420:11:8;:30;;;;-1:-1:-1;;3460:11:8;:33;;-1:-1:-1;;;;;;3460:33:8;-1:-1:-1;;;;;3460:33:8;;;;;;;;;;-1:-1:-1;1593:8239:8;;-1:-1:-1;1593:8239:8;;-1:-1:-1;1593:8239:8;;","srcmap-runtime":"1593:8239:8:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7993:325;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7993:325:8;-1:-1:-1;;;;;7993:325:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-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;7993:325:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3149:94:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3149:94:7;;;;;;;;;;;;;;;;;;;;;;4064:1439:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4064:1439:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8810:369;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8810:369:8;;;;9302:105;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9302:105:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;9302:105:8;;;;;;;;;;;;;;;;;5630:1031;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5630:1031:8;;;;;;;;;;;;3519:306:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3519:306:7;;;;1468:91:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1468:91:6;;;;;;;;-1:-1:-1;;;;;1468:91:6;;;;;;;;;;;;;;9741:89:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9741:89:8;;;;;;;;;;;;;;;;;;;;3908:77:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3908:77:7;;;;2231:801;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2231:801:7;-1:-1:-1;;;;;2231:801:7;;;;;;;;;6938:514:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6938:514:8;-1:-1:-1;;;;;6938:514:8;;;;;;;;;1629:97:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1629:97:4;;;;9538:89:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9538:89:8;;;;7993:325;-1:-1:-1;;;;;8139:17:8;;8058:7;8139:17;;;:13;:17;;;;;;;;8192:19;;;;;8213:14;;;;;8229:19;;;;8290:20;;;;8166:145;;;;8229:19;8166:145;;;;;;-1:-1:-1;;8166:145:8;;;;;;;;;;;;;;;;;;;;;;;;;;8050:6;;8058:7;;;;;;;;;;;8139:17;;;;8192:19;;8213:14;;8229:19;;;;;8250:18;;;;;;8270;;;;;;8290:20;8139:17;;8166:145;;;8139:17;8166:145;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7993:325;;;;;;;;;;:::o;3149:94:7:-;3221:15;;;;;;;3149:94;;:::o;4064:1439:8:-;4555:6;4801:20;1489:25:4;1503:10;1489:13;:25::i;:::-;1481:64;;;;;;;-1:-1:-1;;;;;1481:64:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;4298:33:8;;;:72;;;;-1:-1:-1;4335:35:8;;;4298:72;:110;;;;-1:-1:-1;4374:34:8;;;4298:110;:148;;;;-1:-1:-1;4412:34:8;;;4298:148;4290:191;;;;;;;-1:-1:-1;;;;;4290:191:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;4564:1;4555:10;;4550:947;4567:18;;;4550:947;;;4678:13;:25;4692:7;;4700:1;4692:10;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4692:10:8;4678:25;;-1:-1:-1;4678:25:8;;;;;;;;-1:-1:-1;4678:25:8;:35;;;;;4677:36;4669:72;;;;;-1:-1:-1;;;;;4669:72:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;4824:35;:24;:8;;4833:1;4824:11;;;;;;;;;;;;;;;-1:-1:-1;4824:22:8;:24::i;:::-;:33;:35::i;:::-;4801:58;;4949:284;;;;;;;;;4982:6;4949:284;;;;5018:10;;5029:1;5018:13;;;;;;;;;;;;;;;4949:284;;;;5056:1;4949:284;;;;5087:4;4949:284;;;;;;5120:9;;5130:1;5120:12;;;;;;;;;;;;;;;;;;;;4949:284;;-1:-1:-1;4949:284:8;5160:9;;5170:1;5160:12;;;;;;;;;;;;;;;;;;4949:284;;-1:-1:-1;4949:284:8;;;;4921:13;-1:-1:-1;4935:7:8;;4943:1;4935:10;;;;;;;;;;;;;-1:-1:-1;;;;;4935:10:8;-1:-1:-1;;;;;4921:25:8;-1:-1:-1;;;;;4921:25:8;;;;;;;;;;;;:312;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;4921:312:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4921:312:8;;;;;-1:-1:-1;;4921:312:8;;;-1:-1:-1;;4921:312:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5305:18;5329:7;;5337:1;5329:10;;;;;;;27::-1;;39:1;23:18;;45:23;;-1:-1;5305:35:8;;;5329:10;5305:35;;;;;;;-1:-1:-1;;5305:35:8;-1:-1:-1;;;;;5329:10:8;;;;;;;;;;;;;5305:35;;;;;;-1:-1:-1;5401:85:8;5412:10;5424:7;;5432:1;5424:10;;;;;;;;;;;;;-1:-1:-1;;;;;5424:10:8;5436:6;5444:10;;5455:1;5444:13;;;;;;;;;;;;;;;5459:9;;5469:1;5459:12;;;;;;;;;;;;;;;;;5473:9;;5483:1;5473:12;;;;;;;;;;;;;;;;;5401:85;;;;-1:-1:-1;;;;;5401:85:8;-1:-1:-1;;;;;5401:85:8;;;;;;-1:-1:-1;;;;;5401:85:8;-1:-1:-1;;;;;5401:85:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;5401:85:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4587:3;;;;;4550:947;;;4064:1439;;;;;;;;;;;;;:::o;8810:369::-;8970:11;;-1:-1:-1;;;;;8970:11:8;8870:7;8956:26;;;:13;:26;;;;;;;;8970:11;9023:24;;;;9049:19;;;;;9070:24;;;;9146:25;;;;8992:180;;;;8970:11;8992:180;;;;;;-1:-1:-1;;8992:180:8;;;;;;;;;;;;;;;;;;;;;;;;;;8862:6;;8870:7;;;;;;;;;;;8956:26;;;;9023:24;;9049:19;;9070:24;;;;;9096:23;;;;;;9121;;;;;;9146:25;8956:26;;8992:180;;;8956:26;8992:180;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8810:369;;;;;;;;:::o;9302:105::-;9354:9;9382:18;9375:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9375:25:8;;;;;;;;;;;;;;;;;;;;;;;9302:105;:::o;5630:1031::-;5813:6;6057:13;6246:6;1489:25:4;1503:10;1489:13;:25::i;:::-;1481:64;;;;;;;-1:-1:-1;;;;;1481:64:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;5822:1:8;5813:10;;5808:847;5825:18;;;5808:847;;;5941:13;:25;5955:7;;5963:1;5955:10;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5955:10:8;5941:25;;-1:-1:-1;5941:25:8;;;;;;;;-1:-1:-1;5941:25:8;:35;;;;;5933:70;;;;;;;-1:-1:-1;;;;;5933:70:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;6073:7;;6081:1;6073:10;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6073:10:8;6144:20;;;;:13;:20;;;;;;6073:10;;-1:-1:-1;6144:20:8;;-1:-1:-1;6137:27:8;6144:20;;6137:27;:::i;:::-;-1:-1:-1;6137:27:8;;;;;;;;;;;;;;;;;;-1:-1:-1;;6137:27:8;;;;;;;;;;;-1:-1:-1;6241:272:8;6262:18;:25;:32;;6292:1;6262:32;:29;:32;:::i;:::-;6258:1;:36;6241:272;;;6348:5;-1:-1:-1;;;;;6323:30:8;:18;6342:1;6323:21;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6323:21:8;:30;6319:180;;;6401:18;6420:25;;:32;;6450:1;6420:32;:29;:32;:::i;:::-;6401:52;;;;;;;;;;;;;;;;;;6377:18;:21;;-1:-1:-1;;;;;6401:52:8;;;;6396:1;;6377:21;;;;;;;;;;;;;;:76;;;;;-1:-1:-1;;;;;6377:76:8;;;;;-1:-1:-1;;;;;6377:76:8;;;;;;6475:5;;6319:180;6296:3;;6241:272;;;6526:18;:27;;;;;-1:-1:-1;;6526:27:8;;;:::i;:::-;-1:-1:-1;6613:31:8;;;6626:10;6613:31;;-1:-1:-1;;;;;6613:31:8;;;;;;;;;;;;;;;;;;;5845:3;;;;;5808:847;;;5630:1031;;;;;:::o;3519:306:7:-;1924:20;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;3640:15;;;;;;;3632:57;;;;;;;-1:-1:-1;;;;;3632:57:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;3743:6;:19;;-1:-1:-1;;3743:19:7;;;3778:40;;;3760:1;3778:40;;;;;;;;;;;;;;;;;;;;3519:306::o;1468:91:6:-;1540:12;;-1:-1:-1;;;;;1540:12:6;1468:91;:::o;9741:89:8:-;9812:11;;9741:89;:::o;3908:77:7:-;3972:6;;-1:-1:-1;;;;;3972:6:7;3908:77;:::o;2231:801::-;1924:20;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;2388:15;;;;;;;2380:57;;;;;;;-1:-1:-1;;;;;2380:57:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2518:22:7;;;;2510:70;;;;;-1:-1:-1;;;;;2510:70:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2665:15;:31;;-1:-1:-1;;2665:31:7;;;;;;;;;;;;;;;2775:75;;2814:25;;;-1:-1:-1;;;;;2814:25:7;;;;;;;;;;;;;;;2775:75;2931:6;;2910:38;;;-1:-1:-1;;;;;2931:6:7;;;2910:38;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3008:6:7;:17;;-1:-1:-1;;3008:17:7;-1:-1:-1;;;;;3008:17:7;;;;;;;;;;2231:801::o;6938:514:8:-;2560:21;2584:24;2596:11;;2584;:24::i;:::-;2560:48;;2627:25;2641:10;2627:13;:25::i;:::-;:56;;;-1:-1:-1;2656:10:8;-1:-1:-1;;;;;2656:27:8;;;2627:56;2618:97;;;;;;;-1:-1:-1;;;;;2618:97:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7101:21:8;;;;;;:13;:21;;;;;:31;;;;;7093:66;;;;;;;-1:-1:-1;;;;;7093:66:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7205:21:8;;;;;;:13;:21;;;;;;;;;:26;;;:34;;;7302:32;;;:46;;;7402:43;;7419:10;7402:43;;;;;;;;;;;;;;;;;;;;;;;;;6938:514;;;;:::o;1629:97:4:-;1704:15;;1629:97;:::o;9538:89:8:-;9609:11;;-1:-1:-1;;;;;9609:11:8;9538:89;:::o;1796:158:4:-;1860:4;1895:28;1907:15;;1895:11;:28::i;:::-;-1:-1:-1;;;;;1883:54:4;;1938:8;1883:64;;;;;;;;;;;;;-1:-1:-1;;;;;1883:64:4;-1:-1:-1;;;;;1883:64:4;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1883:64:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1883:64:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1883:64:4;;1796:158;-1:-1:-1;;1796:158:4:o;4914:370:3:-;4971:16;;:::i;:::-;5122:4;5116:11;5162:4;5157:3;5153:14;5147:4;5140:28;5193:4;5188:3;5181:17;5234:3;5227:4;5222:3;5218:14;5211:27;5091:157;5268:9;5272:4;5268:3;:9::i;:::-;5257:20;;:3;4914:370;-1:-1:-1;4914:370:3:o;5778:265::-;5838:6;5863:17;5914:11;5894:4;:9;;;5883:21;;;;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;5883:21:3;;5863:41;;5965:2;5960:3;5956:12;5946:22;;5980:36;5987:6;5995:4;:9;;;6006:4;:9;;;5980:6;:36::i;:::-;-1:-1:-1;6033:3:3;5778:265;-1:-1:-1;;5778:265:3:o;2250:131:0:-;2308:7;;2331:6;;;;2323:15;;;;;;-1:-1:-1;;2356:5:0;;;2250:131::o;4091:107:7:-;4185:6;;-1:-1:-1;;;;;4185:6:7;;;4173:18;;;;4091:107::o;1748:152:6:-;1811:7;1852:4;;:24;;;;;;;;;;;;;;-1:-1:-1;;;;;1852:4:6;;;;:13;;:24;;;;;;;;;;;;;;;1811:7;1852:4;:24;;;5:2:-1;;;;30:1;27;20:12;5:2;1852:24:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1852:24:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1852:24:6;1837:56;;;;;;;;;;;;;;-1:-1:-1;;;;;1837:45:6;;;;;;:56;;;;;1852:24;;1837:56;;;;;;;;;:45;:56;;;5:2:-1;;;;30:1;27;20:12;3840:768:3;3890:4;;3928:9;;3924:35;;;3958:1;3951:8;;;;3924:35;3980:34;3973:41;;:46;3969:164;;;4042:2;4035:9;4086:35;4078:4;4073:48;;-1:-1:-1;3969:164:3;4153:18;4146:25;;:30;4142:131;;;4199:1;4192:8;4242:19;4234:4;4229:32;;-1:-1:-1;4142:131:3;4293:10;4286:17;;:22;4282:115;;;4331:1;4324:8;4374:11;4366:4;4361:24;;-1:-1:-1;4282:115:3;4417:6;4410:13;;:18;4406:107;;;4451:1;4444:8;4494:7;4486:4;4481:20;;-1:-1:-1;4406:107:3;4533:4;4526:11;;:16;4522:55;;;4565:1;4558:8;4522:55;4598:3;4593:2;:8;4586:15;;3840:768;;;;;:::o;2686:548::-;3012:9;2806:164;2819:2;2812:9;;2806:164;;2888:10;;2875:24;;2934:2;2926:10;;;;2950:9;;;;-1:-1:-1;;2823:9:3;;;;2806:164;;;-1:-1:-1;3097:10:3;;3152:11;;3032:2;:8;;;;3024:3;:17;-1:-1:-1;;3024:21:3;3109:9;;3093:26;;;3148:22;;3196:21;3183:35;;3064:164::o;1593:8239:8:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1593:8239:8;;;-1:-1:-1;1593:8239:8;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;1593:8239:8;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;"},"internals/tokenWhitelistable.sol:TokenWhitelistable":{"bin":"","bin-runtime":"","srcmap":"","srcmap-runtime":""},"mocks/tokenWhitelistableExporter.sol:TokenWhitelistableExporter":{"bin":"608060405234801561001057600080fd5b5060405160408061092783398101604052805160209091015160018054600160a060020a03938416600160a060020a031991821617918290556000805490911691909316179091556002556108bd8061006a6000396000f30060806040526004361061007f5763ffffffff60e060020a6000350416630cde34b0811461008457806317e73794146100b95780631f69565f146100da5780632ff0fcaa146101a55780633efec5e9146101c6578063443dd2a4146101db5780637d73b23114610240578063877337b014610271578063d545782e14610298575b600080fd5b34801561009057600080fd5b506100a5600160a060020a03600435166102c1565b604080519115158252519081900360200190f35b3480156100c557600080fd5b506100a5600160a060020a03600435166102d2565b3480156100e657600080fd5b506100fb600160a060020a03600435166102dd565b6040805160208082018990529181018790528515156060820152841515608082015283151560a082015260c0810183905260e08082528951908201528851909182916101008301918b019080838360005b8381101561016457818101518382015260200161014c565b50505050905090810190601f1680156101915780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b3480156101b157600080fd5b506100a5600160a060020a0360043516610308565b3480156101d257600080fd5b506100fb610313565b3480156101e757600080fd5b506101f061033c565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561022c578181015183820152602001610214565b505050509050019250505060405180910390f35b34801561024c57600080fd5b5061025561034b565b60408051600160a060020a039092168252519081900360200190f35b34801561027d57600080fd5b5061028661035a565b60408051918252519081900360200190f35b3480156102a457600080fd5b506102bf600160a060020a0360043516602435604435610360565b005b60006102cc82610370565b92915050565b60006102cc82610389565b60606000806000806000806102f1886103a3565b959e949d50929b5090995097509550909350915050565b60006102cc826104d5565b60606000806000806000806103266104ef565b959d949c50929a50909850965094509092509050565b60606103466105fc565b905090565b600154600160a060020a031690565b60025490565b61036b8383836106d6565b505050565b60008061037c836103a3565b5098975050505050505050565b600080610395836103a3565b509098975050505050505050565b60606000806000806000806103b9600254610768565b600160a060020a0316631f69565f896040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b15801561041357600080fd5b505af1158015610427573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260e081101561045057600080fd5b81019080805164010000000081111561046857600080fd5b8201602081018481111561047b57600080fd5b815164010000000081118282018710171561049557600080fd5b5050602082015160408301516060840151608085015160a086015160c090960151949e50929c50909a509850965090945092505050919395979092949650565b6000806104e1836103a3565b509198975050505050505050565b6060600080600080600080610505600254610768565b600160a060020a0316633efec5e96040518163ffffffff1660e060020a028152600401600060405180830381600087803b15801561054257600080fd5b505af1158015610556573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260e081101561057f57600080fd5b81019080805164010000000081111561059757600080fd5b820160208101848111156105aa57600080fd5b81516401000000008111828201871017156105c457600080fd5b5050602082015160408301516060840151608085015160a086015160c090960151949f939e50919c509a509850919650945092505050565b6060610609600254610768565b600160a060020a031663443dd2a46040518163ffffffff1660e060020a028152600401600060405180830381600087803b15801561064657600080fd5b505af115801561065a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561068357600080fd5b81019080805164010000000081111561069b57600080fd5b820160208101848111156106ae57600080fd5b81518560208202830111640100000000821117156106cb57600080fd5b509094505050505090565b6106e1600254610768565b600160a060020a031663d545782e8484846040518463ffffffff1660e060020a0281526004018084600160a060020a0316600160a060020a031681526020018381526020018281526020019350505050600060405180830381600087803b15801561074b57600080fd5b505af115801561075f573d6000803e3d6000fd5b50505050505050565b60008054604080517f0178b8bf000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691630178b8bf9160248082019260209290919082900301818787803b1580156107cf57600080fd5b505af11580156107e3573d6000803e3d6000fd5b505050506040513d60208110156107f957600080fd5b5051604080517f3b3b57de000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691633b3b57de916024808201926020929091908290030181600087803b15801561085f57600080fd5b505af1158015610873573d6000803e3d6000fd5b505050506040513d602081101561088957600080fd5b5051929150505600a165627a7a723058208a18600ae5d0d7811638873b67f7313459bd93d21a9d3593358def452be97a250029","bin-runtime":"60806040526004361061007f5763ffffffff60e060020a6000350416630cde34b0811461008457806317e73794146100b95780631f69565f146100da5780632ff0fcaa146101a55780633efec5e9146101c6578063443dd2a4146101db5780637d73b23114610240578063877337b014610271578063d545782e14610298575b600080fd5b34801561009057600080fd5b506100a5600160a060020a03600435166102c1565b604080519115158252519081900360200190f35b3480156100c557600080fd5b506100a5600160a060020a03600435166102d2565b3480156100e657600080fd5b506100fb600160a060020a03600435166102dd565b6040805160208082018990529181018790528515156060820152841515608082015283151560a082015260c0810183905260e08082528951908201528851909182916101008301918b019080838360005b8381101561016457818101518382015260200161014c565b50505050905090810190601f1680156101915780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b3480156101b157600080fd5b506100a5600160a060020a0360043516610308565b3480156101d257600080fd5b506100fb610313565b3480156101e757600080fd5b506101f061033c565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561022c578181015183820152602001610214565b505050509050019250505060405180910390f35b34801561024c57600080fd5b5061025561034b565b60408051600160a060020a039092168252519081900360200190f35b34801561027d57600080fd5b5061028661035a565b60408051918252519081900360200190f35b3480156102a457600080fd5b506102bf600160a060020a0360043516602435604435610360565b005b60006102cc82610370565b92915050565b60006102cc82610389565b60606000806000806000806102f1886103a3565b959e949d50929b5090995097509550909350915050565b60006102cc826104d5565b60606000806000806000806103266104ef565b959d949c50929a50909850965094509092509050565b60606103466105fc565b905090565b600154600160a060020a031690565b60025490565b61036b8383836106d6565b505050565b60008061037c836103a3565b5098975050505050505050565b600080610395836103a3565b509098975050505050505050565b60606000806000806000806103b9600254610768565b600160a060020a0316631f69565f896040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b15801561041357600080fd5b505af1158015610427573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260e081101561045057600080fd5b81019080805164010000000081111561046857600080fd5b8201602081018481111561047b57600080fd5b815164010000000081118282018710171561049557600080fd5b5050602082015160408301516060840151608085015160a086015160c090960151949e50929c50909a509850965090945092505050919395979092949650565b6000806104e1836103a3565b509198975050505050505050565b6060600080600080600080610505600254610768565b600160a060020a0316633efec5e96040518163ffffffff1660e060020a028152600401600060405180830381600087803b15801561054257600080fd5b505af1158015610556573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260e081101561057f57600080fd5b81019080805164010000000081111561059757600080fd5b820160208101848111156105aa57600080fd5b81516401000000008111828201871017156105c457600080fd5b5050602082015160408301516060840151608085015160a086015160c090960151949f939e50919c509a509850919650945092505050565b6060610609600254610768565b600160a060020a031663443dd2a46040518163ffffffff1660e060020a028152600401600060405180830381600087803b15801561064657600080fd5b505af115801561065a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561068357600080fd5b81019080805164010000000081111561069b57600080fd5b820160208101848111156106ae57600080fd5b81518560208202830111640100000000821117156106cb57600080fd5b509094505050505090565b6106e1600254610768565b600160a060020a031663d545782e8484846040518463ffffffff1660e060020a0281526004018084600160a060020a0316600160a060020a031681526020018381526020018281526020019350505050600060405180830381600087803b15801561074b57600080fd5b505af115801561075f573d6000803e3d6000fd5b50505050505050565b60008054604080517f0178b8bf000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691630178b8bf9160248082019260209290919082900301818787803b1580156107cf57600080fd5b505af11580156107e3573d6000803e3d6000fd5b505050506040513d60208110156107f957600080fd5b5051604080517f3b3b57de000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691633b3b57de916024808201926020929091908290030181600087803b15801561085f57600080fd5b505af1158015610873573d6000803e3d6000fd5b505050506040513d602081101561088957600080fd5b5051929150505600a165627a7a723058208a18600ae5d0d7811638873b67f7313459bd93d21a9d3593358def452be97a250029","srcmap":"114:1096:10:-;;;192:128;8:9:-1;5:2;;;30:1;27;20:12;5:2;192:128:10;;;;;;;;;;;;;;;;;;;1312:12:6;:23;;-1:-1:-1;;;;;1312:23:6;;;-1:-1:-1;;;;;;1312:23:6;;;;;;;;:12;1345:24;;;;;1356:12;;;;1345:24;;;;1366:19:9;:46;114:1096:10;;;;;;","srcmap-runtime":"114:1096:10:-;;;;;;;;;-1:-1:-1;;;114:1096:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1101:106;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1101:106:10;-1:-1:-1;;;;;1101:106:10;;;;;;;;;;;;;;;;;;;;;;;879;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;879:106:10;-1:-1:-1;;;;;879:106:10;;;;;324:147;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;324:147:10;-1:-1:-1;;;;;324:147:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-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;324:147:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;989:108;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;989:108:10;-1:-1:-1;;;;;989:108:10;;;;;475:145;;8:9:-1;5:2;;;30:1;27;20:12;5:2;475:145:10;;;;624:103;;8:9:-1;5:2;;;30:1;27;20:12;5:2;624:103:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;624:103:10;;;;;;;;;;;;;;;;;1468:91:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1468:91:6;;;;;;;;-1:-1:-1;;;;;1468:91:6;;;;;;;;;;;;;;1552:105:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1552:105:9;;;;;;;;;;;;;;;;;;;;731:144:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;731:144:10;-1:-1:-1;;;;;731:144:10;;;;;;;;;;;1101:106;1161:4;1182:20;1199:2;1182:16;:20::i;:::-;1175:27;1101:106;-1:-1:-1;;1101:106:10:o;879:::-;939:4;960:20;977:2;960:16;:20::i;324:147::-;381:6;389:7;398;407:4;413;419;425:7;449:17;463:2;449:13;:17::i;:::-;442:24;;;;-1:-1:-1;442:24:10;;-1:-1:-1;442:24:10;;-1:-1:-1;442:24:10;-1:-1:-1;442:24:10;-1:-1:-1;442:24:10;;-1:-1:-1;324:147:10;-1:-1:-1;;324:147:10:o;989:108::-;1050:4;1071:21;1089:2;1071:17;:21::i;475:145::-;527:6;535:7;544;553:4;559;565;571:7;595:20;:18;:20::i;:::-;588:27;;;;-1:-1:-1;588:27:10;;-1:-1:-1;588:27:10;;-1:-1:-1;588:27:10;-1:-1:-1;588:27:10;-1:-1:-1;588:27:10;;-1:-1:-1;475:145:10;-1:-1:-1;475:145:10:o;624:103::-;676:9;702:20;:18;:20::i;:::-;695:27;;624:103;:::o;1468:91:6:-;1540:12;;-1:-1:-1;;;;;1540:12:6;1468:91;:::o;1552:105:9:-;1631:19;;1552:105;:::o;731:144:10:-;826:44;843:6;851:5;858:11;826:16;:44::i;:::-;731:144;;;:::o;4194:157:9:-;4255:4;4283:13;4302:17;4316:2;4302:13;:17::i;:::-;-1:-1:-1;4271:48:9;4194:157;-1:-1:-1;;;;;;;;4194:157:9:o;4445:::-;4506:4;4532:13;4553:17;4567:2;4553:13;:17::i;:::-;-1:-1:-1;4522:48:9;;4445:157;-1:-1:-1;;;;;;;;4445:157:9:o;2198:201::-;2256:6;2264:7;2273;2282:4;2288;2294;2300:7;2342:32;2354:19;;2342:11;:32::i;:::-;-1:-1:-1;;;;;2326:62:9;;2389:2;2326:66;;;;;-1:-1:-1;;;2326:66:9;;;;;;;-1:-1:-1;;;;;2326:66:9;-1:-1:-1;;;;;2326:66:9;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2326:66:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2326:66:9;;;;;;39:16:-1;36:1;17:17;2:54;101:4;2326:66:9;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:3;5:12;;2:2;;;30:1;27;20:12;2:2;2326:66:9;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;218:10;;268:11;251:29;;293:43;;;290:58;-1:-1;239:118;236:2;;;370:1;367;360:12;236:2;-1:-1;;2326:66:9;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2326:66:9;;-1:-1:-1;2326:66:9;;-1:-1:-1;2326:66:9;-1:-1:-1;2326:66:9;-1:-1:-1;2326:66:9;;-1:-1:-1;2326:66:9;-1:-1:-1;;;2198:201:9;;;;;;;;;:::o;3940:160::-;4002:4;4026:14;4050:17;4064:2;4050:13;:17::i;:::-;-1:-1:-1;4018:49:9;;3940:160;-1:-1:-1;;;;;;;;3940:160:9:o;2897:199::-;2950:6;2958:7;2967;2976:4;2982;2988;2994:7;3036:32;3048:19;;3036:11;:32::i;:::-;-1:-1:-1;;;;;3020:67:9;;:69;;;;;-1:-1:-1;;;3020:69:9;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3020:69:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3020:69:9;;;;;;39:16:-1;36:1;17:17;2:54;101:4;3020:69:9;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:3;5:12;;2:2;;;30:1;27;20:12;2:2;3020:69:9;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;218:10;;268:11;251:29;;293:43;;;290:58;-1:-1;239:118;236:2;;;370:1;367;360:12;236:2;-1:-1;;3020:69:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3020:69:9;;-1:-1:-1;3020:69:9;-1:-1:-1;3020:69:9;-1:-1:-1;3020:69:9;;-1:-1:-1;3020:69:9;-1:-1:-1;2897:199:9;-1:-1:-1;;;2897:199:9:o;3219:157::-;3272:9;3316:32;3328:19;;3316:11;:32::i;:::-;-1:-1:-1;;;;;3300:67:9;;:69;;;;;-1:-1:-1;;;3300:69:9;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3300:69:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3300:69:9;;;;;;39:16:-1;36:1;17:17;2:54;101:4;3300:69:9;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;3300:69:9;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;224:3;218:10;339:9;333:2;319:12;315:21;297:16;293:44;290:59;268:11;254:12;251:29;239:119;236:2;;;371:1;368;361:12;236:2;-1:-1;3300:69:9;;-1:-1:-1;;;;;3219:157:9;:::o;3653:191::-;3760:32;3772:19;;3760:11;:32::i;:::-;-1:-1:-1;;;;;3744:65:9;;3810:6;3818:5;3825:11;3744:93;;;;;-1:-1:-1;;;3744:93:9;;;;;;;-1:-1:-1;;;;;3744:93:9;-1:-1:-1;;;;;3744:93:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3744:93:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3744:93:9;;;;3653:191;;;:::o;1748:152:6:-;1811:7;1852:4;;:24;;;;;;;;;;;;;;-1:-1:-1;;;;;1852:4:6;;;;:13;;:24;;;;;;;;;;;;;;;1811:7;1852:4;:24;;;5:2:-1;;;;30:1;27;20:12;5:2;1852:24:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1852:24:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1852:24:6;1837:56;;;;;;;;;;;;;;-1:-1:-1;;;;;1837:45:6;;;;;;:56;;;;;1852:24;;1837:56;;;;;;;;;:45;:56;;;5:2:-1;;;;30:1;27;20:12;5:2;1837:56:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1837:56:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1837:56:6;;1748:152;-1:-1:-1;;1748:152:6:o"}},"sourceList":["externals/SafeMath.sol","externals/ens/ENS.sol","externals/ens/PublicResolver.sol","externals/strings.sol","internals/controllable.sol","internals/controller.sol","internals/ensResolvable.sol","internals/ownable.sol","internals/tokenWhitelist.sol","internals/tokenWhitelistable.sol","mocks/tokenWhitelistableExporter.sol"],"sources":{"externals/SafeMath.sol":{"AST":{"attributes":{"absolutePath":"externals/SafeMath.sol","exportedSymbols":{"SafeMath":[1632]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".24"]},"id":1506,"name":"PragmaDirective","src":"1172:24:0"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"library","documentation":"@title SafeMath\n@dev Math operations with safety checks that revert on error","fullyImplemented":true,"linearizedBaseContracts":[1632],"name":"SafeMath","scope":1633},"children":[{"attributes":{"constant":true,"documentation":"@dev Multiplies two numbers, reverts on overflow.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"mul","payable":false,"scope":1632,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"a","scope":1539,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1507,"name":"ElementaryTypeName","src":"1389:7:0"}],"id":1508,"name":"VariableDeclaration","src":"1389:9:0"},{"attributes":{"constant":false,"name":"b","scope":1539,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1509,"name":"ElementaryTypeName","src":"1400:7:0"}],"id":1510,"name":"VariableDeclaration","src":"1400:9:0"}],"id":1511,"name":"ParameterList","src":"1388:22:0"},{"children":[{"attributes":{"constant":false,"name":"","scope":1539,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1512,"name":"ElementaryTypeName","src":"1434:7:0"}],"id":1513,"name":"VariableDeclaration","src":"1434:7:0"}],"id":1514,"name":"ParameterList","src":"1433:9:0"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1508,"type":"uint256","value":"a"},"id":1515,"name":"Identifier","src":"1658:1:0"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1516,"name":"Literal","src":"1663:1:0"}],"id":1517,"name":"BinaryOperation","src":"1658:6:0"},{"children":[{"attributes":{"functionReturnParameters":1514},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1518,"name":"Literal","src":"1681:1:0"}],"id":1519,"name":"Return","src":"1674:8:0"}],"id":1520,"name":"Block","src":"1666:23:0"}],"id":1521,"name":"IfStatement","src":"1654:35:0"},{"attributes":{"assignments":[1523]},"children":[{"attributes":{"constant":false,"name":"c","scope":1539,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1522,"name":"ElementaryTypeName","src":"1695:7:0"}],"id":1523,"name":"VariableDeclaration","src":"1695:9:0"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1508,"type":"uint256","value":"a"},"id":1524,"name":"Identifier","src":"1707:1:0"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1510,"type":"uint256","value":"b"},"id":1525,"name":"Identifier","src":"1711:1:0"}],"id":1526,"name":"BinaryOperation","src":"1707:5:0"}],"id":1527,"name":"VariableDeclarationStatement","src":"1695:17:0"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"overloadedDeclarations":[3898,3899],"referencedDeclaration":3898,"type":"function (bool) pure","value":"require"},"id":1528,"name":"Identifier","src":"1718:7:0"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"/","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1523,"type":"uint256","value":"c"},"id":1529,"name":"Identifier","src":"1726:1:0"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1508,"type":"uint256","value":"a"},"id":1530,"name":"Identifier","src":"1730:1:0"}],"id":1531,"name":"BinaryOperation","src":"1726:5:0"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1510,"type":"uint256","value":"b"},"id":1532,"name":"Identifier","src":"1735:1:0"}],"id":1533,"name":"BinaryOperation","src":"1726:10:0"}],"id":1534,"name":"FunctionCall","src":"1718:19:0"}],"id":1535,"name":"ExpressionStatement","src":"1718:19:0"},{"attributes":{"functionReturnParameters":1514},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1523,"type":"uint256","value":"c"},"id":1536,"name":"Identifier","src":"1751:1:0"}],"id":1537,"name":"Return","src":"1744:8:0"}],"id":1538,"name":"Block","src":"1443:314:0"}],"id":1539,"name":"FunctionDefinition","src":"1376:381:0"},{"attributes":{"constant":true,"documentation":"@dev Integer division of two numbers truncating the quotient, reverts on division by zero.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"div","payable":false,"scope":1632,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"a","scope":1563,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1540,"name":"ElementaryTypeName","src":"1880:7:0"}],"id":1541,"name":"VariableDeclaration","src":"1880:9:0"},{"attributes":{"constant":false,"name":"b","scope":1563,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1542,"name":"ElementaryTypeName","src":"1891:7:0"}],"id":1543,"name":"VariableDeclaration","src":"1891:9:0"}],"id":1544,"name":"ParameterList","src":"1879:22:0"},{"children":[{"attributes":{"constant":false,"name":"","scope":1563,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1545,"name":"ElementaryTypeName","src":"1925:7:0"}],"id":1546,"name":"VariableDeclaration","src":"1925:7:0"}],"id":1547,"name":"ParameterList","src":"1924:9:0"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"overloadedDeclarations":[3898,3899],"referencedDeclaration":3898,"type":"function (bool) pure","value":"require"},"id":1548,"name":"Identifier","src":"1940:7:0"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1543,"type":"uint256","value":"b"},"id":1549,"name":"Identifier","src":"1948:1:0"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1550,"name":"Literal","src":"1952:1:0"}],"id":1551,"name":"BinaryOperation","src":"1948:5:0"}],"id":1552,"name":"FunctionCall","src":"1940:14:0"}],"id":1553,"name":"ExpressionStatement","src":"1940:14:0"},{"attributes":{"assignments":[1555]},"children":[{"attributes":{"constant":false,"name":"c","scope":1563,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1554,"name":"ElementaryTypeName","src":"2018:7:0"}],"id":1555,"name":"VariableDeclaration","src":"2018:9:0"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"/","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1541,"type":"uint256","value":"a"},"id":1556,"name":"Identifier","src":"2030:1:0"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1543,"type":"uint256","value":"b"},"id":1557,"name":"Identifier","src":"2034:1:0"}],"id":1558,"name":"BinaryOperation","src":"2030:5:0"}],"id":1559,"name":"VariableDeclarationStatement","src":"2018:17:0"},{"attributes":{"functionReturnParameters":1547},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1555,"type":"uint256","value":"c"},"id":1560,"name":"Identifier","src":"2131:1:0"}],"id":1561,"name":"Return","src":"2124:8:0"}],"id":1562,"name":"Block","src":"1934:203:0"}],"id":1563,"name":"FunctionDefinition","src":"1867:270:0"},{"attributes":{"constant":true,"documentation":"@dev Subtracts two numbers, reverts on overflow (i.e. if subtrahend is greater than minuend).","implemented":true,"isConstructor":false,"modifiers":[null],"name":"sub","payable":false,"scope":1632,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"a","scope":1587,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1564,"name":"ElementaryTypeName","src":"2263:7:0"}],"id":1565,"name":"VariableDeclaration","src":"2263:9:0"},{"attributes":{"constant":false,"name":"b","scope":1587,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1566,"name":"ElementaryTypeName","src":"2274:7:0"}],"id":1567,"name":"VariableDeclaration","src":"2274:9:0"}],"id":1568,"name":"ParameterList","src":"2262:22:0"},{"children":[{"attributes":{"constant":false,"name":"","scope":1587,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1569,"name":"ElementaryTypeName","src":"2308:7:0"}],"id":1570,"name":"VariableDeclaration","src":"2308:7:0"}],"id":1571,"name":"ParameterList","src":"2307:9:0"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"overloadedDeclarations":[3898,3899],"referencedDeclaration":3898,"type":"function (bool) pure","value":"require"},"id":1572,"name":"Identifier","src":"2323:7:0"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1567,"type":"uint256","value":"b"},"id":1573,"name":"Identifier","src":"2331:1:0"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1565,"type":"uint256","value":"a"},"id":1574,"name":"Identifier","src":"2336:1:0"}],"id":1575,"name":"BinaryOperation","src":"2331:6:0"}],"id":1576,"name":"FunctionCall","src":"2323:15:0"}],"id":1577,"name":"ExpressionStatement","src":"2323:15:0"},{"attributes":{"assignments":[1579]},"children":[{"attributes":{"constant":false,"name":"c","scope":1587,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1578,"name":"ElementaryTypeName","src":"2344:7:0"}],"id":1579,"name":"VariableDeclaration","src":"2344:9:0"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1565,"type":"uint256","value":"a"},"id":1580,"name":"Identifier","src":"2356:1:0"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1567,"type":"uint256","value":"b"},"id":1581,"name":"Identifier","src":"2360:1:0"}],"id":1582,"name":"BinaryOperation","src":"2356:5:0"}],"id":1583,"name":"VariableDeclarationStatement","src":"2344:17:0"},{"attributes":{"functionReturnParameters":1571},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1579,"type":"uint256","value":"c"},"id":1584,"name":"Identifier","src":"2375:1:0"}],"id":1585,"name":"Return","src":"2368:8:0"}],"id":1586,"name":"Block","src":"2317:64:0"}],"id":1587,"name":"FunctionDefinition","src":"2250:131:0"},{"attributes":{"constant":true,"documentation":"@dev Adds two numbers, reverts on overflow.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"add","payable":false,"scope":1632,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"a","scope":1611,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1588,"name":"ElementaryTypeName","src":"2457:7:0"}],"id":1589,"name":"VariableDeclaration","src":"2457:9:0"},{"attributes":{"constant":false,"name":"b","scope":1611,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1590,"name":"ElementaryTypeName","src":"2468:7:0"}],"id":1591,"name":"VariableDeclaration","src":"2468:9:0"}],"id":1592,"name":"ParameterList","src":"2456:22:0"},{"children":[{"attributes":{"constant":false,"name":"","scope":1611,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1593,"name":"ElementaryTypeName","src":"2502:7:0"}],"id":1594,"name":"VariableDeclaration","src":"2502:7:0"}],"id":1595,"name":"ParameterList","src":"2501:9:0"},{"children":[{"attributes":{"assignments":[1597]},"children":[{"attributes":{"constant":false,"name":"c","scope":1611,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1596,"name":"ElementaryTypeName","src":"2517:7:0"}],"id":1597,"name":"VariableDeclaration","src":"2517:9:0"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1589,"type":"uint256","value":"a"},"id":1598,"name":"Identifier","src":"2529:1:0"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1591,"type":"uint256","value":"b"},"id":1599,"name":"Identifier","src":"2533:1:0"}],"id":1600,"name":"BinaryOperation","src":"2529:5:0"}],"id":1601,"name":"VariableDeclarationStatement","src":"2517:17:0"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"overloadedDeclarations":[3898,3899],"referencedDeclaration":3898,"type":"function (bool) pure","value":"require"},"id":1602,"name":"Identifier","src":"2540:7:0"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1597,"type":"uint256","value":"c"},"id":1603,"name":"Identifier","src":"2548:1:0"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1589,"type":"uint256","value":"a"},"id":1604,"name":"Identifier","src":"2553:1:0"}],"id":1605,"name":"BinaryOperation","src":"2548:6:0"}],"id":1606,"name":"FunctionCall","src":"2540:15:0"}],"id":1607,"name":"ExpressionStatement","src":"2540:15:0"},{"attributes":{"functionReturnParameters":1595},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1597,"type":"uint256","value":"c"},"id":1608,"name":"Identifier","src":"2569:1:0"}],"id":1609,"name":"Return","src":"2562:8:0"}],"id":1610,"name":"Block","src":"2511:64:0"}],"id":1611,"name":"FunctionDefinition","src":"2444:131:0"},{"attributes":{"constant":true,"documentation":"@dev Divides two numbers and returns the remainder (unsigned integer modulo),\nreverts when dividing by zero.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"mod","payable":false,"scope":1632,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"a","scope":1631,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1612,"name":"ElementaryTypeName","src":"2720:7:0"}],"id":1613,"name":"VariableDeclaration","src":"2720:9:0"},{"attributes":{"constant":false,"name":"b","scope":1631,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1614,"name":"ElementaryTypeName","src":"2731:7:0"}],"id":1615,"name":"VariableDeclaration","src":"2731:9:0"}],"id":1616,"name":"ParameterList","src":"2719:22:0"},{"children":[{"attributes":{"constant":false,"name":"","scope":1631,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1617,"name":"ElementaryTypeName","src":"2765:7:0"}],"id":1618,"name":"VariableDeclaration","src":"2765:7:0"}],"id":1619,"name":"ParameterList","src":"2764:9:0"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"overloadedDeclarations":[3898,3899],"referencedDeclaration":3898,"type":"function (bool) pure","value":"require"},"id":1620,"name":"Identifier","src":"2780:7:0"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1615,"type":"uint256","value":"b"},"id":1621,"name":"Identifier","src":"2788:1:0"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1622,"name":"Literal","src":"2793:1:0"}],"id":1623,"name":"BinaryOperation","src":"2788:6:0"}],"id":1624,"name":"FunctionCall","src":"2780:15:0"}],"id":1625,"name":"ExpressionStatement","src":"2780:15:0"},{"attributes":{"functionReturnParameters":1619},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"%","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1613,"type":"uint256","value":"a"},"id":1626,"name":"Identifier","src":"2808:1:0"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1615,"type":"uint256","value":"b"},"id":1627,"name":"Identifier","src":"2812:1:0"}],"id":1628,"name":"BinaryOperation","src":"2808:5:0"}],"id":1629,"name":"Return","src":"2801:12:0"}],"id":1630,"name":"Block","src":"2774:44:0"}],"id":1631,"name":"FunctionDefinition","src":"2707:111:0"}],"id":1632,"name":"ContractDefinition","src":"1289:1531:0"}],"id":1633,"name":"SourceUnit","src":"1172:1649:0"}},"externals/ens/ENS.sol":{"AST":{"attributes":{"absolutePath":"externals/ens/ENS.sol","exportedSymbols":{"ENS":[440]}},"children":[{"attributes":{"literals":["solidity",">=","0.4",".24"]},"id":362,"name":"PragmaDirective","src":"1400:25:1"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"interface","documentation":null,"fullyImplemented":false,"linearizedBaseContracts":[440],"name":"ENS","scope":441},"children":[{"attributes":{"anonymous":false,"documentation":null,"name":"NewOwner"},"children":[{"children":[{"attributes":{"constant":false,"indexed":true,"name":"node","scope":370,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":363,"name":"ElementaryTypeName","src":"1536:7:1"}],"id":364,"name":"VariableDeclaration","src":"1536:20:1"},{"attributes":{"constant":false,"indexed":true,"name":"label","scope":370,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":365,"name":"ElementaryTypeName","src":"1558:7:1"}],"id":366,"name":"VariableDeclaration","src":"1558:21:1"},{"attributes":{"constant":false,"indexed":false,"name":"owner","scope":370,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":367,"name":"ElementaryTypeName","src":"1581:7:1"}],"id":368,"name":"VariableDeclaration","src":"1581:13:1"}],"id":369,"name":"ParameterList","src":"1535:60:1"}],"id":370,"name":"EventDefinition","src":"1521:75:1"},{"attributes":{"anonymous":false,"documentation":null,"name":"Transfer"},"children":[{"children":[{"attributes":{"constant":false,"indexed":true,"name":"node","scope":376,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":371,"name":"ElementaryTypeName","src":"1694:7:1"}],"id":372,"name":"VariableDeclaration","src":"1694:20:1"},{"attributes":{"constant":false,"indexed":false,"name":"owner","scope":376,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":373,"name":"ElementaryTypeName","src":"1716:7:1"}],"id":374,"name":"VariableDeclaration","src":"1716:13:1"}],"id":375,"name":"ParameterList","src":"1693:37:1"}],"id":376,"name":"EventDefinition","src":"1679:52:1"},{"attributes":{"anonymous":false,"documentation":null,"name":"NewResolver"},"children":[{"children":[{"attributes":{"constant":false,"indexed":true,"name":"node","scope":382,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":377,"name":"ElementaryTypeName","src":"1807:7:1"}],"id":378,"name":"VariableDeclaration","src":"1807:20:1"},{"attributes":{"constant":false,"indexed":false,"name":"resolver","scope":382,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":379,"name":"ElementaryTypeName","src":"1829:7:1"}],"id":380,"name":"VariableDeclaration","src":"1829:16:1"}],"id":381,"name":"ParameterList","src":"1806:40:1"}],"id":382,"name":"EventDefinition","src":"1789:58:1"},{"attributes":{"anonymous":false,"documentation":null,"name":"NewTTL"},"children":[{"children":[{"attributes":{"constant":false,"indexed":true,"name":"node","scope":388,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":383,"name":"ElementaryTypeName","src":"1911:7:1"}],"id":384,"name":"VariableDeclaration","src":"1911:20:1"},{"attributes":{"constant":false,"indexed":false,"name":"ttl","scope":388,"stateVariable":false,"storageLocation":"default","type":"uint64","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint64","type":"uint64"},"id":385,"name":"ElementaryTypeName","src":"1933:6:1"}],"id":386,"name":"VariableDeclaration","src":"1933:10:1"}],"id":387,"name":"ParameterList","src":"1910:34:1"}],"id":388,"name":"EventDefinition","src":"1898:47:1"},{"attributes":{"body":null,"constant":false,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"setSubnodeOwner","payable":false,"scope":440,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":397,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":389,"name":"ElementaryTypeName","src":"1977:7:1"}],"id":390,"name":"VariableDeclaration","src":"1977:12:1"},{"attributes":{"constant":false,"name":"label","scope":397,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":391,"name":"ElementaryTypeName","src":"1991:7:1"}],"id":392,"name":"VariableDeclaration","src":"1991:13:1"},{"attributes":{"constant":false,"name":"owner","scope":397,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":393,"name":"ElementaryTypeName","src":"2006:7:1"}],"id":394,"name":"VariableDeclaration","src":"2006:13:1"}],"id":395,"name":"ParameterList","src":"1976:44:1"},{"attributes":{"parameters":[null]},"children":[],"id":396,"name":"ParameterList","src":"2029:0:1"}],"id":397,"name":"FunctionDefinition","src":"1952:78:1"},{"attributes":{"body":null,"constant":false,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"setResolver","payable":false,"scope":440,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":404,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":398,"name":"ElementaryTypeName","src":"2056:7:1"}],"id":399,"name":"VariableDeclaration","src":"2056:12:1"},{"attributes":{"constant":false,"name":"resolver","scope":404,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":400,"name":"ElementaryTypeName","src":"2070:7:1"}],"id":401,"name":"VariableDeclaration","src":"2070:16:1"}],"id":402,"name":"ParameterList","src":"2055:32:1"},{"attributes":{"parameters":[null]},"children":[],"id":403,"name":"ParameterList","src":"2096:0:1"}],"id":404,"name":"FunctionDefinition","src":"2035:62:1"},{"attributes":{"body":null,"constant":false,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"setOwner","payable":false,"scope":440,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":411,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":405,"name":"ElementaryTypeName","src":"2120:7:1"}],"id":406,"name":"VariableDeclaration","src":"2120:12:1"},{"attributes":{"constant":false,"name":"owner","scope":411,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":407,"name":"ElementaryTypeName","src":"2134:7:1"}],"id":408,"name":"VariableDeclaration","src":"2134:13:1"}],"id":409,"name":"ParameterList","src":"2119:29:1"},{"attributes":{"parameters":[null]},"children":[],"id":410,"name":"ParameterList","src":"2157:0:1"}],"id":411,"name":"FunctionDefinition","src":"2102:56:1"},{"attributes":{"body":null,"constant":false,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"setTTL","payable":false,"scope":440,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":418,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":412,"name":"ElementaryTypeName","src":"2179:7:1"}],"id":413,"name":"VariableDeclaration","src":"2179:12:1"},{"attributes":{"constant":false,"name":"ttl","scope":418,"stateVariable":false,"storageLocation":"default","type":"uint64","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint64","type":"uint64"},"id":414,"name":"ElementaryTypeName","src":"2193:6:1"}],"id":415,"name":"VariableDeclaration","src":"2193:10:1"}],"id":416,"name":"ParameterList","src":"2178:26:1"},{"attributes":{"parameters":[null]},"children":[],"id":417,"name":"ParameterList","src":"2213:0:1"}],"id":418,"name":"FunctionDefinition","src":"2163:51:1"},{"attributes":{"body":null,"constant":true,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"owner","payable":false,"scope":440,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":425,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":419,"name":"ElementaryTypeName","src":"2234:7:1"}],"id":420,"name":"VariableDeclaration","src":"2234:12:1"}],"id":421,"name":"ParameterList","src":"2233:14:1"},{"children":[{"attributes":{"constant":false,"name":"","scope":425,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":422,"name":"ElementaryTypeName","src":"2271:7:1"}],"id":423,"name":"VariableDeclaration","src":"2271:7:1"}],"id":424,"name":"ParameterList","src":"2270:9:1"}],"id":425,"name":"FunctionDefinition","src":"2219:61:1"},{"attributes":{"body":null,"constant":true,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"resolver","payable":false,"scope":440,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":432,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":426,"name":"ElementaryTypeName","src":"2303:7:1"}],"id":427,"name":"VariableDeclaration","src":"2303:12:1"}],"id":428,"name":"ParameterList","src":"2302:14:1"},{"children":[{"attributes":{"constant":false,"name":"","scope":432,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":429,"name":"ElementaryTypeName","src":"2340:7:1"}],"id":430,"name":"VariableDeclaration","src":"2340:7:1"}],"id":431,"name":"ParameterList","src":"2339:9:1"}],"id":432,"name":"FunctionDefinition","src":"2285:64:1"},{"attributes":{"body":null,"constant":true,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"ttl","payable":false,"scope":440,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":439,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":433,"name":"ElementaryTypeName","src":"2367:7:1"}],"id":434,"name":"VariableDeclaration","src":"2367:12:1"}],"id":435,"name":"ParameterList","src":"2366:14:1"},{"children":[{"attributes":{"constant":false,"name":"","scope":439,"stateVariable":false,"storageLocation":"default","type":"uint64","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint64","type":"uint64"},"id":436,"name":"ElementaryTypeName","src":"2404:6:1"}],"id":437,"name":"VariableDeclaration","src":"2404:6:1"}],"id":438,"name":"ParameterList","src":"2403:8:1"}],"id":439,"name":"FunctionDefinition","src":"2354:58:1"}],"id":440,"name":"ContractDefinition","src":"1427:988:1"}],"id":441,"name":"SourceUnit","src":"1400:1017:1"}},"externals/ens/PublicResolver.sol":{"AST":{"attributes":{"absolutePath":"externals/ens/PublicResolver.sol","exportedSymbols":{"PublicResolver":[948]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".24"]},"id":442,"name":"PragmaDirective","src":"1406:24:2"},{"attributes":{"SourceUnit":441,"absolutePath":"externals/ens/ENS.sol","file":"./ENS.sol","scope":949,"symbolAliases":[null],"unitAlias":""},"id":443,"name":"ImportDirective","src":"1432:19:2"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"contract","documentation":"A simple resolver anyone can use; only allows the owner of a node to set its\naddress.","fullyImplemented":true,"linearizedBaseContracts":[948],"name":"PublicResolver","scope":949},"children":[{"attributes":{"constant":true,"name":"INTERFACE_META_ID","scope":948,"stateVariable":true,"storageLocation":"default","type":"bytes4","visibility":"internal"},"children":[{"attributes":{"name":"bytes4","type":"bytes4"},"id":444,"name":"ElementaryTypeName","src":"1584:6:2"},{"attributes":{"argumentTypes":null,"hexvalue":"30783031666663396137","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 33540519","value":"0x01ffc9a7"},"id":445,"name":"Literal","src":"1620:10:2"}],"id":446,"name":"VariableDeclaration","src":"1584:46:2"},{"attributes":{"constant":true,"name":"ADDR_INTERFACE_ID","scope":948,"stateVariable":true,"storageLocation":"default","type":"bytes4","visibility":"internal"},"children":[{"attributes":{"name":"bytes4","type":"bytes4"},"id":447,"name":"ElementaryTypeName","src":"1636:6:2"},{"attributes":{"argumentTypes":null,"hexvalue":"30783362336235376465","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 993744862","value":"0x3b3b57de"},"id":448,"name":"Literal","src":"1672:10:2"}],"id":449,"name":"VariableDeclaration","src":"1636:46:2"},{"attributes":{"constant":true,"name":"CONTENT_INTERFACE_ID","scope":948,"stateVariable":true,"storageLocation":"default","type":"bytes4","visibility":"internal"},"children":[{"attributes":{"name":"bytes4","type":"bytes4"},"id":450,"name":"ElementaryTypeName","src":"1688:6:2"},{"attributes":{"argumentTypes":null,"hexvalue":"30786438333839646335","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3627589061","value":"0xd8389dc5"},"id":451,"name":"Literal","src":"1727:10:2"}],"id":452,"name":"VariableDeclaration","src":"1688:49:2"},{"attributes":{"constant":true,"name":"NAME_INTERFACE_ID","scope":948,"stateVariable":true,"storageLocation":"default","type":"bytes4","visibility":"internal"},"children":[{"attributes":{"name":"bytes4","type":"bytes4"},"id":453,"name":"ElementaryTypeName","src":"1743:6:2"},{"attributes":{"argumentTypes":null,"hexvalue":"30783639316633343331","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1763652657","value":"0x691f3431"},"id":454,"name":"Literal","src":"1779:10:2"}],"id":455,"name":"VariableDeclaration","src":"1743:46:2"},{"attributes":{"constant":true,"name":"ABI_INTERFACE_ID","scope":948,"stateVariable":true,"storageLocation":"default","type":"bytes4","visibility":"internal"},"children":[{"attributes":{"name":"bytes4","type":"bytes4"},"id":456,"name":"ElementaryTypeName","src":"1795:6:2"},{"attributes":{"argumentTypes":null,"hexvalue":"30783232303361623536","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 570665814","value":"0x2203ab56"},"id":457,"name":"Literal","src":"1830:10:2"}],"id":458,"name":"VariableDeclaration","src":"1795:45:2"},{"attributes":{"constant":true,"name":"PUBKEY_INTERFACE_ID","scope":948,"stateVariable":true,"storageLocation":"default","type":"bytes4","visibility":"internal"},"children":[{"attributes":{"name":"bytes4","type":"bytes4"},"id":459,"name":"ElementaryTypeName","src":"1846:6:2"},{"attributes":{"argumentTypes":null,"hexvalue":"30786338363930323333","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3362325043","value":"0xc8690233"},"id":460,"name":"Literal","src":"1884:10:2"}],"id":461,"name":"VariableDeclaration","src":"1846:48:2"},{"attributes":{"constant":true,"name":"TEXT_INTERFACE_ID","scope":948,"stateVariable":true,"storageLocation":"default","type":"bytes4","visibility":"internal"},"children":[{"attributes":{"name":"bytes4","type":"bytes4"},"id":462,"name":"ElementaryTypeName","src":"1900:6:2"},{"attributes":{"argumentTypes":null,"hexvalue":"30783539643164343363","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1506923580","value":"0x59d1d43c"},"id":463,"name":"Literal","src":"1936:10:2"}],"id":464,"name":"VariableDeclaration","src":"1900:46:2"},{"attributes":{"constant":true,"name":"MULTIHASH_INTERFACE_ID","scope":948,"stateVariable":true,"storageLocation":"default","type":"bytes4","visibility":"internal"},"children":[{"attributes":{"name":"bytes4","type":"bytes4"},"id":465,"name":"ElementaryTypeName","src":"1952:6:2"},{"attributes":{"argumentTypes":null,"hexvalue":"30786538393430316131","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3902013857","value":"0xe89401a1"},"id":466,"name":"Literal","src":"1993:10:2"}],"id":467,"name":"VariableDeclaration","src":"1952:51:2"},{"attributes":{"anonymous":false,"documentation":null,"name":"AddrChanged"},"children":[{"children":[{"attributes":{"constant":false,"indexed":true,"name":"node","scope":473,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":468,"name":"ElementaryTypeName","src":"2028:7:2"}],"id":469,"name":"VariableDeclaration","src":"2028:20:2"},{"attributes":{"constant":false,"indexed":false,"name":"a","scope":473,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":470,"name":"ElementaryTypeName","src":"2050:7:2"}],"id":471,"name":"VariableDeclaration","src":"2050:9:2"}],"id":472,"name":"ParameterList","src":"2027:33:2"}],"id":473,"name":"EventDefinition","src":"2010:51:2"},{"attributes":{"anonymous":false,"documentation":null,"name":"ContentChanged"},"children":[{"children":[{"attributes":{"constant":false,"indexed":true,"name":"node","scope":479,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":474,"name":"ElementaryTypeName","src":"2087:7:2"}],"id":475,"name":"VariableDeclaration","src":"2087:20:2"},{"attributes":{"constant":false,"indexed":false,"name":"hash","scope":479,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":476,"name":"ElementaryTypeName","src":"2109:7:2"}],"id":477,"name":"VariableDeclaration","src":"2109:12:2"}],"id":478,"name":"ParameterList","src":"2086:36:2"}],"id":479,"name":"EventDefinition","src":"2066:57:2"},{"attributes":{"anonymous":false,"documentation":null,"name":"NameChanged"},"children":[{"children":[{"attributes":{"constant":false,"indexed":true,"name":"node","scope":485,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":480,"name":"ElementaryTypeName","src":"2146:7:2"}],"id":481,"name":"VariableDeclaration","src":"2146:20:2"},{"attributes":{"constant":false,"indexed":false,"name":"name","scope":485,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":482,"name":"ElementaryTypeName","src":"2168:6:2"}],"id":483,"name":"VariableDeclaration","src":"2168:11:2"}],"id":484,"name":"ParameterList","src":"2145:35:2"}],"id":485,"name":"EventDefinition","src":"2128:53:2"},{"attributes":{"anonymous":false,"documentation":null,"name":"ABIChanged"},"children":[{"children":[{"attributes":{"constant":false,"indexed":true,"name":"node","scope":491,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":486,"name":"ElementaryTypeName","src":"2203:7:2"}],"id":487,"name":"VariableDeclaration","src":"2203:20:2"},{"attributes":{"constant":false,"indexed":true,"name":"contentType","scope":491,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":488,"name":"ElementaryTypeName","src":"2225:7:2"}],"id":489,"name":"VariableDeclaration","src":"2225:27:2"}],"id":490,"name":"ParameterList","src":"2202:51:2"}],"id":491,"name":"EventDefinition","src":"2186:68:2"},{"attributes":{"anonymous":false,"documentation":null,"name":"PubkeyChanged"},"children":[{"children":[{"attributes":{"constant":false,"indexed":true,"name":"node","scope":499,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":492,"name":"ElementaryTypeName","src":"2279:7:2"}],"id":493,"name":"VariableDeclaration","src":"2279:20:2"},{"attributes":{"constant":false,"indexed":false,"name":"x","scope":499,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":494,"name":"ElementaryTypeName","src":"2301:7:2"}],"id":495,"name":"VariableDeclaration","src":"2301:9:2"},{"attributes":{"constant":false,"indexed":false,"name":"y","scope":499,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":496,"name":"ElementaryTypeName","src":"2312:7:2"}],"id":497,"name":"VariableDeclaration","src":"2312:9:2"}],"id":498,"name":"ParameterList","src":"2278:44:2"}],"id":499,"name":"EventDefinition","src":"2259:64:2"},{"attributes":{"anonymous":false,"documentation":null,"name":"TextChanged"},"children":[{"children":[{"attributes":{"constant":false,"indexed":true,"name":"node","scope":507,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":500,"name":"ElementaryTypeName","src":"2346:7:2"}],"id":501,"name":"VariableDeclaration","src":"2346:20:2"},{"attributes":{"constant":false,"indexed":false,"name":"indexedKey","scope":507,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":502,"name":"ElementaryTypeName","src":"2368:6:2"}],"id":503,"name":"VariableDeclaration","src":"2368:17:2"},{"attributes":{"constant":false,"indexed":false,"name":"key","scope":507,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":504,"name":"ElementaryTypeName","src":"2387:6:2"}],"id":505,"name":"VariableDeclaration","src":"2387:10:2"}],"id":506,"name":"ParameterList","src":"2345:53:2"}],"id":507,"name":"EventDefinition","src":"2328:71:2"},{"attributes":{"anonymous":false,"documentation":null,"name":"MultihashChanged"},"children":[{"children":[{"attributes":{"constant":false,"indexed":true,"name":"node","scope":513,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":508,"name":"ElementaryTypeName","src":"2427:7:2"}],"id":509,"name":"VariableDeclaration","src":"2427:20:2"},{"attributes":{"constant":false,"indexed":false,"name":"hash","scope":513,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":510,"name":"ElementaryTypeName","src":"2449:5:2"}],"id":511,"name":"VariableDeclaration","src":"2449:10:2"}],"id":512,"name":"ParameterList","src":"2426:34:2"}],"id":513,"name":"EventDefinition","src":"2404:57:2"},{"attributes":{"canonicalName":"PublicResolver.PublicKey","name":"PublicKey","scope":948,"visibility":"public"},"children":[{"attributes":{"constant":false,"name":"x","scope":518,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":514,"name":"ElementaryTypeName","src":"2494:7:2"}],"id":515,"name":"VariableDeclaration","src":"2494:9:2"},{"attributes":{"constant":false,"name":"y","scope":518,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":516,"name":"ElementaryTypeName","src":"2513:7:2"}],"id":517,"name":"VariableDeclaration","src":"2513:9:2"}],"id":518,"name":"StructDefinition","src":"2467:62:2"},{"attributes":{"canonicalName":"PublicResolver.Record","name":"Record","scope":948,"visibility":"public"},"children":[{"attributes":{"constant":false,"name":"addr","scope":537,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":519,"name":"ElementaryTypeName","src":"2559:7:2"}],"id":520,"name":"VariableDeclaration","src":"2559:12:2"},{"attributes":{"constant":false,"name":"content","scope":537,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":521,"name":"ElementaryTypeName","src":"2581:7:2"}],"id":522,"name":"VariableDeclaration","src":"2581:15:2"},{"attributes":{"constant":false,"name":"name","scope":537,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":523,"name":"ElementaryTypeName","src":"2606:6:2"}],"id":524,"name":"VariableDeclaration","src":"2606:11:2"},{"attributes":{"constant":false,"name":"pubkey","scope":537,"stateVariable":false,"storageLocation":"default","type":"struct PublicResolver.PublicKey","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"PublicKey","referencedDeclaration":518,"type":"struct PublicResolver.PublicKey"},"id":525,"name":"UserDefinedTypeName","src":"2627:9:2"}],"id":526,"name":"VariableDeclaration","src":"2627:16:2"},{"attributes":{"constant":false,"name":"text","scope":537,"stateVariable":false,"storageLocation":"default","type":"mapping(string => string)","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"mapping(string => string)"},"children":[{"attributes":{"name":"string","type":"string"},"id":527,"name":"ElementaryTypeName","src":"2661:6:2"},{"attributes":{"name":"string","type":"string"},"id":528,"name":"ElementaryTypeName","src":"2669:6:2"}],"id":529,"name":"Mapping","src":"2653:23:2"}],"id":530,"name":"VariableDeclaration","src":"2653:28:2"},{"attributes":{"constant":false,"name":"abis","scope":537,"stateVariable":false,"storageLocation":"default","type":"mapping(uint256 => bytes)","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"mapping(uint256 => bytes)"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":531,"name":"ElementaryTypeName","src":"2699:7:2"},{"attributes":{"name":"bytes","type":"bytes"},"id":532,"name":"ElementaryTypeName","src":"2708:5:2"}],"id":533,"name":"Mapping","src":"2691:23:2"}],"id":534,"name":"VariableDeclaration","src":"2691:28:2"},{"attributes":{"constant":false,"name":"multihash","scope":537,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":535,"name":"ElementaryTypeName","src":"2729:5:2"}],"id":536,"name":"VariableDeclaration","src":"2729:15:2"}],"id":537,"name":"StructDefinition","src":"2535:216:2"},{"attributes":{"constant":false,"name":"ens","scope":948,"stateVariable":true,"storageLocation":"default","type":"contract ENS","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"ENS","referencedDeclaration":440,"type":"contract ENS"},"id":538,"name":"UserDefinedTypeName","src":"2757:3:2"}],"id":539,"name":"VariableDeclaration","src":"2757:7:2"},{"attributes":{"constant":false,"name":"records","scope":948,"stateVariable":true,"storageLocation":"default","type":"mapping(bytes32 => struct PublicResolver.Record)","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"mapping(bytes32 => struct PublicResolver.Record)"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":540,"name":"ElementaryTypeName","src":"2780:7:2"},{"attributes":{"contractScope":null,"name":"Record","referencedDeclaration":537,"type":"struct PublicResolver.Record"},"id":541,"name":"UserDefinedTypeName","src":"2791:6:2"}],"id":542,"name":"Mapping","src":"2771:27:2"}],"id":543,"name":"VariableDeclaration","src":"2771:35:2"},{"attributes":{"documentation":null,"name":"only_owner","visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":559,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":544,"name":"ElementaryTypeName","src":"2833:7:2"}],"id":545,"name":"VariableDeclaration","src":"2833:12:2"}],"id":546,"name":"ParameterList","src":"2832:14:2"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"overloadedDeclarations":[3898,3899],"referencedDeclaration":3898,"type":"function (bool) pure","value":"require"},"id":547,"name":"Identifier","src":"2857:7:2"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"owner","referencedDeclaration":425,"type":"function (bytes32) view external returns (address)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":539,"type":"contract ENS","value":"ens"},"id":548,"name":"Identifier","src":"2865:3:2"}],"id":549,"name":"MemberAccess","src":"2865:9:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":545,"type":"bytes32","value":"node"},"id":550,"name":"Identifier","src":"2875:4:2"}],"id":551,"name":"FunctionCall","src":"2865:15:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3895,"type":"msg","value":"msg"},"id":552,"name":"Identifier","src":"2884:3:2"}],"id":553,"name":"MemberAccess","src":"2884:10:2"}],"id":554,"name":"BinaryOperation","src":"2865:29:2"}],"id":555,"name":"FunctionCall","src":"2857:38:2"}],"id":556,"name":"ExpressionStatement","src":"2857:38:2"},{"id":557,"name":"PlaceholderStatement","src":"2905:1:2"}],"id":558,"name":"Block","src":"2847:66:2"}],"id":559,"name":"ModifierDefinition","src":"2813:100:2"},{"attributes":{"constant":false,"documentation":"Constructor.\n@param ensAddr The ENS registrar contract.","implemented":true,"isConstructor":true,"modifiers":[null],"name":"","payable":false,"scope":948,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"ensAddr","scope":569,"stateVariable":false,"storageLocation":"default","type":"contract ENS","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"ENS","referencedDeclaration":440,"type":"contract ENS"},"id":560,"name":"UserDefinedTypeName","src":"3017:3:2"}],"id":561,"name":"VariableDeclaration","src":"3017:11:2"}],"id":562,"name":"ParameterList","src":"3016:13:2"},{"attributes":{"parameters":[null]},"children":[],"id":563,"name":"ParameterList","src":"3037:0:2"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"contract ENS"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":539,"type":"contract ENS","value":"ens"},"id":564,"name":"Identifier","src":"3047:3:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":561,"type":"contract ENS","value":"ensAddr"},"id":565,"name":"Identifier","src":"3053:7:2"}],"id":566,"name":"Assignment","src":"3047:13:2"}],"id":567,"name":"ExpressionStatement","src":"3047:13:2"}],"id":568,"name":"Block","src":"3037:30:2"}],"id":569,"name":"FunctionDefinition","src":"3005:62:2"},{"attributes":{"constant":false,"documentation":"Sets the address associated with an ENS node.\nMay only be called by the owner of that node in the ENS registry.\n@param node The node to update.\n@param addr The address to set.","implemented":true,"isConstructor":false,"name":"setAddr","payable":false,"scope":948,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":592,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":570,"name":"ElementaryTypeName","src":"3310:7:2"}],"id":571,"name":"VariableDeclaration","src":"3310:12:2"},{"attributes":{"constant":false,"name":"addr","scope":592,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":572,"name":"ElementaryTypeName","src":"3324:7:2"}],"id":573,"name":"VariableDeclaration","src":"3324:12:2"}],"id":574,"name":"ParameterList","src":"3309:28:2"},{"attributes":{"parameters":[null]},"children":[],"id":578,"name":"ParameterList","src":"3362:0:2"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":559,"type":"modifier (bytes32)","value":"only_owner"},"id":575,"name":"Identifier","src":"3345:10:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":571,"type":"bytes32","value":"node"},"id":576,"name":"Identifier","src":"3356:4:2"}],"id":577,"name":"ModifierInvocation","src":"3345:16:2"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"address"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"addr","referencedDeclaration":520,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":543,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":579,"name":"Identifier","src":"3372:7:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":571,"type":"bytes32","value":"node"},"id":580,"name":"Identifier","src":"3380:4:2"}],"id":581,"name":"IndexAccess","src":"3372:13:2"}],"id":582,"name":"MemberAccess","src":"3372:18:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":573,"type":"address","value":"addr"},"id":583,"name":"Identifier","src":"3393:4:2"}],"id":584,"name":"Assignment","src":"3372:25:2"}],"id":585,"name":"ExpressionStatement","src":"3372:25:2"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":473,"type":"function (bytes32,address)","value":"AddrChanged"},"id":586,"name":"Identifier","src":"3412:11:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":571,"type":"bytes32","value":"node"},"id":587,"name":"Identifier","src":"3424:4:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":573,"type":"address","value":"addr"},"id":588,"name":"Identifier","src":"3430:4:2"}],"id":589,"name":"FunctionCall","src":"3412:23:2"}],"id":590,"name":"EmitStatement","src":"3407:28:2"}],"id":591,"name":"Block","src":"3362:80:2"}],"id":592,"name":"FunctionDefinition","src":"3293:149:2"},{"attributes":{"constant":false,"documentation":"Sets the content hash associated with an ENS node.\nMay only be called by the owner of that node in the ENS registry.\nNote that this resource type is not standardized, and will likely change\nin future to a resource type based on multihash.\n@param node The node to update.\n@param hash The content hash to set","implemented":true,"isConstructor":false,"name":"setContent","payable":false,"scope":948,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":615,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":593,"name":"ElementaryTypeName","src":"3833:7:2"}],"id":594,"name":"VariableDeclaration","src":"3833:12:2"},{"attributes":{"constant":false,"name":"hash","scope":615,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":595,"name":"ElementaryTypeName","src":"3847:7:2"}],"id":596,"name":"VariableDeclaration","src":"3847:12:2"}],"id":597,"name":"ParameterList","src":"3832:28:2"},{"attributes":{"parameters":[null]},"children":[],"id":601,"name":"ParameterList","src":"3885:0:2"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":559,"type":"modifier (bytes32)","value":"only_owner"},"id":598,"name":"Identifier","src":"3868:10:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":594,"type":"bytes32","value":"node"},"id":599,"name":"Identifier","src":"3879:4:2"}],"id":600,"name":"ModifierInvocation","src":"3868:16:2"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"content","referencedDeclaration":522,"type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":543,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":602,"name":"Identifier","src":"3895:7:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":594,"type":"bytes32","value":"node"},"id":603,"name":"Identifier","src":"3903:4:2"}],"id":604,"name":"IndexAccess","src":"3895:13:2"}],"id":605,"name":"MemberAccess","src":"3895:21:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":596,"type":"bytes32","value":"hash"},"id":606,"name":"Identifier","src":"3919:4:2"}],"id":607,"name":"Assignment","src":"3895:28:2"}],"id":608,"name":"ExpressionStatement","src":"3895:28:2"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[null],"referencedDeclaration":479,"type":"function (bytes32,bytes32)","value":"ContentChanged"},"id":609,"name":"Identifier","src":"3938:14:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":594,"type":"bytes32","value":"node"},"id":610,"name":"Identifier","src":"3953:4:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":596,"type":"bytes32","value":"hash"},"id":611,"name":"Identifier","src":"3959:4:2"}],"id":612,"name":"FunctionCall","src":"3938:26:2"}],"id":613,"name":"EmitStatement","src":"3933:31:2"}],"id":614,"name":"Block","src":"3885:86:2"}],"id":615,"name":"FunctionDefinition","src":"3813:158:2"},{"attributes":{"constant":false,"documentation":"Sets the multihash associated with an ENS node.\nMay only be called by the owner of that node in the ENS registry.\n@param node The node to update.\n@param hash The multihash to set","implemented":true,"isConstructor":false,"name":"setMultihash","payable":false,"scope":948,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":638,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":616,"name":"ElementaryTypeName","src":"4222:7:2"}],"id":617,"name":"VariableDeclaration","src":"4222:12:2"},{"attributes":{"constant":false,"name":"hash","scope":638,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":618,"name":"ElementaryTypeName","src":"4236:5:2"}],"id":619,"name":"VariableDeclaration","src":"4236:10:2"}],"id":620,"name":"ParameterList","src":"4221:26:2"},{"attributes":{"parameters":[null]},"children":[],"id":624,"name":"ParameterList","src":"4272:0:2"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":559,"type":"modifier (bytes32)","value":"only_owner"},"id":621,"name":"Identifier","src":"4255:10:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":617,"type":"bytes32","value":"node"},"id":622,"name":"Identifier","src":"4266:4:2"}],"id":623,"name":"ModifierInvocation","src":"4255:16:2"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"multihash","referencedDeclaration":536,"type":"bytes storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":543,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":625,"name":"Identifier","src":"4282:7:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":617,"type":"bytes32","value":"node"},"id":626,"name":"Identifier","src":"4290:4:2"}],"id":627,"name":"IndexAccess","src":"4282:13:2"}],"id":628,"name":"MemberAccess","src":"4282:23:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":619,"type":"bytes memory","value":"hash"},"id":629,"name":"Identifier","src":"4308:4:2"}],"id":630,"name":"Assignment","src":"4282:30:2"}],"id":631,"name":"ExpressionStatement","src":"4282:30:2"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"overloadedDeclarations":[null],"referencedDeclaration":513,"type":"function (bytes32,bytes memory)","value":"MultihashChanged"},"id":632,"name":"Identifier","src":"4327:16:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":617,"type":"bytes32","value":"node"},"id":633,"name":"Identifier","src":"4344:4:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":619,"type":"bytes memory","value":"hash"},"id":634,"name":"Identifier","src":"4350:4:2"}],"id":635,"name":"FunctionCall","src":"4327:28:2"}],"id":636,"name":"EmitStatement","src":"4322:33:2"}],"id":637,"name":"Block","src":"4272:90:2"}],"id":638,"name":"FunctionDefinition","src":"4200:162:2"},{"attributes":{"constant":false,"documentation":"Sets the name associated with an ENS node, for reverse records.\nMay only be called by the owner of that node in the ENS registry.\n@param node The node to update.\n@param name The name to set.","implemented":true,"isConstructor":false,"name":"setName","payable":false,"scope":948,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":661,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":639,"name":"ElementaryTypeName","src":"4624:7:2"}],"id":640,"name":"VariableDeclaration","src":"4624:12:2"},{"attributes":{"constant":false,"name":"name","scope":661,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":641,"name":"ElementaryTypeName","src":"4638:6:2"}],"id":642,"name":"VariableDeclaration","src":"4638:11:2"}],"id":643,"name":"ParameterList","src":"4623:27:2"},{"attributes":{"parameters":[null]},"children":[],"id":647,"name":"ParameterList","src":"4675:0:2"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":559,"type":"modifier (bytes32)","value":"only_owner"},"id":644,"name":"Identifier","src":"4658:10:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":640,"type":"bytes32","value":"node"},"id":645,"name":"Identifier","src":"4669:4:2"}],"id":646,"name":"ModifierInvocation","src":"4658:16:2"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"name","referencedDeclaration":524,"type":"string storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":543,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":648,"name":"Identifier","src":"4685:7:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":640,"type":"bytes32","value":"node"},"id":649,"name":"Identifier","src":"4693:4:2"}],"id":650,"name":"IndexAccess","src":"4685:13:2"}],"id":651,"name":"MemberAccess","src":"4685:18:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":642,"type":"string memory","value":"name"},"id":652,"name":"Identifier","src":"4706:4:2"}],"id":653,"name":"Assignment","src":"4685:25:2"}],"id":654,"name":"ExpressionStatement","src":"4685:25:2"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"overloadedDeclarations":[null],"referencedDeclaration":485,"type":"function (bytes32,string memory)","value":"NameChanged"},"id":655,"name":"Identifier","src":"4725:11:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":640,"type":"bytes32","value":"node"},"id":656,"name":"Identifier","src":"4737:4:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":642,"type":"string memory","value":"name"},"id":657,"name":"Identifier","src":"4743:4:2"}],"id":658,"name":"FunctionCall","src":"4725:23:2"}],"id":659,"name":"EmitStatement","src":"4720:28:2"}],"id":660,"name":"Block","src":"4675:80:2"}],"id":661,"name":"FunctionDefinition","src":"4607:148:2"},{"attributes":{"constant":false,"documentation":"Sets the ABI associated with an ENS node.\nNodes may have one ABI of each content type. To remove an ABI, set it to\nthe empty string.\n@param node The node to update.\n@param contentType The content type of the ABI\n@param data The ABI data.","implemented":true,"isConstructor":false,"name":"setABI","payable":false,"scope":948,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":700,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":662,"name":"ElementaryTypeName","src":"5073:7:2"}],"id":663,"name":"VariableDeclaration","src":"5073:12:2"},{"attributes":{"constant":false,"name":"contentType","scope":700,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":664,"name":"ElementaryTypeName","src":"5087:7:2"}],"id":665,"name":"VariableDeclaration","src":"5087:19:2"},{"attributes":{"constant":false,"name":"data","scope":700,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":666,"name":"ElementaryTypeName","src":"5108:5:2"}],"id":667,"name":"VariableDeclaration","src":"5108:10:2"}],"id":668,"name":"ParameterList","src":"5072:47:2"},{"attributes":{"parameters":[null]},"children":[],"id":672,"name":"ParameterList","src":"5144:0:2"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":559,"type":"modifier (bytes32)","value":"only_owner"},"id":669,"name":"Identifier","src":"5127:10:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":663,"type":"bytes32","value":"node"},"id":670,"name":"Identifier","src":"5138:4:2"}],"id":671,"name":"ModifierInvocation","src":"5127:16:2"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"overloadedDeclarations":[3898,3899],"referencedDeclaration":3898,"type":"function (bool) pure","value":"require"},"id":673,"name":"Identifier","src":"5199:7:2"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":665,"type":"uint256","value":"contentType"},"id":674,"name":"Identifier","src":"5209:11:2"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":675,"name":"Literal","src":"5223:1:2"}],"id":676,"name":"BinaryOperation","src":"5209:15:2"}],"id":677,"name":"TupleExpression","src":"5208:17:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":665,"type":"uint256","value":"contentType"},"id":678,"name":"Identifier","src":"5228:11:2"}],"id":679,"name":"BinaryOperation","src":"5208:31:2"}],"id":680,"name":"TupleExpression","src":"5207:33:2"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":681,"name":"Literal","src":"5244:1:2"}],"id":682,"name":"BinaryOperation","src":"5207:38:2"}],"id":683,"name":"FunctionCall","src":"5199:47:2"}],"id":684,"name":"ExpressionStatement","src":"5199:47:2"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"abis","referencedDeclaration":534,"type":"mapping(uint256 => bytes storage ref)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":543,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":685,"name":"Identifier","src":"5265:7:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":663,"type":"bytes32","value":"node"},"id":686,"name":"Identifier","src":"5273:4:2"}],"id":687,"name":"IndexAccess","src":"5265:13:2"}],"id":688,"name":"MemberAccess","src":"5265:18:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":665,"type":"uint256","value":"contentType"},"id":689,"name":"Identifier","src":"5284:11:2"}],"id":690,"name":"IndexAccess","src":"5265:31:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":667,"type":"bytes memory","value":"data"},"id":691,"name":"Identifier","src":"5299:4:2"}],"id":692,"name":"Assignment","src":"5265:38:2"}],"id":693,"name":"ExpressionStatement","src":"5265:38:2"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":491,"type":"function (bytes32,uint256)","value":"ABIChanged"},"id":694,"name":"Identifier","src":"5318:10:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":663,"type":"bytes32","value":"node"},"id":695,"name":"Identifier","src":"5329:4:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":665,"type":"uint256","value":"contentType"},"id":696,"name":"Identifier","src":"5335:11:2"}],"id":697,"name":"FunctionCall","src":"5318:29:2"}],"id":698,"name":"EmitStatement","src":"5313:34:2"}],"id":699,"name":"Block","src":"5144:210:2"}],"id":700,"name":"FunctionDefinition","src":"5057:297:2"},{"attributes":{"constant":false,"documentation":"Sets the SECP256k1 public key associated with an ENS node.\n@param node The ENS node to query\n@param x the X coordinate of the curve point for the public key.\n@param y the Y coordinate of the curve point for the public key.","implemented":true,"isConstructor":false,"name":"setPubkey","payable":false,"scope":948,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":729,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":701,"name":"ElementaryTypeName","src":"5650:7:2"}],"id":702,"name":"VariableDeclaration","src":"5650:12:2"},{"attributes":{"constant":false,"name":"x","scope":729,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":703,"name":"ElementaryTypeName","src":"5664:7:2"}],"id":704,"name":"VariableDeclaration","src":"5664:9:2"},{"attributes":{"constant":false,"name":"y","scope":729,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":705,"name":"ElementaryTypeName","src":"5675:7:2"}],"id":706,"name":"VariableDeclaration","src":"5675:9:2"}],"id":707,"name":"ParameterList","src":"5649:36:2"},{"attributes":{"parameters":[null]},"children":[],"id":711,"name":"ParameterList","src":"5710:0:2"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":559,"type":"modifier (bytes32)","value":"only_owner"},"id":708,"name":"Identifier","src":"5693:10:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":702,"type":"bytes32","value":"node"},"id":709,"name":"Identifier","src":"5704:4:2"}],"id":710,"name":"ModifierInvocation","src":"5693:16:2"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"struct PublicResolver.PublicKey storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"pubkey","referencedDeclaration":526,"type":"struct PublicResolver.PublicKey storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":543,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":712,"name":"Identifier","src":"5720:7:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":702,"type":"bytes32","value":"node"},"id":713,"name":"Identifier","src":"5728:4:2"}],"id":714,"name":"IndexAccess","src":"5720:13:2"}],"id":715,"name":"MemberAccess","src":"5720:20:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":true,"lValueRequested":false,"names":[null],"type":"struct PublicResolver.PublicKey memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[null],"referencedDeclaration":518,"type":"type(struct PublicResolver.PublicKey storage pointer)","value":"PublicKey"},"id":716,"name":"Identifier","src":"5743:9:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":704,"type":"bytes32","value":"x"},"id":717,"name":"Identifier","src":"5753:1:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":706,"type":"bytes32","value":"y"},"id":718,"name":"Identifier","src":"5756:1:2"}],"id":719,"name":"FunctionCall","src":"5743:15:2"}],"id":720,"name":"Assignment","src":"5720:38:2"}],"id":721,"name":"ExpressionStatement","src":"5720:38:2"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[null],"referencedDeclaration":499,"type":"function (bytes32,bytes32,bytes32)","value":"PubkeyChanged"},"id":722,"name":"Identifier","src":"5773:13:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":702,"type":"bytes32","value":"node"},"id":723,"name":"Identifier","src":"5787:4:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":704,"type":"bytes32","value":"x"},"id":724,"name":"Identifier","src":"5793:1:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":706,"type":"bytes32","value":"y"},"id":725,"name":"Identifier","src":"5796:1:2"}],"id":726,"name":"FunctionCall","src":"5773:25:2"}],"id":727,"name":"EmitStatement","src":"5768:30:2"}],"id":728,"name":"Block","src":"5710:95:2"}],"id":729,"name":"FunctionDefinition","src":"5631:174:2"},{"attributes":{"constant":false,"documentation":"Sets the text data associated with an ENS node and key.\nMay only be called by the owner of that node in the ENS registry.\n@param node The node to update.\n@param key The key to set.\n@param value The text data value to set.","implemented":true,"isConstructor":false,"name":"setText","payable":false,"scope":948,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":757,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":730,"name":"ElementaryTypeName","src":"6101:7:2"}],"id":731,"name":"VariableDeclaration","src":"6101:12:2"},{"attributes":{"constant":false,"name":"key","scope":757,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":732,"name":"ElementaryTypeName","src":"6115:6:2"}],"id":733,"name":"VariableDeclaration","src":"6115:10:2"},{"attributes":{"constant":false,"name":"value","scope":757,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":734,"name":"ElementaryTypeName","src":"6127:6:2"}],"id":735,"name":"VariableDeclaration","src":"6127:12:2"}],"id":736,"name":"ParameterList","src":"6100:40:2"},{"attributes":{"parameters":[null]},"children":[],"id":740,"name":"ParameterList","src":"6165:0:2"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":559,"type":"modifier (bytes32)","value":"only_owner"},"id":737,"name":"Identifier","src":"6148:10:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":731,"type":"bytes32","value":"node"},"id":738,"name":"Identifier","src":"6159:4:2"}],"id":739,"name":"ModifierInvocation","src":"6148:16:2"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"text","referencedDeclaration":530,"type":"mapping(string memory => string storage ref)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":543,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":741,"name":"Identifier","src":"6175:7:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":731,"type":"bytes32","value":"node"},"id":742,"name":"Identifier","src":"6183:4:2"}],"id":743,"name":"IndexAccess","src":"6175:13:2"}],"id":744,"name":"MemberAccess","src":"6175:18:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":733,"type":"string memory","value":"key"},"id":745,"name":"Identifier","src":"6194:3:2"}],"id":746,"name":"IndexAccess","src":"6175:23:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":735,"type":"string memory","value":"value"},"id":747,"name":"Identifier","src":"6201:5:2"}],"id":748,"name":"Assignment","src":"6175:31:2"}],"id":749,"name":"ExpressionStatement","src":"6175:31:2"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"overloadedDeclarations":[null],"referencedDeclaration":507,"type":"function (bytes32,string memory,string memory)","value":"TextChanged"},"id":750,"name":"Identifier","src":"6221:11:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":731,"type":"bytes32","value":"node"},"id":751,"name":"Identifier","src":"6233:4:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":733,"type":"string memory","value":"key"},"id":752,"name":"Identifier","src":"6239:3:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":733,"type":"string memory","value":"key"},"id":753,"name":"Identifier","src":"6244:3:2"}],"id":754,"name":"FunctionCall","src":"6221:27:2"}],"id":755,"name":"EmitStatement","src":"6216:32:2"}],"id":756,"name":"Block","src":"6165:90:2"}],"id":757,"name":"FunctionDefinition","src":"6084:171:2"},{"attributes":{"constant":true,"documentation":"Returns the text data associated with an ENS node and key.\n@param node The ENS node to query.\n@param key The text data key to query.\n@return The associated text data.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"text","payable":false,"scope":948,"stateMutability":"view","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":774,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":758,"name":"ElementaryTypeName","src":"6486:7:2"}],"id":759,"name":"VariableDeclaration","src":"6486:12:2"},{"attributes":{"constant":false,"name":"key","scope":774,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":760,"name":"ElementaryTypeName","src":"6500:6:2"}],"id":761,"name":"VariableDeclaration","src":"6500:10:2"}],"id":762,"name":"ParameterList","src":"6485:26:2"},{"children":[{"attributes":{"constant":false,"name":"","scope":774,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":763,"name":"ElementaryTypeName","src":"6533:6:2"}],"id":764,"name":"VariableDeclaration","src":"6533:6:2"}],"id":765,"name":"ParameterList","src":"6532:8:2"},{"children":[{"attributes":{"functionReturnParameters":765},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"text","referencedDeclaration":530,"type":"mapping(string memory => string storage ref)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":543,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":766,"name":"Identifier","src":"6558:7:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":759,"type":"bytes32","value":"node"},"id":767,"name":"Identifier","src":"6566:4:2"}],"id":768,"name":"IndexAccess","src":"6558:13:2"}],"id":769,"name":"MemberAccess","src":"6558:18:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":761,"type":"string memory","value":"key"},"id":770,"name":"Identifier","src":"6577:3:2"}],"id":771,"name":"IndexAccess","src":"6558:23:2"}],"id":772,"name":"Return","src":"6551:30:2"}],"id":773,"name":"Block","src":"6541:47:2"}],"id":774,"name":"FunctionDefinition","src":"6472:116:2"},{"attributes":{"constant":true,"documentation":"Returns the SECP256k1 public key associated with an ENS node.\nDefined in EIP 619.\n@param node The ENS node to query\n@return x, y the X and Y coordinates of the curve point for the public key.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"pubkey","payable":false,"scope":948,"stateMutability":"view","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":796,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":775,"name":"ElementaryTypeName","src":"6846:7:2"}],"id":776,"name":"VariableDeclaration","src":"6846:12:2"}],"id":777,"name":"ParameterList","src":"6845:14:2"},{"children":[{"attributes":{"constant":false,"name":"x","scope":796,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":778,"name":"ElementaryTypeName","src":"6881:7:2"}],"id":779,"name":"VariableDeclaration","src":"6881:9:2"},{"attributes":{"constant":false,"name":"y","scope":796,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":780,"name":"ElementaryTypeName","src":"6892:7:2"}],"id":781,"name":"VariableDeclaration","src":"6892:9:2"}],"id":782,"name":"ParameterList","src":"6880:22:2"},{"children":[{"attributes":{"functionReturnParameters":782},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"tuple(bytes32,bytes32)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"x","referencedDeclaration":515,"type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"pubkey","referencedDeclaration":526,"type":"struct PublicResolver.PublicKey storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":543,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":783,"name":"Identifier","src":"6921:7:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":776,"type":"bytes32","value":"node"},"id":784,"name":"Identifier","src":"6929:4:2"}],"id":785,"name":"IndexAccess","src":"6921:13:2"}],"id":786,"name":"MemberAccess","src":"6921:20:2"}],"id":787,"name":"MemberAccess","src":"6921:22:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"y","referencedDeclaration":517,"type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"pubkey","referencedDeclaration":526,"type":"struct PublicResolver.PublicKey storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":543,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":788,"name":"Identifier","src":"6945:7:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":776,"type":"bytes32","value":"node"},"id":789,"name":"Identifier","src":"6953:4:2"}],"id":790,"name":"IndexAccess","src":"6945:13:2"}],"id":791,"name":"MemberAccess","src":"6945:20:2"}],"id":792,"name":"MemberAccess","src":"6945:22:2"}],"id":793,"name":"TupleExpression","src":"6920:48:2"}],"id":794,"name":"Return","src":"6913:55:2"}],"id":795,"name":"Block","src":"6903:72:2"}],"id":796,"name":"FunctionDefinition","src":"6830:145:2"},{"attributes":{"constant":true,"documentation":"Returns the ABI associated with an ENS node.\nDefined in EIP205.\n@param node The ENS node to query\n@param contentTypes A bitwise OR of the ABI formats accepted by the caller.\n@return contentType The content type of the return value\n@return data The ABI data","implemented":true,"isConstructor":false,"modifiers":[null],"name":"ABI","payable":false,"scope":948,"stateMutability":"view","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":855,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":797,"name":"ElementaryTypeName","src":"7309:7:2"}],"id":798,"name":"VariableDeclaration","src":"7309:12:2"},{"attributes":{"constant":false,"name":"contentTypes","scope":855,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":799,"name":"ElementaryTypeName","src":"7323:7:2"}],"id":800,"name":"VariableDeclaration","src":"7323:20:2"}],"id":801,"name":"ParameterList","src":"7308:36:2"},{"children":[{"attributes":{"constant":false,"name":"contentType","scope":855,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":802,"name":"ElementaryTypeName","src":"7366:7:2"}],"id":803,"name":"VariableDeclaration","src":"7366:19:2"},{"attributes":{"constant":false,"name":"data","scope":855,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":804,"name":"ElementaryTypeName","src":"7387:5:2"}],"id":805,"name":"VariableDeclaration","src":"7387:10:2"}],"id":806,"name":"ParameterList","src":"7365:33:2"},{"children":[{"attributes":{"assignments":[808]},"children":[{"attributes":{"constant":false,"name":"record","scope":855,"stateVariable":false,"storageLocation":"storage","type":"struct PublicResolver.Record","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"Record","referencedDeclaration":537,"type":"struct PublicResolver.Record"},"id":807,"name":"UserDefinedTypeName","src":"7409:6:2"}],"id":808,"name":"VariableDeclaration","src":"7409:21:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":543,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":809,"name":"Identifier","src":"7433:7:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":798,"type":"bytes32","value":"node"},"id":810,"name":"Identifier","src":"7441:4:2"}],"id":811,"name":"IndexAccess","src":"7433:13:2"}],"id":812,"name":"VariableDeclarationStatement","src":"7409:37:2"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":803,"type":"uint256","value":"contentType"},"id":813,"name":"Identifier","src":"7461:11:2"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":814,"name":"Literal","src":"7475:1:2"}],"id":815,"name":"Assignment","src":"7461:15:2"}],"id":816,"name":"ExpressionStatement","src":"7461:15:2"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":803,"type":"uint256","value":"contentType"},"id":817,"name":"Identifier","src":"7478:11:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":800,"type":"uint256","value":"contentTypes"},"id":818,"name":"Identifier","src":"7493:12:2"}],"id":819,"name":"BinaryOperation","src":"7478:27:2"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<<=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":803,"type":"uint256","value":"contentType"},"id":820,"name":"Identifier","src":"7507:11:2"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":821,"name":"Literal","src":"7523:1:2"}],"id":822,"name":"Assignment","src":"7507:17:2"}],"id":823,"name":"ExpressionStatement","src":"7507:17:2"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&&","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":803,"type":"uint256","value":"contentType"},"id":824,"name":"Identifier","src":"7545:11:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":800,"type":"uint256","value":"contentTypes"},"id":825,"name":"Identifier","src":"7559:12:2"}],"id":826,"name":"BinaryOperation","src":"7545:26:2"}],"id":827,"name":"TupleExpression","src":"7544:28:2"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":828,"name":"Literal","src":"7576:1:2"}],"id":829,"name":"BinaryOperation","src":"7544:33:2"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"abis","referencedDeclaration":534,"type":"mapping(uint256 => bytes storage ref)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":808,"type":"struct PublicResolver.Record storage pointer","value":"record"},"id":830,"name":"Identifier","src":"7581:6:2"}],"id":831,"name":"MemberAccess","src":"7581:11:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":803,"type":"uint256","value":"contentType"},"id":832,"name":"Identifier","src":"7593:11:2"}],"id":833,"name":"IndexAccess","src":"7581:24:2"}],"id":834,"name":"MemberAccess","src":"7581:31:2"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":835,"name":"Literal","src":"7615:1:2"}],"id":836,"name":"BinaryOperation","src":"7581:35:2"}],"id":837,"name":"BinaryOperation","src":"7544:72:2"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":805,"type":"bytes memory","value":"data"},"id":838,"name":"Identifier","src":"7636:4:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"abis","referencedDeclaration":534,"type":"mapping(uint256 => bytes storage ref)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":808,"type":"struct PublicResolver.Record storage pointer","value":"record"},"id":839,"name":"Identifier","src":"7643:6:2"}],"id":840,"name":"MemberAccess","src":"7643:11:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":803,"type":"uint256","value":"contentType"},"id":841,"name":"Identifier","src":"7655:11:2"}],"id":842,"name":"IndexAccess","src":"7643:24:2"}],"id":843,"name":"Assignment","src":"7636:31:2"}],"id":844,"name":"ExpressionStatement","src":"7636:31:2"},{"attributes":{"expression":null,"functionReturnParameters":806},"id":845,"name":"Return","src":"7685:7:2"}],"id":846,"name":"Block","src":"7618:88:2"}],"id":847,"name":"IfStatement","src":"7540:166:2"}],"id":848,"name":"Block","src":"7526:190:2"}],"id":849,"name":"ForStatement","src":"7456:260:2"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":803,"type":"uint256","value":"contentType"},"id":850,"name":"Identifier","src":"7725:11:2"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":851,"name":"Literal","src":"7739:1:2"}],"id":852,"name":"Assignment","src":"7725:15:2"}],"id":853,"name":"ExpressionStatement","src":"7725:15:2"}],"id":854,"name":"Block","src":"7399:348:2"}],"id":855,"name":"FunctionDefinition","src":"7296:451:2"},{"attributes":{"constant":true,"documentation":"Returns the name associated with an ENS node, for reverse records.\nDefined in EIP181.\n@param node The ENS node to query.\n@return The associated name.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"name","payable":false,"scope":948,"stateMutability":"view","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":868,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":856,"name":"ElementaryTypeName","src":"7961:7:2"}],"id":857,"name":"VariableDeclaration","src":"7961:12:2"}],"id":858,"name":"ParameterList","src":"7960:14:2"},{"children":[{"attributes":{"constant":false,"name":"","scope":868,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":859,"name":"ElementaryTypeName","src":"7996:6:2"}],"id":860,"name":"VariableDeclaration","src":"7996:6:2"}],"id":861,"name":"ParameterList","src":"7995:8:2"},{"children":[{"attributes":{"functionReturnParameters":861},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"name","referencedDeclaration":524,"type":"string storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":543,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":862,"name":"Identifier","src":"8021:7:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":857,"type":"bytes32","value":"node"},"id":863,"name":"Identifier","src":"8029:4:2"}],"id":864,"name":"IndexAccess","src":"8021:13:2"}],"id":865,"name":"MemberAccess","src":"8021:18:2"}],"id":866,"name":"Return","src":"8014:25:2"}],"id":867,"name":"Block","src":"8004:42:2"}],"id":868,"name":"FunctionDefinition","src":"7947:99:2"},{"attributes":{"constant":true,"documentation":"Returns the content hash associated with an ENS node.\nNote that this resource type is not standardized, and will likely change\nin future to a resource type based on multihash.\n@param node The ENS node to query.\n@return The associated content hash.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"content","payable":false,"scope":948,"stateMutability":"view","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":881,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":869,"name":"ElementaryTypeName","src":"8368:7:2"}],"id":870,"name":"VariableDeclaration","src":"8368:12:2"}],"id":871,"name":"ParameterList","src":"8367:14:2"},{"children":[{"attributes":{"constant":false,"name":"","scope":881,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":872,"name":"ElementaryTypeName","src":"8403:7:2"}],"id":873,"name":"VariableDeclaration","src":"8403:7:2"}],"id":874,"name":"ParameterList","src":"8402:9:2"},{"children":[{"attributes":{"functionReturnParameters":874},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"content","referencedDeclaration":522,"type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":543,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":875,"name":"Identifier","src":"8429:7:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":870,"type":"bytes32","value":"node"},"id":876,"name":"Identifier","src":"8437:4:2"}],"id":877,"name":"IndexAccess","src":"8429:13:2"}],"id":878,"name":"MemberAccess","src":"8429:21:2"}],"id":879,"name":"Return","src":"8422:28:2"}],"id":880,"name":"Block","src":"8412:45:2"}],"id":881,"name":"FunctionDefinition","src":"8351:106:2"},{"attributes":{"constant":true,"documentation":"Returns the multihash associated with an ENS node.\n@param node The ENS node to query.\n@return The associated multihash.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"multihash","payable":false,"scope":948,"stateMutability":"view","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":894,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":882,"name":"ElementaryTypeName","src":"8639:7:2"}],"id":883,"name":"VariableDeclaration","src":"8639:12:2"}],"id":884,"name":"ParameterList","src":"8638:14:2"},{"children":[{"attributes":{"constant":false,"name":"","scope":894,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":885,"name":"ElementaryTypeName","src":"8674:5:2"}],"id":886,"name":"VariableDeclaration","src":"8674:5:2"}],"id":887,"name":"ParameterList","src":"8673:7:2"},{"children":[{"attributes":{"functionReturnParameters":887},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"multihash","referencedDeclaration":536,"type":"bytes storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":543,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":888,"name":"Identifier","src":"8698:7:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":883,"type":"bytes32","value":"node"},"id":889,"name":"Identifier","src":"8706:4:2"}],"id":890,"name":"IndexAccess","src":"8698:13:2"}],"id":891,"name":"MemberAccess","src":"8698:23:2"}],"id":892,"name":"Return","src":"8691:30:2"}],"id":893,"name":"Block","src":"8681:47:2"}],"id":894,"name":"FunctionDefinition","src":"8620:108:2"},{"attributes":{"constant":true,"documentation":"Returns the address associated with an ENS node.\n@param node The ENS node to query.\n@return The associated address.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"addr","payable":false,"scope":948,"stateMutability":"view","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":907,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":895,"name":"ElementaryTypeName","src":"8901:7:2"}],"id":896,"name":"VariableDeclaration","src":"8901:12:2"}],"id":897,"name":"ParameterList","src":"8900:14:2"},{"children":[{"attributes":{"constant":false,"name":"","scope":907,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":898,"name":"ElementaryTypeName","src":"8936:7:2"}],"id":899,"name":"VariableDeclaration","src":"8936:7:2"}],"id":900,"name":"ParameterList","src":"8935:9:2"},{"children":[{"attributes":{"functionReturnParameters":900},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"addr","referencedDeclaration":520,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":543,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":901,"name":"Identifier","src":"8962:7:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":896,"type":"bytes32","value":"node"},"id":902,"name":"Identifier","src":"8970:4:2"}],"id":903,"name":"IndexAccess","src":"8962:13:2"}],"id":904,"name":"MemberAccess","src":"8962:18:2"}],"id":905,"name":"Return","src":"8955:25:2"}],"id":906,"name":"Block","src":"8945:42:2"}],"id":907,"name":"FunctionDefinition","src":"8887:100:2"},{"attributes":{"constant":true,"documentation":"Returns true if the resolver implements the interface specified by the provided hash.\n@param interfaceID The ID of the interface to check for.\n@return True if the contract implements the requested interface.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"supportsInterface","payable":false,"scope":948,"stateMutability":"pure","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"interfaceID","scope":947,"stateVariable":false,"storageLocation":"default","type":"bytes4","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes4","type":"bytes4"},"id":908,"name":"ElementaryTypeName","src":"9265:6:2"}],"id":909,"name":"VariableDeclaration","src":"9265:18:2"}],"id":910,"name":"ParameterList","src":"9264:20:2"},{"children":[{"attributes":{"constant":false,"name":"","scope":947,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":911,"name":"ElementaryTypeName","src":"9306:4:2"}],"id":912,"name":"VariableDeclaration","src":"9306:4:2"}],"id":913,"name":"ParameterList","src":"9305:6:2"},{"children":[{"attributes":{"functionReturnParameters":913},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"||","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"||","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"||","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"||","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"||","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"||","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"||","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":909,"type":"bytes4","value":"interfaceID"},"id":914,"name":"Identifier","src":"9329:11:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":449,"type":"bytes4","value":"ADDR_INTERFACE_ID"},"id":915,"name":"Identifier","src":"9344:17:2"}],"id":916,"name":"BinaryOperation","src":"9329:32:2"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":909,"type":"bytes4","value":"interfaceID"},"id":917,"name":"Identifier","src":"9373:11:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":452,"type":"bytes4","value":"CONTENT_INTERFACE_ID"},"id":918,"name":"Identifier","src":"9388:20:2"}],"id":919,"name":"BinaryOperation","src":"9373:35:2"}],"id":920,"name":"BinaryOperation","src":"9329:79:2"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":909,"type":"bytes4","value":"interfaceID"},"id":921,"name":"Identifier","src":"9420:11:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":455,"type":"bytes4","value":"NAME_INTERFACE_ID"},"id":922,"name":"Identifier","src":"9435:17:2"}],"id":923,"name":"BinaryOperation","src":"9420:32:2"}],"id":924,"name":"BinaryOperation","src":"9329:123:2"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":909,"type":"bytes4","value":"interfaceID"},"id":925,"name":"Identifier","src":"9464:11:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":458,"type":"bytes4","value":"ABI_INTERFACE_ID"},"id":926,"name":"Identifier","src":"9479:16:2"}],"id":927,"name":"BinaryOperation","src":"9464:31:2"}],"id":928,"name":"BinaryOperation","src":"9329:166:2"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":909,"type":"bytes4","value":"interfaceID"},"id":929,"name":"Identifier","src":"9507:11:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":461,"type":"bytes4","value":"PUBKEY_INTERFACE_ID"},"id":930,"name":"Identifier","src":"9522:19:2"}],"id":931,"name":"BinaryOperation","src":"9507:34:2"}],"id":932,"name":"BinaryOperation","src":"9329:212:2"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":909,"type":"bytes4","value":"interfaceID"},"id":933,"name":"Identifier","src":"9553:11:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":464,"type":"bytes4","value":"TEXT_INTERFACE_ID"},"id":934,"name":"Identifier","src":"9568:17:2"}],"id":935,"name":"BinaryOperation","src":"9553:32:2"}],"id":936,"name":"BinaryOperation","src":"9329:256:2"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":909,"type":"bytes4","value":"interfaceID"},"id":937,"name":"Identifier","src":"9597:11:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":467,"type":"bytes4","value":"MULTIHASH_INTERFACE_ID"},"id":938,"name":"Identifier","src":"9612:22:2"}],"id":939,"name":"BinaryOperation","src":"9597:37:2"}],"id":940,"name":"BinaryOperation","src":"9329:305:2"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":909,"type":"bytes4","value":"interfaceID"},"id":941,"name":"Identifier","src":"9646:11:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":446,"type":"bytes4","value":"INTERFACE_META_ID"},"id":942,"name":"Identifier","src":"9661:17:2"}],"id":943,"name":"BinaryOperation","src":"9646:32:2"}],"id":944,"name":"BinaryOperation","src":"9329:349:2"}],"id":945,"name":"Return","src":"9322:356:2"}],"id":946,"name":"Block","src":"9312:373:2"}],"id":947,"name":"FunctionDefinition","src":"9238:447:2"}],"id":948,"name":"ContractDefinition","src":"1553:8134:2"}],"id":949,"name":"SourceUnit","src":"1406:8282:2"}},"externals/strings.sol":{"AST":{"attributes":{"absolutePath":"externals/strings.sol","exportedSymbols":{"strings":[3327]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".14"]},"id":1634,"name":"PragmaDirective","src":"2574:24:3"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"library","documentation":null,"fullyImplemented":true,"linearizedBaseContracts":[3327],"name":"strings","scope":3328},"children":[{"attributes":{"canonicalName":"strings.slice","name":"slice","scope":3327,"visibility":"public"},"children":[{"attributes":{"constant":false,"name":"_len","scope":1639,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1635,"name":"ElementaryTypeName","src":"2645:4:3"}],"id":1636,"name":"VariableDeclaration","src":"2645:9:3"},{"attributes":{"constant":false,"name":"_ptr","scope":1639,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1637,"name":"ElementaryTypeName","src":"2664:4:3"}],"id":1638,"name":"VariableDeclaration","src":"2664:9:3"}],"id":1639,"name":"StructDefinition","src":"2622:58:3"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"memcpy","payable":false,"scope":3327,"stateMutability":"pure","superFunction":null,"visibility":"private"},"children":[{"children":[{"attributes":{"constant":false,"name":"dest","scope":1679,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1640,"name":"ElementaryTypeName","src":"2702:4:3"}],"id":1641,"name":"VariableDeclaration","src":"2702:9:3"},{"attributes":{"constant":false,"name":"src","scope":1679,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1642,"name":"ElementaryTypeName","src":"2713:4:3"}],"id":1643,"name":"VariableDeclaration","src":"2713:8:3"},{"attributes":{"constant":false,"name":"len","scope":1679,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1644,"name":"ElementaryTypeName","src":"2723:4:3"}],"id":1645,"name":"VariableDeclaration","src":"2723:8:3"}],"id":1646,"name":"ParameterList","src":"2701:31:3"},{"attributes":{"parameters":[null]},"children":[],"id":1647,"name":"ParameterList","src":"2746:0:3"},{"children":[{"attributes":{"initializationExpression":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1645,"type":"uint256","value":"len"},"id":1648,"name":"Identifier","src":"2812:3:3"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":1649,"name":"Literal","src":"2819:2:3"}],"id":1650,"name":"BinaryOperation","src":"2812:9:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1645,"type":"uint256","value":"len"},"id":1651,"name":"Identifier","src":"2823:3:3"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":1652,"name":"Literal","src":"2830:2:3"}],"id":1653,"name":"Assignment","src":"2823:9:3"}],"id":1654,"name":"ExpressionStatement","src":"2823:9:3"},{"children":[{"attributes":{"externalReferences":[{"dest":{"declaration":1641,"isOffset":false,"isSlot":false,"src":"2882:4:3","valueSize":1}},{"src":{"declaration":1643,"isOffset":false,"isSlot":false,"src":"2894:3:3","valueSize":1}}],"operations":"{\n mstore(dest, mload(src))\n}"},"children":[],"id":1655,"name":"InlineAssembly","src":"2848:82:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1641,"type":"uint256","value":"dest"},"id":1656,"name":"Identifier","src":"2926:4:3"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":1657,"name":"Literal","src":"2934:2:3"}],"id":1658,"name":"Assignment","src":"2926:10:3"}],"id":1659,"name":"ExpressionStatement","src":"2926:10:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1643,"type":"uint256","value":"src"},"id":1660,"name":"Identifier","src":"2950:3:3"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":1661,"name":"Literal","src":"2957:2:3"}],"id":1662,"name":"Assignment","src":"2950:9:3"}],"id":1663,"name":"ExpressionStatement","src":"2950:9:3"}],"id":1664,"name":"Block","src":"2834:136:3"}],"id":1665,"name":"ForStatement","src":"2806:164:3"},{"attributes":{"assignments":[1667]},"children":[{"attributes":{"constant":false,"name":"mask","scope":1679,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1666,"name":"ElementaryTypeName","src":"3012:4:3"}],"id":1667,"name":"VariableDeclaration","src":"3012:9:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"**","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"323536","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 256","value":"256"},"id":1668,"name":"Literal","src":"3024:3:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":1669,"name":"Literal","src":"3032:2:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1645,"type":"uint256","value":"len"},"id":1670,"name":"Identifier","src":"3037:3:3"}],"id":1671,"name":"BinaryOperation","src":"3032:8:3"}],"id":1672,"name":"TupleExpression","src":"3031:10:3"}],"id":1673,"name":"BinaryOperation","src":"3024:17:3"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":1674,"name":"Literal","src":"3044:1:3"}],"id":1675,"name":"BinaryOperation","src":"3024:21:3"}],"id":1676,"name":"VariableDeclarationStatement","src":"3012:33:3"},{"attributes":{"externalReferences":[{"mask":{"declaration":1667,"isOffset":false,"isSlot":false,"src":"3113:4:3","valueSize":1}},{"src":{"declaration":1643,"isOffset":false,"isSlot":false,"src":"3103:3:3","valueSize":1}},{"dest":{"declaration":1641,"isOffset":false,"isSlot":false,"src":"3158:4:3","valueSize":1}},{"dest":{"declaration":1641,"isOffset":false,"isSlot":false,"src":"3190:4:3","valueSize":1}},{"mask":{"declaration":1667,"isOffset":false,"isSlot":false,"src":"3165:4:3","valueSize":1}}],"operations":"{\n let srcpart := and(mload(src), not(mask))\n let destpart := and(mload(dest), mask)\n mstore(dest, or(destpart, srcpart))\n}"},"children":[],"id":1677,"name":"InlineAssembly","src":"3055:179:3"}],"id":1678,"name":"Block","src":"2746:488:3"}],"id":1679,"name":"FunctionDefinition","src":"2686:548:3"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"toSlice","payable":false,"scope":3327,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":1699,"stateVariable":false,"storageLocation":"memory","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":1680,"name":"ElementaryTypeName","src":"3451:6:3"}],"id":1681,"name":"VariableDeclaration","src":"3451:18:3"}],"id":1682,"name":"ParameterList","src":"3450:20:3"},{"children":[{"attributes":{"constant":false,"name":"","scope":1699,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1639,"type":"struct strings.slice"},"id":1683,"name":"UserDefinedTypeName","src":"3494:5:3"}],"id":1684,"name":"VariableDeclaration","src":"3494:5:3"}],"id":1685,"name":"ParameterList","src":"3493:14:3"},{"children":[{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"ptr","scope":1699,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1686,"name":"ElementaryTypeName","src":"3518:4:3"}],"id":1687,"name":"VariableDeclaration","src":"3518:8:3"}],"id":1688,"name":"VariableDeclarationStatement","src":"3518:8:3"},{"attributes":{"externalReferences":[{"ptr":{"declaration":1687,"isOffset":false,"isSlot":false,"src":"3559:3:3","valueSize":1}},{"self":{"declaration":1681,"isOffset":false,"isSlot":false,"src":"3570:4:3","valueSize":1}}],"operations":"{\n ptr := add(self, 0x20)\n}"},"children":[],"id":1689,"name":"InlineAssembly","src":"3536:70:3"},{"attributes":{"functionReturnParameters":1685},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":true,"lValueRequested":false,"names":[null],"type":"struct strings.slice memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":1639,"type":"type(struct strings.slice storage pointer)","value":"slice"},"id":1690,"name":"Identifier","src":"3607:5:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes storage pointer)","value":"bytes"},"id":1691,"name":"ElementaryTypeNameExpression","src":"3613:5:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1681,"type":"string memory","value":"self"},"id":1692,"name":"Identifier","src":"3619:4:3"}],"id":1693,"name":"FunctionCall","src":"3613:11:3"}],"id":1694,"name":"MemberAccess","src":"3613:18:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1687,"type":"uint256","value":"ptr"},"id":1695,"name":"Identifier","src":"3633:3:3"}],"id":1696,"name":"FunctionCall","src":"3607:30:3"}],"id":1697,"name":"Return","src":"3600:37:3"}],"id":1698,"name":"Block","src":"3508:136:3"}],"id":1699,"name":"FunctionDefinition","src":"3434:210:3"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"len","payable":false,"scope":3327,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":1815,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":1700,"name":"ElementaryTypeName","src":"3853:7:3"}],"id":1701,"name":"VariableDeclaration","src":"3853:12:3"}],"id":1702,"name":"ParameterList","src":"3852:14:3"},{"children":[{"attributes":{"constant":false,"name":"","scope":1815,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1703,"name":"ElementaryTypeName","src":"3890:4:3"}],"id":1704,"name":"VariableDeclaration","src":"3890:4:3"}],"id":1705,"name":"ParameterList","src":"3889:6:3"},{"children":[{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"ret","scope":1815,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1706,"name":"ElementaryTypeName","src":"3906:4:3"}],"id":1707,"name":"VariableDeclaration","src":"3906:8:3"}],"id":1708,"name":"VariableDeclarationStatement","src":"3906:8:3"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1701,"type":"bytes32","value":"self"},"id":1709,"name":"Identifier","src":"3928:4:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1710,"name":"Literal","src":"3936:1:3"}],"id":1711,"name":"BinaryOperation","src":"3928:9:3"},{"attributes":{"functionReturnParameters":1705},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1712,"name":"Literal","src":"3958:1:3"}],"id":1713,"name":"Return","src":"3951:8:3"}],"id":1714,"name":"IfStatement","src":"3924:35:3"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1701,"type":"bytes32","value":"self"},"id":1715,"name":"Identifier","src":"3973:4:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30786666666666666666666666666666666666666666666666666666666666666666","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3402...(31 digits omitted)...1455","value":"0xffffffffffffffffffffffffffffffff"},"id":1716,"name":"Literal","src":"3980:34:3"}],"id":1717,"name":"BinaryOperation","src":"3973:41:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1718,"name":"Literal","src":"4018:1:3"}],"id":1719,"name":"BinaryOperation","src":"3973:46:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1707,"type":"uint256","value":"ret"},"id":1720,"name":"Identifier","src":"4035:3:3"},{"attributes":{"argumentTypes":null,"hexvalue":"3136","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 16","value":"16"},"id":1721,"name":"Literal","src":"4042:2:3"}],"id":1722,"name":"Assignment","src":"4035:9:3"}],"id":1723,"name":"ExpressionStatement","src":"4035:9:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1701,"type":"bytes32","value":"self"},"id":1724,"name":"Identifier","src":"4058:4:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes32)","value":"bytes32"},"id":1725,"name":"ElementaryTypeNameExpression","src":"4065:7:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"/","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint"},"id":1726,"name":"ElementaryTypeNameExpression","src":"4073:4:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1701,"type":"bytes32","value":"self"},"id":1727,"name":"Identifier","src":"4078:4:3"}],"id":1728,"name":"FunctionCall","src":"4073:10:3"},{"attributes":{"argumentTypes":null,"hexvalue":"3078313030303030303030303030303030303030303030303030303030303030303030","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3402...(31 digits omitted)...1456","value":"0x100000000000000000000000000000000"},"id":1729,"name":"Literal","src":"4086:35:3"}],"id":1730,"name":"BinaryOperation","src":"4073:48:3"}],"id":1731,"name":"FunctionCall","src":"4065:57:3"}],"id":1732,"name":"Assignment","src":"4058:64:3"}],"id":1733,"name":"ExpressionStatement","src":"4058:64:3"}],"id":1734,"name":"Block","src":"4021:112:3"}],"id":1735,"name":"IfStatement","src":"3969:164:3"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1701,"type":"bytes32","value":"self"},"id":1736,"name":"Identifier","src":"4146:4:3"},{"attributes":{"argumentTypes":null,"hexvalue":"307866666666666666666666666666666666","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 18446744073709551615","value":"0xffffffffffffffff"},"id":1737,"name":"Literal","src":"4153:18:3"}],"id":1738,"name":"BinaryOperation","src":"4146:25:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1739,"name":"Literal","src":"4175:1:3"}],"id":1740,"name":"BinaryOperation","src":"4146:30:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1707,"type":"uint256","value":"ret"},"id":1741,"name":"Identifier","src":"4192:3:3"},{"attributes":{"argumentTypes":null,"hexvalue":"38","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 8","value":"8"},"id":1742,"name":"Literal","src":"4199:1:3"}],"id":1743,"name":"Assignment","src":"4192:8:3"}],"id":1744,"name":"ExpressionStatement","src":"4192:8:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1701,"type":"bytes32","value":"self"},"id":1745,"name":"Identifier","src":"4214:4:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes32)","value":"bytes32"},"id":1746,"name":"ElementaryTypeNameExpression","src":"4221:7:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"/","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint"},"id":1747,"name":"ElementaryTypeNameExpression","src":"4229:4:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1701,"type":"bytes32","value":"self"},"id":1748,"name":"Identifier","src":"4234:4:3"}],"id":1749,"name":"FunctionCall","src":"4229:10:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30783130303030303030303030303030303030","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 18446744073709551616","value":"0x10000000000000000"},"id":1750,"name":"Literal","src":"4242:19:3"}],"id":1751,"name":"BinaryOperation","src":"4229:32:3"}],"id":1752,"name":"FunctionCall","src":"4221:41:3"}],"id":1753,"name":"Assignment","src":"4214:48:3"}],"id":1754,"name":"ExpressionStatement","src":"4214:48:3"}],"id":1755,"name":"Block","src":"4178:95:3"}],"id":1756,"name":"IfStatement","src":"4142:131:3"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1701,"type":"bytes32","value":"self"},"id":1757,"name":"Identifier","src":"4286:4:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30786666666666666666","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4294967295","value":"0xffffffff"},"id":1758,"name":"Literal","src":"4293:10:3"}],"id":1759,"name":"BinaryOperation","src":"4286:17:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1760,"name":"Literal","src":"4307:1:3"}],"id":1761,"name":"BinaryOperation","src":"4286:22:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1707,"type":"uint256","value":"ret"},"id":1762,"name":"Identifier","src":"4324:3:3"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":1763,"name":"Literal","src":"4331:1:3"}],"id":1764,"name":"Assignment","src":"4324:8:3"}],"id":1765,"name":"ExpressionStatement","src":"4324:8:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1701,"type":"bytes32","value":"self"},"id":1766,"name":"Identifier","src":"4346:4:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes32)","value":"bytes32"},"id":1767,"name":"ElementaryTypeNameExpression","src":"4353:7:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"/","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint"},"id":1768,"name":"ElementaryTypeNameExpression","src":"4361:4:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1701,"type":"bytes32","value":"self"},"id":1769,"name":"Identifier","src":"4366:4:3"}],"id":1770,"name":"FunctionCall","src":"4361:10:3"},{"attributes":{"argumentTypes":null,"hexvalue":"3078313030303030303030","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4294967296","value":"0x100000000"},"id":1771,"name":"Literal","src":"4374:11:3"}],"id":1772,"name":"BinaryOperation","src":"4361:24:3"}],"id":1773,"name":"FunctionCall","src":"4353:33:3"}],"id":1774,"name":"Assignment","src":"4346:40:3"}],"id":1775,"name":"ExpressionStatement","src":"4346:40:3"}],"id":1776,"name":"Block","src":"4310:87:3"}],"id":1777,"name":"IfStatement","src":"4282:115:3"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1701,"type":"bytes32","value":"self"},"id":1778,"name":"Identifier","src":"4410:4:3"},{"attributes":{"argumentTypes":null,"hexvalue":"307866666666","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 65535","value":"0xffff"},"id":1779,"name":"Literal","src":"4417:6:3"}],"id":1780,"name":"BinaryOperation","src":"4410:13:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1781,"name":"Literal","src":"4427:1:3"}],"id":1782,"name":"BinaryOperation","src":"4410:18:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1707,"type":"uint256","value":"ret"},"id":1783,"name":"Identifier","src":"4444:3:3"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":1784,"name":"Literal","src":"4451:1:3"}],"id":1785,"name":"Assignment","src":"4444:8:3"}],"id":1786,"name":"ExpressionStatement","src":"4444:8:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1701,"type":"bytes32","value":"self"},"id":1787,"name":"Identifier","src":"4466:4:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes32)","value":"bytes32"},"id":1788,"name":"ElementaryTypeNameExpression","src":"4473:7:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"/","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint"},"id":1789,"name":"ElementaryTypeNameExpression","src":"4481:4:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1701,"type":"bytes32","value":"self"},"id":1790,"name":"Identifier","src":"4486:4:3"}],"id":1791,"name":"FunctionCall","src":"4481:10:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30783130303030","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 65536","value":"0x10000"},"id":1792,"name":"Literal","src":"4494:7:3"}],"id":1793,"name":"BinaryOperation","src":"4481:20:3"}],"id":1794,"name":"FunctionCall","src":"4473:29:3"}],"id":1795,"name":"Assignment","src":"4466:36:3"}],"id":1796,"name":"ExpressionStatement","src":"4466:36:3"}],"id":1797,"name":"Block","src":"4430:83:3"}],"id":1798,"name":"IfStatement","src":"4406:107:3"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1701,"type":"bytes32","value":"self"},"id":1799,"name":"Identifier","src":"4526:4:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30786666","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 255","value":"0xff"},"id":1800,"name":"Literal","src":"4533:4:3"}],"id":1801,"name":"BinaryOperation","src":"4526:11:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1802,"name":"Literal","src":"4541:1:3"}],"id":1803,"name":"BinaryOperation","src":"4526:16:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1707,"type":"uint256","value":"ret"},"id":1804,"name":"Identifier","src":"4558:3:3"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":1805,"name":"Literal","src":"4565:1:3"}],"id":1806,"name":"Assignment","src":"4558:8:3"}],"id":1807,"name":"ExpressionStatement","src":"4558:8:3"}],"id":1808,"name":"Block","src":"4544:33:3"}],"id":1809,"name":"IfStatement","src":"4522:55:3"},{"attributes":{"functionReturnParameters":1705},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":1810,"name":"Literal","src":"4593:2:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1707,"type":"uint256","value":"ret"},"id":1811,"name":"Identifier","src":"4598:3:3"}],"id":1812,"name":"BinaryOperation","src":"4593:8:3"}],"id":1813,"name":"Return","src":"4586:15:3"}],"id":1814,"name":"Block","src":"3896:712:3"}],"id":1815,"name":"FunctionDefinition","src":"3840:768:3"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"toSliceB32","payable":false,"scope":3327,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":1832,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":1816,"name":"ElementaryTypeName","src":"4934:7:3"}],"id":1817,"name":"VariableDeclaration","src":"4934:12:3"}],"id":1818,"name":"ParameterList","src":"4933:14:3"},{"children":[{"attributes":{"constant":false,"name":"ret","scope":1832,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1639,"type":"struct strings.slice"},"id":1819,"name":"UserDefinedTypeName","src":"4971:5:3"}],"id":1820,"name":"VariableDeclaration","src":"4971:16:3"}],"id":1821,"name":"ParameterList","src":"4970:18:3"},{"children":[{"attributes":{"externalReferences":[{"ret":{"declaration":1820,"isOffset":false,"isSlot":false,"src":"5222:3:3","valueSize":1}},{"self":{"declaration":1817,"isOffset":false,"isSlot":false,"src":"5193:4:3","valueSize":1}}],"operations":"{\n let ptr := mload(0x40)\n mstore(0x40, add(ptr, 0x20))\n mstore(ptr, self)\n mstore(add(ret, 0x20), ptr)\n}"},"children":[],"id":1822,"name":"InlineAssembly","src":"5082:178:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":1636,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1820,"type":"struct strings.slice memory","value":"ret"},"id":1823,"name":"Identifier","src":"5257:3:3"}],"id":1825,"name":"MemberAccess","src":"5257:8:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[1815,1965],"referencedDeclaration":1815,"type":"function (bytes32) pure returns (uint256)","value":"len"},"id":1826,"name":"Identifier","src":"5268:3:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1817,"type":"bytes32","value":"self"},"id":1827,"name":"Identifier","src":"5272:4:3"}],"id":1828,"name":"FunctionCall","src":"5268:9:3"}],"id":1829,"name":"Assignment","src":"5257:20:3"}],"id":1830,"name":"ExpressionStatement","src":"5257:20:3"}],"id":1831,"name":"Block","src":"4989:295:3"}],"id":1832,"name":"FunctionDefinition","src":"4914:370:3"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"copy","payable":false,"scope":3327,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":1847,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1639,"type":"struct strings.slice"},"id":1833,"name":"UserDefinedTypeName","src":"5499:5:3"}],"id":1834,"name":"VariableDeclaration","src":"5499:17:3"}],"id":1835,"name":"ParameterList","src":"5498:19:3"},{"children":[{"attributes":{"constant":false,"name":"","scope":1847,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1639,"type":"struct strings.slice"},"id":1836,"name":"UserDefinedTypeName","src":"5541:5:3"}],"id":1837,"name":"VariableDeclaration","src":"5541:5:3"}],"id":1838,"name":"ParameterList","src":"5540:14:3"},{"children":[{"attributes":{"functionReturnParameters":1838},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":true,"lValueRequested":false,"names":[null],"type":"struct strings.slice memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":1639,"type":"type(struct strings.slice storage pointer)","value":"slice"},"id":1839,"name":"Identifier","src":"5572:5:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1636,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1834,"type":"struct strings.slice memory","value":"self"},"id":1840,"name":"Identifier","src":"5578:4:3"}],"id":1841,"name":"MemberAccess","src":"5578:9:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":1638,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1834,"type":"struct strings.slice memory","value":"self"},"id":1842,"name":"Identifier","src":"5589:4:3"}],"id":1843,"name":"MemberAccess","src":"5589:9:3"}],"id":1844,"name":"FunctionCall","src":"5572:27:3"}],"id":1845,"name":"Return","src":"5565:34:3"}],"id":1846,"name":"Block","src":"5555:51:3"}],"id":1847,"name":"FunctionDefinition","src":"5485:121:3"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"toString","payable":false,"scope":3327,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":1877,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1639,"type":"struct strings.slice"},"id":1848,"name":"UserDefinedTypeName","src":"5796:5:3"}],"id":1849,"name":"VariableDeclaration","src":"5796:17:3"}],"id":1850,"name":"ParameterList","src":"5795:19:3"},{"children":[{"attributes":{"constant":false,"name":"","scope":1877,"stateVariable":false,"storageLocation":"memory","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":1851,"name":"ElementaryTypeName","src":"5838:6:3"}],"id":1852,"name":"VariableDeclaration","src":"5838:6:3"}],"id":1853,"name":"ParameterList","src":"5837:15:3"},{"children":[{"attributes":{"assignments":[1855]},"children":[{"attributes":{"constant":false,"name":"ret","scope":1877,"stateVariable":false,"storageLocation":"memory","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":1854,"name":"ElementaryTypeName","src":"5863:6:3"}],"id":1855,"name":"VariableDeclaration","src":"5863:17:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (string memory)"},"children":[{"attributes":{"name":"string","type":"string"},"id":1856,"name":"ElementaryTypeName","src":"5887:6:3"}],"id":1857,"name":"NewExpression","src":"5883:10:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1636,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1849,"type":"struct strings.slice memory","value":"self"},"id":1858,"name":"Identifier","src":"5894:4:3"}],"id":1859,"name":"MemberAccess","src":"5894:9:3"}],"id":1860,"name":"FunctionCall","src":"5883:21:3"}],"id":1861,"name":"VariableDeclarationStatement","src":"5863:41:3"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"retptr","scope":1877,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1862,"name":"ElementaryTypeName","src":"5914:4:3"}],"id":1863,"name":"VariableDeclaration","src":"5914:11:3"}],"id":1864,"name":"VariableDeclarationStatement","src":"5914:11:3"},{"attributes":{"externalReferences":[{"retptr":{"declaration":1863,"isOffset":false,"isSlot":false,"src":"5946:6:3","valueSize":1}},{"ret":{"declaration":1855,"isOffset":false,"isSlot":false,"src":"5960:3:3","valueSize":1}}],"operations":"{\n retptr := add(ret, 32)\n}"},"children":[],"id":1865,"name":"InlineAssembly","src":"5935:51:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":1679,"type":"function (uint256,uint256,uint256) pure","value":"memcpy"},"id":1866,"name":"Identifier","src":"5980:6:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1863,"type":"uint256","value":"retptr"},"id":1867,"name":"Identifier","src":"5987:6:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":1638,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1849,"type":"struct strings.slice memory","value":"self"},"id":1868,"name":"Identifier","src":"5995:4:3"}],"id":1869,"name":"MemberAccess","src":"5995:9:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1636,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1849,"type":"struct strings.slice memory","value":"self"},"id":1870,"name":"Identifier","src":"6006:4:3"}],"id":1871,"name":"MemberAccess","src":"6006:9:3"}],"id":1872,"name":"FunctionCall","src":"5980:36:3"}],"id":1873,"name":"ExpressionStatement","src":"5980:36:3"},{"attributes":{"functionReturnParameters":1853},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1855,"type":"string memory","value":"ret"},"id":1874,"name":"Identifier","src":"6033:3:3"}],"id":1875,"name":"Return","src":"6026:10:3"}],"id":1876,"name":"Block","src":"5853:190:3"}],"id":1877,"name":"FunctionDefinition","src":"5778:265:3"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"len","payable":false,"scope":3327,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":1965,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1639,"type":"struct strings.slice"},"id":1878,"name":"UserDefinedTypeName","src":"6447:5:3"}],"id":1879,"name":"VariableDeclaration","src":"6447:17:3"}],"id":1880,"name":"ParameterList","src":"6446:19:3"},{"children":[{"attributes":{"constant":false,"name":"l","scope":1965,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1881,"name":"ElementaryTypeName","src":"6489:4:3"}],"id":1882,"name":"VariableDeclaration","src":"6489:6:3"}],"id":1883,"name":"ParameterList","src":"6488:8:3"},{"children":[{"attributes":{"assignments":[1885]},"children":[{"attributes":{"constant":false,"name":"ptr","scope":1965,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1884,"name":"ElementaryTypeName","src":"6582:4:3"}],"id":1885,"name":"VariableDeclaration","src":"6582:8:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":1638,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1879,"type":"struct strings.slice memory","value":"self"},"id":1886,"name":"Identifier","src":"6593:4:3"}],"id":1887,"name":"MemberAccess","src":"6593:9:3"},{"attributes":{"argumentTypes":null,"hexvalue":"3331","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 31","value":"31"},"id":1888,"name":"Literal","src":"6605:2:3"}],"id":1889,"name":"BinaryOperation","src":"6593:14:3"}],"id":1890,"name":"VariableDeclarationStatement","src":"6582:25:3"},{"attributes":{"assignments":[1892]},"children":[{"attributes":{"constant":false,"name":"end","scope":1965,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1891,"name":"ElementaryTypeName","src":"6617:4:3"}],"id":1892,"name":"VariableDeclaration","src":"6617:8:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1885,"type":"uint256","value":"ptr"},"id":1893,"name":"Identifier","src":"6628:3:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1636,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1879,"type":"struct strings.slice memory","value":"self"},"id":1894,"name":"Identifier","src":"6634:4:3"}],"id":1895,"name":"MemberAccess","src":"6634:9:3"}],"id":1896,"name":"BinaryOperation","src":"6628:15:3"}],"id":1897,"name":"VariableDeclarationStatement","src":"6617:26:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1882,"type":"uint256","value":"l"},"id":1898,"name":"Identifier","src":"6658:1:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1899,"name":"Literal","src":"6662:1:3"}],"id":1900,"name":"Assignment","src":"6658:5:3"}],"id":1901,"name":"ExpressionStatement","src":"6658:5:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1885,"type":"uint256","value":"ptr"},"id":1902,"name":"Identifier","src":"6665:3:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1892,"type":"uint256","value":"end"},"id":1903,"name":"Identifier","src":"6671:3:3"}],"id":1904,"name":"BinaryOperation","src":"6665:9:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1882,"type":"uint256","value":"l"},"id":1905,"name":"Identifier","src":"6676:1:3"}],"id":1906,"name":"UnaryOperation","src":"6676:3:3"}],"id":1907,"name":"ExpressionStatement","src":"6676:3:3"},{"children":[{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"b","scope":1965,"stateVariable":false,"storageLocation":"default","type":"uint8","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint8","type":"uint8"},"id":1908,"name":"ElementaryTypeName","src":"6695:5:3"}],"id":1909,"name":"VariableDeclaration","src":"6695:7:3"}],"id":1910,"name":"VariableDeclarationStatement","src":"6695:7:3"},{"attributes":{"externalReferences":[{"ptr":{"declaration":1885,"isOffset":false,"isSlot":false,"src":"6742:3:3","valueSize":1}},{"b":{"declaration":1909,"isOffset":false,"isSlot":false,"src":"6727:1:3","valueSize":1}}],"operations":"{\n b := and(mload(ptr), 0xFF)\n}"},"children":[],"id":1911,"name":"InlineAssembly","src":"6716:54:3"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1909,"type":"uint8","value":"b"},"id":1912,"name":"Identifier","src":"6772:1:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30783830","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 128","value":"0x80"},"id":1913,"name":"Literal","src":"6776:4:3"}],"id":1914,"name":"BinaryOperation","src":"6772:8:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1885,"type":"uint256","value":"ptr"},"id":1915,"name":"Identifier","src":"6800:3:3"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":1916,"name":"Literal","src":"6807:1:3"}],"id":1917,"name":"Assignment","src":"6800:8:3"}],"id":1918,"name":"ExpressionStatement","src":"6800:8:3"}],"id":1919,"name":"Block","src":"6782:41:3"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1909,"type":"uint8","value":"b"},"id":1920,"name":"Identifier","src":"6832:1:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30784530","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 224","value":"0xE0"},"id":1921,"name":"Literal","src":"6836:4:3"}],"id":1922,"name":"BinaryOperation","src":"6832:8:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1885,"type":"uint256","value":"ptr"},"id":1923,"name":"Identifier","src":"6860:3:3"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":1924,"name":"Literal","src":"6867:1:3"}],"id":1925,"name":"Assignment","src":"6860:8:3"}],"id":1926,"name":"ExpressionStatement","src":"6860:8:3"}],"id":1927,"name":"Block","src":"6842:41:3"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1909,"type":"uint8","value":"b"},"id":1928,"name":"Identifier","src":"6892:1:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30784630","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 240","value":"0xF0"},"id":1929,"name":"Literal","src":"6896:4:3"}],"id":1930,"name":"BinaryOperation","src":"6892:8:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1885,"type":"uint256","value":"ptr"},"id":1931,"name":"Identifier","src":"6920:3:3"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":1932,"name":"Literal","src":"6927:1:3"}],"id":1933,"name":"Assignment","src":"6920:8:3"}],"id":1934,"name":"ExpressionStatement","src":"6920:8:3"}],"id":1935,"name":"Block","src":"6902:41:3"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1909,"type":"uint8","value":"b"},"id":1936,"name":"Identifier","src":"6952:1:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30784638","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 248","value":"0xF8"},"id":1937,"name":"Literal","src":"6956:4:3"}],"id":1938,"name":"BinaryOperation","src":"6952:8:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1885,"type":"uint256","value":"ptr"},"id":1939,"name":"Identifier","src":"6980:3:3"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":1940,"name":"Literal","src":"6987:1:3"}],"id":1941,"name":"Assignment","src":"6980:8:3"}],"id":1942,"name":"ExpressionStatement","src":"6980:8:3"}],"id":1943,"name":"Block","src":"6962:41:3"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1909,"type":"uint8","value":"b"},"id":1944,"name":"Identifier","src":"7012:1:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30784643","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 252","value":"0xFC"},"id":1945,"name":"Literal","src":"7016:4:3"}],"id":1946,"name":"BinaryOperation","src":"7012:8:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1885,"type":"uint256","value":"ptr"},"id":1947,"name":"Identifier","src":"7040:3:3"},{"attributes":{"argumentTypes":null,"hexvalue":"35","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 5","value":"5"},"id":1948,"name":"Literal","src":"7047:1:3"}],"id":1949,"name":"Assignment","src":"7040:8:3"}],"id":1950,"name":"ExpressionStatement","src":"7040:8:3"}],"id":1951,"name":"Block","src":"7022:41:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1885,"type":"uint256","value":"ptr"},"id":1952,"name":"Identifier","src":"7087:3:3"},{"attributes":{"argumentTypes":null,"hexvalue":"36","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 6","value":"6"},"id":1953,"name":"Literal","src":"7094:1:3"}],"id":1954,"name":"Assignment","src":"7087:8:3"}],"id":1955,"name":"ExpressionStatement","src":"7087:8:3"}],"id":1956,"name":"Block","src":"7069:41:3"}],"id":1957,"name":"IfStatement","src":"7009:101:3"}],"id":1958,"name":"IfStatement","src":"6949:161:3"}],"id":1959,"name":"IfStatement","src":"6889:221:3"}],"id":1960,"name":"IfStatement","src":"6829:281:3"}],"id":1961,"name":"IfStatement","src":"6768:342:3"}],"id":1962,"name":"Block","src":"6681:439:3"}],"id":1963,"name":"ForStatement","src":"6653:467:3"}],"id":1964,"name":"Block","src":"6497:629:3"}],"id":1965,"name":"FunctionDefinition","src":"6434:692:3"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"empty","payable":false,"scope":3327,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":1978,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1639,"type":"struct strings.slice"},"id":1966,"name":"UserDefinedTypeName","src":"7334:5:3"}],"id":1967,"name":"VariableDeclaration","src":"7334:17:3"}],"id":1968,"name":"ParameterList","src":"7333:19:3"},{"children":[{"attributes":{"constant":false,"name":"","scope":1978,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":1969,"name":"ElementaryTypeName","src":"7376:4:3"}],"id":1970,"name":"VariableDeclaration","src":"7376:4:3"}],"id":1971,"name":"ParameterList","src":"7375:6:3"},{"children":[{"attributes":{"functionReturnParameters":1971},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1636,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1967,"type":"struct strings.slice memory","value":"self"},"id":1972,"name":"Identifier","src":"7399:4:3"}],"id":1973,"name":"MemberAccess","src":"7399:9:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1974,"name":"Literal","src":"7412:1:3"}],"id":1975,"name":"BinaryOperation","src":"7399:14:3"}],"id":1976,"name":"Return","src":"7392:21:3"}],"id":1977,"name":"Block","src":"7382:38:3"}],"id":1978,"name":"FunctionDefinition","src":"7319:101:3"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"compare","payable":false,"scope":3327,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":2107,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1639,"type":"struct strings.slice"},"id":1979,"name":"UserDefinedTypeName","src":"7865:5:3"}],"id":1980,"name":"VariableDeclaration","src":"7865:17:3"},{"attributes":{"constant":false,"name":"other","scope":2107,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1639,"type":"struct strings.slice"},"id":1981,"name":"UserDefinedTypeName","src":"7884:5:3"}],"id":1982,"name":"VariableDeclaration","src":"7884:18:3"}],"id":1983,"name":"ParameterList","src":"7864:39:3"},{"children":[{"attributes":{"constant":false,"name":"","scope":2107,"stateVariable":false,"storageLocation":"default","type":"int256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"int","type":"int256"},"id":1984,"name":"ElementaryTypeName","src":"7927:3:3"}],"id":1985,"name":"VariableDeclaration","src":"7927:3:3"}],"id":1986,"name":"ParameterList","src":"7926:5:3"},{"children":[{"attributes":{"assignments":[1988]},"children":[{"attributes":{"constant":false,"name":"shortest","scope":2107,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1987,"name":"ElementaryTypeName","src":"7942:4:3"}],"id":1988,"name":"VariableDeclaration","src":"7942:13:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1636,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1980,"type":"struct strings.slice memory","value":"self"},"id":1989,"name":"Identifier","src":"7958:4:3"}],"id":1990,"name":"MemberAccess","src":"7958:9:3"}],"id":1991,"name":"VariableDeclarationStatement","src":"7942:25:3"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1636,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1982,"type":"struct strings.slice memory","value":"other"},"id":1992,"name":"Identifier","src":"7981:5:3"}],"id":1993,"name":"MemberAccess","src":"7981:10:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1636,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1980,"type":"struct strings.slice memory","value":"self"},"id":1994,"name":"Identifier","src":"7994:4:3"}],"id":1995,"name":"MemberAccess","src":"7994:9:3"}],"id":1996,"name":"BinaryOperation","src":"7981:22:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1988,"type":"uint256","value":"shortest"},"id":1997,"name":"Identifier","src":"8017:8:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1636,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1982,"type":"struct strings.slice memory","value":"other"},"id":1998,"name":"Identifier","src":"8028:5:3"}],"id":1999,"name":"MemberAccess","src":"8028:10:3"}],"id":2000,"name":"Assignment","src":"8017:21:3"}],"id":2001,"name":"ExpressionStatement","src":"8017:21:3"}],"id":2002,"name":"IfStatement","src":"7977:61:3"},{"attributes":{"assignments":[2004]},"children":[{"attributes":{"constant":false,"name":"selfptr","scope":2107,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2003,"name":"ElementaryTypeName","src":"8049:4:3"}],"id":2004,"name":"VariableDeclaration","src":"8049:12:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":1638,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1980,"type":"struct strings.slice memory","value":"self"},"id":2005,"name":"Identifier","src":"8064:4:3"}],"id":2006,"name":"MemberAccess","src":"8064:9:3"}],"id":2007,"name":"VariableDeclarationStatement","src":"8049:24:3"},{"attributes":{"assignments":[2009]},"children":[{"attributes":{"constant":false,"name":"otherptr","scope":2107,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2008,"name":"ElementaryTypeName","src":"8083:4:3"}],"id":2009,"name":"VariableDeclaration","src":"8083:13:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":1638,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1982,"type":"struct strings.slice memory","value":"other"},"id":2010,"name":"Identifier","src":"8099:5:3"}],"id":2011,"name":"MemberAccess","src":"8099:10:3"}],"id":2012,"name":"VariableDeclarationStatement","src":"8083:26:3"},{"children":[{"attributes":{"assignments":[2014]},"children":[{"attributes":{"constant":false,"name":"idx","scope":2107,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2013,"name":"ElementaryTypeName","src":"8124:4:3"}],"id":2014,"name":"VariableDeclaration","src":"8124:8:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2015,"name":"Literal","src":"8135:1:3"}],"id":2016,"name":"VariableDeclarationStatement","src":"8124:12:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2014,"type":"uint256","value":"idx"},"id":2017,"name":"Identifier","src":"8138:3:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1988,"type":"uint256","value":"shortest"},"id":2018,"name":"Identifier","src":"8144:8:3"}],"id":2019,"name":"BinaryOperation","src":"8138:14:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2014,"type":"uint256","value":"idx"},"id":2020,"name":"Identifier","src":"8154:3:3"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":2021,"name":"Literal","src":"8161:2:3"}],"id":2022,"name":"Assignment","src":"8154:9:3"}],"id":2023,"name":"ExpressionStatement","src":"8154:9:3"},{"children":[{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"a","scope":2107,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2024,"name":"ElementaryTypeName","src":"8179:4:3"}],"id":2025,"name":"VariableDeclaration","src":"8179:6:3"}],"id":2026,"name":"VariableDeclarationStatement","src":"8179:6:3"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"b","scope":2107,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2027,"name":"ElementaryTypeName","src":"8199:4:3"}],"id":2028,"name":"VariableDeclaration","src":"8199:6:3"}],"id":2029,"name":"VariableDeclarationStatement","src":"8199:6:3"},{"attributes":{"externalReferences":[{"selfptr":{"declaration":2004,"isOffset":false,"isSlot":false,"src":"8257:7:3","valueSize":1}},{"a":{"declaration":2025,"isOffset":false,"isSlot":false,"src":"8246:1:3","valueSize":1}},{"b":{"declaration":2028,"isOffset":false,"isSlot":false,"src":"8282:1:3","valueSize":1}},{"otherptr":{"declaration":2009,"isOffset":false,"isSlot":false,"src":"8293:8:3","valueSize":1}}],"operations":"{\n a := mload(selfptr)\n b := mload(otherptr)\n}"},"children":[],"id":2030,"name":"InlineAssembly","src":"8219:112:3"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2025,"type":"uint256","value":"a"},"id":2031,"name":"Identifier","src":"8333:1:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2028,"type":"uint256","value":"b"},"id":2032,"name":"Identifier","src":"8338:1:3"}],"id":2033,"name":"BinaryOperation","src":"8333:6:3"},{"children":[{"attributes":{"assignments":[2035]},"children":[{"attributes":{"constant":false,"name":"mask","scope":2107,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":2034,"name":"ElementaryTypeName","src":"8420:7:3"}],"id":2035,"name":"VariableDeclaration","src":"8420:12:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_-1_by_1","typeString":"int_const -1"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint256"},"id":2036,"name":"ElementaryTypeNameExpression","src":"8435:7:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"-","prefix":true,"type":"int_const -1"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":2037,"name":"Literal","src":"8444:1:3"}],"id":2038,"name":"UnaryOperation","src":"8443:2:3"}],"id":2039,"name":"FunctionCall","src":"8435:11:3"}],"id":2040,"name":"VariableDeclarationStatement","src":"8420:26:3"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1988,"type":"uint256","value":"shortest"},"id":2041,"name":"Identifier","src":"8480:8:3"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":2042,"name":"Literal","src":"8491:2:3"}],"id":2043,"name":"BinaryOperation","src":"8480:13:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2035,"type":"uint256","value":"mask"},"id":2044,"name":"Identifier","src":"8515:4:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"~","prefix":true,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"**","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":2045,"name":"Literal","src":"8524:1:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"38","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 8","value":"8"},"id":2046,"name":"Literal","src":"8530:1:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":2047,"name":"Literal","src":"8535:2:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1988,"type":"uint256","value":"shortest"},"id":2048,"name":"Identifier","src":"8540:8:3"}],"id":2049,"name":"BinaryOperation","src":"8535:13:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2014,"type":"uint256","value":"idx"},"id":2050,"name":"Identifier","src":"8551:3:3"}],"id":2051,"name":"BinaryOperation","src":"8535:19:3"}],"id":2052,"name":"TupleExpression","src":"8534:21:3"}],"id":2053,"name":"BinaryOperation","src":"8530:25:3"}],"id":2054,"name":"TupleExpression","src":"8529:27:3"}],"id":2055,"name":"BinaryOperation","src":"8524:32:3"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":2056,"name":"Literal","src":"8559:1:3"}],"id":2057,"name":"BinaryOperation","src":"8524:36:3"}],"id":2058,"name":"TupleExpression","src":"8523:38:3"}],"id":2059,"name":"UnaryOperation","src":"8522:39:3"}],"id":2060,"name":"Assignment","src":"8515:46:3"}],"id":2061,"name":"ExpressionStatement","src":"8515:46:3"}],"id":2062,"name":"Block","src":"8495:85:3"}],"id":2063,"name":"IfStatement","src":"8477:103:3"},{"attributes":{"assignments":[2065]},"children":[{"attributes":{"constant":false,"name":"diff","scope":2107,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":2064,"name":"ElementaryTypeName","src":"8597:7:3"}],"id":2065,"name":"VariableDeclaration","src":"8597:12:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2025,"type":"uint256","value":"a"},"id":2066,"name":"Identifier","src":"8613:1:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2035,"type":"uint256","value":"mask"},"id":2067,"name":"Identifier","src":"8617:4:3"}],"id":2068,"name":"BinaryOperation","src":"8613:8:3"}],"id":2069,"name":"TupleExpression","src":"8612:10:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2028,"type":"uint256","value":"b"},"id":2070,"name":"Identifier","src":"8626:1:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2035,"type":"uint256","value":"mask"},"id":2071,"name":"Identifier","src":"8630:4:3"}],"id":2072,"name":"BinaryOperation","src":"8626:8:3"}],"id":2073,"name":"TupleExpression","src":"8625:10:3"}],"id":2074,"name":"BinaryOperation","src":"8612:23:3"}],"id":2075,"name":"VariableDeclarationStatement","src":"8597:38:3"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2065,"type":"uint256","value":"diff"},"id":2076,"name":"Identifier","src":"8657:4:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2077,"name":"Literal","src":"8665:1:3"}],"id":2078,"name":"BinaryOperation","src":"8657:9:3"},{"attributes":{"functionReturnParameters":1986},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"int256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(int256)","value":"int"},"id":2079,"name":"ElementaryTypeNameExpression","src":"8695:3:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2065,"type":"uint256","value":"diff"},"id":2080,"name":"Identifier","src":"8699:4:3"}],"id":2081,"name":"FunctionCall","src":"8695:9:3"}],"id":2082,"name":"Return","src":"8688:16:3"}],"id":2083,"name":"IfStatement","src":"8653:51:3"}],"id":2084,"name":"Block","src":"8341:378:3"}],"id":2085,"name":"IfStatement","src":"8329:390:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2004,"type":"uint256","value":"selfptr"},"id":2086,"name":"Identifier","src":"8732:7:3"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":2087,"name":"Literal","src":"8743:2:3"}],"id":2088,"name":"Assignment","src":"8732:13:3"}],"id":2089,"name":"ExpressionStatement","src":"8732:13:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2009,"type":"uint256","value":"otherptr"},"id":2090,"name":"Identifier","src":"8759:8:3"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":2091,"name":"Literal","src":"8771:2:3"}],"id":2092,"name":"Assignment","src":"8759:14:3"}],"id":2093,"name":"ExpressionStatement","src":"8759:14:3"}],"id":2094,"name":"Block","src":"8165:619:3"}],"id":2095,"name":"ForStatement","src":"8119:665:3"},{"attributes":{"functionReturnParameters":1986},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"int256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"int256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(int256)","value":"int"},"id":2096,"name":"ElementaryTypeNameExpression","src":"8800:3:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1636,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1980,"type":"struct strings.slice memory","value":"self"},"id":2097,"name":"Identifier","src":"8804:4:3"}],"id":2098,"name":"MemberAccess","src":"8804:9:3"}],"id":2099,"name":"FunctionCall","src":"8800:14:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"int256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(int256)","value":"int"},"id":2100,"name":"ElementaryTypeNameExpression","src":"8817:3:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1636,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1982,"type":"struct strings.slice memory","value":"other"},"id":2101,"name":"Identifier","src":"8821:5:3"}],"id":2102,"name":"MemberAccess","src":"8821:10:3"}],"id":2103,"name":"FunctionCall","src":"8817:15:3"}],"id":2104,"name":"BinaryOperation","src":"8800:32:3"}],"id":2105,"name":"Return","src":"8793:39:3"}],"id":2106,"name":"Block","src":"7932:907:3"}],"id":2107,"name":"FunctionDefinition","src":"7848:991:3"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"equals","payable":false,"scope":3327,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":2124,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1639,"type":"struct strings.slice"},"id":2108,"name":"UserDefinedTypeName","src":"9099:5:3"}],"id":2109,"name":"VariableDeclaration","src":"9099:17:3"},{"attributes":{"constant":false,"name":"other","scope":2124,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1639,"type":"struct strings.slice"},"id":2110,"name":"UserDefinedTypeName","src":"9118:5:3"}],"id":2111,"name":"VariableDeclaration","src":"9118:18:3"}],"id":2112,"name":"ParameterList","src":"9098:39:3"},{"children":[{"attributes":{"constant":false,"name":"","scope":2124,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2113,"name":"ElementaryTypeName","src":"9161:4:3"}],"id":2114,"name":"VariableDeclaration","src":"9161:4:3"}],"id":2115,"name":"ParameterList","src":"9160:6:3"},{"children":[{"attributes":{"functionReturnParameters":2115},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"int256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$1639_memory_ptr","typeString":"struct strings.slice memory"},{"typeIdentifier":"t_struct$_slice_$1639_memory_ptr","typeString":"struct strings.slice memory"}],"overloadedDeclarations":[null],"referencedDeclaration":2107,"type":"function (struct strings.slice memory,struct strings.slice memory) pure returns (int256)","value":"compare"},"id":2116,"name":"Identifier","src":"9184:7:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2109,"type":"struct strings.slice memory","value":"self"},"id":2117,"name":"Identifier","src":"9192:4:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2111,"type":"struct strings.slice memory","value":"other"},"id":2118,"name":"Identifier","src":"9198:5:3"}],"id":2119,"name":"FunctionCall","src":"9184:20:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2120,"name":"Literal","src":"9208:1:3"}],"id":2121,"name":"BinaryOperation","src":"9184:25:3"}],"id":2122,"name":"Return","src":"9177:32:3"}],"id":2123,"name":"Block","src":"9167:49:3"}],"id":2124,"name":"FunctionDefinition","src":"9083:133:3"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"nextRune","payable":false,"scope":3327,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":2242,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1639,"type":"struct strings.slice"},"id":2125,"name":"UserDefinedTypeName","src":"9527:5:3"}],"id":2126,"name":"VariableDeclaration","src":"9527:17:3"},{"attributes":{"constant":false,"name":"rune","scope":2242,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1639,"type":"struct strings.slice"},"id":2127,"name":"UserDefinedTypeName","src":"9546:5:3"}],"id":2128,"name":"VariableDeclaration","src":"9546:17:3"}],"id":2129,"name":"ParameterList","src":"9526:38:3"},{"children":[{"attributes":{"constant":false,"name":"","scope":2242,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1639,"type":"struct strings.slice"},"id":2130,"name":"UserDefinedTypeName","src":"9588:5:3"}],"id":2131,"name":"VariableDeclaration","src":"9588:5:3"}],"id":2132,"name":"ParameterList","src":"9587:14:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_ptr","referencedDeclaration":1638,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2128,"type":"struct strings.slice memory","value":"rune"},"id":2133,"name":"Identifier","src":"9612:4:3"}],"id":2135,"name":"MemberAccess","src":"9612:9:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":1638,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2126,"type":"struct strings.slice memory","value":"self"},"id":2136,"name":"Identifier","src":"9624:4:3"}],"id":2137,"name":"MemberAccess","src":"9624:9:3"}],"id":2138,"name":"Assignment","src":"9612:21:3"}],"id":2139,"name":"ExpressionStatement","src":"9612:21:3"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1636,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2126,"type":"struct strings.slice memory","value":"self"},"id":2140,"name":"Identifier","src":"9648:4:3"}],"id":2141,"name":"MemberAccess","src":"9648:9:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2142,"name":"Literal","src":"9661:1:3"}],"id":2143,"name":"BinaryOperation","src":"9648:14:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":1636,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2128,"type":"struct strings.slice memory","value":"rune"},"id":2144,"name":"Identifier","src":"9678:4:3"}],"id":2146,"name":"MemberAccess","src":"9678:9:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2147,"name":"Literal","src":"9690:1:3"}],"id":2148,"name":"Assignment","src":"9678:13:3"}],"id":2149,"name":"ExpressionStatement","src":"9678:13:3"},{"attributes":{"functionReturnParameters":2132},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2128,"type":"struct strings.slice memory","value":"rune"},"id":2150,"name":"Identifier","src":"9712:4:3"}],"id":2151,"name":"Return","src":"9705:11:3"}],"id":2152,"name":"Block","src":"9664:63:3"}],"id":2153,"name":"IfStatement","src":"9644:83:3"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"l","scope":2242,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2154,"name":"ElementaryTypeName","src":"9737:4:3"}],"id":2155,"name":"VariableDeclaration","src":"9737:6:3"}],"id":2156,"name":"VariableDeclarationStatement","src":"9737:6:3"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"b","scope":2242,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2157,"name":"ElementaryTypeName","src":"9753:4:3"}],"id":2158,"name":"VariableDeclaration","src":"9753:6:3"}],"id":2159,"name":"VariableDeclarationStatement","src":"9753:6:3"},{"attributes":{"externalReferences":[{"b":{"declaration":2158,"isOffset":false,"isSlot":false,"src":"9842:1:3","valueSize":1}},{"self":{"declaration":2126,"isOffset":false,"isSlot":false,"src":"9871:4:3","valueSize":1}}],"operations":"{\n b := and(mload(sub(mload(add(self, 32)), 31)), 0xFF)\n}"},"children":[],"id":2160,"name":"InlineAssembly","src":"9831:76:3"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2158,"type":"uint256","value":"b"},"id":2161,"name":"Identifier","src":"9909:1:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30783830","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 128","value":"0x80"},"id":2162,"name":"Literal","src":"9913:4:3"}],"id":2163,"name":"BinaryOperation","src":"9909:8:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2155,"type":"uint256","value":"l"},"id":2164,"name":"Identifier","src":"9933:1:3"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":2165,"name":"Literal","src":"9937:1:3"}],"id":2166,"name":"Assignment","src":"9933:5:3"}],"id":2167,"name":"ExpressionStatement","src":"9933:5:3"}],"id":2168,"name":"Block","src":"9919:30:3"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2158,"type":"uint256","value":"b"},"id":2169,"name":"Identifier","src":"9958:1:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30784530","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 224","value":"0xE0"},"id":2170,"name":"Literal","src":"9962:4:3"}],"id":2171,"name":"BinaryOperation","src":"9958:8:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2155,"type":"uint256","value":"l"},"id":2172,"name":"Identifier","src":"9982:1:3"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":2173,"name":"Literal","src":"9986:1:3"}],"id":2174,"name":"Assignment","src":"9982:5:3"}],"id":2175,"name":"ExpressionStatement","src":"9982:5:3"}],"id":2176,"name":"Block","src":"9968:30:3"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2158,"type":"uint256","value":"b"},"id":2177,"name":"Identifier","src":"10007:1:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30784630","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 240","value":"0xF0"},"id":2178,"name":"Literal","src":"10011:4:3"}],"id":2179,"name":"BinaryOperation","src":"10007:8:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2155,"type":"uint256","value":"l"},"id":2180,"name":"Identifier","src":"10031:1:3"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":2181,"name":"Literal","src":"10035:1:3"}],"id":2182,"name":"Assignment","src":"10031:5:3"}],"id":2183,"name":"ExpressionStatement","src":"10031:5:3"}],"id":2184,"name":"Block","src":"10017:30:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2155,"type":"uint256","value":"l"},"id":2185,"name":"Identifier","src":"10067:1:3"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":2186,"name":"Literal","src":"10071:1:3"}],"id":2187,"name":"Assignment","src":"10067:5:3"}],"id":2188,"name":"ExpressionStatement","src":"10067:5:3"}],"id":2189,"name":"Block","src":"10053:30:3"}],"id":2190,"name":"IfStatement","src":"10004:79:3"}],"id":2191,"name":"IfStatement","src":"9955:128:3"}],"id":2192,"name":"IfStatement","src":"9905:178:3"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2155,"type":"uint256","value":"l"},"id":2193,"name":"Identifier","src":"10139:1:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1636,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2126,"type":"struct strings.slice memory","value":"self"},"id":2194,"name":"Identifier","src":"10143:4:3"}],"id":2195,"name":"MemberAccess","src":"10143:9:3"}],"id":2196,"name":"BinaryOperation","src":"10139:13:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":1636,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2128,"type":"struct strings.slice memory","value":"rune"},"id":2197,"name":"Identifier","src":"10168:4:3"}],"id":2199,"name":"MemberAccess","src":"10168:9:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1636,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2126,"type":"struct strings.slice memory","value":"self"},"id":2200,"name":"Identifier","src":"10180:4:3"}],"id":2201,"name":"MemberAccess","src":"10180:9:3"}],"id":2202,"name":"Assignment","src":"10168:21:3"}],"id":2203,"name":"ExpressionStatement","src":"10168:21:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_ptr","referencedDeclaration":1638,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2126,"type":"struct strings.slice memory","value":"self"},"id":2204,"name":"Identifier","src":"10203:4:3"}],"id":2206,"name":"MemberAccess","src":"10203:9:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1636,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2126,"type":"struct strings.slice memory","value":"self"},"id":2207,"name":"Identifier","src":"10216:4:3"}],"id":2208,"name":"MemberAccess","src":"10216:9:3"}],"id":2209,"name":"Assignment","src":"10203:22:3"}],"id":2210,"name":"ExpressionStatement","src":"10203:22:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":1636,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2126,"type":"struct strings.slice memory","value":"self"},"id":2211,"name":"Identifier","src":"10239:4:3"}],"id":2213,"name":"MemberAccess","src":"10239:9:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2214,"name":"Literal","src":"10251:1:3"}],"id":2215,"name":"Assignment","src":"10239:13:3"}],"id":2216,"name":"ExpressionStatement","src":"10239:13:3"},{"attributes":{"functionReturnParameters":2132},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2128,"type":"struct strings.slice memory","value":"rune"},"id":2217,"name":"Identifier","src":"10273:4:3"}],"id":2218,"name":"Return","src":"10266:11:3"}],"id":2219,"name":"Block","src":"10154:134:3"}],"id":2220,"name":"IfStatement","src":"10135:153:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_ptr","referencedDeclaration":1638,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2126,"type":"struct strings.slice memory","value":"self"},"id":2221,"name":"Identifier","src":"10298:4:3"}],"id":2223,"name":"MemberAccess","src":"10298:9:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2155,"type":"uint256","value":"l"},"id":2224,"name":"Identifier","src":"10311:1:3"}],"id":2225,"name":"Assignment","src":"10298:14:3"}],"id":2226,"name":"ExpressionStatement","src":"10298:14:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":1636,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2126,"type":"struct strings.slice memory","value":"self"},"id":2227,"name":"Identifier","src":"10322:4:3"}],"id":2229,"name":"MemberAccess","src":"10322:9:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2155,"type":"uint256","value":"l"},"id":2230,"name":"Identifier","src":"10335:1:3"}],"id":2231,"name":"Assignment","src":"10322:14:3"}],"id":2232,"name":"ExpressionStatement","src":"10322:14:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":1636,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2128,"type":"struct strings.slice memory","value":"rune"},"id":2233,"name":"Identifier","src":"10346:4:3"}],"id":2235,"name":"MemberAccess","src":"10346:9:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2155,"type":"uint256","value":"l"},"id":2236,"name":"Identifier","src":"10358:1:3"}],"id":2237,"name":"Assignment","src":"10346:13:3"}],"id":2238,"name":"ExpressionStatement","src":"10346:13:3"},{"attributes":{"functionReturnParameters":2132},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2128,"type":"struct strings.slice memory","value":"rune"},"id":2239,"name":"Identifier","src":"10376:4:3"}],"id":2240,"name":"Return","src":"10369:11:3"}],"id":2241,"name":"Block","src":"9602:785:3"}],"id":2242,"name":"FunctionDefinition","src":"9509:878:3"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"nextRune","payable":false,"scope":3327,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":2255,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1639,"type":"struct strings.slice"},"id":2243,"name":"UserDefinedTypeName","src":"10645:5:3"}],"id":2244,"name":"VariableDeclaration","src":"10645:17:3"}],"id":2245,"name":"ParameterList","src":"10644:19:3"},{"children":[{"attributes":{"constant":false,"name":"ret","scope":2255,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1639,"type":"struct strings.slice"},"id":2246,"name":"UserDefinedTypeName","src":"10687:5:3"}],"id":2247,"name":"VariableDeclaration","src":"10687:16:3"}],"id":2248,"name":"ParameterList","src":"10686:18:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"struct strings.slice memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$1639_memory_ptr","typeString":"struct strings.slice memory"},{"typeIdentifier":"t_struct$_slice_$1639_memory_ptr","typeString":"struct strings.slice memory"}],"overloadedDeclarations":[2242,2255],"referencedDeclaration":2242,"type":"function (struct strings.slice memory,struct strings.slice memory) pure returns (struct strings.slice memory)","value":"nextRune"},"id":2249,"name":"Identifier","src":"10715:8:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2244,"type":"struct strings.slice memory","value":"self"},"id":2250,"name":"Identifier","src":"10724:4:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2247,"type":"struct strings.slice memory","value":"ret"},"id":2251,"name":"Identifier","src":"10730:3:3"}],"id":2252,"name":"FunctionCall","src":"10715:19:3"}],"id":2253,"name":"ExpressionStatement","src":"10715:19:3"}],"id":2254,"name":"Block","src":"10705:36:3"}],"id":2255,"name":"FunctionDefinition","src":"10627:114:3"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"ord","payable":false,"scope":3327,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":2402,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1639,"type":"struct strings.slice"},"id":2256,"name":"UserDefinedTypeName","src":"10950:5:3"}],"id":2257,"name":"VariableDeclaration","src":"10950:17:3"}],"id":2258,"name":"ParameterList","src":"10949:19:3"},{"children":[{"attributes":{"constant":false,"name":"ret","scope":2402,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2259,"name":"ElementaryTypeName","src":"10992:4:3"}],"id":2260,"name":"VariableDeclaration","src":"10992:8:3"}],"id":2261,"name":"ParameterList","src":"10991:10:3"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1636,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2257,"type":"struct strings.slice memory","value":"self"},"id":2262,"name":"Identifier","src":"11016:4:3"}],"id":2263,"name":"MemberAccess","src":"11016:9:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2264,"name":"Literal","src":"11029:1:3"}],"id":2265,"name":"BinaryOperation","src":"11016:14:3"},{"children":[{"attributes":{"functionReturnParameters":2261},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2266,"name":"Literal","src":"11053:1:3"}],"id":2267,"name":"Return","src":"11046:8:3"}],"id":2268,"name":"Block","src":"11032:33:3"}],"id":2269,"name":"IfStatement","src":"11012:53:3"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"word","scope":2402,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2270,"name":"ElementaryTypeName","src":"11075:4:3"}],"id":2271,"name":"VariableDeclaration","src":"11075:9:3"}],"id":2272,"name":"VariableDeclarationStatement","src":"11075:9:3"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"length","scope":2402,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2273,"name":"ElementaryTypeName","src":"11094:4:3"}],"id":2274,"name":"VariableDeclaration","src":"11094:11:3"}],"id":2275,"name":"VariableDeclarationStatement","src":"11094:11:3"},{"attributes":{"assignments":[2277]},"children":[{"attributes":{"constant":false,"name":"divisor","scope":2402,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2276,"name":"ElementaryTypeName","src":"11115:4:3"}],"id":2277,"name":"VariableDeclaration","src":"11115:12:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_452312848583266388373324160190187140051835877600158453279131187530910662656_by_1","typeString":"int_const 4523...(67 digits omitted)...2656"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"**","type":"int_const 4523...(67 digits omitted)...2656"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":2278,"name":"Literal","src":"11130:1:3"},{"attributes":{"argumentTypes":null,"hexvalue":"323438","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 248","value":"248"},"id":2279,"name":"Literal","src":"11135:3:3"}],"id":2280,"name":"BinaryOperation","src":"11130:8:3"}],"id":2281,"name":"VariableDeclarationStatement","src":"11115:23:3"},{"attributes":{"externalReferences":[{"word":{"declaration":2271,"isOffset":false,"isSlot":false,"src":"11204:4:3","valueSize":1}},{"self":{"declaration":2257,"isOffset":false,"isSlot":false,"src":"11227:4:3","valueSize":1}}],"operations":"{\n word := mload(mload(add(self, 32)))\n}"},"children":[],"id":2282,"name":"InlineAssembly","src":"11193:60:3"},{"attributes":{"assignments":[2284]},"children":[{"attributes":{"constant":false,"name":"b","scope":2402,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2283,"name":"ElementaryTypeName","src":"11249:4:3"}],"id":2284,"name":"VariableDeclaration","src":"11249:6:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"/","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2271,"type":"uint256","value":"word"},"id":2285,"name":"Identifier","src":"11258:4:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2277,"type":"uint256","value":"divisor"},"id":2286,"name":"Identifier","src":"11265:7:3"}],"id":2287,"name":"BinaryOperation","src":"11258:14:3"}],"id":2288,"name":"VariableDeclarationStatement","src":"11249:23:3"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2284,"type":"uint256","value":"b"},"id":2289,"name":"Identifier","src":"11286:1:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30783830","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 128","value":"0x80"},"id":2290,"name":"Literal","src":"11290:4:3"}],"id":2291,"name":"BinaryOperation","src":"11286:8:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2260,"type":"uint256","value":"ret"},"id":2292,"name":"Identifier","src":"11310:3:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2284,"type":"uint256","value":"b"},"id":2293,"name":"Identifier","src":"11316:1:3"}],"id":2294,"name":"Assignment","src":"11310:7:3"}],"id":2295,"name":"ExpressionStatement","src":"11310:7:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2274,"type":"uint256","value":"length"},"id":2296,"name":"Identifier","src":"11331:6:3"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":2297,"name":"Literal","src":"11340:1:3"}],"id":2298,"name":"Assignment","src":"11331:10:3"}],"id":2299,"name":"ExpressionStatement","src":"11331:10:3"}],"id":2300,"name":"Block","src":"11296:56:3"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2284,"type":"uint256","value":"b"},"id":2301,"name":"Identifier","src":"11361:1:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30784530","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 224","value":"0xE0"},"id":2302,"name":"Literal","src":"11365:4:3"}],"id":2303,"name":"BinaryOperation","src":"11361:8:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2260,"type":"uint256","value":"ret"},"id":2304,"name":"Identifier","src":"11385:3:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2284,"type":"uint256","value":"b"},"id":2305,"name":"Identifier","src":"11391:1:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30783146","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 31","value":"0x1F"},"id":2306,"name":"Literal","src":"11395:4:3"}],"id":2307,"name":"BinaryOperation","src":"11391:8:3"}],"id":2308,"name":"Assignment","src":"11385:14:3"}],"id":2309,"name":"ExpressionStatement","src":"11385:14:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2274,"type":"uint256","value":"length"},"id":2310,"name":"Identifier","src":"11413:6:3"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":2311,"name":"Literal","src":"11422:1:3"}],"id":2312,"name":"Assignment","src":"11413:10:3"}],"id":2313,"name":"ExpressionStatement","src":"11413:10:3"}],"id":2314,"name":"Block","src":"11371:63:3"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2284,"type":"uint256","value":"b"},"id":2315,"name":"Identifier","src":"11443:1:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30784630","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 240","value":"0xF0"},"id":2316,"name":"Literal","src":"11447:4:3"}],"id":2317,"name":"BinaryOperation","src":"11443:8:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2260,"type":"uint256","value":"ret"},"id":2318,"name":"Identifier","src":"11467:3:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2284,"type":"uint256","value":"b"},"id":2319,"name":"Identifier","src":"11473:1:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30783046","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 15","value":"0x0F"},"id":2320,"name":"Literal","src":"11477:4:3"}],"id":2321,"name":"BinaryOperation","src":"11473:8:3"}],"id":2322,"name":"Assignment","src":"11467:14:3"}],"id":2323,"name":"ExpressionStatement","src":"11467:14:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2274,"type":"uint256","value":"length"},"id":2324,"name":"Identifier","src":"11495:6:3"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":2325,"name":"Literal","src":"11504:1:3"}],"id":2326,"name":"Assignment","src":"11495:10:3"}],"id":2327,"name":"ExpressionStatement","src":"11495:10:3"}],"id":2328,"name":"Block","src":"11453:63:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2260,"type":"uint256","value":"ret"},"id":2329,"name":"Identifier","src":"11536:3:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2284,"type":"uint256","value":"b"},"id":2330,"name":"Identifier","src":"11542:1:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30783037","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 7","value":"0x07"},"id":2331,"name":"Literal","src":"11546:4:3"}],"id":2332,"name":"BinaryOperation","src":"11542:8:3"}],"id":2333,"name":"Assignment","src":"11536:14:3"}],"id":2334,"name":"ExpressionStatement","src":"11536:14:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2274,"type":"uint256","value":"length"},"id":2335,"name":"Identifier","src":"11564:6:3"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":2336,"name":"Literal","src":"11573:1:3"}],"id":2337,"name":"Assignment","src":"11564:10:3"}],"id":2338,"name":"ExpressionStatement","src":"11564:10:3"}],"id":2339,"name":"Block","src":"11522:63:3"}],"id":2340,"name":"IfStatement","src":"11440:145:3"}],"id":2341,"name":"IfStatement","src":"11358:227:3"}],"id":2342,"name":"IfStatement","src":"11282:303:3"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2274,"type":"uint256","value":"length"},"id":2343,"name":"Identifier","src":"11641:6:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1636,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2257,"type":"struct strings.slice memory","value":"self"},"id":2344,"name":"Identifier","src":"11650:4:3"}],"id":2345,"name":"MemberAccess","src":"11650:9:3"}],"id":2346,"name":"BinaryOperation","src":"11641:18:3"},{"children":[{"attributes":{"functionReturnParameters":2261},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2347,"name":"Literal","src":"11682:1:3"}],"id":2348,"name":"Return","src":"11675:8:3"}],"id":2349,"name":"Block","src":"11661:33:3"}],"id":2350,"name":"IfStatement","src":"11637:57:3"},{"children":[{"attributes":{"assignments":[2352]},"children":[{"attributes":{"constant":false,"name":"i","scope":2402,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2351,"name":"ElementaryTypeName","src":"11709:4:3"}],"id":2352,"name":"VariableDeclaration","src":"11709:6:3"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":2353,"name":"Literal","src":"11718:1:3"}],"id":2354,"name":"VariableDeclarationStatement","src":"11709:10:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2352,"type":"uint256","value":"i"},"id":2355,"name":"Identifier","src":"11721:1:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2274,"type":"uint256","value":"length"},"id":2356,"name":"Identifier","src":"11725:6:3"}],"id":2357,"name":"BinaryOperation","src":"11721:10:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2352,"type":"uint256","value":"i"},"id":2358,"name":"Identifier","src":"11733:1:3"}],"id":2359,"name":"UnaryOperation","src":"11733:3:3"}],"id":2360,"name":"ExpressionStatement","src":"11733:3:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2277,"type":"uint256","value":"divisor"},"id":2361,"name":"Identifier","src":"11752:7:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"/","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2277,"type":"uint256","value":"divisor"},"id":2362,"name":"Identifier","src":"11762:7:3"},{"attributes":{"argumentTypes":null,"hexvalue":"323536","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 256","value":"256"},"id":2363,"name":"Literal","src":"11772:3:3"}],"id":2364,"name":"BinaryOperation","src":"11762:13:3"}],"id":2365,"name":"Assignment","src":"11752:23:3"}],"id":2366,"name":"ExpressionStatement","src":"11752:23:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2284,"type":"uint256","value":"b"},"id":2367,"name":"Identifier","src":"11789:1:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"/","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2271,"type":"uint256","value":"word"},"id":2368,"name":"Identifier","src":"11794:4:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2277,"type":"uint256","value":"divisor"},"id":2369,"name":"Identifier","src":"11801:7:3"}],"id":2370,"name":"BinaryOperation","src":"11794:14:3"}],"id":2371,"name":"TupleExpression","src":"11793:16:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30784646","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 255","value":"0xFF"},"id":2372,"name":"Literal","src":"11812:4:3"}],"id":2373,"name":"BinaryOperation","src":"11793:23:3"}],"id":2374,"name":"Assignment","src":"11789:27:3"}],"id":2375,"name":"ExpressionStatement","src":"11789:27:3"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2284,"type":"uint256","value":"b"},"id":2376,"name":"Identifier","src":"11834:1:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30784330","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 192","value":"0xC0"},"id":2377,"name":"Literal","src":"11838:4:3"}],"id":2378,"name":"BinaryOperation","src":"11834:8:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30783830","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 128","value":"0x80"},"id":2379,"name":"Literal","src":"11846:4:3"}],"id":2380,"name":"BinaryOperation","src":"11834:16:3"},{"children":[{"attributes":{"functionReturnParameters":2261},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2381,"name":"Literal","src":"11919:1:3"}],"id":2382,"name":"Return","src":"11912:8:3"}],"id":2383,"name":"Block","src":"11852:83:3"}],"id":2384,"name":"IfStatement","src":"11830:105:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2260,"type":"uint256","value":"ret"},"id":2385,"name":"Identifier","src":"11948:3:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"|","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2260,"type":"uint256","value":"ret"},"id":2386,"name":"Identifier","src":"11955:3:3"},{"attributes":{"argumentTypes":null,"hexvalue":"3634","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 64","value":"64"},"id":2387,"name":"Literal","src":"11961:2:3"}],"id":2388,"name":"BinaryOperation","src":"11955:8:3"}],"id":2389,"name":"TupleExpression","src":"11954:10:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2284,"type":"uint256","value":"b"},"id":2390,"name":"Identifier","src":"11968:1:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30783346","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 63","value":"0x3F"},"id":2391,"name":"Literal","src":"11972:4:3"}],"id":2392,"name":"BinaryOperation","src":"11968:8:3"}],"id":2393,"name":"TupleExpression","src":"11967:10:3"}],"id":2394,"name":"BinaryOperation","src":"11954:23:3"}],"id":2395,"name":"Assignment","src":"11948:29:3"}],"id":2396,"name":"ExpressionStatement","src":"11948:29:3"}],"id":2397,"name":"Block","src":"11738:250:3"}],"id":2398,"name":"ForStatement","src":"11704:284:3"},{"attributes":{"functionReturnParameters":2261},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2260,"type":"uint256","value":"ret"},"id":2399,"name":"Identifier","src":"12005:3:3"}],"id":2400,"name":"Return","src":"11998:10:3"}],"id":2401,"name":"Block","src":"11002:1013:3"}],"id":2402,"name":"FunctionDefinition","src":"10937:1078:3"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"keccak","payable":false,"scope":3327,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":2411,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1639,"type":"struct strings.slice"},"id":2403,"name":"UserDefinedTypeName","src":"12182:5:3"}],"id":2404,"name":"VariableDeclaration","src":"12182:17:3"}],"id":2405,"name":"ParameterList","src":"12181:19:3"},{"children":[{"attributes":{"constant":false,"name":"ret","scope":2411,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":2406,"name":"ElementaryTypeName","src":"12224:7:3"}],"id":2407,"name":"VariableDeclaration","src":"12224:11:3"}],"id":2408,"name":"ParameterList","src":"12223:13:3"},{"children":[{"attributes":{"externalReferences":[{"ret":{"declaration":2407,"isOffset":false,"isSlot":false,"src":"12270:3:3","valueSize":1}},{"self":{"declaration":2404,"isOffset":false,"isSlot":false,"src":"12315:4:3","valueSize":1}},{"self":{"declaration":2404,"isOffset":false,"isSlot":false,"src":"12297:4:3","valueSize":1}}],"operations":"{\n ret := keccak256(mload(add(self, 32)), mload(self))\n}"},"children":[],"id":2409,"name":"InlineAssembly","src":"12247:90:3"}],"id":2410,"name":"Block","src":"12237:100:3"}],"id":2411,"name":"FunctionDefinition","src":"12166:171:3"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"startsWith","payable":false,"scope":3327,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":2445,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1639,"type":"struct strings.slice"},"id":2412,"name":"UserDefinedTypeName","src":"12606:5:3"}],"id":2413,"name":"VariableDeclaration","src":"12606:17:3"},{"attributes":{"constant":false,"name":"needle","scope":2445,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1639,"type":"struct strings.slice"},"id":2414,"name":"UserDefinedTypeName","src":"12625:5:3"}],"id":2415,"name":"VariableDeclaration","src":"12625:19:3"}],"id":2416,"name":"ParameterList","src":"12605:40:3"},{"children":[{"attributes":{"constant":false,"name":"","scope":2445,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2417,"name":"ElementaryTypeName","src":"12669:4:3"}],"id":2418,"name":"VariableDeclaration","src":"12669:4:3"}],"id":2419,"name":"ParameterList","src":"12668:6:3"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1636,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2413,"type":"struct strings.slice memory","value":"self"},"id":2420,"name":"Identifier","src":"12689:4:3"}],"id":2421,"name":"MemberAccess","src":"12689:9:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1636,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2415,"type":"struct strings.slice memory","value":"needle"},"id":2422,"name":"Identifier","src":"12701:6:3"}],"id":2423,"name":"MemberAccess","src":"12701:11:3"}],"id":2424,"name":"BinaryOperation","src":"12689:23:3"},{"children":[{"attributes":{"functionReturnParameters":2419},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"66616c7365","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"false"},"id":2425,"name":"Literal","src":"12735:5:3"}],"id":2426,"name":"Return","src":"12728:12:3"}],"id":2427,"name":"Block","src":"12714:37:3"}],"id":2428,"name":"IfStatement","src":"12685:66:3"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":1638,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2413,"type":"struct strings.slice memory","value":"self"},"id":2429,"name":"Identifier","src":"12765:4:3"}],"id":2430,"name":"MemberAccess","src":"12765:9:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":1638,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2415,"type":"struct strings.slice memory","value":"needle"},"id":2431,"name":"Identifier","src":"12778:6:3"}],"id":2432,"name":"MemberAccess","src":"12778:11:3"}],"id":2433,"name":"BinaryOperation","src":"12765:24:3"},{"children":[{"attributes":{"functionReturnParameters":2419},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":2434,"name":"Literal","src":"12812:4:3"}],"id":2435,"name":"Return","src":"12805:11:3"}],"id":2436,"name":"Block","src":"12791:36:3"}],"id":2437,"name":"IfStatement","src":"12761:66:3"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"equal","scope":2445,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2438,"name":"ElementaryTypeName","src":"12837:4:3"}],"id":2439,"name":"VariableDeclaration","src":"12837:10:3"}],"id":2440,"name":"VariableDeclarationStatement","src":"12837:10:3"},{"attributes":{"externalReferences":[{"needle":{"declaration":2415,"isOffset":false,"isSlot":false,"src":"12900:6:3","valueSize":1}},{"self":{"declaration":2413,"isOffset":false,"isSlot":false,"src":"12945:4:3","valueSize":1}},{"needle":{"declaration":2415,"isOffset":false,"isSlot":false,"src":"12997:6:3","valueSize":1}},{"equal":{"declaration":2439,"isOffset":false,"isSlot":false,"src":"13024:5:3","valueSize":1}}],"operations":"{\n let length := mload(needle)\n let selfptr := mload(add(self, 0x20))\n let needleptr := mload(add(needle, 0x20))\n equal := eq(keccak256(selfptr, length), keccak256(needleptr, length))\n}"},"children":[],"id":2441,"name":"InlineAssembly","src":"12857:261:3"},{"attributes":{"functionReturnParameters":2419},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2439,"type":"bool","value":"equal"},"id":2442,"name":"Identifier","src":"13119:5:3"}],"id":2443,"name":"Return","src":"13112:12:3"}],"id":2444,"name":"Block","src":"12675:456:3"}],"id":2445,"name":"FunctionDefinition","src":"12586:545:3"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"beyond","payable":false,"scope":3327,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":2495,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1639,"type":"struct strings.slice"},"id":2446,"name":"UserDefinedTypeName","src":"13419:5:3"}],"id":2447,"name":"VariableDeclaration","src":"13419:17:3"},{"attributes":{"constant":false,"name":"needle","scope":2495,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1639,"type":"struct strings.slice"},"id":2448,"name":"UserDefinedTypeName","src":"13438:5:3"}],"id":2449,"name":"VariableDeclaration","src":"13438:19:3"}],"id":2450,"name":"ParameterList","src":"13418:40:3"},{"children":[{"attributes":{"constant":false,"name":"","scope":2495,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1639,"type":"struct strings.slice"},"id":2451,"name":"UserDefinedTypeName","src":"13482:5:3"}],"id":2452,"name":"VariableDeclaration","src":"13482:5:3"}],"id":2453,"name":"ParameterList","src":"13481:14:3"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1636,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2447,"type":"struct strings.slice memory","value":"self"},"id":2454,"name":"Identifier","src":"13510:4:3"}],"id":2455,"name":"MemberAccess","src":"13510:9:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1636,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2449,"type":"struct strings.slice memory","value":"needle"},"id":2456,"name":"Identifier","src":"13522:6:3"}],"id":2457,"name":"MemberAccess","src":"13522:11:3"}],"id":2458,"name":"BinaryOperation","src":"13510:23:3"},{"children":[{"attributes":{"functionReturnParameters":2453},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2447,"type":"struct strings.slice memory","value":"self"},"id":2459,"name":"Identifier","src":"13556:4:3"}],"id":2460,"name":"Return","src":"13549:11:3"}],"id":2461,"name":"Block","src":"13535:36:3"}],"id":2462,"name":"IfStatement","src":"13506:65:3"},{"attributes":{"assignments":[2464]},"children":[{"attributes":{"constant":false,"name":"equal","scope":2495,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2463,"name":"ElementaryTypeName","src":"13581:4:3"}],"id":2464,"name":"VariableDeclaration","src":"13581:10:3"},{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":2465,"name":"Literal","src":"13594:4:3"}],"id":2466,"name":"VariableDeclarationStatement","src":"13581:17:3"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":1638,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2447,"type":"struct strings.slice memory","value":"self"},"id":2467,"name":"Identifier","src":"13612:4:3"}],"id":2468,"name":"MemberAccess","src":"13612:9:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":1638,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2449,"type":"struct strings.slice memory","value":"needle"},"id":2469,"name":"Identifier","src":"13625:6:3"}],"id":2470,"name":"MemberAccess","src":"13625:11:3"}],"id":2471,"name":"BinaryOperation","src":"13612:24:3"},{"children":[{"attributes":{"externalReferences":[{"needle":{"declaration":2449,"isOffset":false,"isSlot":false,"src":"13699:6:3","valueSize":1}},{"self":{"declaration":2447,"isOffset":false,"isSlot":false,"src":"13748:4:3","valueSize":1}},{"needle":{"declaration":2449,"isOffset":false,"isSlot":false,"src":"13804:6:3","valueSize":1}},{"equal":{"declaration":2464,"isOffset":false,"isSlot":false,"src":"13835:5:3","valueSize":1}}],"operations":"{\n let length := mload(needle)\n let selfptr := mload(add(self, 0x20))\n let needleptr := mload(add(needle, 0x20))\n equal := eq(keccak256(selfptr, length), keccak256(needleptr, length))\n}"},"children":[],"id":2472,"name":"InlineAssembly","src":"13652:276:3"}],"id":2473,"name":"Block","src":"13638:290:3"}],"id":2474,"name":"IfStatement","src":"13608:320:3"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2464,"type":"bool","value":"equal"},"id":2475,"name":"Identifier","src":"13942:5:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":1636,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2447,"type":"struct strings.slice memory","value":"self"},"id":2476,"name":"Identifier","src":"13963:4:3"}],"id":2478,"name":"MemberAccess","src":"13963:9:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1636,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2449,"type":"struct strings.slice memory","value":"needle"},"id":2479,"name":"Identifier","src":"13976:6:3"}],"id":2480,"name":"MemberAccess","src":"13976:11:3"}],"id":2481,"name":"Assignment","src":"13963:24:3"}],"id":2482,"name":"ExpressionStatement","src":"13963:24:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_ptr","referencedDeclaration":1638,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2447,"type":"struct strings.slice memory","value":"self"},"id":2483,"name":"Identifier","src":"14001:4:3"}],"id":2485,"name":"MemberAccess","src":"14001:9:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1636,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2449,"type":"struct strings.slice memory","value":"needle"},"id":2486,"name":"Identifier","src":"14014:6:3"}],"id":2487,"name":"MemberAccess","src":"14014:11:3"}],"id":2488,"name":"Assignment","src":"14001:24:3"}],"id":2489,"name":"ExpressionStatement","src":"14001:24:3"}],"id":2490,"name":"Block","src":"13949:87:3"}],"id":2491,"name":"IfStatement","src":"13938:98:3"},{"attributes":{"functionReturnParameters":2453},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2447,"type":"struct strings.slice memory","value":"self"},"id":2492,"name":"Identifier","src":"14053:4:3"}],"id":2493,"name":"Return","src":"14046:11:3"}],"id":2494,"name":"Block","src":"13496:568:3"}],"id":2495,"name":"FunctionDefinition","src":"13403:661:3"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"endsWith","payable":false,"scope":3327,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":2539,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1639,"type":"struct strings.slice"},"id":2496,"name":"UserDefinedTypeName","src":"14332:5:3"}],"id":2497,"name":"VariableDeclaration","src":"14332:17:3"},{"attributes":{"constant":false,"name":"needle","scope":2539,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1639,"type":"struct strings.slice"},"id":2498,"name":"UserDefinedTypeName","src":"14351:5:3"}],"id":2499,"name":"VariableDeclaration","src":"14351:19:3"}],"id":2500,"name":"ParameterList","src":"14331:40:3"},{"children":[{"attributes":{"constant":false,"name":"","scope":2539,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2501,"name":"ElementaryTypeName","src":"14395:4:3"}],"id":2502,"name":"VariableDeclaration","src":"14395:4:3"}],"id":2503,"name":"ParameterList","src":"14394:6:3"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1636,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2497,"type":"struct strings.slice memory","value":"self"},"id":2504,"name":"Identifier","src":"14415:4:3"}],"id":2505,"name":"MemberAccess","src":"14415:9:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1636,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2499,"type":"struct strings.slice memory","value":"needle"},"id":2506,"name":"Identifier","src":"14427:6:3"}],"id":2507,"name":"MemberAccess","src":"14427:11:3"}],"id":2508,"name":"BinaryOperation","src":"14415:23:3"},{"children":[{"attributes":{"functionReturnParameters":2503},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"66616c7365","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"false"},"id":2509,"name":"Literal","src":"14461:5:3"}],"id":2510,"name":"Return","src":"14454:12:3"}],"id":2511,"name":"Block","src":"14440:37:3"}],"id":2512,"name":"IfStatement","src":"14411:66:3"},{"attributes":{"assignments":[2514]},"children":[{"attributes":{"constant":false,"name":"selfptr","scope":2539,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2513,"name":"ElementaryTypeName","src":"14487:4:3"}],"id":2514,"name":"VariableDeclaration","src":"14487:12:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":1638,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2497,"type":"struct strings.slice memory","value":"self"},"id":2515,"name":"Identifier","src":"14502:4:3"}],"id":2516,"name":"MemberAccess","src":"14502:9:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1636,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2497,"type":"struct strings.slice memory","value":"self"},"id":2517,"name":"Identifier","src":"14514:4:3"}],"id":2518,"name":"MemberAccess","src":"14514:9:3"}],"id":2519,"name":"BinaryOperation","src":"14502:21:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1636,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2499,"type":"struct strings.slice memory","value":"needle"},"id":2520,"name":"Identifier","src":"14526:6:3"}],"id":2521,"name":"MemberAccess","src":"14526:11:3"}],"id":2522,"name":"BinaryOperation","src":"14502:35:3"}],"id":2523,"name":"VariableDeclarationStatement","src":"14487:50:3"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2514,"type":"uint256","value":"selfptr"},"id":2524,"name":"Identifier","src":"14552:7:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":1638,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2499,"type":"struct strings.slice memory","value":"needle"},"id":2525,"name":"Identifier","src":"14563:6:3"}],"id":2526,"name":"MemberAccess","src":"14563:11:3"}],"id":2527,"name":"BinaryOperation","src":"14552:22:3"},{"children":[{"attributes":{"functionReturnParameters":2503},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":2528,"name":"Literal","src":"14597:4:3"}],"id":2529,"name":"Return","src":"14590:11:3"}],"id":2530,"name":"Block","src":"14576:36:3"}],"id":2531,"name":"IfStatement","src":"14548:64:3"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"equal","scope":2539,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2532,"name":"ElementaryTypeName","src":"14622:4:3"}],"id":2533,"name":"VariableDeclaration","src":"14622:10:3"}],"id":2534,"name":"VariableDeclarationStatement","src":"14622:10:3"},{"attributes":{"externalReferences":[{"needle":{"declaration":2499,"isOffset":false,"isSlot":false,"src":"14685:6:3","valueSize":1}},{"equal":{"declaration":2533,"isOffset":false,"isSlot":false,"src":"14759:5:3","valueSize":1}},{"needle":{"declaration":2499,"isOffset":false,"isSlot":false,"src":"14732:6:3","valueSize":1}},{"selfptr":{"declaration":2514,"isOffset":false,"isSlot":false,"src":"14781:7:3","valueSize":1}}],"operations":"{\n let length := mload(needle)\n let needleptr := mload(add(needle, 0x20))\n equal := eq(keccak256(selfptr, length), keccak256(needleptr, length))\n}"},"children":[],"id":2535,"name":"InlineAssembly","src":"14642:212:3"},{"attributes":{"functionReturnParameters":2503},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2533,"type":"bool","value":"equal"},"id":2536,"name":"Identifier","src":"14855:5:3"}],"id":2537,"name":"Return","src":"14848:12:3"}],"id":2538,"name":"Block","src":"14401:466:3"}],"id":2539,"name":"FunctionDefinition","src":"14314:553:3"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"until","payable":false,"scope":3327,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":2592,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1639,"type":"struct strings.slice"},"id":2540,"name":"UserDefinedTypeName","src":"15146:5:3"}],"id":2541,"name":"VariableDeclaration","src":"15146:17:3"},{"attributes":{"constant":false,"name":"needle","scope":2592,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1639,"type":"struct strings.slice"},"id":2542,"name":"UserDefinedTypeName","src":"15165:5:3"}],"id":2543,"name":"VariableDeclaration","src":"15165:19:3"}],"id":2544,"name":"ParameterList","src":"15145:40:3"},{"children":[{"attributes":{"constant":false,"name":"","scope":2592,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1639,"type":"struct strings.slice"},"id":2545,"name":"UserDefinedTypeName","src":"15209:5:3"}],"id":2546,"name":"VariableDeclaration","src":"15209:5:3"}],"id":2547,"name":"ParameterList","src":"15208:14:3"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1636,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2541,"type":"struct strings.slice memory","value":"self"},"id":2548,"name":"Identifier","src":"15237:4:3"}],"id":2549,"name":"MemberAccess","src":"15237:9:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1636,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2543,"type":"struct strings.slice memory","value":"needle"},"id":2550,"name":"Identifier","src":"15249:6:3"}],"id":2551,"name":"MemberAccess","src":"15249:11:3"}],"id":2552,"name":"BinaryOperation","src":"15237:23:3"},{"children":[{"attributes":{"functionReturnParameters":2547},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2541,"type":"struct strings.slice memory","value":"self"},"id":2553,"name":"Identifier","src":"15283:4:3"}],"id":2554,"name":"Return","src":"15276:11:3"}],"id":2555,"name":"Block","src":"15262:36:3"}],"id":2556,"name":"IfStatement","src":"15233:65:3"},{"attributes":{"assignments":[2558]},"children":[{"attributes":{"constant":false,"name":"selfptr","scope":2592,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2557,"name":"ElementaryTypeName","src":"15308:4:3"}],"id":2558,"name":"VariableDeclaration","src":"15308:12:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":1638,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2541,"type":"struct strings.slice memory","value":"self"},"id":2559,"name":"Identifier","src":"15323:4:3"}],"id":2560,"name":"MemberAccess","src":"15323:9:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1636,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2541,"type":"struct strings.slice memory","value":"self"},"id":2561,"name":"Identifier","src":"15335:4:3"}],"id":2562,"name":"MemberAccess","src":"15335:9:3"}],"id":2563,"name":"BinaryOperation","src":"15323:21:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1636,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2543,"type":"struct strings.slice memory","value":"needle"},"id":2564,"name":"Identifier","src":"15347:6:3"}],"id":2565,"name":"MemberAccess","src":"15347:11:3"}],"id":2566,"name":"BinaryOperation","src":"15323:35:3"}],"id":2567,"name":"VariableDeclarationStatement","src":"15308:50:3"},{"attributes":{"assignments":[2569]},"children":[{"attributes":{"constant":false,"name":"equal","scope":2592,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2568,"name":"ElementaryTypeName","src":"15368:4:3"}],"id":2569,"name":"VariableDeclaration","src":"15368:10:3"},{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":2570,"name":"Literal","src":"15381:4:3"}],"id":2571,"name":"VariableDeclarationStatement","src":"15368:17:3"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2558,"type":"uint256","value":"selfptr"},"id":2572,"name":"Identifier","src":"15399:7:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":1638,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2543,"type":"struct strings.slice memory","value":"needle"},"id":2573,"name":"Identifier","src":"15410:6:3"}],"id":2574,"name":"MemberAccess","src":"15410:11:3"}],"id":2575,"name":"BinaryOperation","src":"15399:22:3"},{"children":[{"attributes":{"externalReferences":[{"needle":{"declaration":2543,"isOffset":false,"isSlot":false,"src":"15484:6:3","valueSize":1}},{"equal":{"declaration":2569,"isOffset":false,"isSlot":false,"src":"15566:5:3","valueSize":1}},{"needle":{"declaration":2543,"isOffset":false,"isSlot":false,"src":"15535:6:3","valueSize":1}},{"selfptr":{"declaration":2558,"isOffset":false,"isSlot":false,"src":"15588:7:3","valueSize":1}}],"operations":"{\n let length := mload(needle)\n let needleptr := mload(add(needle, 0x20))\n equal := eq(keccak256(selfptr, length), keccak256(needleptr, length))\n}"},"children":[],"id":2576,"name":"InlineAssembly","src":"15437:222:3"}],"id":2577,"name":"Block","src":"15423:236:3"}],"id":2578,"name":"IfStatement","src":"15395:264:3"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2569,"type":"bool","value":"equal"},"id":2579,"name":"Identifier","src":"15673:5:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":1636,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2541,"type":"struct strings.slice memory","value":"self"},"id":2580,"name":"Identifier","src":"15694:4:3"}],"id":2582,"name":"MemberAccess","src":"15694:9:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1636,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2543,"type":"struct strings.slice memory","value":"needle"},"id":2583,"name":"Identifier","src":"15707:6:3"}],"id":2584,"name":"MemberAccess","src":"15707:11:3"}],"id":2585,"name":"Assignment","src":"15694:24:3"}],"id":2586,"name":"ExpressionStatement","src":"15694:24:3"}],"id":2587,"name":"Block","src":"15680:49:3"}],"id":2588,"name":"IfStatement","src":"15669:60:3"},{"attributes":{"functionReturnParameters":2547},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2541,"type":"struct strings.slice memory","value":"self"},"id":2589,"name":"Identifier","src":"15746:4:3"}],"id":2590,"name":"Return","src":"15739:11:3"}],"id":2591,"name":"Block","src":"15223:534:3"}],"id":2592,"name":"FunctionDefinition","src":"15131:626:3"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"findPtr","payable":false,"scope":3327,"stateMutability":"pure","superFunction":null,"visibility":"private"},"children":[{"children":[{"attributes":{"constant":false,"name":"selflen","scope":2713,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2593,"name":"ElementaryTypeName","src":"15931:4:3"}],"id":2594,"name":"VariableDeclaration","src":"15931:12:3"},{"attributes":{"constant":false,"name":"selfptr","scope":2713,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2595,"name":"ElementaryTypeName","src":"15945:4:3"}],"id":2596,"name":"VariableDeclaration","src":"15945:12:3"},{"attributes":{"constant":false,"name":"needlelen","scope":2713,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2597,"name":"ElementaryTypeName","src":"15959:4:3"}],"id":2598,"name":"VariableDeclaration","src":"15959:14:3"},{"attributes":{"constant":false,"name":"needleptr","scope":2713,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2599,"name":"ElementaryTypeName","src":"15975:4:3"}],"id":2600,"name":"VariableDeclaration","src":"15975:14:3"}],"id":2601,"name":"ParameterList","src":"15930:60:3"},{"children":[{"attributes":{"constant":false,"name":"","scope":2713,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2602,"name":"ElementaryTypeName","src":"16013:4:3"}],"id":2603,"name":"VariableDeclaration","src":"16013:4:3"}],"id":2604,"name":"ParameterList","src":"16012:6:3"},{"children":[{"attributes":{"assignments":[2606]},"children":[{"attributes":{"constant":false,"name":"ptr","scope":2713,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2605,"name":"ElementaryTypeName","src":"16029:4:3"}],"id":2606,"name":"VariableDeclaration","src":"16029:8:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2596,"type":"uint256","value":"selfptr"},"id":2607,"name":"Identifier","src":"16040:7:3"}],"id":2608,"name":"VariableDeclarationStatement","src":"16029:18:3"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"idx","scope":2713,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2609,"name":"ElementaryTypeName","src":"16057:4:3"}],"id":2610,"name":"VariableDeclaration","src":"16057:8:3"}],"id":2611,"name":"VariableDeclarationStatement","src":"16057:8:3"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2598,"type":"uint256","value":"needlelen"},"id":2612,"name":"Identifier","src":"16080:9:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2594,"type":"uint256","value":"selflen"},"id":2613,"name":"Identifier","src":"16093:7:3"}],"id":2614,"name":"BinaryOperation","src":"16080:20:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2598,"type":"uint256","value":"needlelen"},"id":2615,"name":"Identifier","src":"16120:9:3"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":2616,"name":"Literal","src":"16133:2:3"}],"id":2617,"name":"BinaryOperation","src":"16120:15:3"},{"children":[{"attributes":{"assignments":[2619]},"children":[{"attributes":{"constant":false,"name":"mask","scope":2713,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":2618,"name":"ElementaryTypeName","src":"16155:7:3"}],"id":2619,"name":"VariableDeclaration","src":"16155:12:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes32)","value":"bytes32"},"id":2620,"name":"ElementaryTypeNameExpression","src":"16170:7:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"~","prefix":true,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"**","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":2621,"name":"Literal","src":"16180:1:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"38","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 8","value":"8"},"id":2622,"name":"Literal","src":"16186:1:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":2623,"name":"Literal","src":"16191:2:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2598,"type":"uint256","value":"needlelen"},"id":2624,"name":"Identifier","src":"16196:9:3"}],"id":2625,"name":"BinaryOperation","src":"16191:14:3"}],"id":2626,"name":"TupleExpression","src":"16190:16:3"}],"id":2627,"name":"BinaryOperation","src":"16186:20:3"}],"id":2628,"name":"TupleExpression","src":"16185:22:3"}],"id":2629,"name":"BinaryOperation","src":"16180:27:3"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":2630,"name":"Literal","src":"16210:1:3"}],"id":2631,"name":"BinaryOperation","src":"16180:31:3"}],"id":2632,"name":"TupleExpression","src":"16179:33:3"}],"id":2633,"name":"UnaryOperation","src":"16178:34:3"}],"id":2634,"name":"FunctionCall","src":"16170:43:3"}],"id":2635,"name":"VariableDeclarationStatement","src":"16155:58:3"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"needledata","scope":2713,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":2636,"name":"ElementaryTypeName","src":"16232:7:3"}],"id":2637,"name":"VariableDeclaration","src":"16232:18:3"}],"id":2638,"name":"VariableDeclarationStatement","src":"16232:18:3"},{"attributes":{"externalReferences":[{"needleptr":{"declaration":2600,"isOffset":false,"isSlot":false,"src":"16303:9:3","valueSize":1}},{"needledata":{"declaration":2637,"isOffset":false,"isSlot":false,"src":"16279:10:3","valueSize":1}},{"mask":{"declaration":2619,"isOffset":false,"isSlot":false,"src":"16315:4:3","valueSize":1}}],"operations":"{\n needledata := and(mload(needleptr), mask)\n}"},"children":[],"id":2639,"name":"InlineAssembly","src":"16268:76:3"},{"attributes":{"assignments":[2641]},"children":[{"attributes":{"constant":false,"name":"end","scope":2713,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2640,"name":"ElementaryTypeName","src":"16340:4:3"}],"id":2641,"name":"VariableDeclaration","src":"16340:8:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2596,"type":"uint256","value":"selfptr"},"id":2642,"name":"Identifier","src":"16351:7:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2594,"type":"uint256","value":"selflen"},"id":2643,"name":"Identifier","src":"16361:7:3"}],"id":2644,"name":"BinaryOperation","src":"16351:17:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2598,"type":"uint256","value":"needlelen"},"id":2645,"name":"Identifier","src":"16371:9:3"}],"id":2646,"name":"BinaryOperation","src":"16351:29:3"}],"id":2647,"name":"VariableDeclarationStatement","src":"16340:40:3"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"ptrdata","scope":2713,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":2648,"name":"ElementaryTypeName","src":"16398:7:3"}],"id":2649,"name":"VariableDeclaration","src":"16398:15:3"}],"id":2650,"name":"VariableDeclarationStatement","src":"16398:15:3"},{"attributes":{"externalReferences":[{"ptr":{"declaration":2606,"isOffset":false,"isSlot":false,"src":"16463:3:3","valueSize":1}},{"ptrdata":{"declaration":2649,"isOffset":false,"isSlot":false,"src":"16442:7:3","valueSize":1}},{"mask":{"declaration":2619,"isOffset":false,"isSlot":false,"src":"16469:4:3","valueSize":1}}],"operations":"{\n ptrdata := and(mload(ptr), mask)\n}"},"children":[],"id":2651,"name":"InlineAssembly","src":"16431:68:3"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2649,"type":"bytes32","value":"ptrdata"},"id":2652,"name":"Identifier","src":"16501:7:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2637,"type":"bytes32","value":"needledata"},"id":2653,"name":"Identifier","src":"16512:10:3"}],"id":2654,"name":"BinaryOperation","src":"16501:21:3"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2606,"type":"uint256","value":"ptr"},"id":2655,"name":"Identifier","src":"16550:3:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2641,"type":"uint256","value":"end"},"id":2656,"name":"Identifier","src":"16557:3:3"}],"id":2657,"name":"BinaryOperation","src":"16550:10:3"},{"attributes":{"functionReturnParameters":2604},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2596,"type":"uint256","value":"selfptr"},"id":2658,"name":"Identifier","src":"16593:7:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2594,"type":"uint256","value":"selflen"},"id":2659,"name":"Identifier","src":"16603:7:3"}],"id":2660,"name":"BinaryOperation","src":"16593:17:3"}],"id":2661,"name":"Return","src":"16586:24:3"}],"id":2662,"name":"IfStatement","src":"16546:64:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2606,"type":"uint256","value":"ptr"},"id":2663,"name":"Identifier","src":"16632:3:3"}],"id":2664,"name":"UnaryOperation","src":"16632:5:3"}],"id":2665,"name":"ExpressionStatement","src":"16632:5:3"},{"attributes":{"externalReferences":[{"ptr":{"declaration":2606,"isOffset":false,"isSlot":false,"src":"16691:3:3","valueSize":1}},{"ptrdata":{"declaration":2649,"isOffset":false,"isSlot":false,"src":"16670:7:3","valueSize":1}},{"mask":{"declaration":2619,"isOffset":false,"isSlot":false,"src":"16697:4:3","valueSize":1}}],"operations":"{\n ptrdata := and(mload(ptr), mask)\n}"},"children":[],"id":2666,"name":"InlineAssembly","src":"16659:63:3"}],"id":2667,"name":"Block","src":"16524:198:3"}],"id":2668,"name":"WhileStatement","src":"16494:228:3"},{"attributes":{"functionReturnParameters":2604},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2606,"type":"uint256","value":"ptr"},"id":2669,"name":"Identifier","src":"16746:3:3"}],"id":2670,"name":"Return","src":"16739:10:3"}],"id":2671,"name":"Block","src":"16137:627:3"},{"children":[{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"hash","scope":2713,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":2672,"name":"ElementaryTypeName","src":"16837:7:3"}],"id":2673,"name":"VariableDeclaration","src":"16837:12:3"}],"id":2674,"name":"VariableDeclarationStatement","src":"16837:12:3"},{"attributes":{"externalReferences":[{"hash":{"declaration":2673,"isOffset":false,"isSlot":false,"src":"16878:4:3","valueSize":1}},{"needleptr":{"declaration":2600,"isOffset":false,"isSlot":false,"src":"16896:9:3","valueSize":1}},{"needlelen":{"declaration":2598,"isOffset":false,"isSlot":false,"src":"16907:9:3","valueSize":1}}],"operations":"{\n hash := keccak256(needleptr, needlelen)\n}"},"children":[],"id":2675,"name":"InlineAssembly","src":"16867:73:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2610,"type":"uint256","value":"idx"},"id":2676,"name":"Identifier","src":"16942:3:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2677,"name":"Literal","src":"16948:1:3"}],"id":2678,"name":"Assignment","src":"16942:7:3"}],"id":2679,"name":"ExpressionStatement","src":"16942:7:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2610,"type":"uint256","value":"idx"},"id":2680,"name":"Identifier","src":"16951:3:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2594,"type":"uint256","value":"selflen"},"id":2681,"name":"Identifier","src":"16958:7:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2598,"type":"uint256","value":"needlelen"},"id":2682,"name":"Identifier","src":"16968:9:3"}],"id":2683,"name":"BinaryOperation","src":"16958:19:3"}],"id":2684,"name":"BinaryOperation","src":"16951:26:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2610,"type":"uint256","value":"idx"},"id":2685,"name":"Identifier","src":"16979:3:3"}],"id":2686,"name":"UnaryOperation","src":"16979:5:3"}],"id":2687,"name":"ExpressionStatement","src":"16979:5:3"},{"children":[{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"testHash","scope":2713,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":2688,"name":"ElementaryTypeName","src":"17008:7:3"}],"id":2689,"name":"VariableDeclaration","src":"17008:16:3"}],"id":2690,"name":"VariableDeclarationStatement","src":"17008:16:3"},{"attributes":{"externalReferences":[{"testHash":{"declaration":2689,"isOffset":false,"isSlot":false,"src":"17057:8:3","valueSize":1}},{"ptr":{"declaration":2606,"isOffset":false,"isSlot":false,"src":"17079:3:3","valueSize":1}},{"needlelen":{"declaration":2598,"isOffset":false,"isSlot":false,"src":"17084:9:3","valueSize":1}}],"operations":"{\n testHash := keccak256(ptr, needlelen)\n}"},"children":[],"id":2691,"name":"InlineAssembly","src":"17046:73:3"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2673,"type":"bytes32","value":"hash"},"id":2692,"name":"Identifier","src":"17121:4:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2689,"type":"bytes32","value":"testHash"},"id":2693,"name":"Identifier","src":"17129:8:3"}],"id":2694,"name":"BinaryOperation","src":"17121:16:3"},{"attributes":{"functionReturnParameters":2604},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2606,"type":"uint256","value":"ptr"},"id":2695,"name":"Identifier","src":"17170:3:3"}],"id":2696,"name":"Return","src":"17163:10:3"}],"id":2697,"name":"IfStatement","src":"17117:56:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2606,"type":"uint256","value":"ptr"},"id":2698,"name":"Identifier","src":"17195:3:3"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":2699,"name":"Literal","src":"17202:1:3"}],"id":2700,"name":"Assignment","src":"17195:8:3"}],"id":2701,"name":"ExpressionStatement","src":"17195:8:3"}],"id":2702,"name":"Block","src":"16986:236:3"}],"id":2703,"name":"ForStatement","src":"16937:285:3"}],"id":2704,"name":"Block","src":"16770:466:3"}],"id":2705,"name":"IfStatement","src":"16116:1120:3"}],"id":2706,"name":"Block","src":"16102:1144:3"}],"id":2707,"name":"IfStatement","src":"16076:1170:3"},{"attributes":{"functionReturnParameters":2604},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2596,"type":"uint256","value":"selfptr"},"id":2708,"name":"Identifier","src":"17262:7:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2594,"type":"uint256","value":"selflen"},"id":2709,"name":"Identifier","src":"17272:7:3"}],"id":2710,"name":"BinaryOperation","src":"17262:17:3"}],"id":2711,"name":"Return","src":"17255:24:3"}],"id":2712,"name":"Block","src":"16019:1267:3"}],"id":2713,"name":"FunctionDefinition","src":"15914:1372:3"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"rfindPtr","payable":false,"scope":3327,"stateMutability":"pure","superFunction":null,"visibility":"private"},"children":[{"children":[{"attributes":{"constant":false,"name":"selflen","scope":2830,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2714,"name":"ElementaryTypeName","src":"17457:4:3"}],"id":2715,"name":"VariableDeclaration","src":"17457:12:3"},{"attributes":{"constant":false,"name":"selfptr","scope":2830,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2716,"name":"ElementaryTypeName","src":"17471:4:3"}],"id":2717,"name":"VariableDeclaration","src":"17471:12:3"},{"attributes":{"constant":false,"name":"needlelen","scope":2830,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2718,"name":"ElementaryTypeName","src":"17485:4:3"}],"id":2719,"name":"VariableDeclaration","src":"17485:14:3"},{"attributes":{"constant":false,"name":"needleptr","scope":2830,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2720,"name":"ElementaryTypeName","src":"17501:4:3"}],"id":2721,"name":"VariableDeclaration","src":"17501:14:3"}],"id":2722,"name":"ParameterList","src":"17456:60:3"},{"children":[{"attributes":{"constant":false,"name":"","scope":2830,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2723,"name":"ElementaryTypeName","src":"17539:4:3"}],"id":2724,"name":"VariableDeclaration","src":"17539:4:3"}],"id":2725,"name":"ParameterList","src":"17538:6:3"},{"children":[{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"ptr","scope":2830,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2726,"name":"ElementaryTypeName","src":"17555:4:3"}],"id":2727,"name":"VariableDeclaration","src":"17555:8:3"}],"id":2728,"name":"VariableDeclarationStatement","src":"17555:8:3"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2719,"type":"uint256","value":"needlelen"},"id":2729,"name":"Identifier","src":"17578:9:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2715,"type":"uint256","value":"selflen"},"id":2730,"name":"Identifier","src":"17591:7:3"}],"id":2731,"name":"BinaryOperation","src":"17578:20:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2719,"type":"uint256","value":"needlelen"},"id":2732,"name":"Identifier","src":"17618:9:3"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":2733,"name":"Literal","src":"17631:2:3"}],"id":2734,"name":"BinaryOperation","src":"17618:15:3"},{"children":[{"attributes":{"assignments":[2736]},"children":[{"attributes":{"constant":false,"name":"mask","scope":2830,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":2735,"name":"ElementaryTypeName","src":"17653:7:3"}],"id":2736,"name":"VariableDeclaration","src":"17653:12:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes32)","value":"bytes32"},"id":2737,"name":"ElementaryTypeNameExpression","src":"17668:7:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"~","prefix":true,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"**","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":2738,"name":"Literal","src":"17678:1:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"38","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 8","value":"8"},"id":2739,"name":"Literal","src":"17684:1:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":2740,"name":"Literal","src":"17689:2:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2719,"type":"uint256","value":"needlelen"},"id":2741,"name":"Identifier","src":"17694:9:3"}],"id":2742,"name":"BinaryOperation","src":"17689:14:3"}],"id":2743,"name":"TupleExpression","src":"17688:16:3"}],"id":2744,"name":"BinaryOperation","src":"17684:20:3"}],"id":2745,"name":"TupleExpression","src":"17683:22:3"}],"id":2746,"name":"BinaryOperation","src":"17678:27:3"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":2747,"name":"Literal","src":"17708:1:3"}],"id":2748,"name":"BinaryOperation","src":"17678:31:3"}],"id":2749,"name":"TupleExpression","src":"17677:33:3"}],"id":2750,"name":"UnaryOperation","src":"17676:34:3"}],"id":2751,"name":"FunctionCall","src":"17668:43:3"}],"id":2752,"name":"VariableDeclarationStatement","src":"17653:58:3"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"needledata","scope":2830,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":2753,"name":"ElementaryTypeName","src":"17730:7:3"}],"id":2754,"name":"VariableDeclaration","src":"17730:18:3"}],"id":2755,"name":"VariableDeclarationStatement","src":"17730:18:3"},{"attributes":{"externalReferences":[{"needleptr":{"declaration":2721,"isOffset":false,"isSlot":false,"src":"17801:9:3","valueSize":1}},{"needledata":{"declaration":2754,"isOffset":false,"isSlot":false,"src":"17777:10:3","valueSize":1}},{"mask":{"declaration":2736,"isOffset":false,"isSlot":false,"src":"17813:4:3","valueSize":1}}],"operations":"{\n needledata := and(mload(needleptr), mask)\n}"},"children":[],"id":2756,"name":"InlineAssembly","src":"17766:75:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2727,"type":"uint256","value":"ptr"},"id":2757,"name":"Identifier","src":"17838:3:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2717,"type":"uint256","value":"selfptr"},"id":2758,"name":"Identifier","src":"17844:7:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2715,"type":"uint256","value":"selflen"},"id":2759,"name":"Identifier","src":"17854:7:3"}],"id":2760,"name":"BinaryOperation","src":"17844:17:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2719,"type":"uint256","value":"needlelen"},"id":2761,"name":"Identifier","src":"17864:9:3"}],"id":2762,"name":"BinaryOperation","src":"17844:29:3"}],"id":2763,"name":"Assignment","src":"17838:35:3"}],"id":2764,"name":"ExpressionStatement","src":"17838:35:3"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"ptrdata","scope":2830,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":2765,"name":"ElementaryTypeName","src":"17891:7:3"}],"id":2766,"name":"VariableDeclaration","src":"17891:15:3"}],"id":2767,"name":"VariableDeclarationStatement","src":"17891:15:3"},{"attributes":{"externalReferences":[{"ptr":{"declaration":2727,"isOffset":false,"isSlot":false,"src":"17956:3:3","valueSize":1}},{"ptrdata":{"declaration":2766,"isOffset":false,"isSlot":false,"src":"17935:7:3","valueSize":1}},{"mask":{"declaration":2736,"isOffset":false,"isSlot":false,"src":"17962:4:3","valueSize":1}}],"operations":"{\n ptrdata := and(mload(ptr), mask)\n}"},"children":[],"id":2768,"name":"InlineAssembly","src":"17924:68:3"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2766,"type":"bytes32","value":"ptrdata"},"id":2769,"name":"Identifier","src":"17994:7:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2754,"type":"bytes32","value":"needledata"},"id":2770,"name":"Identifier","src":"18005:10:3"}],"id":2771,"name":"BinaryOperation","src":"17994:21:3"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2727,"type":"uint256","value":"ptr"},"id":2772,"name":"Identifier","src":"18043:3:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2717,"type":"uint256","value":"selfptr"},"id":2773,"name":"Identifier","src":"18050:7:3"}],"id":2774,"name":"BinaryOperation","src":"18043:14:3"},{"attributes":{"functionReturnParameters":2725},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2717,"type":"uint256","value":"selfptr"},"id":2775,"name":"Identifier","src":"18090:7:3"}],"id":2776,"name":"Return","src":"18083:14:3"}],"id":2777,"name":"IfStatement","src":"18039:58:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"--","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2727,"type":"uint256","value":"ptr"},"id":2778,"name":"Identifier","src":"18119:3:3"}],"id":2779,"name":"UnaryOperation","src":"18119:5:3"}],"id":2780,"name":"ExpressionStatement","src":"18119:5:3"},{"attributes":{"externalReferences":[{"ptr":{"declaration":2727,"isOffset":false,"isSlot":false,"src":"18178:3:3","valueSize":1}},{"ptrdata":{"declaration":2766,"isOffset":false,"isSlot":false,"src":"18157:7:3","valueSize":1}},{"mask":{"declaration":2736,"isOffset":false,"isSlot":false,"src":"18184:4:3","valueSize":1}}],"operations":"{\n ptrdata := and(mload(ptr), mask)\n}"},"children":[],"id":2781,"name":"InlineAssembly","src":"18146:63:3"}],"id":2782,"name":"Block","src":"18017:192:3"}],"id":2783,"name":"WhileStatement","src":"17987:222:3"},{"attributes":{"functionReturnParameters":2725},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2727,"type":"uint256","value":"ptr"},"id":2784,"name":"Identifier","src":"18233:3:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2719,"type":"uint256","value":"needlelen"},"id":2785,"name":"Identifier","src":"18239:9:3"}],"id":2786,"name":"BinaryOperation","src":"18233:15:3"}],"id":2787,"name":"Return","src":"18226:22:3"}],"id":2788,"name":"Block","src":"17635:628:3"},{"children":[{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"hash","scope":2830,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":2789,"name":"ElementaryTypeName","src":"18336:7:3"}],"id":2790,"name":"VariableDeclaration","src":"18336:12:3"}],"id":2791,"name":"VariableDeclarationStatement","src":"18336:12:3"},{"attributes":{"externalReferences":[{"hash":{"declaration":2790,"isOffset":false,"isSlot":false,"src":"18377:4:3","valueSize":1}},{"needleptr":{"declaration":2721,"isOffset":false,"isSlot":false,"src":"18395:9:3","valueSize":1}},{"needlelen":{"declaration":2719,"isOffset":false,"isSlot":false,"src":"18406:9:3","valueSize":1}}],"operations":"{\n hash := keccak256(needleptr, needlelen)\n}"},"children":[],"id":2792,"name":"InlineAssembly","src":"18366:72:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2727,"type":"uint256","value":"ptr"},"id":2793,"name":"Identifier","src":"18435:3:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2717,"type":"uint256","value":"selfptr"},"id":2794,"name":"Identifier","src":"18441:7:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2715,"type":"uint256","value":"selflen"},"id":2795,"name":"Identifier","src":"18452:7:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2719,"type":"uint256","value":"needlelen"},"id":2796,"name":"Identifier","src":"18462:9:3"}],"id":2797,"name":"BinaryOperation","src":"18452:19:3"}],"id":2798,"name":"TupleExpression","src":"18451:21:3"}],"id":2799,"name":"BinaryOperation","src":"18441:31:3"}],"id":2800,"name":"Assignment","src":"18435:37:3"}],"id":2801,"name":"ExpressionStatement","src":"18435:37:3"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2727,"type":"uint256","value":"ptr"},"id":2802,"name":"Identifier","src":"18497:3:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2717,"type":"uint256","value":"selfptr"},"id":2803,"name":"Identifier","src":"18504:7:3"}],"id":2804,"name":"BinaryOperation","src":"18497:14:3"},{"children":[{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"testHash","scope":2830,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":2805,"name":"ElementaryTypeName","src":"18535:7:3"}],"id":2806,"name":"VariableDeclaration","src":"18535:16:3"}],"id":2807,"name":"VariableDeclarationStatement","src":"18535:16:3"},{"attributes":{"externalReferences":[{"testHash":{"declaration":2806,"isOffset":false,"isSlot":false,"src":"18584:8:3","valueSize":1}},{"ptr":{"declaration":2727,"isOffset":false,"isSlot":false,"src":"18606:3:3","valueSize":1}},{"needlelen":{"declaration":2719,"isOffset":false,"isSlot":false,"src":"18611:9:3","valueSize":1}}],"operations":"{\n testHash := keccak256(ptr, needlelen)\n}"},"children":[],"id":2808,"name":"InlineAssembly","src":"18573:73:3"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2790,"type":"bytes32","value":"hash"},"id":2809,"name":"Identifier","src":"18648:4:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2806,"type":"bytes32","value":"testHash"},"id":2810,"name":"Identifier","src":"18656:8:3"}],"id":2811,"name":"BinaryOperation","src":"18648:16:3"},{"attributes":{"functionReturnParameters":2725},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2727,"type":"uint256","value":"ptr"},"id":2812,"name":"Identifier","src":"18697:3:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2719,"type":"uint256","value":"needlelen"},"id":2813,"name":"Identifier","src":"18703:9:3"}],"id":2814,"name":"BinaryOperation","src":"18697:15:3"}],"id":2815,"name":"Return","src":"18690:22:3"}],"id":2816,"name":"IfStatement","src":"18644:68:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2727,"type":"uint256","value":"ptr"},"id":2817,"name":"Identifier","src":"18734:3:3"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":2818,"name":"Literal","src":"18741:1:3"}],"id":2819,"name":"Assignment","src":"18734:8:3"}],"id":2820,"name":"ExpressionStatement","src":"18734:8:3"}],"id":2821,"name":"Block","src":"18513:248:3"}],"id":2822,"name":"WhileStatement","src":"18490:271:3"}],"id":2823,"name":"Block","src":"18269:506:3"}],"id":2824,"name":"IfStatement","src":"17614:1161:3"}],"id":2825,"name":"Block","src":"17600:1185:3"}],"id":2826,"name":"IfStatement","src":"17574:1211:3"},{"attributes":{"functionReturnParameters":2725},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2717,"type":"uint256","value":"selfptr"},"id":2827,"name":"Identifier","src":"18801:7:3"}],"id":2828,"name":"Return","src":"18794:14:3"}],"id":2829,"name":"Block","src":"17545:1270:3"}],"id":2830,"name":"FunctionDefinition","src":"17439:1376:3"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"find","payable":false,"scope":3327,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":2870,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1639,"type":"struct strings.slice"},"id":2831,"name":"UserDefinedTypeName","src":"19165:5:3"}],"id":2832,"name":"VariableDeclaration","src":"19165:17:3"},{"attributes":{"constant":false,"name":"needle","scope":2870,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1639,"type":"struct strings.slice"},"id":2833,"name":"UserDefinedTypeName","src":"19184:5:3"}],"id":2834,"name":"VariableDeclaration","src":"19184:19:3"}],"id":2835,"name":"ParameterList","src":"19164:40:3"},{"children":[{"attributes":{"constant":false,"name":"","scope":2870,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1639,"type":"struct strings.slice"},"id":2836,"name":"UserDefinedTypeName","src":"19228:5:3"}],"id":2837,"name":"VariableDeclaration","src":"19228:5:3"}],"id":2838,"name":"ParameterList","src":"19227:14:3"},{"children":[{"attributes":{"assignments":[2840]},"children":[{"attributes":{"constant":false,"name":"ptr","scope":2870,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2839,"name":"ElementaryTypeName","src":"19252:4:3"}],"id":2840,"name":"VariableDeclaration","src":"19252:8:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":2713,"type":"function (uint256,uint256,uint256,uint256) pure returns (uint256)","value":"findPtr"},"id":2841,"name":"Identifier","src":"19263:7:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1636,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2832,"type":"struct strings.slice memory","value":"self"},"id":2842,"name":"Identifier","src":"19271:4:3"}],"id":2843,"name":"MemberAccess","src":"19271:9:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":1638,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2832,"type":"struct strings.slice memory","value":"self"},"id":2844,"name":"Identifier","src":"19282:4:3"}],"id":2845,"name":"MemberAccess","src":"19282:9:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1636,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2834,"type":"struct strings.slice memory","value":"needle"},"id":2846,"name":"Identifier","src":"19293:6:3"}],"id":2847,"name":"MemberAccess","src":"19293:11:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":1638,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2834,"type":"struct strings.slice memory","value":"needle"},"id":2848,"name":"Identifier","src":"19306:6:3"}],"id":2849,"name":"MemberAccess","src":"19306:11:3"}],"id":2850,"name":"FunctionCall","src":"19263:55:3"}],"id":2851,"name":"VariableDeclarationStatement","src":"19252:66:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":1636,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2832,"type":"struct strings.slice memory","value":"self"},"id":2852,"name":"Identifier","src":"19328:4:3"}],"id":2854,"name":"MemberAccess","src":"19328:9:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2840,"type":"uint256","value":"ptr"},"id":2855,"name":"Identifier","src":"19341:3:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":1638,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2832,"type":"struct strings.slice memory","value":"self"},"id":2856,"name":"Identifier","src":"19347:4:3"}],"id":2857,"name":"MemberAccess","src":"19347:9:3"}],"id":2858,"name":"BinaryOperation","src":"19341:15:3"}],"id":2859,"name":"Assignment","src":"19328:28:3"}],"id":2860,"name":"ExpressionStatement","src":"19328:28:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_ptr","referencedDeclaration":1638,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2832,"type":"struct strings.slice memory","value":"self"},"id":2861,"name":"Identifier","src":"19366:4:3"}],"id":2863,"name":"MemberAccess","src":"19366:9:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2840,"type":"uint256","value":"ptr"},"id":2864,"name":"Identifier","src":"19378:3:3"}],"id":2865,"name":"Assignment","src":"19366:15:3"}],"id":2866,"name":"ExpressionStatement","src":"19366:15:3"},{"attributes":{"functionReturnParameters":2838},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2832,"type":"struct strings.slice memory","value":"self"},"id":2867,"name":"Identifier","src":"19398:4:3"}],"id":2868,"name":"Return","src":"19391:11:3"}],"id":2869,"name":"Block","src":"19242:167:3"}],"id":2870,"name":"FunctionDefinition","src":"19151:258:3"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"rfind","payable":false,"scope":3327,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":2904,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1639,"type":"struct strings.slice"},"id":2871,"name":"UserDefinedTypeName","src":"19783:5:3"}],"id":2872,"name":"VariableDeclaration","src":"19783:17:3"},{"attributes":{"constant":false,"name":"needle","scope":2904,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1639,"type":"struct strings.slice"},"id":2873,"name":"UserDefinedTypeName","src":"19802:5:3"}],"id":2874,"name":"VariableDeclaration","src":"19802:19:3"}],"id":2875,"name":"ParameterList","src":"19782:40:3"},{"children":[{"attributes":{"constant":false,"name":"","scope":2904,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1639,"type":"struct strings.slice"},"id":2876,"name":"UserDefinedTypeName","src":"19846:5:3"}],"id":2877,"name":"VariableDeclaration","src":"19846:5:3"}],"id":2878,"name":"ParameterList","src":"19845:14:3"},{"children":[{"attributes":{"assignments":[2880]},"children":[{"attributes":{"constant":false,"name":"ptr","scope":2904,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2879,"name":"ElementaryTypeName","src":"19870:4:3"}],"id":2880,"name":"VariableDeclaration","src":"19870:8:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":2830,"type":"function (uint256,uint256,uint256,uint256) pure returns (uint256)","value":"rfindPtr"},"id":2881,"name":"Identifier","src":"19881:8:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1636,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2872,"type":"struct strings.slice memory","value":"self"},"id":2882,"name":"Identifier","src":"19890:4:3"}],"id":2883,"name":"MemberAccess","src":"19890:9:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":1638,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2872,"type":"struct strings.slice memory","value":"self"},"id":2884,"name":"Identifier","src":"19901:4:3"}],"id":2885,"name":"MemberAccess","src":"19901:9:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1636,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2874,"type":"struct strings.slice memory","value":"needle"},"id":2886,"name":"Identifier","src":"19912:6:3"}],"id":2887,"name":"MemberAccess","src":"19912:11:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":1638,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2874,"type":"struct strings.slice memory","value":"needle"},"id":2888,"name":"Identifier","src":"19925:6:3"}],"id":2889,"name":"MemberAccess","src":"19925:11:3"}],"id":2890,"name":"FunctionCall","src":"19881:56:3"}],"id":2891,"name":"VariableDeclarationStatement","src":"19870:67:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":1636,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2872,"type":"struct strings.slice memory","value":"self"},"id":2892,"name":"Identifier","src":"19947:4:3"}],"id":2894,"name":"MemberAccess","src":"19947:9:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2880,"type":"uint256","value":"ptr"},"id":2895,"name":"Identifier","src":"19959:3:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":1638,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2872,"type":"struct strings.slice memory","value":"self"},"id":2896,"name":"Identifier","src":"19965:4:3"}],"id":2897,"name":"MemberAccess","src":"19965:9:3"}],"id":2898,"name":"BinaryOperation","src":"19959:15:3"}],"id":2899,"name":"Assignment","src":"19947:27:3"}],"id":2900,"name":"ExpressionStatement","src":"19947:27:3"},{"attributes":{"functionReturnParameters":2878},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2872,"type":"struct strings.slice memory","value":"self"},"id":2901,"name":"Identifier","src":"19991:4:3"}],"id":2902,"name":"Return","src":"19984:11:3"}],"id":2903,"name":"Block","src":"19860:142:3"}],"id":2904,"name":"FunctionDefinition","src":"19768:234:3"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"split","payable":false,"scope":3327,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":2982,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1639,"type":"struct strings.slice"},"id":2905,"name":"UserDefinedTypeName","src":"20523:5:3"}],"id":2906,"name":"VariableDeclaration","src":"20523:17:3"},{"attributes":{"constant":false,"name":"needle","scope":2982,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1639,"type":"struct strings.slice"},"id":2907,"name":"UserDefinedTypeName","src":"20542:5:3"}],"id":2908,"name":"VariableDeclaration","src":"20542:19:3"},{"attributes":{"constant":false,"name":"token","scope":2982,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1639,"type":"struct strings.slice"},"id":2909,"name":"UserDefinedTypeName","src":"20563:5:3"}],"id":2910,"name":"VariableDeclaration","src":"20563:18:3"}],"id":2911,"name":"ParameterList","src":"20522:60:3"},{"children":[{"attributes":{"constant":false,"name":"","scope":2982,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1639,"type":"struct strings.slice"},"id":2912,"name":"UserDefinedTypeName","src":"20606:5:3"}],"id":2913,"name":"VariableDeclaration","src":"20606:5:3"}],"id":2914,"name":"ParameterList","src":"20605:14:3"},{"children":[{"attributes":{"assignments":[2916]},"children":[{"attributes":{"constant":false,"name":"ptr","scope":2982,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2915,"name":"ElementaryTypeName","src":"20630:4:3"}],"id":2916,"name":"VariableDeclaration","src":"20630:8:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":2713,"type":"function (uint256,uint256,uint256,uint256) pure returns (uint256)","value":"findPtr"},"id":2917,"name":"Identifier","src":"20641:7:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1636,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2906,"type":"struct strings.slice memory","value":"self"},"id":2918,"name":"Identifier","src":"20649:4:3"}],"id":2919,"name":"MemberAccess","src":"20649:9:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":1638,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2906,"type":"struct strings.slice memory","value":"self"},"id":2920,"name":"Identifier","src":"20660:4:3"}],"id":2921,"name":"MemberAccess","src":"20660:9:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1636,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2908,"type":"struct strings.slice memory","value":"needle"},"id":2922,"name":"Identifier","src":"20671:6:3"}],"id":2923,"name":"MemberAccess","src":"20671:11:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":1638,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2908,"type":"struct strings.slice memory","value":"needle"},"id":2924,"name":"Identifier","src":"20684:6:3"}],"id":2925,"name":"MemberAccess","src":"20684:11:3"}],"id":2926,"name":"FunctionCall","src":"20641:55:3"}],"id":2927,"name":"VariableDeclarationStatement","src":"20630:66:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_ptr","referencedDeclaration":1638,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2910,"type":"struct strings.slice memory","value":"token"},"id":2928,"name":"Identifier","src":"20706:5:3"}],"id":2930,"name":"MemberAccess","src":"20706:10:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":1638,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2906,"type":"struct strings.slice memory","value":"self"},"id":2931,"name":"Identifier","src":"20719:4:3"}],"id":2932,"name":"MemberAccess","src":"20719:9:3"}],"id":2933,"name":"Assignment","src":"20706:22:3"}],"id":2934,"name":"ExpressionStatement","src":"20706:22:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":1636,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2910,"type":"struct strings.slice memory","value":"token"},"id":2935,"name":"Identifier","src":"20738:5:3"}],"id":2937,"name":"MemberAccess","src":"20738:10:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2916,"type":"uint256","value":"ptr"},"id":2938,"name":"Identifier","src":"20751:3:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":1638,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2906,"type":"struct strings.slice memory","value":"self"},"id":2939,"name":"Identifier","src":"20757:4:3"}],"id":2940,"name":"MemberAccess","src":"20757:9:3"}],"id":2941,"name":"BinaryOperation","src":"20751:15:3"}],"id":2942,"name":"Assignment","src":"20738:28:3"}],"id":2943,"name":"ExpressionStatement","src":"20738:28:3"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2916,"type":"uint256","value":"ptr"},"id":2944,"name":"Identifier","src":"20780:3:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":1638,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2906,"type":"struct strings.slice memory","value":"self"},"id":2945,"name":"Identifier","src":"20787:4:3"}],"id":2946,"name":"MemberAccess","src":"20787:9:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1636,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2906,"type":"struct strings.slice memory","value":"self"},"id":2947,"name":"Identifier","src":"20799:4:3"}],"id":2948,"name":"MemberAccess","src":"20799:9:3"}],"id":2949,"name":"BinaryOperation","src":"20787:21:3"}],"id":2950,"name":"BinaryOperation","src":"20780:28:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":1636,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2906,"type":"struct strings.slice memory","value":"self"},"id":2951,"name":"Identifier","src":"20849:4:3"}],"id":2953,"name":"MemberAccess","src":"20849:9:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2954,"name":"Literal","src":"20861:1:3"}],"id":2955,"name":"Assignment","src":"20849:13:3"}],"id":2956,"name":"ExpressionStatement","src":"20849:13:3"}],"id":2957,"name":"Block","src":"20810:63:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":1636,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2906,"type":"struct strings.slice memory","value":"self"},"id":2958,"name":"Identifier","src":"20893:4:3"}],"id":2960,"name":"MemberAccess","src":"20893:9:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1636,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2910,"type":"struct strings.slice memory","value":"token"},"id":2961,"name":"Identifier","src":"20906:5:3"}],"id":2962,"name":"MemberAccess","src":"20906:10:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1636,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2908,"type":"struct strings.slice memory","value":"needle"},"id":2963,"name":"Identifier","src":"20919:6:3"}],"id":2964,"name":"MemberAccess","src":"20919:11:3"}],"id":2965,"name":"BinaryOperation","src":"20906:24:3"}],"id":2966,"name":"Assignment","src":"20893:37:3"}],"id":2967,"name":"ExpressionStatement","src":"20893:37:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_ptr","referencedDeclaration":1638,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2906,"type":"struct strings.slice memory","value":"self"},"id":2968,"name":"Identifier","src":"20944:4:3"}],"id":2970,"name":"MemberAccess","src":"20944:9:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2916,"type":"uint256","value":"ptr"},"id":2971,"name":"Identifier","src":"20956:3:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1636,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2908,"type":"struct strings.slice memory","value":"needle"},"id":2972,"name":"Identifier","src":"20962:6:3"}],"id":2973,"name":"MemberAccess","src":"20962:11:3"}],"id":2974,"name":"BinaryOperation","src":"20956:17:3"}],"id":2975,"name":"Assignment","src":"20944:29:3"}],"id":2976,"name":"ExpressionStatement","src":"20944:29:3"}],"id":2977,"name":"Block","src":"20879:105:3"}],"id":2978,"name":"IfStatement","src":"20776:208:3"},{"attributes":{"functionReturnParameters":2914},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2910,"type":"struct strings.slice memory","value":"token"},"id":2979,"name":"Identifier","src":"21000:5:3"}],"id":2980,"name":"Return","src":"20993:12:3"}],"id":2981,"name":"Block","src":"20620:392:3"}],"id":2982,"name":"FunctionDefinition","src":"20508:504:3"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"split","payable":false,"scope":3327,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":2998,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1639,"type":"struct strings.slice"},"id":2983,"name":"UserDefinedTypeName","src":"21498:5:3"}],"id":2984,"name":"VariableDeclaration","src":"21498:17:3"},{"attributes":{"constant":false,"name":"needle","scope":2998,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1639,"type":"struct strings.slice"},"id":2985,"name":"UserDefinedTypeName","src":"21517:5:3"}],"id":2986,"name":"VariableDeclaration","src":"21517:19:3"}],"id":2987,"name":"ParameterList","src":"21497:40:3"},{"children":[{"attributes":{"constant":false,"name":"token","scope":2998,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1639,"type":"struct strings.slice"},"id":2988,"name":"UserDefinedTypeName","src":"21561:5:3"}],"id":2989,"name":"VariableDeclaration","src":"21561:18:3"}],"id":2990,"name":"ParameterList","src":"21560:20:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"struct strings.slice memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$1639_memory_ptr","typeString":"struct strings.slice memory"},{"typeIdentifier":"t_struct$_slice_$1639_memory_ptr","typeString":"struct strings.slice memory"},{"typeIdentifier":"t_struct$_slice_$1639_memory_ptr","typeString":"struct strings.slice memory"}],"overloadedDeclarations":[2982,2998],"referencedDeclaration":2982,"type":"function (struct strings.slice memory,struct strings.slice memory,struct strings.slice memory) pure returns (struct strings.slice memory)","value":"split"},"id":2991,"name":"Identifier","src":"21591:5:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2984,"type":"struct strings.slice memory","value":"self"},"id":2992,"name":"Identifier","src":"21597:4:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2986,"type":"struct strings.slice memory","value":"needle"},"id":2993,"name":"Identifier","src":"21603:6:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2989,"type":"struct strings.slice memory","value":"token"},"id":2994,"name":"Identifier","src":"21611:5:3"}],"id":2995,"name":"FunctionCall","src":"21591:26:3"}],"id":2996,"name":"ExpressionStatement","src":"21591:26:3"}],"id":2997,"name":"Block","src":"21581:43:3"}],"id":2998,"name":"FunctionDefinition","src":"21483:141:3"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"rsplit","payable":false,"scope":3327,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":3067,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1639,"type":"struct strings.slice"},"id":2999,"name":"UserDefinedTypeName","src":"22145:5:3"}],"id":3000,"name":"VariableDeclaration","src":"22145:17:3"},{"attributes":{"constant":false,"name":"needle","scope":3067,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1639,"type":"struct strings.slice"},"id":3001,"name":"UserDefinedTypeName","src":"22164:5:3"}],"id":3002,"name":"VariableDeclaration","src":"22164:19:3"},{"attributes":{"constant":false,"name":"token","scope":3067,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1639,"type":"struct strings.slice"},"id":3003,"name":"UserDefinedTypeName","src":"22185:5:3"}],"id":3004,"name":"VariableDeclaration","src":"22185:18:3"}],"id":3005,"name":"ParameterList","src":"22144:60:3"},{"children":[{"attributes":{"constant":false,"name":"","scope":3067,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1639,"type":"struct strings.slice"},"id":3006,"name":"UserDefinedTypeName","src":"22228:5:3"}],"id":3007,"name":"VariableDeclaration","src":"22228:5:3"}],"id":3008,"name":"ParameterList","src":"22227:14:3"},{"children":[{"attributes":{"assignments":[3010]},"children":[{"attributes":{"constant":false,"name":"ptr","scope":3067,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":3009,"name":"ElementaryTypeName","src":"22252:4:3"}],"id":3010,"name":"VariableDeclaration","src":"22252:8:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":2830,"type":"function (uint256,uint256,uint256,uint256) pure returns (uint256)","value":"rfindPtr"},"id":3011,"name":"Identifier","src":"22263:8:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1636,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3000,"type":"struct strings.slice memory","value":"self"},"id":3012,"name":"Identifier","src":"22272:4:3"}],"id":3013,"name":"MemberAccess","src":"22272:9:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":1638,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3000,"type":"struct strings.slice memory","value":"self"},"id":3014,"name":"Identifier","src":"22283:4:3"}],"id":3015,"name":"MemberAccess","src":"22283:9:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1636,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3002,"type":"struct strings.slice memory","value":"needle"},"id":3016,"name":"Identifier","src":"22294:6:3"}],"id":3017,"name":"MemberAccess","src":"22294:11:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":1638,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3002,"type":"struct strings.slice memory","value":"needle"},"id":3018,"name":"Identifier","src":"22307:6:3"}],"id":3019,"name":"MemberAccess","src":"22307:11:3"}],"id":3020,"name":"FunctionCall","src":"22263:56:3"}],"id":3021,"name":"VariableDeclarationStatement","src":"22252:67:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_ptr","referencedDeclaration":1638,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3004,"type":"struct strings.slice memory","value":"token"},"id":3022,"name":"Identifier","src":"22329:5:3"}],"id":3024,"name":"MemberAccess","src":"22329:10:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3010,"type":"uint256","value":"ptr"},"id":3025,"name":"Identifier","src":"22342:3:3"}],"id":3026,"name":"Assignment","src":"22329:16:3"}],"id":3027,"name":"ExpressionStatement","src":"22329:16:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":1636,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3004,"type":"struct strings.slice memory","value":"token"},"id":3028,"name":"Identifier","src":"22355:5:3"}],"id":3030,"name":"MemberAccess","src":"22355:10:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1636,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3000,"type":"struct strings.slice memory","value":"self"},"id":3031,"name":"Identifier","src":"22368:4:3"}],"id":3032,"name":"MemberAccess","src":"22368:9:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3010,"type":"uint256","value":"ptr"},"id":3033,"name":"Identifier","src":"22381:3:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":1638,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3000,"type":"struct strings.slice memory","value":"self"},"id":3034,"name":"Identifier","src":"22387:4:3"}],"id":3035,"name":"MemberAccess","src":"22387:9:3"}],"id":3036,"name":"BinaryOperation","src":"22381:15:3"}],"id":3037,"name":"TupleExpression","src":"22380:17:3"}],"id":3038,"name":"BinaryOperation","src":"22368:29:3"}],"id":3039,"name":"Assignment","src":"22355:42:3"}],"id":3040,"name":"ExpressionStatement","src":"22355:42:3"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3010,"type":"uint256","value":"ptr"},"id":3041,"name":"Identifier","src":"22411:3:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":1638,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3000,"type":"struct strings.slice memory","value":"self"},"id":3042,"name":"Identifier","src":"22418:4:3"}],"id":3043,"name":"MemberAccess","src":"22418:9:3"}],"id":3044,"name":"BinaryOperation","src":"22411:16:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":1636,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3000,"type":"struct strings.slice memory","value":"self"},"id":3045,"name":"Identifier","src":"22468:4:3"}],"id":3047,"name":"MemberAccess","src":"22468:9:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3048,"name":"Literal","src":"22480:1:3"}],"id":3049,"name":"Assignment","src":"22468:13:3"}],"id":3050,"name":"ExpressionStatement","src":"22468:13:3"}],"id":3051,"name":"Block","src":"22429:63:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":1636,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3000,"type":"struct strings.slice memory","value":"self"},"id":3052,"name":"Identifier","src":"22512:4:3"}],"id":3054,"name":"MemberAccess","src":"22512:9:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1636,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3004,"type":"struct strings.slice memory","value":"token"},"id":3055,"name":"Identifier","src":"22525:5:3"}],"id":3056,"name":"MemberAccess","src":"22525:10:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1636,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3002,"type":"struct strings.slice memory","value":"needle"},"id":3057,"name":"Identifier","src":"22538:6:3"}],"id":3058,"name":"MemberAccess","src":"22538:11:3"}],"id":3059,"name":"BinaryOperation","src":"22525:24:3"}],"id":3060,"name":"Assignment","src":"22512:37:3"}],"id":3061,"name":"ExpressionStatement","src":"22512:37:3"}],"id":3062,"name":"Block","src":"22498:62:3"}],"id":3063,"name":"IfStatement","src":"22407:153:3"},{"attributes":{"functionReturnParameters":3008},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3004,"type":"struct strings.slice memory","value":"token"},"id":3064,"name":"Identifier","src":"22576:5:3"}],"id":3065,"name":"Return","src":"22569:12:3"}],"id":3066,"name":"Block","src":"22242:346:3"}],"id":3067,"name":"FunctionDefinition","src":"22129:459:3"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"rsplit","payable":false,"scope":3327,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":3083,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1639,"type":"struct strings.slice"},"id":3068,"name":"UserDefinedTypeName","src":"23073:5:3"}],"id":3069,"name":"VariableDeclaration","src":"23073:17:3"},{"attributes":{"constant":false,"name":"needle","scope":3083,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1639,"type":"struct strings.slice"},"id":3070,"name":"UserDefinedTypeName","src":"23092:5:3"}],"id":3071,"name":"VariableDeclaration","src":"23092:19:3"}],"id":3072,"name":"ParameterList","src":"23072:40:3"},{"children":[{"attributes":{"constant":false,"name":"token","scope":3083,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1639,"type":"struct strings.slice"},"id":3073,"name":"UserDefinedTypeName","src":"23136:5:3"}],"id":3074,"name":"VariableDeclaration","src":"23136:18:3"}],"id":3075,"name":"ParameterList","src":"23135:20:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"struct strings.slice memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$1639_memory_ptr","typeString":"struct strings.slice memory"},{"typeIdentifier":"t_struct$_slice_$1639_memory_ptr","typeString":"struct strings.slice memory"},{"typeIdentifier":"t_struct$_slice_$1639_memory_ptr","typeString":"struct strings.slice memory"}],"overloadedDeclarations":[3067,3083],"referencedDeclaration":3067,"type":"function (struct strings.slice memory,struct strings.slice memory,struct strings.slice memory) pure returns (struct strings.slice memory)","value":"rsplit"},"id":3076,"name":"Identifier","src":"23166:6:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3069,"type":"struct strings.slice memory","value":"self"},"id":3077,"name":"Identifier","src":"23173:4:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3071,"type":"struct strings.slice memory","value":"needle"},"id":3078,"name":"Identifier","src":"23179:6:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3074,"type":"struct strings.slice memory","value":"token"},"id":3079,"name":"Identifier","src":"23187:5:3"}],"id":3080,"name":"FunctionCall","src":"23166:27:3"}],"id":3081,"name":"ExpressionStatement","src":"23166:27:3"}],"id":3082,"name":"Block","src":"23156:44:3"}],"id":3083,"name":"FunctionDefinition","src":"23057:143:3"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"count","payable":false,"scope":3327,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":3142,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1639,"type":"struct strings.slice"},"id":3084,"name":"UserDefinedTypeName","src":"23484:5:3"}],"id":3085,"name":"VariableDeclaration","src":"23484:17:3"},{"attributes":{"constant":false,"name":"needle","scope":3142,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1639,"type":"struct strings.slice"},"id":3086,"name":"UserDefinedTypeName","src":"23503:5:3"}],"id":3087,"name":"VariableDeclaration","src":"23503:19:3"}],"id":3088,"name":"ParameterList","src":"23483:40:3"},{"children":[{"attributes":{"constant":false,"name":"cnt","scope":3142,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":3089,"name":"ElementaryTypeName","src":"23547:4:3"}],"id":3090,"name":"VariableDeclaration","src":"23547:8:3"}],"id":3091,"name":"ParameterList","src":"23546:10:3"},{"children":[{"attributes":{"assignments":[3093]},"children":[{"attributes":{"constant":false,"name":"ptr","scope":3142,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":3092,"name":"ElementaryTypeName","src":"23567:4:3"}],"id":3093,"name":"VariableDeclaration","src":"23567:8:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":2713,"type":"function (uint256,uint256,uint256,uint256) pure returns (uint256)","value":"findPtr"},"id":3094,"name":"Identifier","src":"23578:7:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1636,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3085,"type":"struct strings.slice memory","value":"self"},"id":3095,"name":"Identifier","src":"23586:4:3"}],"id":3096,"name":"MemberAccess","src":"23586:9:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":1638,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3085,"type":"struct strings.slice memory","value":"self"},"id":3097,"name":"Identifier","src":"23597:4:3"}],"id":3098,"name":"MemberAccess","src":"23597:9:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1636,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3087,"type":"struct strings.slice memory","value":"needle"},"id":3099,"name":"Identifier","src":"23608:6:3"}],"id":3100,"name":"MemberAccess","src":"23608:11:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":1638,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3087,"type":"struct strings.slice memory","value":"needle"},"id":3101,"name":"Identifier","src":"23621:6:3"}],"id":3102,"name":"MemberAccess","src":"23621:11:3"}],"id":3103,"name":"FunctionCall","src":"23578:55:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1636,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3087,"type":"struct strings.slice memory","value":"needle"},"id":3104,"name":"Identifier","src":"23636:6:3"}],"id":3105,"name":"MemberAccess","src":"23636:11:3"}],"id":3106,"name":"BinaryOperation","src":"23578:69:3"}],"id":3107,"name":"VariableDeclarationStatement","src":"23567:80:3"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3093,"type":"uint256","value":"ptr"},"id":3108,"name":"Identifier","src":"23664:3:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":1638,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3085,"type":"struct strings.slice memory","value":"self"},"id":3109,"name":"Identifier","src":"23671:4:3"}],"id":3110,"name":"MemberAccess","src":"23671:9:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1636,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3085,"type":"struct strings.slice memory","value":"self"},"id":3111,"name":"Identifier","src":"23683:4:3"}],"id":3112,"name":"MemberAccess","src":"23683:9:3"}],"id":3113,"name":"BinaryOperation","src":"23671:21:3"}],"id":3114,"name":"BinaryOperation","src":"23664:28:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3090,"type":"uint256","value":"cnt"},"id":3115,"name":"Identifier","src":"23708:3:3"}],"id":3116,"name":"UnaryOperation","src":"23708:5:3"}],"id":3117,"name":"ExpressionStatement","src":"23708:5:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3093,"type":"uint256","value":"ptr"},"id":3118,"name":"Identifier","src":"23727:3:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":2713,"type":"function (uint256,uint256,uint256,uint256) pure returns (uint256)","value":"findPtr"},"id":3119,"name":"Identifier","src":"23733:7:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1636,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3085,"type":"struct strings.slice memory","value":"self"},"id":3120,"name":"Identifier","src":"23741:4:3"}],"id":3121,"name":"MemberAccess","src":"23741:9:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3093,"type":"uint256","value":"ptr"},"id":3122,"name":"Identifier","src":"23754:3:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":1638,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3085,"type":"struct strings.slice memory","value":"self"},"id":3123,"name":"Identifier","src":"23760:4:3"}],"id":3124,"name":"MemberAccess","src":"23760:9:3"}],"id":3125,"name":"BinaryOperation","src":"23754:15:3"}],"id":3126,"name":"TupleExpression","src":"23753:17:3"}],"id":3127,"name":"BinaryOperation","src":"23741:29:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3093,"type":"uint256","value":"ptr"},"id":3128,"name":"Identifier","src":"23772:3:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1636,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3087,"type":"struct strings.slice memory","value":"needle"},"id":3129,"name":"Identifier","src":"23777:6:3"}],"id":3130,"name":"MemberAccess","src":"23777:11:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":1638,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3087,"type":"struct strings.slice memory","value":"needle"},"id":3131,"name":"Identifier","src":"23790:6:3"}],"id":3132,"name":"MemberAccess","src":"23790:11:3"}],"id":3133,"name":"FunctionCall","src":"23733:69:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1636,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3087,"type":"struct strings.slice memory","value":"needle"},"id":3134,"name":"Identifier","src":"23805:6:3"}],"id":3135,"name":"MemberAccess","src":"23805:11:3"}],"id":3136,"name":"BinaryOperation","src":"23733:83:3"}],"id":3137,"name":"Assignment","src":"23727:89:3"}],"id":3138,"name":"ExpressionStatement","src":"23727:89:3"}],"id":3139,"name":"Block","src":"23694:133:3"}],"id":3140,"name":"WhileStatement","src":"23657:170:3"}],"id":3141,"name":"Block","src":"23557:276:3"}],"id":3142,"name":"FunctionDefinition","src":"23469:364:3"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"contains","payable":false,"scope":3327,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":3166,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1639,"type":"struct strings.slice"},"id":3143,"name":"UserDefinedTypeName","src":"24090:5:3"}],"id":3144,"name":"VariableDeclaration","src":"24090:17:3"},{"attributes":{"constant":false,"name":"needle","scope":3166,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1639,"type":"struct strings.slice"},"id":3145,"name":"UserDefinedTypeName","src":"24109:5:3"}],"id":3146,"name":"VariableDeclaration","src":"24109:19:3"}],"id":3147,"name":"ParameterList","src":"24089:40:3"},{"children":[{"attributes":{"constant":false,"name":"","scope":3166,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":3148,"name":"ElementaryTypeName","src":"24153:4:3"}],"id":3149,"name":"VariableDeclaration","src":"24153:4:3"}],"id":3150,"name":"ParameterList","src":"24152:6:3"},{"children":[{"attributes":{"functionReturnParameters":3150},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":2830,"type":"function (uint256,uint256,uint256,uint256) pure returns (uint256)","value":"rfindPtr"},"id":3151,"name":"Identifier","src":"24176:8:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1636,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3144,"type":"struct strings.slice memory","value":"self"},"id":3152,"name":"Identifier","src":"24185:4:3"}],"id":3153,"name":"MemberAccess","src":"24185:9:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":1638,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3144,"type":"struct strings.slice memory","value":"self"},"id":3154,"name":"Identifier","src":"24196:4:3"}],"id":3155,"name":"MemberAccess","src":"24196:9:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1636,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3146,"type":"struct strings.slice memory","value":"needle"},"id":3156,"name":"Identifier","src":"24207:6:3"}],"id":3157,"name":"MemberAccess","src":"24207:11:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":1638,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3146,"type":"struct strings.slice memory","value":"needle"},"id":3158,"name":"Identifier","src":"24220:6:3"}],"id":3159,"name":"MemberAccess","src":"24220:11:3"}],"id":3160,"name":"FunctionCall","src":"24176:56:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":1638,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3144,"type":"struct strings.slice memory","value":"self"},"id":3161,"name":"Identifier","src":"24236:4:3"}],"id":3162,"name":"MemberAccess","src":"24236:9:3"}],"id":3163,"name":"BinaryOperation","src":"24176:69:3"}],"id":3164,"name":"Return","src":"24169:76:3"}],"id":3165,"name":"Block","src":"24159:93:3"}],"id":3166,"name":"FunctionDefinition","src":"24072:180:3"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"concat","payable":false,"scope":3327,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":3212,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1639,"type":"struct strings.slice"},"id":3167,"name":"UserDefinedTypeName","src":"24555:5:3"}],"id":3168,"name":"VariableDeclaration","src":"24555:17:3"},{"attributes":{"constant":false,"name":"other","scope":3212,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1639,"type":"struct strings.slice"},"id":3169,"name":"UserDefinedTypeName","src":"24574:5:3"}],"id":3170,"name":"VariableDeclaration","src":"24574:18:3"}],"id":3171,"name":"ParameterList","src":"24554:39:3"},{"children":[{"attributes":{"constant":false,"name":"","scope":3212,"stateVariable":false,"storageLocation":"memory","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":3172,"name":"ElementaryTypeName","src":"24617:6:3"}],"id":3173,"name":"VariableDeclaration","src":"24617:6:3"}],"id":3174,"name":"ParameterList","src":"24616:15:3"},{"children":[{"attributes":{"assignments":[3176]},"children":[{"attributes":{"constant":false,"name":"ret","scope":3212,"stateVariable":false,"storageLocation":"memory","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":3175,"name":"ElementaryTypeName","src":"24642:6:3"}],"id":3176,"name":"VariableDeclaration","src":"24642:17:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (string memory)"},"children":[{"attributes":{"name":"string","type":"string"},"id":3177,"name":"ElementaryTypeName","src":"24666:6:3"}],"id":3178,"name":"NewExpression","src":"24662:10:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1636,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3168,"type":"struct strings.slice memory","value":"self"},"id":3179,"name":"Identifier","src":"24673:4:3"}],"id":3180,"name":"MemberAccess","src":"24673:9:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1636,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3170,"type":"struct strings.slice memory","value":"other"},"id":3181,"name":"Identifier","src":"24685:5:3"}],"id":3182,"name":"MemberAccess","src":"24685:10:3"}],"id":3183,"name":"BinaryOperation","src":"24673:22:3"}],"id":3184,"name":"FunctionCall","src":"24662:34:3"}],"id":3185,"name":"VariableDeclarationStatement","src":"24642:54:3"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"retptr","scope":3212,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":3186,"name":"ElementaryTypeName","src":"24706:4:3"}],"id":3187,"name":"VariableDeclaration","src":"24706:11:3"}],"id":3188,"name":"VariableDeclarationStatement","src":"24706:11:3"},{"attributes":{"externalReferences":[{"retptr":{"declaration":3187,"isOffset":false,"isSlot":false,"src":"24738:6:3","valueSize":1}},{"ret":{"declaration":3176,"isOffset":false,"isSlot":false,"src":"24752:3:3","valueSize":1}}],"operations":"{\n retptr := add(ret, 32)\n}"},"children":[],"id":3189,"name":"InlineAssembly","src":"24727:50:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":1679,"type":"function (uint256,uint256,uint256) pure","value":"memcpy"},"id":3190,"name":"Identifier","src":"24771:6:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3187,"type":"uint256","value":"retptr"},"id":3191,"name":"Identifier","src":"24778:6:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":1638,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3168,"type":"struct strings.slice memory","value":"self"},"id":3192,"name":"Identifier","src":"24786:4:3"}],"id":3193,"name":"MemberAccess","src":"24786:9:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1636,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3168,"type":"struct strings.slice memory","value":"self"},"id":3194,"name":"Identifier","src":"24797:4:3"}],"id":3195,"name":"MemberAccess","src":"24797:9:3"}],"id":3196,"name":"FunctionCall","src":"24771:36:3"}],"id":3197,"name":"ExpressionStatement","src":"24771:36:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":1679,"type":"function (uint256,uint256,uint256) pure","value":"memcpy"},"id":3198,"name":"Identifier","src":"24817:6:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3187,"type":"uint256","value":"retptr"},"id":3199,"name":"Identifier","src":"24824:6:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1636,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3168,"type":"struct strings.slice memory","value":"self"},"id":3200,"name":"Identifier","src":"24833:4:3"}],"id":3201,"name":"MemberAccess","src":"24833:9:3"}],"id":3202,"name":"BinaryOperation","src":"24824:18:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":1638,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3170,"type":"struct strings.slice memory","value":"other"},"id":3203,"name":"Identifier","src":"24844:5:3"}],"id":3204,"name":"MemberAccess","src":"24844:10:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1636,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3170,"type":"struct strings.slice memory","value":"other"},"id":3205,"name":"Identifier","src":"24856:5:3"}],"id":3206,"name":"MemberAccess","src":"24856:10:3"}],"id":3207,"name":"FunctionCall","src":"24817:50:3"}],"id":3208,"name":"ExpressionStatement","src":"24817:50:3"},{"attributes":{"functionReturnParameters":3174},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3176,"type":"string memory","value":"ret"},"id":3209,"name":"Identifier","src":"24884:3:3"}],"id":3210,"name":"Return","src":"24877:10:3"}],"id":3211,"name":"Block","src":"24632:262:3"}],"id":3212,"name":"FunctionDefinition","src":"24539:355:3"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"join","payable":false,"scope":3327,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":3326,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1639,"type":"struct strings.slice"},"id":3213,"name":"UserDefinedTypeName","src":"25244:5:3"}],"id":3214,"name":"VariableDeclaration","src":"25244:17:3"},{"attributes":{"constant":false,"name":"parts","scope":3326,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"struct strings.slice[]"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1639,"type":"struct strings.slice"},"id":3215,"name":"UserDefinedTypeName","src":"25263:5:3"}],"id":3216,"name":"ArrayTypeName","src":"25263:7:3"}],"id":3217,"name":"VariableDeclaration","src":"25263:20:3"}],"id":3218,"name":"ParameterList","src":"25243:41:3"},{"children":[{"attributes":{"constant":false,"name":"","scope":3326,"stateVariable":false,"storageLocation":"memory","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":3219,"name":"ElementaryTypeName","src":"25308:6:3"}],"id":3220,"name":"VariableDeclaration","src":"25308:6:3"}],"id":3221,"name":"ParameterList","src":"25307:15:3"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3217,"type":"struct strings.slice memory[] memory","value":"parts"},"id":3222,"name":"Identifier","src":"25337:5:3"}],"id":3223,"name":"MemberAccess","src":"25337:12:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3224,"name":"Literal","src":"25353:1:3"}],"id":3225,"name":"BinaryOperation","src":"25337:17:3"},{"attributes":{"functionReturnParameters":3221},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"\"","value":""},"id":3226,"name":"Literal","src":"25375:2:3"}],"id":3227,"name":"Return","src":"25368:9:3"}],"id":3228,"name":"IfStatement","src":"25333:44:3"},{"attributes":{"assignments":[3230]},"children":[{"attributes":{"constant":false,"name":"length","scope":3326,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":3229,"name":"ElementaryTypeName","src":"25388:4:3"}],"id":3230,"name":"VariableDeclaration","src":"25388:11:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1636,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3214,"type":"struct strings.slice memory","value":"self"},"id":3231,"name":"Identifier","src":"25402:4:3"}],"id":3232,"name":"MemberAccess","src":"25402:9:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3217,"type":"struct strings.slice memory[] memory","value":"parts"},"id":3233,"name":"Identifier","src":"25415:5:3"}],"id":3234,"name":"MemberAccess","src":"25415:12:3"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":3235,"name":"Literal","src":"25430:1:3"}],"id":3236,"name":"BinaryOperation","src":"25415:16:3"}],"id":3237,"name":"TupleExpression","src":"25414:18:3"}],"id":3238,"name":"BinaryOperation","src":"25402:30:3"}],"id":3239,"name":"VariableDeclarationStatement","src":"25388:44:3"},{"children":[{"attributes":{"assignments":[3241]},"children":[{"attributes":{"constant":false,"name":"i","scope":3326,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":3240,"name":"ElementaryTypeName","src":"25446:4:3"}],"id":3241,"name":"VariableDeclaration","src":"25446:6:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3242,"name":"Literal","src":"25455:1:3"}],"id":3243,"name":"VariableDeclarationStatement","src":"25446:10:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3241,"type":"uint256","value":"i"},"id":3244,"name":"Identifier","src":"25458:1:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3217,"type":"struct strings.slice memory[] memory","value":"parts"},"id":3245,"name":"Identifier","src":"25462:5:3"}],"id":3246,"name":"MemberAccess","src":"25462:12:3"}],"id":3247,"name":"BinaryOperation","src":"25458:16:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3241,"type":"uint256","value":"i"},"id":3248,"name":"Identifier","src":"25476:1:3"}],"id":3249,"name":"UnaryOperation","src":"25476:3:3"}],"id":3250,"name":"ExpressionStatement","src":"25476:3:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3230,"type":"uint256","value":"length"},"id":3251,"name":"Identifier","src":"25493:6:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1636,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct strings.slice memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3217,"type":"struct strings.slice memory[] memory","value":"parts"},"id":3252,"name":"Identifier","src":"25503:5:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3241,"type":"uint256","value":"i"},"id":3253,"name":"Identifier","src":"25509:1:3"}],"id":3254,"name":"IndexAccess","src":"25503:8:3"}],"id":3255,"name":"MemberAccess","src":"25503:13:3"}],"id":3256,"name":"Assignment","src":"25493:23:3"}],"id":3257,"name":"ExpressionStatement","src":"25493:23:3"}],"id":3258,"name":"ForStatement","src":"25442:74:3"},{"attributes":{"assignments":[3260]},"children":[{"attributes":{"constant":false,"name":"ret","scope":3326,"stateVariable":false,"storageLocation":"memory","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":3259,"name":"ElementaryTypeName","src":"25527:6:3"}],"id":3260,"name":"VariableDeclaration","src":"25527:17:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (string memory)"},"children":[{"attributes":{"name":"string","type":"string"},"id":3261,"name":"ElementaryTypeName","src":"25551:6:3"}],"id":3262,"name":"NewExpression","src":"25547:10:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3230,"type":"uint256","value":"length"},"id":3263,"name":"Identifier","src":"25558:6:3"}],"id":3264,"name":"FunctionCall","src":"25547:18:3"}],"id":3265,"name":"VariableDeclarationStatement","src":"25527:38:3"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"retptr","scope":3326,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":3266,"name":"ElementaryTypeName","src":"25575:4:3"}],"id":3267,"name":"VariableDeclaration","src":"25575:11:3"}],"id":3268,"name":"VariableDeclarationStatement","src":"25575:11:3"},{"attributes":{"externalReferences":[{"retptr":{"declaration":3267,"isOffset":false,"isSlot":false,"src":"25607:6:3","valueSize":1}},{"ret":{"declaration":3260,"isOffset":false,"isSlot":false,"src":"25621:3:3","valueSize":1}}],"operations":"{\n retptr := add(ret, 32)\n}"},"children":[],"id":3269,"name":"InlineAssembly","src":"25596:48:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3241,"type":"uint256","value":"i"},"id":3270,"name":"Identifier","src":"25645:1:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3271,"name":"Literal","src":"25649:1:3"}],"id":3272,"name":"Assignment","src":"25645:5:3"}],"id":3273,"name":"ExpressionStatement","src":"25645:5:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3241,"type":"uint256","value":"i"},"id":3274,"name":"Identifier","src":"25652:1:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3217,"type":"struct strings.slice memory[] memory","value":"parts"},"id":3275,"name":"Identifier","src":"25656:5:3"}],"id":3276,"name":"MemberAccess","src":"25656:12:3"}],"id":3277,"name":"BinaryOperation","src":"25652:16:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3241,"type":"uint256","value":"i"},"id":3278,"name":"Identifier","src":"25670:1:3"}],"id":3279,"name":"UnaryOperation","src":"25670:3:3"}],"id":3280,"name":"ExpressionStatement","src":"25670:3:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":1679,"type":"function (uint256,uint256,uint256) pure","value":"memcpy"},"id":3281,"name":"Identifier","src":"25689:6:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3267,"type":"uint256","value":"retptr"},"id":3282,"name":"Identifier","src":"25696:6:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":1638,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct strings.slice memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3217,"type":"struct strings.slice memory[] memory","value":"parts"},"id":3283,"name":"Identifier","src":"25704:5:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3241,"type":"uint256","value":"i"},"id":3284,"name":"Identifier","src":"25710:1:3"}],"id":3285,"name":"IndexAccess","src":"25704:8:3"}],"id":3286,"name":"MemberAccess","src":"25704:13:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1636,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct strings.slice memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3217,"type":"struct strings.slice memory[] memory","value":"parts"},"id":3287,"name":"Identifier","src":"25719:5:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3241,"type":"uint256","value":"i"},"id":3288,"name":"Identifier","src":"25725:1:3"}],"id":3289,"name":"IndexAccess","src":"25719:8:3"}],"id":3290,"name":"MemberAccess","src":"25719:13:3"}],"id":3291,"name":"FunctionCall","src":"25689:44:3"}],"id":3292,"name":"ExpressionStatement","src":"25689:44:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3267,"type":"uint256","value":"retptr"},"id":3293,"name":"Identifier","src":"25747:6:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1636,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct strings.slice memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3217,"type":"struct strings.slice memory[] memory","value":"parts"},"id":3294,"name":"Identifier","src":"25757:5:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3241,"type":"uint256","value":"i"},"id":3295,"name":"Identifier","src":"25763:1:3"}],"id":3296,"name":"IndexAccess","src":"25757:8:3"}],"id":3297,"name":"MemberAccess","src":"25757:13:3"}],"id":3298,"name":"Assignment","src":"25747:23:3"}],"id":3299,"name":"ExpressionStatement","src":"25747:23:3"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3241,"type":"uint256","value":"i"},"id":3300,"name":"Identifier","src":"25788:1:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3217,"type":"struct strings.slice memory[] memory","value":"parts"},"id":3301,"name":"Identifier","src":"25792:5:3"}],"id":3302,"name":"MemberAccess","src":"25792:12:3"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":3303,"name":"Literal","src":"25807:1:3"}],"id":3304,"name":"BinaryOperation","src":"25792:16:3"}],"id":3305,"name":"BinaryOperation","src":"25788:20:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":1679,"type":"function (uint256,uint256,uint256) pure","value":"memcpy"},"id":3306,"name":"Identifier","src":"25828:6:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3267,"type":"uint256","value":"retptr"},"id":3307,"name":"Identifier","src":"25835:6:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":1638,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3214,"type":"struct strings.slice memory","value":"self"},"id":3308,"name":"Identifier","src":"25843:4:3"}],"id":3309,"name":"MemberAccess","src":"25843:9:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1636,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3214,"type":"struct strings.slice memory","value":"self"},"id":3310,"name":"Identifier","src":"25854:4:3"}],"id":3311,"name":"MemberAccess","src":"25854:9:3"}],"id":3312,"name":"FunctionCall","src":"25828:36:3"}],"id":3313,"name":"ExpressionStatement","src":"25828:36:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3267,"type":"uint256","value":"retptr"},"id":3314,"name":"Identifier","src":"25882:6:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1636,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3214,"type":"struct strings.slice memory","value":"self"},"id":3315,"name":"Identifier","src":"25892:4:3"}],"id":3316,"name":"MemberAccess","src":"25892:9:3"}],"id":3317,"name":"Assignment","src":"25882:19:3"}],"id":3318,"name":"ExpressionStatement","src":"25882:19:3"}],"id":3319,"name":"Block","src":"25810:106:3"}],"id":3320,"name":"IfStatement","src":"25784:132:3"}],"id":3321,"name":"Block","src":"25675:251:3"}],"id":3322,"name":"ForStatement","src":"25641:285:3"},{"attributes":{"functionReturnParameters":3221},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3260,"type":"string memory","value":"ret"},"id":3323,"name":"Identifier","src":"25943:3:3"}],"id":3324,"name":"Return","src":"25936:10:3"}],"id":3325,"name":"Block","src":"25323:630:3"}],"id":3326,"name":"FunctionDefinition","src":"25230:723:3"}],"id":3327,"name":"ContractDefinition","src":"2600:23355:3"}],"id":3328,"name":"SourceUnit","src":"2574:23382:3"}},"internals/controllable.sol":{"AST":{"attributes":{"absolutePath":"internals/controllable.sol","exportedSymbols":{"Controllable":[3383]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".25"]},"id":3329,"name":"PragmaDirective","src":"772:24:4"},{"attributes":{"SourceUnit":3881,"absolutePath":"internals/controller.sol","file":"./controller.sol","scope":3384,"symbolAliases":[null],"unitAlias":""},"id":3330,"name":"ImportDirective","src":"798:26:4"},{"attributes":{"SourceUnit":181,"absolutePath":"internals/ensResolvable.sol","file":"../internals/ensResolvable.sol","scope":3384,"symbolAliases":[null],"unitAlias":""},"id":3331,"name":"ImportDirective","src":"825:40:4"},{"attributes":{"contractDependencies":[180],"contractKind":"contract","documentation":"@title Controllable implements access control functionality of the Controller found via ENS.","fullyImplemented":false,"linearizedBaseContracts":[3383,180],"name":"Controllable","scope":3384},"children":[{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"ENSResolvable","referencedDeclaration":180,"type":"contract ENSResolvable"},"id":3332,"name":"UserDefinedTypeName","src":"990:13:4"}],"id":3333,"name":"InheritanceSpecifier","src":"990:13:4"},{"attributes":{"constant":false,"name":"_controllerNode","scope":3383,"stateVariable":true,"storageLocation":"default","type":"bytes32","value":null,"visibility":"private"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3334,"name":"ElementaryTypeName","src":"1087:7:4"}],"id":3335,"name":"VariableDeclaration","src":"1087:31:4"},{"attributes":{"constant":false,"documentation":"@notice Constructor initializes the controller contract object.\n @param _controllerNameHash_ is the ENS name hash of the Controller.","implemented":true,"isConstructor":true,"modifiers":[null],"name":"","payable":false,"scope":3383,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_controllerNameHash_","scope":3345,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3336,"name":"ElementaryTypeName","src":"1285:7:4"}],"id":3337,"name":"VariableDeclaration","src":"1285:28:4"}],"id":3338,"name":"ParameterList","src":"1284:30:4"},{"attributes":{"parameters":[null]},"children":[],"id":3339,"name":"ParameterList","src":"1324:0:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3335,"type":"bytes32","value":"_controllerNode"},"id":3340,"name":"Identifier","src":"1334:15:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3337,"type":"bytes32","value":"_controllerNameHash_"},"id":3341,"name":"Identifier","src":"1352:20:4"}],"id":3342,"name":"Assignment","src":"1334:38:4"}],"id":3343,"name":"ExpressionStatement","src":"1334:38:4"}],"id":3344,"name":"Block","src":"1324:55:4"}],"id":3345,"name":"FunctionDefinition","src":"1273:106:4"},{"attributes":{"documentation":"@notice Checks if message sender is the controller.","name":"onlyController","visibility":"internal"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":3346,"name":"ParameterList","src":"1468:2:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_918bc5a096178f6e8c423f958a6008c4b24fd25b7a3ca0123b85463c61a2e566","typeString":"literal_string \"sender is not a controller\""}],"overloadedDeclarations":[3898,3899],"referencedDeclaration":3899,"type":"function (bool,string memory) pure","value":"require"},"id":3347,"name":"Identifier","src":"1481:7:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":3382,"type":"function (address) view returns (bool)","value":"_isController"},"id":3348,"name":"Identifier","src":"1489:13:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3895,"type":"msg","value":"msg"},"id":3349,"name":"Identifier","src":"1503:3:4"}],"id":3350,"name":"MemberAccess","src":"1503:10:4"}],"id":3351,"name":"FunctionCall","src":"1489:25:4"},{"attributes":{"argumentTypes":null,"hexvalue":"73656e646572206973206e6f74206120636f6e74726f6c6c6572","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"sender is not a controller\"","value":"sender is not a controller"},"id":3352,"name":"Literal","src":"1516:28:4"}],"id":3353,"name":"FunctionCall","src":"1481:64:4"}],"id":3354,"name":"ExpressionStatement","src":"1481:64:4"},{"id":3355,"name":"PlaceholderStatement","src":"1555:1:4"}],"id":3356,"name":"Block","src":"1471:92:4"}],"id":3357,"name":"ModifierDefinition","src":"1445:118:4"},{"attributes":{"constant":true,"documentation":"@return the controller name hash registered in ENS.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"controllerNode","payable":false,"scope":3383,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":3358,"name":"ParameterList","src":"1652:2:4"},{"children":[{"attributes":{"constant":false,"name":"","scope":3365,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3359,"name":"ElementaryTypeName","src":"1678:7:4"}],"id":3360,"name":"VariableDeclaration","src":"1678:7:4"}],"id":3361,"name":"ParameterList","src":"1677:9:4"},{"children":[{"attributes":{"functionReturnParameters":3361},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3335,"type":"bytes32","value":"_controllerNode"},"id":3362,"name":"Identifier","src":"1704:15:4"}],"id":3363,"name":"Return","src":"1697:22:4"}],"id":3364,"name":"Block","src":"1687:39:4"}],"id":3365,"name":"FunctionDefinition","src":"1629:97:4"},{"attributes":{"constant":true,"documentation":"@return true if the provided account is the controller.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_isController","payable":false,"scope":3383,"stateMutability":"view","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":3382,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3366,"name":"ElementaryTypeName","src":"1819:7:4"}],"id":3367,"name":"VariableDeclaration","src":"1819:16:4"}],"id":3368,"name":"ParameterList","src":"1818:18:4"},{"children":[{"attributes":{"constant":false,"name":"","scope":3382,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":3369,"name":"ElementaryTypeName","src":"1860:4:4"}],"id":3370,"name":"VariableDeclaration","src":"1860:4:4"}],"id":3371,"name":"ParameterList","src":"1859:6:4"},{"children":[{"attributes":{"functionReturnParameters":3371},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"isController","referencedDeclaration":3550,"type":"function (address) view external returns (bool)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract IController","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":3551,"type":"type(contract IController)","value":"IController"},"id":3372,"name":"Identifier","src":"1883:11:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[null],"referencedDeclaration":179,"type":"function (bytes32) view returns (address)","value":"_ensResolve"},"id":3373,"name":"Identifier","src":"1895:11:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3335,"type":"bytes32","value":"_controllerNode"},"id":3374,"name":"Identifier","src":"1907:15:4"}],"id":3375,"name":"FunctionCall","src":"1895:28:4"}],"id":3376,"name":"FunctionCall","src":"1883:41:4"}],"id":3377,"name":"MemberAccess","src":"1883:54:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3367,"type":"address","value":"_account"},"id":3378,"name":"Identifier","src":"1938:8:4"}],"id":3379,"name":"FunctionCall","src":"1883:64:4"}],"id":3380,"name":"Return","src":"1876:71:4"}],"id":3381,"name":"Block","src":"1866:88:4"}],"id":3382,"name":"FunctionDefinition","src":"1796:158:4"}],"id":3383,"name":"ContractDefinition","src":"965:992:4"}],"id":3384,"name":"SourceUnit","src":"772:1186:4"}},"internals/controller.sol":{"AST":{"attributes":{"absolutePath":"internals/controller.sol","exportedSymbols":{"Controller":[3880],"IController":[3551]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".25"]},"id":3542,"name":"PragmaDirective","src":"770:24:5"},{"attributes":{"SourceUnit":3541,"absolutePath":"internals/ownable.sol","file":"./ownable.sol","scope":3881,"symbolAliases":[null],"unitAlias":""},"id":3543,"name":"ImportDirective","src":"796:23:5"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"interface","documentation":"@title The IController interface provides access to the isController check.","fullyImplemented":false,"linearizedBaseContracts":[3551],"name":"IController","scope":3881},"children":[{"attributes":{"body":null,"constant":true,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"isController","payable":false,"scope":3551,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"","scope":3550,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3544,"name":"ElementaryTypeName","src":"951:7:5"}],"id":3545,"name":"VariableDeclaration","src":"951:7:5"}],"id":3546,"name":"ParameterList","src":"950:9:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":3550,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":3547,"name":"ElementaryTypeName","src":"983:4:5"}],"id":3548,"name":"VariableDeclaration","src":"983:4:5"}],"id":3549,"name":"ParameterList","src":"982:6:5"}],"id":3550,"name":"FunctionDefinition","src":"929:60:5"}],"id":3551,"name":"ContractDefinition","src":"901:90:5"},{"attributes":{"contractDependencies":[3540,3551],"contractKind":"contract","documentation":"@title Controller stores a list of controller addresses that can be used for authentication in other contracts.\n @notice The Controller implements a hierarchy of concepts, Owner, Admin, and the Controllers.\n @dev Owner can change the Admins\n @dev Admins and can the Controllers\n @dev Controllers are used by the application.","fullyImplemented":true,"linearizedBaseContracts":[3880,3540,3551],"name":"Controller","scope":3881},"children":[{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"IController","referencedDeclaration":3551,"type":"contract IController"},"id":3552,"name":"UserDefinedTypeName","src":"1358:11:5"}],"id":3553,"name":"InheritanceSpecifier","src":"1358:11:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"Ownable","referencedDeclaration":3540,"type":"contract Ownable"},"id":3554,"name":"UserDefinedTypeName","src":"1371:7:5"}],"id":3555,"name":"InheritanceSpecifier","src":"1371:7:5"},{"attributes":{"anonymous":false,"documentation":null,"name":"AddedController"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_sender","scope":3561,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3556,"name":"ElementaryTypeName","src":"1408:7:5"}],"id":3557,"name":"VariableDeclaration","src":"1408:15:5"},{"attributes":{"constant":false,"indexed":false,"name":"_controller","scope":3561,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3558,"name":"ElementaryTypeName","src":"1425:7:5"}],"id":3559,"name":"VariableDeclaration","src":"1425:19:5"}],"id":3560,"name":"ParameterList","src":"1407:38:5"}],"id":3561,"name":"EventDefinition","src":"1386:60:5"},{"attributes":{"anonymous":false,"documentation":null,"name":"RemovedController"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_sender","scope":3567,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3562,"name":"ElementaryTypeName","src":"1475:7:5"}],"id":3563,"name":"VariableDeclaration","src":"1475:15:5"},{"attributes":{"constant":false,"indexed":false,"name":"_controller","scope":3567,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3564,"name":"ElementaryTypeName","src":"1492:7:5"}],"id":3565,"name":"VariableDeclaration","src":"1492:19:5"}],"id":3566,"name":"ParameterList","src":"1474:38:5"}],"id":3567,"name":"EventDefinition","src":"1451:62:5"},{"attributes":{"anonymous":false,"documentation":null,"name":"AddedAdmin"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_sender","scope":3573,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3568,"name":"ElementaryTypeName","src":"1536:7:5"}],"id":3569,"name":"VariableDeclaration","src":"1536:15:5"},{"attributes":{"constant":false,"indexed":false,"name":"_admin","scope":3573,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3570,"name":"ElementaryTypeName","src":"1553:7:5"}],"id":3571,"name":"VariableDeclaration","src":"1553:14:5"}],"id":3572,"name":"ParameterList","src":"1535:33:5"}],"id":3573,"name":"EventDefinition","src":"1519:50:5"},{"attributes":{"anonymous":false,"documentation":null,"name":"RemovedAdmin"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_sender","scope":3579,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3574,"name":"ElementaryTypeName","src":"1593:7:5"}],"id":3575,"name":"VariableDeclaration","src":"1593:15:5"},{"attributes":{"constant":false,"indexed":false,"name":"_admin","scope":3579,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3576,"name":"ElementaryTypeName","src":"1610:7:5"}],"id":3577,"name":"VariableDeclaration","src":"1610:14:5"}],"id":3578,"name":"ParameterList","src":"1592:33:5"}],"id":3579,"name":"EventDefinition","src":"1574:52:5"},{"attributes":{"constant":false,"name":"_isAdmin","scope":3880,"stateVariable":true,"storageLocation":"default","type":"mapping(address => bool)","value":null,"visibility":"private"},"children":[{"attributes":{"type":"mapping(address => bool)"},"children":[{"attributes":{"name":"address","type":"address"},"id":3580,"name":"ElementaryTypeName","src":"1641:7:5"},{"attributes":{"name":"bool","type":"bool"},"id":3581,"name":"ElementaryTypeName","src":"1652:4:5"}],"id":3582,"name":"Mapping","src":"1632:25:5"}],"id":3583,"name":"VariableDeclaration","src":"1632:42:5"},{"attributes":{"constant":false,"name":"_adminCount","scope":3880,"stateVariable":true,"storageLocation":"default","type":"uint256","value":null,"visibility":"private"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":3584,"name":"ElementaryTypeName","src":"1680:4:5"}],"id":3585,"name":"VariableDeclaration","src":"1680:24:5"},{"attributes":{"constant":false,"name":"_isController","scope":3880,"stateVariable":true,"storageLocation":"default","type":"mapping(address => bool)","value":null,"visibility":"private"},"children":[{"attributes":{"type":"mapping(address => bool)"},"children":[{"attributes":{"name":"address","type":"address"},"id":3586,"name":"ElementaryTypeName","src":"1720:7:5"},{"attributes":{"name":"bool","type":"bool"},"id":3587,"name":"ElementaryTypeName","src":"1731:4:5"}],"id":3588,"name":"Mapping","src":"1711:25:5"}],"id":3589,"name":"VariableDeclaration","src":"1711:47:5"},{"attributes":{"constant":false,"name":"_controllerCount","scope":3880,"stateVariable":true,"storageLocation":"default","type":"uint256","value":null,"visibility":"private"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":3590,"name":"ElementaryTypeName","src":"1764:4:5"}],"id":3591,"name":"VariableDeclaration","src":"1764:29:5"},{"attributes":{"constant":false,"documentation":"@notice Constructor initializes the owner with the provided address.\n @param _ownerAddress_ address of the owner.\n @param _transferable_ indicates whether the contract ownership can be transferred.","implemented":true,"isConstructor":true,"name":"","payable":false,"scope":3880,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"_ownerAddress_","scope":3603,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3592,"name":"ElementaryTypeName","src":"2032:7:5"}],"id":3593,"name":"VariableDeclaration","src":"2032:22:5"},{"attributes":{"constant":false,"name":"_transferable_","scope":3603,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":3594,"name":"ElementaryTypeName","src":"2056:4:5"}],"id":3595,"name":"VariableDeclaration","src":"2056:19:5"}],"id":3596,"name":"ParameterList","src":"2031:45:5"},{"attributes":{"parameters":[null]},"children":[],"id":3601,"name":"ParameterList","src":"2124:0:5"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3540,"type":"type(contract Ownable)","value":"Ownable"},"id":3597,"name":"Identifier","src":"2077:7:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3593,"type":"address","value":"_ownerAddress_"},"id":3598,"name":"Identifier","src":"2085:14:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3595,"type":"bool","value":"_transferable_"},"id":3599,"name":"Identifier","src":"2101:14:5"}],"id":3600,"name":"ModifierInvocation","src":"2077:39:5"},{"attributes":{"statements":[null]},"children":[],"id":3602,"name":"Block","src":"2124:3:5"}],"id":3603,"name":"FunctionDefinition","src":"2020:107:5"},{"attributes":{"documentation":"@notice Checks if message sender is an admin.","name":"onlyAdmin","visibility":"internal"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":3604,"name":"ParameterList","src":"2205:2:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_156cbb05733026f4aa0b363c6a3be5f21b7ab8f248a865cc639a4d928ddeabb8","typeString":"literal_string \"sender is not an admin\""}],"overloadedDeclarations":[3898,3899],"referencedDeclaration":3899,"type":"function (bool,string memory) pure","value":"require"},"id":3605,"name":"Identifier","src":"2218:7:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":3703,"type":"function (address) view returns (bool)","value":"isAdmin"},"id":3606,"name":"Identifier","src":"2226:7:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3895,"type":"msg","value":"msg"},"id":3607,"name":"Identifier","src":"2234:3:5"}],"id":3608,"name":"MemberAccess","src":"2234:10:5"}],"id":3609,"name":"FunctionCall","src":"2226:19:5"},{"attributes":{"argumentTypes":null,"hexvalue":"73656e646572206973206e6f7420616e2061646d696e","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"sender is not an admin\"","value":"sender is not an admin"},"id":3610,"name":"Literal","src":"2247:24:5"}],"id":3611,"name":"FunctionCall","src":"2218:54:5"}],"id":3612,"name":"ExpressionStatement","src":"2218:54:5"},{"id":3613,"name":"PlaceholderStatement","src":"2282:1:5"}],"id":3614,"name":"Block","src":"2208:82:5"}],"id":3615,"name":"ModifierDefinition","src":"2187:103:5"},{"attributes":{"documentation":"@notice Checks if message sender is a controller.","name":"onlyController","visibility":"internal"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":3616,"name":"ParameterList","src":"2377:2:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_918bc5a096178f6e8c423f958a6008c4b24fd25b7a3ca0123b85463c61a2e566","typeString":"literal_string \"sender is not a controller\""}],"overloadedDeclarations":[3898,3899],"referencedDeclaration":3899,"type":"function (bool,string memory) pure","value":"require"},"id":3617,"name":"Identifier","src":"2390:7:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":3715,"type":"function (address) view returns (bool)","value":"isController"},"id":3618,"name":"Identifier","src":"2398:12:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3895,"type":"msg","value":"msg"},"id":3619,"name":"Identifier","src":"2411:3:5"}],"id":3620,"name":"MemberAccess","src":"2411:10:5"}],"id":3621,"name":"FunctionCall","src":"2398:24:5"},{"attributes":{"argumentTypes":null,"hexvalue":"73656e646572206973206e6f74206120636f6e74726f6c6c6572","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"sender is not a controller\"","value":"sender is not a controller"},"id":3622,"name":"Literal","src":"2424:28:5"}],"id":3623,"name":"FunctionCall","src":"2390:63:5"}],"id":3624,"name":"ExpressionStatement","src":"2390:63:5"},{"id":3625,"name":"PlaceholderStatement","src":"2463:1:5"}],"id":3626,"name":"Block","src":"2380:91:5"}],"id":3627,"name":"ModifierDefinition","src":"2354:117:5"},{"attributes":{"constant":false,"documentation":"@notice Add a new admin to the list of admins.\n @param _account address to add to the list of admins.","implemented":true,"isConstructor":false,"name":"addAdmin","payable":false,"scope":3880,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":3639,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3628,"name":"ElementaryTypeName","src":"2612:7:5"}],"id":3629,"name":"VariableDeclaration","src":"2612:16:5"}],"id":3630,"name":"ParameterList","src":"2611:18:5"},{"attributes":{"parameters":[null]},"children":[],"id":3633,"name":"ParameterList","src":"2649:0:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3442,"type":"modifier ()","value":"onlyOwner"},"id":3631,"name":"Identifier","src":"2639:9:5"}],"id":3632,"name":"ModifierInvocation","src":"2639:9:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":3769,"type":"function (address)","value":"_addAdmin"},"id":3634,"name":"Identifier","src":"2659:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3629,"type":"address","value":"_account"},"id":3635,"name":"Identifier","src":"2669:8:5"}],"id":3636,"name":"FunctionCall","src":"2659:19:5"}],"id":3637,"name":"ExpressionStatement","src":"2659:19:5"}],"id":3638,"name":"Block","src":"2649:36:5"}],"id":3639,"name":"FunctionDefinition","src":"2594:91:5"},{"attributes":{"constant":false,"documentation":"@notice Remove a admin from the list of admins.\n @param _account address to remove from the list of admins.","implemented":true,"isConstructor":false,"name":"removeAdmin","payable":false,"scope":3880,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":3651,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3640,"name":"ElementaryTypeName","src":"2835:7:5"}],"id":3641,"name":"VariableDeclaration","src":"2835:16:5"}],"id":3642,"name":"ParameterList","src":"2834:18:5"},{"attributes":{"parameters":[null]},"children":[],"id":3645,"name":"ParameterList","src":"2872:0:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3442,"type":"modifier ()","value":"onlyOwner"},"id":3643,"name":"Identifier","src":"2862:9:5"}],"id":3644,"name":"ModifierInvocation","src":"2862:9:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":3797,"type":"function (address)","value":"_removeAdmin"},"id":3646,"name":"Identifier","src":"2882:12:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3641,"type":"address","value":"_account"},"id":3647,"name":"Identifier","src":"2895:8:5"}],"id":3648,"name":"FunctionCall","src":"2882:22:5"}],"id":3649,"name":"ExpressionStatement","src":"2882:22:5"}],"id":3650,"name":"Block","src":"2872:39:5"}],"id":3651,"name":"FunctionDefinition","src":"2814:97:5"},{"attributes":{"constant":true,"documentation":"@return the current number of admins.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"adminCount","payable":false,"scope":3880,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":3652,"name":"ParameterList","src":"2982:2:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":3659,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":3653,"name":"ElementaryTypeName","src":"3008:4:5"}],"id":3654,"name":"VariableDeclaration","src":"3008:4:5"}],"id":3655,"name":"ParameterList","src":"3007:6:5"},{"children":[{"attributes":{"functionReturnParameters":3655},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3585,"type":"uint256","value":"_adminCount"},"id":3656,"name":"Identifier","src":"3031:11:5"}],"id":3657,"name":"Return","src":"3024:18:5"}],"id":3658,"name":"Block","src":"3014:35:5"}],"id":3659,"name":"FunctionDefinition","src":"2963:86:5"},{"attributes":{"constant":false,"documentation":"@notice Add a new controller to the list of controllers.\n @param _account address to add to the list of controllers.","implemented":true,"isConstructor":false,"name":"addController","payable":false,"scope":3880,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":3671,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3660,"name":"ElementaryTypeName","src":"3210:7:5"}],"id":3661,"name":"VariableDeclaration","src":"3210:16:5"}],"id":3662,"name":"ParameterList","src":"3209:18:5"},{"attributes":{"parameters":[null]},"children":[],"id":3665,"name":"ParameterList","src":"3247:0:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3615,"type":"modifier ()","value":"onlyAdmin"},"id":3663,"name":"Identifier","src":"3237:9:5"}],"id":3664,"name":"ModifierInvocation","src":"3237:9:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":3851,"type":"function (address)","value":"_addController"},"id":3666,"name":"Identifier","src":"3257:14:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3661,"type":"address","value":"_account"},"id":3667,"name":"Identifier","src":"3272:8:5"}],"id":3668,"name":"FunctionCall","src":"3257:24:5"}],"id":3669,"name":"ExpressionStatement","src":"3257:24:5"}],"id":3670,"name":"Block","src":"3247:41:5"}],"id":3671,"name":"FunctionDefinition","src":"3187:101:5"},{"attributes":{"constant":false,"documentation":"@notice Remove a controller from the list of controllers.\n @param _account address to remove from the list of controllers.","implemented":true,"isConstructor":false,"name":"removeController","payable":false,"scope":3880,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":3683,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3672,"name":"ElementaryTypeName","src":"3458:7:5"}],"id":3673,"name":"VariableDeclaration","src":"3458:16:5"}],"id":3674,"name":"ParameterList","src":"3457:18:5"},{"attributes":{"parameters":[null]},"children":[],"id":3677,"name":"ParameterList","src":"3495:0:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3615,"type":"modifier ()","value":"onlyAdmin"},"id":3675,"name":"Identifier","src":"3485:9:5"}],"id":3676,"name":"ModifierInvocation","src":"3485:9:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":3879,"type":"function (address)","value":"_removeController"},"id":3678,"name":"Identifier","src":"3505:17:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3673,"type":"address","value":"_account"},"id":3679,"name":"Identifier","src":"3523:8:5"}],"id":3680,"name":"FunctionCall","src":"3505:27:5"}],"id":3681,"name":"ExpressionStatement","src":"3505:27:5"}],"id":3682,"name":"Block","src":"3495:44:5"}],"id":3683,"name":"FunctionDefinition","src":"3432:107:5"},{"attributes":{"constant":true,"documentation":"@notice count the Controllers\n @return the current number of controllers.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"controllerCount","payable":false,"scope":3880,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":3684,"name":"ParameterList","src":"3658:2:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":3691,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":3685,"name":"ElementaryTypeName","src":"3684:4:5"}],"id":3686,"name":"VariableDeclaration","src":"3684:4:5"}],"id":3687,"name":"ParameterList","src":"3683:6:5"},{"children":[{"attributes":{"functionReturnParameters":3687},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3591,"type":"uint256","value":"_controllerCount"},"id":3688,"name":"Identifier","src":"3707:16:5"}],"id":3689,"name":"Return","src":"3700:23:5"}],"id":3690,"name":"Block","src":"3690:40:5"}],"id":3691,"name":"FunctionDefinition","src":"3634:96:5"},{"attributes":{"constant":true,"documentation":"@notice is an address an Admin?\n @return true if the provided account is an admin.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"isAdmin","payable":false,"scope":3880,"stateMutability":"view","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":3703,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3692,"name":"ElementaryTypeName","src":"3851:7:5"}],"id":3693,"name":"VariableDeclaration","src":"3851:16:5"}],"id":3694,"name":"ParameterList","src":"3850:18:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":3703,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":3695,"name":"ElementaryTypeName","src":"3890:4:5"}],"id":3696,"name":"VariableDeclaration","src":"3890:4:5"}],"id":3697,"name":"ParameterList","src":"3889:6:5"},{"children":[{"attributes":{"functionReturnParameters":3697},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3583,"type":"mapping(address => bool)","value":"_isAdmin"},"id":3698,"name":"Identifier","src":"3913:8:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3693,"type":"address","value":"_account"},"id":3699,"name":"Identifier","src":"3922:8:5"}],"id":3700,"name":"IndexAccess","src":"3913:18:5"}],"id":3701,"name":"Return","src":"3906:25:5"}],"id":3702,"name":"Block","src":"3896:42:5"}],"id":3703,"name":"FunctionDefinition","src":"3834:104:5"},{"attributes":{"constant":true,"documentation":"@notice is an address a Controller?\n @return true if the provided account is a controller.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"isController","payable":false,"scope":3880,"stateMutability":"view","superFunction":3550,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":3715,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3704,"name":"ElementaryTypeName","src":"4072:7:5"}],"id":3705,"name":"VariableDeclaration","src":"4072:16:5"}],"id":3706,"name":"ParameterList","src":"4071:18:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":3715,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":3707,"name":"ElementaryTypeName","src":"4111:4:5"}],"id":3708,"name":"VariableDeclaration","src":"4111:4:5"}],"id":3709,"name":"ParameterList","src":"4110:6:5"},{"children":[{"attributes":{"functionReturnParameters":3709},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3589,"type":"mapping(address => bool)","value":"_isController"},"id":3710,"name":"Identifier","src":"4134:13:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3705,"type":"address","value":"_account"},"id":3711,"name":"Identifier","src":"4148:8:5"}],"id":3712,"name":"IndexAccess","src":"4134:23:5"}],"id":3713,"name":"Return","src":"4127:30:5"}],"id":3714,"name":"Block","src":"4117:47:5"}],"id":3715,"name":"FunctionDefinition","src":"4050:114:5"},{"attributes":{"constant":false,"documentation":"@notice Internal-only function that adds a new admin.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_addAdmin","payable":false,"scope":3880,"stateMutability":"nonpayable","superFunction":null,"visibility":"private"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":3769,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3716,"name":"ElementaryTypeName","src":"4251:7:5"}],"id":3717,"name":"VariableDeclaration","src":"4251:16:5"}],"id":3718,"name":"ParameterList","src":"4250:18:5"},{"attributes":{"parameters":[null]},"children":[],"id":3719,"name":"ParameterList","src":"4277:0:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_491ef411eef1615ecf908753bd22ae846aac933d79b0327335a18e3988db6215","typeString":"literal_string \"provided account is already an admin\""}],"overloadedDeclarations":[3898,3899],"referencedDeclaration":3899,"type":"function (bool,string memory) pure","value":"require"},"id":3720,"name":"Identifier","src":"4287:7:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3583,"type":"mapping(address => bool)","value":"_isAdmin"},"id":3721,"name":"Identifier","src":"4296:8:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3717,"type":"address","value":"_account"},"id":3722,"name":"Identifier","src":"4305:8:5"}],"id":3723,"name":"IndexAccess","src":"4296:18:5"}],"id":3724,"name":"UnaryOperation","src":"4295:19:5"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e7420697320616c726561647920616e2061646d696e","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is already an admin\"","value":"provided account is already an admin"},"id":3725,"name":"Literal","src":"4316:38:5"}],"id":3726,"name":"FunctionCall","src":"4287:68:5"}],"id":3727,"name":"ExpressionStatement","src":"4287:68:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ea5e43d1c86e3916e6efb6c5ad4a915069293195e26cfb0847e731b480c61b69","typeString":"literal_string \"provided account is already a controller\""}],"overloadedDeclarations":[3898,3899],"referencedDeclaration":3899,"type":"function (bool,string memory) pure","value":"require"},"id":3728,"name":"Identifier","src":"4365:7:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3589,"type":"mapping(address => bool)","value":"_isController"},"id":3729,"name":"Identifier","src":"4374:13:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3717,"type":"address","value":"_account"},"id":3730,"name":"Identifier","src":"4388:8:5"}],"id":3731,"name":"IndexAccess","src":"4374:23:5"}],"id":3732,"name":"UnaryOperation","src":"4373:24:5"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e7420697320616c7265616479206120636f6e74726f6c6c6572","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is already a controller\"","value":"provided account is already a controller"},"id":3733,"name":"Literal","src":"4399:42:5"}],"id":3734,"name":"FunctionCall","src":"4365:77:5"}],"id":3735,"name":"ExpressionStatement","src":"4365:77:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_28b510b314348cd3eee423698115cd76923e2c39fff2abeefc9606aa1cd4c741","typeString":"literal_string \"provided account is already the owner\""}],"overloadedDeclarations":[3898,3899],"referencedDeclaration":3899,"type":"function (bool,string memory) pure","value":"require"},"id":3736,"name":"Identifier","src":"4452:7:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":3539,"type":"function (address) view returns (bool)","value":"_isOwner"},"id":3737,"name":"Identifier","src":"4461:8:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3717,"type":"address","value":"_account"},"id":3738,"name":"Identifier","src":"4470:8:5"}],"id":3739,"name":"FunctionCall","src":"4461:18:5"}],"id":3740,"name":"UnaryOperation","src":"4460:19:5"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e7420697320616c726561647920746865206f776e6572","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is already the owner\"","value":"provided account is already the owner"},"id":3741,"name":"Literal","src":"4481:39:5"}],"id":3742,"name":"FunctionCall","src":"4452:69:5"}],"id":3743,"name":"ExpressionStatement","src":"4452:69:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_da72d12cc1dab77bb87826430977e9a5d381ba54a70ad14cb2761e202f01ff3b","typeString":"literal_string \"provided account is the zero address\""}],"overloadedDeclarations":[3898,3899],"referencedDeclaration":3899,"type":"function (bool,string memory) pure","value":"require"},"id":3744,"name":"Identifier","src":"4531:7:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3717,"type":"address","value":"_account"},"id":3745,"name":"Identifier","src":"4539:8:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":3746,"name":"ElementaryTypeNameExpression","src":"4551:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3747,"name":"Literal","src":"4559:1:5"}],"id":3748,"name":"FunctionCall","src":"4551:10:5"}],"id":3749,"name":"BinaryOperation","src":"4539:22:5"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e7420697320746865207a65726f2061646472657373","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is the zero address\"","value":"provided account is the zero address"},"id":3750,"name":"Literal","src":"4563:38:5"}],"id":3751,"name":"FunctionCall","src":"4531:71:5"}],"id":3752,"name":"ExpressionStatement","src":"4531:71:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3583,"type":"mapping(address => bool)","value":"_isAdmin"},"id":3753,"name":"Identifier","src":"4612:8:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3717,"type":"address","value":"_account"},"id":3754,"name":"Identifier","src":"4621:8:5"}],"id":3755,"name":"IndexAccess","src":"4612:18:5"},{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":3756,"name":"Literal","src":"4633:4:5"}],"id":3757,"name":"Assignment","src":"4612:25:5"}],"id":3758,"name":"ExpressionStatement","src":"4612:25:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3585,"type":"uint256","value":"_adminCount"},"id":3759,"name":"Identifier","src":"4647:11:5"}],"id":3760,"name":"UnaryOperation","src":"4647:13:5"}],"id":3761,"name":"ExpressionStatement","src":"4647:13:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":3573,"type":"function (address,address)","value":"AddedAdmin"},"id":3762,"name":"Identifier","src":"4675:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3895,"type":"msg","value":"msg"},"id":3763,"name":"Identifier","src":"4686:3:5"}],"id":3764,"name":"MemberAccess","src":"4686:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3717,"type":"address","value":"_account"},"id":3765,"name":"Identifier","src":"4698:8:5"}],"id":3766,"name":"FunctionCall","src":"4675:32:5"}],"id":3767,"name":"EmitStatement","src":"4670:37:5"}],"id":3768,"name":"Block","src":"4277:437:5"}],"id":3769,"name":"FunctionDefinition","src":"4232:482:5"},{"attributes":{"constant":false,"documentation":"@notice Internal-only function that removes an existing admin.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_removeAdmin","payable":false,"scope":3880,"stateMutability":"nonpayable","superFunction":null,"visibility":"private"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":3797,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3770,"name":"ElementaryTypeName","src":"4813:7:5"}],"id":3771,"name":"VariableDeclaration","src":"4813:16:5"}],"id":3772,"name":"ParameterList","src":"4812:18:5"},{"attributes":{"parameters":[null]},"children":[],"id":3773,"name":"ParameterList","src":"4839:0:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1c739c60677de73f71e20970ace8544e82a98bdcd16e21df5754e7a2756cbedc","typeString":"literal_string \"provided account is not an admin\""}],"overloadedDeclarations":[3898,3899],"referencedDeclaration":3899,"type":"function (bool,string memory) pure","value":"require"},"id":3774,"name":"Identifier","src":"4849:7:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3583,"type":"mapping(address => bool)","value":"_isAdmin"},"id":3775,"name":"Identifier","src":"4857:8:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3771,"type":"address","value":"_account"},"id":3776,"name":"Identifier","src":"4866:8:5"}],"id":3777,"name":"IndexAccess","src":"4857:18:5"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e74206973206e6f7420616e2061646d696e","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is not an admin\"","value":"provided account is not an admin"},"id":3778,"name":"Literal","src":"4877:34:5"}],"id":3779,"name":"FunctionCall","src":"4849:63:5"}],"id":3780,"name":"ExpressionStatement","src":"4849:63:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3583,"type":"mapping(address => bool)","value":"_isAdmin"},"id":3781,"name":"Identifier","src":"4922:8:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3771,"type":"address","value":"_account"},"id":3782,"name":"Identifier","src":"4931:8:5"}],"id":3783,"name":"IndexAccess","src":"4922:18:5"},{"attributes":{"argumentTypes":null,"hexvalue":"66616c7365","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"false"},"id":3784,"name":"Literal","src":"4943:5:5"}],"id":3785,"name":"Assignment","src":"4922:26:5"}],"id":3786,"name":"ExpressionStatement","src":"4922:26:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"--","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3585,"type":"uint256","value":"_adminCount"},"id":3787,"name":"Identifier","src":"4958:11:5"}],"id":3788,"name":"UnaryOperation","src":"4958:13:5"}],"id":3789,"name":"ExpressionStatement","src":"4958:13:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":3579,"type":"function (address,address)","value":"RemovedAdmin"},"id":3790,"name":"Identifier","src":"4986:12:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3895,"type":"msg","value":"msg"},"id":3791,"name":"Identifier","src":"4999:3:5"}],"id":3792,"name":"MemberAccess","src":"4999:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3771,"type":"address","value":"_account"},"id":3793,"name":"Identifier","src":"5011:8:5"}],"id":3794,"name":"FunctionCall","src":"4986:34:5"}],"id":3795,"name":"EmitStatement","src":"4981:39:5"}],"id":3796,"name":"Block","src":"4839:188:5"}],"id":3797,"name":"FunctionDefinition","src":"4791:236:5"},{"attributes":{"constant":false,"documentation":"@notice Internal-only function that adds a new controller.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_addController","payable":false,"scope":3880,"stateMutability":"nonpayable","superFunction":null,"visibility":"private"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":3851,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3798,"name":"ElementaryTypeName","src":"5124:7:5"}],"id":3799,"name":"VariableDeclaration","src":"5124:16:5"}],"id":3800,"name":"ParameterList","src":"5123:18:5"},{"attributes":{"parameters":[null]},"children":[],"id":3801,"name":"ParameterList","src":"5150:0:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_491ef411eef1615ecf908753bd22ae846aac933d79b0327335a18e3988db6215","typeString":"literal_string \"provided account is already an admin\""}],"overloadedDeclarations":[3898,3899],"referencedDeclaration":3899,"type":"function (bool,string memory) pure","value":"require"},"id":3802,"name":"Identifier","src":"5160:7:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3583,"type":"mapping(address => bool)","value":"_isAdmin"},"id":3803,"name":"Identifier","src":"5169:8:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3799,"type":"address","value":"_account"},"id":3804,"name":"Identifier","src":"5178:8:5"}],"id":3805,"name":"IndexAccess","src":"5169:18:5"}],"id":3806,"name":"UnaryOperation","src":"5168:19:5"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e7420697320616c726561647920616e2061646d696e","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is already an admin\"","value":"provided account is already an admin"},"id":3807,"name":"Literal","src":"5189:38:5"}],"id":3808,"name":"FunctionCall","src":"5160:68:5"}],"id":3809,"name":"ExpressionStatement","src":"5160:68:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ea5e43d1c86e3916e6efb6c5ad4a915069293195e26cfb0847e731b480c61b69","typeString":"literal_string \"provided account is already a controller\""}],"overloadedDeclarations":[3898,3899],"referencedDeclaration":3899,"type":"function (bool,string memory) pure","value":"require"},"id":3810,"name":"Identifier","src":"5238:7:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3589,"type":"mapping(address => bool)","value":"_isController"},"id":3811,"name":"Identifier","src":"5247:13:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3799,"type":"address","value":"_account"},"id":3812,"name":"Identifier","src":"5261:8:5"}],"id":3813,"name":"IndexAccess","src":"5247:23:5"}],"id":3814,"name":"UnaryOperation","src":"5246:24:5"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e7420697320616c7265616479206120636f6e74726f6c6c6572","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is already a controller\"","value":"provided account is already a controller"},"id":3815,"name":"Literal","src":"5272:42:5"}],"id":3816,"name":"FunctionCall","src":"5238:77:5"}],"id":3817,"name":"ExpressionStatement","src":"5238:77:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_28b510b314348cd3eee423698115cd76923e2c39fff2abeefc9606aa1cd4c741","typeString":"literal_string \"provided account is already the owner\""}],"overloadedDeclarations":[3898,3899],"referencedDeclaration":3899,"type":"function (bool,string memory) pure","value":"require"},"id":3818,"name":"Identifier","src":"5325:7:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":3539,"type":"function (address) view returns (bool)","value":"_isOwner"},"id":3819,"name":"Identifier","src":"5334:8:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3799,"type":"address","value":"_account"},"id":3820,"name":"Identifier","src":"5343:8:5"}],"id":3821,"name":"FunctionCall","src":"5334:18:5"}],"id":3822,"name":"UnaryOperation","src":"5333:19:5"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e7420697320616c726561647920746865206f776e6572","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is already the owner\"","value":"provided account is already the owner"},"id":3823,"name":"Literal","src":"5354:39:5"}],"id":3824,"name":"FunctionCall","src":"5325:69:5"}],"id":3825,"name":"ExpressionStatement","src":"5325:69:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_da72d12cc1dab77bb87826430977e9a5d381ba54a70ad14cb2761e202f01ff3b","typeString":"literal_string \"provided account is the zero address\""}],"overloadedDeclarations":[3898,3899],"referencedDeclaration":3899,"type":"function (bool,string memory) pure","value":"require"},"id":3826,"name":"Identifier","src":"5404:7:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3799,"type":"address","value":"_account"},"id":3827,"name":"Identifier","src":"5412:8:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":3828,"name":"ElementaryTypeNameExpression","src":"5424:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3829,"name":"Literal","src":"5432:1:5"}],"id":3830,"name":"FunctionCall","src":"5424:10:5"}],"id":3831,"name":"BinaryOperation","src":"5412:22:5"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e7420697320746865207a65726f2061646472657373","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is the zero address\"","value":"provided account is the zero address"},"id":3832,"name":"Literal","src":"5436:38:5"}],"id":3833,"name":"FunctionCall","src":"5404:71:5"}],"id":3834,"name":"ExpressionStatement","src":"5404:71:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3589,"type":"mapping(address => bool)","value":"_isController"},"id":3835,"name":"Identifier","src":"5485:13:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3799,"type":"address","value":"_account"},"id":3836,"name":"Identifier","src":"5499:8:5"}],"id":3837,"name":"IndexAccess","src":"5485:23:5"},{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":3838,"name":"Literal","src":"5511:4:5"}],"id":3839,"name":"Assignment","src":"5485:30:5"}],"id":3840,"name":"ExpressionStatement","src":"5485:30:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3591,"type":"uint256","value":"_controllerCount"},"id":3841,"name":"Identifier","src":"5525:16:5"}],"id":3842,"name":"UnaryOperation","src":"5525:18:5"}],"id":3843,"name":"ExpressionStatement","src":"5525:18:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":3561,"type":"function (address,address)","value":"AddedController"},"id":3844,"name":"Identifier","src":"5558:15:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3895,"type":"msg","value":"msg"},"id":3845,"name":"Identifier","src":"5574:3:5"}],"id":3846,"name":"MemberAccess","src":"5574:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3799,"type":"address","value":"_account"},"id":3847,"name":"Identifier","src":"5586:8:5"}],"id":3848,"name":"FunctionCall","src":"5558:37:5"}],"id":3849,"name":"EmitStatement","src":"5553:42:5"}],"id":3850,"name":"Block","src":"5150:452:5"}],"id":3851,"name":"FunctionDefinition","src":"5100:502:5"},{"attributes":{"constant":false,"documentation":"@notice Internal-only function that removes an existing controller.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_removeController","payable":false,"scope":3880,"stateMutability":"nonpayable","superFunction":null,"visibility":"private"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":3879,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3852,"name":"ElementaryTypeName","src":"5711:7:5"}],"id":3853,"name":"VariableDeclaration","src":"5711:16:5"}],"id":3854,"name":"ParameterList","src":"5710:18:5"},{"attributes":{"parameters":[null]},"children":[],"id":3855,"name":"ParameterList","src":"5737:0:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_61b6700985eb6a295850095b1dc6d25862c09fd9ea7ce39c0e5f303dfe8ed582","typeString":"literal_string \"provided account is not a controller\""}],"overloadedDeclarations":[3898,3899],"referencedDeclaration":3899,"type":"function (bool,string memory) pure","value":"require"},"id":3856,"name":"Identifier","src":"5747:7:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3589,"type":"mapping(address => bool)","value":"_isController"},"id":3857,"name":"Identifier","src":"5755:13:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3853,"type":"address","value":"_account"},"id":3858,"name":"Identifier","src":"5769:8:5"}],"id":3859,"name":"IndexAccess","src":"5755:23:5"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e74206973206e6f74206120636f6e74726f6c6c6572","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is not a controller\"","value":"provided account is not a controller"},"id":3860,"name":"Literal","src":"5780:38:5"}],"id":3861,"name":"FunctionCall","src":"5747:72:5"}],"id":3862,"name":"ExpressionStatement","src":"5747:72:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3589,"type":"mapping(address => bool)","value":"_isController"},"id":3863,"name":"Identifier","src":"5829:13:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3853,"type":"address","value":"_account"},"id":3864,"name":"Identifier","src":"5843:8:5"}],"id":3865,"name":"IndexAccess","src":"5829:23:5"},{"attributes":{"argumentTypes":null,"hexvalue":"66616c7365","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"false"},"id":3866,"name":"Literal","src":"5855:5:5"}],"id":3867,"name":"Assignment","src":"5829:31:5"}],"id":3868,"name":"ExpressionStatement","src":"5829:31:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"--","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3591,"type":"uint256","value":"_controllerCount"},"id":3869,"name":"Identifier","src":"5870:16:5"}],"id":3870,"name":"UnaryOperation","src":"5870:18:5"}],"id":3871,"name":"ExpressionStatement","src":"5870:18:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":3567,"type":"function (address,address)","value":"RemovedController"},"id":3872,"name":"Identifier","src":"5903:17:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3895,"type":"msg","value":"msg"},"id":3873,"name":"Identifier","src":"5921:3:5"}],"id":3874,"name":"MemberAccess","src":"5921:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3853,"type":"address","value":"_account"},"id":3875,"name":"Identifier","src":"5933:8:5"}],"id":3876,"name":"FunctionCall","src":"5903:39:5"}],"id":3877,"name":"EmitStatement","src":"5898:44:5"}],"id":3878,"name":"Block","src":"5737:212:5"}],"id":3879,"name":"FunctionDefinition","src":"5684:265:5"}],"id":3880,"name":"ContractDefinition","src":"1335:4616:5"}],"id":3881,"name":"SourceUnit","src":"770:5182:5"}},"internals/ensResolvable.sol":{"AST":{"attributes":{"absolutePath":"internals/ensResolvable.sol","exportedSymbols":{"ENSResolvable":[180]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".25"]},"id":131,"name":"PragmaDirective","src":"773:24:6"},{"attributes":{"SourceUnit":441,"absolutePath":"externals/ens/ENS.sol","file":"../externals/ens/ENS.sol","scope":181,"symbolAliases":[null],"unitAlias":""},"id":132,"name":"ImportDirective","src":"799:34:6"},{"attributes":{"SourceUnit":949,"absolutePath":"externals/ens/PublicResolver.sol","file":"../externals/ens/PublicResolver.sol","scope":181,"symbolAliases":[null],"unitAlias":""},"id":133,"name":"ImportDirective","src":"834:45:6"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"contract","documentation":"@title ENSResolvable - Ethereum Name Service Resolver\n@notice contract should be used to get an address for an ENS nodeHash","fullyImplemented":true,"linearizedBaseContracts":[180],"name":"ENSResolvable","scope":181},"children":[{"attributes":{"constant":false,"name":"_ens","scope":180,"stateVariable":true,"storageLocation":"default","type":"contract ENS","value":null,"visibility":"private"},"children":[{"attributes":{"contractScope":null,"name":"ENS","referencedDeclaration":440,"type":"contract ENS"},"id":134,"name":"UserDefinedTypeName","src":"1084:3:6"}],"id":135,"name":"VariableDeclaration","src":"1084:16:6"},{"attributes":{"constant":false,"name":"_ensRegistry","scope":180,"stateVariable":true,"storageLocation":"default","type":"address","value":null,"visibility":"private"},"children":[{"attributes":{"name":"address","type":"address"},"id":136,"name":"ElementaryTypeName","src":"1179:7:6"}],"id":137,"name":"VariableDeclaration","src":"1179:28:6"},{"attributes":{"constant":false,"documentation":"@param _ensReg_ is the ENS registry used","implemented":true,"isConstructor":true,"modifiers":[null],"name":"","payable":false,"scope":180,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_ensReg_","scope":153,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":138,"name":"ElementaryTypeName","src":"1275:7:6"}],"id":139,"name":"VariableDeclaration","src":"1275:16:6"}],"id":140,"name":"ParameterList","src":"1274:18:6"},{"attributes":{"parameters":[null]},"children":[],"id":141,"name":"ParameterList","src":"1302:0:6"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":137,"type":"address","value":"_ensRegistry"},"id":142,"name":"Identifier","src":"1312:12:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":139,"type":"address","value":"_ensReg_"},"id":143,"name":"Identifier","src":"1327:8:6"}],"id":144,"name":"Assignment","src":"1312:23:6"}],"id":145,"name":"ExpressionStatement","src":"1312:23:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"contract ENS"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":135,"type":"contract ENS","value":"_ens"},"id":146,"name":"Identifier","src":"1345:4:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract ENS","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":440,"type":"type(contract ENS)","value":"ENS"},"id":147,"name":"Identifier","src":"1352:3:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":137,"type":"address","value":"_ensRegistry"},"id":148,"name":"Identifier","src":"1356:12:6"}],"id":149,"name":"FunctionCall","src":"1352:17:6"}],"id":150,"name":"Assignment","src":"1345:24:6"}],"id":151,"name":"ExpressionStatement","src":"1345:24:6"}],"id":152,"name":"Block","src":"1302:74:6"}],"id":153,"name":"FunctionDefinition","src":"1263:113:6"},{"attributes":{"constant":true,"documentation":"@notice this is used to that one can observe which ENS registry is being used","implemented":true,"isConstructor":false,"modifiers":[null],"name":"ensRegistry","payable":false,"scope":180,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":154,"name":"ParameterList","src":"1488:2:6"},{"children":[{"attributes":{"constant":false,"name":"","scope":161,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":155,"name":"ElementaryTypeName","src":"1514:7:6"}],"id":156,"name":"VariableDeclaration","src":"1514:7:6"}],"id":157,"name":"ParameterList","src":"1513:9:6"},{"children":[{"attributes":{"functionReturnParameters":157},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":137,"type":"address","value":"_ensRegistry"},"id":158,"name":"Identifier","src":"1540:12:6"}],"id":159,"name":"Return","src":"1533:19:6"}],"id":160,"name":"Block","src":"1523:36:6"}],"id":161,"name":"FunctionDefinition","src":"1468:91:6"},{"attributes":{"constant":true,"documentation":"@notice helper function used to get the address of a node Hash\n @param _nodeHash of the ENS entry that needs resolving\n @return the address of the said nodeHash","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_ensResolve","payable":false,"scope":180,"stateMutability":"view","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_nodeHash","scope":179,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":162,"name":"ElementaryTypeName","src":"1769:7:6"}],"id":163,"name":"VariableDeclaration","src":"1769:17:6"}],"id":164,"name":"ParameterList","src":"1768:19:6"},{"children":[{"attributes":{"constant":false,"name":"","scope":179,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":165,"name":"ElementaryTypeName","src":"1811:7:6"}],"id":166,"name":"VariableDeclaration","src":"1811:7:6"}],"id":167,"name":"ParameterList","src":"1810:9:6"},{"children":[{"attributes":{"functionReturnParameters":167},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"addr","referencedDeclaration":907,"type":"function (bytes32) view external returns (address)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract PublicResolver","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":948,"type":"type(contract PublicResolver)","value":"PublicResolver"},"id":168,"name":"Identifier","src":"1837:14:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"resolver","referencedDeclaration":432,"type":"function (bytes32) view external returns (address)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":135,"type":"contract ENS","value":"_ens"},"id":169,"name":"Identifier","src":"1852:4:6"}],"id":170,"name":"MemberAccess","src":"1852:13:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":163,"type":"bytes32","value":"_nodeHash"},"id":171,"name":"Identifier","src":"1866:9:6"}],"id":172,"name":"FunctionCall","src":"1852:24:6"}],"id":173,"name":"FunctionCall","src":"1837:40:6"}],"id":174,"name":"MemberAccess","src":"1837:45:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":163,"type":"bytes32","value":"_nodeHash"},"id":175,"name":"Identifier","src":"1883:9:6"}],"id":176,"name":"FunctionCall","src":"1837:56:6"}],"id":177,"name":"Return","src":"1830:63:6"}],"id":178,"name":"Block","src":"1820:80:6"}],"id":179,"name":"FunctionDefinition","src":"1748:152:6"}],"id":180,"name":"ContractDefinition","src":"1012:891:6"}],"id":181,"name":"SourceUnit","src":"773:1131:6"}},"internals/ownable.sol":{"AST":{"attributes":{"absolutePath":"internals/ownable.sol","exportedSymbols":{"Ownable":[3540]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".25"]},"id":3385,"name":"PragmaDirective","src":"767:24:7"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"contract","documentation":"@title Ownable has an owner address and provides basic authorization control functions.\n This contract is modified version of the MIT OpenZepplin Ownable contract\n This contract allows for the transferOwnership operation to be made impossible\n https://github.com/OpenZeppelin/openzeppelin-solidity/blob/master/contracts/ownership/Ownable.sol","fullyImplemented":true,"linearizedBaseContracts":[3540],"name":"Ownable","scope":3541},"children":[{"attributes":{"anonymous":false,"documentation":null,"name":"TransferredOwnership"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_from","scope":3391,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3386,"name":"ElementaryTypeName","src":"1199:7:7"}],"id":3387,"name":"VariableDeclaration","src":"1199:13:7"},{"attributes":{"constant":false,"indexed":false,"name":"_to","scope":3391,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3388,"name":"ElementaryTypeName","src":"1214:7:7"}],"id":3389,"name":"VariableDeclaration","src":"1214:11:7"}],"id":3390,"name":"ParameterList","src":"1198:28:7"}],"id":3391,"name":"EventDefinition","src":"1172:55:7"},{"attributes":{"anonymous":false,"documentation":null,"name":"LockedOwnership"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_locked","scope":3395,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3392,"name":"ElementaryTypeName","src":"1254:7:7"}],"id":3393,"name":"VariableDeclaration","src":"1254:15:7"}],"id":3394,"name":"ParameterList","src":"1253:17:7"}],"id":3395,"name":"EventDefinition","src":"1232:39:7"},{"attributes":{"constant":false,"name":"_owner","scope":3540,"stateVariable":true,"storageLocation":"default","type":"address","value":null,"visibility":"private"},"children":[{"attributes":{"name":"address","type":"address"},"id":3396,"name":"ElementaryTypeName","src":"1277:7:7"}],"id":3397,"name":"VariableDeclaration","src":"1277:22:7"},{"attributes":{"constant":false,"name":"_isTransferable","scope":3540,"stateVariable":true,"storageLocation":"default","type":"bool","value":null,"visibility":"private"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":3398,"name":"ElementaryTypeName","src":"1305:4:7"}],"id":3399,"name":"VariableDeclaration","src":"1305:28:7"},{"attributes":{"constant":false,"documentation":"@notice Constructor sets the original owner of the contract and whether or not it is one time transferable.","implemented":true,"isConstructor":true,"modifiers":[null],"name":"","payable":false,"scope":3540,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account_","scope":3430,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3400,"name":"ElementaryTypeName","src":"1468:7:7"}],"id":3401,"name":"VariableDeclaration","src":"1468:17:7"},{"attributes":{"constant":false,"name":"_transferable_","scope":3430,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":3402,"name":"ElementaryTypeName","src":"1487:4:7"}],"id":3403,"name":"VariableDeclaration","src":"1487:19:7"}],"id":3404,"name":"ParameterList","src":"1467:40:7"},{"attributes":{"parameters":[null]},"children":[],"id":3405,"name":"ParameterList","src":"1517:0:7"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3397,"type":"address","value":"_owner"},"id":3406,"name":"Identifier","src":"1527:6:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3401,"type":"address","value":"_account_"},"id":3407,"name":"Identifier","src":"1536:9:7"}],"id":3408,"name":"Assignment","src":"1527:18:7"}],"id":3409,"name":"ExpressionStatement","src":"1527:18:7"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3399,"type":"bool","value":"_isTransferable"},"id":3410,"name":"Identifier","src":"1555:15:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3403,"type":"bool","value":"_transferable_"},"id":3411,"name":"Identifier","src":"1573:14:7"}],"id":3412,"name":"Assignment","src":"1555:32:7"}],"id":3413,"name":"ExpressionStatement","src":"1555:32:7"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3399,"type":"bool","value":"_isTransferable"},"id":3414,"name":"Identifier","src":"1671:15:7"}],"id":3415,"name":"UnaryOperation","src":"1670:16:7"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":3395,"type":"function (address)","value":"LockedOwnership"},"id":3416,"name":"Identifier","src":"1707:15:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3401,"type":"address","value":"_account_"},"id":3417,"name":"Identifier","src":"1723:9:7"}],"id":3418,"name":"FunctionCall","src":"1707:26:7"}],"id":3419,"name":"EmitStatement","src":"1702:31:7"}],"id":3420,"name":"Block","src":"1688:56:7"}],"id":3421,"name":"IfStatement","src":"1666:78:7"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":3391,"type":"function (address,address)","value":"TransferredOwnership"},"id":3422,"name":"Identifier","src":"1758:20:7"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":3423,"name":"ElementaryTypeNameExpression","src":"1779:7:7"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3424,"name":"Literal","src":"1787:1:7"}],"id":3425,"name":"FunctionCall","src":"1779:10:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3401,"type":"address","value":"_account_"},"id":3426,"name":"Identifier","src":"1791:9:7"}],"id":3427,"name":"FunctionCall","src":"1758:43:7"}],"id":3428,"name":"EmitStatement","src":"1753:48:7"}],"id":3429,"name":"Block","src":"1517:291:7"}],"id":3430,"name":"FunctionDefinition","src":"1456:352:7"},{"attributes":{"documentation":"@notice Reverts if called by any account other than the owner.","name":"onlyOwner","visibility":"internal"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":3431,"name":"ParameterList","src":"1903:2:7"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_96d7cc6c06f3d4101b2a14e4ad2906b79dc824ab8a44b63e774a71d2b9c7abd2","typeString":"literal_string \"sender is not an owner\""}],"overloadedDeclarations":[3898,3899],"referencedDeclaration":3899,"type":"function (bool,string memory) pure","value":"require"},"id":3432,"name":"Identifier","src":"1916:7:7"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":3539,"type":"function (address) view returns (bool)","value":"_isOwner"},"id":3433,"name":"Identifier","src":"1924:8:7"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3895,"type":"msg","value":"msg"},"id":3434,"name":"Identifier","src":"1933:3:7"}],"id":3435,"name":"MemberAccess","src":"1933:10:7"}],"id":3436,"name":"FunctionCall","src":"1924:20:7"},{"attributes":{"argumentTypes":null,"hexvalue":"73656e646572206973206e6f7420616e206f776e6572","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"sender is not an owner\"","value":"sender is not an owner"},"id":3437,"name":"Literal","src":"1946:24:7"}],"id":3438,"name":"FunctionCall","src":"1916:55:7"}],"id":3439,"name":"ExpressionStatement","src":"1916:55:7"},{"id":3440,"name":"PlaceholderStatement","src":"1981:1:7"}],"id":3441,"name":"Block","src":"1906:83:7"}],"id":3442,"name":"ModifierDefinition","src":"1885:104:7"},{"attributes":{"constant":false,"documentation":"@notice Allows the current owner to transfer control of the contract to a new address.\n @param _account address to transfer ownership to.\n @param _transferable indicates whether to keep the ownership transferable.","implemented":true,"isConstructor":false,"name":"transferOwnership","payable":false,"scope":3540,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":3487,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3443,"name":"ElementaryTypeName","src":"2258:7:7"}],"id":3444,"name":"VariableDeclaration","src":"2258:16:7"},{"attributes":{"constant":false,"name":"_transferable","scope":3487,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":3445,"name":"ElementaryTypeName","src":"2276:4:7"}],"id":3446,"name":"VariableDeclaration","src":"2276:18:7"}],"id":3447,"name":"ParameterList","src":"2257:38:7"},{"attributes":{"parameters":[null]},"children":[],"id":3450,"name":"ParameterList","src":"2315:0:7"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3442,"type":"modifier ()","value":"onlyOwner"},"id":3448,"name":"Identifier","src":"2305:9:7"}],"id":3449,"name":"ModifierInvocation","src":"2305:9:7"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b2967f1eb3e333ead270a5eb332284149554452f916a981f27e70894d40a893f","typeString":"literal_string \"ownership is not transferable\""}],"overloadedDeclarations":[3898,3899],"referencedDeclaration":3899,"type":"function (bool,string memory) pure","value":"require"},"id":3451,"name":"Identifier","src":"2380:7:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3399,"type":"bool","value":"_isTransferable"},"id":3452,"name":"Identifier","src":"2388:15:7"},{"attributes":{"argumentTypes":null,"hexvalue":"6f776e657273686970206973206e6f74207472616e7366657261626c65","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"ownership is not transferable\"","value":"ownership is not transferable"},"id":3453,"name":"Literal","src":"2405:31:7"}],"id":3454,"name":"FunctionCall","src":"2380:57:7"}],"id":3455,"name":"ExpressionStatement","src":"2380:57:7"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_be619f073d6b85c603c617050d1729f1cf3b31bf6ae5ae03f35765577d9bb6c8","typeString":"literal_string \"owner cannot be set to zero address\""}],"overloadedDeclarations":[3898,3899],"referencedDeclaration":3899,"type":"function (bool,string memory) pure","value":"require"},"id":3456,"name":"Identifier","src":"2510:7:7"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3444,"type":"address","value":"_account"},"id":3457,"name":"Identifier","src":"2518:8:7"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":3458,"name":"ElementaryTypeNameExpression","src":"2530:7:7"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3459,"name":"Literal","src":"2538:1:7"}],"id":3460,"name":"FunctionCall","src":"2530:10:7"}],"id":3461,"name":"BinaryOperation","src":"2518:22:7"},{"attributes":{"argumentTypes":null,"hexvalue":"6f776e65722063616e6e6f742062652073657420746f207a65726f2061646472657373","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"owner cannot be set to zero address\"","value":"owner cannot be set to zero address"},"id":3462,"name":"Literal","src":"2542:37:7"}],"id":3463,"name":"FunctionCall","src":"2510:70:7"}],"id":3464,"name":"ExpressionStatement","src":"2510:70:7"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3399,"type":"bool","value":"_isTransferable"},"id":3465,"name":"Identifier","src":"2665:15:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3446,"type":"bool","value":"_transferable"},"id":3466,"name":"Identifier","src":"2683:13:7"}],"id":3467,"name":"Assignment","src":"2665:31:7"}],"id":3468,"name":"ExpressionStatement","src":"2665:31:7"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3446,"type":"bool","value":"_transferable"},"id":3469,"name":"Identifier","src":"2780:13:7"}],"id":3470,"name":"UnaryOperation","src":"2779:14:7"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":3395,"type":"function (address)","value":"LockedOwnership"},"id":3471,"name":"Identifier","src":"2814:15:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3444,"type":"address","value":"_account"},"id":3472,"name":"Identifier","src":"2830:8:7"}],"id":3473,"name":"FunctionCall","src":"2814:25:7"}],"id":3474,"name":"EmitStatement","src":"2809:30:7"}],"id":3475,"name":"Block","src":"2795:55:7"}],"id":3476,"name":"IfStatement","src":"2775:75:7"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":3391,"type":"function (address,address)","value":"TransferredOwnership"},"id":3477,"name":"Identifier","src":"2910:20:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3397,"type":"address","value":"_owner"},"id":3478,"name":"Identifier","src":"2931:6:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3444,"type":"address","value":"_account"},"id":3479,"name":"Identifier","src":"2939:8:7"}],"id":3480,"name":"FunctionCall","src":"2910:38:7"}],"id":3481,"name":"EmitStatement","src":"2905:43:7"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3397,"type":"address","value":"_owner"},"id":3482,"name":"Identifier","src":"3008:6:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3444,"type":"address","value":"_account"},"id":3483,"name":"Identifier","src":"3017:8:7"}],"id":3484,"name":"Assignment","src":"3008:17:7"}],"id":3485,"name":"ExpressionStatement","src":"3008:17:7"}],"id":3486,"name":"Block","src":"2315:717:7"}],"id":3487,"name":"FunctionDefinition","src":"2231:801:7"},{"attributes":{"constant":true,"documentation":"@notice check if the ownership is transferable.\n @return true if the ownership is transferable.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"isTransferable","payable":false,"scope":3540,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":3488,"name":"ParameterList","src":"3172:2:7"},{"children":[{"attributes":{"constant":false,"name":"","scope":3495,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":3489,"name":"ElementaryTypeName","src":"3198:4:7"}],"id":3490,"name":"VariableDeclaration","src":"3198:4:7"}],"id":3491,"name":"ParameterList","src":"3197:6:7"},{"children":[{"attributes":{"functionReturnParameters":3491},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3399,"type":"bool","value":"_isTransferable"},"id":3492,"name":"Identifier","src":"3221:15:7"}],"id":3493,"name":"Return","src":"3214:22:7"}],"id":3494,"name":"Block","src":"3204:39:7"}],"id":3495,"name":"FunctionDefinition","src":"3149:94:7"},{"attributes":{"constant":false,"documentation":"@notice Allows the current owner to relinquish control of the contract.\n @dev Renouncing to ownership will leave the contract without an owner and unusable.\n @dev It will not be possible to call the functions with the `onlyOwner` modifier anymore.","implemented":true,"isConstructor":false,"name":"renounceOwnership","payable":false,"scope":3540,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":3496,"name":"ParameterList","src":"3545:2:7"},{"attributes":{"parameters":[null]},"children":[],"id":3499,"name":"ParameterList","src":"3567:0:7"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3442,"type":"modifier ()","value":"onlyOwner"},"id":3497,"name":"Identifier","src":"3557:9:7"}],"id":3498,"name":"ModifierInvocation","src":"3557:9:7"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b2967f1eb3e333ead270a5eb332284149554452f916a981f27e70894d40a893f","typeString":"literal_string \"ownership is not transferable\""}],"overloadedDeclarations":[3898,3899],"referencedDeclaration":3899,"type":"function (bool,string memory) pure","value":"require"},"id":3500,"name":"Identifier","src":"3632:7:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3399,"type":"bool","value":"_isTransferable"},"id":3501,"name":"Identifier","src":"3640:15:7"},{"attributes":{"argumentTypes":null,"hexvalue":"6f776e657273686970206973206e6f74207472616e7366657261626c65","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"ownership is not transferable\"","value":"ownership is not transferable"},"id":3502,"name":"Literal","src":"3657:31:7"}],"id":3503,"name":"FunctionCall","src":"3632:57:7"}],"id":3504,"name":"ExpressionStatement","src":"3632:57:7"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3397,"type":"address","value":"_owner"},"id":3505,"name":"Identifier","src":"3743:6:7"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":3506,"name":"ElementaryTypeNameExpression","src":"3752:7:7"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3507,"name":"Literal","src":"3760:1:7"}],"id":3508,"name":"FunctionCall","src":"3752:10:7"}],"id":3509,"name":"Assignment","src":"3743:19:7"}],"id":3510,"name":"ExpressionStatement","src":"3743:19:7"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":3391,"type":"function (address,address)","value":"TransferredOwnership"},"id":3511,"name":"Identifier","src":"3778:20:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3397,"type":"address","value":"_owner"},"id":3512,"name":"Identifier","src":"3799:6:7"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":3513,"name":"ElementaryTypeNameExpression","src":"3807:7:7"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3514,"name":"Literal","src":"3815:1:7"}],"id":3515,"name":"FunctionCall","src":"3807:10:7"}],"id":3516,"name":"FunctionCall","src":"3778:40:7"}],"id":3517,"name":"EmitStatement","src":"3773:45:7"}],"id":3518,"name":"Block","src":"3567:258:7"}],"id":3519,"name":"FunctionDefinition","src":"3519:306:7"},{"attributes":{"constant":true,"documentation":"@notice Find out owner address\n @return address of the owner.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"owner","payable":false,"scope":3540,"stateMutability":"view","superFunction":null,"visibility":"public"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":3520,"name":"ParameterList","src":"3922:2:7"},{"children":[{"attributes":{"constant":false,"name":"","scope":3527,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3521,"name":"ElementaryTypeName","src":"3946:7:7"}],"id":3522,"name":"VariableDeclaration","src":"3946:7:7"}],"id":3523,"name":"ParameterList","src":"3945:9:7"},{"children":[{"attributes":{"functionReturnParameters":3523},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3397,"type":"address","value":"_owner"},"id":3524,"name":"Identifier","src":"3972:6:7"}],"id":3525,"name":"Return","src":"3965:13:7"}],"id":3526,"name":"Block","src":"3955:30:7"}],"id":3527,"name":"FunctionDefinition","src":"3908:77:7"},{"attributes":{"constant":true,"documentation":"@notice Check if owner address\n @return true if sender is the owner of the contract.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_isOwner","payable":false,"scope":3540,"stateMutability":"view","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_address","scope":3539,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3528,"name":"ElementaryTypeName","src":"4109:7:7"}],"id":3529,"name":"VariableDeclaration","src":"4109:16:7"}],"id":3530,"name":"ParameterList","src":"4108:18:7"},{"children":[{"attributes":{"constant":false,"name":"","scope":3539,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":3531,"name":"ElementaryTypeName","src":"4150:4:7"}],"id":3532,"name":"VariableDeclaration","src":"4150:4:7"}],"id":3533,"name":"ParameterList","src":"4149:6:7"},{"children":[{"attributes":{"functionReturnParameters":3533},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3529,"type":"address","value":"_address"},"id":3534,"name":"Identifier","src":"4173:8:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3397,"type":"address","value":"_owner"},"id":3535,"name":"Identifier","src":"4185:6:7"}],"id":3536,"name":"BinaryOperation","src":"4173:18:7"}],"id":3537,"name":"Return","src":"4166:25:7"}],"id":3538,"name":"Block","src":"4156:42:7"}],"id":3539,"name":"FunctionDefinition","src":"4091:107:7"}],"id":3540,"name":"ContractDefinition","src":"1149:3051:7"}],"id":3541,"name":"SourceUnit","src":"767:3434:7"}},"internals/tokenWhitelist.sol":{"AST":{"attributes":{"absolutePath":"internals/tokenWhitelist.sol","exportedSymbols":{"ITokenWhitelist":[1011],"TokenWhitelist":[1504]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".25"]},"id":950,"name":"PragmaDirective","src":"774:24:8"},{"attributes":{"SourceUnit":3541,"absolutePath":"internals/ownable.sol","file":"./ownable.sol","scope":1505,"symbolAliases":[null],"unitAlias":""},"id":951,"name":"ImportDirective","src":"800:23:8"},{"attributes":{"SourceUnit":3384,"absolutePath":"internals/controllable.sol","file":"./controllable.sol","scope":1505,"symbolAliases":[null],"unitAlias":""},"id":952,"name":"ImportDirective","src":"824:28:8"},{"attributes":{"SourceUnit":3328,"absolutePath":"externals/strings.sol","file":"../externals/strings.sol","scope":1505,"symbolAliases":[null],"unitAlias":""},"id":953,"name":"ImportDirective","src":"853:34:8"},{"attributes":{"SourceUnit":1633,"absolutePath":"externals/SafeMath.sol","file":"../externals/SafeMath.sol","scope":1505,"symbolAliases":[null],"unitAlias":""},"id":954,"name":"ImportDirective","src":"888:35:8"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"interface","documentation":"@title The ITokenWhitelist interface provides access to a whitelist of tokens.","fullyImplemented":false,"linearizedBaseContracts":[1011],"name":"ITokenWhitelist","scope":1505},"children":[{"attributes":{"body":null,"constant":true,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"getTokenInfo","payable":false,"scope":1011,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"","scope":973,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":955,"name":"ElementaryTypeName","src":"1062:7:8"}],"id":956,"name":"VariableDeclaration","src":"1062:7:8"}],"id":957,"name":"ParameterList","src":"1061:9:8"},{"children":[{"attributes":{"constant":false,"name":"","scope":973,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":958,"name":"ElementaryTypeName","src":"1094:6:8"}],"id":959,"name":"VariableDeclaration","src":"1094:6:8"},{"attributes":{"constant":false,"name":"","scope":973,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":960,"name":"ElementaryTypeName","src":"1102:7:8"}],"id":961,"name":"VariableDeclaration","src":"1102:7:8"},{"attributes":{"constant":false,"name":"","scope":973,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":962,"name":"ElementaryTypeName","src":"1111:7:8"}],"id":963,"name":"VariableDeclaration","src":"1111:7:8"},{"attributes":{"constant":false,"name":"","scope":973,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":964,"name":"ElementaryTypeName","src":"1120:4:8"}],"id":965,"name":"VariableDeclaration","src":"1120:4:8"},{"attributes":{"constant":false,"name":"","scope":973,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":966,"name":"ElementaryTypeName","src":"1126:4:8"}],"id":967,"name":"VariableDeclaration","src":"1126:4:8"},{"attributes":{"constant":false,"name":"","scope":973,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":968,"name":"ElementaryTypeName","src":"1132:4:8"}],"id":969,"name":"VariableDeclaration","src":"1132:4:8"},{"attributes":{"constant":false,"name":"","scope":973,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":970,"name":"ElementaryTypeName","src":"1138:7:8"}],"id":971,"name":"VariableDeclaration","src":"1138:7:8"}],"id":972,"name":"ParameterList","src":"1093:53:8"}],"id":973,"name":"FunctionDefinition","src":"1040:107:8"},{"attributes":{"body":null,"constant":true,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"getStablecoinInfo","payable":false,"scope":1011,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":974,"name":"ParameterList","src":"1178:2:8"},{"children":[{"attributes":{"constant":false,"name":"","scope":990,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":975,"name":"ElementaryTypeName","src":"1204:6:8"}],"id":976,"name":"VariableDeclaration","src":"1204:6:8"},{"attributes":{"constant":false,"name":"","scope":990,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":977,"name":"ElementaryTypeName","src":"1212:7:8"}],"id":978,"name":"VariableDeclaration","src":"1212:7:8"},{"attributes":{"constant":false,"name":"","scope":990,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":979,"name":"ElementaryTypeName","src":"1221:7:8"}],"id":980,"name":"VariableDeclaration","src":"1221:7:8"},{"attributes":{"constant":false,"name":"","scope":990,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":981,"name":"ElementaryTypeName","src":"1230:4:8"}],"id":982,"name":"VariableDeclaration","src":"1230:4:8"},{"attributes":{"constant":false,"name":"","scope":990,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":983,"name":"ElementaryTypeName","src":"1236:4:8"}],"id":984,"name":"VariableDeclaration","src":"1236:4:8"},{"attributes":{"constant":false,"name":"","scope":990,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":985,"name":"ElementaryTypeName","src":"1242:4:8"}],"id":986,"name":"VariableDeclaration","src":"1242:4:8"},{"attributes":{"constant":false,"name":"","scope":990,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":987,"name":"ElementaryTypeName","src":"1248:7:8"}],"id":988,"name":"VariableDeclaration","src":"1248:7:8"}],"id":989,"name":"ParameterList","src":"1203:53:8"}],"id":990,"name":"FunctionDefinition","src":"1152:105:8"},{"attributes":{"body":null,"constant":true,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"tokenAddressArray","payable":false,"scope":1011,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":991,"name":"ParameterList","src":"1288:2:8"},{"children":[{"attributes":{"constant":false,"name":"","scope":996,"stateVariable":false,"storageLocation":"default","type":"address[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"address[]"},"children":[{"attributes":{"name":"address","type":"address"},"id":992,"name":"ElementaryTypeName","src":"1314:7:8"}],"id":993,"name":"ArrayTypeName","src":"1314:9:8"}],"id":994,"name":"VariableDeclaration","src":"1314:9:8"}],"id":995,"name":"ParameterList","src":"1313:11:8"}],"id":996,"name":"FunctionDefinition","src":"1262:63:8"},{"attributes":{"body":null,"constant":false,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"updateTokenRate","payable":false,"scope":1011,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"","scope":1005,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":997,"name":"ElementaryTypeName","src":"1355:7:8"}],"id":998,"name":"VariableDeclaration","src":"1355:7:8"},{"attributes":{"constant":false,"name":"","scope":1005,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":999,"name":"ElementaryTypeName","src":"1364:4:8"}],"id":1000,"name":"VariableDeclaration","src":"1364:4:8"},{"attributes":{"constant":false,"name":"","scope":1005,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1001,"name":"ElementaryTypeName","src":"1370:4:8"}],"id":1002,"name":"VariableDeclaration","src":"1370:4:8"}],"id":1003,"name":"ParameterList","src":"1354:21:8"},{"attributes":{"parameters":[null]},"children":[],"id":1004,"name":"ParameterList","src":"1384:0:8"}],"id":1005,"name":"FunctionDefinition","src":"1330:55:8"},{"attributes":{"body":null,"constant":true,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"stablecoin","payable":false,"scope":1011,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":1006,"name":"ParameterList","src":"1409:2:8"},{"children":[{"attributes":{"constant":false,"name":"","scope":1010,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":1007,"name":"ElementaryTypeName","src":"1435:7:8"}],"id":1008,"name":"VariableDeclaration","src":"1435:7:8"}],"id":1009,"name":"ParameterList","src":"1434:9:8"}],"id":1010,"name":"FunctionDefinition","src":"1390:54:8"}],"id":1011,"name":"ContractDefinition","src":"1008:438:8"},{"attributes":{"contractDependencies":[180,3383,3540],"contractKind":"contract","documentation":"@title TokenWhitelist stores a list of tokens used by the Consumer Contract Wallet, the Oracle, the TKN Holder and the TKN Licence Contract","fullyImplemented":true,"linearizedBaseContracts":[1504,3540,3383,180],"name":"TokenWhitelist","scope":1505},"children":[{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"ENSResolvable","referencedDeclaration":180,"type":"contract ENSResolvable"},"id":1012,"name":"UserDefinedTypeName","src":"1620:13:8"}],"id":1013,"name":"InheritanceSpecifier","src":"1620:13:8"},{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"Controllable","referencedDeclaration":3383,"type":"contract Controllable"},"id":1014,"name":"UserDefinedTypeName","src":"1635:12:8"}],"id":1015,"name":"InheritanceSpecifier","src":"1635:12:8"},{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"Ownable","referencedDeclaration":3540,"type":"contract Ownable"},"id":1016,"name":"UserDefinedTypeName","src":"1649:7:8"}],"id":1017,"name":"InheritanceSpecifier","src":"1649:7:8"},{"attributes":{"typeName":null},"children":[{"attributes":{"contractScope":null,"name":"strings","referencedDeclaration":3327,"type":"library strings"},"id":1018,"name":"UserDefinedTypeName","src":"1669:7:8"}],"id":1019,"name":"UsingForDirective","src":"1663:20:8"},{"children":[{"attributes":{"contractScope":null,"name":"SafeMath","referencedDeclaration":1632,"type":"library SafeMath"},"id":1020,"name":"UserDefinedTypeName","src":"1694:8:8"},{"attributes":{"name":"uint256","type":"uint256"},"id":1021,"name":"ElementaryTypeName","src":"1707:7:8"}],"id":1022,"name":"UsingForDirective","src":"1688:27:8"},{"attributes":{"anonymous":false,"documentation":null,"name":"UpdatedTokenRate"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_sender","scope":1030,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":1023,"name":"ElementaryTypeName","src":"1744:7:8"}],"id":1024,"name":"VariableDeclaration","src":"1744:15:8"},{"attributes":{"constant":false,"indexed":false,"name":"_token","scope":1030,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":1025,"name":"ElementaryTypeName","src":"1761:7:8"}],"id":1026,"name":"VariableDeclaration","src":"1761:14:8"},{"attributes":{"constant":false,"indexed":false,"name":"_rate","scope":1030,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1027,"name":"ElementaryTypeName","src":"1777:4:8"}],"id":1028,"name":"VariableDeclaration","src":"1777:10:8"}],"id":1029,"name":"ParameterList","src":"1743:45:8"}],"id":1030,"name":"EventDefinition","src":"1721:68:8"},{"attributes":{"anonymous":false,"documentation":null,"name":"AddedToken"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_sender","scope":1044,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":1031,"name":"ElementaryTypeName","src":"1812:7:8"}],"id":1032,"name":"VariableDeclaration","src":"1812:15:8"},{"attributes":{"constant":false,"indexed":false,"name":"_token","scope":1044,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":1033,"name":"ElementaryTypeName","src":"1829:7:8"}],"id":1034,"name":"VariableDeclaration","src":"1829:14:8"},{"attributes":{"constant":false,"indexed":false,"name":"_symbol","scope":1044,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":1035,"name":"ElementaryTypeName","src":"1845:6:8"}],"id":1036,"name":"VariableDeclaration","src":"1845:14:8"},{"attributes":{"constant":false,"indexed":false,"name":"_magnitude","scope":1044,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1037,"name":"ElementaryTypeName","src":"1861:4:8"}],"id":1038,"name":"VariableDeclaration","src":"1861:15:8"},{"attributes":{"constant":false,"indexed":false,"name":"_loadable","scope":1044,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":1039,"name":"ElementaryTypeName","src":"1878:4:8"}],"id":1040,"name":"VariableDeclaration","src":"1878:14:8"},{"attributes":{"constant":false,"indexed":false,"name":"_burnable","scope":1044,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":1041,"name":"ElementaryTypeName","src":"1894:4:8"}],"id":1042,"name":"VariableDeclaration","src":"1894:14:8"}],"id":1043,"name":"ParameterList","src":"1811:98:8"}],"id":1044,"name":"EventDefinition","src":"1795:115:8"},{"attributes":{"anonymous":false,"documentation":null,"name":"RemovedToken"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_sender","scope":1050,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":1045,"name":"ElementaryTypeName","src":"1934:7:8"}],"id":1046,"name":"VariableDeclaration","src":"1934:15:8"},{"attributes":{"constant":false,"indexed":false,"name":"_token","scope":1050,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":1047,"name":"ElementaryTypeName","src":"1951:7:8"}],"id":1048,"name":"VariableDeclaration","src":"1951:14:8"}],"id":1049,"name":"ParameterList","src":"1933:33:8"}],"id":1050,"name":"EventDefinition","src":"1915:52:8"},{"attributes":{"canonicalName":"TokenWhitelist.Token","name":"Token","scope":1504,"visibility":"public"},"children":[{"attributes":{"constant":false,"name":"symbol","scope":1065,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":1051,"name":"ElementaryTypeName","src":"1996:6:8"}],"id":1052,"name":"VariableDeclaration","src":"1996:13:8"},{"attributes":{"constant":false,"name":"magnitude","scope":1065,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1053,"name":"ElementaryTypeName","src":"2038:4:8"}],"id":1054,"name":"VariableDeclaration","src":"2038:14:8"},{"attributes":{"constant":false,"name":"rate","scope":1065,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1055,"name":"ElementaryTypeName","src":"2079:4:8"}],"id":1056,"name":"VariableDeclaration","src":"2079:9:8"},{"attributes":{"constant":false,"name":"available","scope":1065,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":1057,"name":"ElementaryTypeName","src":"2135:4:8"}],"id":1058,"name":"VariableDeclaration","src":"2135:14:8"},{"attributes":{"constant":false,"name":"loadable","scope":1065,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":1059,"name":"ElementaryTypeName","src":"2203:4:8"}],"id":1060,"name":"VariableDeclaration","src":"2203:13:8"},{"attributes":{"constant":false,"name":"burnable","scope":1065,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":1061,"name":"ElementaryTypeName","src":"2276:4:8"}],"id":1062,"name":"VariableDeclaration","src":"2276:13:8"},{"attributes":{"constant":false,"name":"lastUpdate","scope":1065,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1063,"name":"ElementaryTypeName","src":"2359:4:8"}],"id":1064,"name":"VariableDeclaration","src":"2359:15:8"}],"id":1065,"name":"StructDefinition","src":"1973:441:8"},{"attributes":{"constant":false,"name":"_tokenInfoMap","scope":1504,"stateVariable":true,"storageLocation":"default","type":"mapping(address => struct TokenWhitelist.Token)","value":null,"visibility":"private"},"children":[{"attributes":{"type":"mapping(address => struct TokenWhitelist.Token)"},"children":[{"attributes":{"name":"address","type":"address"},"id":1066,"name":"ElementaryTypeName","src":"2428:7:8"},{"attributes":{"contractScope":null,"name":"Token","referencedDeclaration":1065,"type":"struct TokenWhitelist.Token"},"id":1067,"name":"UserDefinedTypeName","src":"2439:5:8"}],"id":1068,"name":"Mapping","src":"2420:25:8"}],"id":1069,"name":"VariableDeclaration","src":"2420:47:8"},{"attributes":{"constant":false,"name":"_tokenAddressArray","scope":1504,"stateVariable":true,"storageLocation":"default","type":"address[]","value":null,"visibility":"private"},"children":[{"attributes":{"length":null,"type":"address[]"},"children":[{"attributes":{"name":"address","type":"address"},"id":1070,"name":"ElementaryTypeName","src":"2473:7:8"}],"id":1071,"name":"ArrayTypeName","src":"2473:9:8"}],"id":1072,"name":"VariableDeclaration","src":"2473:36:8"},{"attributes":{"documentation":null,"name":"onlyControllerOrOracle","visibility":"internal"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":1073,"name":"ParameterList","src":"2547:2:8"},{"children":[{"attributes":{"assignments":[1075]},"children":[{"attributes":{"constant":false,"name":"oracleAddress","scope":1095,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":1074,"name":"ElementaryTypeName","src":"2560:7:8"}],"id":1075,"name":"VariableDeclaration","src":"2560:21:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[null],"referencedDeclaration":179,"type":"function (bytes32) view returns (address)","value":"_ensResolve"},"id":1076,"name":"Identifier","src":"2584:11:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1099,"type":"bytes32","value":"_oracleNode"},"id":1077,"name":"Identifier","src":"2596:11:8"}],"id":1078,"name":"FunctionCall","src":"2584:24:8"}],"id":1079,"name":"VariableDeclarationStatement","src":"2560:48:8"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7f651a1c3852ff2a697b659eaace9616ca61af623afbb095898c910cf89ec35f","typeString":"literal_string \"either oracle or controller\""}],"overloadedDeclarations":[3898,3899],"referencedDeclaration":3899,"type":"function (bool,string memory) pure","value":"require"},"id":1080,"name":"Identifier","src":"2618:7:8"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"||","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":3382,"type":"function (address) view returns (bool)","value":"_isController"},"id":1081,"name":"Identifier","src":"2627:13:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3895,"type":"msg","value":"msg"},"id":1082,"name":"Identifier","src":"2641:3:8"}],"id":1083,"name":"MemberAccess","src":"2641:10:8"}],"id":1084,"name":"FunctionCall","src":"2627:25:8"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3895,"type":"msg","value":"msg"},"id":1085,"name":"Identifier","src":"2656:3:8"}],"id":1086,"name":"MemberAccess","src":"2656:10:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1075,"type":"address","value":"oracleAddress"},"id":1087,"name":"Identifier","src":"2670:13:8"}],"id":1088,"name":"BinaryOperation","src":"2656:27:8"}],"id":1089,"name":"BinaryOperation","src":"2627:56:8"},{"attributes":{"argumentTypes":null,"hexvalue":"656974686572206f7261636c65206f7220636f6e74726f6c6c6572","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"either oracle or controller\"","value":"either oracle or controller"},"id":1090,"name":"Literal","src":"2685:29:8"}],"id":1091,"name":"FunctionCall","src":"2618:97:8"}],"id":1092,"name":"ExpressionStatement","src":"2618:97:8"},{"id":1093,"name":"PlaceholderStatement","src":"2725:1:8"}],"id":1094,"name":"Block","src":"2550:183:8"}],"id":1095,"name":"ModifierDefinition","src":"2516:217:8"},{"attributes":{"constant":false,"name":"_stablecoin","scope":1504,"stateVariable":true,"storageLocation":"default","type":"address","value":null,"visibility":"private"},"children":[{"attributes":{"name":"address","type":"address"},"id":1096,"name":"ElementaryTypeName","src":"2782:7:8"}],"id":1097,"name":"VariableDeclaration","src":"2782:27:8"},{"attributes":{"constant":false,"name":"_oracleNode","scope":1504,"stateVariable":true,"storageLocation":"default","type":"bytes32","value":null,"visibility":"private"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":1098,"name":"ElementaryTypeName","src":"2893:7:8"}],"id":1099,"name":"VariableDeclaration","src":"2893:27:8"},{"attributes":{"constant":false,"documentation":"@notice Constructor initializes ENSResolvable, Controllable, and Ownable\n @param _oracleNameHash_ is the ENS name hash of the Oracle.\n @param _stabelcoinAddress_ is the address of the stablecoint used by the wallet","implemented":true,"isConstructor":true,"name":"","payable":false,"scope":1504,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"_ens_","scope":1133,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":1100,"name":"ElementaryTypeName","src":"3176:7:8"}],"id":1101,"name":"VariableDeclaration","src":"3176:13:8"},{"attributes":{"constant":false,"name":"_oracleNameHash_","scope":1133,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":1102,"name":"ElementaryTypeName","src":"3191:7:8"}],"id":1103,"name":"VariableDeclaration","src":"3191:24:8"},{"attributes":{"constant":false,"name":"_controllerNameHash_","scope":1133,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":1104,"name":"ElementaryTypeName","src":"3217:7:8"}],"id":1105,"name":"VariableDeclaration","src":"3217:28:8"},{"attributes":{"constant":false,"name":"_owner_","scope":1133,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":1106,"name":"ElementaryTypeName","src":"3247:7:8"}],"id":1107,"name":"VariableDeclaration","src":"3247:15:8"},{"attributes":{"constant":false,"name":"_transferable_","scope":1133,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":1108,"name":"ElementaryTypeName","src":"3264:4:8"}],"id":1109,"name":"VariableDeclaration","src":"3264:19:8"},{"attributes":{"constant":false,"name":"_stabelcoinAddress_","scope":1133,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":1110,"name":"ElementaryTypeName","src":"3285:7:8"}],"id":1111,"name":"VariableDeclaration","src":"3285:27:8"}],"id":1112,"name":"ParameterList","src":"3175:138:8"},{"attributes":{"parameters":[null]},"children":[],"id":1123,"name":"ParameterList","src":"3410:0:8"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":180,"type":"type(contract ENSResolvable)","value":"ENSResolvable"},"id":1113,"name":"Identifier","src":"3314:13:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1101,"type":"address","value":"_ens_"},"id":1114,"name":"Identifier","src":"3328:5:8"}],"id":1115,"name":"ModifierInvocation","src":"3314:20:8"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3383,"type":"type(contract Controllable)","value":"Controllable"},"id":1116,"name":"Identifier","src":"3335:12:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1105,"type":"bytes32","value":"_controllerNameHash_"},"id":1117,"name":"Identifier","src":"3348:20:8"}],"id":1118,"name":"ModifierInvocation","src":"3335:34:8"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3540,"type":"type(contract Ownable)","value":"Ownable"},"id":1119,"name":"Identifier","src":"3370:7:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1107,"type":"address","value":"_owner_"},"id":1120,"name":"Identifier","src":"3378:7:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1109,"type":"bool","value":"_transferable_"},"id":1121,"name":"Identifier","src":"3387:14:8"}],"id":1122,"name":"ModifierInvocation","src":"3370:32:8"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1099,"type":"bytes32","value":"_oracleNode"},"id":1124,"name":"Identifier","src":"3420:11:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1103,"type":"bytes32","value":"_oracleNameHash_"},"id":1125,"name":"Identifier","src":"3434:16:8"}],"id":1126,"name":"Assignment","src":"3420:30:8"}],"id":1127,"name":"ExpressionStatement","src":"3420:30:8"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1097,"type":"address","value":"_stablecoin"},"id":1128,"name":"Identifier","src":"3460:11:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1111,"type":"address","value":"_stabelcoinAddress_"},"id":1129,"name":"Identifier","src":"3474:19:8"}],"id":1130,"name":"Assignment","src":"3460:33:8"}],"id":1131,"name":"ExpressionStatement","src":"3460:33:8"}],"id":1132,"name":"Block","src":"3410:90:8"}],"id":1133,"name":"FunctionDefinition","src":"3164:336:8"},{"attributes":{"constant":false,"documentation":"@notice Add ERC20 tokens to the list of whitelisted tokens.\n @param _tokens ERC20 token contract addresses.\n @param _symbols ERC20 token names.\n @param _magnitude 10 to the power of number of decimal places used by each ERC20 token.\n @param _loadable is a bool that states whether or not a token is loadable to the TokenCard.\n @param _burnable is a bool that states whether or not a token is burnable in the TKN Holder Contract.\n @param _lastUpdate is a unit representing an ISO datetime e.g. 20180913153211","implemented":true,"isConstructor":false,"name":"addTokens","payable":false,"scope":1504,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_tokens","scope":1265,"stateVariable":false,"storageLocation":"default","type":"address[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"address[]"},"children":[{"attributes":{"name":"address","type":"address"},"id":1134,"name":"ElementaryTypeName","src":"4083:7:8"}],"id":1135,"name":"ArrayTypeName","src":"4083:9:8"}],"id":1136,"name":"VariableDeclaration","src":"4083:17:8"},{"attributes":{"constant":false,"name":"_symbols","scope":1265,"stateVariable":false,"storageLocation":"default","type":"bytes32[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"bytes32[]"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":1137,"name":"ElementaryTypeName","src":"4102:7:8"}],"id":1138,"name":"ArrayTypeName","src":"4102:9:8"}],"id":1139,"name":"VariableDeclaration","src":"4102:18:8"},{"attributes":{"constant":false,"name":"_magnitude","scope":1265,"stateVariable":false,"storageLocation":"default","type":"uint256[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"uint256[]"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1140,"name":"ElementaryTypeName","src":"4122:4:8"}],"id":1141,"name":"ArrayTypeName","src":"4122:6:8"}],"id":1142,"name":"VariableDeclaration","src":"4122:17:8"},{"attributes":{"constant":false,"name":"_loadable","scope":1265,"stateVariable":false,"storageLocation":"default","type":"bool[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"bool[]"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":1143,"name":"ElementaryTypeName","src":"4141:4:8"}],"id":1144,"name":"ArrayTypeName","src":"4141:6:8"}],"id":1145,"name":"VariableDeclaration","src":"4141:16:8"},{"attributes":{"constant":false,"name":"_burnable","scope":1265,"stateVariable":false,"storageLocation":"default","type":"bool[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"bool[]"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":1146,"name":"ElementaryTypeName","src":"4159:4:8"}],"id":1147,"name":"ArrayTypeName","src":"4159:6:8"}],"id":1148,"name":"VariableDeclaration","src":"4159:16:8"},{"attributes":{"constant":false,"name":"_lastUpdate","scope":1265,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1149,"name":"ElementaryTypeName","src":"4177:4:8"}],"id":1150,"name":"VariableDeclaration","src":"4177:16:8"}],"id":1151,"name":"ParameterList","src":"4082:112:8"},{"attributes":{"parameters":[null]},"children":[],"id":1154,"name":"ParameterList","src":"4219:0:8"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3357,"type":"modifier ()","value":"onlyController"},"id":1152,"name":"Identifier","src":"4204:14:8"}],"id":1153,"name":"ModifierInvocation","src":"4204:14:8"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_229d13192b5da189e34c035711b06ef00014d6b1ae3d20f5919a9f7f0dc28e53","typeString":"literal_string \"parameter lengths do not match\""}],"overloadedDeclarations":[3898,3899],"referencedDeclaration":3899,"type":"function (bool,string memory) pure","value":"require"},"id":1155,"name":"Identifier","src":"4290:7:8"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&&","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&&","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&&","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1136,"type":"address[] calldata","value":"_tokens"},"id":1156,"name":"Identifier","src":"4298:7:8"}],"id":1157,"name":"MemberAccess","src":"4298:14:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1139,"type":"bytes32[] calldata","value":"_symbols"},"id":1158,"name":"Identifier","src":"4316:8:8"}],"id":1159,"name":"MemberAccess","src":"4316:15:8"}],"id":1160,"name":"BinaryOperation","src":"4298:33:8"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1136,"type":"address[] calldata","value":"_tokens"},"id":1161,"name":"Identifier","src":"4335:7:8"}],"id":1162,"name":"MemberAccess","src":"4335:14:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1142,"type":"uint256[] calldata","value":"_magnitude"},"id":1163,"name":"Identifier","src":"4353:10:8"}],"id":1164,"name":"MemberAccess","src":"4353:17:8"}],"id":1165,"name":"BinaryOperation","src":"4335:35:8"}],"id":1166,"name":"BinaryOperation","src":"4298:72:8"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1136,"type":"address[] calldata","value":"_tokens"},"id":1167,"name":"Identifier","src":"4374:7:8"}],"id":1168,"name":"MemberAccess","src":"4374:14:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1145,"type":"bool[] calldata","value":"_loadable"},"id":1169,"name":"Identifier","src":"4392:9:8"}],"id":1170,"name":"MemberAccess","src":"4392:16:8"}],"id":1171,"name":"BinaryOperation","src":"4374:34:8"}],"id":1172,"name":"BinaryOperation","src":"4298:110:8"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1136,"type":"address[] calldata","value":"_tokens"},"id":1173,"name":"Identifier","src":"4412:7:8"}],"id":1174,"name":"MemberAccess","src":"4412:14:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1145,"type":"bool[] calldata","value":"_loadable"},"id":1175,"name":"Identifier","src":"4430:9:8"}],"id":1176,"name":"MemberAccess","src":"4430:16:8"}],"id":1177,"name":"BinaryOperation","src":"4412:34:8"}],"id":1178,"name":"BinaryOperation","src":"4298:148:8"},{"attributes":{"argumentTypes":null,"hexvalue":"706172616d65746572206c656e6774687320646f206e6f74206d61746368","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"parameter lengths do not match\"","value":"parameter lengths do not match"},"id":1179,"name":"Literal","src":"4448:32:8"}],"id":1180,"name":"FunctionCall","src":"4290:191:8"}],"id":1181,"name":"ExpressionStatement","src":"4290:191:8"},{"children":[{"attributes":{"assignments":[1183]},"children":[{"attributes":{"constant":false,"name":"i","scope":1265,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1182,"name":"ElementaryTypeName","src":"4555:4:8"}],"id":1183,"name":"VariableDeclaration","src":"4555:6:8"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1184,"name":"Literal","src":"4564:1:8"}],"id":1185,"name":"VariableDeclarationStatement","src":"4555:10:8"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1183,"type":"uint256","value":"i"},"id":1186,"name":"Identifier","src":"4567:1:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1136,"type":"address[] calldata","value":"_tokens"},"id":1187,"name":"Identifier","src":"4571:7:8"}],"id":1188,"name":"MemberAccess","src":"4571:14:8"}],"id":1189,"name":"BinaryOperation","src":"4567:18:8"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1183,"type":"uint256","value":"i"},"id":1190,"name":"Identifier","src":"4587:1:8"}],"id":1191,"name":"UnaryOperation","src":"4587:3:8"}],"id":1192,"name":"ExpressionStatement","src":"4587:3:8"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e7eb3a05df4990307bc322b918e16d072d8c2936ee70a5abacdb05979a5cec23","typeString":"literal_string \"token already available\""}],"overloadedDeclarations":[3898,3899],"referencedDeclaration":3899,"type":"function (bool,string memory) pure","value":"require"},"id":1193,"name":"Identifier","src":"4669:7:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"available","referencedDeclaration":1058,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct TokenWhitelist.Token storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1069,"type":"mapping(address => struct TokenWhitelist.Token storage ref)","value":"_tokenInfoMap"},"id":1194,"name":"Identifier","src":"4678:13:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1136,"type":"address[] calldata","value":"_tokens"},"id":1195,"name":"Identifier","src":"4692:7:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1183,"type":"uint256","value":"i"},"id":1196,"name":"Identifier","src":"4700:1:8"}],"id":1197,"name":"IndexAccess","src":"4692:10:8"}],"id":1198,"name":"IndexAccess","src":"4678:25:8"}],"id":1199,"name":"MemberAccess","src":"4678:35:8"}],"id":1200,"name":"UnaryOperation","src":"4677:36:8"},{"attributes":{"argumentTypes":null,"hexvalue":"746f6b656e20616c726561647920617661696c61626c65","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"token already available\"","value":"token already available"},"id":1201,"name":"Literal","src":"4715:25:8"}],"id":1202,"name":"FunctionCall","src":"4669:72:8"}],"id":1203,"name":"ExpressionStatement","src":"4669:72:8"},{"attributes":{"assignments":[1205]},"children":[{"attributes":{"constant":false,"name":"symbol","scope":1265,"stateVariable":false,"storageLocation":"memory","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":1204,"name":"ElementaryTypeName","src":"4801:6:8"}],"id":1205,"name":"VariableDeclaration","src":"4801:20:8"},{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"toString","referencedDeclaration":1877,"type":"function (struct strings.slice memory) pure returns (string memory)"},"children":[{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"struct strings.slice memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"toSliceB32","referencedDeclaration":1832,"type":"function (bytes32) pure returns (struct strings.slice memory)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1139,"type":"bytes32[] calldata","value":"_symbols"},"id":1206,"name":"Identifier","src":"4824:8:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1183,"type":"uint256","value":"i"},"id":1207,"name":"Identifier","src":"4833:1:8"}],"id":1208,"name":"IndexAccess","src":"4824:11:8"}],"id":1209,"name":"MemberAccess","src":"4824:22:8"}],"id":1210,"name":"FunctionCall","src":"4824:24:8"}],"id":1211,"name":"MemberAccess","src":"4824:33:8"}],"id":1212,"name":"FunctionCall","src":"4824:35:8"}],"id":1213,"name":"VariableDeclarationStatement","src":"4801:58:8"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"struct TokenWhitelist.Token storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"struct TokenWhitelist.Token storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1069,"type":"mapping(address => struct TokenWhitelist.Token storage ref)","value":"_tokenInfoMap"},"id":1214,"name":"Identifier","src":"4921:13:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1136,"type":"address[] calldata","value":"_tokens"},"id":1215,"name":"Identifier","src":"4935:7:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1183,"type":"uint256","value":"i"},"id":1216,"name":"Identifier","src":"4943:1:8"}],"id":1217,"name":"IndexAccess","src":"4935:10:8"}],"id":1218,"name":"IndexAccess","src":"4921:25:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":true,"lValueRequested":false,"names":["symbol","magnitude","rate","available","loadable","burnable","lastUpdate"],"type":"struct TokenWhitelist.Token memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1065,"type":"type(struct TokenWhitelist.Token storage pointer)","value":"Token"},"id":1219,"name":"Identifier","src":"4949:5:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1205,"type":"string memory","value":"symbol"},"id":1220,"name":"Identifier","src":"4982:6:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1142,"type":"uint256[] calldata","value":"_magnitude"},"id":1221,"name":"Identifier","src":"5018:10:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1183,"type":"uint256","value":"i"},"id":1222,"name":"Identifier","src":"5029:1:8"}],"id":1223,"name":"IndexAccess","src":"5018:13:8"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1224,"name":"Literal","src":"5056:1:8"},{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":1225,"name":"Literal","src":"5087:4:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1145,"type":"bool[] calldata","value":"_loadable"},"id":1226,"name":"Identifier","src":"5120:9:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1183,"type":"uint256","value":"i"},"id":1227,"name":"Identifier","src":"5130:1:8"}],"id":1228,"name":"IndexAccess","src":"5120:12:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1148,"type":"bool[] calldata","value":"_burnable"},"id":1229,"name":"Identifier","src":"5160:9:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1183,"type":"uint256","value":"i"},"id":1230,"name":"Identifier","src":"5170:1:8"}],"id":1231,"name":"IndexAccess","src":"5160:12:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1150,"type":"uint256","value":"_lastUpdate"},"id":1232,"name":"Identifier","src":"5203:11:8"}],"id":1233,"name":"FunctionCall","src":"4949:284:8"}],"id":1234,"name":"Assignment","src":"4921:312:8"}],"id":1235,"name":"ExpressionStatement","src":"4921:312:8"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"push","referencedDeclaration":null,"type":"function (address) returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1072,"type":"address[] storage ref","value":"_tokenAddressArray"},"id":1236,"name":"Identifier","src":"5305:18:8"}],"id":1238,"name":"MemberAccess","src":"5305:23:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1136,"type":"address[] calldata","value":"_tokens"},"id":1239,"name":"Identifier","src":"5329:7:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1183,"type":"uint256","value":"i"},"id":1240,"name":"Identifier","src":"5337:1:8"}],"id":1241,"name":"IndexAccess","src":"5329:10:8"}],"id":1242,"name":"FunctionCall","src":"5305:35:8"}],"id":1243,"name":"ExpressionStatement","src":"5305:35:8"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"overloadedDeclarations":[null],"referencedDeclaration":1044,"type":"function (address,address,string memory,uint256,bool,bool)","value":"AddedToken"},"id":1244,"name":"Identifier","src":"5401:10:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3895,"type":"msg","value":"msg"},"id":1245,"name":"Identifier","src":"5412:3:8"}],"id":1246,"name":"MemberAccess","src":"5412:10:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1136,"type":"address[] calldata","value":"_tokens"},"id":1247,"name":"Identifier","src":"5424:7:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1183,"type":"uint256","value":"i"},"id":1248,"name":"Identifier","src":"5432:1:8"}],"id":1249,"name":"IndexAccess","src":"5424:10:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1205,"type":"string memory","value":"symbol"},"id":1250,"name":"Identifier","src":"5436:6:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1142,"type":"uint256[] calldata","value":"_magnitude"},"id":1251,"name":"Identifier","src":"5444:10:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1183,"type":"uint256","value":"i"},"id":1252,"name":"Identifier","src":"5455:1:8"}],"id":1253,"name":"IndexAccess","src":"5444:13:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1145,"type":"bool[] calldata","value":"_loadable"},"id":1254,"name":"Identifier","src":"5459:9:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1183,"type":"uint256","value":"i"},"id":1255,"name":"Identifier","src":"5469:1:8"}],"id":1256,"name":"IndexAccess","src":"5459:12:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1148,"type":"bool[] calldata","value":"_burnable"},"id":1257,"name":"Identifier","src":"5473:9:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1183,"type":"uint256","value":"i"},"id":1258,"name":"Identifier","src":"5483:1:8"}],"id":1259,"name":"IndexAccess","src":"5473:12:8"}],"id":1260,"name":"FunctionCall","src":"5401:85:8"}],"id":1261,"name":"EmitStatement","src":"5396:90:8"}],"id":1262,"name":"Block","src":"4592:905:8"}],"id":1263,"name":"ForStatement","src":"4550:947:8"}],"id":1264,"name":"Block","src":"4219:1284:8"}],"id":1265,"name":"FunctionDefinition","src":"4064:1439:8"},{"attributes":{"constant":false,"documentation":"@notice Remove ERC20 tokens from the whitelist of tokens.\n @param _tokens ERC20 token contract addresses.","implemented":true,"isConstructor":false,"name":"removeTokens","payable":false,"scope":1504,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_tokens","scope":1355,"stateVariable":false,"storageLocation":"default","type":"address[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"address[]"},"children":[{"attributes":{"name":"address","type":"address"},"id":1266,"name":"ElementaryTypeName","src":"5652:7:8"}],"id":1267,"name":"ArrayTypeName","src":"5652:9:8"}],"id":1268,"name":"VariableDeclaration","src":"5652:17:8"}],"id":1269,"name":"ParameterList","src":"5651:19:8"},{"attributes":{"parameters":[null]},"children":[],"id":1272,"name":"ParameterList","src":"5695:0:8"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3357,"type":"modifier ()","value":"onlyController"},"id":1270,"name":"Identifier","src":"5680:14:8"}],"id":1271,"name":"ModifierInvocation","src":"5680:14:8"},{"children":[{"children":[{"attributes":{"assignments":[1274]},"children":[{"attributes":{"constant":false,"name":"i","scope":1355,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1273,"name":"ElementaryTypeName","src":"5813:4:8"}],"id":1274,"name":"VariableDeclaration","src":"5813:6:8"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1275,"name":"Literal","src":"5822:1:8"}],"id":1276,"name":"VariableDeclarationStatement","src":"5813:10:8"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1274,"type":"uint256","value":"i"},"id":1277,"name":"Identifier","src":"5825:1:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1268,"type":"address[] calldata","value":"_tokens"},"id":1278,"name":"Identifier","src":"5829:7:8"}],"id":1279,"name":"MemberAccess","src":"5829:14:8"}],"id":1280,"name":"BinaryOperation","src":"5825:18:8"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1274,"type":"uint256","value":"i"},"id":1281,"name":"Identifier","src":"5845:1:8"}],"id":1282,"name":"UnaryOperation","src":"5845:3:8"}],"id":1283,"name":"ExpressionStatement","src":"5845:3:8"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d487155ec60125f09758305e6de21696dc3e345a5b0edca0b920691dd5be4852","typeString":"literal_string \"token is not available\""}],"overloadedDeclarations":[3898,3899],"referencedDeclaration":3899,"type":"function (bool,string memory) pure","value":"require"},"id":1284,"name":"Identifier","src":"5933:7:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"available","referencedDeclaration":1058,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct TokenWhitelist.Token storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1069,"type":"mapping(address => struct TokenWhitelist.Token storage ref)","value":"_tokenInfoMap"},"id":1285,"name":"Identifier","src":"5941:13:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1268,"type":"address[] calldata","value":"_tokens"},"id":1286,"name":"Identifier","src":"5955:7:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1274,"type":"uint256","value":"i"},"id":1287,"name":"Identifier","src":"5963:1:8"}],"id":1288,"name":"IndexAccess","src":"5955:10:8"}],"id":1289,"name":"IndexAccess","src":"5941:25:8"}],"id":1290,"name":"MemberAccess","src":"5941:35:8"},{"attributes":{"argumentTypes":null,"hexvalue":"746f6b656e206973206e6f7420617661696c61626c65","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"token is not available\"","value":"token is not available"},"id":1291,"name":"Literal","src":"5978:24:8"}],"id":1292,"name":"FunctionCall","src":"5933:70:8"}],"id":1293,"name":"ExpressionStatement","src":"5933:70:8"},{"attributes":{"assignments":[1295]},"children":[{"attributes":{"constant":false,"name":"token","scope":1355,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":1294,"name":"ElementaryTypeName","src":"6057:7:8"}],"id":1295,"name":"VariableDeclaration","src":"6057:13:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1268,"type":"address[] calldata","value":"_tokens"},"id":1296,"name":"Identifier","src":"6073:7:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1274,"type":"uint256","value":"i"},"id":1297,"name":"Identifier","src":"6081:1:8"}],"id":1298,"name":"IndexAccess","src":"6073:10:8"}],"id":1299,"name":"VariableDeclarationStatement","src":"6057:26:8"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"delete","prefix":true,"type":"tuple()"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"struct TokenWhitelist.Token storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1069,"type":"mapping(address => struct TokenWhitelist.Token storage ref)","value":"_tokenInfoMap"},"id":1300,"name":"Identifier","src":"6144:13:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1295,"type":"address","value":"token"},"id":1301,"name":"Identifier","src":"6158:5:8"}],"id":1302,"name":"IndexAccess","src":"6144:20:8"}],"id":1303,"name":"UnaryOperation","src":"6137:27:8"}],"id":1304,"name":"ExpressionStatement","src":"6137:27:8"},{"children":[{"attributes":{"assignments":[1306]},"children":[{"attributes":{"constant":false,"name":"j","scope":1355,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1305,"name":"ElementaryTypeName","src":"6246:4:8"}],"id":1306,"name":"VariableDeclaration","src":"6246:6:8"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1307,"name":"Literal","src":"6255:1:8"}],"id":1308,"name":"VariableDeclarationStatement","src":"6246:10:8"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1306,"type":"uint256","value":"j"},"id":1309,"name":"Identifier","src":"6258:1:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sub","referencedDeclaration":1587,"type":"function (uint256,uint256) pure returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1072,"type":"address[] storage ref","value":"_tokenAddressArray"},"id":1310,"name":"Identifier","src":"6262:18:8"}],"id":1311,"name":"MemberAccess","src":"6262:25:8"}],"id":1312,"name":"MemberAccess","src":"6262:29:8"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":1313,"name":"Literal","src":"6292:1:8"}],"id":1314,"name":"FunctionCall","src":"6262:32:8"}],"id":1315,"name":"BinaryOperation","src":"6258:36:8"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1306,"type":"uint256","value":"j"},"id":1316,"name":"Identifier","src":"6296:1:8"}],"id":1317,"name":"UnaryOperation","src":"6296:3:8"}],"id":1318,"name":"ExpressionStatement","src":"6296:3:8"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1072,"type":"address[] storage ref","value":"_tokenAddressArray"},"id":1319,"name":"Identifier","src":"6323:18:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1306,"type":"uint256","value":"j"},"id":1320,"name":"Identifier","src":"6342:1:8"}],"id":1321,"name":"IndexAccess","src":"6323:21:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1295,"type":"address","value":"token"},"id":1322,"name":"Identifier","src":"6348:5:8"}],"id":1323,"name":"BinaryOperation","src":"6323:30:8"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"address"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1072,"type":"address[] storage ref","value":"_tokenAddressArray"},"id":1324,"name":"Identifier","src":"6377:18:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1306,"type":"uint256","value":"j"},"id":1325,"name":"Identifier","src":"6396:1:8"}],"id":1326,"name":"IndexAccess","src":"6377:21:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1072,"type":"address[] storage ref","value":"_tokenAddressArray"},"id":1327,"name":"Identifier","src":"6401:18:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sub","referencedDeclaration":1587,"type":"function (uint256,uint256) pure returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1072,"type":"address[] storage ref","value":"_tokenAddressArray"},"id":1328,"name":"Identifier","src":"6420:18:8"}],"id":1329,"name":"MemberAccess","src":"6420:25:8"}],"id":1330,"name":"MemberAccess","src":"6420:29:8"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":1331,"name":"Literal","src":"6450:1:8"}],"id":1332,"name":"FunctionCall","src":"6420:32:8"}],"id":1333,"name":"IndexAccess","src":"6401:52:8"}],"id":1334,"name":"Assignment","src":"6377:76:8"}],"id":1335,"name":"ExpressionStatement","src":"6377:76:8"},{"id":1336,"name":"Break","src":"6475:5:8"}],"id":1337,"name":"Block","src":"6355:144:8"}],"id":1338,"name":"IfStatement","src":"6319:180:8"}],"id":1339,"name":"Block","src":"6301:212:8"}],"id":1340,"name":"ForStatement","src":"6241:272:8"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"--","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1072,"type":"address[] storage ref","value":"_tokenAddressArray"},"id":1341,"name":"Identifier","src":"6526:18:8"}],"id":1343,"name":"MemberAccess","src":"6526:25:8"}],"id":1344,"name":"UnaryOperation","src":"6526:27:8"}],"id":1345,"name":"ExpressionStatement","src":"6526:27:8"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":1050,"type":"function (address,address)","value":"RemovedToken"},"id":1346,"name":"Identifier","src":"6613:12:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3895,"type":"msg","value":"msg"},"id":1347,"name":"Identifier","src":"6626:3:8"}],"id":1348,"name":"MemberAccess","src":"6626:10:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1295,"type":"address","value":"token"},"id":1349,"name":"Identifier","src":"6638:5:8"}],"id":1350,"name":"FunctionCall","src":"6613:31:8"}],"id":1351,"name":"EmitStatement","src":"6608:36:8"}],"id":1352,"name":"Block","src":"5850:805:8"}],"id":1353,"name":"ForStatement","src":"5808:847:8"}],"id":1354,"name":"Block","src":"5695:966:8"}],"id":1355,"name":"FunctionDefinition","src":"5630:1031:8"},{"attributes":{"constant":false,"documentation":"@notice Update ERC20 token exchange rate.\n @param _token ERC20 token contract address.\n @param _rate ERC20 token exchange rate in wei.\n @param _updateDate date for the token updates. This will be compared to when oracle updates are received.","implemented":true,"isConstructor":false,"name":"updateTokenRate","payable":false,"scope":1504,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_token","scope":1396,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":1356,"name":"ElementaryTypeName","src":"6963:7:8"}],"id":1357,"name":"VariableDeclaration","src":"6963:14:8"},{"attributes":{"constant":false,"name":"_rate","scope":1396,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1358,"name":"ElementaryTypeName","src":"6979:4:8"}],"id":1359,"name":"VariableDeclaration","src":"6979:10:8"},{"attributes":{"constant":false,"name":"_updateDate","scope":1396,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1360,"name":"ElementaryTypeName","src":"6991:4:8"}],"id":1361,"name":"VariableDeclaration","src":"6991:16:8"}],"id":1362,"name":"ParameterList","src":"6962:46:8"},{"attributes":{"parameters":[null]},"children":[],"id":1365,"name":"ParameterList","src":"7041:0:8"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1095,"type":"modifier ()","value":"onlyControllerOrOracle"},"id":1363,"name":"Identifier","src":"7018:22:8"}],"id":1364,"name":"ModifierInvocation","src":"7018:22:8"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d487155ec60125f09758305e6de21696dc3e345a5b0edca0b920691dd5be4852","typeString":"literal_string \"token is not available\""}],"overloadedDeclarations":[3898,3899],"referencedDeclaration":3899,"type":"function (bool,string memory) pure","value":"require"},"id":1366,"name":"Identifier","src":"7093:7:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"available","referencedDeclaration":1058,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct TokenWhitelist.Token storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1069,"type":"mapping(address => struct TokenWhitelist.Token storage ref)","value":"_tokenInfoMap"},"id":1367,"name":"Identifier","src":"7101:13:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1357,"type":"address","value":"_token"},"id":1368,"name":"Identifier","src":"7115:6:8"}],"id":1369,"name":"IndexAccess","src":"7101:21:8"}],"id":1370,"name":"MemberAccess","src":"7101:31:8"},{"attributes":{"argumentTypes":null,"hexvalue":"746f6b656e206973206e6f7420617661696c61626c65","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"token is not available\"","value":"token is not available"},"id":1371,"name":"Literal","src":"7134:24:8"}],"id":1372,"name":"FunctionCall","src":"7093:66:8"}],"id":1373,"name":"ExpressionStatement","src":"7093:66:8"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"rate","referencedDeclaration":1056,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct TokenWhitelist.Token storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1069,"type":"mapping(address => struct TokenWhitelist.Token storage ref)","value":"_tokenInfoMap"},"id":1374,"name":"Identifier","src":"7205:13:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1357,"type":"address","value":"_token"},"id":1375,"name":"Identifier","src":"7219:6:8"}],"id":1376,"name":"IndexAccess","src":"7205:21:8"}],"id":1377,"name":"MemberAccess","src":"7205:26:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1359,"type":"uint256","value":"_rate"},"id":1378,"name":"Identifier","src":"7234:5:8"}],"id":1379,"name":"Assignment","src":"7205:34:8"}],"id":1380,"name":"ExpressionStatement","src":"7205:34:8"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"lastUpdate","referencedDeclaration":1064,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct TokenWhitelist.Token storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1069,"type":"mapping(address => struct TokenWhitelist.Token storage ref)","value":"_tokenInfoMap"},"id":1381,"name":"Identifier","src":"7302:13:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1357,"type":"address","value":"_token"},"id":1382,"name":"Identifier","src":"7316:6:8"}],"id":1383,"name":"IndexAccess","src":"7302:21:8"}],"id":1384,"name":"MemberAccess","src":"7302:32:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1361,"type":"uint256","value":"_updateDate"},"id":1385,"name":"Identifier","src":"7337:11:8"}],"id":1386,"name":"Assignment","src":"7302:46:8"}],"id":1387,"name":"ExpressionStatement","src":"7302:46:8"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":1030,"type":"function (address,address,uint256)","value":"UpdatedTokenRate"},"id":1388,"name":"Identifier","src":"7402:16:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3895,"type":"msg","value":"msg"},"id":1389,"name":"Identifier","src":"7419:3:8"}],"id":1390,"name":"MemberAccess","src":"7419:10:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1357,"type":"address","value":"_token"},"id":1391,"name":"Identifier","src":"7431:6:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1359,"type":"uint256","value":"_rate"},"id":1392,"name":"Identifier","src":"7439:5:8"}],"id":1393,"name":"FunctionCall","src":"7402:43:8"}],"id":1394,"name":"EmitStatement","src":"7397:48:8"}],"id":1395,"name":"Block","src":"7041:411:8"}],"id":1396,"name":"FunctionDefinition","src":"6938:514:8"},{"attributes":{"constant":true,"documentation":"@notice This returns all of the fields for a given token\n @param _a is the address of a given token\n @return string of the token's symbol\n @return uint of the token's magnitude\n @return uint of the token's exchange rate to ETH\n @return bool whether the token is available\n @return bool whether the token is loadable to the TokenCard\n @return bool whether the token is burnable to the TKN Holder Contract\n @return uint of the lastUpdated time of the token's exchange rate","implemented":true,"isConstructor":false,"modifiers":[null],"name":"getTokenInfo","payable":false,"scope":1504,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_a","scope":1438,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":1397,"name":"ElementaryTypeName","src":"8015:7:8"}],"id":1398,"name":"VariableDeclaration","src":"8015:10:8"}],"id":1399,"name":"ParameterList","src":"8014:12:8"},{"children":[{"attributes":{"constant":false,"name":"","scope":1438,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":1400,"name":"ElementaryTypeName","src":"8050:6:8"}],"id":1401,"name":"VariableDeclaration","src":"8050:6:8"},{"attributes":{"constant":false,"name":"","scope":1438,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1402,"name":"ElementaryTypeName","src":"8058:7:8"}],"id":1403,"name":"VariableDeclaration","src":"8058:7:8"},{"attributes":{"constant":false,"name":"","scope":1438,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1404,"name":"ElementaryTypeName","src":"8067:7:8"}],"id":1405,"name":"VariableDeclaration","src":"8067:7:8"},{"attributes":{"constant":false,"name":"","scope":1438,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":1406,"name":"ElementaryTypeName","src":"8076:4:8"}],"id":1407,"name":"VariableDeclaration","src":"8076:4:8"},{"attributes":{"constant":false,"name":"","scope":1438,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":1408,"name":"ElementaryTypeName","src":"8082:4:8"}],"id":1409,"name":"VariableDeclaration","src":"8082:4:8"},{"attributes":{"constant":false,"name":"","scope":1438,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":1410,"name":"ElementaryTypeName","src":"8088:4:8"}],"id":1411,"name":"VariableDeclaration","src":"8088:4:8"},{"attributes":{"constant":false,"name":"","scope":1438,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1412,"name":"ElementaryTypeName","src":"8094:7:8"}],"id":1413,"name":"VariableDeclaration","src":"8094:7:8"}],"id":1414,"name":"ParameterList","src":"8049:53:8"},{"children":[{"attributes":{"assignments":[1416]},"children":[{"attributes":{"constant":false,"name":"tokenInfo","scope":1438,"stateVariable":false,"storageLocation":"storage","type":"struct TokenWhitelist.Token","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"Token","referencedDeclaration":1065,"type":"struct TokenWhitelist.Token"},"id":1415,"name":"UserDefinedTypeName","src":"8113:5:8"}],"id":1416,"name":"VariableDeclaration","src":"8113:23:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct TokenWhitelist.Token storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1069,"type":"mapping(address => struct TokenWhitelist.Token storage ref)","value":"_tokenInfoMap"},"id":1417,"name":"Identifier","src":"8139:13:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1398,"type":"address","value":"_a"},"id":1418,"name":"Identifier","src":"8153:2:8"}],"id":1419,"name":"IndexAccess","src":"8139:17:8"}],"id":1420,"name":"VariableDeclarationStatement","src":"8113:43:8"},{"attributes":{"functionReturnParameters":1414},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"tuple(string storage ref,uint256,uint256,bool,bool,bool,uint256)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"symbol","referencedDeclaration":1052,"type":"string storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1416,"type":"struct TokenWhitelist.Token storage pointer","value":"tokenInfo"},"id":1421,"name":"Identifier","src":"8174:9:8"}],"id":1422,"name":"MemberAccess","src":"8174:16:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"magnitude","referencedDeclaration":1054,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1416,"type":"struct TokenWhitelist.Token storage pointer","value":"tokenInfo"},"id":1423,"name":"Identifier","src":"8192:9:8"}],"id":1424,"name":"MemberAccess","src":"8192:19:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"rate","referencedDeclaration":1056,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1416,"type":"struct TokenWhitelist.Token storage pointer","value":"tokenInfo"},"id":1425,"name":"Identifier","src":"8213:9:8"}],"id":1426,"name":"MemberAccess","src":"8213:14:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"available","referencedDeclaration":1058,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1416,"type":"struct TokenWhitelist.Token storage pointer","value":"tokenInfo"},"id":1427,"name":"Identifier","src":"8229:9:8"}],"id":1428,"name":"MemberAccess","src":"8229:19:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"loadable","referencedDeclaration":1060,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1416,"type":"struct TokenWhitelist.Token storage pointer","value":"tokenInfo"},"id":1429,"name":"Identifier","src":"8250:9:8"}],"id":1430,"name":"MemberAccess","src":"8250:18:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"burnable","referencedDeclaration":1062,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1416,"type":"struct TokenWhitelist.Token storage pointer","value":"tokenInfo"},"id":1431,"name":"Identifier","src":"8270:9:8"}],"id":1432,"name":"MemberAccess","src":"8270:18:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"lastUpdate","referencedDeclaration":1064,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1416,"type":"struct TokenWhitelist.Token storage pointer","value":"tokenInfo"},"id":1433,"name":"Identifier","src":"8290:9:8"}],"id":1434,"name":"MemberAccess","src":"8290:20:8"}],"id":1435,"name":"TupleExpression","src":"8173:138:8"}],"id":1436,"name":"Return","src":"8166:145:8"}],"id":1437,"name":"Block","src":"8103:215:8"}],"id":1438,"name":"FunctionDefinition","src":"7993:325:8"},{"attributes":{"constant":true,"documentation":"@notice This returns all of the fields for our StableCoin\n @return string of the token's symbol\n @return uint of the token's magnitude\n @return uint of the token's exchange rate to ETH\n @return bool whether the token is available\n @return bool whether the token is loadable to the TokenCard\n @return bool whether the token is burnable to the TKN Holder Contract\n @return uint of the lastUpdated time of the token's exchange rate","implemented":true,"isConstructor":false,"modifiers":[null],"name":"getStablecoinInfo","payable":false,"scope":1504,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":1439,"name":"ParameterList","src":"8836:2:8"},{"children":[{"attributes":{"constant":false,"name":"","scope":1478,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":1440,"name":"ElementaryTypeName","src":"8862:6:8"}],"id":1441,"name":"VariableDeclaration","src":"8862:6:8"},{"attributes":{"constant":false,"name":"","scope":1478,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1442,"name":"ElementaryTypeName","src":"8870:7:8"}],"id":1443,"name":"VariableDeclaration","src":"8870:7:8"},{"attributes":{"constant":false,"name":"","scope":1478,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1444,"name":"ElementaryTypeName","src":"8879:7:8"}],"id":1445,"name":"VariableDeclaration","src":"8879:7:8"},{"attributes":{"constant":false,"name":"","scope":1478,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":1446,"name":"ElementaryTypeName","src":"8888:4:8"}],"id":1447,"name":"VariableDeclaration","src":"8888:4:8"},{"attributes":{"constant":false,"name":"","scope":1478,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":1448,"name":"ElementaryTypeName","src":"8894:4:8"}],"id":1449,"name":"VariableDeclaration","src":"8894:4:8"},{"attributes":{"constant":false,"name":"","scope":1478,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":1450,"name":"ElementaryTypeName","src":"8900:4:8"}],"id":1451,"name":"VariableDeclaration","src":"8900:4:8"},{"attributes":{"constant":false,"name":"","scope":1478,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1452,"name":"ElementaryTypeName","src":"8906:7:8"}],"id":1453,"name":"VariableDeclaration","src":"8906:7:8"}],"id":1454,"name":"ParameterList","src":"8861:53:8"},{"children":[{"attributes":{"assignments":[1456]},"children":[{"attributes":{"constant":false,"name":"stablecoinInfo","scope":1478,"stateVariable":false,"storageLocation":"storage","type":"struct TokenWhitelist.Token","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"Token","referencedDeclaration":1065,"type":"struct TokenWhitelist.Token"},"id":1455,"name":"UserDefinedTypeName","src":"8925:5:8"}],"id":1456,"name":"VariableDeclaration","src":"8925:28:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct TokenWhitelist.Token storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1069,"type":"mapping(address => struct TokenWhitelist.Token storage ref)","value":"_tokenInfoMap"},"id":1457,"name":"Identifier","src":"8956:13:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1097,"type":"address","value":"_stablecoin"},"id":1458,"name":"Identifier","src":"8970:11:8"}],"id":1459,"name":"IndexAccess","src":"8956:26:8"}],"id":1460,"name":"VariableDeclarationStatement","src":"8925:57:8"},{"attributes":{"functionReturnParameters":1454},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"tuple(string storage ref,uint256,uint256,bool,bool,bool,uint256)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"symbol","referencedDeclaration":1052,"type":"string storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1456,"type":"struct TokenWhitelist.Token storage pointer","value":"stablecoinInfo"},"id":1461,"name":"Identifier","src":"9000:14:8"}],"id":1462,"name":"MemberAccess","src":"9000:21:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"magnitude","referencedDeclaration":1054,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1456,"type":"struct TokenWhitelist.Token storage pointer","value":"stablecoinInfo"},"id":1463,"name":"Identifier","src":"9023:14:8"}],"id":1464,"name":"MemberAccess","src":"9023:24:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"rate","referencedDeclaration":1056,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1456,"type":"struct TokenWhitelist.Token storage pointer","value":"stablecoinInfo"},"id":1465,"name":"Identifier","src":"9049:14:8"}],"id":1466,"name":"MemberAccess","src":"9049:19:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"available","referencedDeclaration":1058,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1456,"type":"struct TokenWhitelist.Token storage pointer","value":"stablecoinInfo"},"id":1467,"name":"Identifier","src":"9070:14:8"}],"id":1468,"name":"MemberAccess","src":"9070:24:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"loadable","referencedDeclaration":1060,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1456,"type":"struct TokenWhitelist.Token storage pointer","value":"stablecoinInfo"},"id":1469,"name":"Identifier","src":"9096:14:8"}],"id":1470,"name":"MemberAccess","src":"9096:23:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"burnable","referencedDeclaration":1062,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1456,"type":"struct TokenWhitelist.Token storage pointer","value":"stablecoinInfo"},"id":1471,"name":"Identifier","src":"9121:14:8"}],"id":1472,"name":"MemberAccess","src":"9121:23:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"lastUpdate","referencedDeclaration":1064,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1456,"type":"struct TokenWhitelist.Token storage pointer","value":"stablecoinInfo"},"id":1473,"name":"Identifier","src":"9146:14:8"}],"id":1474,"name":"MemberAccess","src":"9146:25:8"}],"id":1475,"name":"TupleExpression","src":"8999:173:8"}],"id":1476,"name":"Return","src":"8992:180:8"}],"id":1477,"name":"Block","src":"8915:264:8"}],"id":1478,"name":"FunctionDefinition","src":"8810:369:8"},{"attributes":{"constant":true,"documentation":"@notice This returns an array of our whitelisted address\n @return address[] of our whitelisted tokens","implemented":true,"isConstructor":false,"modifiers":[null],"name":"tokenAddressArray","payable":false,"scope":1504,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":1479,"name":"ParameterList","src":"9328:2:8"},{"children":[{"attributes":{"constant":false,"name":"","scope":1487,"stateVariable":false,"storageLocation":"default","type":"address[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"address[]"},"children":[{"attributes":{"name":"address","type":"address"},"id":1480,"name":"ElementaryTypeName","src":"9354:7:8"}],"id":1481,"name":"ArrayTypeName","src":"9354:9:8"}],"id":1482,"name":"VariableDeclaration","src":"9354:9:8"}],"id":1483,"name":"ParameterList","src":"9353:11:8"},{"children":[{"attributes":{"functionReturnParameters":1483},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1072,"type":"address[] storage ref","value":"_tokenAddressArray"},"id":1484,"name":"Identifier","src":"9382:18:8"}],"id":1485,"name":"Return","src":"9375:25:8"}],"id":1486,"name":"Block","src":"9365:42:8"}],"id":1487,"name":"FunctionDefinition","src":"9302:105:8"},{"attributes":{"constant":true,"documentation":"@notice This returns the address of our stablecoin of choice\n @return the address of the stablecoin contract.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"stablecoin","payable":false,"scope":1504,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":1488,"name":"ParameterList","src":"9557:2:8"},{"children":[{"attributes":{"constant":false,"name":"","scope":1495,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":1489,"name":"ElementaryTypeName","src":"9583:7:8"}],"id":1490,"name":"VariableDeclaration","src":"9583:7:8"}],"id":1491,"name":"ParameterList","src":"9582:9:8"},{"children":[{"attributes":{"functionReturnParameters":1491},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1097,"type":"address","value":"_stablecoin"},"id":1492,"name":"Identifier","src":"9609:11:8"}],"id":1493,"name":"Return","src":"9602:18:8"}],"id":1494,"name":"Block","src":"9592:35:8"}],"id":1495,"name":"FunctionDefinition","src":"9538:89:8"},{"attributes":{"constant":true,"documentation":"@notice this returns the node hash of our Oracle\n @return the oracle node registered in ENS.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"oracleNode","payable":false,"scope":1504,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":1496,"name":"ParameterList","src":"9760:2:8"},{"children":[{"attributes":{"constant":false,"name":"","scope":1503,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":1497,"name":"ElementaryTypeName","src":"9786:7:8"}],"id":1498,"name":"VariableDeclaration","src":"9786:7:8"}],"id":1499,"name":"ParameterList","src":"9785:9:8"},{"children":[{"attributes":{"functionReturnParameters":1499},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1099,"type":"bytes32","value":"_oracleNode"},"id":1500,"name":"Identifier","src":"9812:11:8"}],"id":1501,"name":"Return","src":"9805:18:8"}],"id":1502,"name":"Block","src":"9795:35:8"}],"id":1503,"name":"FunctionDefinition","src":"9741:89:8"}],"id":1504,"name":"ContractDefinition","src":"1593:8239:8"}],"id":1505,"name":"SourceUnit","src":"774:9059:8"}},"internals/tokenWhitelistable.sol":{"AST":{"attributes":{"absolutePath":"internals/tokenWhitelistable.sol","exportedSymbols":{"TokenWhitelistable":[360]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".25"]},"id":182,"name":"PragmaDirective","src":"778:24:9"},{"attributes":{"SourceUnit":1505,"absolutePath":"internals/tokenWhitelist.sol","file":"./tokenWhitelist.sol","scope":361,"symbolAliases":[null],"unitAlias":""},"id":183,"name":"ImportDirective","src":"804:30:9"},{"attributes":{"SourceUnit":181,"absolutePath":"internals/ensResolvable.sol","file":"../internals/ensResolvable.sol","scope":361,"symbolAliases":[null],"unitAlias":""},"id":184,"name":"ImportDirective","src":"835:40:9"},{"attributes":{"contractDependencies":[180],"contractKind":"contract","documentation":"@title TokenWhitelistable implements access to the TokenWhitelist located behind ENS.","fullyImplemented":false,"linearizedBaseContracts":[360,180],"name":"TokenWhitelistable","scope":361},"children":[{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"ENSResolvable","referencedDeclaration":180,"type":"contract ENSResolvable"},"id":185,"name":"UserDefinedTypeName","src":"999:13:9"}],"id":186,"name":"InheritanceSpecifier","src":"999:13:9"},{"attributes":{"constant":false,"name":"_tokenWhitelistNode","scope":360,"stateVariable":true,"storageLocation":"default","type":"bytes32","value":null,"visibility":"private"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":187,"name":"ElementaryTypeName","src":"1104:7:9"}],"id":188,"name":"VariableDeclaration","src":"1104:35:9"},{"attributes":{"constant":false,"documentation":"@notice Constructor initializes the TokenWhitelistable object.\n @param _tokenWhitelistNameHash_ is the ENS name hash of the TokenWhitelist.","implemented":true,"isConstructor":true,"modifiers":[null],"name":"","payable":false,"scope":360,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_tokenWhitelistNameHash_","scope":198,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":189,"name":"ElementaryTypeName","src":"1313:7:9"}],"id":190,"name":"VariableDeclaration","src":"1313:32:9"}],"id":191,"name":"ParameterList","src":"1312:34:9"},{"attributes":{"parameters":[null]},"children":[],"id":192,"name":"ParameterList","src":"1356:0:9"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":188,"type":"bytes32","value":"_tokenWhitelistNode"},"id":193,"name":"Identifier","src":"1366:19:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":190,"type":"bytes32","value":"_tokenWhitelistNameHash_"},"id":194,"name":"Identifier","src":"1388:24:9"}],"id":195,"name":"Assignment","src":"1366:46:9"}],"id":196,"name":"ExpressionStatement","src":"1366:46:9"}],"id":197,"name":"Block","src":"1356:63:9"}],"id":198,"name":"FunctionDefinition","src":"1301:118:9"},{"attributes":{"constant":true,"documentation":"@notice This shows what TokenWhitelist is being used\n @return the TokenWhitelist's name hash registered in ENS.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"tokenWhitelistNode","payable":false,"scope":360,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":199,"name":"ParameterList","src":"1579:2:9"},{"children":[{"attributes":{"constant":false,"name":"","scope":206,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":200,"name":"ElementaryTypeName","src":"1605:7:9"}],"id":201,"name":"VariableDeclaration","src":"1605:7:9"}],"id":202,"name":"ParameterList","src":"1604:9:9"},{"children":[{"attributes":{"functionReturnParameters":202},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":188,"type":"bytes32","value":"_tokenWhitelistNode"},"id":203,"name":"Identifier","src":"1631:19:9"}],"id":204,"name":"Return","src":"1624:26:9"}],"id":205,"name":"Block","src":"1614:43:9"}],"id":206,"name":"FunctionDefinition","src":"1552:105:9"},{"attributes":{"constant":true,"documentation":"@notice This returns all of the fields for a given token\n @param _a is the address of a given token\n @return string of the token's symbol\n @return uint of the token's magnitude\n @return uint of the token's exchange rate to ETH\n @return bool whether the token is available\n @return bool whether the token is loadable to the TokenCard\n @return bool whether the token is burnable to the TKN Holder Contract\n @return uint of the lastUpdated time of the token's exchange rate","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_getTokenInfo","payable":false,"scope":360,"stateMutability":"view","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_a","scope":235,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":207,"name":"ElementaryTypeName","src":"2221:7:9"}],"id":208,"name":"VariableDeclaration","src":"2221:10:9"}],"id":209,"name":"ParameterList","src":"2220:12:9"},{"children":[{"attributes":{"constant":false,"name":"","scope":235,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":210,"name":"ElementaryTypeName","src":"2256:6:9"}],"id":211,"name":"VariableDeclaration","src":"2256:6:9"},{"attributes":{"constant":false,"name":"","scope":235,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":212,"name":"ElementaryTypeName","src":"2264:7:9"}],"id":213,"name":"VariableDeclaration","src":"2264:7:9"},{"attributes":{"constant":false,"name":"","scope":235,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":214,"name":"ElementaryTypeName","src":"2273:7:9"}],"id":215,"name":"VariableDeclaration","src":"2273:7:9"},{"attributes":{"constant":false,"name":"","scope":235,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":216,"name":"ElementaryTypeName","src":"2282:4:9"}],"id":217,"name":"VariableDeclaration","src":"2282:4:9"},{"attributes":{"constant":false,"name":"","scope":235,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":218,"name":"ElementaryTypeName","src":"2288:4:9"}],"id":219,"name":"VariableDeclaration","src":"2288:4:9"},{"attributes":{"constant":false,"name":"","scope":235,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":220,"name":"ElementaryTypeName","src":"2294:4:9"}],"id":221,"name":"VariableDeclaration","src":"2294:4:9"},{"attributes":{"constant":false,"name":"","scope":235,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":222,"name":"ElementaryTypeName","src":"2300:7:9"}],"id":223,"name":"VariableDeclaration","src":"2300:7:9"}],"id":224,"name":"ParameterList","src":"2255:53:9"},{"children":[{"attributes":{"functionReturnParameters":224},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple(string memory,uint256,uint256,bool,bool,bool,uint256)","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"getTokenInfo","referencedDeclaration":973,"type":"function (address) view external returns (string memory,uint256,uint256,bool,bool,bool,uint256)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract ITokenWhitelist","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":1011,"type":"type(contract ITokenWhitelist)","value":"ITokenWhitelist"},"id":225,"name":"Identifier","src":"2326:15:9"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[null],"referencedDeclaration":179,"type":"function (bytes32) view returns (address)","value":"_ensResolve"},"id":226,"name":"Identifier","src":"2342:11:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":188,"type":"bytes32","value":"_tokenWhitelistNode"},"id":227,"name":"Identifier","src":"2354:19:9"}],"id":228,"name":"FunctionCall","src":"2342:32:9"}],"id":229,"name":"FunctionCall","src":"2326:49:9"}],"id":230,"name":"MemberAccess","src":"2326:62:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":208,"type":"address","value":"_a"},"id":231,"name":"Identifier","src":"2389:2:9"}],"id":232,"name":"FunctionCall","src":"2326:66:9"}],"id":233,"name":"Return","src":"2319:73:9"}],"id":234,"name":"Block","src":"2309:90:9"}],"id":235,"name":"FunctionDefinition","src":"2198:201:9"},{"attributes":{"constant":true,"documentation":"@notice This returns all of the fields for our stablecoin token\n @return string of the token's symbol\n @return uint of the token's magnitude\n @return uint of the token's exchange rate to ETH\n @return bool whether the token is available\n @return bool whether the token is loadable to the TokenCard\n @return bool whether the token is burnable to the TKN Holder Contract\n @return uint of the lastUpdated time of the token's exchange rate","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_getStablecoinInfo","payable":false,"scope":360,"stateMutability":"view","superFunction":null,"visibility":"internal"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":236,"name":"ParameterList","src":"2924:2:9"},{"children":[{"attributes":{"constant":false,"name":"","scope":261,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":237,"name":"ElementaryTypeName","src":"2950:6:9"}],"id":238,"name":"VariableDeclaration","src":"2950:6:9"},{"attributes":{"constant":false,"name":"","scope":261,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":239,"name":"ElementaryTypeName","src":"2958:7:9"}],"id":240,"name":"VariableDeclaration","src":"2958:7:9"},{"attributes":{"constant":false,"name":"","scope":261,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":241,"name":"ElementaryTypeName","src":"2967:7:9"}],"id":242,"name":"VariableDeclaration","src":"2967:7:9"},{"attributes":{"constant":false,"name":"","scope":261,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":243,"name":"ElementaryTypeName","src":"2976:4:9"}],"id":244,"name":"VariableDeclaration","src":"2976:4:9"},{"attributes":{"constant":false,"name":"","scope":261,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":245,"name":"ElementaryTypeName","src":"2982:4:9"}],"id":246,"name":"VariableDeclaration","src":"2982:4:9"},{"attributes":{"constant":false,"name":"","scope":261,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":247,"name":"ElementaryTypeName","src":"2988:4:9"}],"id":248,"name":"VariableDeclaration","src":"2988:4:9"},{"attributes":{"constant":false,"name":"","scope":261,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":249,"name":"ElementaryTypeName","src":"2994:7:9"}],"id":250,"name":"VariableDeclaration","src":"2994:7:9"}],"id":251,"name":"ParameterList","src":"2949:53:9"},{"children":[{"attributes":{"functionReturnParameters":251},"children":[{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple(string memory,uint256,uint256,bool,bool,bool,uint256)","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"getStablecoinInfo","referencedDeclaration":990,"type":"function () view external returns (string memory,uint256,uint256,bool,bool,bool,uint256)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract ITokenWhitelist","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":1011,"type":"type(contract ITokenWhitelist)","value":"ITokenWhitelist"},"id":252,"name":"Identifier","src":"3020:15:9"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[null],"referencedDeclaration":179,"type":"function (bytes32) view returns (address)","value":"_ensResolve"},"id":253,"name":"Identifier","src":"3036:11:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":188,"type":"bytes32","value":"_tokenWhitelistNode"},"id":254,"name":"Identifier","src":"3048:19:9"}],"id":255,"name":"FunctionCall","src":"3036:32:9"}],"id":256,"name":"FunctionCall","src":"3020:49:9"}],"id":257,"name":"MemberAccess","src":"3020:67:9"}],"id":258,"name":"FunctionCall","src":"3020:69:9"}],"id":259,"name":"Return","src":"3013:76:9"}],"id":260,"name":"Block","src":"3003:93:9"}],"id":261,"name":"FunctionDefinition","src":"2897:199:9"},{"attributes":{"constant":true,"documentation":"@notice This returns an array of our whitelisted address\n @return address[] of our whitelisted tokens","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_tokenAddressArray","payable":false,"scope":360,"stateMutability":"view","superFunction":null,"visibility":"internal"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":262,"name":"ParameterList","src":"3246:2:9"},{"children":[{"attributes":{"constant":false,"name":"","scope":276,"stateVariable":false,"storageLocation":"default","type":"address[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"address[]"},"children":[{"attributes":{"name":"address","type":"address"},"id":263,"name":"ElementaryTypeName","src":"3272:7:9"}],"id":264,"name":"ArrayTypeName","src":"3272:9:9"}],"id":265,"name":"VariableDeclaration","src":"3272:9:9"}],"id":266,"name":"ParameterList","src":"3271:11:9"},{"children":[{"attributes":{"functionReturnParameters":266},"children":[{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address[] memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"tokenAddressArray","referencedDeclaration":996,"type":"function () view external returns (address[] memory)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract ITokenWhitelist","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":1011,"type":"type(contract ITokenWhitelist)","value":"ITokenWhitelist"},"id":267,"name":"Identifier","src":"3300:15:9"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[null],"referencedDeclaration":179,"type":"function (bytes32) view returns (address)","value":"_ensResolve"},"id":268,"name":"Identifier","src":"3316:11:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":188,"type":"bytes32","value":"_tokenWhitelistNode"},"id":269,"name":"Identifier","src":"3328:19:9"}],"id":270,"name":"FunctionCall","src":"3316:32:9"}],"id":271,"name":"FunctionCall","src":"3300:49:9"}],"id":272,"name":"MemberAccess","src":"3300:67:9"}],"id":273,"name":"FunctionCall","src":"3300:69:9"}],"id":274,"name":"Return","src":"3293:76:9"}],"id":275,"name":"Block","src":"3283:93:9"}],"id":276,"name":"FunctionDefinition","src":"3219:157:9"},{"attributes":{"constant":false,"documentation":"@notice Update ERC20 token exchange rate.\n @param _token ERC20 token contract address.\n @param _rate ERC20 token exchange rate in wei.\n @param _updateDate date for the token updates. This will be compared to when oracle updates are received.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_updateTokenRate","payable":false,"scope":360,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_token","scope":297,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":277,"name":"ElementaryTypeName","src":"3679:7:9"}],"id":278,"name":"VariableDeclaration","src":"3679:14:9"},{"attributes":{"constant":false,"name":"_rate","scope":297,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":279,"name":"ElementaryTypeName","src":"3695:4:9"}],"id":280,"name":"VariableDeclaration","src":"3695:10:9"},{"attributes":{"constant":false,"name":"_updateDate","scope":297,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":281,"name":"ElementaryTypeName","src":"3707:4:9"}],"id":282,"name":"VariableDeclaration","src":"3707:16:9"}],"id":283,"name":"ParameterList","src":"3678:46:9"},{"attributes":{"parameters":[null]},"children":[],"id":284,"name":"ParameterList","src":"3734:0:9"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"updateTokenRate","referencedDeclaration":1005,"type":"function (address,uint256,uint256) external"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract ITokenWhitelist","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":1011,"type":"type(contract ITokenWhitelist)","value":"ITokenWhitelist"},"id":285,"name":"Identifier","src":"3744:15:9"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[null],"referencedDeclaration":179,"type":"function (bytes32) view returns (address)","value":"_ensResolve"},"id":286,"name":"Identifier","src":"3760:11:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":188,"type":"bytes32","value":"_tokenWhitelistNode"},"id":287,"name":"Identifier","src":"3772:19:9"}],"id":288,"name":"FunctionCall","src":"3760:32:9"}],"id":289,"name":"FunctionCall","src":"3744:49:9"}],"id":290,"name":"MemberAccess","src":"3744:65:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":278,"type":"address","value":"_token"},"id":291,"name":"Identifier","src":"3810:6:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":280,"type":"uint256","value":"_rate"},"id":292,"name":"Identifier","src":"3818:5:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":282,"type":"uint256","value":"_updateDate"},"id":293,"name":"Identifier","src":"3825:11:9"}],"id":294,"name":"FunctionCall","src":"3744:93:9"}],"id":295,"name":"ExpressionStatement","src":"3744:93:9"}],"id":296,"name":"Block","src":"3734:110:9"}],"id":297,"name":"FunctionDefinition","src":"3653:191:9"},{"attributes":{"constant":true,"documentation":"@notice Checks whether a token is available\n @return bool available or not","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_isTokenAvailable","payable":false,"scope":360,"stateMutability":"view","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_a","scope":313,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":298,"name":"ElementaryTypeName","src":"3967:7:9"}],"id":299,"name":"VariableDeclaration","src":"3967:10:9"}],"id":300,"name":"ParameterList","src":"3966:12:9"},{"children":[{"attributes":{"constant":false,"name":"","scope":313,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":301,"name":"ElementaryTypeName","src":"4002:4:9"}],"id":302,"name":"VariableDeclaration","src":"4002:4:9"}],"id":303,"name":"ParameterList","src":"4001:6:9"},{"children":[{"attributes":{"assignments":[null,null,null,305,null,null,null]},"children":[{"attributes":{"constant":false,"name":"available","scope":313,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":304,"name":"ElementaryTypeName","src":"4026:4:9"}],"id":305,"name":"VariableDeclaration","src":"4026:14:9"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple(string memory,uint256,uint256,bool,bool,bool,uint256)","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":235,"type":"function (address) view returns (string memory,uint256,uint256,bool,bool,bool,uint256)","value":"_getTokenInfo"},"id":306,"name":"Identifier","src":"4050:13:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":299,"type":"address","value":"_a"},"id":307,"name":"Identifier","src":"4064:2:9"}],"id":308,"name":"FunctionCall","src":"4050:17:9"}],"id":309,"name":"VariableDeclarationStatement","src":"4018:49:9"},{"attributes":{"functionReturnParameters":303},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":305,"type":"bool","value":"available"},"id":310,"name":"Identifier","src":"4084:9:9"}],"id":311,"name":"Return","src":"4077:16:9"}],"id":312,"name":"Block","src":"4008:92:9"}],"id":313,"name":"FunctionDefinition","src":"3940:160:9"},{"attributes":{"constant":true,"documentation":"@notice Checks whether a token is burnable\n @return bool burnable or not","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_isTokenBurnable","payable":false,"scope":360,"stateMutability":"view","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_a","scope":329,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":314,"name":"ElementaryTypeName","src":"4220:7:9"}],"id":315,"name":"VariableDeclaration","src":"4220:10:9"}],"id":316,"name":"ParameterList","src":"4219:12:9"},{"children":[{"attributes":{"constant":false,"name":"","scope":329,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":317,"name":"ElementaryTypeName","src":"4255:4:9"}],"id":318,"name":"VariableDeclaration","src":"4255:4:9"}],"id":319,"name":"ParameterList","src":"4254:6:9"},{"children":[{"attributes":{"assignments":[null,null,null,null,null,321,null]},"children":[{"attributes":{"constant":false,"name":"burnable","scope":329,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":320,"name":"ElementaryTypeName","src":"4283:4:9"}],"id":321,"name":"VariableDeclaration","src":"4283:13:9"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple(string memory,uint256,uint256,bool,bool,bool,uint256)","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":235,"type":"function (address) view returns (string memory,uint256,uint256,bool,bool,bool,uint256)","value":"_getTokenInfo"},"id":322,"name":"Identifier","src":"4302:13:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":315,"type":"address","value":"_a"},"id":323,"name":"Identifier","src":"4316:2:9"}],"id":324,"name":"FunctionCall","src":"4302:17:9"}],"id":325,"name":"VariableDeclarationStatement","src":"4271:48:9"},{"attributes":{"functionReturnParameters":319},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":321,"type":"bool","value":"burnable"},"id":326,"name":"Identifier","src":"4336:8:9"}],"id":327,"name":"Return","src":"4329:15:9"}],"id":328,"name":"Block","src":"4261:90:9"}],"id":329,"name":"FunctionDefinition","src":"4194:157:9"},{"attributes":{"constant":true,"documentation":"@notice Checks whether a token is loadable\n @return bool loadable or not","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_isTokenLoadable","payable":false,"scope":360,"stateMutability":"view","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_a","scope":345,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":330,"name":"ElementaryTypeName","src":"4471:7:9"}],"id":331,"name":"VariableDeclaration","src":"4471:10:9"}],"id":332,"name":"ParameterList","src":"4470:12:9"},{"children":[{"attributes":{"constant":false,"name":"","scope":345,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":333,"name":"ElementaryTypeName","src":"4506:4:9"}],"id":334,"name":"VariableDeclaration","src":"4506:4:9"}],"id":335,"name":"ParameterList","src":"4505:6:9"},{"children":[{"attributes":{"assignments":[null,null,null,null,337,null,null]},"children":[{"attributes":{"constant":false,"name":"loadable","scope":345,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":336,"name":"ElementaryTypeName","src":"4532:4:9"}],"id":337,"name":"VariableDeclaration","src":"4532:13:9"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple(string memory,uint256,uint256,bool,bool,bool,uint256)","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":235,"type":"function (address) view returns (string memory,uint256,uint256,bool,bool,bool,uint256)","value":"_getTokenInfo"},"id":338,"name":"Identifier","src":"4553:13:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":331,"type":"address","value":"_a"},"id":339,"name":"Identifier","src":"4567:2:9"}],"id":340,"name":"FunctionCall","src":"4553:17:9"}],"id":341,"name":"VariableDeclarationStatement","src":"4522:48:9"},{"attributes":{"functionReturnParameters":335},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":337,"type":"bool","value":"loadable"},"id":342,"name":"Identifier","src":"4587:8:9"}],"id":343,"name":"Return","src":"4580:15:9"}],"id":344,"name":"Block","src":"4512:90:9"}],"id":345,"name":"FunctionDefinition","src":"4445:157:9"},{"attributes":{"constant":true,"documentation":"@notice This gets the address of the stablecoin\n @return the address of the stablecoin contract.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_stablecoin","payable":false,"scope":360,"stateMutability":"view","superFunction":null,"visibility":"internal"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":346,"name":"ParameterList","src":"4740:2:9"},{"children":[{"attributes":{"constant":false,"name":"","scope":359,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":347,"name":"ElementaryTypeName","src":"4766:7:9"}],"id":348,"name":"VariableDeclaration","src":"4766:7:9"}],"id":349,"name":"ParameterList","src":"4765:9:9"},{"children":[{"attributes":{"functionReturnParameters":349},"children":[{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"stablecoin","referencedDeclaration":1010,"type":"function () view external returns (address)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract ITokenWhitelist","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":1011,"type":"type(contract ITokenWhitelist)","value":"ITokenWhitelist"},"id":350,"name":"Identifier","src":"4792:15:9"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[null],"referencedDeclaration":179,"type":"function (bytes32) view returns (address)","value":"_ensResolve"},"id":351,"name":"Identifier","src":"4808:11:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":188,"type":"bytes32","value":"_tokenWhitelistNode"},"id":352,"name":"Identifier","src":"4820:19:9"}],"id":353,"name":"FunctionCall","src":"4808:32:9"}],"id":354,"name":"FunctionCall","src":"4792:49:9"}],"id":355,"name":"MemberAccess","src":"4792:60:9"}],"id":356,"name":"FunctionCall","src":"4792:62:9"}],"id":357,"name":"Return","src":"4785:69:9"}],"id":358,"name":"Block","src":"4775:86:9"}],"id":359,"name":"FunctionDefinition","src":"4720:141:9"}],"id":360,"name":"ContractDefinition","src":"968:3896:9"}],"id":361,"name":"SourceUnit","src":"778:4087:9"}},"mocks/tokenWhitelistableExporter.sol":{"AST":{"attributes":{"absolutePath":"mocks/tokenWhitelistableExporter.sol","exportedSymbols":{"TokenWhitelistableExporter":[129]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".25"]},"id":1,"name":"PragmaDirective","src":"0:24:10"},{"attributes":{"SourceUnit":361,"absolutePath":"internals/tokenWhitelistable.sol","file":"../internals/tokenWhitelistable.sol","scope":130,"symbolAliases":[null],"unitAlias":""},"id":2,"name":"ImportDirective","src":"26:45:10"},{"attributes":{"SourceUnit":181,"absolutePath":"internals/ensResolvable.sol","file":"../internals/ensResolvable.sol","scope":130,"symbolAliases":[null],"unitAlias":""},"id":3,"name":"ImportDirective","src":"72:40:10"},{"attributes":{"contractDependencies":[180,360],"contractKind":"contract","documentation":null,"fullyImplemented":true,"linearizedBaseContracts":[129,360,180],"name":"TokenWhitelistableExporter","scope":130},"children":[{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"ENSResolvable","referencedDeclaration":180,"type":"contract ENSResolvable"},"id":4,"name":"UserDefinedTypeName","src":"153:13:10"}],"id":5,"name":"InheritanceSpecifier","src":"153:13:10"},{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"TokenWhitelistable","referencedDeclaration":360,"type":"contract TokenWhitelistable"},"id":6,"name":"UserDefinedTypeName","src":"168:18:10"}],"id":7,"name":"InheritanceSpecifier","src":"168:18:10"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":true,"name":"","payable":false,"scope":129,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"_ens_","scope":21,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":8,"name":"ElementaryTypeName","src":"204:7:10"}],"id":9,"name":"VariableDeclaration","src":"204:13:10"},{"attributes":{"constant":false,"name":"_tokenWhitelistName_","scope":21,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":10,"name":"ElementaryTypeName","src":"219:7:10"}],"id":11,"name":"VariableDeclaration","src":"219:28:10"}],"id":12,"name":"ParameterList","src":"203:45:10"},{"attributes":{"parameters":[null]},"children":[],"id":19,"name":"ParameterList","src":"318:0:10"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":180,"type":"type(contract ENSResolvable)","value":"ENSResolvable"},"id":13,"name":"Identifier","src":"249:13:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9,"type":"address","value":"_ens_"},"id":14,"name":"Identifier","src":"263:5:10"}],"id":15,"name":"ModifierInvocation","src":"249:20:10"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":360,"type":"type(contract TokenWhitelistable)","value":"TokenWhitelistable"},"id":16,"name":"Identifier","src":"270:18:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11,"type":"bytes32","value":"_tokenWhitelistName_"},"id":17,"name":"Identifier","src":"289:20:10"}],"id":18,"name":"ModifierInvocation","src":"270:40:10"},{"attributes":{"statements":[null]},"children":[],"id":20,"name":"Block","src":"318:2:10"}],"id":21,"name":"FunctionDefinition","src":"192:128:10"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"getTokenInfo","payable":false,"scope":129,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_a","scope":45,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":22,"name":"ElementaryTypeName","src":"346:7:10"}],"id":23,"name":"VariableDeclaration","src":"346:10:10"}],"id":24,"name":"ParameterList","src":"345:12:10"},{"children":[{"attributes":{"constant":false,"name":"","scope":45,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":25,"name":"ElementaryTypeName","src":"381:6:10"}],"id":26,"name":"VariableDeclaration","src":"381:6:10"},{"attributes":{"constant":false,"name":"","scope":45,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":27,"name":"ElementaryTypeName","src":"389:7:10"}],"id":28,"name":"VariableDeclaration","src":"389:7:10"},{"attributes":{"constant":false,"name":"","scope":45,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":29,"name":"ElementaryTypeName","src":"398:7:10"}],"id":30,"name":"VariableDeclaration","src":"398:7:10"},{"attributes":{"constant":false,"name":"","scope":45,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":31,"name":"ElementaryTypeName","src":"407:4:10"}],"id":32,"name":"VariableDeclaration","src":"407:4:10"},{"attributes":{"constant":false,"name":"","scope":45,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":33,"name":"ElementaryTypeName","src":"413:4:10"}],"id":34,"name":"VariableDeclaration","src":"413:4:10"},{"attributes":{"constant":false,"name":"","scope":45,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":35,"name":"ElementaryTypeName","src":"419:4:10"}],"id":36,"name":"VariableDeclaration","src":"419:4:10"},{"attributes":{"constant":false,"name":"","scope":45,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":37,"name":"ElementaryTypeName","src":"425:7:10"}],"id":38,"name":"VariableDeclaration","src":"425:7:10"}],"id":39,"name":"ParameterList","src":"380:53:10"},{"children":[{"attributes":{"functionReturnParameters":39},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple(string memory,uint256,uint256,bool,bool,bool,uint256)","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":235,"type":"function (address) view returns (string memory,uint256,uint256,bool,bool,bool,uint256)","value":"_getTokenInfo"},"id":40,"name":"Identifier","src":"449:13:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":23,"type":"address","value":"_a"},"id":41,"name":"Identifier","src":"463:2:10"}],"id":42,"name":"FunctionCall","src":"449:17:10"}],"id":43,"name":"Return","src":"442:24:10"}],"id":44,"name":"Block","src":"434:37:10"}],"id":45,"name":"FunctionDefinition","src":"324:147:10"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"getStablecoinInfo","payable":false,"scope":129,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":46,"name":"ParameterList","src":"501:2:10"},{"children":[{"attributes":{"constant":false,"name":"","scope":66,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":47,"name":"ElementaryTypeName","src":"527:6:10"}],"id":48,"name":"VariableDeclaration","src":"527:6:10"},{"attributes":{"constant":false,"name":"","scope":66,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":49,"name":"ElementaryTypeName","src":"535:7:10"}],"id":50,"name":"VariableDeclaration","src":"535:7:10"},{"attributes":{"constant":false,"name":"","scope":66,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":51,"name":"ElementaryTypeName","src":"544:7:10"}],"id":52,"name":"VariableDeclaration","src":"544:7:10"},{"attributes":{"constant":false,"name":"","scope":66,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":53,"name":"ElementaryTypeName","src":"553:4:10"}],"id":54,"name":"VariableDeclaration","src":"553:4:10"},{"attributes":{"constant":false,"name":"","scope":66,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":55,"name":"ElementaryTypeName","src":"559:4:10"}],"id":56,"name":"VariableDeclaration","src":"559:4:10"},{"attributes":{"constant":false,"name":"","scope":66,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":57,"name":"ElementaryTypeName","src":"565:4:10"}],"id":58,"name":"VariableDeclaration","src":"565:4:10"},{"attributes":{"constant":false,"name":"","scope":66,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":59,"name":"ElementaryTypeName","src":"571:7:10"}],"id":60,"name":"VariableDeclaration","src":"571:7:10"}],"id":61,"name":"ParameterList","src":"526:53:10"},{"children":[{"attributes":{"functionReturnParameters":61},"children":[{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple(string memory,uint256,uint256,bool,bool,bool,uint256)","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"overloadedDeclarations":[null],"referencedDeclaration":261,"type":"function () view returns (string memory,uint256,uint256,bool,bool,bool,uint256)","value":"_getStablecoinInfo"},"id":62,"name":"Identifier","src":"595:18:10"}],"id":63,"name":"FunctionCall","src":"595:20:10"}],"id":64,"name":"Return","src":"588:27:10"}],"id":65,"name":"Block","src":"580:40:10"}],"id":66,"name":"FunctionDefinition","src":"475:145:10"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"tokenAddressArray","payable":false,"scope":129,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":67,"name":"ParameterList","src":"650:2:10"},{"children":[{"attributes":{"constant":false,"name":"","scope":76,"stateVariable":false,"storageLocation":"default","type":"address[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"address[]"},"children":[{"attributes":{"name":"address","type":"address"},"id":68,"name":"ElementaryTypeName","src":"676:7:10"}],"id":69,"name":"ArrayTypeName","src":"676:9:10"}],"id":70,"name":"VariableDeclaration","src":"676:9:10"}],"id":71,"name":"ParameterList","src":"675:11:10"},{"children":[{"attributes":{"functionReturnParameters":71},"children":[{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address[] memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"overloadedDeclarations":[null],"referencedDeclaration":276,"type":"function () view returns (address[] memory)","value":"_tokenAddressArray"},"id":72,"name":"Identifier","src":"702:18:10"}],"id":73,"name":"FunctionCall","src":"702:20:10"}],"id":74,"name":"Return","src":"695:27:10"}],"id":75,"name":"Block","src":"687:40:10"}],"id":76,"name":"FunctionDefinition","src":"624:103:10"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"updateTokenRate","payable":false,"scope":129,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_token","scope":92,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":77,"name":"ElementaryTypeName","src":"756:7:10"}],"id":78,"name":"VariableDeclaration","src":"756:14:10"},{"attributes":{"constant":false,"name":"_rate","scope":92,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":79,"name":"ElementaryTypeName","src":"772:4:10"}],"id":80,"name":"VariableDeclaration","src":"772:10:10"},{"attributes":{"constant":false,"name":"_updateDate","scope":92,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":81,"name":"ElementaryTypeName","src":"784:4:10"}],"id":82,"name":"VariableDeclaration","src":"784:16:10"}],"id":83,"name":"ParameterList","src":"755:46:10"},{"attributes":{"parameters":[null]},"children":[],"id":84,"name":"ParameterList","src":"811:0:10"},{"children":[{"attributes":{"functionReturnParameters":84},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":297,"type":"function (address,uint256,uint256)","value":"_updateTokenRate"},"id":85,"name":"Identifier","src":"826:16:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":78,"type":"address","value":"_token"},"id":86,"name":"Identifier","src":"843:6:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":80,"type":"uint256","value":"_rate"},"id":87,"name":"Identifier","src":"851:5:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":82,"type":"uint256","value":"_updateDate"},"id":88,"name":"Identifier","src":"858:11:10"}],"id":89,"name":"FunctionCall","src":"826:44:10"}],"id":90,"name":"Return","src":"819:51:10"}],"id":91,"name":"Block","src":"811:64:10"}],"id":92,"name":"FunctionDefinition","src":"731:144:10"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"isTokenLoadable","payable":false,"scope":129,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_a","scope":104,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":93,"name":"ElementaryTypeName","src":"904:7:10"}],"id":94,"name":"VariableDeclaration","src":"904:10:10"}],"id":95,"name":"ParameterList","src":"903:12:10"},{"children":[{"attributes":{"constant":false,"name":"","scope":104,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":96,"name":"ElementaryTypeName","src":"939:4:10"}],"id":97,"name":"VariableDeclaration","src":"939:4:10"}],"id":98,"name":"ParameterList","src":"938:6:10"},{"children":[{"attributes":{"functionReturnParameters":98},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":345,"type":"function (address) view returns (bool)","value":"_isTokenLoadable"},"id":99,"name":"Identifier","src":"960:16:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":94,"type":"address","value":"_a"},"id":100,"name":"Identifier","src":"977:2:10"}],"id":101,"name":"FunctionCall","src":"960:20:10"}],"id":102,"name":"Return","src":"953:27:10"}],"id":103,"name":"Block","src":"945:40:10"}],"id":104,"name":"FunctionDefinition","src":"879:106:10"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"isTokenAvailable","payable":false,"scope":129,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_a","scope":116,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":105,"name":"ElementaryTypeName","src":"1015:7:10"}],"id":106,"name":"VariableDeclaration","src":"1015:10:10"}],"id":107,"name":"ParameterList","src":"1014:12:10"},{"children":[{"attributes":{"constant":false,"name":"","scope":116,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":108,"name":"ElementaryTypeName","src":"1050:4:10"}],"id":109,"name":"VariableDeclaration","src":"1050:4:10"}],"id":110,"name":"ParameterList","src":"1049:6:10"},{"children":[{"attributes":{"functionReturnParameters":110},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":313,"type":"function (address) view returns (bool)","value":"_isTokenAvailable"},"id":111,"name":"Identifier","src":"1071:17:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":106,"type":"address","value":"_a"},"id":112,"name":"Identifier","src":"1089:2:10"}],"id":113,"name":"FunctionCall","src":"1071:21:10"}],"id":114,"name":"Return","src":"1064:28:10"}],"id":115,"name":"Block","src":"1056:41:10"}],"id":116,"name":"FunctionDefinition","src":"989:108:10"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"isTokenBurnable","payable":false,"scope":129,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_a","scope":128,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":117,"name":"ElementaryTypeName","src":"1126:7:10"}],"id":118,"name":"VariableDeclaration","src":"1126:10:10"}],"id":119,"name":"ParameterList","src":"1125:12:10"},{"children":[{"attributes":{"constant":false,"name":"","scope":128,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":120,"name":"ElementaryTypeName","src":"1161:4:10"}],"id":121,"name":"VariableDeclaration","src":"1161:4:10"}],"id":122,"name":"ParameterList","src":"1160:6:10"},{"children":[{"attributes":{"functionReturnParameters":122},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":329,"type":"function (address) view returns (bool)","value":"_isTokenBurnable"},"id":123,"name":"Identifier","src":"1182:16:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":118,"type":"address","value":"_a"},"id":124,"name":"Identifier","src":"1199:2:10"}],"id":125,"name":"FunctionCall","src":"1182:20:10"}],"id":126,"name":"Return","src":"1175:27:10"}],"id":127,"name":"Block","src":"1167:40:10"}],"id":128,"name":"FunctionDefinition","src":"1101:106:10"}],"id":129,"name":"ContractDefinition","src":"114:1096:10"}],"id":130,"name":"SourceUnit","src":"0:1211:10"}}},"version":"0.4.25+commit.59dbf8f1.Linux.g++"} \ No newline at end of file +{"contracts":{"externals/ERC20.sol:ERC20":{"bin":"","bin-runtime":"","srcmap":"","srcmap-runtime":""},"externals/SafeMath.sol:SafeMath":{"bin":"604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820564cf9c59188bb4d206d867a51ebdc48341c3b90a16491599b74ecfe95674b940029","bin-runtime":"73000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820564cf9c59188bb4d206d867a51ebdc48341c3b90a16491599b74ecfe95674b940029","srcmap":"1289:1531:1:-;;132:2:-1;166:7;155:9;146:7;137:37;252:7;246:14;243:1;238:23;232:4;229:33;270:1;265:20;;;;222:63;;265:20;274:9;222:63;;298:9;295:1;288:20;328:4;319:7;311:22;352:7;343;336:24","srcmap-runtime":"1289:1531:1:-;;;;;;;;"},"externals/ens/ENS.sol:ENS":{"bin":"","bin-runtime":"","srcmap":"","srcmap-runtime":""},"externals/ens/PublicResolver.sol:PublicResolver":{"bin":"608060405234801561001057600080fd5b50604051602080611400833981016040525160008054600160a060020a03909216600160a060020a03199092169190911790556113ae806100526000396000f3006080604052600436106100da5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166301ffc9a781146100df57806310f13a8c146101155780632203ab56146101b357806329cd62ea1461024d5780632dff69411461026b5780633b3b57de1461029557806359d1d43c146102c9578063623195b01461039c578063691f3431146103fc5780637737221314610414578063aa4cb54714610472578063c3d014d6146104d0578063c8690233146104eb578063d5fa2b001461051c578063e89401a114610540575b600080fd5b3480156100eb57600080fd5b50610101600160e060020a031960043516610558565b604080519115158252519081900360200190f35b34801561012157600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526101b195833595369560449491939091019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437509497506106f99650505050505050565b005b3480156101bf57600080fd5b506101ce60043560243561091f565b6040518083815260200180602001828103825283818151815260200191508051906020019080838360005b838110156102115781810151838201526020016101f9565b50505050905090810190601f16801561023e5780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b34801561025957600080fd5b506101b1600435602435604435610a2b565b34801561027757600080fd5b50610283600435610b2b565b60408051918252519081900360200190f35b3480156102a157600080fd5b506102ad600435610b41565b60408051600160a060020a039092168252519081900360200190f35b3480156102d557600080fd5b5060408051602060046024803582810135601f8101859004850286018501909652858552610327958335953695604494919390910191908190840183828082843750949750610b5c9650505050505050565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610361578181015183820152602001610349565b50505050905090810190601f16801561038e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103a857600080fd5b50604080516020600460443581810135601f81018490048402850184019095528484526101b1948235946024803595369594606494920191908190840183828082843750949750610c659650505050505050565b34801561040857600080fd5b50610327600435610d66565b34801561042057600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526101b1958335953695604494919390910191908190840183828082843750949750610e0a9650505050505050565b34801561047e57600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526101b1958335953695604494919390910191908190840183828082843750949750610f609650505050505050565b3480156104dc57600080fd5b506101b1600435602435611076565b3480156104f757600080fd5b50610503600435611157565b6040805192835260208301919091528051918290030190f35b34801561052857600080fd5b506101b1600435600160a060020a0360243516611174565b34801561054c57600080fd5b50610327600435611278565b6000600160e060020a031982167f3b3b57de0000000000000000000000000000000000000000000000000000000014806105bb5750600160e060020a031982167fd8389dc500000000000000000000000000000000000000000000000000000000145b806105ef5750600160e060020a031982167f691f343100000000000000000000000000000000000000000000000000000000145b806106235750600160e060020a031982167f2203ab5600000000000000000000000000000000000000000000000000000000145b806106575750600160e060020a031982167fc869023300000000000000000000000000000000000000000000000000000000145b8061068b5750600160e060020a031982167f59d1d43c00000000000000000000000000000000000000000000000000000000145b806106bf5750600160e060020a031982167fe89401a100000000000000000000000000000000000000000000000000000000145b806106f35750600160e060020a031982167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b600080546040805160e060020a6302571be302815260048101879052905186933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b15801561074c57600080fd5b505af1158015610760573d6000803e3d6000fd5b505050506040513d602081101561077657600080fd5b5051600160a060020a03161461078b57600080fd5b6000848152600160209081526040918290209151855185936005019287929182918401908083835b602083106107d25780518252601f1990920191602091820191016107b3565b51815160209384036101000a6000190180199092169116179052920194855250604051938490038101909320845161081395919491909101925090506112e7565b5083600019167fd8c9334b1a9c2f9da342a0a2b32629c1a229b6445dad78947f674b44444a75508485604051808060200180602001838103835285818151815260200191508051906020019080838360005b8381101561087d578181015183820152602001610865565b50505050905090810190601f1680156108aa5780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b838110156108dd5781810151838201526020016108c5565b50505050905090810190601f16801561090a5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a250505050565b60008281526001602081905260409091206060905b838311610a1e578284161580159061096d5750600083815260068201602052604081205460026000196101006001841615020190911604115b15610a1357600083815260068201602090815260409182902080548351601f600260001961010060018616150201909316929092049182018490048402810184019094528084529091830182828015610a075780601f106109dc57610100808354040283529160200191610a07565b820191906000526020600020905b8154815290600101906020018083116109ea57829003601f168201915b50505050509150610a23565b600290920291610934565b600092505b509250929050565b600080546040805160e060020a6302571be302815260048101879052905186933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b158015610a7e57600080fd5b505af1158015610a92573d6000803e3d6000fd5b505050506040513d6020811015610aa857600080fd5b5051600160a060020a031614610abd57600080fd5b604080518082018252848152602080820185815260008881526001835284902092516003840155516004909201919091558151858152908101849052815186927f1d6f5e03d3f63eb58751986629a5439baee5079ff04f345becb66e23eb154e46928290030190a250505050565b6000908152600160208190526040909120015490565b600090815260016020526040902054600160a060020a031690565b600082815260016020908152604091829020915183516060936005019285929182918401908083835b60208310610ba45780518252601f199092019160209182019101610b85565b518151600019602094850361010090810a820192831692199390931691909117909252949092019687526040805197889003820188208054601f6002600183161590980290950116959095049283018290048202880182019052818752929450925050830182828015610c585780601f10610c2d57610100808354040283529160200191610c58565b820191906000526020600020905b815481529060010190602001808311610c3b57829003601f168201915b5050505050905092915050565b600080546040805160e060020a6302571be302815260048101879052905186933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b158015610cb857600080fd5b505af1158015610ccc573d6000803e3d6000fd5b505050506040513d6020811015610ce257600080fd5b5051600160a060020a031614610cf757600080fd5b6000198301831615610d0857600080fd5b600084815260016020908152604080832086845260060182529091208351610d32928501906112e7565b50604051839085907faa121bbeef5f32f5961a2a28966e769023910fc9479059ee3495d4c1a696efe390600090a350505050565b6000818152600160208181526040928390206002908101805485516000199582161561010002959095011691909104601f81018390048302840183019094528383526060939091830182828015610dfe5780601f10610dd357610100808354040283529160200191610dfe565b820191906000526020600020905b815481529060010190602001808311610de157829003601f168201915b50505050509050919050565b600080546040805160e060020a6302571be302815260048101869052905185933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b158015610e5d57600080fd5b505af1158015610e71573d6000803e3d6000fd5b505050506040513d6020811015610e8757600080fd5b5051600160a060020a031614610e9c57600080fd5b60008381526001602090815260409091208351610ec1926002909201918501906112e7565b50604080516020808252845181830152845186937fb7d29e911041e8d9b843369e890bcb72c9388692ba48b65ac54e7214c4c348f79387939092839283019185019080838360005b83811015610f21578181015183820152602001610f09565b50505050905090810190601f168015610f4e5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505050565b600080546040805160e060020a6302571be302815260048101869052905185933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b158015610fb357600080fd5b505af1158015610fc7573d6000803e3d6000fd5b505050506040513d6020811015610fdd57600080fd5b5051600160a060020a031614610ff257600080fd5b60008381526001602090815260409091208351611017926007909201918501906112e7565b50604080516020808252845181830152845186937fc0b0fc07269fc2749adada3221c095a1d2187b2d075b51c915857b520f3a502193879390928392830191850190808383600083811015610f21578181015183820152602001610f09565b600080546040805160e060020a6302571be302815260048101869052905185933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b1580156110c957600080fd5b505af11580156110dd573d6000803e3d6000fd5b505050506040513d60208110156110f357600080fd5b5051600160a060020a03161461110857600080fd5b6000838152600160208181526040928390209091018490558151848152915185927f0424b6fe0d9c3bdbece0e7879dc241bb0c22e900be8b6c168b4ee08bd9bf83bc92908290030190a2505050565b600090815260016020526040902060038101546004909101549091565b600080546040805160e060020a6302571be302815260048101869052905185933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b1580156111c757600080fd5b505af11580156111db573d6000803e3d6000fd5b505050506040513d60208110156111f157600080fd5b5051600160a060020a03161461120657600080fd5b600083815260016020908152604091829020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386169081179091558251908152915185927f52d7d861f09ab3d26239d492e8968629f95e9e318cf0b73bfddc441522a15fd292908290030190a2505050565b60008181526001602081815260409283902060070180548451600260001995831615610100029590950190911693909304601f81018390048302840183019094528383526060939091830182828015610dfe5780601f10610dd357610100808354040283529160200191610dfe565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061132857805160ff1916838001178555611355565b82800160010185558215611355579182015b8281111561135557825182559160200191906001019061133a565b50611361929150611365565b5090565b61137f91905b80821115611361576000815560010161136b565b905600a165627a7a72305820bf76237672851602565e309e20eddff44fc668000bb45495e385fdd9e24f4e310029","bin-runtime":"6080604052600436106100da5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166301ffc9a781146100df57806310f13a8c146101155780632203ab56146101b357806329cd62ea1461024d5780632dff69411461026b5780633b3b57de1461029557806359d1d43c146102c9578063623195b01461039c578063691f3431146103fc5780637737221314610414578063aa4cb54714610472578063c3d014d6146104d0578063c8690233146104eb578063d5fa2b001461051c578063e89401a114610540575b600080fd5b3480156100eb57600080fd5b50610101600160e060020a031960043516610558565b604080519115158252519081900360200190f35b34801561012157600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526101b195833595369560449491939091019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437509497506106f99650505050505050565b005b3480156101bf57600080fd5b506101ce60043560243561091f565b6040518083815260200180602001828103825283818151815260200191508051906020019080838360005b838110156102115781810151838201526020016101f9565b50505050905090810190601f16801561023e5780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b34801561025957600080fd5b506101b1600435602435604435610a2b565b34801561027757600080fd5b50610283600435610b2b565b60408051918252519081900360200190f35b3480156102a157600080fd5b506102ad600435610b41565b60408051600160a060020a039092168252519081900360200190f35b3480156102d557600080fd5b5060408051602060046024803582810135601f8101859004850286018501909652858552610327958335953695604494919390910191908190840183828082843750949750610b5c9650505050505050565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610361578181015183820152602001610349565b50505050905090810190601f16801561038e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103a857600080fd5b50604080516020600460443581810135601f81018490048402850184019095528484526101b1948235946024803595369594606494920191908190840183828082843750949750610c659650505050505050565b34801561040857600080fd5b50610327600435610d66565b34801561042057600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526101b1958335953695604494919390910191908190840183828082843750949750610e0a9650505050505050565b34801561047e57600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526101b1958335953695604494919390910191908190840183828082843750949750610f609650505050505050565b3480156104dc57600080fd5b506101b1600435602435611076565b3480156104f757600080fd5b50610503600435611157565b6040805192835260208301919091528051918290030190f35b34801561052857600080fd5b506101b1600435600160a060020a0360243516611174565b34801561054c57600080fd5b50610327600435611278565b6000600160e060020a031982167f3b3b57de0000000000000000000000000000000000000000000000000000000014806105bb5750600160e060020a031982167fd8389dc500000000000000000000000000000000000000000000000000000000145b806105ef5750600160e060020a031982167f691f343100000000000000000000000000000000000000000000000000000000145b806106235750600160e060020a031982167f2203ab5600000000000000000000000000000000000000000000000000000000145b806106575750600160e060020a031982167fc869023300000000000000000000000000000000000000000000000000000000145b8061068b5750600160e060020a031982167f59d1d43c00000000000000000000000000000000000000000000000000000000145b806106bf5750600160e060020a031982167fe89401a100000000000000000000000000000000000000000000000000000000145b806106f35750600160e060020a031982167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b600080546040805160e060020a6302571be302815260048101879052905186933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b15801561074c57600080fd5b505af1158015610760573d6000803e3d6000fd5b505050506040513d602081101561077657600080fd5b5051600160a060020a03161461078b57600080fd5b6000848152600160209081526040918290209151855185936005019287929182918401908083835b602083106107d25780518252601f1990920191602091820191016107b3565b51815160209384036101000a6000190180199092169116179052920194855250604051938490038101909320845161081395919491909101925090506112e7565b5083600019167fd8c9334b1a9c2f9da342a0a2b32629c1a229b6445dad78947f674b44444a75508485604051808060200180602001838103835285818151815260200191508051906020019080838360005b8381101561087d578181015183820152602001610865565b50505050905090810190601f1680156108aa5780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b838110156108dd5781810151838201526020016108c5565b50505050905090810190601f16801561090a5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a250505050565b60008281526001602081905260409091206060905b838311610a1e578284161580159061096d5750600083815260068201602052604081205460026000196101006001841615020190911604115b15610a1357600083815260068201602090815260409182902080548351601f600260001961010060018616150201909316929092049182018490048402810184019094528084529091830182828015610a075780601f106109dc57610100808354040283529160200191610a07565b820191906000526020600020905b8154815290600101906020018083116109ea57829003601f168201915b50505050509150610a23565b600290920291610934565b600092505b509250929050565b600080546040805160e060020a6302571be302815260048101879052905186933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b158015610a7e57600080fd5b505af1158015610a92573d6000803e3d6000fd5b505050506040513d6020811015610aa857600080fd5b5051600160a060020a031614610abd57600080fd5b604080518082018252848152602080820185815260008881526001835284902092516003840155516004909201919091558151858152908101849052815186927f1d6f5e03d3f63eb58751986629a5439baee5079ff04f345becb66e23eb154e46928290030190a250505050565b6000908152600160208190526040909120015490565b600090815260016020526040902054600160a060020a031690565b600082815260016020908152604091829020915183516060936005019285929182918401908083835b60208310610ba45780518252601f199092019160209182019101610b85565b518151600019602094850361010090810a820192831692199390931691909117909252949092019687526040805197889003820188208054601f6002600183161590980290950116959095049283018290048202880182019052818752929450925050830182828015610c585780601f10610c2d57610100808354040283529160200191610c58565b820191906000526020600020905b815481529060010190602001808311610c3b57829003601f168201915b5050505050905092915050565b600080546040805160e060020a6302571be302815260048101879052905186933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b158015610cb857600080fd5b505af1158015610ccc573d6000803e3d6000fd5b505050506040513d6020811015610ce257600080fd5b5051600160a060020a031614610cf757600080fd5b6000198301831615610d0857600080fd5b600084815260016020908152604080832086845260060182529091208351610d32928501906112e7565b50604051839085907faa121bbeef5f32f5961a2a28966e769023910fc9479059ee3495d4c1a696efe390600090a350505050565b6000818152600160208181526040928390206002908101805485516000199582161561010002959095011691909104601f81018390048302840183019094528383526060939091830182828015610dfe5780601f10610dd357610100808354040283529160200191610dfe565b820191906000526020600020905b815481529060010190602001808311610de157829003601f168201915b50505050509050919050565b600080546040805160e060020a6302571be302815260048101869052905185933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b158015610e5d57600080fd5b505af1158015610e71573d6000803e3d6000fd5b505050506040513d6020811015610e8757600080fd5b5051600160a060020a031614610e9c57600080fd5b60008381526001602090815260409091208351610ec1926002909201918501906112e7565b50604080516020808252845181830152845186937fb7d29e911041e8d9b843369e890bcb72c9388692ba48b65ac54e7214c4c348f79387939092839283019185019080838360005b83811015610f21578181015183820152602001610f09565b50505050905090810190601f168015610f4e5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505050565b600080546040805160e060020a6302571be302815260048101869052905185933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b158015610fb357600080fd5b505af1158015610fc7573d6000803e3d6000fd5b505050506040513d6020811015610fdd57600080fd5b5051600160a060020a031614610ff257600080fd5b60008381526001602090815260409091208351611017926007909201918501906112e7565b50604080516020808252845181830152845186937fc0b0fc07269fc2749adada3221c095a1d2187b2d075b51c915857b520f3a502193879390928392830191850190808383600083811015610f21578181015183820152602001610f09565b600080546040805160e060020a6302571be302815260048101869052905185933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b1580156110c957600080fd5b505af11580156110dd573d6000803e3d6000fd5b505050506040513d60208110156110f357600080fd5b5051600160a060020a03161461110857600080fd5b6000838152600160208181526040928390209091018490558151848152915185927f0424b6fe0d9c3bdbece0e7879dc241bb0c22e900be8b6c168b4ee08bd9bf83bc92908290030190a2505050565b600090815260016020526040902060038101546004909101549091565b600080546040805160e060020a6302571be302815260048101869052905185933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b1580156111c757600080fd5b505af11580156111db573d6000803e3d6000fd5b505050506040513d60208110156111f157600080fd5b5051600160a060020a03161461120657600080fd5b600083815260016020908152604091829020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386169081179091558251908152915185927f52d7d861f09ab3d26239d492e8968629f95e9e318cf0b73bfddc441522a15fd292908290030190a2505050565b60008181526001602081815260409283902060070180548451600260001995831615610100029590950190911693909304601f81018390048302840183019094528383526060939091830182828015610dfe5780601f10610dd357610100808354040283529160200191610dfe565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061132857805160ff1916838001178555611355565b82800160010185558215611355579182015b8281111561135557825182559160200191906001019061133a565b50611361929150611365565b5090565b61137f91905b80821115611361576000815560010161136b565b905600a165627a7a72305820bf76237672851602565e309e20eddff44fc668000bb45495e385fdd9e24f4e310029","srcmap":"1553:8134:3:-;;;3005:62;8:9:-1;5:2;;;30:1;27;20:12;5:2;3005:62:3;;;;;;;;;;;;;3047:3;:13;;-1:-1:-1;;;;;3047:13:3;;;-1:-1:-1;;;;;;3047:13:3;;;;;;;;;1553:8134;;;;;;","srcmap-runtime":"1553:8134:3:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9238:447;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9238:447:3;-1:-1:-1;;;;;;9238:447:3;;;;;;;;;;;;;;;;;;;;;;;6084:171;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6084:171:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6084:171:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6084:171:3;;;;-1:-1:-1;6084:171:3;-1:-1:-1;6084:171:3;;-1:-1:-1;6084:171:3;;;;;;;;-1:-1:-1;6084:171:3;;-1:-1:-1;6084:171:3;;-1:-1:-1;;;;;;;6084:171:3;;;7296:451;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7296:451:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;7296:451:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5631:174;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5631:174:3;;;;;;;;;8351:106;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8351:106:3;;;;;;;;;;;;;;;;;;;;;8887:100;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8887:100:3;;;;;;;;;-1:-1:-1;;;;;8887:100:3;;;;;;;;;;;;;;6472:116;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6472:116:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6472:116:3;;-1:-1:-1;6472:116:3;;-1:-1:-1;;;;;;;6472:116:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;6472:116:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5057:297;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5057:297:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5057:297:3;;-1:-1:-1;5057:297:3;;-1:-1:-1;;;;;;;5057:297:3;7947:99;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7947:99:3;;;;;4607:148;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4607:148:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4607:148:3;;-1:-1:-1;4607:148:3;;-1:-1:-1;;;;;;;4607:148:3;4200:162;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4200:162:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4200:162:3;;-1:-1:-1;4200:162:3;;-1:-1:-1;;;;;;;4200:162:3;3813:158;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3813:158:3;;;;;;;6830:145;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6830:145:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;3293:149;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3293:149:3;;;-1:-1:-1;;;;;3293:149:3;;;;;8620:108;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8620:108:3;;;;;9238:447;9306:4;-1:-1:-1;;;;;;9329:32:3;;9344:17;9329:32;;:79;;-1:-1:-1;;;;;;;9373:35:3;;9388:20;9373:35;9329:79;:123;;;-1:-1:-1;;;;;;;9420:32:3;;9435:17;9420:32;9329:123;:166;;;-1:-1:-1;;;;;;;9464:31:3;;9479:16;9464:31;9329:166;:212;;;-1:-1:-1;;;;;;;9507:34:3;;9522:19;9507:34;9329:212;:256;;;-1:-1:-1;;;;;;;9553:32:3;;9568:17;9553:32;9329:256;:305;;;-1:-1:-1;;;;;;;9597:37:3;;9612:22;9597:37;9329:305;:349;;;-1:-1:-1;;;;;;;9646:32:3;;9661:17;9646:32;9329:349;9322:356;9238:447;-1:-1:-1;;9238:447:3:o;6084:171::-;2865:3;;;:15;;;-1:-1:-1;;;;;2865:15:3;;;;;;;;;;6159:4;;2884:10;;-1:-1:-1;;;;;2865:3:3;;:9;;:15;;;;;;;;;;;;;;;;:3;:15;;;5:2:-1;;;;30:1;27;20:12;5:2;2865:15:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2865:15:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2865:15:3;-1:-1:-1;;;;;2865:29:3;;2857:38;;;;;;6175:13;;;;:7;:13;;;;;;;;;:23;;;;6201:5;;6175:18;;;6194:3;;6175:23;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;6175:23:3;;;;;-1:-1:-1;6175:23:3;;;;;;;;;;;:31;;;;:23;;:31;;;;;-1:-1:-1;6175:31:3;-1:-1:-1;6175:31:3;:::i;:::-;;6233:4;6221:27;;;;6239:3;6244;6221:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;6221:27:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6221:27:3;;;;;;;;;;;;;;;;;;;;;;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;6221:27:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6084:171;;;;:::o;7296:451::-;7366:19;7433:13;;;:7;:13;;;;;;;;7387:10;;7456:260;7478:27;;;7456:260;;7545:26;;;7544:33;;;;:72;;-1:-1:-1;7615:1:3;7581:24;;;:11;;;:24;;;;;:31;;-1:-1:-1;;7581:31:3;;;;;;;;;;;:35;7544:72;7540:166;;;7643:24;;;;:11;;;:24;;;;;;;;;7636:31;;;;;;-1:-1:-1;;7636:31:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7643:24;;7636:31;;7643:24;7636:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7685:7;;7540:166;7507:17;;;;;7456:260;;;7739:1;7725:15;;7296:451;;;;;;;:::o;5631:174::-;2865:3;;;:15;;;-1:-1:-1;;;;;2865:15:3;;;;;;;;;;5704:4;;2884:10;;-1:-1:-1;;;;;2865:3:3;;:9;;:15;;;;;;;;;;;;;;;;:3;:15;;;5:2:-1;;;;30:1;27;20:12;5:2;2865:15:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2865:15:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2865:15:3;-1:-1:-1;;;;;2865:29:3;;2857:38;;;;;;5743:15;;;;;;;;;;;;;;;;;;-1:-1:-1;5720:13:3;;;:7;:13;;;;;:38;;:20;;;:38;;;;;;;;;;5773:25;;;;;;;;;;;;;5728:4;;5773:25;;;;;;;;5631:174;;;;:::o;8351:106::-;8403:7;8429:13;;;:7;:13;;;;;;;;:21;;;8351:106::o;8887:100::-;8936:7;8962:13;;;:7;:13;;;;;:18;-1:-1:-1;;;;;8962:18:3;;8887:100::o;6472:116::-;6558:13;;;;:7;:13;;;;;;;;;:23;;;;6533:6;;6558:18;;;6577:3;;6558:23;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;-1:-1;;263:2;259:12;;;254:3;250:22;;;246:30;;340:21;;;311:9;;295:26;;;;377:20;;;;365:33;;;6558:23:3;;;;;;;;;;;;;;;;;;6551:30;;;;274:1:-1;6551:30:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6558:23;;-1:-1:-1;6551:30:3;-1:-1:-1;;6551:30:3;;6558:23;6551:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6472:116;;;;:::o;5057:297::-;2865:3;;;:15;;;-1:-1:-1;;;;;2865:15:3;;;;;;;;;;5138:4;;2884:10;;-1:-1:-1;;;;;2865:3:3;;:9;;:15;;;;;;;;;;;;;;;;:3;:15;;;5:2:-1;;;;30:1;27;20:12;5:2;2865:15:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2865:15:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2865:15:3;-1:-1:-1;;;;;2865:29:3;;2857:38;;;;;;-1:-1:-1;;5209:15:3;;5208:31;;5207:38;5199:47;;;;;;5265:13;;;;:7;:13;;;;;;;;:31;;;:18;;:31;;;;;:38;;;;;;;;:::i;:::-;-1:-1:-1;5318:29:3;;5335:11;;5329:4;;5318:29;;;;;5057:297;;;;:::o;7947:99::-;8021:13;;;;:7;:13;;;;;;;;;:18;;;;8014:25;;;;-1:-1:-1;;8014:25:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7996:6;;8021:18;;8014:25;;8021:18;8014:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7947:99;;;:::o;4607:148::-;2865:3;;;:15;;;-1:-1:-1;;;;;2865:15:3;;;;;;;;;;4669:4;;2884:10;;-1:-1:-1;;;;;2865:3:3;;:9;;:15;;;;;;;;;;;;;;;;:3;:15;;;5:2:-1;;;;30:1;27;20:12;5:2;2865:15:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2865:15:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2865:15:3;-1:-1:-1;;;;;2865:29:3;;2857:38;;;;;;4685:13;;;;:7;:13;;;;;;;;:25;;;;:18;;;;;:25;;;;:::i;:::-;-1:-1:-1;4725:23:3;;;;;;;;;;;;;;;4737:4;;4725:23;;4743:4;;4725:23;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;4725:23:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4607:148;;;:::o;4200:162::-;2865:3;;;:15;;;-1:-1:-1;;;;;2865:15:3;;;;;;;;;;4266:4;;2884:10;;-1:-1:-1;;;;;2865:3:3;;:9;;:15;;;;;;;;;;;;;;;;:3;:15;;;5:2:-1;;;;30:1;27;20:12;5:2;2865:15:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2865:15:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2865:15:3;-1:-1:-1;;;;;2865:29:3;;2857:38;;;;;;4282:13;;;;:7;:13;;;;;;;;:30;;;;:23;;;;;:30;;;;:::i;:::-;-1:-1:-1;4327:28:3;;;;;;;;;;;;;;;4344:4;;4327:28;;4350:4;;4327:28;;;;;;;;;;;;;;33:3:-1;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;3813:158:3;2865:3;;;:15;;;-1:-1:-1;;;;;2865:15:3;;;;;;;;;;3879:4;;2884:10;;-1:-1:-1;;;;;2865:3:3;;:9;;:15;;;;;;;;;;;;;;;;:3;:15;;;5:2:-1;;;;30:1;27;20:12;5:2;2865:15:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2865:15:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2865:15:3;-1:-1:-1;;;;;2865:29:3;;2857:38;;;;;;3895:13;;;;:7;:13;;;;;;;;;:21;;;:28;;;3938:26;;;;;;;3903:4;;3938:26;;;;;;;;;3813:158;;;:::o;6830:145::-;6881:9;6921:13;;;:7;:13;;;;;:20;;;:22;6945;;;;;6921;;6830:145::o;3293:149::-;2865:3;;;:15;;;-1:-1:-1;;;;;2865:15:3;;;;;;;;;;3356:4;;2884:10;;-1:-1:-1;;;;;2865:3:3;;:9;;:15;;;;;;;;;;;;;;;;:3;:15;;;5:2:-1;;;;30:1;27;20:12;5:2;2865:15:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2865:15:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2865:15:3;-1:-1:-1;;;;;2865:29:3;;2857:38;;;;;;3372:13;;;;:7;:13;;;;;;;;;:25;;-1:-1:-1;;3372:25:3;-1:-1:-1;;;;;3372:25:3;;;;;;;;3412:23;;;;;;;3372:13;;3412:23;;;;;;;;;3293:149;;;:::o;8620:108::-;8698:13;;;;:7;:13;;;;;;;;;:23;;8691:30;;;;;-1:-1:-1;;8691:30:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8674:5;;8698:23;;8691:30;;8698:23;8691:30;;;;;;;;;;;;;;;;;;;;;;;;1553:8134;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1553:8134:3;;;-1:-1:-1;1553:8134:3;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o"},"externals/strings.sol:strings":{"bin":"604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a7230582024a2b0f9f886001e5fd3db71aa4fb1e8f4254fc3db05e9d54265f7c101091af20029","bin-runtime":"73000000000000000000000000000000000000000030146080604052600080fd00a165627a7a7230582024a2b0f9f886001e5fd3db71aa4fb1e8f4254fc3db05e9d54265f7c101091af20029","srcmap":"2600:23355:4:-;;132:2:-1;166:7;155:9;146:7;137:37;252:7;246:14;243:1;238:23;232:4;229:33;270:1;265:20;;;;222:63;;265:20;274:9;222:63;;298:9;295:1;288:20;328:4;319:7;311:22;352:7;343;336:24","srcmap-runtime":"2600:23355:4:-;;;;;;;;"},"internals/claimable.sol:Claimable":{"bin":"6080604052348015600f57600080fd5b50603580601d6000396000f3006080604052600080fd00a165627a7a72305820395b628221b28dc04b0498f55415adf15a37b484bd593b1cfd29b4eab19dc5300029","bin-runtime":"6080604052600080fd00a165627a7a72305820395b628221b28dc04b0498f55415adf15a37b484bd593b1cfd29b4eab19dc5300029","srcmap":"917:797:5:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;917:797:5;;;;;;;","srcmap-runtime":"917:797:5:-;;;;;"},"internals/controllable.sol:Controllable":{"bin":"","bin-runtime":"","srcmap":"","srcmap-runtime":""},"internals/controller.sol:Controller":{"bin":"608060405234801561001057600080fd5b5060405160408061128b83398101604052805160209091015160008054600160a060020a031916600160a060020a0384161760a060020a60ff02191674010000000000000000000000000000000000000000831515810291909117918290558391839160ff91041615156100bb5760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b6040805160008152600160a060020a038416602082015281517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea5929181900390910190a150505050611179806101126000396000f3006080604052600436106100c45763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166315b9a8b881146100c95780631785f53c146100f05780632121dc751461011357806324d7806c1461013c5780632b7832b31461015d5780637048027514610172578063715018a6146101935780638da5cb5b146101a8578063996cba68146101d9578063a7fc7a0714610203578063b242e53414610224578063b429afeb1461024a578063f6a74ed71461026b575b600080fd5b3480156100d557600080fd5b506100de61028c565b60408051918252519081900360200190f35b3480156100fc57600080fd5b50610111600160a060020a0360043516610292565b005b34801561011f57600080fd5b506101286102eb565b604080519115158252519081900360200190f35b34801561014857600080fd5b50610128600160a060020a036004351661030c565b34801561016957600080fd5b506100de61032a565b34801561017e57600080fd5b50610111600160a060020a0360043516610330565b34801561019f57600080fd5b50610111610386565b3480156101b457600080fd5b506101bd6104a1565b60408051600160a060020a039092168252519081900360200190f35b3480156101e557600080fd5b50610111600160a060020a03600435811690602435166044356104b0565b34801561020f57600080fd5b50610111600160a060020a036004351661050d565b34801561023057600080fd5b50610111600160a060020a03600435166024351515610575565b34801561025657600080fd5b50610128600160a060020a03600435166107b4565b34801561027757600080fd5b50610111600160a060020a03600435166107d2565b60045490565b61029b3361083a565b15156102df576040805160e560020a62461bcd028152602060048201526016602482015260008051602061112e833981519152604482015290519081900360640190fd5b6102e88161084e565b50565b60005474010000000000000000000000000000000000000000900460ff1690565b600160a060020a031660009081526001602052604090205460ff1690565b60025490565b6103393361083a565b151561037d576040805160e560020a62461bcd028152602060048201526016602482015260008051602061112e833981519152604482015290519081900360640190fd5b6102e881610929565b61038f3361083a565b15156103d3576040805160e560020a62461bcd028152602060048201526016602482015260008051602061112e833981519152604482015290519081900360640190fd5b60005474010000000000000000000000000000000000000000900460ff161515610447576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916815560408051828152602081019290925280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1565b600054600160a060020a031690565b6104b93361083a565b15156104fd576040805160e560020a62461bcd028152602060048201526016602482015260008051602061112e833981519152604482015290519081900360640190fd5b610508838383610bca565b505050565b6105163361030c565b151561056c576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e2061646d696e00000000000000000000604482015290519081900360640190fd5b6102e881610d89565b61057e3361083a565b15156105c2576040805160e560020a62461bcd028152602060048201526016602482015260008051602061112e833981519152604482015290519081900360640190fd5b60005474010000000000000000000000000000000000000000900460ff161515610636576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b600160a060020a03821615156106bc576040805160e560020a62461bcd02815260206004820152602360248201527f6f776e65722063616e6e6f742062652073657420746f207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6000805474ff00000000000000000000000000000000000000001916740100000000000000000000000000000000000000008315159081029190911790915561073c5760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b60005460408051600160a060020a039283168152918416602083015280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1506000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a031660009081526003602052604090205460ff1690565b6107db3361030c565b1515610831576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e2061646d696e00000000000000000000604482015290519081900360640190fd5b6102e88161102d565b600054600160a060020a0390811691161490565b600160a060020a03811660009081526001602052604090205460ff1615156108c0576040805160e560020a62461bcd02815260206004820181905260248201527f70726f7669646564206163636f756e74206973206e6f7420616e2061646d696e604482015290519081900360640190fd5b600160a060020a038116600081815260016020908152604091829020805460ff191690556002805460001901905581513381529081019290925280517f787a2e12f4a55b658b8f573c32432ee11a5e8b51677d1e1e937aaf6a0bb5776e9281900390910190a150565b600160a060020a03811660009081526001602052604090205460ff16156109bf576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320616c726561647920616e206160448201527f646d696e00000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a03811660009081526003602052604090205460ff1615610a56576040805160e560020a62461bcd02815260206004820152602860248201527f70726f7669646564206163636f756e7420697320616c7265616479206120636f60448201527f6e74726f6c6c6572000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b610a5f8161083a565b15610ada576040805160e560020a62461bcd02815260206004820152602560248201527f70726f7669646564206163636f756e7420697320616c7265616479207468652060448201527f6f776e6572000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0381161515610b5f576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260016020818152604092839020805460ff1916831790556002805490920190915581513381529081019290925280517fc58b647b8ba5a8cab2f11f32673636cc1061324240972ed05e8cc005b81a4b7a9281900390910190a150565b600160a060020a0382161515610c1657604051600160a060020a0384169082156108fc029083906000818181858888f19350505050158015610c10573d6000803e3d6000fd5b50610d3a565b81600160a060020a031663a9059cbb84836040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b158015610c9257600080fd5b505af1158015610ca6573d6000803e3d6000fd5b505050506040513d6020811015610cbc57600080fd5b50511515610d3a576040805160e560020a62461bcd02815260206004820152602560248201527f455243323020746f6b656e207472616e736665722077617320756e737563636560448201527f737366756c000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60408051600160a060020a0380861682528416602082015280820183905290517ff7a40077ff7a04c7e61f6f26fb13774259ddf1b6bce9ecf26a8276cdd39926839181900360600190a1505050565b600160a060020a03811660009081526001602052604090205460ff1615610e1f576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320616c726561647920616e206160448201527f646d696e00000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a03811660009081526003602052604090205460ff1615610eb6576040805160e560020a62461bcd02815260206004820152602860248201527f70726f7669646564206163636f756e7420697320616c7265616479206120636f60448201527f6e74726f6c6c6572000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b610ebf8161083a565b15610f3a576040805160e560020a62461bcd02815260206004820152602560248201527f70726f7669646564206163636f756e7420697320616c7265616479207468652060448201527f6f776e6572000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0381161515610fbf576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260036020908152604091829020805460ff1916600190811790915560048054909101905581513381529081019290925280517fb890d5abdcd5c2b61ce8bbc2cf6af9b6d7f7451830cbc85037cbdd182c86fe1d9281900390910190a150565b600160a060020a03811660009081526003602052604090205460ff1615156110c4576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e74206973206e6f74206120636f6e74726f60448201527f6c6c657200000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260036020908152604091829020805460ff191690556004805460001901905581513381529081019290925280517fb6a283aaede08e15ef55c74e3014e30eb0c0040d4b156cccb77391268ea373949281900390910190a150560073656e646572206973206e6f7420616e206f776e657200000000000000000000a165627a7a723058200e752e3a88decc3d8c5d0c377c032b4fe39f5eb66a5b9fe8ce60f184698d72480029","bin-runtime":"6080604052600436106100c45763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166315b9a8b881146100c95780631785f53c146100f05780632121dc751461011357806324d7806c1461013c5780632b7832b31461015d5780637048027514610172578063715018a6146101935780638da5cb5b146101a8578063996cba68146101d9578063a7fc7a0714610203578063b242e53414610224578063b429afeb1461024a578063f6a74ed71461026b575b600080fd5b3480156100d557600080fd5b506100de61028c565b60408051918252519081900360200190f35b3480156100fc57600080fd5b50610111600160a060020a0360043516610292565b005b34801561011f57600080fd5b506101286102eb565b604080519115158252519081900360200190f35b34801561014857600080fd5b50610128600160a060020a036004351661030c565b34801561016957600080fd5b506100de61032a565b34801561017e57600080fd5b50610111600160a060020a0360043516610330565b34801561019f57600080fd5b50610111610386565b3480156101b457600080fd5b506101bd6104a1565b60408051600160a060020a039092168252519081900360200190f35b3480156101e557600080fd5b50610111600160a060020a03600435811690602435166044356104b0565b34801561020f57600080fd5b50610111600160a060020a036004351661050d565b34801561023057600080fd5b50610111600160a060020a03600435166024351515610575565b34801561025657600080fd5b50610128600160a060020a03600435166107b4565b34801561027757600080fd5b50610111600160a060020a03600435166107d2565b60045490565b61029b3361083a565b15156102df576040805160e560020a62461bcd028152602060048201526016602482015260008051602061112e833981519152604482015290519081900360640190fd5b6102e88161084e565b50565b60005474010000000000000000000000000000000000000000900460ff1690565b600160a060020a031660009081526001602052604090205460ff1690565b60025490565b6103393361083a565b151561037d576040805160e560020a62461bcd028152602060048201526016602482015260008051602061112e833981519152604482015290519081900360640190fd5b6102e881610929565b61038f3361083a565b15156103d3576040805160e560020a62461bcd028152602060048201526016602482015260008051602061112e833981519152604482015290519081900360640190fd5b60005474010000000000000000000000000000000000000000900460ff161515610447576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916815560408051828152602081019290925280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1565b600054600160a060020a031690565b6104b93361083a565b15156104fd576040805160e560020a62461bcd028152602060048201526016602482015260008051602061112e833981519152604482015290519081900360640190fd5b610508838383610bca565b505050565b6105163361030c565b151561056c576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e2061646d696e00000000000000000000604482015290519081900360640190fd5b6102e881610d89565b61057e3361083a565b15156105c2576040805160e560020a62461bcd028152602060048201526016602482015260008051602061112e833981519152604482015290519081900360640190fd5b60005474010000000000000000000000000000000000000000900460ff161515610636576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b600160a060020a03821615156106bc576040805160e560020a62461bcd02815260206004820152602360248201527f6f776e65722063616e6e6f742062652073657420746f207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6000805474ff00000000000000000000000000000000000000001916740100000000000000000000000000000000000000008315159081029190911790915561073c5760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b60005460408051600160a060020a039283168152918416602083015280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1506000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a031660009081526003602052604090205460ff1690565b6107db3361030c565b1515610831576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e2061646d696e00000000000000000000604482015290519081900360640190fd5b6102e88161102d565b600054600160a060020a0390811691161490565b600160a060020a03811660009081526001602052604090205460ff1615156108c0576040805160e560020a62461bcd02815260206004820181905260248201527f70726f7669646564206163636f756e74206973206e6f7420616e2061646d696e604482015290519081900360640190fd5b600160a060020a038116600081815260016020908152604091829020805460ff191690556002805460001901905581513381529081019290925280517f787a2e12f4a55b658b8f573c32432ee11a5e8b51677d1e1e937aaf6a0bb5776e9281900390910190a150565b600160a060020a03811660009081526001602052604090205460ff16156109bf576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320616c726561647920616e206160448201527f646d696e00000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a03811660009081526003602052604090205460ff1615610a56576040805160e560020a62461bcd02815260206004820152602860248201527f70726f7669646564206163636f756e7420697320616c7265616479206120636f60448201527f6e74726f6c6c6572000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b610a5f8161083a565b15610ada576040805160e560020a62461bcd02815260206004820152602560248201527f70726f7669646564206163636f756e7420697320616c7265616479207468652060448201527f6f776e6572000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0381161515610b5f576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260016020818152604092839020805460ff1916831790556002805490920190915581513381529081019290925280517fc58b647b8ba5a8cab2f11f32673636cc1061324240972ed05e8cc005b81a4b7a9281900390910190a150565b600160a060020a0382161515610c1657604051600160a060020a0384169082156108fc029083906000818181858888f19350505050158015610c10573d6000803e3d6000fd5b50610d3a565b81600160a060020a031663a9059cbb84836040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b158015610c9257600080fd5b505af1158015610ca6573d6000803e3d6000fd5b505050506040513d6020811015610cbc57600080fd5b50511515610d3a576040805160e560020a62461bcd02815260206004820152602560248201527f455243323020746f6b656e207472616e736665722077617320756e737563636560448201527f737366756c000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60408051600160a060020a0380861682528416602082015280820183905290517ff7a40077ff7a04c7e61f6f26fb13774259ddf1b6bce9ecf26a8276cdd39926839181900360600190a1505050565b600160a060020a03811660009081526001602052604090205460ff1615610e1f576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320616c726561647920616e206160448201527f646d696e00000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a03811660009081526003602052604090205460ff1615610eb6576040805160e560020a62461bcd02815260206004820152602860248201527f70726f7669646564206163636f756e7420697320616c7265616479206120636f60448201527f6e74726f6c6c6572000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b610ebf8161083a565b15610f3a576040805160e560020a62461bcd02815260206004820152602560248201527f70726f7669646564206163636f756e7420697320616c7265616479207468652060448201527f6f776e6572000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0381161515610fbf576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260036020908152604091829020805460ff1916600190811790915560048054909101905581513381529081019290925280517fb890d5abdcd5c2b61ce8bbc2cf6af9b6d7f7451830cbc85037cbdd182c86fe1d9281900390910190a150565b600160a060020a03811660009081526003602052604090205460ff1615156110c4576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e74206973206e6f74206120636f6e74726f60448201527f6c6c657200000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260036020908152604091829020805460ff191690556004805460001901905581513381529081019290925280517fb6a283aaede08e15ef55c74e3014e30eb0c0040d4b156cccb77391268ea373949281900390910190a150560073656e646572206973206e6f7420616e206f776e657200000000000000000000a165627a7a723058200e752e3a88decc3d8c5d0c377c032b4fe39f5eb66a5b9fe8ce60f184698d72480029","srcmap":"1361:4838:7:-;;;2057:107;8:9:-1;5:2;;;30:1;27;20:12;5:2;2057:107:7;;;;;;;;;;;;;;;;;;;1527:6:9;:18;;-1:-1:-1;;;;;;1527:18:9;-1:-1:-1;;;;;1527:18:9;;;-1:-1:-1;;;;;;1555:32:9;;;;;;;;;;;;;;;2057:107:7;;;;1555:32:9;1671:15;;;1670:16;1666:78;;;1707:26;;;-1:-1:-1;;;;;1707:26:9;;;;;;;;;;;;;;;1666:78;1758:43;;;1787:1;1758:43;;-1:-1:-1;;;;;1758:43:9;;;;;;;;;;;;;;;;;;;1456:352;;2057:107:7;;1361:4838;;;;;;","srcmap-runtime":"1361:4838:7:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3671:96;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3671:96:7;;;;;;;;;;;;;;;;;;;;2851:97;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2851:97:7;-1:-1:-1;;;;;2851:97:7;;;;;;;3149:94:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3149:94:9;;;;;;;;;;;;;;;;;;;;;;3871:104:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3871:104:7;-1:-1:-1;;;;;3871:104:7;;;;;3000:86;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3000:86:7;;;;2631:91;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2631:91:7;-1:-1:-1;;;;;2631:91:7;;;;;3519:306:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3519:306:9;;;;3908:77;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3908:77:9;;;;;;;;-1:-1:-1;;;;;3908:77:9;;;;;;;;;;;;;;6075:122:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6075:122:7;-1:-1:-1;;;;;6075:122:7;;;;;;;;;;;;3224:101;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3224:101:7;-1:-1:-1;;;;;3224:101:7;;;;;2231:801:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2231:801:9;-1:-1:-1;;;;;2231:801:9;;;;;;;;;4087:114:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4087:114:7;-1:-1:-1;;;;;4087:114:7;;;;;3469:107;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3469:107:7;-1:-1:-1;;;;;3469:107:7;;;;;3671:96;3744:16;;3671:96;:::o;2851:97::-;1924:20:9;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:9;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1916:55:9;;;;;;;;;;;;;;;2919:22:7;2932:8;2919:12;:22::i;:::-;2851:97;:::o;3149:94:9:-;3198:4;3221:15;;;;;;;3149:94::o;3871:104:7:-;-1:-1:-1;;;;;3950:18:7;3927:4;3950:18;;;:8;:18;;;;;;;;;3871:104::o;3000:86::-;3068:11;;3000:86;:::o;2631:91::-;1924:20:9;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:9;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1916:55:9;;;;;;;;;;;;;;;2696:19:7;2706:8;2696:9;:19::i;3519:306:9:-;1924:20;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:9;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1916:55:9;;;;;;;;;;;;;;;3640:15;;;;;;;3632:57;;;;;;;-1:-1:-1;;;;;3632:57:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;3760:1;3743:19;;-1:-1:-1;;3743:19:9;;;3778:40;;;;;;;;;;;;;;;;;;;;;;;;;3519:306::o;3908:77::-;3946:7;3972:6;-1:-1:-1;;;;;3972:6:9;3908:77;:::o;6075:122:7:-;1924:20:9;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:9;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1916:55:9;;;;;;;;;;;;;;;6162:28:7;6169:3;6174:6;6182:7;6162:6;:28::i;:::-;6075:122;;;:::o;3224:101::-;2263:19;2271:10;2263:7;:19::i;:::-;2255:54;;;;;;;-1:-1:-1;;;;;2255:54:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;3294:24;3309:8;3294:14;:24::i;2231:801:9:-;1924:20;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:9;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1916:55:9;;;;;;;;;;;;;;;2388:15;;;;;;;2380:57;;;;;;;-1:-1:-1;;;;;2380:57:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2518:22:9;;;;2510:70;;;;;-1:-1:-1;;;;;2510:70:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2665:15;:31;;-1:-1:-1;;2665:31:9;;;;;;;;;;;;;;;2775:75;;2814:25;;;-1:-1:-1;;;;;2814:25:9;;;;;;;;;;;;;;;2775:75;2931:6;;2910:38;;;-1:-1:-1;;;;;2931:6:9;;;2910:38;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3008:6:9;:17;;-1:-1:-1;;3008:17:9;-1:-1:-1;;;;;3008:17:9;;;;;;;;;;2231:801::o;4087:114:7:-;-1:-1:-1;;;;;4171:23:7;4148:4;4171:23;;;:13;:23;;;;;;;;;4087:114::o;3469:107::-;2263:19;2271:10;2263:7;:19::i;:::-;2255:54;;;;;;;-1:-1:-1;;;;;2255:54:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;3542:27;3560:8;3542:17;:27::i;4091:107:9:-;4150:4;4185:6;-1:-1:-1;;;;;4185:6:9;;;4173:18;;;;4091:107::o;4828:236:7:-;-1:-1:-1;;;;;4894:18:7;;;;;;:8;:18;;;;;;;;4886:63;;;;;;;-1:-1:-1;;;;;4886:63:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4959:18:7;;4980:5;4959:18;;;:8;:18;;;;;;;;;:26;;-1:-1:-1;;4959:26:7;;;4995:11;:13;;-1:-1:-1;;4995:13:7;;;5023:34;;5036:10;5023:34;;;;;;;;;;;;;;;;;;;;;4828:236;:::o;4269:482::-;-1:-1:-1;;;;;4333:18:7;;;;;;:8;:18;;;;;;;;4332:19;4324:68;;;;;-1:-1:-1;;;;;4324:68:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4411:23:7;;;;;;:13;:23;;;;;;;;4410:24;4402:77;;;;;-1:-1:-1;;;;;4402:77:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4498:18;4507:8;4498;:18::i;:::-;4497:19;4489:69;;;;;-1:-1:-1;;;;;4489:69:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4576:22:7;;;;4568:71;;;;;-1:-1:-1;;;;;4568:71:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4649:18:7;;;;;;4670:4;4649:18;;;;;;;;;:25;;-1:-1:-1;;4649:25:7;;;;;4684:11;:13;;;;;;;;4712:32;;4723:10;4712:32;;;;;;;;;;;;;;;;;;;;;4269:482;:::o;1350:362:5:-;-1:-1:-1;;;;;1476:20:5;;;1472:189;;;1512:21;;-1:-1:-1;;;;;1512:12:5;;;:21;;;;;1525:7;;1512:21;;;;1525:7;1512:12;:21;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1512:21:5;1472:189;;;1578:6;-1:-1:-1;;;;;1572:22:5;;1595:3;1600:7;1572:36;;;;;;;;;;;;;-1:-1:-1;;;;;1572:36:5;-1:-1:-1;;;;;1572:36:5;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1572:36:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1572:36:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1572:36:5;1564:86;;;;;;;-1:-1:-1;;;;;1564:86:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1676:29;;;-1:-1:-1;;;;;1676:29:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;1350:362;;;:::o;5137:502:7:-;-1:-1:-1;;;;;5206:18:7;;;;;;:8;:18;;;;;;;;5205:19;5197:68;;;;;-1:-1:-1;;;;;5197:68:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5284:23:7;;;;;;:13;:23;;;;;;;;5283:24;5275:77;;;;;-1:-1:-1;;;;;5275:77:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5371:18;5380:8;5371;:18::i;:::-;5370:19;5362:69;;;;;-1:-1:-1;;;;;5362:69:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5449:22:7;;;;5441:71;;;;;-1:-1:-1;;;;;5441:71:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5522:23:7;;;;;;:13;:23;;;;;;;;;:30;;-1:-1:-1;;5522:30:7;5548:4;5522:30;;;;;;5562:16;:18;;;;;;;5595:37;;5611:10;5595:37;;;;;;;;;;;;;;;;;;;;;5137:502;:::o;5721:265::-;-1:-1:-1;;;;;5792:23:7;;;;;;:13;:23;;;;;;;;5784:72;;;;;;;-1:-1:-1;;;;;5784:72:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5866:23:7;;5892:5;5866:23;;;:13;:23;;;;;;;;;:31;;-1:-1:-1;;5866:31:7;;;5907:16;:18;;-1:-1:-1;;5907:18:7;;;5940:39;;5958:10;5940:39;;;;;;;;;;;;;;;;;;;;;5721:265;:::o"},"internals/controller.sol:IController":{"bin":"","bin-runtime":"","srcmap":"","srcmap-runtime":""},"internals/ensResolvable.sol:ENSResolvable":{"bin":"","bin-runtime":"","srcmap":"","srcmap-runtime":""},"internals/ownable.sol:Ownable":{"bin":"","bin-runtime":"","srcmap":"","srcmap-runtime":""},"internals/tokenWhitelist.sol:ITokenWhitelist":{"bin":"","bin-runtime":"","srcmap":"","srcmap-runtime":""},"internals/tokenWhitelist.sol:TokenWhitelist":{"bin":"608060405234801561001057600080fd5b5060405160c080611ab283398101604090815281516020830151918301516060840151608085015160a09095015160018054600160a060020a03808716600160a060020a03199283161792839055600080548316938216939093179092556002859055600380548915157401000000000000000000000000000000000000000090810260a060020a60ff0219958816929094169190911793909316919091179081905594969394929392849184910460ff1615156101055760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b6040805160008152600160a060020a038416602082015281517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea5929181900390910190a15050600794909455505060068054600160a060020a031916600160a060020a03909316929092179091555061192d9050806101856000396000f3006080604052600436106100c15763ffffffff60e060020a6000350416631f69565f81146100c65780632121dc751461019157806334c73edc146101ba5780633efec5e91461020f578063443dd2a4146102245780636c3824ef14610289578063715018a6146102a95780637d73b231146102be57806380cc0dda146102ef5780638da5cb5b14610316578063996cba681461032b578063b242e53414610355578063d545782e1461037b578063e2b4ce97146103a2578063e9cbd822146103b7575b600080fd5b3480156100d257600080fd5b506100e7600160a060020a03600435166103cc565b6040805160208082018990529181018790528515156060820152841515608082015283151560a082015260c0810183905260e08082528951908201528851909182916101008301918b019080838360005b83811015610150578181015183820152602001610138565b50505050905090810190601f16801561017d5780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b34801561019d57600080fd5b506101a66104c8565b604080519115158252519081900360200190f35b3480156101c657600080fd5b5061020d602460048035828101929082013591813580830192908201359160443580830192908201359160643580830192908201359160843591820191013560a4356104ea565b005b34801561021b57600080fd5b506100e7610981565b34801561023057600080fd5b50610239610a7d565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561027557818101518382015260200161025d565b505050509050019250505060405180910390f35b34801561029557600080fd5b5061020d6004803560248101910135610adf565b3480156102b557600080fd5b5061020d610d7e565b3480156102ca57600080fd5b506102d3610eab565b60408051600160a060020a039092168252519081900360200190f35b3480156102fb57600080fd5b50610304610eba565b60408051918252519081900360200190f35b34801561032257600080fd5b506102d3610ec0565b34801561033757600080fd5b5061020d600160a060020a0360043581169060243516604435610ecf565b34801561036157600080fd5b5061020d600160a060020a03600435166024351515610f3e565b34801561038757600080fd5b5061020d600160a060020a036004351660243560443561118f565b3480156103ae57600080fd5b506103046112f1565b3480156103c357600080fd5b506102d36112f7565b600160a060020a0381166000908152600460208181526040808420600180820154600280840154600385015497850154855487516101009682161587026000190190911693909304601f81018990048902840189019097528683526060999889988998899889988998919788979296929560ff80821696938204811695620100009092041693928991908301828280156104a75780601f1061047c576101008083540402835291602001916104a7565b820191906000526020600020905b81548152906001019060200180831161048a57829003601f168201915b50505050509650975097509750975097509750975050919395979092949650565b60035474010000000000000000000000000000000000000000900460ff165b90565b600060606104f733611306565b151561054d576040805160e560020a62461bcd02815260206004820152601a60248201527f73656e646572206973206e6f74206120636f6e74726f6c6c6572000000000000604482015290519081900360640190fd5b8b8a14801561055b57508b88145b801561056657508b86145b801561057157508b86145b15156105c7576040805160e560020a62461bcd02815260206004820152601e60248201527f706172616d65746572206c656e6774687320646f206e6f74206d617463680000604482015290519081900360640190fd5b600091505b8b82101561097257600460008e8e858181106105e457fe5b60209081029290920135600160a060020a03168352508101919091526040016000206003015460ff1615610662576040805160e560020a62461bcd02815260206004820152601760248201527f746f6b656e20616c726561647920617661696c61626c65000000000000000000604482015290519081900360640190fd5b6106886106838c8c8581811061067457fe5b6020029190910135905061139f565b6113cb565b905060e0604051908101604052808281526020018a8a8581811015156106aa57fe5b9050602002013581526020016000815260200160011515815260200188888581811015156106d457fe5b602090810292909201351515835250018686858181106106f057fe5b60209081029290920135151583525001849052600460008f8f8681811061071357fe5b90506020020135600160a060020a0316600160a060020a0316600160a060020a03168152602001908152602001600020600082015181600001908051906020019061075f9291906117e7565b5060208201516001820155604082015160028201556060820151600382018054608085015160a08601511515620100000262ff0000199115156101000261ff001995151560ff199094169390931794909416919091171691909117905560c09091015160049091015560058d8d848181106107d657fe5b8354600181018555600094855260209485902001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0395909202939093013593909316929092179055507f1802e89da3f6ef84e024e37454c226b1e13bf846ce71cd2a1d24faef9cbf779b338e8e8581811061084d57fe5b90506020020135600160a060020a0316838c8c87818110151561086c57fe5b905060200201358b8b88818110151561088157fe5b9050602002013515158a8a89818110151561089857fe5b9050602002013515156040518087600160a060020a0316600160a060020a0316815260200186600160a060020a0316600160a060020a03168152602001806020018581526020018415151515815260200183151515158152602001828103825286818151815260200191508051906020019080838360005b83811015610928578181015183820152602001610910565b50505050905090810190601f1680156109555780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390a16001909101906105cc565b50505050505050505050505050565b600654600160a060020a03166000908152600460208181526040808420600180820154600280840154600385015497850154855487516101009682161587026000190190911693909304601f81018990048902840189019097528683526060999889988998899889988998919788979296929560ff8082169693820481169562010000909204169392899190830182828015610a5e5780601f10610a3357610100808354040283529160200191610a5e565b820191906000526020600020905b815481529060010190602001808311610a4157829003601f168201915b5050505050965097509750975097509750975097505090919293949596565b60606005805480602002602001604051908101604052809291908181526020018280548015610ad557602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610ab7575b5050505050905090565b6000806000610aed33611306565b1515610b43576040805160e560020a62461bcd02815260206004820152601a60248201527f73656e646572206973206e6f74206120636f6e74726f6c6c6572000000000000604482015290519081900360640190fd5b600092505b83831015610d775760046000868686818110610b6057fe5b60209081029290920135600160a060020a03168352508101919091526040016000206003015460ff161515610bdf576040805160e560020a62461bcd02815260206004820152601660248201527f746f6b656e206973206e6f7420617661696c61626c6500000000000000000000604482015290519081900360640190fd5b848484818110610beb57fe5b60209081029290920135600160a060020a03166000818152600490935260408320909450919050610c1c8282611865565b506000600182018190556002820181905560038201805462ffffff19169055600490910181905590505b600554610c5a90600163ffffffff61142516565b811015610d155781600160a060020a0316600582815481101515610c7a57fe5b600091825260209091200154600160a060020a03161415610d0d5760058054610caa90600163ffffffff61142516565b81548110610cb457fe5b60009182526020909120015460058054600160a060020a039092169183908110610cda57fe5b9060005260206000200160006101000a815481600160a060020a030219169083600160a060020a03160217905550610d15565b600101610c46565b6005805490610d289060001983016118ac565b5060408051338152600160a060020a038416602082015281517f703f7e3f084d5b8dcc12fddcfd9a70d65b6b21ec7659e4608dbaf4419ede3ad0929181900390910190a1600190920191610b48565b5050505050565b610d873361143c565b1515610ddd576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e206f776e657200000000000000000000604482015290519081900360640190fd5b60035474010000000000000000000000000000000000000000900460ff161515610e51576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b6003805473ffffffffffffffffffffffffffffffffffffffff19169055604080516000808252602082015281517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea5929181900390910190a1565b600154600160a060020a031690565b60075490565b600354600160a060020a031690565b610ed83361143c565b1515610f2e576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e206f776e657200000000000000000000604482015290519081900360640190fd5b610f39838383611450565b505050565b610f473361143c565b1515610f9d576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e206f776e657200000000000000000000604482015290519081900360640190fd5b60035474010000000000000000000000000000000000000000900460ff161515611011576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b600160a060020a0382161515611097576040805160e560020a62461bcd02815260206004820152602360248201527f6f776e65722063616e6e6f742062652073657420746f207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6003805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000831515908102919091179091556111175760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b60035460408051600160a060020a039283168152918416602083015280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1506003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600061119c6007546115f6565b90506111a733611306565b806111ba575033600160a060020a038216145b1515611210576040805160e560020a62461bcd02815260206004820152601b60248201527f656974686572206f7261636c65206f7220636f6e74726f6c6c65720000000000604482015290519081900360640190fd5b600160a060020a03841660009081526004602052604090206003015460ff161515611285576040805160e560020a62461bcd02815260206004820152601660248201527f746f6b656e206973206e6f7420617661696c61626c6500000000000000000000604482015290519081900360640190fd5b600160a060020a03841660008181526004602081815260409283902060028101889055909101859055815133815290810192909252818101859052517fdb3a4cfb4cd8ac94343ff7440cee8d05ade309056203f0e53ca49b6db8197c7d9181900360600190a150505050565b60025490565b600654600160a060020a031690565b60006113136002546115f6565b600160a060020a031663b429afeb836040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b15801561136d57600080fd5b505af1158015611381573d6000803e3d6000fd5b505050506040513d602081101561139757600080fd5b505192915050565b6113a76118d0565b60405160208101604052828152806020830152506113c4826116ed565b8152919050565b606080600083600001516040519080825280601f01601f191660200182016040528015611402578160200160208202803883390190505b50915060208201905061141e81856020015186600001516117a3565b5092915050565b6000808383111561143557600080fd5b5050900390565b600354600160a060020a0390811691161490565b600160a060020a038216151561149c57604051600160a060020a0384169082156108fc029083906000818181858888f19350505050158015611496573d6000803e3d6000fd5b506115a7565b81600160a060020a031663a9059cbb84836040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b1580156114ff57600080fd5b505af1158015611513573d6000803e3d6000fd5b505050506040513d602081101561152957600080fd5b505115156115a7576040805160e560020a62461bcd02815260206004820152602560248201527f455243323020746f6b656e207472616e736665722077617320756e737563636560448201527f737366756c000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60408051600160a060020a0380861682528416602082015280820183905290517ff7a40077ff7a04c7e61f6f26fb13774259ddf1b6bce9ecf26a8276cdd39926839181900360600190a1505050565b60008054604080517f0178b8bf000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691630178b8bf9160248082019260209290919082900301818787803b15801561165d57600080fd5b505af1158015611671573d6000803e3d6000fd5b505050506040513d602081101561168757600080fd5b5051604080517f3b3b57de000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691633b3b57de916024808201926020929091908290030181600087803b15801561136d57600080fd5b600080821515611700576000915061179d565b6fffffffffffffffffffffffffffffffff8316151561173357601001700100000000000000000000000000000000830492505b67ffffffffffffffff831615156117565760080168010000000000000000830492505b63ffffffff8316151561177157600401640100000000830492505b61ffff831615156117885760020162010000830492505b60ff83161515611796576001015b8060200391505b50919050565b60005b602082106117c8578251845260209384019390920191601f19909101906117a6565b50905182516020929092036101000a6000190180199091169116179052565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061182857805160ff1916838001178555611855565b82800160010185558215611855579182015b8281111561185557825182559160200191906001019061183a565b506118619291506118e7565b5090565b50805460018160011615610100020316600290046000825580601f1061188b57506118a9565b601f0160209004906000526020600020908101906118a991906118e7565b50565b815481835581811115610f3957600083815260209020610f399181019083016118e7565b604080518082019091526000808252602082015290565b6104e791905b8082111561186157600081556001016118ed5600a165627a7a723058208c4be71ac085882be552fd06a3c105b468b8d2bbdf25c86681a98320fb418c500029","bin-runtime":"6080604052600436106100c15763ffffffff60e060020a6000350416631f69565f81146100c65780632121dc751461019157806334c73edc146101ba5780633efec5e91461020f578063443dd2a4146102245780636c3824ef14610289578063715018a6146102a95780637d73b231146102be57806380cc0dda146102ef5780638da5cb5b14610316578063996cba681461032b578063b242e53414610355578063d545782e1461037b578063e2b4ce97146103a2578063e9cbd822146103b7575b600080fd5b3480156100d257600080fd5b506100e7600160a060020a03600435166103cc565b6040805160208082018990529181018790528515156060820152841515608082015283151560a082015260c0810183905260e08082528951908201528851909182916101008301918b019080838360005b83811015610150578181015183820152602001610138565b50505050905090810190601f16801561017d5780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b34801561019d57600080fd5b506101a66104c8565b604080519115158252519081900360200190f35b3480156101c657600080fd5b5061020d602460048035828101929082013591813580830192908201359160443580830192908201359160643580830192908201359160843591820191013560a4356104ea565b005b34801561021b57600080fd5b506100e7610981565b34801561023057600080fd5b50610239610a7d565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561027557818101518382015260200161025d565b505050509050019250505060405180910390f35b34801561029557600080fd5b5061020d6004803560248101910135610adf565b3480156102b557600080fd5b5061020d610d7e565b3480156102ca57600080fd5b506102d3610eab565b60408051600160a060020a039092168252519081900360200190f35b3480156102fb57600080fd5b50610304610eba565b60408051918252519081900360200190f35b34801561032257600080fd5b506102d3610ec0565b34801561033757600080fd5b5061020d600160a060020a0360043581169060243516604435610ecf565b34801561036157600080fd5b5061020d600160a060020a03600435166024351515610f3e565b34801561038757600080fd5b5061020d600160a060020a036004351660243560443561118f565b3480156103ae57600080fd5b506103046112f1565b3480156103c357600080fd5b506102d36112f7565b600160a060020a0381166000908152600460208181526040808420600180820154600280840154600385015497850154855487516101009682161587026000190190911693909304601f81018990048902840189019097528683526060999889988998899889988998919788979296929560ff80821696938204811695620100009092041693928991908301828280156104a75780601f1061047c576101008083540402835291602001916104a7565b820191906000526020600020905b81548152906001019060200180831161048a57829003601f168201915b50505050509650975097509750975097509750975050919395979092949650565b60035474010000000000000000000000000000000000000000900460ff165b90565b600060606104f733611306565b151561054d576040805160e560020a62461bcd02815260206004820152601a60248201527f73656e646572206973206e6f74206120636f6e74726f6c6c6572000000000000604482015290519081900360640190fd5b8b8a14801561055b57508b88145b801561056657508b86145b801561057157508b86145b15156105c7576040805160e560020a62461bcd02815260206004820152601e60248201527f706172616d65746572206c656e6774687320646f206e6f74206d617463680000604482015290519081900360640190fd5b600091505b8b82101561097257600460008e8e858181106105e457fe5b60209081029290920135600160a060020a03168352508101919091526040016000206003015460ff1615610662576040805160e560020a62461bcd02815260206004820152601760248201527f746f6b656e20616c726561647920617661696c61626c65000000000000000000604482015290519081900360640190fd5b6106886106838c8c8581811061067457fe5b6020029190910135905061139f565b6113cb565b905060e0604051908101604052808281526020018a8a8581811015156106aa57fe5b9050602002013581526020016000815260200160011515815260200188888581811015156106d457fe5b602090810292909201351515835250018686858181106106f057fe5b60209081029290920135151583525001849052600460008f8f8681811061071357fe5b90506020020135600160a060020a0316600160a060020a0316600160a060020a03168152602001908152602001600020600082015181600001908051906020019061075f9291906117e7565b5060208201516001820155604082015160028201556060820151600382018054608085015160a08601511515620100000262ff0000199115156101000261ff001995151560ff199094169390931794909416919091171691909117905560c09091015160049091015560058d8d848181106107d657fe5b8354600181018555600094855260209485902001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0395909202939093013593909316929092179055507f1802e89da3f6ef84e024e37454c226b1e13bf846ce71cd2a1d24faef9cbf779b338e8e8581811061084d57fe5b90506020020135600160a060020a0316838c8c87818110151561086c57fe5b905060200201358b8b88818110151561088157fe5b9050602002013515158a8a89818110151561089857fe5b9050602002013515156040518087600160a060020a0316600160a060020a0316815260200186600160a060020a0316600160a060020a03168152602001806020018581526020018415151515815260200183151515158152602001828103825286818151815260200191508051906020019080838360005b83811015610928578181015183820152602001610910565b50505050905090810190601f1680156109555780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390a16001909101906105cc565b50505050505050505050505050565b600654600160a060020a03166000908152600460208181526040808420600180820154600280840154600385015497850154855487516101009682161587026000190190911693909304601f81018990048902840189019097528683526060999889988998899889988998919788979296929560ff8082169693820481169562010000909204169392899190830182828015610a5e5780601f10610a3357610100808354040283529160200191610a5e565b820191906000526020600020905b815481529060010190602001808311610a4157829003601f168201915b5050505050965097509750975097509750975097505090919293949596565b60606005805480602002602001604051908101604052809291908181526020018280548015610ad557602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610ab7575b5050505050905090565b6000806000610aed33611306565b1515610b43576040805160e560020a62461bcd02815260206004820152601a60248201527f73656e646572206973206e6f74206120636f6e74726f6c6c6572000000000000604482015290519081900360640190fd5b600092505b83831015610d775760046000868686818110610b6057fe5b60209081029290920135600160a060020a03168352508101919091526040016000206003015460ff161515610bdf576040805160e560020a62461bcd02815260206004820152601660248201527f746f6b656e206973206e6f7420617661696c61626c6500000000000000000000604482015290519081900360640190fd5b848484818110610beb57fe5b60209081029290920135600160a060020a03166000818152600490935260408320909450919050610c1c8282611865565b506000600182018190556002820181905560038201805462ffffff19169055600490910181905590505b600554610c5a90600163ffffffff61142516565b811015610d155781600160a060020a0316600582815481101515610c7a57fe5b600091825260209091200154600160a060020a03161415610d0d5760058054610caa90600163ffffffff61142516565b81548110610cb457fe5b60009182526020909120015460058054600160a060020a039092169183908110610cda57fe5b9060005260206000200160006101000a815481600160a060020a030219169083600160a060020a03160217905550610d15565b600101610c46565b6005805490610d289060001983016118ac565b5060408051338152600160a060020a038416602082015281517f703f7e3f084d5b8dcc12fddcfd9a70d65b6b21ec7659e4608dbaf4419ede3ad0929181900390910190a1600190920191610b48565b5050505050565b610d873361143c565b1515610ddd576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e206f776e657200000000000000000000604482015290519081900360640190fd5b60035474010000000000000000000000000000000000000000900460ff161515610e51576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b6003805473ffffffffffffffffffffffffffffffffffffffff19169055604080516000808252602082015281517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea5929181900390910190a1565b600154600160a060020a031690565b60075490565b600354600160a060020a031690565b610ed83361143c565b1515610f2e576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e206f776e657200000000000000000000604482015290519081900360640190fd5b610f39838383611450565b505050565b610f473361143c565b1515610f9d576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e206f776e657200000000000000000000604482015290519081900360640190fd5b60035474010000000000000000000000000000000000000000900460ff161515611011576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b600160a060020a0382161515611097576040805160e560020a62461bcd02815260206004820152602360248201527f6f776e65722063616e6e6f742062652073657420746f207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6003805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000831515908102919091179091556111175760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b60035460408051600160a060020a039283168152918416602083015280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1506003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600061119c6007546115f6565b90506111a733611306565b806111ba575033600160a060020a038216145b1515611210576040805160e560020a62461bcd02815260206004820152601b60248201527f656974686572206f7261636c65206f7220636f6e74726f6c6c65720000000000604482015290519081900360640190fd5b600160a060020a03841660009081526004602052604090206003015460ff161515611285576040805160e560020a62461bcd02815260206004820152601660248201527f746f6b656e206973206e6f7420617661696c61626c6500000000000000000000604482015290519081900360640190fd5b600160a060020a03841660008181526004602081815260409283902060028101889055909101859055815133815290810192909252818101859052517fdb3a4cfb4cd8ac94343ff7440cee8d05ade309056203f0e53ca49b6db8197c7d9181900360600190a150505050565b60025490565b600654600160a060020a031690565b60006113136002546115f6565b600160a060020a031663b429afeb836040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b15801561136d57600080fd5b505af1158015611381573d6000803e3d6000fd5b505050506040513d602081101561139757600080fd5b505192915050565b6113a76118d0565b60405160208101604052828152806020830152506113c4826116ed565b8152919050565b606080600083600001516040519080825280601f01601f191660200182016040528015611402578160200160208202803883390190505b50915060208201905061141e81856020015186600001516117a3565b5092915050565b6000808383111561143557600080fd5b5050900390565b600354600160a060020a0390811691161490565b600160a060020a038216151561149c57604051600160a060020a0384169082156108fc029083906000818181858888f19350505050158015611496573d6000803e3d6000fd5b506115a7565b81600160a060020a031663a9059cbb84836040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b1580156114ff57600080fd5b505af1158015611513573d6000803e3d6000fd5b505050506040513d602081101561152957600080fd5b505115156115a7576040805160e560020a62461bcd02815260206004820152602560248201527f455243323020746f6b656e207472616e736665722077617320756e737563636560448201527f737366756c000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60408051600160a060020a0380861682528416602082015280820183905290517ff7a40077ff7a04c7e61f6f26fb13774259ddf1b6bce9ecf26a8276cdd39926839181900360600190a1505050565b60008054604080517f0178b8bf000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691630178b8bf9160248082019260209290919082900301818787803b15801561165d57600080fd5b505af1158015611671573d6000803e3d6000fd5b505050506040513d602081101561168757600080fd5b5051604080517f3b3b57de000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691633b3b57de916024808201926020929091908290030181600087803b15801561136d57600080fd5b600080821515611700576000915061179d565b6fffffffffffffffffffffffffffffffff8316151561173357601001700100000000000000000000000000000000830492505b67ffffffffffffffff831615156117565760080168010000000000000000830492505b63ffffffff8316151561177157600401640100000000830492505b61ffff831615156117885760020162010000830492505b60ff83161515611796576001015b8060200391505b50919050565b60005b602082106117c8578251845260209384019390920191601f19909101906117a6565b50905182516020929092036101000a6000190180199091169116179052565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061182857805160ff1916838001178555611855565b82800160010185558215611855579182015b8281111561185557825182559160200191906001019061183a565b506118619291506118e7565b5090565b50805460018160011615610100020316600290046000825580601f1061188b57506118a9565b601f0160209004906000526020600020908101906118a991906118e7565b50565b815481835581811115610f3957600083815260209020610f399181019083016118e7565b604080518082019091526000808252602082015290565b6104e791905b8082111561186157600081556001016118ed5600a165627a7a723058208c4be71ac085882be552fd06a3c105b468b8d2bbdf25c86681a98320fb418c500029","srcmap":"1619:8461:10:-;;;3201:336;8:9:-1;5:2;;;30:1;27;20:12;5:2;3201:336:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1312:12:8;:23;;-1:-1:-1;;;;;1312:23:8;;;-1:-1:-1;;;;;;1312:23:8;;;;;;;;:12;1345:24;;;;1356:12;;;1345:24;;;;;;;1334:15:6;:38;;;1527:6:9;:18;;1555:32;;;;;;;-1:-1:-1;;;;;;1527:18:9;;;;;;;;;;;1555:32;;;;;;;;;;;;3201:336:10;;;;;;;;;;;1671:15:9;1555:32;1671:15;1670:16;1666:78;;;1707:26;;;-1:-1:-1;;;;;1707:26:9;;;;;;;;;;;;;;;1666:78;1758:43;;;1787:1;1758:43;;-1:-1:-1;;;;;1758:43:9;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3457:11:10;:30;;;;-1:-1:-1;;3497:11:10;:33;;-1:-1:-1;;;;;;3497:33:10;-1:-1:-1;;;;;3497:33:10;;;;;;;;;;-1:-1:-1;1619:8461:10;;-1:-1:-1;1619:8461:10;;-1:-1:-1;1619:8461:10;;","srcmap-runtime":"1619:8461:10:-;;;;;;;;;-1:-1:-1;;;1619:8461:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8241:325;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8241:325:10;-1:-1:-1;;;;;8241:325:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-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;8241:325:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3149:94:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3149:94:9;;;;;;;;;;;;;;;;;;;;;;4101:1439:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4101:1439:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9058:369;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9058:369:10;;;;9550:105;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9550:105:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;9550:105:10;;;;;;;;;;;;;;;;;5667:1031;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5667:1031:10;;;;;;;;;;;;3519:306:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3519:306:9;;;;1468:91:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1468:91:8;;;;;;;;-1:-1:-1;;;;;1468:91:8;;;;;;;;;;;;;;9989:89:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9989:89:10;;;;;;;;;;;;;;;;;;;;3908:77:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3908:77:9;;;;7578:122:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7578:122:10;-1:-1:-1;;;;;7578:122:10;;;;;;;;;;;;2231:801:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2231:801:9;-1:-1:-1;;;;;2231:801:9;;;;;;;;;6975:514:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6975:514:10;-1:-1:-1;;;;;6975:514:10;;;;;;;;;1629:97:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1629:97:6;;;;9786:89:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9786:89:10;;;;8241:325;-1:-1:-1;;;;;8387:17:10;;8306:7;8387:17;;;:13;:17;;;;;;;;8440:19;;;;;8461:14;;;;;8477:19;;;;8538:20;;;;8414:145;;;;8477:19;8414:145;;;;;;-1:-1:-1;;8414:145:10;;;;;;;;;;;;;;;;;;;;;;;;;;8298:6;;8306:7;;;;;;;;;;;8387:17;;;;8440:19;;8461:14;;8477:19;;;;;8498:18;;;;;;8518;;;;;;8538:20;8387:17;;8414:145;;;8387:17;8414:145;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8241:325;;;;;;;;;;:::o;3149:94:9:-;3221:15;;;;;;;3149:94;;:::o;4101:1439:10:-;4592:6;4838:20;1489:25:6;1503:10;1489:13;:25::i;:::-;1481:64;;;;;;;-1:-1:-1;;;;;1481:64:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;4335:33:10;;;:72;;;;-1:-1:-1;4372:35:10;;;4335:72;:110;;;;-1:-1:-1;4411:34:10;;;4335:110;:148;;;;-1:-1:-1;4449:34:10;;;4335:148;4327:191;;;;;;;-1:-1:-1;;;;;4327:191:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;4601:1;4592:10;;4587:947;4604:18;;;4587:947;;;4715:13;:25;4729:7;;4737:1;4729:10;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4729:10:10;4715:25;;-1:-1:-1;4715:25:10;;;;;;;;-1:-1:-1;4715:25:10;:35;;;;;4714:36;4706:72;;;;;-1:-1:-1;;;;;4706:72:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;4861:35;:24;:8;;4870:1;4861:11;;;;;;;;;;;;;;;-1:-1:-1;4861:22:10;:24::i;:::-;:33;:35::i;:::-;4838:58;;4986:284;;;;;;;;;5019:6;4986:284;;;;5055:10;;5066:1;5055:13;;;;;;;;;;;;;;;4986:284;;;;5093:1;4986:284;;;;5124:4;4986:284;;;;;;5157:9;;5167:1;5157:12;;;;;;;;;;;;;;;;;;;;4986:284;;-1:-1:-1;4986:284:10;5197:9;;5207:1;5197:12;;;;;;;;;;;;;;;;;;4986:284;;-1:-1:-1;4986:284:10;;;;4958:13;-1:-1:-1;4972:7:10;;4980:1;4972:10;;;;;;;;;;;;;-1:-1:-1;;;;;4972:10:10;-1:-1:-1;;;;;4958:25:10;-1:-1:-1;;;;;4958:25:10;;;;;;;;;;;;:312;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;4958:312:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4958:312:10;;;;;-1:-1:-1;;4958:312:10;;;-1:-1:-1;;4958:312:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5342:18;5366:7;;5374:1;5366:10;;;;;;;27::-1;;39:1;23:18;;45:23;;-1:-1;5342:35:10;;;5366:10;5342:35;;;;;;;-1:-1:-1;;5342:35:10;-1:-1:-1;;;;;5366:10:10;;;;;;;;;;;;;5342:35;;;;;;-1:-1:-1;5438:85:10;5449:10;5461:7;;5469:1;5461:10;;;;;;;;;;;;;-1:-1:-1;;;;;5461:10:10;5473:6;5481:10;;5492:1;5481:13;;;;;;;;;;;;;;;5496:9;;5506:1;5496:12;;;;;;;;;;;;;;;;;5510:9;;5520:1;5510:12;;;;;;;;;;;;;;;;;5438:85;;;;-1:-1:-1;;;;;5438:85:10;-1:-1:-1;;;;;5438:85:10;;;;;;-1:-1:-1;;;;;5438:85:10;-1:-1:-1;;;;;5438:85:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;5438:85:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4624:3;;;;;4587:947;;;4101:1439;;;;;;;;;;;;;:::o;9058:369::-;9218:11;;-1:-1:-1;;;;;9218:11:10;9118:7;9204:26;;;:13;:26;;;;;;;;9218:11;9271:24;;;;9297:19;;;;;9318:24;;;;9394:25;;;;9240:180;;;;9218:11;9240:180;;;;;;-1:-1:-1;;9240:180:10;;;;;;;;;;;;;;;;;;;;;;;;;;9110:6;;9118:7;;;;;;;;;;;9204:26;;;;9271:24;;9297:19;;9318:24;;;;;9344:23;;;;;;9369;;;;;;9394:25;9204:26;;9240:180;;;9204:26;9240:180;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9058:369;;;;;;;;:::o;9550:105::-;9602:9;9630:18;9623:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9623:25:10;;;;;;;;;;;;;;;;;;;;;;;9550:105;:::o;5667:1031::-;5850:6;6094:13;6283:6;1489:25:6;1503:10;1489:13;:25::i;:::-;1481:64;;;;;;;-1:-1:-1;;;;;1481:64:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;5859:1:10;5850:10;;5845:847;5862:18;;;5845:847;;;5978:13;:25;5992:7;;6000:1;5992:10;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5992:10:10;5978:25;;-1:-1:-1;5978:25:10;;;;;;;;-1:-1:-1;5978:25:10;:35;;;;;5970:70;;;;;;;-1:-1:-1;;;;;5970:70:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;6110:7;;6118:1;6110:10;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6110:10:10;6181:20;;;;:13;:20;;;;;;6110:10;;-1:-1:-1;6181:20:10;;-1:-1:-1;6174:27:10;6181:20;;6174:27;:::i;:::-;-1:-1:-1;6174:27:10;;;;;;;;;;;;;;;;;;-1:-1:-1;;6174:27:10;;;;;;;;;;;-1:-1:-1;6278:272:10;6299:18;:25;:32;;6329:1;6299:32;:29;:32;:::i;:::-;6295:1;:36;6278:272;;;6385:5;-1:-1:-1;;;;;6360:30:10;:18;6379:1;6360:21;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6360:21:10;:30;6356:180;;;6438:18;6457:25;;:32;;6487:1;6457:32;:29;:32;:::i;:::-;6438:52;;;;;;;;;;;;;;;;;;6414:18;:21;;-1:-1:-1;;;;;6438:52:10;;;;6433:1;;6414:21;;;;;;;;;;;;;;:76;;;;;-1:-1:-1;;;;;6414:76:10;;;;;-1:-1:-1;;;;;6414:76:10;;;;;;6512:5;;6356:180;6333:3;;6278:272;;;6563:18;:27;;;;;-1:-1:-1;;6563:27:10;;;:::i;:::-;-1:-1:-1;6650:31:10;;;6663:10;6650:31;;-1:-1:-1;;;;;6650:31:10;;;;;;;;;;;;;;;;;;;5882:3;;;;;5845:847;;;5667:1031;;;;;:::o;3519:306:9:-;1924:20;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;3640:15;;;;;;;3632:57;;;;;;;-1:-1:-1;;;;;3632:57:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;3743:6;:19;;-1:-1:-1;;3743:19:9;;;3778:40;;;3760:1;3778:40;;;;;;;;;;;;;;;;;;;;3519:306::o;1468:91:8:-;1540:12;;-1:-1:-1;;;;;1540:12:8;1468:91;:::o;9989:89:10:-;10060:11;;9989:89;:::o;3908:77:9:-;3972:6;;-1:-1:-1;;;;;3972:6:9;3908:77;:::o;7578:122:10:-;1924:20:9;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;7665:28:10;7672:3;7677:6;7685:7;7665:6;:28::i;:::-;7578:122;;;:::o;2231:801:9:-;1924:20;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;2388:15;;;;;;;2380:57;;;;;;;-1:-1:-1;;;;;2380:57:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2518:22:9;;;;2510:70;;;;;-1:-1:-1;;;;;2510:70:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2665:15;:31;;-1:-1:-1;;2665:31:9;;;;;;;;;;;;;;;2775:75;;2814:25;;;-1:-1:-1;;;;;2814:25:9;;;;;;;;;;;;;;;2775:75;2931:6;;2910:38;;;-1:-1:-1;;;;;2931:6:9;;;2910:38;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3008:6:9;:17;;-1:-1:-1;;3008:17:9;-1:-1:-1;;;;;3008:17:9;;;;;;;;;;2231:801::o;6975:514:10:-;2597:21;2621:24;2633:11;;2621;:24::i;:::-;2597:48;;2664:25;2678:10;2664:13;:25::i;:::-;:56;;;-1:-1:-1;2693:10:10;-1:-1:-1;;;;;2693:27:10;;;2664:56;2655:97;;;;;;;-1:-1:-1;;;;;2655:97:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7138:21:10;;;;;;:13;:21;;;;;:31;;;;;7130:66;;;;;;;-1:-1:-1;;;;;7130:66:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7242:21:10;;;;;;:13;:21;;;;;;;;;:26;;;:34;;;7339:32;;;:46;;;7439:43;;7456:10;7439:43;;;;;;;;;;;;;;;;;;;;;;;;;6975:514;;;;:::o;1629:97:6:-;1704:15;;1629:97;:::o;9786:89:10:-;9857:11;;-1:-1:-1;;;;;9857:11:10;9786:89;:::o;1796:158:6:-;1860:4;1895:28;1907:15;;1895:11;:28::i;:::-;-1:-1:-1;;;;;1883:54:6;;1938:8;1883:64;;;;;-1:-1:-1;;;1883:64:6;;;;;;;-1:-1:-1;;;;;1883:64:6;-1:-1:-1;;;;;1883:64:6;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1883:64:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1883:64:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1883:64:6;;1796:158;-1:-1:-1;;1796:158:6:o;4914:370:4:-;4971:16;;:::i;:::-;5122:4;5116:11;5162:4;5157:3;5153:14;5147:4;5140:28;5193:4;5188:3;5181:17;5234:3;5227:4;5222:3;5218:14;5211:27;5091:157;5268:9;5272:4;5268:3;:9::i;:::-;5257:20;;:3;4914:370;-1:-1:-1;4914:370:4:o;5778:265::-;5838:6;5863:17;5914:11;5894:4;:9;;;5883:21;;;;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;5883:21:4;;5863:41;;5965:2;5960:3;5956:12;5946:22;;5980:36;5987:6;5995:4;:9;;;6006:4;:9;;;5980:6;:36::i;:::-;-1:-1:-1;6033:3:4;5778:265;-1:-1:-1;;5778:265:4:o;2250:131:1:-;2308:7;;2331:6;;;;2323:15;;;;;;-1:-1:-1;;2356:5:1;;;2250:131::o;4091:107:9:-;4185:6;;-1:-1:-1;;;;;4185:6:9;;;4173:18;;;;4091:107::o;1350:362:5:-;-1:-1:-1;;;;;1476:20:5;;;1472:189;;;1512:21;;-1:-1:-1;;;;;1512:12:5;;;:21;;;;;1525:7;;1512:21;;;;1525:7;1512:12;:21;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1512:21:5;1472:189;;;1578:6;-1:-1:-1;;;;;1572:22:5;;1595:3;1600:7;1572:36;;;;;-1:-1:-1;;;1572:36:5;;;;;;;-1:-1:-1;;;;;1572:36:5;-1:-1:-1;;;;;1572:36:5;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1572:36:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1572:36:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1572:36:5;1564:86;;;;;;;-1:-1:-1;;;;;1564:86:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1676:29;;;-1:-1:-1;;;;;1676:29:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;1350:362;;;:::o;1748:152:8:-;1811:7;1852:4;;:24;;;;;;;;;;;;;;-1:-1:-1;;;;;1852:4:8;;;;:13;;:24;;;;;;;;;;;;;;;1811:7;1852:4;:24;;;5:2:-1;;;;30:1;27;20:12;5:2;1852:24:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1852:24:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1852:24:8;1837:56;;;;;;;;;;;;;;-1:-1:-1;;;;;1837:45:8;;;;;;:56;;;;;1852:24;;1837:56;;;;;;;;;:45;:56;;;5:2:-1;;;;30:1;27;20:12;3840:768:4;3890:4;;3928:9;;3924:35;;;3958:1;3951:8;;;;3924:35;3980:34;3973:41;;:46;3969:164;;;4042:2;4035:9;4086:35;4078:4;4073:48;;-1:-1:-1;3969:164:4;4153:18;4146:25;;:30;4142:131;;;4199:1;4192:8;4242:19;4234:4;4229:32;;-1:-1:-1;4142:131:4;4293:10;4286:17;;:22;4282:115;;;4331:1;4324:8;4374:11;4366:4;4361:24;;-1:-1:-1;4282:115:4;4417:6;4410:13;;:18;4406:107;;;4451:1;4444:8;4494:7;4486:4;4481:20;;-1:-1:-1;4406:107:4;4533:4;4526:11;;:16;4522:55;;;4565:1;4558:8;4522:55;4598:3;4593:2;:8;4586:15;;3840:768;;;;;:::o;2686:548::-;3012:9;2806:164;2819:2;2812:9;;2806:164;;2888:10;;2875:24;;2934:2;2926:10;;;;2950:9;;;;-1:-1:-1;;2823:9:4;;;;2806:164;;;-1:-1:-1;3097:10:4;;3152:11;;3032:2;:8;;;;3024:3;:17;-1:-1:-1;;3024:21:4;3109:9;;3093:26;;;3148:22;;3196:21;3183:35;;3064:164::o;1619:8461:10:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1619:8461:10;;;-1:-1:-1;1619:8461:10;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;1619:8461:10;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;"},"internals/tokenWhitelistable.sol:TokenWhitelistable":{"bin":"","bin-runtime":"","srcmap":"","srcmap-runtime":""},"mocks/tokenWhitelistableExporter.sol:TokenWhitelistableExporter":{"bin":"608060405234801561001057600080fd5b5060405160408061092783398101604052805160209091015160018054600160a060020a03938416600160a060020a031991821617918290556000805490911691909316179091556002556108bd8061006a6000396000f30060806040526004361061007f5763ffffffff60e060020a6000350416630cde34b0811461008457806317e73794146100b95780631f69565f146100da5780632ff0fcaa146101a55780633efec5e9146101c6578063443dd2a4146101db5780637d73b23114610240578063877337b014610271578063d545782e14610298575b600080fd5b34801561009057600080fd5b506100a5600160a060020a03600435166102c1565b604080519115158252519081900360200190f35b3480156100c557600080fd5b506100a5600160a060020a03600435166102d2565b3480156100e657600080fd5b506100fb600160a060020a03600435166102dd565b6040805160208082018990529181018790528515156060820152841515608082015283151560a082015260c0810183905260e08082528951908201528851909182916101008301918b019080838360005b8381101561016457818101518382015260200161014c565b50505050905090810190601f1680156101915780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b3480156101b157600080fd5b506100a5600160a060020a0360043516610308565b3480156101d257600080fd5b506100fb610313565b3480156101e757600080fd5b506101f061033c565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561022c578181015183820152602001610214565b505050509050019250505060405180910390f35b34801561024c57600080fd5b5061025561034b565b60408051600160a060020a039092168252519081900360200190f35b34801561027d57600080fd5b5061028661035a565b60408051918252519081900360200190f35b3480156102a457600080fd5b506102bf600160a060020a0360043516602435604435610360565b005b60006102cc82610370565b92915050565b60006102cc82610389565b60606000806000806000806102f1886103a3565b959e949d50929b5090995097509550909350915050565b60006102cc826104d5565b60606000806000806000806103266104ef565b959d949c50929a50909850965094509092509050565b60606103466105fc565b905090565b600154600160a060020a031690565b60025490565b61036b8383836106d6565b505050565b60008061037c836103a3565b5098975050505050505050565b600080610395836103a3565b509098975050505050505050565b60606000806000806000806103b9600254610768565b600160a060020a0316631f69565f896040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b15801561041357600080fd5b505af1158015610427573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260e081101561045057600080fd5b81019080805164010000000081111561046857600080fd5b8201602081018481111561047b57600080fd5b815164010000000081118282018710171561049557600080fd5b5050602082015160408301516060840151608085015160a086015160c090960151949e50929c50909a509850965090945092505050919395979092949650565b6000806104e1836103a3565b509198975050505050505050565b6060600080600080600080610505600254610768565b600160a060020a0316633efec5e96040518163ffffffff1660e060020a028152600401600060405180830381600087803b15801561054257600080fd5b505af1158015610556573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260e081101561057f57600080fd5b81019080805164010000000081111561059757600080fd5b820160208101848111156105aa57600080fd5b81516401000000008111828201871017156105c457600080fd5b5050602082015160408301516060840151608085015160a086015160c090960151949f939e50919c509a509850919650945092505050565b6060610609600254610768565b600160a060020a031663443dd2a46040518163ffffffff1660e060020a028152600401600060405180830381600087803b15801561064657600080fd5b505af115801561065a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561068357600080fd5b81019080805164010000000081111561069b57600080fd5b820160208101848111156106ae57600080fd5b81518560208202830111640100000000821117156106cb57600080fd5b509094505050505090565b6106e1600254610768565b600160a060020a031663d545782e8484846040518463ffffffff1660e060020a0281526004018084600160a060020a0316600160a060020a031681526020018381526020018281526020019350505050600060405180830381600087803b15801561074b57600080fd5b505af115801561075f573d6000803e3d6000fd5b50505050505050565b60008054604080517f0178b8bf000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691630178b8bf9160248082019260209290919082900301818787803b1580156107cf57600080fd5b505af11580156107e3573d6000803e3d6000fd5b505050506040513d60208110156107f957600080fd5b5051604080517f3b3b57de000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691633b3b57de916024808201926020929091908290030181600087803b15801561085f57600080fd5b505af1158015610873573d6000803e3d6000fd5b505050506040513d602081101561088957600080fd5b5051929150505600a165627a7a72305820a200f44d223d63a0cda8b6ce77784eb74e9f901368a95cd7177c0a97137c32930029","bin-runtime":"60806040526004361061007f5763ffffffff60e060020a6000350416630cde34b0811461008457806317e73794146100b95780631f69565f146100da5780632ff0fcaa146101a55780633efec5e9146101c6578063443dd2a4146101db5780637d73b23114610240578063877337b014610271578063d545782e14610298575b600080fd5b34801561009057600080fd5b506100a5600160a060020a03600435166102c1565b604080519115158252519081900360200190f35b3480156100c557600080fd5b506100a5600160a060020a03600435166102d2565b3480156100e657600080fd5b506100fb600160a060020a03600435166102dd565b6040805160208082018990529181018790528515156060820152841515608082015283151560a082015260c0810183905260e08082528951908201528851909182916101008301918b019080838360005b8381101561016457818101518382015260200161014c565b50505050905090810190601f1680156101915780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b3480156101b157600080fd5b506100a5600160a060020a0360043516610308565b3480156101d257600080fd5b506100fb610313565b3480156101e757600080fd5b506101f061033c565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561022c578181015183820152602001610214565b505050509050019250505060405180910390f35b34801561024c57600080fd5b5061025561034b565b60408051600160a060020a039092168252519081900360200190f35b34801561027d57600080fd5b5061028661035a565b60408051918252519081900360200190f35b3480156102a457600080fd5b506102bf600160a060020a0360043516602435604435610360565b005b60006102cc82610370565b92915050565b60006102cc82610389565b60606000806000806000806102f1886103a3565b959e949d50929b5090995097509550909350915050565b60006102cc826104d5565b60606000806000806000806103266104ef565b959d949c50929a50909850965094509092509050565b60606103466105fc565b905090565b600154600160a060020a031690565b60025490565b61036b8383836106d6565b505050565b60008061037c836103a3565b5098975050505050505050565b600080610395836103a3565b509098975050505050505050565b60606000806000806000806103b9600254610768565b600160a060020a0316631f69565f896040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b15801561041357600080fd5b505af1158015610427573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260e081101561045057600080fd5b81019080805164010000000081111561046857600080fd5b8201602081018481111561047b57600080fd5b815164010000000081118282018710171561049557600080fd5b5050602082015160408301516060840151608085015160a086015160c090960151949e50929c50909a509850965090945092505050919395979092949650565b6000806104e1836103a3565b509198975050505050505050565b6060600080600080600080610505600254610768565b600160a060020a0316633efec5e96040518163ffffffff1660e060020a028152600401600060405180830381600087803b15801561054257600080fd5b505af1158015610556573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260e081101561057f57600080fd5b81019080805164010000000081111561059757600080fd5b820160208101848111156105aa57600080fd5b81516401000000008111828201871017156105c457600080fd5b5050602082015160408301516060840151608085015160a086015160c090960151949f939e50919c509a509850919650945092505050565b6060610609600254610768565b600160a060020a031663443dd2a46040518163ffffffff1660e060020a028152600401600060405180830381600087803b15801561064657600080fd5b505af115801561065a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561068357600080fd5b81019080805164010000000081111561069b57600080fd5b820160208101848111156106ae57600080fd5b81518560208202830111640100000000821117156106cb57600080fd5b509094505050505090565b6106e1600254610768565b600160a060020a031663d545782e8484846040518463ffffffff1660e060020a0281526004018084600160a060020a0316600160a060020a031681526020018381526020018281526020019350505050600060405180830381600087803b15801561074b57600080fd5b505af115801561075f573d6000803e3d6000fd5b50505050505050565b60008054604080517f0178b8bf000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691630178b8bf9160248082019260209290919082900301818787803b1580156107cf57600080fd5b505af11580156107e3573d6000803e3d6000fd5b505050506040513d60208110156107f957600080fd5b5051604080517f3b3b57de000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691633b3b57de916024808201926020929091908290030181600087803b15801561085f57600080fd5b505af1158015610873573d6000803e3d6000fd5b505050506040513d602081101561088957600080fd5b5051929150505600a165627a7a72305820a200f44d223d63a0cda8b6ce77784eb74e9f901368a95cd7177c0a97137c32930029","srcmap":"114:1096:12:-;;;192:128;8:9:-1;5:2;;;30:1;27;20:12;5:2;192:128:12;;;;;;;;;;;;;;;;;;;1312:12:8;:23;;-1:-1:-1;;;;;1312:23:8;;;-1:-1:-1;;;;;;1312:23:8;;;;;;;;:12;1345:24;;;;;1356:12;;;;1345:24;;;;1366:19:11;:46;114:1096:12;;;;;;","srcmap-runtime":"114:1096:12:-;;;;;;;;;-1:-1:-1;;;114:1096:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1101:106;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1101:106:12;-1:-1:-1;;;;;1101:106:12;;;;;;;;;;;;;;;;;;;;;;;879;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;879:106:12;-1:-1:-1;;;;;879:106:12;;;;;324:147;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;324:147:12;-1:-1:-1;;;;;324:147:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-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;324:147:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;989:108;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;989:108:12;-1:-1:-1;;;;;989:108:12;;;;;475:145;;8:9:-1;5:2;;;30:1;27;20:12;5:2;475:145:12;;;;624:103;;8:9:-1;5:2;;;30:1;27;20:12;5:2;624:103:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;624:103:12;;;;;;;;;;;;;;;;;1468:91:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1468:91:8;;;;;;;;-1:-1:-1;;;;;1468:91:8;;;;;;;;;;;;;;1552:105:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1552:105:11;;;;;;;;;;;;;;;;;;;;731:144:12;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;731:144:12;-1:-1:-1;;;;;731:144:12;;;;;;;;;;;1101:106;1161:4;1182:20;1199:2;1182:16;:20::i;:::-;1175:27;1101:106;-1:-1:-1;;1101:106:12:o;879:::-;939:4;960:20;977:2;960:16;:20::i;324:147::-;381:6;389:7;398;407:4;413;419;425:7;449:17;463:2;449:13;:17::i;:::-;442:24;;;;-1:-1:-1;442:24:12;;-1:-1:-1;442:24:12;;-1:-1:-1;442:24:12;-1:-1:-1;442:24:12;-1:-1:-1;442:24:12;;-1:-1:-1;324:147:12;-1:-1:-1;;324:147:12:o;989:108::-;1050:4;1071:21;1089:2;1071:17;:21::i;475:145::-;527:6;535:7;544;553:4;559;565;571:7;595:20;:18;:20::i;:::-;588:27;;;;-1:-1:-1;588:27:12;;-1:-1:-1;588:27:12;;-1:-1:-1;588:27:12;-1:-1:-1;588:27:12;-1:-1:-1;588:27:12;;-1:-1:-1;475:145:12;-1:-1:-1;475:145:12:o;624:103::-;676:9;702:20;:18;:20::i;:::-;695:27;;624:103;:::o;1468:91:8:-;1540:12;;-1:-1:-1;;;;;1540:12:8;1468:91;:::o;1552:105:11:-;1631:19;;1552:105;:::o;731:144:12:-;826:44;843:6;851:5;858:11;826:16;:44::i;:::-;731:144;;;:::o;4194:157:11:-;4255:4;4283:13;4302:17;4316:2;4302:13;:17::i;:::-;-1:-1:-1;4271:48:11;4194:157;-1:-1:-1;;;;;;;;4194:157:11:o;4445:::-;4506:4;4532:13;4553:17;4567:2;4553:13;:17::i;:::-;-1:-1:-1;4522:48:11;;4445:157;-1:-1:-1;;;;;;;;4445:157:11:o;2198:201::-;2256:6;2264:7;2273;2282:4;2288;2294;2300:7;2342:32;2354:19;;2342:11;:32::i;:::-;-1:-1:-1;;;;;2326:62:11;;2389:2;2326:66;;;;;-1:-1:-1;;;2326:66:11;;;;;;;-1:-1:-1;;;;;2326:66:11;-1:-1:-1;;;;;2326:66:11;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2326:66:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2326:66:11;;;;;;39:16:-1;36:1;17:17;2:54;101:4;2326:66:11;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:3;5:12;;2:2;;;30:1;27;20:12;2:2;2326:66:11;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;218:10;;268:11;251:29;;293:43;;;290:58;-1:-1;239:118;236:2;;;370:1;367;360:12;236:2;-1:-1;;2326:66:11;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2326:66:11;;-1:-1:-1;2326:66:11;;-1:-1:-1;2326:66:11;-1:-1:-1;2326:66:11;-1:-1:-1;2326:66:11;;-1:-1:-1;2326:66:11;-1:-1:-1;;;2198:201:11;;;;;;;;;:::o;3940:160::-;4002:4;4026:14;4050:17;4064:2;4050:13;:17::i;:::-;-1:-1:-1;4018:49:11;;3940:160;-1:-1:-1;;;;;;;;3940:160:11:o;2897:199::-;2950:6;2958:7;2967;2976:4;2982;2988;2994:7;3036:32;3048:19;;3036:11;:32::i;:::-;-1:-1:-1;;;;;3020:67:11;;:69;;;;;-1:-1:-1;;;3020:69:11;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3020:69:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3020:69:11;;;;;;39:16:-1;36:1;17:17;2:54;101:4;3020:69:11;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:3;5:12;;2:2;;;30:1;27;20:12;2:2;3020:69:11;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;218:10;;268:11;251:29;;293:43;;;290:58;-1:-1;239:118;236:2;;;370:1;367;360:12;236:2;-1:-1;;3020:69:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3020:69:11;;-1:-1:-1;3020:69:11;-1:-1:-1;3020:69:11;-1:-1:-1;3020:69:11;;-1:-1:-1;3020:69:11;-1:-1:-1;2897:199:11;-1:-1:-1;;;2897:199:11:o;3219:157::-;3272:9;3316:32;3328:19;;3316:11;:32::i;:::-;-1:-1:-1;;;;;3300:67:11;;:69;;;;;-1:-1:-1;;;3300:69:11;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3300:69:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3300:69:11;;;;;;39:16:-1;36:1;17:17;2:54;101:4;3300:69:11;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;3300:69:11;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;224:3;218:10;339:9;333:2;319:12;315:21;297:16;293:44;290:59;268:11;254:12;251:29;239:119;236:2;;;371:1;368;361:12;236:2;-1:-1;3300:69:11;;-1:-1:-1;;;;;3219:157:11;:::o;3653:191::-;3760:32;3772:19;;3760:11;:32::i;:::-;-1:-1:-1;;;;;3744:65:11;;3810:6;3818:5;3825:11;3744:93;;;;;-1:-1:-1;;;3744:93:11;;;;;;;-1:-1:-1;;;;;3744:93:11;-1:-1:-1;;;;;3744:93:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3744:93:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3744:93:11;;;;3653:191;;;:::o;1748:152:8:-;1811:7;1852:4;;:24;;;;;;;;;;;;;;-1:-1:-1;;;;;1852:4:8;;;;:13;;:24;;;;;;;;;;;;;;;1811:7;1852:4;:24;;;5:2:-1;;;;30:1;27;20:12;5:2;1852:24:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1852:24:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1852:24:8;1837:56;;;;;;;;;;;;;;-1:-1:-1;;;;;1837:45:8;;;;;;:56;;;;;1852:24;;1837:56;;;;;;;;;:45;:56;;;5:2:-1;;;;30:1;27;20:12;5:2;1837:56:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1837:56:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1837:56:8;;1748:152;-1:-1:-1;;1748:152:8:o"}},"sourceList":["externals/ERC20.sol","externals/SafeMath.sol","externals/ens/ENS.sol","externals/ens/PublicResolver.sol","externals/strings.sol","internals/claimable.sol","internals/controllable.sol","internals/controller.sol","internals/ensResolvable.sol","internals/ownable.sol","internals/tokenWhitelist.sol","internals/tokenWhitelistable.sol","mocks/tokenWhitelistableExporter.sol"],"sources":{"externals/ERC20.sol":{"AST":{"attributes":{"absolutePath":"externals/ERC20.sol","exportedSymbols":{"ERC20":[3653]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".25"]},"id":3616,"name":"PragmaDirective","src":"0:24:0"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"interface","documentation":"@title ERC20 interface is a subset of the ERC20 specification.","fullyImplemented":false,"linearizedBaseContracts":[3653],"name":"ERC20","scope":3654},"children":[{"attributes":{"body":null,"constant":false,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"approve","payable":false,"scope":3653,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"","scope":3625,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3617,"name":"ElementaryTypeName","src":"132:7:0"}],"id":3618,"name":"VariableDeclaration","src":"132:7:0"},{"attributes":{"constant":false,"name":"","scope":3625,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":3619,"name":"ElementaryTypeName","src":"141:7:0"}],"id":3620,"name":"VariableDeclaration","src":"141:7:0"}],"id":3621,"name":"ParameterList","src":"131:18:0"},{"children":[{"attributes":{"constant":false,"name":"","scope":3625,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":3622,"name":"ElementaryTypeName","src":"168:4:0"}],"id":3623,"name":"VariableDeclaration","src":"168:4:0"}],"id":3624,"name":"ParameterList","src":"167:6:0"}],"id":3625,"name":"FunctionDefinition","src":"115:59:0"},{"attributes":{"body":null,"constant":true,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"balanceOf","payable":false,"scope":3653,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"","scope":3632,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3626,"name":"ElementaryTypeName","src":"198:7:0"}],"id":3627,"name":"VariableDeclaration","src":"198:7:0"}],"id":3628,"name":"ParameterList","src":"197:9:0"},{"children":[{"attributes":{"constant":false,"name":"","scope":3632,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":3629,"name":"ElementaryTypeName","src":"230:4:0"}],"id":3630,"name":"VariableDeclaration","src":"230:4:0"}],"id":3631,"name":"ParameterList","src":"229:6:0"}],"id":3632,"name":"FunctionDefinition","src":"179:57:0"},{"attributes":{"body":null,"constant":false,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"transfer","payable":false,"scope":3653,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"","scope":3641,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3633,"name":"ElementaryTypeName","src":"259:7:0"}],"id":3634,"name":"VariableDeclaration","src":"259:7:0"},{"attributes":{"constant":false,"name":"","scope":3641,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":3635,"name":"ElementaryTypeName","src":"268:4:0"}],"id":3636,"name":"VariableDeclaration","src":"268:4:0"}],"id":3637,"name":"ParameterList","src":"258:15:0"},{"children":[{"attributes":{"constant":false,"name":"","scope":3641,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":3638,"name":"ElementaryTypeName","src":"292:4:0"}],"id":3639,"name":"VariableDeclaration","src":"292:4:0"}],"id":3640,"name":"ParameterList","src":"291:6:0"}],"id":3641,"name":"FunctionDefinition","src":"241:57:0"},{"attributes":{"body":null,"constant":false,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"transferFrom","payable":false,"scope":3653,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_from","scope":3652,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3642,"name":"ElementaryTypeName","src":"325:7:0"}],"id":3643,"name":"VariableDeclaration","src":"325:13:0"},{"attributes":{"constant":false,"name":"_to","scope":3652,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3644,"name":"ElementaryTypeName","src":"340:7:0"}],"id":3645,"name":"VariableDeclaration","src":"340:11:0"},{"attributes":{"constant":false,"name":"_value","scope":3652,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":3646,"name":"ElementaryTypeName","src":"353:7:0"}],"id":3647,"name":"VariableDeclaration","src":"353:14:0"}],"id":3648,"name":"ParameterList","src":"324:44:0"},{"children":[{"attributes":{"constant":false,"name":"success","scope":3652,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":3649,"name":"ElementaryTypeName","src":"387:4:0"}],"id":3650,"name":"VariableDeclaration","src":"387:12:0"}],"id":3651,"name":"ParameterList","src":"386:14:0"}],"id":3652,"name":"FunctionDefinition","src":"303:98:0"}],"id":3653,"name":"ContractDefinition","src":"93:310:0"}],"id":3654,"name":"SourceUnit","src":"0:404:0"}},"externals/SafeMath.sol":{"AST":{"attributes":{"absolutePath":"externals/SafeMath.sol","exportedSymbols":{"SafeMath":[1653]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".24"]},"id":1527,"name":"PragmaDirective","src":"1172:24:1"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"library","documentation":"@title SafeMath\n@dev Math operations with safety checks that revert on error","fullyImplemented":true,"linearizedBaseContracts":[1653],"name":"SafeMath","scope":1654},"children":[{"attributes":{"constant":true,"documentation":"@dev Multiplies two numbers, reverts on overflow.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"mul","payable":false,"scope":1653,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"a","scope":1560,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1528,"name":"ElementaryTypeName","src":"1389:7:1"}],"id":1529,"name":"VariableDeclaration","src":"1389:9:1"},{"attributes":{"constant":false,"name":"b","scope":1560,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1530,"name":"ElementaryTypeName","src":"1400:7:1"}],"id":1531,"name":"VariableDeclaration","src":"1400:9:1"}],"id":1532,"name":"ParameterList","src":"1388:22:1"},{"children":[{"attributes":{"constant":false,"name":"","scope":1560,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1533,"name":"ElementaryTypeName","src":"1434:7:1"}],"id":1534,"name":"VariableDeclaration","src":"1434:7:1"}],"id":1535,"name":"ParameterList","src":"1433:9:1"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1529,"type":"uint256","value":"a"},"id":1536,"name":"Identifier","src":"1658:1:1"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1537,"name":"Literal","src":"1663:1:1"}],"id":1538,"name":"BinaryOperation","src":"1658:6:1"},{"children":[{"attributes":{"functionReturnParameters":1535},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1539,"name":"Literal","src":"1681:1:1"}],"id":1540,"name":"Return","src":"1674:8:1"}],"id":1541,"name":"Block","src":"1666:23:1"}],"id":1542,"name":"IfStatement","src":"1654:35:1"},{"attributes":{"assignments":[1544]},"children":[{"attributes":{"constant":false,"name":"c","scope":1560,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1543,"name":"ElementaryTypeName","src":"1695:7:1"}],"id":1544,"name":"VariableDeclaration","src":"1695:9:1"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1529,"type":"uint256","value":"a"},"id":1545,"name":"Identifier","src":"1707:1:1"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1531,"type":"uint256","value":"b"},"id":1546,"name":"Identifier","src":"1711:1:1"}],"id":1547,"name":"BinaryOperation","src":"1707:5:1"}],"id":1548,"name":"VariableDeclarationStatement","src":"1695:17:1"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"overloadedDeclarations":[4032,4033],"referencedDeclaration":4032,"type":"function (bool) pure","value":"require"},"id":1549,"name":"Identifier","src":"1718:7:1"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"/","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1544,"type":"uint256","value":"c"},"id":1550,"name":"Identifier","src":"1726:1:1"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1529,"type":"uint256","value":"a"},"id":1551,"name":"Identifier","src":"1730:1:1"}],"id":1552,"name":"BinaryOperation","src":"1726:5:1"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1531,"type":"uint256","value":"b"},"id":1553,"name":"Identifier","src":"1735:1:1"}],"id":1554,"name":"BinaryOperation","src":"1726:10:1"}],"id":1555,"name":"FunctionCall","src":"1718:19:1"}],"id":1556,"name":"ExpressionStatement","src":"1718:19:1"},{"attributes":{"functionReturnParameters":1535},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1544,"type":"uint256","value":"c"},"id":1557,"name":"Identifier","src":"1751:1:1"}],"id":1558,"name":"Return","src":"1744:8:1"}],"id":1559,"name":"Block","src":"1443:314:1"}],"id":1560,"name":"FunctionDefinition","src":"1376:381:1"},{"attributes":{"constant":true,"documentation":"@dev Integer division of two numbers truncating the quotient, reverts on division by zero.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"div","payable":false,"scope":1653,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"a","scope":1584,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1561,"name":"ElementaryTypeName","src":"1880:7:1"}],"id":1562,"name":"VariableDeclaration","src":"1880:9:1"},{"attributes":{"constant":false,"name":"b","scope":1584,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1563,"name":"ElementaryTypeName","src":"1891:7:1"}],"id":1564,"name":"VariableDeclaration","src":"1891:9:1"}],"id":1565,"name":"ParameterList","src":"1879:22:1"},{"children":[{"attributes":{"constant":false,"name":"","scope":1584,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1566,"name":"ElementaryTypeName","src":"1925:7:1"}],"id":1567,"name":"VariableDeclaration","src":"1925:7:1"}],"id":1568,"name":"ParameterList","src":"1924:9:1"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"overloadedDeclarations":[4032,4033],"referencedDeclaration":4032,"type":"function (bool) pure","value":"require"},"id":1569,"name":"Identifier","src":"1940:7:1"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1564,"type":"uint256","value":"b"},"id":1570,"name":"Identifier","src":"1948:1:1"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1571,"name":"Literal","src":"1952:1:1"}],"id":1572,"name":"BinaryOperation","src":"1948:5:1"}],"id":1573,"name":"FunctionCall","src":"1940:14:1"}],"id":1574,"name":"ExpressionStatement","src":"1940:14:1"},{"attributes":{"assignments":[1576]},"children":[{"attributes":{"constant":false,"name":"c","scope":1584,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1575,"name":"ElementaryTypeName","src":"2018:7:1"}],"id":1576,"name":"VariableDeclaration","src":"2018:9:1"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"/","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1562,"type":"uint256","value":"a"},"id":1577,"name":"Identifier","src":"2030:1:1"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1564,"type":"uint256","value":"b"},"id":1578,"name":"Identifier","src":"2034:1:1"}],"id":1579,"name":"BinaryOperation","src":"2030:5:1"}],"id":1580,"name":"VariableDeclarationStatement","src":"2018:17:1"},{"attributes":{"functionReturnParameters":1568},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1576,"type":"uint256","value":"c"},"id":1581,"name":"Identifier","src":"2131:1:1"}],"id":1582,"name":"Return","src":"2124:8:1"}],"id":1583,"name":"Block","src":"1934:203:1"}],"id":1584,"name":"FunctionDefinition","src":"1867:270:1"},{"attributes":{"constant":true,"documentation":"@dev Subtracts two numbers, reverts on overflow (i.e. if subtrahend is greater than minuend).","implemented":true,"isConstructor":false,"modifiers":[null],"name":"sub","payable":false,"scope":1653,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"a","scope":1608,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1585,"name":"ElementaryTypeName","src":"2263:7:1"}],"id":1586,"name":"VariableDeclaration","src":"2263:9:1"},{"attributes":{"constant":false,"name":"b","scope":1608,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1587,"name":"ElementaryTypeName","src":"2274:7:1"}],"id":1588,"name":"VariableDeclaration","src":"2274:9:1"}],"id":1589,"name":"ParameterList","src":"2262:22:1"},{"children":[{"attributes":{"constant":false,"name":"","scope":1608,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1590,"name":"ElementaryTypeName","src":"2308:7:1"}],"id":1591,"name":"VariableDeclaration","src":"2308:7:1"}],"id":1592,"name":"ParameterList","src":"2307:9:1"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"overloadedDeclarations":[4032,4033],"referencedDeclaration":4032,"type":"function (bool) pure","value":"require"},"id":1593,"name":"Identifier","src":"2323:7:1"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1588,"type":"uint256","value":"b"},"id":1594,"name":"Identifier","src":"2331:1:1"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1586,"type":"uint256","value":"a"},"id":1595,"name":"Identifier","src":"2336:1:1"}],"id":1596,"name":"BinaryOperation","src":"2331:6:1"}],"id":1597,"name":"FunctionCall","src":"2323:15:1"}],"id":1598,"name":"ExpressionStatement","src":"2323:15:1"},{"attributes":{"assignments":[1600]},"children":[{"attributes":{"constant":false,"name":"c","scope":1608,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1599,"name":"ElementaryTypeName","src":"2344:7:1"}],"id":1600,"name":"VariableDeclaration","src":"2344:9:1"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1586,"type":"uint256","value":"a"},"id":1601,"name":"Identifier","src":"2356:1:1"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1588,"type":"uint256","value":"b"},"id":1602,"name":"Identifier","src":"2360:1:1"}],"id":1603,"name":"BinaryOperation","src":"2356:5:1"}],"id":1604,"name":"VariableDeclarationStatement","src":"2344:17:1"},{"attributes":{"functionReturnParameters":1592},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1600,"type":"uint256","value":"c"},"id":1605,"name":"Identifier","src":"2375:1:1"}],"id":1606,"name":"Return","src":"2368:8:1"}],"id":1607,"name":"Block","src":"2317:64:1"}],"id":1608,"name":"FunctionDefinition","src":"2250:131:1"},{"attributes":{"constant":true,"documentation":"@dev Adds two numbers, reverts on overflow.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"add","payable":false,"scope":1653,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"a","scope":1632,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1609,"name":"ElementaryTypeName","src":"2457:7:1"}],"id":1610,"name":"VariableDeclaration","src":"2457:9:1"},{"attributes":{"constant":false,"name":"b","scope":1632,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1611,"name":"ElementaryTypeName","src":"2468:7:1"}],"id":1612,"name":"VariableDeclaration","src":"2468:9:1"}],"id":1613,"name":"ParameterList","src":"2456:22:1"},{"children":[{"attributes":{"constant":false,"name":"","scope":1632,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1614,"name":"ElementaryTypeName","src":"2502:7:1"}],"id":1615,"name":"VariableDeclaration","src":"2502:7:1"}],"id":1616,"name":"ParameterList","src":"2501:9:1"},{"children":[{"attributes":{"assignments":[1618]},"children":[{"attributes":{"constant":false,"name":"c","scope":1632,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1617,"name":"ElementaryTypeName","src":"2517:7:1"}],"id":1618,"name":"VariableDeclaration","src":"2517:9:1"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1610,"type":"uint256","value":"a"},"id":1619,"name":"Identifier","src":"2529:1:1"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1612,"type":"uint256","value":"b"},"id":1620,"name":"Identifier","src":"2533:1:1"}],"id":1621,"name":"BinaryOperation","src":"2529:5:1"}],"id":1622,"name":"VariableDeclarationStatement","src":"2517:17:1"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"overloadedDeclarations":[4032,4033],"referencedDeclaration":4032,"type":"function (bool) pure","value":"require"},"id":1623,"name":"Identifier","src":"2540:7:1"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1618,"type":"uint256","value":"c"},"id":1624,"name":"Identifier","src":"2548:1:1"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1610,"type":"uint256","value":"a"},"id":1625,"name":"Identifier","src":"2553:1:1"}],"id":1626,"name":"BinaryOperation","src":"2548:6:1"}],"id":1627,"name":"FunctionCall","src":"2540:15:1"}],"id":1628,"name":"ExpressionStatement","src":"2540:15:1"},{"attributes":{"functionReturnParameters":1616},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1618,"type":"uint256","value":"c"},"id":1629,"name":"Identifier","src":"2569:1:1"}],"id":1630,"name":"Return","src":"2562:8:1"}],"id":1631,"name":"Block","src":"2511:64:1"}],"id":1632,"name":"FunctionDefinition","src":"2444:131:1"},{"attributes":{"constant":true,"documentation":"@dev Divides two numbers and returns the remainder (unsigned integer modulo),\nreverts when dividing by zero.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"mod","payable":false,"scope":1653,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"a","scope":1652,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1633,"name":"ElementaryTypeName","src":"2720:7:1"}],"id":1634,"name":"VariableDeclaration","src":"2720:9:1"},{"attributes":{"constant":false,"name":"b","scope":1652,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1635,"name":"ElementaryTypeName","src":"2731:7:1"}],"id":1636,"name":"VariableDeclaration","src":"2731:9:1"}],"id":1637,"name":"ParameterList","src":"2719:22:1"},{"children":[{"attributes":{"constant":false,"name":"","scope":1652,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1638,"name":"ElementaryTypeName","src":"2765:7:1"}],"id":1639,"name":"VariableDeclaration","src":"2765:7:1"}],"id":1640,"name":"ParameterList","src":"2764:9:1"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"overloadedDeclarations":[4032,4033],"referencedDeclaration":4032,"type":"function (bool) pure","value":"require"},"id":1641,"name":"Identifier","src":"2780:7:1"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1636,"type":"uint256","value":"b"},"id":1642,"name":"Identifier","src":"2788:1:1"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1643,"name":"Literal","src":"2793:1:1"}],"id":1644,"name":"BinaryOperation","src":"2788:6:1"}],"id":1645,"name":"FunctionCall","src":"2780:15:1"}],"id":1646,"name":"ExpressionStatement","src":"2780:15:1"},{"attributes":{"functionReturnParameters":1640},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"%","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1634,"type":"uint256","value":"a"},"id":1647,"name":"Identifier","src":"2808:1:1"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1636,"type":"uint256","value":"b"},"id":1648,"name":"Identifier","src":"2812:1:1"}],"id":1649,"name":"BinaryOperation","src":"2808:5:1"}],"id":1650,"name":"Return","src":"2801:12:1"}],"id":1651,"name":"Block","src":"2774:44:1"}],"id":1652,"name":"FunctionDefinition","src":"2707:111:1"}],"id":1653,"name":"ContractDefinition","src":"1289:1531:1"}],"id":1654,"name":"SourceUnit","src":"1172:1649:1"}},"externals/ens/ENS.sol":{"AST":{"attributes":{"absolutePath":"externals/ens/ENS.sol","exportedSymbols":{"ENS":[440]}},"children":[{"attributes":{"literals":["solidity",">=","0.4",".24"]},"id":362,"name":"PragmaDirective","src":"1400:25:2"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"interface","documentation":null,"fullyImplemented":false,"linearizedBaseContracts":[440],"name":"ENS","scope":441},"children":[{"attributes":{"anonymous":false,"documentation":null,"name":"NewOwner"},"children":[{"children":[{"attributes":{"constant":false,"indexed":true,"name":"node","scope":370,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":363,"name":"ElementaryTypeName","src":"1536:7:2"}],"id":364,"name":"VariableDeclaration","src":"1536:20:2"},{"attributes":{"constant":false,"indexed":true,"name":"label","scope":370,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":365,"name":"ElementaryTypeName","src":"1558:7:2"}],"id":366,"name":"VariableDeclaration","src":"1558:21:2"},{"attributes":{"constant":false,"indexed":false,"name":"owner","scope":370,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":367,"name":"ElementaryTypeName","src":"1581:7:2"}],"id":368,"name":"VariableDeclaration","src":"1581:13:2"}],"id":369,"name":"ParameterList","src":"1535:60:2"}],"id":370,"name":"EventDefinition","src":"1521:75:2"},{"attributes":{"anonymous":false,"documentation":null,"name":"Transfer"},"children":[{"children":[{"attributes":{"constant":false,"indexed":true,"name":"node","scope":376,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":371,"name":"ElementaryTypeName","src":"1694:7:2"}],"id":372,"name":"VariableDeclaration","src":"1694:20:2"},{"attributes":{"constant":false,"indexed":false,"name":"owner","scope":376,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":373,"name":"ElementaryTypeName","src":"1716:7:2"}],"id":374,"name":"VariableDeclaration","src":"1716:13:2"}],"id":375,"name":"ParameterList","src":"1693:37:2"}],"id":376,"name":"EventDefinition","src":"1679:52:2"},{"attributes":{"anonymous":false,"documentation":null,"name":"NewResolver"},"children":[{"children":[{"attributes":{"constant":false,"indexed":true,"name":"node","scope":382,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":377,"name":"ElementaryTypeName","src":"1807:7:2"}],"id":378,"name":"VariableDeclaration","src":"1807:20:2"},{"attributes":{"constant":false,"indexed":false,"name":"resolver","scope":382,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":379,"name":"ElementaryTypeName","src":"1829:7:2"}],"id":380,"name":"VariableDeclaration","src":"1829:16:2"}],"id":381,"name":"ParameterList","src":"1806:40:2"}],"id":382,"name":"EventDefinition","src":"1789:58:2"},{"attributes":{"anonymous":false,"documentation":null,"name":"NewTTL"},"children":[{"children":[{"attributes":{"constant":false,"indexed":true,"name":"node","scope":388,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":383,"name":"ElementaryTypeName","src":"1911:7:2"}],"id":384,"name":"VariableDeclaration","src":"1911:20:2"},{"attributes":{"constant":false,"indexed":false,"name":"ttl","scope":388,"stateVariable":false,"storageLocation":"default","type":"uint64","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint64","type":"uint64"},"id":385,"name":"ElementaryTypeName","src":"1933:6:2"}],"id":386,"name":"VariableDeclaration","src":"1933:10:2"}],"id":387,"name":"ParameterList","src":"1910:34:2"}],"id":388,"name":"EventDefinition","src":"1898:47:2"},{"attributes":{"body":null,"constant":false,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"setSubnodeOwner","payable":false,"scope":440,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":397,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":389,"name":"ElementaryTypeName","src":"1977:7:2"}],"id":390,"name":"VariableDeclaration","src":"1977:12:2"},{"attributes":{"constant":false,"name":"label","scope":397,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":391,"name":"ElementaryTypeName","src":"1991:7:2"}],"id":392,"name":"VariableDeclaration","src":"1991:13:2"},{"attributes":{"constant":false,"name":"owner","scope":397,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":393,"name":"ElementaryTypeName","src":"2006:7:2"}],"id":394,"name":"VariableDeclaration","src":"2006:13:2"}],"id":395,"name":"ParameterList","src":"1976:44:2"},{"attributes":{"parameters":[null]},"children":[],"id":396,"name":"ParameterList","src":"2029:0:2"}],"id":397,"name":"FunctionDefinition","src":"1952:78:2"},{"attributes":{"body":null,"constant":false,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"setResolver","payable":false,"scope":440,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":404,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":398,"name":"ElementaryTypeName","src":"2056:7:2"}],"id":399,"name":"VariableDeclaration","src":"2056:12:2"},{"attributes":{"constant":false,"name":"resolver","scope":404,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":400,"name":"ElementaryTypeName","src":"2070:7:2"}],"id":401,"name":"VariableDeclaration","src":"2070:16:2"}],"id":402,"name":"ParameterList","src":"2055:32:2"},{"attributes":{"parameters":[null]},"children":[],"id":403,"name":"ParameterList","src":"2096:0:2"}],"id":404,"name":"FunctionDefinition","src":"2035:62:2"},{"attributes":{"body":null,"constant":false,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"setOwner","payable":false,"scope":440,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":411,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":405,"name":"ElementaryTypeName","src":"2120:7:2"}],"id":406,"name":"VariableDeclaration","src":"2120:12:2"},{"attributes":{"constant":false,"name":"owner","scope":411,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":407,"name":"ElementaryTypeName","src":"2134:7:2"}],"id":408,"name":"VariableDeclaration","src":"2134:13:2"}],"id":409,"name":"ParameterList","src":"2119:29:2"},{"attributes":{"parameters":[null]},"children":[],"id":410,"name":"ParameterList","src":"2157:0:2"}],"id":411,"name":"FunctionDefinition","src":"2102:56:2"},{"attributes":{"body":null,"constant":false,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"setTTL","payable":false,"scope":440,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":418,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":412,"name":"ElementaryTypeName","src":"2179:7:2"}],"id":413,"name":"VariableDeclaration","src":"2179:12:2"},{"attributes":{"constant":false,"name":"ttl","scope":418,"stateVariable":false,"storageLocation":"default","type":"uint64","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint64","type":"uint64"},"id":414,"name":"ElementaryTypeName","src":"2193:6:2"}],"id":415,"name":"VariableDeclaration","src":"2193:10:2"}],"id":416,"name":"ParameterList","src":"2178:26:2"},{"attributes":{"parameters":[null]},"children":[],"id":417,"name":"ParameterList","src":"2213:0:2"}],"id":418,"name":"FunctionDefinition","src":"2163:51:2"},{"attributes":{"body":null,"constant":true,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"owner","payable":false,"scope":440,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":425,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":419,"name":"ElementaryTypeName","src":"2234:7:2"}],"id":420,"name":"VariableDeclaration","src":"2234:12:2"}],"id":421,"name":"ParameterList","src":"2233:14:2"},{"children":[{"attributes":{"constant":false,"name":"","scope":425,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":422,"name":"ElementaryTypeName","src":"2271:7:2"}],"id":423,"name":"VariableDeclaration","src":"2271:7:2"}],"id":424,"name":"ParameterList","src":"2270:9:2"}],"id":425,"name":"FunctionDefinition","src":"2219:61:2"},{"attributes":{"body":null,"constant":true,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"resolver","payable":false,"scope":440,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":432,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":426,"name":"ElementaryTypeName","src":"2303:7:2"}],"id":427,"name":"VariableDeclaration","src":"2303:12:2"}],"id":428,"name":"ParameterList","src":"2302:14:2"},{"children":[{"attributes":{"constant":false,"name":"","scope":432,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":429,"name":"ElementaryTypeName","src":"2340:7:2"}],"id":430,"name":"VariableDeclaration","src":"2340:7:2"}],"id":431,"name":"ParameterList","src":"2339:9:2"}],"id":432,"name":"FunctionDefinition","src":"2285:64:2"},{"attributes":{"body":null,"constant":true,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"ttl","payable":false,"scope":440,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":439,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":433,"name":"ElementaryTypeName","src":"2367:7:2"}],"id":434,"name":"VariableDeclaration","src":"2367:12:2"}],"id":435,"name":"ParameterList","src":"2366:14:2"},{"children":[{"attributes":{"constant":false,"name":"","scope":439,"stateVariable":false,"storageLocation":"default","type":"uint64","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint64","type":"uint64"},"id":436,"name":"ElementaryTypeName","src":"2404:6:2"}],"id":437,"name":"VariableDeclaration","src":"2404:6:2"}],"id":438,"name":"ParameterList","src":"2403:8:2"}],"id":439,"name":"FunctionDefinition","src":"2354:58:2"}],"id":440,"name":"ContractDefinition","src":"1427:988:2"}],"id":441,"name":"SourceUnit","src":"1400:1017:2"}},"externals/ens/PublicResolver.sol":{"AST":{"attributes":{"absolutePath":"externals/ens/PublicResolver.sol","exportedSymbols":{"PublicResolver":[948]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".24"]},"id":442,"name":"PragmaDirective","src":"1406:24:3"},{"attributes":{"SourceUnit":441,"absolutePath":"externals/ens/ENS.sol","file":"./ENS.sol","scope":949,"symbolAliases":[null],"unitAlias":""},"id":443,"name":"ImportDirective","src":"1432:19:3"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"contract","documentation":"A simple resolver anyone can use; only allows the owner of a node to set its\naddress.","fullyImplemented":true,"linearizedBaseContracts":[948],"name":"PublicResolver","scope":949},"children":[{"attributes":{"constant":true,"name":"INTERFACE_META_ID","scope":948,"stateVariable":true,"storageLocation":"default","type":"bytes4","visibility":"internal"},"children":[{"attributes":{"name":"bytes4","type":"bytes4"},"id":444,"name":"ElementaryTypeName","src":"1584:6:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30783031666663396137","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 33540519","value":"0x01ffc9a7"},"id":445,"name":"Literal","src":"1620:10:3"}],"id":446,"name":"VariableDeclaration","src":"1584:46:3"},{"attributes":{"constant":true,"name":"ADDR_INTERFACE_ID","scope":948,"stateVariable":true,"storageLocation":"default","type":"bytes4","visibility":"internal"},"children":[{"attributes":{"name":"bytes4","type":"bytes4"},"id":447,"name":"ElementaryTypeName","src":"1636:6:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30783362336235376465","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 993744862","value":"0x3b3b57de"},"id":448,"name":"Literal","src":"1672:10:3"}],"id":449,"name":"VariableDeclaration","src":"1636:46:3"},{"attributes":{"constant":true,"name":"CONTENT_INTERFACE_ID","scope":948,"stateVariable":true,"storageLocation":"default","type":"bytes4","visibility":"internal"},"children":[{"attributes":{"name":"bytes4","type":"bytes4"},"id":450,"name":"ElementaryTypeName","src":"1688:6:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30786438333839646335","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3627589061","value":"0xd8389dc5"},"id":451,"name":"Literal","src":"1727:10:3"}],"id":452,"name":"VariableDeclaration","src":"1688:49:3"},{"attributes":{"constant":true,"name":"NAME_INTERFACE_ID","scope":948,"stateVariable":true,"storageLocation":"default","type":"bytes4","visibility":"internal"},"children":[{"attributes":{"name":"bytes4","type":"bytes4"},"id":453,"name":"ElementaryTypeName","src":"1743:6:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30783639316633343331","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1763652657","value":"0x691f3431"},"id":454,"name":"Literal","src":"1779:10:3"}],"id":455,"name":"VariableDeclaration","src":"1743:46:3"},{"attributes":{"constant":true,"name":"ABI_INTERFACE_ID","scope":948,"stateVariable":true,"storageLocation":"default","type":"bytes4","visibility":"internal"},"children":[{"attributes":{"name":"bytes4","type":"bytes4"},"id":456,"name":"ElementaryTypeName","src":"1795:6:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30783232303361623536","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 570665814","value":"0x2203ab56"},"id":457,"name":"Literal","src":"1830:10:3"}],"id":458,"name":"VariableDeclaration","src":"1795:45:3"},{"attributes":{"constant":true,"name":"PUBKEY_INTERFACE_ID","scope":948,"stateVariable":true,"storageLocation":"default","type":"bytes4","visibility":"internal"},"children":[{"attributes":{"name":"bytes4","type":"bytes4"},"id":459,"name":"ElementaryTypeName","src":"1846:6:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30786338363930323333","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3362325043","value":"0xc8690233"},"id":460,"name":"Literal","src":"1884:10:3"}],"id":461,"name":"VariableDeclaration","src":"1846:48:3"},{"attributes":{"constant":true,"name":"TEXT_INTERFACE_ID","scope":948,"stateVariable":true,"storageLocation":"default","type":"bytes4","visibility":"internal"},"children":[{"attributes":{"name":"bytes4","type":"bytes4"},"id":462,"name":"ElementaryTypeName","src":"1900:6:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30783539643164343363","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1506923580","value":"0x59d1d43c"},"id":463,"name":"Literal","src":"1936:10:3"}],"id":464,"name":"VariableDeclaration","src":"1900:46:3"},{"attributes":{"constant":true,"name":"MULTIHASH_INTERFACE_ID","scope":948,"stateVariable":true,"storageLocation":"default","type":"bytes4","visibility":"internal"},"children":[{"attributes":{"name":"bytes4","type":"bytes4"},"id":465,"name":"ElementaryTypeName","src":"1952:6:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30786538393430316131","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3902013857","value":"0xe89401a1"},"id":466,"name":"Literal","src":"1993:10:3"}],"id":467,"name":"VariableDeclaration","src":"1952:51:3"},{"attributes":{"anonymous":false,"documentation":null,"name":"AddrChanged"},"children":[{"children":[{"attributes":{"constant":false,"indexed":true,"name":"node","scope":473,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":468,"name":"ElementaryTypeName","src":"2028:7:3"}],"id":469,"name":"VariableDeclaration","src":"2028:20:3"},{"attributes":{"constant":false,"indexed":false,"name":"a","scope":473,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":470,"name":"ElementaryTypeName","src":"2050:7:3"}],"id":471,"name":"VariableDeclaration","src":"2050:9:3"}],"id":472,"name":"ParameterList","src":"2027:33:3"}],"id":473,"name":"EventDefinition","src":"2010:51:3"},{"attributes":{"anonymous":false,"documentation":null,"name":"ContentChanged"},"children":[{"children":[{"attributes":{"constant":false,"indexed":true,"name":"node","scope":479,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":474,"name":"ElementaryTypeName","src":"2087:7:3"}],"id":475,"name":"VariableDeclaration","src":"2087:20:3"},{"attributes":{"constant":false,"indexed":false,"name":"hash","scope":479,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":476,"name":"ElementaryTypeName","src":"2109:7:3"}],"id":477,"name":"VariableDeclaration","src":"2109:12:3"}],"id":478,"name":"ParameterList","src":"2086:36:3"}],"id":479,"name":"EventDefinition","src":"2066:57:3"},{"attributes":{"anonymous":false,"documentation":null,"name":"NameChanged"},"children":[{"children":[{"attributes":{"constant":false,"indexed":true,"name":"node","scope":485,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":480,"name":"ElementaryTypeName","src":"2146:7:3"}],"id":481,"name":"VariableDeclaration","src":"2146:20:3"},{"attributes":{"constant":false,"indexed":false,"name":"name","scope":485,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":482,"name":"ElementaryTypeName","src":"2168:6:3"}],"id":483,"name":"VariableDeclaration","src":"2168:11:3"}],"id":484,"name":"ParameterList","src":"2145:35:3"}],"id":485,"name":"EventDefinition","src":"2128:53:3"},{"attributes":{"anonymous":false,"documentation":null,"name":"ABIChanged"},"children":[{"children":[{"attributes":{"constant":false,"indexed":true,"name":"node","scope":491,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":486,"name":"ElementaryTypeName","src":"2203:7:3"}],"id":487,"name":"VariableDeclaration","src":"2203:20:3"},{"attributes":{"constant":false,"indexed":true,"name":"contentType","scope":491,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":488,"name":"ElementaryTypeName","src":"2225:7:3"}],"id":489,"name":"VariableDeclaration","src":"2225:27:3"}],"id":490,"name":"ParameterList","src":"2202:51:3"}],"id":491,"name":"EventDefinition","src":"2186:68:3"},{"attributes":{"anonymous":false,"documentation":null,"name":"PubkeyChanged"},"children":[{"children":[{"attributes":{"constant":false,"indexed":true,"name":"node","scope":499,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":492,"name":"ElementaryTypeName","src":"2279:7:3"}],"id":493,"name":"VariableDeclaration","src":"2279:20:3"},{"attributes":{"constant":false,"indexed":false,"name":"x","scope":499,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":494,"name":"ElementaryTypeName","src":"2301:7:3"}],"id":495,"name":"VariableDeclaration","src":"2301:9:3"},{"attributes":{"constant":false,"indexed":false,"name":"y","scope":499,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":496,"name":"ElementaryTypeName","src":"2312:7:3"}],"id":497,"name":"VariableDeclaration","src":"2312:9:3"}],"id":498,"name":"ParameterList","src":"2278:44:3"}],"id":499,"name":"EventDefinition","src":"2259:64:3"},{"attributes":{"anonymous":false,"documentation":null,"name":"TextChanged"},"children":[{"children":[{"attributes":{"constant":false,"indexed":true,"name":"node","scope":507,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":500,"name":"ElementaryTypeName","src":"2346:7:3"}],"id":501,"name":"VariableDeclaration","src":"2346:20:3"},{"attributes":{"constant":false,"indexed":false,"name":"indexedKey","scope":507,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":502,"name":"ElementaryTypeName","src":"2368:6:3"}],"id":503,"name":"VariableDeclaration","src":"2368:17:3"},{"attributes":{"constant":false,"indexed":false,"name":"key","scope":507,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":504,"name":"ElementaryTypeName","src":"2387:6:3"}],"id":505,"name":"VariableDeclaration","src":"2387:10:3"}],"id":506,"name":"ParameterList","src":"2345:53:3"}],"id":507,"name":"EventDefinition","src":"2328:71:3"},{"attributes":{"anonymous":false,"documentation":null,"name":"MultihashChanged"},"children":[{"children":[{"attributes":{"constant":false,"indexed":true,"name":"node","scope":513,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":508,"name":"ElementaryTypeName","src":"2427:7:3"}],"id":509,"name":"VariableDeclaration","src":"2427:20:3"},{"attributes":{"constant":false,"indexed":false,"name":"hash","scope":513,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":510,"name":"ElementaryTypeName","src":"2449:5:3"}],"id":511,"name":"VariableDeclaration","src":"2449:10:3"}],"id":512,"name":"ParameterList","src":"2426:34:3"}],"id":513,"name":"EventDefinition","src":"2404:57:3"},{"attributes":{"canonicalName":"PublicResolver.PublicKey","name":"PublicKey","scope":948,"visibility":"public"},"children":[{"attributes":{"constant":false,"name":"x","scope":518,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":514,"name":"ElementaryTypeName","src":"2494:7:3"}],"id":515,"name":"VariableDeclaration","src":"2494:9:3"},{"attributes":{"constant":false,"name":"y","scope":518,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":516,"name":"ElementaryTypeName","src":"2513:7:3"}],"id":517,"name":"VariableDeclaration","src":"2513:9:3"}],"id":518,"name":"StructDefinition","src":"2467:62:3"},{"attributes":{"canonicalName":"PublicResolver.Record","name":"Record","scope":948,"visibility":"public"},"children":[{"attributes":{"constant":false,"name":"addr","scope":537,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":519,"name":"ElementaryTypeName","src":"2559:7:3"}],"id":520,"name":"VariableDeclaration","src":"2559:12:3"},{"attributes":{"constant":false,"name":"content","scope":537,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":521,"name":"ElementaryTypeName","src":"2581:7:3"}],"id":522,"name":"VariableDeclaration","src":"2581:15:3"},{"attributes":{"constant":false,"name":"name","scope":537,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":523,"name":"ElementaryTypeName","src":"2606:6:3"}],"id":524,"name":"VariableDeclaration","src":"2606:11:3"},{"attributes":{"constant":false,"name":"pubkey","scope":537,"stateVariable":false,"storageLocation":"default","type":"struct PublicResolver.PublicKey","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"PublicKey","referencedDeclaration":518,"type":"struct PublicResolver.PublicKey"},"id":525,"name":"UserDefinedTypeName","src":"2627:9:3"}],"id":526,"name":"VariableDeclaration","src":"2627:16:3"},{"attributes":{"constant":false,"name":"text","scope":537,"stateVariable":false,"storageLocation":"default","type":"mapping(string => string)","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"mapping(string => string)"},"children":[{"attributes":{"name":"string","type":"string"},"id":527,"name":"ElementaryTypeName","src":"2661:6:3"},{"attributes":{"name":"string","type":"string"},"id":528,"name":"ElementaryTypeName","src":"2669:6:3"}],"id":529,"name":"Mapping","src":"2653:23:3"}],"id":530,"name":"VariableDeclaration","src":"2653:28:3"},{"attributes":{"constant":false,"name":"abis","scope":537,"stateVariable":false,"storageLocation":"default","type":"mapping(uint256 => bytes)","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"mapping(uint256 => bytes)"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":531,"name":"ElementaryTypeName","src":"2699:7:3"},{"attributes":{"name":"bytes","type":"bytes"},"id":532,"name":"ElementaryTypeName","src":"2708:5:3"}],"id":533,"name":"Mapping","src":"2691:23:3"}],"id":534,"name":"VariableDeclaration","src":"2691:28:3"},{"attributes":{"constant":false,"name":"multihash","scope":537,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":535,"name":"ElementaryTypeName","src":"2729:5:3"}],"id":536,"name":"VariableDeclaration","src":"2729:15:3"}],"id":537,"name":"StructDefinition","src":"2535:216:3"},{"attributes":{"constant":false,"name":"ens","scope":948,"stateVariable":true,"storageLocation":"default","type":"contract ENS","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"ENS","referencedDeclaration":440,"type":"contract ENS"},"id":538,"name":"UserDefinedTypeName","src":"2757:3:3"}],"id":539,"name":"VariableDeclaration","src":"2757:7:3"},{"attributes":{"constant":false,"name":"records","scope":948,"stateVariable":true,"storageLocation":"default","type":"mapping(bytes32 => struct PublicResolver.Record)","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"mapping(bytes32 => struct PublicResolver.Record)"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":540,"name":"ElementaryTypeName","src":"2780:7:3"},{"attributes":{"contractScope":null,"name":"Record","referencedDeclaration":537,"type":"struct PublicResolver.Record"},"id":541,"name":"UserDefinedTypeName","src":"2791:6:3"}],"id":542,"name":"Mapping","src":"2771:27:3"}],"id":543,"name":"VariableDeclaration","src":"2771:35:3"},{"attributes":{"documentation":null,"name":"only_owner","visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":559,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":544,"name":"ElementaryTypeName","src":"2833:7:3"}],"id":545,"name":"VariableDeclaration","src":"2833:12:3"}],"id":546,"name":"ParameterList","src":"2832:14:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"overloadedDeclarations":[4032,4033],"referencedDeclaration":4032,"type":"function (bool) pure","value":"require"},"id":547,"name":"Identifier","src":"2857:7:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"owner","referencedDeclaration":425,"type":"function (bytes32) view external returns (address)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":539,"type":"contract ENS","value":"ens"},"id":548,"name":"Identifier","src":"2865:3:3"}],"id":549,"name":"MemberAccess","src":"2865:9:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":545,"type":"bytes32","value":"node"},"id":550,"name":"Identifier","src":"2875:4:3"}],"id":551,"name":"FunctionCall","src":"2865:15:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4029,"type":"msg","value":"msg"},"id":552,"name":"Identifier","src":"2884:3:3"}],"id":553,"name":"MemberAccess","src":"2884:10:3"}],"id":554,"name":"BinaryOperation","src":"2865:29:3"}],"id":555,"name":"FunctionCall","src":"2857:38:3"}],"id":556,"name":"ExpressionStatement","src":"2857:38:3"},{"id":557,"name":"PlaceholderStatement","src":"2905:1:3"}],"id":558,"name":"Block","src":"2847:66:3"}],"id":559,"name":"ModifierDefinition","src":"2813:100:3"},{"attributes":{"constant":false,"documentation":"Constructor.\n@param ensAddr The ENS registrar contract.","implemented":true,"isConstructor":true,"modifiers":[null],"name":"","payable":false,"scope":948,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"ensAddr","scope":569,"stateVariable":false,"storageLocation":"default","type":"contract ENS","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"ENS","referencedDeclaration":440,"type":"contract ENS"},"id":560,"name":"UserDefinedTypeName","src":"3017:3:3"}],"id":561,"name":"VariableDeclaration","src":"3017:11:3"}],"id":562,"name":"ParameterList","src":"3016:13:3"},{"attributes":{"parameters":[null]},"children":[],"id":563,"name":"ParameterList","src":"3037:0:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"contract ENS"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":539,"type":"contract ENS","value":"ens"},"id":564,"name":"Identifier","src":"3047:3:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":561,"type":"contract ENS","value":"ensAddr"},"id":565,"name":"Identifier","src":"3053:7:3"}],"id":566,"name":"Assignment","src":"3047:13:3"}],"id":567,"name":"ExpressionStatement","src":"3047:13:3"}],"id":568,"name":"Block","src":"3037:30:3"}],"id":569,"name":"FunctionDefinition","src":"3005:62:3"},{"attributes":{"constant":false,"documentation":"Sets the address associated with an ENS node.\nMay only be called by the owner of that node in the ENS registry.\n@param node The node to update.\n@param addr The address to set.","implemented":true,"isConstructor":false,"name":"setAddr","payable":false,"scope":948,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":592,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":570,"name":"ElementaryTypeName","src":"3310:7:3"}],"id":571,"name":"VariableDeclaration","src":"3310:12:3"},{"attributes":{"constant":false,"name":"addr","scope":592,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":572,"name":"ElementaryTypeName","src":"3324:7:3"}],"id":573,"name":"VariableDeclaration","src":"3324:12:3"}],"id":574,"name":"ParameterList","src":"3309:28:3"},{"attributes":{"parameters":[null]},"children":[],"id":578,"name":"ParameterList","src":"3362:0:3"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":559,"type":"modifier (bytes32)","value":"only_owner"},"id":575,"name":"Identifier","src":"3345:10:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":571,"type":"bytes32","value":"node"},"id":576,"name":"Identifier","src":"3356:4:3"}],"id":577,"name":"ModifierInvocation","src":"3345:16:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"address"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"addr","referencedDeclaration":520,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":543,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":579,"name":"Identifier","src":"3372:7:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":571,"type":"bytes32","value":"node"},"id":580,"name":"Identifier","src":"3380:4:3"}],"id":581,"name":"IndexAccess","src":"3372:13:3"}],"id":582,"name":"MemberAccess","src":"3372:18:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":573,"type":"address","value":"addr"},"id":583,"name":"Identifier","src":"3393:4:3"}],"id":584,"name":"Assignment","src":"3372:25:3"}],"id":585,"name":"ExpressionStatement","src":"3372:25:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":473,"type":"function (bytes32,address)","value":"AddrChanged"},"id":586,"name":"Identifier","src":"3412:11:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":571,"type":"bytes32","value":"node"},"id":587,"name":"Identifier","src":"3424:4:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":573,"type":"address","value":"addr"},"id":588,"name":"Identifier","src":"3430:4:3"}],"id":589,"name":"FunctionCall","src":"3412:23:3"}],"id":590,"name":"EmitStatement","src":"3407:28:3"}],"id":591,"name":"Block","src":"3362:80:3"}],"id":592,"name":"FunctionDefinition","src":"3293:149:3"},{"attributes":{"constant":false,"documentation":"Sets the content hash associated with an ENS node.\nMay only be called by the owner of that node in the ENS registry.\nNote that this resource type is not standardized, and will likely change\nin future to a resource type based on multihash.\n@param node The node to update.\n@param hash The content hash to set","implemented":true,"isConstructor":false,"name":"setContent","payable":false,"scope":948,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":615,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":593,"name":"ElementaryTypeName","src":"3833:7:3"}],"id":594,"name":"VariableDeclaration","src":"3833:12:3"},{"attributes":{"constant":false,"name":"hash","scope":615,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":595,"name":"ElementaryTypeName","src":"3847:7:3"}],"id":596,"name":"VariableDeclaration","src":"3847:12:3"}],"id":597,"name":"ParameterList","src":"3832:28:3"},{"attributes":{"parameters":[null]},"children":[],"id":601,"name":"ParameterList","src":"3885:0:3"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":559,"type":"modifier (bytes32)","value":"only_owner"},"id":598,"name":"Identifier","src":"3868:10:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":594,"type":"bytes32","value":"node"},"id":599,"name":"Identifier","src":"3879:4:3"}],"id":600,"name":"ModifierInvocation","src":"3868:16:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"content","referencedDeclaration":522,"type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":543,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":602,"name":"Identifier","src":"3895:7:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":594,"type":"bytes32","value":"node"},"id":603,"name":"Identifier","src":"3903:4:3"}],"id":604,"name":"IndexAccess","src":"3895:13:3"}],"id":605,"name":"MemberAccess","src":"3895:21:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":596,"type":"bytes32","value":"hash"},"id":606,"name":"Identifier","src":"3919:4:3"}],"id":607,"name":"Assignment","src":"3895:28:3"}],"id":608,"name":"ExpressionStatement","src":"3895:28:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[null],"referencedDeclaration":479,"type":"function (bytes32,bytes32)","value":"ContentChanged"},"id":609,"name":"Identifier","src":"3938:14:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":594,"type":"bytes32","value":"node"},"id":610,"name":"Identifier","src":"3953:4:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":596,"type":"bytes32","value":"hash"},"id":611,"name":"Identifier","src":"3959:4:3"}],"id":612,"name":"FunctionCall","src":"3938:26:3"}],"id":613,"name":"EmitStatement","src":"3933:31:3"}],"id":614,"name":"Block","src":"3885:86:3"}],"id":615,"name":"FunctionDefinition","src":"3813:158:3"},{"attributes":{"constant":false,"documentation":"Sets the multihash associated with an ENS node.\nMay only be called by the owner of that node in the ENS registry.\n@param node The node to update.\n@param hash The multihash to set","implemented":true,"isConstructor":false,"name":"setMultihash","payable":false,"scope":948,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":638,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":616,"name":"ElementaryTypeName","src":"4222:7:3"}],"id":617,"name":"VariableDeclaration","src":"4222:12:3"},{"attributes":{"constant":false,"name":"hash","scope":638,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":618,"name":"ElementaryTypeName","src":"4236:5:3"}],"id":619,"name":"VariableDeclaration","src":"4236:10:3"}],"id":620,"name":"ParameterList","src":"4221:26:3"},{"attributes":{"parameters":[null]},"children":[],"id":624,"name":"ParameterList","src":"4272:0:3"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":559,"type":"modifier (bytes32)","value":"only_owner"},"id":621,"name":"Identifier","src":"4255:10:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":617,"type":"bytes32","value":"node"},"id":622,"name":"Identifier","src":"4266:4:3"}],"id":623,"name":"ModifierInvocation","src":"4255:16:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"multihash","referencedDeclaration":536,"type":"bytes storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":543,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":625,"name":"Identifier","src":"4282:7:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":617,"type":"bytes32","value":"node"},"id":626,"name":"Identifier","src":"4290:4:3"}],"id":627,"name":"IndexAccess","src":"4282:13:3"}],"id":628,"name":"MemberAccess","src":"4282:23:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":619,"type":"bytes memory","value":"hash"},"id":629,"name":"Identifier","src":"4308:4:3"}],"id":630,"name":"Assignment","src":"4282:30:3"}],"id":631,"name":"ExpressionStatement","src":"4282:30:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"overloadedDeclarations":[null],"referencedDeclaration":513,"type":"function (bytes32,bytes memory)","value":"MultihashChanged"},"id":632,"name":"Identifier","src":"4327:16:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":617,"type":"bytes32","value":"node"},"id":633,"name":"Identifier","src":"4344:4:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":619,"type":"bytes memory","value":"hash"},"id":634,"name":"Identifier","src":"4350:4:3"}],"id":635,"name":"FunctionCall","src":"4327:28:3"}],"id":636,"name":"EmitStatement","src":"4322:33:3"}],"id":637,"name":"Block","src":"4272:90:3"}],"id":638,"name":"FunctionDefinition","src":"4200:162:3"},{"attributes":{"constant":false,"documentation":"Sets the name associated with an ENS node, for reverse records.\nMay only be called by the owner of that node in the ENS registry.\n@param node The node to update.\n@param name The name to set.","implemented":true,"isConstructor":false,"name":"setName","payable":false,"scope":948,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":661,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":639,"name":"ElementaryTypeName","src":"4624:7:3"}],"id":640,"name":"VariableDeclaration","src":"4624:12:3"},{"attributes":{"constant":false,"name":"name","scope":661,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":641,"name":"ElementaryTypeName","src":"4638:6:3"}],"id":642,"name":"VariableDeclaration","src":"4638:11:3"}],"id":643,"name":"ParameterList","src":"4623:27:3"},{"attributes":{"parameters":[null]},"children":[],"id":647,"name":"ParameterList","src":"4675:0:3"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":559,"type":"modifier (bytes32)","value":"only_owner"},"id":644,"name":"Identifier","src":"4658:10:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":640,"type":"bytes32","value":"node"},"id":645,"name":"Identifier","src":"4669:4:3"}],"id":646,"name":"ModifierInvocation","src":"4658:16:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"name","referencedDeclaration":524,"type":"string storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":543,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":648,"name":"Identifier","src":"4685:7:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":640,"type":"bytes32","value":"node"},"id":649,"name":"Identifier","src":"4693:4:3"}],"id":650,"name":"IndexAccess","src":"4685:13:3"}],"id":651,"name":"MemberAccess","src":"4685:18:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":642,"type":"string memory","value":"name"},"id":652,"name":"Identifier","src":"4706:4:3"}],"id":653,"name":"Assignment","src":"4685:25:3"}],"id":654,"name":"ExpressionStatement","src":"4685:25:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"overloadedDeclarations":[null],"referencedDeclaration":485,"type":"function (bytes32,string memory)","value":"NameChanged"},"id":655,"name":"Identifier","src":"4725:11:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":640,"type":"bytes32","value":"node"},"id":656,"name":"Identifier","src":"4737:4:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":642,"type":"string memory","value":"name"},"id":657,"name":"Identifier","src":"4743:4:3"}],"id":658,"name":"FunctionCall","src":"4725:23:3"}],"id":659,"name":"EmitStatement","src":"4720:28:3"}],"id":660,"name":"Block","src":"4675:80:3"}],"id":661,"name":"FunctionDefinition","src":"4607:148:3"},{"attributes":{"constant":false,"documentation":"Sets the ABI associated with an ENS node.\nNodes may have one ABI of each content type. To remove an ABI, set it to\nthe empty string.\n@param node The node to update.\n@param contentType The content type of the ABI\n@param data The ABI data.","implemented":true,"isConstructor":false,"name":"setABI","payable":false,"scope":948,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":700,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":662,"name":"ElementaryTypeName","src":"5073:7:3"}],"id":663,"name":"VariableDeclaration","src":"5073:12:3"},{"attributes":{"constant":false,"name":"contentType","scope":700,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":664,"name":"ElementaryTypeName","src":"5087:7:3"}],"id":665,"name":"VariableDeclaration","src":"5087:19:3"},{"attributes":{"constant":false,"name":"data","scope":700,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":666,"name":"ElementaryTypeName","src":"5108:5:3"}],"id":667,"name":"VariableDeclaration","src":"5108:10:3"}],"id":668,"name":"ParameterList","src":"5072:47:3"},{"attributes":{"parameters":[null]},"children":[],"id":672,"name":"ParameterList","src":"5144:0:3"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":559,"type":"modifier (bytes32)","value":"only_owner"},"id":669,"name":"Identifier","src":"5127:10:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":663,"type":"bytes32","value":"node"},"id":670,"name":"Identifier","src":"5138:4:3"}],"id":671,"name":"ModifierInvocation","src":"5127:16:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"overloadedDeclarations":[4032,4033],"referencedDeclaration":4032,"type":"function (bool) pure","value":"require"},"id":673,"name":"Identifier","src":"5199:7:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":665,"type":"uint256","value":"contentType"},"id":674,"name":"Identifier","src":"5209:11:3"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":675,"name":"Literal","src":"5223:1:3"}],"id":676,"name":"BinaryOperation","src":"5209:15:3"}],"id":677,"name":"TupleExpression","src":"5208:17:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":665,"type":"uint256","value":"contentType"},"id":678,"name":"Identifier","src":"5228:11:3"}],"id":679,"name":"BinaryOperation","src":"5208:31:3"}],"id":680,"name":"TupleExpression","src":"5207:33:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":681,"name":"Literal","src":"5244:1:3"}],"id":682,"name":"BinaryOperation","src":"5207:38:3"}],"id":683,"name":"FunctionCall","src":"5199:47:3"}],"id":684,"name":"ExpressionStatement","src":"5199:47:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"abis","referencedDeclaration":534,"type":"mapping(uint256 => bytes storage ref)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":543,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":685,"name":"Identifier","src":"5265:7:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":663,"type":"bytes32","value":"node"},"id":686,"name":"Identifier","src":"5273:4:3"}],"id":687,"name":"IndexAccess","src":"5265:13:3"}],"id":688,"name":"MemberAccess","src":"5265:18:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":665,"type":"uint256","value":"contentType"},"id":689,"name":"Identifier","src":"5284:11:3"}],"id":690,"name":"IndexAccess","src":"5265:31:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":667,"type":"bytes memory","value":"data"},"id":691,"name":"Identifier","src":"5299:4:3"}],"id":692,"name":"Assignment","src":"5265:38:3"}],"id":693,"name":"ExpressionStatement","src":"5265:38:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":491,"type":"function (bytes32,uint256)","value":"ABIChanged"},"id":694,"name":"Identifier","src":"5318:10:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":663,"type":"bytes32","value":"node"},"id":695,"name":"Identifier","src":"5329:4:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":665,"type":"uint256","value":"contentType"},"id":696,"name":"Identifier","src":"5335:11:3"}],"id":697,"name":"FunctionCall","src":"5318:29:3"}],"id":698,"name":"EmitStatement","src":"5313:34:3"}],"id":699,"name":"Block","src":"5144:210:3"}],"id":700,"name":"FunctionDefinition","src":"5057:297:3"},{"attributes":{"constant":false,"documentation":"Sets the SECP256k1 public key associated with an ENS node.\n@param node The ENS node to query\n@param x the X coordinate of the curve point for the public key.\n@param y the Y coordinate of the curve point for the public key.","implemented":true,"isConstructor":false,"name":"setPubkey","payable":false,"scope":948,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":729,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":701,"name":"ElementaryTypeName","src":"5650:7:3"}],"id":702,"name":"VariableDeclaration","src":"5650:12:3"},{"attributes":{"constant":false,"name":"x","scope":729,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":703,"name":"ElementaryTypeName","src":"5664:7:3"}],"id":704,"name":"VariableDeclaration","src":"5664:9:3"},{"attributes":{"constant":false,"name":"y","scope":729,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":705,"name":"ElementaryTypeName","src":"5675:7:3"}],"id":706,"name":"VariableDeclaration","src":"5675:9:3"}],"id":707,"name":"ParameterList","src":"5649:36:3"},{"attributes":{"parameters":[null]},"children":[],"id":711,"name":"ParameterList","src":"5710:0:3"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":559,"type":"modifier (bytes32)","value":"only_owner"},"id":708,"name":"Identifier","src":"5693:10:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":702,"type":"bytes32","value":"node"},"id":709,"name":"Identifier","src":"5704:4:3"}],"id":710,"name":"ModifierInvocation","src":"5693:16:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"struct PublicResolver.PublicKey storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"pubkey","referencedDeclaration":526,"type":"struct PublicResolver.PublicKey storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":543,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":712,"name":"Identifier","src":"5720:7:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":702,"type":"bytes32","value":"node"},"id":713,"name":"Identifier","src":"5728:4:3"}],"id":714,"name":"IndexAccess","src":"5720:13:3"}],"id":715,"name":"MemberAccess","src":"5720:20:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":true,"lValueRequested":false,"names":[null],"type":"struct PublicResolver.PublicKey memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[null],"referencedDeclaration":518,"type":"type(struct PublicResolver.PublicKey storage pointer)","value":"PublicKey"},"id":716,"name":"Identifier","src":"5743:9:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":704,"type":"bytes32","value":"x"},"id":717,"name":"Identifier","src":"5753:1:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":706,"type":"bytes32","value":"y"},"id":718,"name":"Identifier","src":"5756:1:3"}],"id":719,"name":"FunctionCall","src":"5743:15:3"}],"id":720,"name":"Assignment","src":"5720:38:3"}],"id":721,"name":"ExpressionStatement","src":"5720:38:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[null],"referencedDeclaration":499,"type":"function (bytes32,bytes32,bytes32)","value":"PubkeyChanged"},"id":722,"name":"Identifier","src":"5773:13:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":702,"type":"bytes32","value":"node"},"id":723,"name":"Identifier","src":"5787:4:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":704,"type":"bytes32","value":"x"},"id":724,"name":"Identifier","src":"5793:1:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":706,"type":"bytes32","value":"y"},"id":725,"name":"Identifier","src":"5796:1:3"}],"id":726,"name":"FunctionCall","src":"5773:25:3"}],"id":727,"name":"EmitStatement","src":"5768:30:3"}],"id":728,"name":"Block","src":"5710:95:3"}],"id":729,"name":"FunctionDefinition","src":"5631:174:3"},{"attributes":{"constant":false,"documentation":"Sets the text data associated with an ENS node and key.\nMay only be called by the owner of that node in the ENS registry.\n@param node The node to update.\n@param key The key to set.\n@param value The text data value to set.","implemented":true,"isConstructor":false,"name":"setText","payable":false,"scope":948,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":757,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":730,"name":"ElementaryTypeName","src":"6101:7:3"}],"id":731,"name":"VariableDeclaration","src":"6101:12:3"},{"attributes":{"constant":false,"name":"key","scope":757,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":732,"name":"ElementaryTypeName","src":"6115:6:3"}],"id":733,"name":"VariableDeclaration","src":"6115:10:3"},{"attributes":{"constant":false,"name":"value","scope":757,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":734,"name":"ElementaryTypeName","src":"6127:6:3"}],"id":735,"name":"VariableDeclaration","src":"6127:12:3"}],"id":736,"name":"ParameterList","src":"6100:40:3"},{"attributes":{"parameters":[null]},"children":[],"id":740,"name":"ParameterList","src":"6165:0:3"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":559,"type":"modifier (bytes32)","value":"only_owner"},"id":737,"name":"Identifier","src":"6148:10:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":731,"type":"bytes32","value":"node"},"id":738,"name":"Identifier","src":"6159:4:3"}],"id":739,"name":"ModifierInvocation","src":"6148:16:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"text","referencedDeclaration":530,"type":"mapping(string memory => string storage ref)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":543,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":741,"name":"Identifier","src":"6175:7:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":731,"type":"bytes32","value":"node"},"id":742,"name":"Identifier","src":"6183:4:3"}],"id":743,"name":"IndexAccess","src":"6175:13:3"}],"id":744,"name":"MemberAccess","src":"6175:18:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":733,"type":"string memory","value":"key"},"id":745,"name":"Identifier","src":"6194:3:3"}],"id":746,"name":"IndexAccess","src":"6175:23:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":735,"type":"string memory","value":"value"},"id":747,"name":"Identifier","src":"6201:5:3"}],"id":748,"name":"Assignment","src":"6175:31:3"}],"id":749,"name":"ExpressionStatement","src":"6175:31:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"overloadedDeclarations":[null],"referencedDeclaration":507,"type":"function (bytes32,string memory,string memory)","value":"TextChanged"},"id":750,"name":"Identifier","src":"6221:11:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":731,"type":"bytes32","value":"node"},"id":751,"name":"Identifier","src":"6233:4:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":733,"type":"string memory","value":"key"},"id":752,"name":"Identifier","src":"6239:3:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":733,"type":"string memory","value":"key"},"id":753,"name":"Identifier","src":"6244:3:3"}],"id":754,"name":"FunctionCall","src":"6221:27:3"}],"id":755,"name":"EmitStatement","src":"6216:32:3"}],"id":756,"name":"Block","src":"6165:90:3"}],"id":757,"name":"FunctionDefinition","src":"6084:171:3"},{"attributes":{"constant":true,"documentation":"Returns the text data associated with an ENS node and key.\n@param node The ENS node to query.\n@param key The text data key to query.\n@return The associated text data.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"text","payable":false,"scope":948,"stateMutability":"view","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":774,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":758,"name":"ElementaryTypeName","src":"6486:7:3"}],"id":759,"name":"VariableDeclaration","src":"6486:12:3"},{"attributes":{"constant":false,"name":"key","scope":774,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":760,"name":"ElementaryTypeName","src":"6500:6:3"}],"id":761,"name":"VariableDeclaration","src":"6500:10:3"}],"id":762,"name":"ParameterList","src":"6485:26:3"},{"children":[{"attributes":{"constant":false,"name":"","scope":774,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":763,"name":"ElementaryTypeName","src":"6533:6:3"}],"id":764,"name":"VariableDeclaration","src":"6533:6:3"}],"id":765,"name":"ParameterList","src":"6532:8:3"},{"children":[{"attributes":{"functionReturnParameters":765},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"text","referencedDeclaration":530,"type":"mapping(string memory => string storage ref)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":543,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":766,"name":"Identifier","src":"6558:7:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":759,"type":"bytes32","value":"node"},"id":767,"name":"Identifier","src":"6566:4:3"}],"id":768,"name":"IndexAccess","src":"6558:13:3"}],"id":769,"name":"MemberAccess","src":"6558:18:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":761,"type":"string memory","value":"key"},"id":770,"name":"Identifier","src":"6577:3:3"}],"id":771,"name":"IndexAccess","src":"6558:23:3"}],"id":772,"name":"Return","src":"6551:30:3"}],"id":773,"name":"Block","src":"6541:47:3"}],"id":774,"name":"FunctionDefinition","src":"6472:116:3"},{"attributes":{"constant":true,"documentation":"Returns the SECP256k1 public key associated with an ENS node.\nDefined in EIP 619.\n@param node The ENS node to query\n@return x, y the X and Y coordinates of the curve point for the public key.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"pubkey","payable":false,"scope":948,"stateMutability":"view","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":796,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":775,"name":"ElementaryTypeName","src":"6846:7:3"}],"id":776,"name":"VariableDeclaration","src":"6846:12:3"}],"id":777,"name":"ParameterList","src":"6845:14:3"},{"children":[{"attributes":{"constant":false,"name":"x","scope":796,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":778,"name":"ElementaryTypeName","src":"6881:7:3"}],"id":779,"name":"VariableDeclaration","src":"6881:9:3"},{"attributes":{"constant":false,"name":"y","scope":796,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":780,"name":"ElementaryTypeName","src":"6892:7:3"}],"id":781,"name":"VariableDeclaration","src":"6892:9:3"}],"id":782,"name":"ParameterList","src":"6880:22:3"},{"children":[{"attributes":{"functionReturnParameters":782},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"tuple(bytes32,bytes32)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"x","referencedDeclaration":515,"type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"pubkey","referencedDeclaration":526,"type":"struct PublicResolver.PublicKey storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":543,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":783,"name":"Identifier","src":"6921:7:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":776,"type":"bytes32","value":"node"},"id":784,"name":"Identifier","src":"6929:4:3"}],"id":785,"name":"IndexAccess","src":"6921:13:3"}],"id":786,"name":"MemberAccess","src":"6921:20:3"}],"id":787,"name":"MemberAccess","src":"6921:22:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"y","referencedDeclaration":517,"type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"pubkey","referencedDeclaration":526,"type":"struct PublicResolver.PublicKey storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":543,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":788,"name":"Identifier","src":"6945:7:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":776,"type":"bytes32","value":"node"},"id":789,"name":"Identifier","src":"6953:4:3"}],"id":790,"name":"IndexAccess","src":"6945:13:3"}],"id":791,"name":"MemberAccess","src":"6945:20:3"}],"id":792,"name":"MemberAccess","src":"6945:22:3"}],"id":793,"name":"TupleExpression","src":"6920:48:3"}],"id":794,"name":"Return","src":"6913:55:3"}],"id":795,"name":"Block","src":"6903:72:3"}],"id":796,"name":"FunctionDefinition","src":"6830:145:3"},{"attributes":{"constant":true,"documentation":"Returns the ABI associated with an ENS node.\nDefined in EIP205.\n@param node The ENS node to query\n@param contentTypes A bitwise OR of the ABI formats accepted by the caller.\n@return contentType The content type of the return value\n@return data The ABI data","implemented":true,"isConstructor":false,"modifiers":[null],"name":"ABI","payable":false,"scope":948,"stateMutability":"view","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":855,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":797,"name":"ElementaryTypeName","src":"7309:7:3"}],"id":798,"name":"VariableDeclaration","src":"7309:12:3"},{"attributes":{"constant":false,"name":"contentTypes","scope":855,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":799,"name":"ElementaryTypeName","src":"7323:7:3"}],"id":800,"name":"VariableDeclaration","src":"7323:20:3"}],"id":801,"name":"ParameterList","src":"7308:36:3"},{"children":[{"attributes":{"constant":false,"name":"contentType","scope":855,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":802,"name":"ElementaryTypeName","src":"7366:7:3"}],"id":803,"name":"VariableDeclaration","src":"7366:19:3"},{"attributes":{"constant":false,"name":"data","scope":855,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":804,"name":"ElementaryTypeName","src":"7387:5:3"}],"id":805,"name":"VariableDeclaration","src":"7387:10:3"}],"id":806,"name":"ParameterList","src":"7365:33:3"},{"children":[{"attributes":{"assignments":[808]},"children":[{"attributes":{"constant":false,"name":"record","scope":855,"stateVariable":false,"storageLocation":"storage","type":"struct PublicResolver.Record","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"Record","referencedDeclaration":537,"type":"struct PublicResolver.Record"},"id":807,"name":"UserDefinedTypeName","src":"7409:6:3"}],"id":808,"name":"VariableDeclaration","src":"7409:21:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":543,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":809,"name":"Identifier","src":"7433:7:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":798,"type":"bytes32","value":"node"},"id":810,"name":"Identifier","src":"7441:4:3"}],"id":811,"name":"IndexAccess","src":"7433:13:3"}],"id":812,"name":"VariableDeclarationStatement","src":"7409:37:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":803,"type":"uint256","value":"contentType"},"id":813,"name":"Identifier","src":"7461:11:3"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":814,"name":"Literal","src":"7475:1:3"}],"id":815,"name":"Assignment","src":"7461:15:3"}],"id":816,"name":"ExpressionStatement","src":"7461:15:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":803,"type":"uint256","value":"contentType"},"id":817,"name":"Identifier","src":"7478:11:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":800,"type":"uint256","value":"contentTypes"},"id":818,"name":"Identifier","src":"7493:12:3"}],"id":819,"name":"BinaryOperation","src":"7478:27:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<<=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":803,"type":"uint256","value":"contentType"},"id":820,"name":"Identifier","src":"7507:11:3"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":821,"name":"Literal","src":"7523:1:3"}],"id":822,"name":"Assignment","src":"7507:17:3"}],"id":823,"name":"ExpressionStatement","src":"7507:17:3"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&&","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":803,"type":"uint256","value":"contentType"},"id":824,"name":"Identifier","src":"7545:11:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":800,"type":"uint256","value":"contentTypes"},"id":825,"name":"Identifier","src":"7559:12:3"}],"id":826,"name":"BinaryOperation","src":"7545:26:3"}],"id":827,"name":"TupleExpression","src":"7544:28:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":828,"name":"Literal","src":"7576:1:3"}],"id":829,"name":"BinaryOperation","src":"7544:33:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"abis","referencedDeclaration":534,"type":"mapping(uint256 => bytes storage ref)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":808,"type":"struct PublicResolver.Record storage pointer","value":"record"},"id":830,"name":"Identifier","src":"7581:6:3"}],"id":831,"name":"MemberAccess","src":"7581:11:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":803,"type":"uint256","value":"contentType"},"id":832,"name":"Identifier","src":"7593:11:3"}],"id":833,"name":"IndexAccess","src":"7581:24:3"}],"id":834,"name":"MemberAccess","src":"7581:31:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":835,"name":"Literal","src":"7615:1:3"}],"id":836,"name":"BinaryOperation","src":"7581:35:3"}],"id":837,"name":"BinaryOperation","src":"7544:72:3"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":805,"type":"bytes memory","value":"data"},"id":838,"name":"Identifier","src":"7636:4:3"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"abis","referencedDeclaration":534,"type":"mapping(uint256 => bytes storage ref)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":808,"type":"struct PublicResolver.Record storage pointer","value":"record"},"id":839,"name":"Identifier","src":"7643:6:3"}],"id":840,"name":"MemberAccess","src":"7643:11:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":803,"type":"uint256","value":"contentType"},"id":841,"name":"Identifier","src":"7655:11:3"}],"id":842,"name":"IndexAccess","src":"7643:24:3"}],"id":843,"name":"Assignment","src":"7636:31:3"}],"id":844,"name":"ExpressionStatement","src":"7636:31:3"},{"attributes":{"expression":null,"functionReturnParameters":806},"id":845,"name":"Return","src":"7685:7:3"}],"id":846,"name":"Block","src":"7618:88:3"}],"id":847,"name":"IfStatement","src":"7540:166:3"}],"id":848,"name":"Block","src":"7526:190:3"}],"id":849,"name":"ForStatement","src":"7456:260:3"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":803,"type":"uint256","value":"contentType"},"id":850,"name":"Identifier","src":"7725:11:3"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":851,"name":"Literal","src":"7739:1:3"}],"id":852,"name":"Assignment","src":"7725:15:3"}],"id":853,"name":"ExpressionStatement","src":"7725:15:3"}],"id":854,"name":"Block","src":"7399:348:3"}],"id":855,"name":"FunctionDefinition","src":"7296:451:3"},{"attributes":{"constant":true,"documentation":"Returns the name associated with an ENS node, for reverse records.\nDefined in EIP181.\n@param node The ENS node to query.\n@return The associated name.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"name","payable":false,"scope":948,"stateMutability":"view","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":868,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":856,"name":"ElementaryTypeName","src":"7961:7:3"}],"id":857,"name":"VariableDeclaration","src":"7961:12:3"}],"id":858,"name":"ParameterList","src":"7960:14:3"},{"children":[{"attributes":{"constant":false,"name":"","scope":868,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":859,"name":"ElementaryTypeName","src":"7996:6:3"}],"id":860,"name":"VariableDeclaration","src":"7996:6:3"}],"id":861,"name":"ParameterList","src":"7995:8:3"},{"children":[{"attributes":{"functionReturnParameters":861},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"name","referencedDeclaration":524,"type":"string storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":543,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":862,"name":"Identifier","src":"8021:7:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":857,"type":"bytes32","value":"node"},"id":863,"name":"Identifier","src":"8029:4:3"}],"id":864,"name":"IndexAccess","src":"8021:13:3"}],"id":865,"name":"MemberAccess","src":"8021:18:3"}],"id":866,"name":"Return","src":"8014:25:3"}],"id":867,"name":"Block","src":"8004:42:3"}],"id":868,"name":"FunctionDefinition","src":"7947:99:3"},{"attributes":{"constant":true,"documentation":"Returns the content hash associated with an ENS node.\nNote that this resource type is not standardized, and will likely change\nin future to a resource type based on multihash.\n@param node The ENS node to query.\n@return The associated content hash.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"content","payable":false,"scope":948,"stateMutability":"view","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":881,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":869,"name":"ElementaryTypeName","src":"8368:7:3"}],"id":870,"name":"VariableDeclaration","src":"8368:12:3"}],"id":871,"name":"ParameterList","src":"8367:14:3"},{"children":[{"attributes":{"constant":false,"name":"","scope":881,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":872,"name":"ElementaryTypeName","src":"8403:7:3"}],"id":873,"name":"VariableDeclaration","src":"8403:7:3"}],"id":874,"name":"ParameterList","src":"8402:9:3"},{"children":[{"attributes":{"functionReturnParameters":874},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"content","referencedDeclaration":522,"type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":543,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":875,"name":"Identifier","src":"8429:7:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":870,"type":"bytes32","value":"node"},"id":876,"name":"Identifier","src":"8437:4:3"}],"id":877,"name":"IndexAccess","src":"8429:13:3"}],"id":878,"name":"MemberAccess","src":"8429:21:3"}],"id":879,"name":"Return","src":"8422:28:3"}],"id":880,"name":"Block","src":"8412:45:3"}],"id":881,"name":"FunctionDefinition","src":"8351:106:3"},{"attributes":{"constant":true,"documentation":"Returns the multihash associated with an ENS node.\n@param node The ENS node to query.\n@return The associated multihash.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"multihash","payable":false,"scope":948,"stateMutability":"view","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":894,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":882,"name":"ElementaryTypeName","src":"8639:7:3"}],"id":883,"name":"VariableDeclaration","src":"8639:12:3"}],"id":884,"name":"ParameterList","src":"8638:14:3"},{"children":[{"attributes":{"constant":false,"name":"","scope":894,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":885,"name":"ElementaryTypeName","src":"8674:5:3"}],"id":886,"name":"VariableDeclaration","src":"8674:5:3"}],"id":887,"name":"ParameterList","src":"8673:7:3"},{"children":[{"attributes":{"functionReturnParameters":887},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"multihash","referencedDeclaration":536,"type":"bytes storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":543,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":888,"name":"Identifier","src":"8698:7:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":883,"type":"bytes32","value":"node"},"id":889,"name":"Identifier","src":"8706:4:3"}],"id":890,"name":"IndexAccess","src":"8698:13:3"}],"id":891,"name":"MemberAccess","src":"8698:23:3"}],"id":892,"name":"Return","src":"8691:30:3"}],"id":893,"name":"Block","src":"8681:47:3"}],"id":894,"name":"FunctionDefinition","src":"8620:108:3"},{"attributes":{"constant":true,"documentation":"Returns the address associated with an ENS node.\n@param node The ENS node to query.\n@return The associated address.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"addr","payable":false,"scope":948,"stateMutability":"view","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":907,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":895,"name":"ElementaryTypeName","src":"8901:7:3"}],"id":896,"name":"VariableDeclaration","src":"8901:12:3"}],"id":897,"name":"ParameterList","src":"8900:14:3"},{"children":[{"attributes":{"constant":false,"name":"","scope":907,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":898,"name":"ElementaryTypeName","src":"8936:7:3"}],"id":899,"name":"VariableDeclaration","src":"8936:7:3"}],"id":900,"name":"ParameterList","src":"8935:9:3"},{"children":[{"attributes":{"functionReturnParameters":900},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"addr","referencedDeclaration":520,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":543,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":901,"name":"Identifier","src":"8962:7:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":896,"type":"bytes32","value":"node"},"id":902,"name":"Identifier","src":"8970:4:3"}],"id":903,"name":"IndexAccess","src":"8962:13:3"}],"id":904,"name":"MemberAccess","src":"8962:18:3"}],"id":905,"name":"Return","src":"8955:25:3"}],"id":906,"name":"Block","src":"8945:42:3"}],"id":907,"name":"FunctionDefinition","src":"8887:100:3"},{"attributes":{"constant":true,"documentation":"Returns true if the resolver implements the interface specified by the provided hash.\n@param interfaceID The ID of the interface to check for.\n@return True if the contract implements the requested interface.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"supportsInterface","payable":false,"scope":948,"stateMutability":"pure","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"interfaceID","scope":947,"stateVariable":false,"storageLocation":"default","type":"bytes4","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes4","type":"bytes4"},"id":908,"name":"ElementaryTypeName","src":"9265:6:3"}],"id":909,"name":"VariableDeclaration","src":"9265:18:3"}],"id":910,"name":"ParameterList","src":"9264:20:3"},{"children":[{"attributes":{"constant":false,"name":"","scope":947,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":911,"name":"ElementaryTypeName","src":"9306:4:3"}],"id":912,"name":"VariableDeclaration","src":"9306:4:3"}],"id":913,"name":"ParameterList","src":"9305:6:3"},{"children":[{"attributes":{"functionReturnParameters":913},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"||","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"||","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"||","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"||","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"||","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"||","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"||","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":909,"type":"bytes4","value":"interfaceID"},"id":914,"name":"Identifier","src":"9329:11:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":449,"type":"bytes4","value":"ADDR_INTERFACE_ID"},"id":915,"name":"Identifier","src":"9344:17:3"}],"id":916,"name":"BinaryOperation","src":"9329:32:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":909,"type":"bytes4","value":"interfaceID"},"id":917,"name":"Identifier","src":"9373:11:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":452,"type":"bytes4","value":"CONTENT_INTERFACE_ID"},"id":918,"name":"Identifier","src":"9388:20:3"}],"id":919,"name":"BinaryOperation","src":"9373:35:3"}],"id":920,"name":"BinaryOperation","src":"9329:79:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":909,"type":"bytes4","value":"interfaceID"},"id":921,"name":"Identifier","src":"9420:11:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":455,"type":"bytes4","value":"NAME_INTERFACE_ID"},"id":922,"name":"Identifier","src":"9435:17:3"}],"id":923,"name":"BinaryOperation","src":"9420:32:3"}],"id":924,"name":"BinaryOperation","src":"9329:123:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":909,"type":"bytes4","value":"interfaceID"},"id":925,"name":"Identifier","src":"9464:11:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":458,"type":"bytes4","value":"ABI_INTERFACE_ID"},"id":926,"name":"Identifier","src":"9479:16:3"}],"id":927,"name":"BinaryOperation","src":"9464:31:3"}],"id":928,"name":"BinaryOperation","src":"9329:166:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":909,"type":"bytes4","value":"interfaceID"},"id":929,"name":"Identifier","src":"9507:11:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":461,"type":"bytes4","value":"PUBKEY_INTERFACE_ID"},"id":930,"name":"Identifier","src":"9522:19:3"}],"id":931,"name":"BinaryOperation","src":"9507:34:3"}],"id":932,"name":"BinaryOperation","src":"9329:212:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":909,"type":"bytes4","value":"interfaceID"},"id":933,"name":"Identifier","src":"9553:11:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":464,"type":"bytes4","value":"TEXT_INTERFACE_ID"},"id":934,"name":"Identifier","src":"9568:17:3"}],"id":935,"name":"BinaryOperation","src":"9553:32:3"}],"id":936,"name":"BinaryOperation","src":"9329:256:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":909,"type":"bytes4","value":"interfaceID"},"id":937,"name":"Identifier","src":"9597:11:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":467,"type":"bytes4","value":"MULTIHASH_INTERFACE_ID"},"id":938,"name":"Identifier","src":"9612:22:3"}],"id":939,"name":"BinaryOperation","src":"9597:37:3"}],"id":940,"name":"BinaryOperation","src":"9329:305:3"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":909,"type":"bytes4","value":"interfaceID"},"id":941,"name":"Identifier","src":"9646:11:3"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":446,"type":"bytes4","value":"INTERFACE_META_ID"},"id":942,"name":"Identifier","src":"9661:17:3"}],"id":943,"name":"BinaryOperation","src":"9646:32:3"}],"id":944,"name":"BinaryOperation","src":"9329:349:3"}],"id":945,"name":"Return","src":"9322:356:3"}],"id":946,"name":"Block","src":"9312:373:3"}],"id":947,"name":"FunctionDefinition","src":"9238:447:3"}],"id":948,"name":"ContractDefinition","src":"1553:8134:3"}],"id":949,"name":"SourceUnit","src":"1406:8282:3"}},"externals/strings.sol":{"AST":{"attributes":{"absolutePath":"externals/strings.sol","exportedSymbols":{"strings":[3348]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".14"]},"id":1655,"name":"PragmaDirective","src":"2574:24:4"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"library","documentation":null,"fullyImplemented":true,"linearizedBaseContracts":[3348],"name":"strings","scope":3349},"children":[{"attributes":{"canonicalName":"strings.slice","name":"slice","scope":3348,"visibility":"public"},"children":[{"attributes":{"constant":false,"name":"_len","scope":1660,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1656,"name":"ElementaryTypeName","src":"2645:4:4"}],"id":1657,"name":"VariableDeclaration","src":"2645:9:4"},{"attributes":{"constant":false,"name":"_ptr","scope":1660,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1658,"name":"ElementaryTypeName","src":"2664:4:4"}],"id":1659,"name":"VariableDeclaration","src":"2664:9:4"}],"id":1660,"name":"StructDefinition","src":"2622:58:4"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"memcpy","payable":false,"scope":3348,"stateMutability":"pure","superFunction":null,"visibility":"private"},"children":[{"children":[{"attributes":{"constant":false,"name":"dest","scope":1700,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1661,"name":"ElementaryTypeName","src":"2702:4:4"}],"id":1662,"name":"VariableDeclaration","src":"2702:9:4"},{"attributes":{"constant":false,"name":"src","scope":1700,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1663,"name":"ElementaryTypeName","src":"2713:4:4"}],"id":1664,"name":"VariableDeclaration","src":"2713:8:4"},{"attributes":{"constant":false,"name":"len","scope":1700,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1665,"name":"ElementaryTypeName","src":"2723:4:4"}],"id":1666,"name":"VariableDeclaration","src":"2723:8:4"}],"id":1667,"name":"ParameterList","src":"2701:31:4"},{"attributes":{"parameters":[null]},"children":[],"id":1668,"name":"ParameterList","src":"2746:0:4"},{"children":[{"attributes":{"initializationExpression":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1666,"type":"uint256","value":"len"},"id":1669,"name":"Identifier","src":"2812:3:4"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":1670,"name":"Literal","src":"2819:2:4"}],"id":1671,"name":"BinaryOperation","src":"2812:9:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1666,"type":"uint256","value":"len"},"id":1672,"name":"Identifier","src":"2823:3:4"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":1673,"name":"Literal","src":"2830:2:4"}],"id":1674,"name":"Assignment","src":"2823:9:4"}],"id":1675,"name":"ExpressionStatement","src":"2823:9:4"},{"children":[{"attributes":{"externalReferences":[{"dest":{"declaration":1662,"isOffset":false,"isSlot":false,"src":"2882:4:4","valueSize":1}},{"src":{"declaration":1664,"isOffset":false,"isSlot":false,"src":"2894:3:4","valueSize":1}}],"operations":"{\n mstore(dest, mload(src))\n}"},"children":[],"id":1676,"name":"InlineAssembly","src":"2848:82:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1662,"type":"uint256","value":"dest"},"id":1677,"name":"Identifier","src":"2926:4:4"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":1678,"name":"Literal","src":"2934:2:4"}],"id":1679,"name":"Assignment","src":"2926:10:4"}],"id":1680,"name":"ExpressionStatement","src":"2926:10:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1664,"type":"uint256","value":"src"},"id":1681,"name":"Identifier","src":"2950:3:4"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":1682,"name":"Literal","src":"2957:2:4"}],"id":1683,"name":"Assignment","src":"2950:9:4"}],"id":1684,"name":"ExpressionStatement","src":"2950:9:4"}],"id":1685,"name":"Block","src":"2834:136:4"}],"id":1686,"name":"ForStatement","src":"2806:164:4"},{"attributes":{"assignments":[1688]},"children":[{"attributes":{"constant":false,"name":"mask","scope":1700,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1687,"name":"ElementaryTypeName","src":"3012:4:4"}],"id":1688,"name":"VariableDeclaration","src":"3012:9:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"**","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"323536","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 256","value":"256"},"id":1689,"name":"Literal","src":"3024:3:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":1690,"name":"Literal","src":"3032:2:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1666,"type":"uint256","value":"len"},"id":1691,"name":"Identifier","src":"3037:3:4"}],"id":1692,"name":"BinaryOperation","src":"3032:8:4"}],"id":1693,"name":"TupleExpression","src":"3031:10:4"}],"id":1694,"name":"BinaryOperation","src":"3024:17:4"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":1695,"name":"Literal","src":"3044:1:4"}],"id":1696,"name":"BinaryOperation","src":"3024:21:4"}],"id":1697,"name":"VariableDeclarationStatement","src":"3012:33:4"},{"attributes":{"externalReferences":[{"mask":{"declaration":1688,"isOffset":false,"isSlot":false,"src":"3113:4:4","valueSize":1}},{"src":{"declaration":1664,"isOffset":false,"isSlot":false,"src":"3103:3:4","valueSize":1}},{"dest":{"declaration":1662,"isOffset":false,"isSlot":false,"src":"3158:4:4","valueSize":1}},{"mask":{"declaration":1688,"isOffset":false,"isSlot":false,"src":"3165:4:4","valueSize":1}},{"dest":{"declaration":1662,"isOffset":false,"isSlot":false,"src":"3190:4:4","valueSize":1}}],"operations":"{\n let srcpart := and(mload(src), not(mask))\n let destpart := and(mload(dest), mask)\n mstore(dest, or(destpart, srcpart))\n}"},"children":[],"id":1698,"name":"InlineAssembly","src":"3055:179:4"}],"id":1699,"name":"Block","src":"2746:488:4"}],"id":1700,"name":"FunctionDefinition","src":"2686:548:4"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"toSlice","payable":false,"scope":3348,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":1720,"stateVariable":false,"storageLocation":"memory","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":1701,"name":"ElementaryTypeName","src":"3451:6:4"}],"id":1702,"name":"VariableDeclaration","src":"3451:18:4"}],"id":1703,"name":"ParameterList","src":"3450:20:4"},{"children":[{"attributes":{"constant":false,"name":"","scope":1720,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1660,"type":"struct strings.slice"},"id":1704,"name":"UserDefinedTypeName","src":"3494:5:4"}],"id":1705,"name":"VariableDeclaration","src":"3494:5:4"}],"id":1706,"name":"ParameterList","src":"3493:14:4"},{"children":[{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"ptr","scope":1720,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1707,"name":"ElementaryTypeName","src":"3518:4:4"}],"id":1708,"name":"VariableDeclaration","src":"3518:8:4"}],"id":1709,"name":"VariableDeclarationStatement","src":"3518:8:4"},{"attributes":{"externalReferences":[{"ptr":{"declaration":1708,"isOffset":false,"isSlot":false,"src":"3559:3:4","valueSize":1}},{"self":{"declaration":1702,"isOffset":false,"isSlot":false,"src":"3570:4:4","valueSize":1}}],"operations":"{\n ptr := add(self, 0x20)\n}"},"children":[],"id":1710,"name":"InlineAssembly","src":"3536:70:4"},{"attributes":{"functionReturnParameters":1706},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":true,"lValueRequested":false,"names":[null],"type":"struct strings.slice memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":1660,"type":"type(struct strings.slice storage pointer)","value":"slice"},"id":1711,"name":"Identifier","src":"3607:5:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes storage pointer)","value":"bytes"},"id":1712,"name":"ElementaryTypeNameExpression","src":"3613:5:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1702,"type":"string memory","value":"self"},"id":1713,"name":"Identifier","src":"3619:4:4"}],"id":1714,"name":"FunctionCall","src":"3613:11:4"}],"id":1715,"name":"MemberAccess","src":"3613:18:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1708,"type":"uint256","value":"ptr"},"id":1716,"name":"Identifier","src":"3633:3:4"}],"id":1717,"name":"FunctionCall","src":"3607:30:4"}],"id":1718,"name":"Return","src":"3600:37:4"}],"id":1719,"name":"Block","src":"3508:136:4"}],"id":1720,"name":"FunctionDefinition","src":"3434:210:4"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"len","payable":false,"scope":3348,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":1836,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":1721,"name":"ElementaryTypeName","src":"3853:7:4"}],"id":1722,"name":"VariableDeclaration","src":"3853:12:4"}],"id":1723,"name":"ParameterList","src":"3852:14:4"},{"children":[{"attributes":{"constant":false,"name":"","scope":1836,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1724,"name":"ElementaryTypeName","src":"3890:4:4"}],"id":1725,"name":"VariableDeclaration","src":"3890:4:4"}],"id":1726,"name":"ParameterList","src":"3889:6:4"},{"children":[{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"ret","scope":1836,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1727,"name":"ElementaryTypeName","src":"3906:4:4"}],"id":1728,"name":"VariableDeclaration","src":"3906:8:4"}],"id":1729,"name":"VariableDeclarationStatement","src":"3906:8:4"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1722,"type":"bytes32","value":"self"},"id":1730,"name":"Identifier","src":"3928:4:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1731,"name":"Literal","src":"3936:1:4"}],"id":1732,"name":"BinaryOperation","src":"3928:9:4"},{"attributes":{"functionReturnParameters":1726},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1733,"name":"Literal","src":"3958:1:4"}],"id":1734,"name":"Return","src":"3951:8:4"}],"id":1735,"name":"IfStatement","src":"3924:35:4"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1722,"type":"bytes32","value":"self"},"id":1736,"name":"Identifier","src":"3973:4:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30786666666666666666666666666666666666666666666666666666666666666666","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3402...(31 digits omitted)...1455","value":"0xffffffffffffffffffffffffffffffff"},"id":1737,"name":"Literal","src":"3980:34:4"}],"id":1738,"name":"BinaryOperation","src":"3973:41:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1739,"name":"Literal","src":"4018:1:4"}],"id":1740,"name":"BinaryOperation","src":"3973:46:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1728,"type":"uint256","value":"ret"},"id":1741,"name":"Identifier","src":"4035:3:4"},{"attributes":{"argumentTypes":null,"hexvalue":"3136","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 16","value":"16"},"id":1742,"name":"Literal","src":"4042:2:4"}],"id":1743,"name":"Assignment","src":"4035:9:4"}],"id":1744,"name":"ExpressionStatement","src":"4035:9:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1722,"type":"bytes32","value":"self"},"id":1745,"name":"Identifier","src":"4058:4:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes32)","value":"bytes32"},"id":1746,"name":"ElementaryTypeNameExpression","src":"4065:7:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"/","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint"},"id":1747,"name":"ElementaryTypeNameExpression","src":"4073:4:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1722,"type":"bytes32","value":"self"},"id":1748,"name":"Identifier","src":"4078:4:4"}],"id":1749,"name":"FunctionCall","src":"4073:10:4"},{"attributes":{"argumentTypes":null,"hexvalue":"3078313030303030303030303030303030303030303030303030303030303030303030","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3402...(31 digits omitted)...1456","value":"0x100000000000000000000000000000000"},"id":1750,"name":"Literal","src":"4086:35:4"}],"id":1751,"name":"BinaryOperation","src":"4073:48:4"}],"id":1752,"name":"FunctionCall","src":"4065:57:4"}],"id":1753,"name":"Assignment","src":"4058:64:4"}],"id":1754,"name":"ExpressionStatement","src":"4058:64:4"}],"id":1755,"name":"Block","src":"4021:112:4"}],"id":1756,"name":"IfStatement","src":"3969:164:4"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1722,"type":"bytes32","value":"self"},"id":1757,"name":"Identifier","src":"4146:4:4"},{"attributes":{"argumentTypes":null,"hexvalue":"307866666666666666666666666666666666","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 18446744073709551615","value":"0xffffffffffffffff"},"id":1758,"name":"Literal","src":"4153:18:4"}],"id":1759,"name":"BinaryOperation","src":"4146:25:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1760,"name":"Literal","src":"4175:1:4"}],"id":1761,"name":"BinaryOperation","src":"4146:30:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1728,"type":"uint256","value":"ret"},"id":1762,"name":"Identifier","src":"4192:3:4"},{"attributes":{"argumentTypes":null,"hexvalue":"38","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 8","value":"8"},"id":1763,"name":"Literal","src":"4199:1:4"}],"id":1764,"name":"Assignment","src":"4192:8:4"}],"id":1765,"name":"ExpressionStatement","src":"4192:8:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1722,"type":"bytes32","value":"self"},"id":1766,"name":"Identifier","src":"4214:4:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes32)","value":"bytes32"},"id":1767,"name":"ElementaryTypeNameExpression","src":"4221:7:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"/","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint"},"id":1768,"name":"ElementaryTypeNameExpression","src":"4229:4:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1722,"type":"bytes32","value":"self"},"id":1769,"name":"Identifier","src":"4234:4:4"}],"id":1770,"name":"FunctionCall","src":"4229:10:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30783130303030303030303030303030303030","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 18446744073709551616","value":"0x10000000000000000"},"id":1771,"name":"Literal","src":"4242:19:4"}],"id":1772,"name":"BinaryOperation","src":"4229:32:4"}],"id":1773,"name":"FunctionCall","src":"4221:41:4"}],"id":1774,"name":"Assignment","src":"4214:48:4"}],"id":1775,"name":"ExpressionStatement","src":"4214:48:4"}],"id":1776,"name":"Block","src":"4178:95:4"}],"id":1777,"name":"IfStatement","src":"4142:131:4"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1722,"type":"bytes32","value":"self"},"id":1778,"name":"Identifier","src":"4286:4:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30786666666666666666","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4294967295","value":"0xffffffff"},"id":1779,"name":"Literal","src":"4293:10:4"}],"id":1780,"name":"BinaryOperation","src":"4286:17:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1781,"name":"Literal","src":"4307:1:4"}],"id":1782,"name":"BinaryOperation","src":"4286:22:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1728,"type":"uint256","value":"ret"},"id":1783,"name":"Identifier","src":"4324:3:4"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":1784,"name":"Literal","src":"4331:1:4"}],"id":1785,"name":"Assignment","src":"4324:8:4"}],"id":1786,"name":"ExpressionStatement","src":"4324:8:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1722,"type":"bytes32","value":"self"},"id":1787,"name":"Identifier","src":"4346:4:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes32)","value":"bytes32"},"id":1788,"name":"ElementaryTypeNameExpression","src":"4353:7:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"/","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint"},"id":1789,"name":"ElementaryTypeNameExpression","src":"4361:4:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1722,"type":"bytes32","value":"self"},"id":1790,"name":"Identifier","src":"4366:4:4"}],"id":1791,"name":"FunctionCall","src":"4361:10:4"},{"attributes":{"argumentTypes":null,"hexvalue":"3078313030303030303030","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4294967296","value":"0x100000000"},"id":1792,"name":"Literal","src":"4374:11:4"}],"id":1793,"name":"BinaryOperation","src":"4361:24:4"}],"id":1794,"name":"FunctionCall","src":"4353:33:4"}],"id":1795,"name":"Assignment","src":"4346:40:4"}],"id":1796,"name":"ExpressionStatement","src":"4346:40:4"}],"id":1797,"name":"Block","src":"4310:87:4"}],"id":1798,"name":"IfStatement","src":"4282:115:4"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1722,"type":"bytes32","value":"self"},"id":1799,"name":"Identifier","src":"4410:4:4"},{"attributes":{"argumentTypes":null,"hexvalue":"307866666666","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 65535","value":"0xffff"},"id":1800,"name":"Literal","src":"4417:6:4"}],"id":1801,"name":"BinaryOperation","src":"4410:13:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1802,"name":"Literal","src":"4427:1:4"}],"id":1803,"name":"BinaryOperation","src":"4410:18:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1728,"type":"uint256","value":"ret"},"id":1804,"name":"Identifier","src":"4444:3:4"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":1805,"name":"Literal","src":"4451:1:4"}],"id":1806,"name":"Assignment","src":"4444:8:4"}],"id":1807,"name":"ExpressionStatement","src":"4444:8:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1722,"type":"bytes32","value":"self"},"id":1808,"name":"Identifier","src":"4466:4:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes32)","value":"bytes32"},"id":1809,"name":"ElementaryTypeNameExpression","src":"4473:7:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"/","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint"},"id":1810,"name":"ElementaryTypeNameExpression","src":"4481:4:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1722,"type":"bytes32","value":"self"},"id":1811,"name":"Identifier","src":"4486:4:4"}],"id":1812,"name":"FunctionCall","src":"4481:10:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30783130303030","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 65536","value":"0x10000"},"id":1813,"name":"Literal","src":"4494:7:4"}],"id":1814,"name":"BinaryOperation","src":"4481:20:4"}],"id":1815,"name":"FunctionCall","src":"4473:29:4"}],"id":1816,"name":"Assignment","src":"4466:36:4"}],"id":1817,"name":"ExpressionStatement","src":"4466:36:4"}],"id":1818,"name":"Block","src":"4430:83:4"}],"id":1819,"name":"IfStatement","src":"4406:107:4"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1722,"type":"bytes32","value":"self"},"id":1820,"name":"Identifier","src":"4526:4:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30786666","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 255","value":"0xff"},"id":1821,"name":"Literal","src":"4533:4:4"}],"id":1822,"name":"BinaryOperation","src":"4526:11:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1823,"name":"Literal","src":"4541:1:4"}],"id":1824,"name":"BinaryOperation","src":"4526:16:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1728,"type":"uint256","value":"ret"},"id":1825,"name":"Identifier","src":"4558:3:4"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":1826,"name":"Literal","src":"4565:1:4"}],"id":1827,"name":"Assignment","src":"4558:8:4"}],"id":1828,"name":"ExpressionStatement","src":"4558:8:4"}],"id":1829,"name":"Block","src":"4544:33:4"}],"id":1830,"name":"IfStatement","src":"4522:55:4"},{"attributes":{"functionReturnParameters":1726},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":1831,"name":"Literal","src":"4593:2:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1728,"type":"uint256","value":"ret"},"id":1832,"name":"Identifier","src":"4598:3:4"}],"id":1833,"name":"BinaryOperation","src":"4593:8:4"}],"id":1834,"name":"Return","src":"4586:15:4"}],"id":1835,"name":"Block","src":"3896:712:4"}],"id":1836,"name":"FunctionDefinition","src":"3840:768:4"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"toSliceB32","payable":false,"scope":3348,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":1853,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":1837,"name":"ElementaryTypeName","src":"4934:7:4"}],"id":1838,"name":"VariableDeclaration","src":"4934:12:4"}],"id":1839,"name":"ParameterList","src":"4933:14:4"},{"children":[{"attributes":{"constant":false,"name":"ret","scope":1853,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1660,"type":"struct strings.slice"},"id":1840,"name":"UserDefinedTypeName","src":"4971:5:4"}],"id":1841,"name":"VariableDeclaration","src":"4971:16:4"}],"id":1842,"name":"ParameterList","src":"4970:18:4"},{"children":[{"attributes":{"externalReferences":[{"ret":{"declaration":1841,"isOffset":false,"isSlot":false,"src":"5222:3:4","valueSize":1}},{"self":{"declaration":1838,"isOffset":false,"isSlot":false,"src":"5193:4:4","valueSize":1}}],"operations":"{\n let ptr := mload(0x40)\n mstore(0x40, add(ptr, 0x20))\n mstore(ptr, self)\n mstore(add(ret, 0x20), ptr)\n}"},"children":[],"id":1843,"name":"InlineAssembly","src":"5082:178:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":1657,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1841,"type":"struct strings.slice memory","value":"ret"},"id":1844,"name":"Identifier","src":"5257:3:4"}],"id":1846,"name":"MemberAccess","src":"5257:8:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[1836,1986],"referencedDeclaration":1836,"type":"function (bytes32) pure returns (uint256)","value":"len"},"id":1847,"name":"Identifier","src":"5268:3:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1838,"type":"bytes32","value":"self"},"id":1848,"name":"Identifier","src":"5272:4:4"}],"id":1849,"name":"FunctionCall","src":"5268:9:4"}],"id":1850,"name":"Assignment","src":"5257:20:4"}],"id":1851,"name":"ExpressionStatement","src":"5257:20:4"}],"id":1852,"name":"Block","src":"4989:295:4"}],"id":1853,"name":"FunctionDefinition","src":"4914:370:4"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"copy","payable":false,"scope":3348,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":1868,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1660,"type":"struct strings.slice"},"id":1854,"name":"UserDefinedTypeName","src":"5499:5:4"}],"id":1855,"name":"VariableDeclaration","src":"5499:17:4"}],"id":1856,"name":"ParameterList","src":"5498:19:4"},{"children":[{"attributes":{"constant":false,"name":"","scope":1868,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1660,"type":"struct strings.slice"},"id":1857,"name":"UserDefinedTypeName","src":"5541:5:4"}],"id":1858,"name":"VariableDeclaration","src":"5541:5:4"}],"id":1859,"name":"ParameterList","src":"5540:14:4"},{"children":[{"attributes":{"functionReturnParameters":1859},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":true,"lValueRequested":false,"names":[null],"type":"struct strings.slice memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":1660,"type":"type(struct strings.slice storage pointer)","value":"slice"},"id":1860,"name":"Identifier","src":"5572:5:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1657,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1855,"type":"struct strings.slice memory","value":"self"},"id":1861,"name":"Identifier","src":"5578:4:4"}],"id":1862,"name":"MemberAccess","src":"5578:9:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":1659,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1855,"type":"struct strings.slice memory","value":"self"},"id":1863,"name":"Identifier","src":"5589:4:4"}],"id":1864,"name":"MemberAccess","src":"5589:9:4"}],"id":1865,"name":"FunctionCall","src":"5572:27:4"}],"id":1866,"name":"Return","src":"5565:34:4"}],"id":1867,"name":"Block","src":"5555:51:4"}],"id":1868,"name":"FunctionDefinition","src":"5485:121:4"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"toString","payable":false,"scope":3348,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":1898,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1660,"type":"struct strings.slice"},"id":1869,"name":"UserDefinedTypeName","src":"5796:5:4"}],"id":1870,"name":"VariableDeclaration","src":"5796:17:4"}],"id":1871,"name":"ParameterList","src":"5795:19:4"},{"children":[{"attributes":{"constant":false,"name":"","scope":1898,"stateVariable":false,"storageLocation":"memory","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":1872,"name":"ElementaryTypeName","src":"5838:6:4"}],"id":1873,"name":"VariableDeclaration","src":"5838:6:4"}],"id":1874,"name":"ParameterList","src":"5837:15:4"},{"children":[{"attributes":{"assignments":[1876]},"children":[{"attributes":{"constant":false,"name":"ret","scope":1898,"stateVariable":false,"storageLocation":"memory","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":1875,"name":"ElementaryTypeName","src":"5863:6:4"}],"id":1876,"name":"VariableDeclaration","src":"5863:17:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (string memory)"},"children":[{"attributes":{"name":"string","type":"string"},"id":1877,"name":"ElementaryTypeName","src":"5887:6:4"}],"id":1878,"name":"NewExpression","src":"5883:10:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1657,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1870,"type":"struct strings.slice memory","value":"self"},"id":1879,"name":"Identifier","src":"5894:4:4"}],"id":1880,"name":"MemberAccess","src":"5894:9:4"}],"id":1881,"name":"FunctionCall","src":"5883:21:4"}],"id":1882,"name":"VariableDeclarationStatement","src":"5863:41:4"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"retptr","scope":1898,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1883,"name":"ElementaryTypeName","src":"5914:4:4"}],"id":1884,"name":"VariableDeclaration","src":"5914:11:4"}],"id":1885,"name":"VariableDeclarationStatement","src":"5914:11:4"},{"attributes":{"externalReferences":[{"retptr":{"declaration":1884,"isOffset":false,"isSlot":false,"src":"5946:6:4","valueSize":1}},{"ret":{"declaration":1876,"isOffset":false,"isSlot":false,"src":"5960:3:4","valueSize":1}}],"operations":"{\n retptr := add(ret, 32)\n}"},"children":[],"id":1886,"name":"InlineAssembly","src":"5935:51:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":1700,"type":"function (uint256,uint256,uint256) pure","value":"memcpy"},"id":1887,"name":"Identifier","src":"5980:6:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1884,"type":"uint256","value":"retptr"},"id":1888,"name":"Identifier","src":"5987:6:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":1659,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1870,"type":"struct strings.slice memory","value":"self"},"id":1889,"name":"Identifier","src":"5995:4:4"}],"id":1890,"name":"MemberAccess","src":"5995:9:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1657,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1870,"type":"struct strings.slice memory","value":"self"},"id":1891,"name":"Identifier","src":"6006:4:4"}],"id":1892,"name":"MemberAccess","src":"6006:9:4"}],"id":1893,"name":"FunctionCall","src":"5980:36:4"}],"id":1894,"name":"ExpressionStatement","src":"5980:36:4"},{"attributes":{"functionReturnParameters":1874},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1876,"type":"string memory","value":"ret"},"id":1895,"name":"Identifier","src":"6033:3:4"}],"id":1896,"name":"Return","src":"6026:10:4"}],"id":1897,"name":"Block","src":"5853:190:4"}],"id":1898,"name":"FunctionDefinition","src":"5778:265:4"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"len","payable":false,"scope":3348,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":1986,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1660,"type":"struct strings.slice"},"id":1899,"name":"UserDefinedTypeName","src":"6447:5:4"}],"id":1900,"name":"VariableDeclaration","src":"6447:17:4"}],"id":1901,"name":"ParameterList","src":"6446:19:4"},{"children":[{"attributes":{"constant":false,"name":"l","scope":1986,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1902,"name":"ElementaryTypeName","src":"6489:4:4"}],"id":1903,"name":"VariableDeclaration","src":"6489:6:4"}],"id":1904,"name":"ParameterList","src":"6488:8:4"},{"children":[{"attributes":{"assignments":[1906]},"children":[{"attributes":{"constant":false,"name":"ptr","scope":1986,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1905,"name":"ElementaryTypeName","src":"6582:4:4"}],"id":1906,"name":"VariableDeclaration","src":"6582:8:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":1659,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1900,"type":"struct strings.slice memory","value":"self"},"id":1907,"name":"Identifier","src":"6593:4:4"}],"id":1908,"name":"MemberAccess","src":"6593:9:4"},{"attributes":{"argumentTypes":null,"hexvalue":"3331","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 31","value":"31"},"id":1909,"name":"Literal","src":"6605:2:4"}],"id":1910,"name":"BinaryOperation","src":"6593:14:4"}],"id":1911,"name":"VariableDeclarationStatement","src":"6582:25:4"},{"attributes":{"assignments":[1913]},"children":[{"attributes":{"constant":false,"name":"end","scope":1986,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1912,"name":"ElementaryTypeName","src":"6617:4:4"}],"id":1913,"name":"VariableDeclaration","src":"6617:8:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1906,"type":"uint256","value":"ptr"},"id":1914,"name":"Identifier","src":"6628:3:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1657,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1900,"type":"struct strings.slice memory","value":"self"},"id":1915,"name":"Identifier","src":"6634:4:4"}],"id":1916,"name":"MemberAccess","src":"6634:9:4"}],"id":1917,"name":"BinaryOperation","src":"6628:15:4"}],"id":1918,"name":"VariableDeclarationStatement","src":"6617:26:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1903,"type":"uint256","value":"l"},"id":1919,"name":"Identifier","src":"6658:1:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1920,"name":"Literal","src":"6662:1:4"}],"id":1921,"name":"Assignment","src":"6658:5:4"}],"id":1922,"name":"ExpressionStatement","src":"6658:5:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1906,"type":"uint256","value":"ptr"},"id":1923,"name":"Identifier","src":"6665:3:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1913,"type":"uint256","value":"end"},"id":1924,"name":"Identifier","src":"6671:3:4"}],"id":1925,"name":"BinaryOperation","src":"6665:9:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1903,"type":"uint256","value":"l"},"id":1926,"name":"Identifier","src":"6676:1:4"}],"id":1927,"name":"UnaryOperation","src":"6676:3:4"}],"id":1928,"name":"ExpressionStatement","src":"6676:3:4"},{"children":[{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"b","scope":1986,"stateVariable":false,"storageLocation":"default","type":"uint8","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint8","type":"uint8"},"id":1929,"name":"ElementaryTypeName","src":"6695:5:4"}],"id":1930,"name":"VariableDeclaration","src":"6695:7:4"}],"id":1931,"name":"VariableDeclarationStatement","src":"6695:7:4"},{"attributes":{"externalReferences":[{"ptr":{"declaration":1906,"isOffset":false,"isSlot":false,"src":"6742:3:4","valueSize":1}},{"b":{"declaration":1930,"isOffset":false,"isSlot":false,"src":"6727:1:4","valueSize":1}}],"operations":"{\n b := and(mload(ptr), 0xFF)\n}"},"children":[],"id":1932,"name":"InlineAssembly","src":"6716:54:4"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1930,"type":"uint8","value":"b"},"id":1933,"name":"Identifier","src":"6772:1:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30783830","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 128","value":"0x80"},"id":1934,"name":"Literal","src":"6776:4:4"}],"id":1935,"name":"BinaryOperation","src":"6772:8:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1906,"type":"uint256","value":"ptr"},"id":1936,"name":"Identifier","src":"6800:3:4"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":1937,"name":"Literal","src":"6807:1:4"}],"id":1938,"name":"Assignment","src":"6800:8:4"}],"id":1939,"name":"ExpressionStatement","src":"6800:8:4"}],"id":1940,"name":"Block","src":"6782:41:4"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1930,"type":"uint8","value":"b"},"id":1941,"name":"Identifier","src":"6832:1:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30784530","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 224","value":"0xE0"},"id":1942,"name":"Literal","src":"6836:4:4"}],"id":1943,"name":"BinaryOperation","src":"6832:8:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1906,"type":"uint256","value":"ptr"},"id":1944,"name":"Identifier","src":"6860:3:4"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":1945,"name":"Literal","src":"6867:1:4"}],"id":1946,"name":"Assignment","src":"6860:8:4"}],"id":1947,"name":"ExpressionStatement","src":"6860:8:4"}],"id":1948,"name":"Block","src":"6842:41:4"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1930,"type":"uint8","value":"b"},"id":1949,"name":"Identifier","src":"6892:1:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30784630","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 240","value":"0xF0"},"id":1950,"name":"Literal","src":"6896:4:4"}],"id":1951,"name":"BinaryOperation","src":"6892:8:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1906,"type":"uint256","value":"ptr"},"id":1952,"name":"Identifier","src":"6920:3:4"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":1953,"name":"Literal","src":"6927:1:4"}],"id":1954,"name":"Assignment","src":"6920:8:4"}],"id":1955,"name":"ExpressionStatement","src":"6920:8:4"}],"id":1956,"name":"Block","src":"6902:41:4"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1930,"type":"uint8","value":"b"},"id":1957,"name":"Identifier","src":"6952:1:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30784638","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 248","value":"0xF8"},"id":1958,"name":"Literal","src":"6956:4:4"}],"id":1959,"name":"BinaryOperation","src":"6952:8:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1906,"type":"uint256","value":"ptr"},"id":1960,"name":"Identifier","src":"6980:3:4"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":1961,"name":"Literal","src":"6987:1:4"}],"id":1962,"name":"Assignment","src":"6980:8:4"}],"id":1963,"name":"ExpressionStatement","src":"6980:8:4"}],"id":1964,"name":"Block","src":"6962:41:4"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1930,"type":"uint8","value":"b"},"id":1965,"name":"Identifier","src":"7012:1:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30784643","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 252","value":"0xFC"},"id":1966,"name":"Literal","src":"7016:4:4"}],"id":1967,"name":"BinaryOperation","src":"7012:8:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1906,"type":"uint256","value":"ptr"},"id":1968,"name":"Identifier","src":"7040:3:4"},{"attributes":{"argumentTypes":null,"hexvalue":"35","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 5","value":"5"},"id":1969,"name":"Literal","src":"7047:1:4"}],"id":1970,"name":"Assignment","src":"7040:8:4"}],"id":1971,"name":"ExpressionStatement","src":"7040:8:4"}],"id":1972,"name":"Block","src":"7022:41:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1906,"type":"uint256","value":"ptr"},"id":1973,"name":"Identifier","src":"7087:3:4"},{"attributes":{"argumentTypes":null,"hexvalue":"36","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 6","value":"6"},"id":1974,"name":"Literal","src":"7094:1:4"}],"id":1975,"name":"Assignment","src":"7087:8:4"}],"id":1976,"name":"ExpressionStatement","src":"7087:8:4"}],"id":1977,"name":"Block","src":"7069:41:4"}],"id":1978,"name":"IfStatement","src":"7009:101:4"}],"id":1979,"name":"IfStatement","src":"6949:161:4"}],"id":1980,"name":"IfStatement","src":"6889:221:4"}],"id":1981,"name":"IfStatement","src":"6829:281:4"}],"id":1982,"name":"IfStatement","src":"6768:342:4"}],"id":1983,"name":"Block","src":"6681:439:4"}],"id":1984,"name":"ForStatement","src":"6653:467:4"}],"id":1985,"name":"Block","src":"6497:629:4"}],"id":1986,"name":"FunctionDefinition","src":"6434:692:4"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"empty","payable":false,"scope":3348,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":1999,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1660,"type":"struct strings.slice"},"id":1987,"name":"UserDefinedTypeName","src":"7334:5:4"}],"id":1988,"name":"VariableDeclaration","src":"7334:17:4"}],"id":1989,"name":"ParameterList","src":"7333:19:4"},{"children":[{"attributes":{"constant":false,"name":"","scope":1999,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":1990,"name":"ElementaryTypeName","src":"7376:4:4"}],"id":1991,"name":"VariableDeclaration","src":"7376:4:4"}],"id":1992,"name":"ParameterList","src":"7375:6:4"},{"children":[{"attributes":{"functionReturnParameters":1992},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1657,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1988,"type":"struct strings.slice memory","value":"self"},"id":1993,"name":"Identifier","src":"7399:4:4"}],"id":1994,"name":"MemberAccess","src":"7399:9:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1995,"name":"Literal","src":"7412:1:4"}],"id":1996,"name":"BinaryOperation","src":"7399:14:4"}],"id":1997,"name":"Return","src":"7392:21:4"}],"id":1998,"name":"Block","src":"7382:38:4"}],"id":1999,"name":"FunctionDefinition","src":"7319:101:4"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"compare","payable":false,"scope":3348,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":2128,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1660,"type":"struct strings.slice"},"id":2000,"name":"UserDefinedTypeName","src":"7865:5:4"}],"id":2001,"name":"VariableDeclaration","src":"7865:17:4"},{"attributes":{"constant":false,"name":"other","scope":2128,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1660,"type":"struct strings.slice"},"id":2002,"name":"UserDefinedTypeName","src":"7884:5:4"}],"id":2003,"name":"VariableDeclaration","src":"7884:18:4"}],"id":2004,"name":"ParameterList","src":"7864:39:4"},{"children":[{"attributes":{"constant":false,"name":"","scope":2128,"stateVariable":false,"storageLocation":"default","type":"int256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"int","type":"int256"},"id":2005,"name":"ElementaryTypeName","src":"7927:3:4"}],"id":2006,"name":"VariableDeclaration","src":"7927:3:4"}],"id":2007,"name":"ParameterList","src":"7926:5:4"},{"children":[{"attributes":{"assignments":[2009]},"children":[{"attributes":{"constant":false,"name":"shortest","scope":2128,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2008,"name":"ElementaryTypeName","src":"7942:4:4"}],"id":2009,"name":"VariableDeclaration","src":"7942:13:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1657,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2001,"type":"struct strings.slice memory","value":"self"},"id":2010,"name":"Identifier","src":"7958:4:4"}],"id":2011,"name":"MemberAccess","src":"7958:9:4"}],"id":2012,"name":"VariableDeclarationStatement","src":"7942:25:4"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1657,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2003,"type":"struct strings.slice memory","value":"other"},"id":2013,"name":"Identifier","src":"7981:5:4"}],"id":2014,"name":"MemberAccess","src":"7981:10:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1657,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2001,"type":"struct strings.slice memory","value":"self"},"id":2015,"name":"Identifier","src":"7994:4:4"}],"id":2016,"name":"MemberAccess","src":"7994:9:4"}],"id":2017,"name":"BinaryOperation","src":"7981:22:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2009,"type":"uint256","value":"shortest"},"id":2018,"name":"Identifier","src":"8017:8:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1657,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2003,"type":"struct strings.slice memory","value":"other"},"id":2019,"name":"Identifier","src":"8028:5:4"}],"id":2020,"name":"MemberAccess","src":"8028:10:4"}],"id":2021,"name":"Assignment","src":"8017:21:4"}],"id":2022,"name":"ExpressionStatement","src":"8017:21:4"}],"id":2023,"name":"IfStatement","src":"7977:61:4"},{"attributes":{"assignments":[2025]},"children":[{"attributes":{"constant":false,"name":"selfptr","scope":2128,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2024,"name":"ElementaryTypeName","src":"8049:4:4"}],"id":2025,"name":"VariableDeclaration","src":"8049:12:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":1659,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2001,"type":"struct strings.slice memory","value":"self"},"id":2026,"name":"Identifier","src":"8064:4:4"}],"id":2027,"name":"MemberAccess","src":"8064:9:4"}],"id":2028,"name":"VariableDeclarationStatement","src":"8049:24:4"},{"attributes":{"assignments":[2030]},"children":[{"attributes":{"constant":false,"name":"otherptr","scope":2128,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2029,"name":"ElementaryTypeName","src":"8083:4:4"}],"id":2030,"name":"VariableDeclaration","src":"8083:13:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":1659,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2003,"type":"struct strings.slice memory","value":"other"},"id":2031,"name":"Identifier","src":"8099:5:4"}],"id":2032,"name":"MemberAccess","src":"8099:10:4"}],"id":2033,"name":"VariableDeclarationStatement","src":"8083:26:4"},{"children":[{"attributes":{"assignments":[2035]},"children":[{"attributes":{"constant":false,"name":"idx","scope":2128,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2034,"name":"ElementaryTypeName","src":"8124:4:4"}],"id":2035,"name":"VariableDeclaration","src":"8124:8:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2036,"name":"Literal","src":"8135:1:4"}],"id":2037,"name":"VariableDeclarationStatement","src":"8124:12:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2035,"type":"uint256","value":"idx"},"id":2038,"name":"Identifier","src":"8138:3:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2009,"type":"uint256","value":"shortest"},"id":2039,"name":"Identifier","src":"8144:8:4"}],"id":2040,"name":"BinaryOperation","src":"8138:14:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2035,"type":"uint256","value":"idx"},"id":2041,"name":"Identifier","src":"8154:3:4"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":2042,"name":"Literal","src":"8161:2:4"}],"id":2043,"name":"Assignment","src":"8154:9:4"}],"id":2044,"name":"ExpressionStatement","src":"8154:9:4"},{"children":[{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"a","scope":2128,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2045,"name":"ElementaryTypeName","src":"8179:4:4"}],"id":2046,"name":"VariableDeclaration","src":"8179:6:4"}],"id":2047,"name":"VariableDeclarationStatement","src":"8179:6:4"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"b","scope":2128,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2048,"name":"ElementaryTypeName","src":"8199:4:4"}],"id":2049,"name":"VariableDeclaration","src":"8199:6:4"}],"id":2050,"name":"VariableDeclarationStatement","src":"8199:6:4"},{"attributes":{"externalReferences":[{"selfptr":{"declaration":2025,"isOffset":false,"isSlot":false,"src":"8257:7:4","valueSize":1}},{"a":{"declaration":2046,"isOffset":false,"isSlot":false,"src":"8246:1:4","valueSize":1}},{"b":{"declaration":2049,"isOffset":false,"isSlot":false,"src":"8282:1:4","valueSize":1}},{"otherptr":{"declaration":2030,"isOffset":false,"isSlot":false,"src":"8293:8:4","valueSize":1}}],"operations":"{\n a := mload(selfptr)\n b := mload(otherptr)\n}"},"children":[],"id":2051,"name":"InlineAssembly","src":"8219:112:4"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2046,"type":"uint256","value":"a"},"id":2052,"name":"Identifier","src":"8333:1:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2049,"type":"uint256","value":"b"},"id":2053,"name":"Identifier","src":"8338:1:4"}],"id":2054,"name":"BinaryOperation","src":"8333:6:4"},{"children":[{"attributes":{"assignments":[2056]},"children":[{"attributes":{"constant":false,"name":"mask","scope":2128,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":2055,"name":"ElementaryTypeName","src":"8420:7:4"}],"id":2056,"name":"VariableDeclaration","src":"8420:12:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_-1_by_1","typeString":"int_const -1"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint256"},"id":2057,"name":"ElementaryTypeNameExpression","src":"8435:7:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"-","prefix":true,"type":"int_const -1"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":2058,"name":"Literal","src":"8444:1:4"}],"id":2059,"name":"UnaryOperation","src":"8443:2:4"}],"id":2060,"name":"FunctionCall","src":"8435:11:4"}],"id":2061,"name":"VariableDeclarationStatement","src":"8420:26:4"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2009,"type":"uint256","value":"shortest"},"id":2062,"name":"Identifier","src":"8480:8:4"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":2063,"name":"Literal","src":"8491:2:4"}],"id":2064,"name":"BinaryOperation","src":"8480:13:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2056,"type":"uint256","value":"mask"},"id":2065,"name":"Identifier","src":"8515:4:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"~","prefix":true,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"**","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":2066,"name":"Literal","src":"8524:1:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"38","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 8","value":"8"},"id":2067,"name":"Literal","src":"8530:1:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":2068,"name":"Literal","src":"8535:2:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2009,"type":"uint256","value":"shortest"},"id":2069,"name":"Identifier","src":"8540:8:4"}],"id":2070,"name":"BinaryOperation","src":"8535:13:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2035,"type":"uint256","value":"idx"},"id":2071,"name":"Identifier","src":"8551:3:4"}],"id":2072,"name":"BinaryOperation","src":"8535:19:4"}],"id":2073,"name":"TupleExpression","src":"8534:21:4"}],"id":2074,"name":"BinaryOperation","src":"8530:25:4"}],"id":2075,"name":"TupleExpression","src":"8529:27:4"}],"id":2076,"name":"BinaryOperation","src":"8524:32:4"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":2077,"name":"Literal","src":"8559:1:4"}],"id":2078,"name":"BinaryOperation","src":"8524:36:4"}],"id":2079,"name":"TupleExpression","src":"8523:38:4"}],"id":2080,"name":"UnaryOperation","src":"8522:39:4"}],"id":2081,"name":"Assignment","src":"8515:46:4"}],"id":2082,"name":"ExpressionStatement","src":"8515:46:4"}],"id":2083,"name":"Block","src":"8495:85:4"}],"id":2084,"name":"IfStatement","src":"8477:103:4"},{"attributes":{"assignments":[2086]},"children":[{"attributes":{"constant":false,"name":"diff","scope":2128,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":2085,"name":"ElementaryTypeName","src":"8597:7:4"}],"id":2086,"name":"VariableDeclaration","src":"8597:12:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2046,"type":"uint256","value":"a"},"id":2087,"name":"Identifier","src":"8613:1:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2056,"type":"uint256","value":"mask"},"id":2088,"name":"Identifier","src":"8617:4:4"}],"id":2089,"name":"BinaryOperation","src":"8613:8:4"}],"id":2090,"name":"TupleExpression","src":"8612:10:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2049,"type":"uint256","value":"b"},"id":2091,"name":"Identifier","src":"8626:1:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2056,"type":"uint256","value":"mask"},"id":2092,"name":"Identifier","src":"8630:4:4"}],"id":2093,"name":"BinaryOperation","src":"8626:8:4"}],"id":2094,"name":"TupleExpression","src":"8625:10:4"}],"id":2095,"name":"BinaryOperation","src":"8612:23:4"}],"id":2096,"name":"VariableDeclarationStatement","src":"8597:38:4"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2086,"type":"uint256","value":"diff"},"id":2097,"name":"Identifier","src":"8657:4:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2098,"name":"Literal","src":"8665:1:4"}],"id":2099,"name":"BinaryOperation","src":"8657:9:4"},{"attributes":{"functionReturnParameters":2007},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"int256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(int256)","value":"int"},"id":2100,"name":"ElementaryTypeNameExpression","src":"8695:3:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2086,"type":"uint256","value":"diff"},"id":2101,"name":"Identifier","src":"8699:4:4"}],"id":2102,"name":"FunctionCall","src":"8695:9:4"}],"id":2103,"name":"Return","src":"8688:16:4"}],"id":2104,"name":"IfStatement","src":"8653:51:4"}],"id":2105,"name":"Block","src":"8341:378:4"}],"id":2106,"name":"IfStatement","src":"8329:390:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2025,"type":"uint256","value":"selfptr"},"id":2107,"name":"Identifier","src":"8732:7:4"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":2108,"name":"Literal","src":"8743:2:4"}],"id":2109,"name":"Assignment","src":"8732:13:4"}],"id":2110,"name":"ExpressionStatement","src":"8732:13:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2030,"type":"uint256","value":"otherptr"},"id":2111,"name":"Identifier","src":"8759:8:4"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":2112,"name":"Literal","src":"8771:2:4"}],"id":2113,"name":"Assignment","src":"8759:14:4"}],"id":2114,"name":"ExpressionStatement","src":"8759:14:4"}],"id":2115,"name":"Block","src":"8165:619:4"}],"id":2116,"name":"ForStatement","src":"8119:665:4"},{"attributes":{"functionReturnParameters":2007},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"int256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"int256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(int256)","value":"int"},"id":2117,"name":"ElementaryTypeNameExpression","src":"8800:3:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1657,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2001,"type":"struct strings.slice memory","value":"self"},"id":2118,"name":"Identifier","src":"8804:4:4"}],"id":2119,"name":"MemberAccess","src":"8804:9:4"}],"id":2120,"name":"FunctionCall","src":"8800:14:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"int256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(int256)","value":"int"},"id":2121,"name":"ElementaryTypeNameExpression","src":"8817:3:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1657,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2003,"type":"struct strings.slice memory","value":"other"},"id":2122,"name":"Identifier","src":"8821:5:4"}],"id":2123,"name":"MemberAccess","src":"8821:10:4"}],"id":2124,"name":"FunctionCall","src":"8817:15:4"}],"id":2125,"name":"BinaryOperation","src":"8800:32:4"}],"id":2126,"name":"Return","src":"8793:39:4"}],"id":2127,"name":"Block","src":"7932:907:4"}],"id":2128,"name":"FunctionDefinition","src":"7848:991:4"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"equals","payable":false,"scope":3348,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":2145,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1660,"type":"struct strings.slice"},"id":2129,"name":"UserDefinedTypeName","src":"9099:5:4"}],"id":2130,"name":"VariableDeclaration","src":"9099:17:4"},{"attributes":{"constant":false,"name":"other","scope":2145,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1660,"type":"struct strings.slice"},"id":2131,"name":"UserDefinedTypeName","src":"9118:5:4"}],"id":2132,"name":"VariableDeclaration","src":"9118:18:4"}],"id":2133,"name":"ParameterList","src":"9098:39:4"},{"children":[{"attributes":{"constant":false,"name":"","scope":2145,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2134,"name":"ElementaryTypeName","src":"9161:4:4"}],"id":2135,"name":"VariableDeclaration","src":"9161:4:4"}],"id":2136,"name":"ParameterList","src":"9160:6:4"},{"children":[{"attributes":{"functionReturnParameters":2136},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"int256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$1660_memory_ptr","typeString":"struct strings.slice memory"},{"typeIdentifier":"t_struct$_slice_$1660_memory_ptr","typeString":"struct strings.slice memory"}],"overloadedDeclarations":[null],"referencedDeclaration":2128,"type":"function (struct strings.slice memory,struct strings.slice memory) pure returns (int256)","value":"compare"},"id":2137,"name":"Identifier","src":"9184:7:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2130,"type":"struct strings.slice memory","value":"self"},"id":2138,"name":"Identifier","src":"9192:4:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2132,"type":"struct strings.slice memory","value":"other"},"id":2139,"name":"Identifier","src":"9198:5:4"}],"id":2140,"name":"FunctionCall","src":"9184:20:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2141,"name":"Literal","src":"9208:1:4"}],"id":2142,"name":"BinaryOperation","src":"9184:25:4"}],"id":2143,"name":"Return","src":"9177:32:4"}],"id":2144,"name":"Block","src":"9167:49:4"}],"id":2145,"name":"FunctionDefinition","src":"9083:133:4"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"nextRune","payable":false,"scope":3348,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":2263,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1660,"type":"struct strings.slice"},"id":2146,"name":"UserDefinedTypeName","src":"9527:5:4"}],"id":2147,"name":"VariableDeclaration","src":"9527:17:4"},{"attributes":{"constant":false,"name":"rune","scope":2263,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1660,"type":"struct strings.slice"},"id":2148,"name":"UserDefinedTypeName","src":"9546:5:4"}],"id":2149,"name":"VariableDeclaration","src":"9546:17:4"}],"id":2150,"name":"ParameterList","src":"9526:38:4"},{"children":[{"attributes":{"constant":false,"name":"","scope":2263,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1660,"type":"struct strings.slice"},"id":2151,"name":"UserDefinedTypeName","src":"9588:5:4"}],"id":2152,"name":"VariableDeclaration","src":"9588:5:4"}],"id":2153,"name":"ParameterList","src":"9587:14:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_ptr","referencedDeclaration":1659,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2149,"type":"struct strings.slice memory","value":"rune"},"id":2154,"name":"Identifier","src":"9612:4:4"}],"id":2156,"name":"MemberAccess","src":"9612:9:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":1659,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2147,"type":"struct strings.slice memory","value":"self"},"id":2157,"name":"Identifier","src":"9624:4:4"}],"id":2158,"name":"MemberAccess","src":"9624:9:4"}],"id":2159,"name":"Assignment","src":"9612:21:4"}],"id":2160,"name":"ExpressionStatement","src":"9612:21:4"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1657,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2147,"type":"struct strings.slice memory","value":"self"},"id":2161,"name":"Identifier","src":"9648:4:4"}],"id":2162,"name":"MemberAccess","src":"9648:9:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2163,"name":"Literal","src":"9661:1:4"}],"id":2164,"name":"BinaryOperation","src":"9648:14:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":1657,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2149,"type":"struct strings.slice memory","value":"rune"},"id":2165,"name":"Identifier","src":"9678:4:4"}],"id":2167,"name":"MemberAccess","src":"9678:9:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2168,"name":"Literal","src":"9690:1:4"}],"id":2169,"name":"Assignment","src":"9678:13:4"}],"id":2170,"name":"ExpressionStatement","src":"9678:13:4"},{"attributes":{"functionReturnParameters":2153},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2149,"type":"struct strings.slice memory","value":"rune"},"id":2171,"name":"Identifier","src":"9712:4:4"}],"id":2172,"name":"Return","src":"9705:11:4"}],"id":2173,"name":"Block","src":"9664:63:4"}],"id":2174,"name":"IfStatement","src":"9644:83:4"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"l","scope":2263,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2175,"name":"ElementaryTypeName","src":"9737:4:4"}],"id":2176,"name":"VariableDeclaration","src":"9737:6:4"}],"id":2177,"name":"VariableDeclarationStatement","src":"9737:6:4"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"b","scope":2263,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2178,"name":"ElementaryTypeName","src":"9753:4:4"}],"id":2179,"name":"VariableDeclaration","src":"9753:6:4"}],"id":2180,"name":"VariableDeclarationStatement","src":"9753:6:4"},{"attributes":{"externalReferences":[{"b":{"declaration":2179,"isOffset":false,"isSlot":false,"src":"9842:1:4","valueSize":1}},{"self":{"declaration":2147,"isOffset":false,"isSlot":false,"src":"9871:4:4","valueSize":1}}],"operations":"{\n b := and(mload(sub(mload(add(self, 32)), 31)), 0xFF)\n}"},"children":[],"id":2181,"name":"InlineAssembly","src":"9831:76:4"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2179,"type":"uint256","value":"b"},"id":2182,"name":"Identifier","src":"9909:1:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30783830","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 128","value":"0x80"},"id":2183,"name":"Literal","src":"9913:4:4"}],"id":2184,"name":"BinaryOperation","src":"9909:8:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2176,"type":"uint256","value":"l"},"id":2185,"name":"Identifier","src":"9933:1:4"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":2186,"name":"Literal","src":"9937:1:4"}],"id":2187,"name":"Assignment","src":"9933:5:4"}],"id":2188,"name":"ExpressionStatement","src":"9933:5:4"}],"id":2189,"name":"Block","src":"9919:30:4"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2179,"type":"uint256","value":"b"},"id":2190,"name":"Identifier","src":"9958:1:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30784530","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 224","value":"0xE0"},"id":2191,"name":"Literal","src":"9962:4:4"}],"id":2192,"name":"BinaryOperation","src":"9958:8:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2176,"type":"uint256","value":"l"},"id":2193,"name":"Identifier","src":"9982:1:4"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":2194,"name":"Literal","src":"9986:1:4"}],"id":2195,"name":"Assignment","src":"9982:5:4"}],"id":2196,"name":"ExpressionStatement","src":"9982:5:4"}],"id":2197,"name":"Block","src":"9968:30:4"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2179,"type":"uint256","value":"b"},"id":2198,"name":"Identifier","src":"10007:1:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30784630","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 240","value":"0xF0"},"id":2199,"name":"Literal","src":"10011:4:4"}],"id":2200,"name":"BinaryOperation","src":"10007:8:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2176,"type":"uint256","value":"l"},"id":2201,"name":"Identifier","src":"10031:1:4"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":2202,"name":"Literal","src":"10035:1:4"}],"id":2203,"name":"Assignment","src":"10031:5:4"}],"id":2204,"name":"ExpressionStatement","src":"10031:5:4"}],"id":2205,"name":"Block","src":"10017:30:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2176,"type":"uint256","value":"l"},"id":2206,"name":"Identifier","src":"10067:1:4"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":2207,"name":"Literal","src":"10071:1:4"}],"id":2208,"name":"Assignment","src":"10067:5:4"}],"id":2209,"name":"ExpressionStatement","src":"10067:5:4"}],"id":2210,"name":"Block","src":"10053:30:4"}],"id":2211,"name":"IfStatement","src":"10004:79:4"}],"id":2212,"name":"IfStatement","src":"9955:128:4"}],"id":2213,"name":"IfStatement","src":"9905:178:4"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2176,"type":"uint256","value":"l"},"id":2214,"name":"Identifier","src":"10139:1:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1657,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2147,"type":"struct strings.slice memory","value":"self"},"id":2215,"name":"Identifier","src":"10143:4:4"}],"id":2216,"name":"MemberAccess","src":"10143:9:4"}],"id":2217,"name":"BinaryOperation","src":"10139:13:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":1657,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2149,"type":"struct strings.slice memory","value":"rune"},"id":2218,"name":"Identifier","src":"10168:4:4"}],"id":2220,"name":"MemberAccess","src":"10168:9:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1657,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2147,"type":"struct strings.slice memory","value":"self"},"id":2221,"name":"Identifier","src":"10180:4:4"}],"id":2222,"name":"MemberAccess","src":"10180:9:4"}],"id":2223,"name":"Assignment","src":"10168:21:4"}],"id":2224,"name":"ExpressionStatement","src":"10168:21:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_ptr","referencedDeclaration":1659,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2147,"type":"struct strings.slice memory","value":"self"},"id":2225,"name":"Identifier","src":"10203:4:4"}],"id":2227,"name":"MemberAccess","src":"10203:9:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1657,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2147,"type":"struct strings.slice memory","value":"self"},"id":2228,"name":"Identifier","src":"10216:4:4"}],"id":2229,"name":"MemberAccess","src":"10216:9:4"}],"id":2230,"name":"Assignment","src":"10203:22:4"}],"id":2231,"name":"ExpressionStatement","src":"10203:22:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":1657,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2147,"type":"struct strings.slice memory","value":"self"},"id":2232,"name":"Identifier","src":"10239:4:4"}],"id":2234,"name":"MemberAccess","src":"10239:9:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2235,"name":"Literal","src":"10251:1:4"}],"id":2236,"name":"Assignment","src":"10239:13:4"}],"id":2237,"name":"ExpressionStatement","src":"10239:13:4"},{"attributes":{"functionReturnParameters":2153},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2149,"type":"struct strings.slice memory","value":"rune"},"id":2238,"name":"Identifier","src":"10273:4:4"}],"id":2239,"name":"Return","src":"10266:11:4"}],"id":2240,"name":"Block","src":"10154:134:4"}],"id":2241,"name":"IfStatement","src":"10135:153:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_ptr","referencedDeclaration":1659,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2147,"type":"struct strings.slice memory","value":"self"},"id":2242,"name":"Identifier","src":"10298:4:4"}],"id":2244,"name":"MemberAccess","src":"10298:9:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2176,"type":"uint256","value":"l"},"id":2245,"name":"Identifier","src":"10311:1:4"}],"id":2246,"name":"Assignment","src":"10298:14:4"}],"id":2247,"name":"ExpressionStatement","src":"10298:14:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":1657,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2147,"type":"struct strings.slice memory","value":"self"},"id":2248,"name":"Identifier","src":"10322:4:4"}],"id":2250,"name":"MemberAccess","src":"10322:9:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2176,"type":"uint256","value":"l"},"id":2251,"name":"Identifier","src":"10335:1:4"}],"id":2252,"name":"Assignment","src":"10322:14:4"}],"id":2253,"name":"ExpressionStatement","src":"10322:14:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":1657,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2149,"type":"struct strings.slice memory","value":"rune"},"id":2254,"name":"Identifier","src":"10346:4:4"}],"id":2256,"name":"MemberAccess","src":"10346:9:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2176,"type":"uint256","value":"l"},"id":2257,"name":"Identifier","src":"10358:1:4"}],"id":2258,"name":"Assignment","src":"10346:13:4"}],"id":2259,"name":"ExpressionStatement","src":"10346:13:4"},{"attributes":{"functionReturnParameters":2153},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2149,"type":"struct strings.slice memory","value":"rune"},"id":2260,"name":"Identifier","src":"10376:4:4"}],"id":2261,"name":"Return","src":"10369:11:4"}],"id":2262,"name":"Block","src":"9602:785:4"}],"id":2263,"name":"FunctionDefinition","src":"9509:878:4"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"nextRune","payable":false,"scope":3348,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":2276,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1660,"type":"struct strings.slice"},"id":2264,"name":"UserDefinedTypeName","src":"10645:5:4"}],"id":2265,"name":"VariableDeclaration","src":"10645:17:4"}],"id":2266,"name":"ParameterList","src":"10644:19:4"},{"children":[{"attributes":{"constant":false,"name":"ret","scope":2276,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1660,"type":"struct strings.slice"},"id":2267,"name":"UserDefinedTypeName","src":"10687:5:4"}],"id":2268,"name":"VariableDeclaration","src":"10687:16:4"}],"id":2269,"name":"ParameterList","src":"10686:18:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"struct strings.slice memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$1660_memory_ptr","typeString":"struct strings.slice memory"},{"typeIdentifier":"t_struct$_slice_$1660_memory_ptr","typeString":"struct strings.slice memory"}],"overloadedDeclarations":[2263,2276],"referencedDeclaration":2263,"type":"function (struct strings.slice memory,struct strings.slice memory) pure returns (struct strings.slice memory)","value":"nextRune"},"id":2270,"name":"Identifier","src":"10715:8:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2265,"type":"struct strings.slice memory","value":"self"},"id":2271,"name":"Identifier","src":"10724:4:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2268,"type":"struct strings.slice memory","value":"ret"},"id":2272,"name":"Identifier","src":"10730:3:4"}],"id":2273,"name":"FunctionCall","src":"10715:19:4"}],"id":2274,"name":"ExpressionStatement","src":"10715:19:4"}],"id":2275,"name":"Block","src":"10705:36:4"}],"id":2276,"name":"FunctionDefinition","src":"10627:114:4"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"ord","payable":false,"scope":3348,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":2423,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1660,"type":"struct strings.slice"},"id":2277,"name":"UserDefinedTypeName","src":"10950:5:4"}],"id":2278,"name":"VariableDeclaration","src":"10950:17:4"}],"id":2279,"name":"ParameterList","src":"10949:19:4"},{"children":[{"attributes":{"constant":false,"name":"ret","scope":2423,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2280,"name":"ElementaryTypeName","src":"10992:4:4"}],"id":2281,"name":"VariableDeclaration","src":"10992:8:4"}],"id":2282,"name":"ParameterList","src":"10991:10:4"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1657,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2278,"type":"struct strings.slice memory","value":"self"},"id":2283,"name":"Identifier","src":"11016:4:4"}],"id":2284,"name":"MemberAccess","src":"11016:9:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2285,"name":"Literal","src":"11029:1:4"}],"id":2286,"name":"BinaryOperation","src":"11016:14:4"},{"children":[{"attributes":{"functionReturnParameters":2282},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2287,"name":"Literal","src":"11053:1:4"}],"id":2288,"name":"Return","src":"11046:8:4"}],"id":2289,"name":"Block","src":"11032:33:4"}],"id":2290,"name":"IfStatement","src":"11012:53:4"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"word","scope":2423,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2291,"name":"ElementaryTypeName","src":"11075:4:4"}],"id":2292,"name":"VariableDeclaration","src":"11075:9:4"}],"id":2293,"name":"VariableDeclarationStatement","src":"11075:9:4"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"length","scope":2423,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2294,"name":"ElementaryTypeName","src":"11094:4:4"}],"id":2295,"name":"VariableDeclaration","src":"11094:11:4"}],"id":2296,"name":"VariableDeclarationStatement","src":"11094:11:4"},{"attributes":{"assignments":[2298]},"children":[{"attributes":{"constant":false,"name":"divisor","scope":2423,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2297,"name":"ElementaryTypeName","src":"11115:4:4"}],"id":2298,"name":"VariableDeclaration","src":"11115:12:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_452312848583266388373324160190187140051835877600158453279131187530910662656_by_1","typeString":"int_const 4523...(67 digits omitted)...2656"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"**","type":"int_const 4523...(67 digits omitted)...2656"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":2299,"name":"Literal","src":"11130:1:4"},{"attributes":{"argumentTypes":null,"hexvalue":"323438","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 248","value":"248"},"id":2300,"name":"Literal","src":"11135:3:4"}],"id":2301,"name":"BinaryOperation","src":"11130:8:4"}],"id":2302,"name":"VariableDeclarationStatement","src":"11115:23:4"},{"attributes":{"externalReferences":[{"self":{"declaration":2278,"isOffset":false,"isSlot":false,"src":"11227:4:4","valueSize":1}},{"word":{"declaration":2292,"isOffset":false,"isSlot":false,"src":"11204:4:4","valueSize":1}}],"operations":"{\n word := mload(mload(add(self, 32)))\n}"},"children":[],"id":2303,"name":"InlineAssembly","src":"11193:60:4"},{"attributes":{"assignments":[2305]},"children":[{"attributes":{"constant":false,"name":"b","scope":2423,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2304,"name":"ElementaryTypeName","src":"11249:4:4"}],"id":2305,"name":"VariableDeclaration","src":"11249:6:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"/","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2292,"type":"uint256","value":"word"},"id":2306,"name":"Identifier","src":"11258:4:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2298,"type":"uint256","value":"divisor"},"id":2307,"name":"Identifier","src":"11265:7:4"}],"id":2308,"name":"BinaryOperation","src":"11258:14:4"}],"id":2309,"name":"VariableDeclarationStatement","src":"11249:23:4"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2305,"type":"uint256","value":"b"},"id":2310,"name":"Identifier","src":"11286:1:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30783830","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 128","value":"0x80"},"id":2311,"name":"Literal","src":"11290:4:4"}],"id":2312,"name":"BinaryOperation","src":"11286:8:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2281,"type":"uint256","value":"ret"},"id":2313,"name":"Identifier","src":"11310:3:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2305,"type":"uint256","value":"b"},"id":2314,"name":"Identifier","src":"11316:1:4"}],"id":2315,"name":"Assignment","src":"11310:7:4"}],"id":2316,"name":"ExpressionStatement","src":"11310:7:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2295,"type":"uint256","value":"length"},"id":2317,"name":"Identifier","src":"11331:6:4"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":2318,"name":"Literal","src":"11340:1:4"}],"id":2319,"name":"Assignment","src":"11331:10:4"}],"id":2320,"name":"ExpressionStatement","src":"11331:10:4"}],"id":2321,"name":"Block","src":"11296:56:4"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2305,"type":"uint256","value":"b"},"id":2322,"name":"Identifier","src":"11361:1:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30784530","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 224","value":"0xE0"},"id":2323,"name":"Literal","src":"11365:4:4"}],"id":2324,"name":"BinaryOperation","src":"11361:8:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2281,"type":"uint256","value":"ret"},"id":2325,"name":"Identifier","src":"11385:3:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2305,"type":"uint256","value":"b"},"id":2326,"name":"Identifier","src":"11391:1:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30783146","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 31","value":"0x1F"},"id":2327,"name":"Literal","src":"11395:4:4"}],"id":2328,"name":"BinaryOperation","src":"11391:8:4"}],"id":2329,"name":"Assignment","src":"11385:14:4"}],"id":2330,"name":"ExpressionStatement","src":"11385:14:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2295,"type":"uint256","value":"length"},"id":2331,"name":"Identifier","src":"11413:6:4"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":2332,"name":"Literal","src":"11422:1:4"}],"id":2333,"name":"Assignment","src":"11413:10:4"}],"id":2334,"name":"ExpressionStatement","src":"11413:10:4"}],"id":2335,"name":"Block","src":"11371:63:4"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2305,"type":"uint256","value":"b"},"id":2336,"name":"Identifier","src":"11443:1:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30784630","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 240","value":"0xF0"},"id":2337,"name":"Literal","src":"11447:4:4"}],"id":2338,"name":"BinaryOperation","src":"11443:8:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2281,"type":"uint256","value":"ret"},"id":2339,"name":"Identifier","src":"11467:3:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2305,"type":"uint256","value":"b"},"id":2340,"name":"Identifier","src":"11473:1:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30783046","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 15","value":"0x0F"},"id":2341,"name":"Literal","src":"11477:4:4"}],"id":2342,"name":"BinaryOperation","src":"11473:8:4"}],"id":2343,"name":"Assignment","src":"11467:14:4"}],"id":2344,"name":"ExpressionStatement","src":"11467:14:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2295,"type":"uint256","value":"length"},"id":2345,"name":"Identifier","src":"11495:6:4"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":2346,"name":"Literal","src":"11504:1:4"}],"id":2347,"name":"Assignment","src":"11495:10:4"}],"id":2348,"name":"ExpressionStatement","src":"11495:10:4"}],"id":2349,"name":"Block","src":"11453:63:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2281,"type":"uint256","value":"ret"},"id":2350,"name":"Identifier","src":"11536:3:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2305,"type":"uint256","value":"b"},"id":2351,"name":"Identifier","src":"11542:1:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30783037","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 7","value":"0x07"},"id":2352,"name":"Literal","src":"11546:4:4"}],"id":2353,"name":"BinaryOperation","src":"11542:8:4"}],"id":2354,"name":"Assignment","src":"11536:14:4"}],"id":2355,"name":"ExpressionStatement","src":"11536:14:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2295,"type":"uint256","value":"length"},"id":2356,"name":"Identifier","src":"11564:6:4"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":2357,"name":"Literal","src":"11573:1:4"}],"id":2358,"name":"Assignment","src":"11564:10:4"}],"id":2359,"name":"ExpressionStatement","src":"11564:10:4"}],"id":2360,"name":"Block","src":"11522:63:4"}],"id":2361,"name":"IfStatement","src":"11440:145:4"}],"id":2362,"name":"IfStatement","src":"11358:227:4"}],"id":2363,"name":"IfStatement","src":"11282:303:4"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2295,"type":"uint256","value":"length"},"id":2364,"name":"Identifier","src":"11641:6:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1657,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2278,"type":"struct strings.slice memory","value":"self"},"id":2365,"name":"Identifier","src":"11650:4:4"}],"id":2366,"name":"MemberAccess","src":"11650:9:4"}],"id":2367,"name":"BinaryOperation","src":"11641:18:4"},{"children":[{"attributes":{"functionReturnParameters":2282},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2368,"name":"Literal","src":"11682:1:4"}],"id":2369,"name":"Return","src":"11675:8:4"}],"id":2370,"name":"Block","src":"11661:33:4"}],"id":2371,"name":"IfStatement","src":"11637:57:4"},{"children":[{"attributes":{"assignments":[2373]},"children":[{"attributes":{"constant":false,"name":"i","scope":2423,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2372,"name":"ElementaryTypeName","src":"11709:4:4"}],"id":2373,"name":"VariableDeclaration","src":"11709:6:4"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":2374,"name":"Literal","src":"11718:1:4"}],"id":2375,"name":"VariableDeclarationStatement","src":"11709:10:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2373,"type":"uint256","value":"i"},"id":2376,"name":"Identifier","src":"11721:1:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2295,"type":"uint256","value":"length"},"id":2377,"name":"Identifier","src":"11725:6:4"}],"id":2378,"name":"BinaryOperation","src":"11721:10:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2373,"type":"uint256","value":"i"},"id":2379,"name":"Identifier","src":"11733:1:4"}],"id":2380,"name":"UnaryOperation","src":"11733:3:4"}],"id":2381,"name":"ExpressionStatement","src":"11733:3:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2298,"type":"uint256","value":"divisor"},"id":2382,"name":"Identifier","src":"11752:7:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"/","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2298,"type":"uint256","value":"divisor"},"id":2383,"name":"Identifier","src":"11762:7:4"},{"attributes":{"argumentTypes":null,"hexvalue":"323536","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 256","value":"256"},"id":2384,"name":"Literal","src":"11772:3:4"}],"id":2385,"name":"BinaryOperation","src":"11762:13:4"}],"id":2386,"name":"Assignment","src":"11752:23:4"}],"id":2387,"name":"ExpressionStatement","src":"11752:23:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2305,"type":"uint256","value":"b"},"id":2388,"name":"Identifier","src":"11789:1:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"/","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2292,"type":"uint256","value":"word"},"id":2389,"name":"Identifier","src":"11794:4:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2298,"type":"uint256","value":"divisor"},"id":2390,"name":"Identifier","src":"11801:7:4"}],"id":2391,"name":"BinaryOperation","src":"11794:14:4"}],"id":2392,"name":"TupleExpression","src":"11793:16:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30784646","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 255","value":"0xFF"},"id":2393,"name":"Literal","src":"11812:4:4"}],"id":2394,"name":"BinaryOperation","src":"11793:23:4"}],"id":2395,"name":"Assignment","src":"11789:27:4"}],"id":2396,"name":"ExpressionStatement","src":"11789:27:4"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2305,"type":"uint256","value":"b"},"id":2397,"name":"Identifier","src":"11834:1:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30784330","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 192","value":"0xC0"},"id":2398,"name":"Literal","src":"11838:4:4"}],"id":2399,"name":"BinaryOperation","src":"11834:8:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30783830","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 128","value":"0x80"},"id":2400,"name":"Literal","src":"11846:4:4"}],"id":2401,"name":"BinaryOperation","src":"11834:16:4"},{"children":[{"attributes":{"functionReturnParameters":2282},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2402,"name":"Literal","src":"11919:1:4"}],"id":2403,"name":"Return","src":"11912:8:4"}],"id":2404,"name":"Block","src":"11852:83:4"}],"id":2405,"name":"IfStatement","src":"11830:105:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2281,"type":"uint256","value":"ret"},"id":2406,"name":"Identifier","src":"11948:3:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"|","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2281,"type":"uint256","value":"ret"},"id":2407,"name":"Identifier","src":"11955:3:4"},{"attributes":{"argumentTypes":null,"hexvalue":"3634","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 64","value":"64"},"id":2408,"name":"Literal","src":"11961:2:4"}],"id":2409,"name":"BinaryOperation","src":"11955:8:4"}],"id":2410,"name":"TupleExpression","src":"11954:10:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2305,"type":"uint256","value":"b"},"id":2411,"name":"Identifier","src":"11968:1:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30783346","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 63","value":"0x3F"},"id":2412,"name":"Literal","src":"11972:4:4"}],"id":2413,"name":"BinaryOperation","src":"11968:8:4"}],"id":2414,"name":"TupleExpression","src":"11967:10:4"}],"id":2415,"name":"BinaryOperation","src":"11954:23:4"}],"id":2416,"name":"Assignment","src":"11948:29:4"}],"id":2417,"name":"ExpressionStatement","src":"11948:29:4"}],"id":2418,"name":"Block","src":"11738:250:4"}],"id":2419,"name":"ForStatement","src":"11704:284:4"},{"attributes":{"functionReturnParameters":2282},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2281,"type":"uint256","value":"ret"},"id":2420,"name":"Identifier","src":"12005:3:4"}],"id":2421,"name":"Return","src":"11998:10:4"}],"id":2422,"name":"Block","src":"11002:1013:4"}],"id":2423,"name":"FunctionDefinition","src":"10937:1078:4"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"keccak","payable":false,"scope":3348,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":2432,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1660,"type":"struct strings.slice"},"id":2424,"name":"UserDefinedTypeName","src":"12182:5:4"}],"id":2425,"name":"VariableDeclaration","src":"12182:17:4"}],"id":2426,"name":"ParameterList","src":"12181:19:4"},{"children":[{"attributes":{"constant":false,"name":"ret","scope":2432,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":2427,"name":"ElementaryTypeName","src":"12224:7:4"}],"id":2428,"name":"VariableDeclaration","src":"12224:11:4"}],"id":2429,"name":"ParameterList","src":"12223:13:4"},{"children":[{"attributes":{"externalReferences":[{"ret":{"declaration":2428,"isOffset":false,"isSlot":false,"src":"12270:3:4","valueSize":1}},{"self":{"declaration":2425,"isOffset":false,"isSlot":false,"src":"12315:4:4","valueSize":1}},{"self":{"declaration":2425,"isOffset":false,"isSlot":false,"src":"12297:4:4","valueSize":1}}],"operations":"{\n ret := keccak256(mload(add(self, 32)), mload(self))\n}"},"children":[],"id":2430,"name":"InlineAssembly","src":"12247:90:4"}],"id":2431,"name":"Block","src":"12237:100:4"}],"id":2432,"name":"FunctionDefinition","src":"12166:171:4"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"startsWith","payable":false,"scope":3348,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":2466,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1660,"type":"struct strings.slice"},"id":2433,"name":"UserDefinedTypeName","src":"12606:5:4"}],"id":2434,"name":"VariableDeclaration","src":"12606:17:4"},{"attributes":{"constant":false,"name":"needle","scope":2466,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1660,"type":"struct strings.slice"},"id":2435,"name":"UserDefinedTypeName","src":"12625:5:4"}],"id":2436,"name":"VariableDeclaration","src":"12625:19:4"}],"id":2437,"name":"ParameterList","src":"12605:40:4"},{"children":[{"attributes":{"constant":false,"name":"","scope":2466,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2438,"name":"ElementaryTypeName","src":"12669:4:4"}],"id":2439,"name":"VariableDeclaration","src":"12669:4:4"}],"id":2440,"name":"ParameterList","src":"12668:6:4"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1657,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2434,"type":"struct strings.slice memory","value":"self"},"id":2441,"name":"Identifier","src":"12689:4:4"}],"id":2442,"name":"MemberAccess","src":"12689:9:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1657,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2436,"type":"struct strings.slice memory","value":"needle"},"id":2443,"name":"Identifier","src":"12701:6:4"}],"id":2444,"name":"MemberAccess","src":"12701:11:4"}],"id":2445,"name":"BinaryOperation","src":"12689:23:4"},{"children":[{"attributes":{"functionReturnParameters":2440},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"66616c7365","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"false"},"id":2446,"name":"Literal","src":"12735:5:4"}],"id":2447,"name":"Return","src":"12728:12:4"}],"id":2448,"name":"Block","src":"12714:37:4"}],"id":2449,"name":"IfStatement","src":"12685:66:4"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":1659,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2434,"type":"struct strings.slice memory","value":"self"},"id":2450,"name":"Identifier","src":"12765:4:4"}],"id":2451,"name":"MemberAccess","src":"12765:9:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":1659,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2436,"type":"struct strings.slice memory","value":"needle"},"id":2452,"name":"Identifier","src":"12778:6:4"}],"id":2453,"name":"MemberAccess","src":"12778:11:4"}],"id":2454,"name":"BinaryOperation","src":"12765:24:4"},{"children":[{"attributes":{"functionReturnParameters":2440},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":2455,"name":"Literal","src":"12812:4:4"}],"id":2456,"name":"Return","src":"12805:11:4"}],"id":2457,"name":"Block","src":"12791:36:4"}],"id":2458,"name":"IfStatement","src":"12761:66:4"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"equal","scope":2466,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2459,"name":"ElementaryTypeName","src":"12837:4:4"}],"id":2460,"name":"VariableDeclaration","src":"12837:10:4"}],"id":2461,"name":"VariableDeclarationStatement","src":"12837:10:4"},{"attributes":{"externalReferences":[{"needle":{"declaration":2436,"isOffset":false,"isSlot":false,"src":"12900:6:4","valueSize":1}},{"self":{"declaration":2434,"isOffset":false,"isSlot":false,"src":"12945:4:4","valueSize":1}},{"needle":{"declaration":2436,"isOffset":false,"isSlot":false,"src":"12997:6:4","valueSize":1}},{"equal":{"declaration":2460,"isOffset":false,"isSlot":false,"src":"13024:5:4","valueSize":1}}],"operations":"{\n let length := mload(needle)\n let selfptr := mload(add(self, 0x20))\n let needleptr := mload(add(needle, 0x20))\n equal := eq(keccak256(selfptr, length), keccak256(needleptr, length))\n}"},"children":[],"id":2462,"name":"InlineAssembly","src":"12857:261:4"},{"attributes":{"functionReturnParameters":2440},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2460,"type":"bool","value":"equal"},"id":2463,"name":"Identifier","src":"13119:5:4"}],"id":2464,"name":"Return","src":"13112:12:4"}],"id":2465,"name":"Block","src":"12675:456:4"}],"id":2466,"name":"FunctionDefinition","src":"12586:545:4"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"beyond","payable":false,"scope":3348,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":2516,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1660,"type":"struct strings.slice"},"id":2467,"name":"UserDefinedTypeName","src":"13419:5:4"}],"id":2468,"name":"VariableDeclaration","src":"13419:17:4"},{"attributes":{"constant":false,"name":"needle","scope":2516,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1660,"type":"struct strings.slice"},"id":2469,"name":"UserDefinedTypeName","src":"13438:5:4"}],"id":2470,"name":"VariableDeclaration","src":"13438:19:4"}],"id":2471,"name":"ParameterList","src":"13418:40:4"},{"children":[{"attributes":{"constant":false,"name":"","scope":2516,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1660,"type":"struct strings.slice"},"id":2472,"name":"UserDefinedTypeName","src":"13482:5:4"}],"id":2473,"name":"VariableDeclaration","src":"13482:5:4"}],"id":2474,"name":"ParameterList","src":"13481:14:4"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1657,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2468,"type":"struct strings.slice memory","value":"self"},"id":2475,"name":"Identifier","src":"13510:4:4"}],"id":2476,"name":"MemberAccess","src":"13510:9:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1657,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2470,"type":"struct strings.slice memory","value":"needle"},"id":2477,"name":"Identifier","src":"13522:6:4"}],"id":2478,"name":"MemberAccess","src":"13522:11:4"}],"id":2479,"name":"BinaryOperation","src":"13510:23:4"},{"children":[{"attributes":{"functionReturnParameters":2474},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2468,"type":"struct strings.slice memory","value":"self"},"id":2480,"name":"Identifier","src":"13556:4:4"}],"id":2481,"name":"Return","src":"13549:11:4"}],"id":2482,"name":"Block","src":"13535:36:4"}],"id":2483,"name":"IfStatement","src":"13506:65:4"},{"attributes":{"assignments":[2485]},"children":[{"attributes":{"constant":false,"name":"equal","scope":2516,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2484,"name":"ElementaryTypeName","src":"13581:4:4"}],"id":2485,"name":"VariableDeclaration","src":"13581:10:4"},{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":2486,"name":"Literal","src":"13594:4:4"}],"id":2487,"name":"VariableDeclarationStatement","src":"13581:17:4"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":1659,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2468,"type":"struct strings.slice memory","value":"self"},"id":2488,"name":"Identifier","src":"13612:4:4"}],"id":2489,"name":"MemberAccess","src":"13612:9:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":1659,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2470,"type":"struct strings.slice memory","value":"needle"},"id":2490,"name":"Identifier","src":"13625:6:4"}],"id":2491,"name":"MemberAccess","src":"13625:11:4"}],"id":2492,"name":"BinaryOperation","src":"13612:24:4"},{"children":[{"attributes":{"externalReferences":[{"needle":{"declaration":2470,"isOffset":false,"isSlot":false,"src":"13699:6:4","valueSize":1}},{"self":{"declaration":2468,"isOffset":false,"isSlot":false,"src":"13748:4:4","valueSize":1}},{"needle":{"declaration":2470,"isOffset":false,"isSlot":false,"src":"13804:6:4","valueSize":1}},{"equal":{"declaration":2485,"isOffset":false,"isSlot":false,"src":"13835:5:4","valueSize":1}}],"operations":"{\n let length := mload(needle)\n let selfptr := mload(add(self, 0x20))\n let needleptr := mload(add(needle, 0x20))\n equal := eq(keccak256(selfptr, length), keccak256(needleptr, length))\n}"},"children":[],"id":2493,"name":"InlineAssembly","src":"13652:276:4"}],"id":2494,"name":"Block","src":"13638:290:4"}],"id":2495,"name":"IfStatement","src":"13608:320:4"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2485,"type":"bool","value":"equal"},"id":2496,"name":"Identifier","src":"13942:5:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":1657,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2468,"type":"struct strings.slice memory","value":"self"},"id":2497,"name":"Identifier","src":"13963:4:4"}],"id":2499,"name":"MemberAccess","src":"13963:9:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1657,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2470,"type":"struct strings.slice memory","value":"needle"},"id":2500,"name":"Identifier","src":"13976:6:4"}],"id":2501,"name":"MemberAccess","src":"13976:11:4"}],"id":2502,"name":"Assignment","src":"13963:24:4"}],"id":2503,"name":"ExpressionStatement","src":"13963:24:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_ptr","referencedDeclaration":1659,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2468,"type":"struct strings.slice memory","value":"self"},"id":2504,"name":"Identifier","src":"14001:4:4"}],"id":2506,"name":"MemberAccess","src":"14001:9:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1657,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2470,"type":"struct strings.slice memory","value":"needle"},"id":2507,"name":"Identifier","src":"14014:6:4"}],"id":2508,"name":"MemberAccess","src":"14014:11:4"}],"id":2509,"name":"Assignment","src":"14001:24:4"}],"id":2510,"name":"ExpressionStatement","src":"14001:24:4"}],"id":2511,"name":"Block","src":"13949:87:4"}],"id":2512,"name":"IfStatement","src":"13938:98:4"},{"attributes":{"functionReturnParameters":2474},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2468,"type":"struct strings.slice memory","value":"self"},"id":2513,"name":"Identifier","src":"14053:4:4"}],"id":2514,"name":"Return","src":"14046:11:4"}],"id":2515,"name":"Block","src":"13496:568:4"}],"id":2516,"name":"FunctionDefinition","src":"13403:661:4"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"endsWith","payable":false,"scope":3348,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":2560,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1660,"type":"struct strings.slice"},"id":2517,"name":"UserDefinedTypeName","src":"14332:5:4"}],"id":2518,"name":"VariableDeclaration","src":"14332:17:4"},{"attributes":{"constant":false,"name":"needle","scope":2560,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1660,"type":"struct strings.slice"},"id":2519,"name":"UserDefinedTypeName","src":"14351:5:4"}],"id":2520,"name":"VariableDeclaration","src":"14351:19:4"}],"id":2521,"name":"ParameterList","src":"14331:40:4"},{"children":[{"attributes":{"constant":false,"name":"","scope":2560,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2522,"name":"ElementaryTypeName","src":"14395:4:4"}],"id":2523,"name":"VariableDeclaration","src":"14395:4:4"}],"id":2524,"name":"ParameterList","src":"14394:6:4"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1657,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2518,"type":"struct strings.slice memory","value":"self"},"id":2525,"name":"Identifier","src":"14415:4:4"}],"id":2526,"name":"MemberAccess","src":"14415:9:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1657,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2520,"type":"struct strings.slice memory","value":"needle"},"id":2527,"name":"Identifier","src":"14427:6:4"}],"id":2528,"name":"MemberAccess","src":"14427:11:4"}],"id":2529,"name":"BinaryOperation","src":"14415:23:4"},{"children":[{"attributes":{"functionReturnParameters":2524},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"66616c7365","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"false"},"id":2530,"name":"Literal","src":"14461:5:4"}],"id":2531,"name":"Return","src":"14454:12:4"}],"id":2532,"name":"Block","src":"14440:37:4"}],"id":2533,"name":"IfStatement","src":"14411:66:4"},{"attributes":{"assignments":[2535]},"children":[{"attributes":{"constant":false,"name":"selfptr","scope":2560,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2534,"name":"ElementaryTypeName","src":"14487:4:4"}],"id":2535,"name":"VariableDeclaration","src":"14487:12:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":1659,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2518,"type":"struct strings.slice memory","value":"self"},"id":2536,"name":"Identifier","src":"14502:4:4"}],"id":2537,"name":"MemberAccess","src":"14502:9:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1657,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2518,"type":"struct strings.slice memory","value":"self"},"id":2538,"name":"Identifier","src":"14514:4:4"}],"id":2539,"name":"MemberAccess","src":"14514:9:4"}],"id":2540,"name":"BinaryOperation","src":"14502:21:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1657,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2520,"type":"struct strings.slice memory","value":"needle"},"id":2541,"name":"Identifier","src":"14526:6:4"}],"id":2542,"name":"MemberAccess","src":"14526:11:4"}],"id":2543,"name":"BinaryOperation","src":"14502:35:4"}],"id":2544,"name":"VariableDeclarationStatement","src":"14487:50:4"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2535,"type":"uint256","value":"selfptr"},"id":2545,"name":"Identifier","src":"14552:7:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":1659,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2520,"type":"struct strings.slice memory","value":"needle"},"id":2546,"name":"Identifier","src":"14563:6:4"}],"id":2547,"name":"MemberAccess","src":"14563:11:4"}],"id":2548,"name":"BinaryOperation","src":"14552:22:4"},{"children":[{"attributes":{"functionReturnParameters":2524},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":2549,"name":"Literal","src":"14597:4:4"}],"id":2550,"name":"Return","src":"14590:11:4"}],"id":2551,"name":"Block","src":"14576:36:4"}],"id":2552,"name":"IfStatement","src":"14548:64:4"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"equal","scope":2560,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2553,"name":"ElementaryTypeName","src":"14622:4:4"}],"id":2554,"name":"VariableDeclaration","src":"14622:10:4"}],"id":2555,"name":"VariableDeclarationStatement","src":"14622:10:4"},{"attributes":{"externalReferences":[{"needle":{"declaration":2520,"isOffset":false,"isSlot":false,"src":"14685:6:4","valueSize":1}},{"needle":{"declaration":2520,"isOffset":false,"isSlot":false,"src":"14732:6:4","valueSize":1}},{"equal":{"declaration":2554,"isOffset":false,"isSlot":false,"src":"14759:5:4","valueSize":1}},{"selfptr":{"declaration":2535,"isOffset":false,"isSlot":false,"src":"14781:7:4","valueSize":1}}],"operations":"{\n let length := mload(needle)\n let needleptr := mload(add(needle, 0x20))\n equal := eq(keccak256(selfptr, length), keccak256(needleptr, length))\n}"},"children":[],"id":2556,"name":"InlineAssembly","src":"14642:212:4"},{"attributes":{"functionReturnParameters":2524},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2554,"type":"bool","value":"equal"},"id":2557,"name":"Identifier","src":"14855:5:4"}],"id":2558,"name":"Return","src":"14848:12:4"}],"id":2559,"name":"Block","src":"14401:466:4"}],"id":2560,"name":"FunctionDefinition","src":"14314:553:4"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"until","payable":false,"scope":3348,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":2613,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1660,"type":"struct strings.slice"},"id":2561,"name":"UserDefinedTypeName","src":"15146:5:4"}],"id":2562,"name":"VariableDeclaration","src":"15146:17:4"},{"attributes":{"constant":false,"name":"needle","scope":2613,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1660,"type":"struct strings.slice"},"id":2563,"name":"UserDefinedTypeName","src":"15165:5:4"}],"id":2564,"name":"VariableDeclaration","src":"15165:19:4"}],"id":2565,"name":"ParameterList","src":"15145:40:4"},{"children":[{"attributes":{"constant":false,"name":"","scope":2613,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1660,"type":"struct strings.slice"},"id":2566,"name":"UserDefinedTypeName","src":"15209:5:4"}],"id":2567,"name":"VariableDeclaration","src":"15209:5:4"}],"id":2568,"name":"ParameterList","src":"15208:14:4"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1657,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2562,"type":"struct strings.slice memory","value":"self"},"id":2569,"name":"Identifier","src":"15237:4:4"}],"id":2570,"name":"MemberAccess","src":"15237:9:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1657,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2564,"type":"struct strings.slice memory","value":"needle"},"id":2571,"name":"Identifier","src":"15249:6:4"}],"id":2572,"name":"MemberAccess","src":"15249:11:4"}],"id":2573,"name":"BinaryOperation","src":"15237:23:4"},{"children":[{"attributes":{"functionReturnParameters":2568},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2562,"type":"struct strings.slice memory","value":"self"},"id":2574,"name":"Identifier","src":"15283:4:4"}],"id":2575,"name":"Return","src":"15276:11:4"}],"id":2576,"name":"Block","src":"15262:36:4"}],"id":2577,"name":"IfStatement","src":"15233:65:4"},{"attributes":{"assignments":[2579]},"children":[{"attributes":{"constant":false,"name":"selfptr","scope":2613,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2578,"name":"ElementaryTypeName","src":"15308:4:4"}],"id":2579,"name":"VariableDeclaration","src":"15308:12:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":1659,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2562,"type":"struct strings.slice memory","value":"self"},"id":2580,"name":"Identifier","src":"15323:4:4"}],"id":2581,"name":"MemberAccess","src":"15323:9:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1657,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2562,"type":"struct strings.slice memory","value":"self"},"id":2582,"name":"Identifier","src":"15335:4:4"}],"id":2583,"name":"MemberAccess","src":"15335:9:4"}],"id":2584,"name":"BinaryOperation","src":"15323:21:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1657,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2564,"type":"struct strings.slice memory","value":"needle"},"id":2585,"name":"Identifier","src":"15347:6:4"}],"id":2586,"name":"MemberAccess","src":"15347:11:4"}],"id":2587,"name":"BinaryOperation","src":"15323:35:4"}],"id":2588,"name":"VariableDeclarationStatement","src":"15308:50:4"},{"attributes":{"assignments":[2590]},"children":[{"attributes":{"constant":false,"name":"equal","scope":2613,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2589,"name":"ElementaryTypeName","src":"15368:4:4"}],"id":2590,"name":"VariableDeclaration","src":"15368:10:4"},{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":2591,"name":"Literal","src":"15381:4:4"}],"id":2592,"name":"VariableDeclarationStatement","src":"15368:17:4"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2579,"type":"uint256","value":"selfptr"},"id":2593,"name":"Identifier","src":"15399:7:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":1659,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2564,"type":"struct strings.slice memory","value":"needle"},"id":2594,"name":"Identifier","src":"15410:6:4"}],"id":2595,"name":"MemberAccess","src":"15410:11:4"}],"id":2596,"name":"BinaryOperation","src":"15399:22:4"},{"children":[{"attributes":{"externalReferences":[{"needle":{"declaration":2564,"isOffset":false,"isSlot":false,"src":"15484:6:4","valueSize":1}},{"needle":{"declaration":2564,"isOffset":false,"isSlot":false,"src":"15535:6:4","valueSize":1}},{"selfptr":{"declaration":2579,"isOffset":false,"isSlot":false,"src":"15588:7:4","valueSize":1}},{"equal":{"declaration":2590,"isOffset":false,"isSlot":false,"src":"15566:5:4","valueSize":1}}],"operations":"{\n let length := mload(needle)\n let needleptr := mload(add(needle, 0x20))\n equal := eq(keccak256(selfptr, length), keccak256(needleptr, length))\n}"},"children":[],"id":2597,"name":"InlineAssembly","src":"15437:222:4"}],"id":2598,"name":"Block","src":"15423:236:4"}],"id":2599,"name":"IfStatement","src":"15395:264:4"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2590,"type":"bool","value":"equal"},"id":2600,"name":"Identifier","src":"15673:5:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":1657,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2562,"type":"struct strings.slice memory","value":"self"},"id":2601,"name":"Identifier","src":"15694:4:4"}],"id":2603,"name":"MemberAccess","src":"15694:9:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1657,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2564,"type":"struct strings.slice memory","value":"needle"},"id":2604,"name":"Identifier","src":"15707:6:4"}],"id":2605,"name":"MemberAccess","src":"15707:11:4"}],"id":2606,"name":"Assignment","src":"15694:24:4"}],"id":2607,"name":"ExpressionStatement","src":"15694:24:4"}],"id":2608,"name":"Block","src":"15680:49:4"}],"id":2609,"name":"IfStatement","src":"15669:60:4"},{"attributes":{"functionReturnParameters":2568},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2562,"type":"struct strings.slice memory","value":"self"},"id":2610,"name":"Identifier","src":"15746:4:4"}],"id":2611,"name":"Return","src":"15739:11:4"}],"id":2612,"name":"Block","src":"15223:534:4"}],"id":2613,"name":"FunctionDefinition","src":"15131:626:4"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"findPtr","payable":false,"scope":3348,"stateMutability":"pure","superFunction":null,"visibility":"private"},"children":[{"children":[{"attributes":{"constant":false,"name":"selflen","scope":2734,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2614,"name":"ElementaryTypeName","src":"15931:4:4"}],"id":2615,"name":"VariableDeclaration","src":"15931:12:4"},{"attributes":{"constant":false,"name":"selfptr","scope":2734,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2616,"name":"ElementaryTypeName","src":"15945:4:4"}],"id":2617,"name":"VariableDeclaration","src":"15945:12:4"},{"attributes":{"constant":false,"name":"needlelen","scope":2734,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2618,"name":"ElementaryTypeName","src":"15959:4:4"}],"id":2619,"name":"VariableDeclaration","src":"15959:14:4"},{"attributes":{"constant":false,"name":"needleptr","scope":2734,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2620,"name":"ElementaryTypeName","src":"15975:4:4"}],"id":2621,"name":"VariableDeclaration","src":"15975:14:4"}],"id":2622,"name":"ParameterList","src":"15930:60:4"},{"children":[{"attributes":{"constant":false,"name":"","scope":2734,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2623,"name":"ElementaryTypeName","src":"16013:4:4"}],"id":2624,"name":"VariableDeclaration","src":"16013:4:4"}],"id":2625,"name":"ParameterList","src":"16012:6:4"},{"children":[{"attributes":{"assignments":[2627]},"children":[{"attributes":{"constant":false,"name":"ptr","scope":2734,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2626,"name":"ElementaryTypeName","src":"16029:4:4"}],"id":2627,"name":"VariableDeclaration","src":"16029:8:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2617,"type":"uint256","value":"selfptr"},"id":2628,"name":"Identifier","src":"16040:7:4"}],"id":2629,"name":"VariableDeclarationStatement","src":"16029:18:4"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"idx","scope":2734,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2630,"name":"ElementaryTypeName","src":"16057:4:4"}],"id":2631,"name":"VariableDeclaration","src":"16057:8:4"}],"id":2632,"name":"VariableDeclarationStatement","src":"16057:8:4"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2619,"type":"uint256","value":"needlelen"},"id":2633,"name":"Identifier","src":"16080:9:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2615,"type":"uint256","value":"selflen"},"id":2634,"name":"Identifier","src":"16093:7:4"}],"id":2635,"name":"BinaryOperation","src":"16080:20:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2619,"type":"uint256","value":"needlelen"},"id":2636,"name":"Identifier","src":"16120:9:4"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":2637,"name":"Literal","src":"16133:2:4"}],"id":2638,"name":"BinaryOperation","src":"16120:15:4"},{"children":[{"attributes":{"assignments":[2640]},"children":[{"attributes":{"constant":false,"name":"mask","scope":2734,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":2639,"name":"ElementaryTypeName","src":"16155:7:4"}],"id":2640,"name":"VariableDeclaration","src":"16155:12:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes32)","value":"bytes32"},"id":2641,"name":"ElementaryTypeNameExpression","src":"16170:7:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"~","prefix":true,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"**","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":2642,"name":"Literal","src":"16180:1:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"38","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 8","value":"8"},"id":2643,"name":"Literal","src":"16186:1:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":2644,"name":"Literal","src":"16191:2:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2619,"type":"uint256","value":"needlelen"},"id":2645,"name":"Identifier","src":"16196:9:4"}],"id":2646,"name":"BinaryOperation","src":"16191:14:4"}],"id":2647,"name":"TupleExpression","src":"16190:16:4"}],"id":2648,"name":"BinaryOperation","src":"16186:20:4"}],"id":2649,"name":"TupleExpression","src":"16185:22:4"}],"id":2650,"name":"BinaryOperation","src":"16180:27:4"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":2651,"name":"Literal","src":"16210:1:4"}],"id":2652,"name":"BinaryOperation","src":"16180:31:4"}],"id":2653,"name":"TupleExpression","src":"16179:33:4"}],"id":2654,"name":"UnaryOperation","src":"16178:34:4"}],"id":2655,"name":"FunctionCall","src":"16170:43:4"}],"id":2656,"name":"VariableDeclarationStatement","src":"16155:58:4"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"needledata","scope":2734,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":2657,"name":"ElementaryTypeName","src":"16232:7:4"}],"id":2658,"name":"VariableDeclaration","src":"16232:18:4"}],"id":2659,"name":"VariableDeclarationStatement","src":"16232:18:4"},{"attributes":{"externalReferences":[{"needleptr":{"declaration":2621,"isOffset":false,"isSlot":false,"src":"16303:9:4","valueSize":1}},{"needledata":{"declaration":2658,"isOffset":false,"isSlot":false,"src":"16279:10:4","valueSize":1}},{"mask":{"declaration":2640,"isOffset":false,"isSlot":false,"src":"16315:4:4","valueSize":1}}],"operations":"{\n needledata := and(mload(needleptr), mask)\n}"},"children":[],"id":2660,"name":"InlineAssembly","src":"16268:76:4"},{"attributes":{"assignments":[2662]},"children":[{"attributes":{"constant":false,"name":"end","scope":2734,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2661,"name":"ElementaryTypeName","src":"16340:4:4"}],"id":2662,"name":"VariableDeclaration","src":"16340:8:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2617,"type":"uint256","value":"selfptr"},"id":2663,"name":"Identifier","src":"16351:7:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2615,"type":"uint256","value":"selflen"},"id":2664,"name":"Identifier","src":"16361:7:4"}],"id":2665,"name":"BinaryOperation","src":"16351:17:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2619,"type":"uint256","value":"needlelen"},"id":2666,"name":"Identifier","src":"16371:9:4"}],"id":2667,"name":"BinaryOperation","src":"16351:29:4"}],"id":2668,"name":"VariableDeclarationStatement","src":"16340:40:4"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"ptrdata","scope":2734,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":2669,"name":"ElementaryTypeName","src":"16398:7:4"}],"id":2670,"name":"VariableDeclaration","src":"16398:15:4"}],"id":2671,"name":"VariableDeclarationStatement","src":"16398:15:4"},{"attributes":{"externalReferences":[{"ptr":{"declaration":2627,"isOffset":false,"isSlot":false,"src":"16463:3:4","valueSize":1}},{"ptrdata":{"declaration":2670,"isOffset":false,"isSlot":false,"src":"16442:7:4","valueSize":1}},{"mask":{"declaration":2640,"isOffset":false,"isSlot":false,"src":"16469:4:4","valueSize":1}}],"operations":"{\n ptrdata := and(mload(ptr), mask)\n}"},"children":[],"id":2672,"name":"InlineAssembly","src":"16431:68:4"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2670,"type":"bytes32","value":"ptrdata"},"id":2673,"name":"Identifier","src":"16501:7:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2658,"type":"bytes32","value":"needledata"},"id":2674,"name":"Identifier","src":"16512:10:4"}],"id":2675,"name":"BinaryOperation","src":"16501:21:4"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2627,"type":"uint256","value":"ptr"},"id":2676,"name":"Identifier","src":"16550:3:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2662,"type":"uint256","value":"end"},"id":2677,"name":"Identifier","src":"16557:3:4"}],"id":2678,"name":"BinaryOperation","src":"16550:10:4"},{"attributes":{"functionReturnParameters":2625},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2617,"type":"uint256","value":"selfptr"},"id":2679,"name":"Identifier","src":"16593:7:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2615,"type":"uint256","value":"selflen"},"id":2680,"name":"Identifier","src":"16603:7:4"}],"id":2681,"name":"BinaryOperation","src":"16593:17:4"}],"id":2682,"name":"Return","src":"16586:24:4"}],"id":2683,"name":"IfStatement","src":"16546:64:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2627,"type":"uint256","value":"ptr"},"id":2684,"name":"Identifier","src":"16632:3:4"}],"id":2685,"name":"UnaryOperation","src":"16632:5:4"}],"id":2686,"name":"ExpressionStatement","src":"16632:5:4"},{"attributes":{"externalReferences":[{"ptr":{"declaration":2627,"isOffset":false,"isSlot":false,"src":"16691:3:4","valueSize":1}},{"ptrdata":{"declaration":2670,"isOffset":false,"isSlot":false,"src":"16670:7:4","valueSize":1}},{"mask":{"declaration":2640,"isOffset":false,"isSlot":false,"src":"16697:4:4","valueSize":1}}],"operations":"{\n ptrdata := and(mload(ptr), mask)\n}"},"children":[],"id":2687,"name":"InlineAssembly","src":"16659:63:4"}],"id":2688,"name":"Block","src":"16524:198:4"}],"id":2689,"name":"WhileStatement","src":"16494:228:4"},{"attributes":{"functionReturnParameters":2625},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2627,"type":"uint256","value":"ptr"},"id":2690,"name":"Identifier","src":"16746:3:4"}],"id":2691,"name":"Return","src":"16739:10:4"}],"id":2692,"name":"Block","src":"16137:627:4"},{"children":[{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"hash","scope":2734,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":2693,"name":"ElementaryTypeName","src":"16837:7:4"}],"id":2694,"name":"VariableDeclaration","src":"16837:12:4"}],"id":2695,"name":"VariableDeclarationStatement","src":"16837:12:4"},{"attributes":{"externalReferences":[{"hash":{"declaration":2694,"isOffset":false,"isSlot":false,"src":"16878:4:4","valueSize":1}},{"needleptr":{"declaration":2621,"isOffset":false,"isSlot":false,"src":"16896:9:4","valueSize":1}},{"needlelen":{"declaration":2619,"isOffset":false,"isSlot":false,"src":"16907:9:4","valueSize":1}}],"operations":"{\n hash := keccak256(needleptr, needlelen)\n}"},"children":[],"id":2696,"name":"InlineAssembly","src":"16867:73:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2631,"type":"uint256","value":"idx"},"id":2697,"name":"Identifier","src":"16942:3:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2698,"name":"Literal","src":"16948:1:4"}],"id":2699,"name":"Assignment","src":"16942:7:4"}],"id":2700,"name":"ExpressionStatement","src":"16942:7:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2631,"type":"uint256","value":"idx"},"id":2701,"name":"Identifier","src":"16951:3:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2615,"type":"uint256","value":"selflen"},"id":2702,"name":"Identifier","src":"16958:7:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2619,"type":"uint256","value":"needlelen"},"id":2703,"name":"Identifier","src":"16968:9:4"}],"id":2704,"name":"BinaryOperation","src":"16958:19:4"}],"id":2705,"name":"BinaryOperation","src":"16951:26:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2631,"type":"uint256","value":"idx"},"id":2706,"name":"Identifier","src":"16979:3:4"}],"id":2707,"name":"UnaryOperation","src":"16979:5:4"}],"id":2708,"name":"ExpressionStatement","src":"16979:5:4"},{"children":[{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"testHash","scope":2734,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":2709,"name":"ElementaryTypeName","src":"17008:7:4"}],"id":2710,"name":"VariableDeclaration","src":"17008:16:4"}],"id":2711,"name":"VariableDeclarationStatement","src":"17008:16:4"},{"attributes":{"externalReferences":[{"testHash":{"declaration":2710,"isOffset":false,"isSlot":false,"src":"17057:8:4","valueSize":1}},{"ptr":{"declaration":2627,"isOffset":false,"isSlot":false,"src":"17079:3:4","valueSize":1}},{"needlelen":{"declaration":2619,"isOffset":false,"isSlot":false,"src":"17084:9:4","valueSize":1}}],"operations":"{\n testHash := keccak256(ptr, needlelen)\n}"},"children":[],"id":2712,"name":"InlineAssembly","src":"17046:73:4"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2694,"type":"bytes32","value":"hash"},"id":2713,"name":"Identifier","src":"17121:4:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2710,"type":"bytes32","value":"testHash"},"id":2714,"name":"Identifier","src":"17129:8:4"}],"id":2715,"name":"BinaryOperation","src":"17121:16:4"},{"attributes":{"functionReturnParameters":2625},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2627,"type":"uint256","value":"ptr"},"id":2716,"name":"Identifier","src":"17170:3:4"}],"id":2717,"name":"Return","src":"17163:10:4"}],"id":2718,"name":"IfStatement","src":"17117:56:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2627,"type":"uint256","value":"ptr"},"id":2719,"name":"Identifier","src":"17195:3:4"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":2720,"name":"Literal","src":"17202:1:4"}],"id":2721,"name":"Assignment","src":"17195:8:4"}],"id":2722,"name":"ExpressionStatement","src":"17195:8:4"}],"id":2723,"name":"Block","src":"16986:236:4"}],"id":2724,"name":"ForStatement","src":"16937:285:4"}],"id":2725,"name":"Block","src":"16770:466:4"}],"id":2726,"name":"IfStatement","src":"16116:1120:4"}],"id":2727,"name":"Block","src":"16102:1144:4"}],"id":2728,"name":"IfStatement","src":"16076:1170:4"},{"attributes":{"functionReturnParameters":2625},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2617,"type":"uint256","value":"selfptr"},"id":2729,"name":"Identifier","src":"17262:7:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2615,"type":"uint256","value":"selflen"},"id":2730,"name":"Identifier","src":"17272:7:4"}],"id":2731,"name":"BinaryOperation","src":"17262:17:4"}],"id":2732,"name":"Return","src":"17255:24:4"}],"id":2733,"name":"Block","src":"16019:1267:4"}],"id":2734,"name":"FunctionDefinition","src":"15914:1372:4"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"rfindPtr","payable":false,"scope":3348,"stateMutability":"pure","superFunction":null,"visibility":"private"},"children":[{"children":[{"attributes":{"constant":false,"name":"selflen","scope":2851,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2735,"name":"ElementaryTypeName","src":"17457:4:4"}],"id":2736,"name":"VariableDeclaration","src":"17457:12:4"},{"attributes":{"constant":false,"name":"selfptr","scope":2851,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2737,"name":"ElementaryTypeName","src":"17471:4:4"}],"id":2738,"name":"VariableDeclaration","src":"17471:12:4"},{"attributes":{"constant":false,"name":"needlelen","scope":2851,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2739,"name":"ElementaryTypeName","src":"17485:4:4"}],"id":2740,"name":"VariableDeclaration","src":"17485:14:4"},{"attributes":{"constant":false,"name":"needleptr","scope":2851,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2741,"name":"ElementaryTypeName","src":"17501:4:4"}],"id":2742,"name":"VariableDeclaration","src":"17501:14:4"}],"id":2743,"name":"ParameterList","src":"17456:60:4"},{"children":[{"attributes":{"constant":false,"name":"","scope":2851,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2744,"name":"ElementaryTypeName","src":"17539:4:4"}],"id":2745,"name":"VariableDeclaration","src":"17539:4:4"}],"id":2746,"name":"ParameterList","src":"17538:6:4"},{"children":[{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"ptr","scope":2851,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2747,"name":"ElementaryTypeName","src":"17555:4:4"}],"id":2748,"name":"VariableDeclaration","src":"17555:8:4"}],"id":2749,"name":"VariableDeclarationStatement","src":"17555:8:4"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2740,"type":"uint256","value":"needlelen"},"id":2750,"name":"Identifier","src":"17578:9:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2736,"type":"uint256","value":"selflen"},"id":2751,"name":"Identifier","src":"17591:7:4"}],"id":2752,"name":"BinaryOperation","src":"17578:20:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2740,"type":"uint256","value":"needlelen"},"id":2753,"name":"Identifier","src":"17618:9:4"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":2754,"name":"Literal","src":"17631:2:4"}],"id":2755,"name":"BinaryOperation","src":"17618:15:4"},{"children":[{"attributes":{"assignments":[2757]},"children":[{"attributes":{"constant":false,"name":"mask","scope":2851,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":2756,"name":"ElementaryTypeName","src":"17653:7:4"}],"id":2757,"name":"VariableDeclaration","src":"17653:12:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes32)","value":"bytes32"},"id":2758,"name":"ElementaryTypeNameExpression","src":"17668:7:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"~","prefix":true,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"**","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":2759,"name":"Literal","src":"17678:1:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"38","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 8","value":"8"},"id":2760,"name":"Literal","src":"17684:1:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":2761,"name":"Literal","src":"17689:2:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2740,"type":"uint256","value":"needlelen"},"id":2762,"name":"Identifier","src":"17694:9:4"}],"id":2763,"name":"BinaryOperation","src":"17689:14:4"}],"id":2764,"name":"TupleExpression","src":"17688:16:4"}],"id":2765,"name":"BinaryOperation","src":"17684:20:4"}],"id":2766,"name":"TupleExpression","src":"17683:22:4"}],"id":2767,"name":"BinaryOperation","src":"17678:27:4"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":2768,"name":"Literal","src":"17708:1:4"}],"id":2769,"name":"BinaryOperation","src":"17678:31:4"}],"id":2770,"name":"TupleExpression","src":"17677:33:4"}],"id":2771,"name":"UnaryOperation","src":"17676:34:4"}],"id":2772,"name":"FunctionCall","src":"17668:43:4"}],"id":2773,"name":"VariableDeclarationStatement","src":"17653:58:4"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"needledata","scope":2851,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":2774,"name":"ElementaryTypeName","src":"17730:7:4"}],"id":2775,"name":"VariableDeclaration","src":"17730:18:4"}],"id":2776,"name":"VariableDeclarationStatement","src":"17730:18:4"},{"attributes":{"externalReferences":[{"needleptr":{"declaration":2742,"isOffset":false,"isSlot":false,"src":"17801:9:4","valueSize":1}},{"needledata":{"declaration":2775,"isOffset":false,"isSlot":false,"src":"17777:10:4","valueSize":1}},{"mask":{"declaration":2757,"isOffset":false,"isSlot":false,"src":"17813:4:4","valueSize":1}}],"operations":"{\n needledata := and(mload(needleptr), mask)\n}"},"children":[],"id":2777,"name":"InlineAssembly","src":"17766:75:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2748,"type":"uint256","value":"ptr"},"id":2778,"name":"Identifier","src":"17838:3:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2738,"type":"uint256","value":"selfptr"},"id":2779,"name":"Identifier","src":"17844:7:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2736,"type":"uint256","value":"selflen"},"id":2780,"name":"Identifier","src":"17854:7:4"}],"id":2781,"name":"BinaryOperation","src":"17844:17:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2740,"type":"uint256","value":"needlelen"},"id":2782,"name":"Identifier","src":"17864:9:4"}],"id":2783,"name":"BinaryOperation","src":"17844:29:4"}],"id":2784,"name":"Assignment","src":"17838:35:4"}],"id":2785,"name":"ExpressionStatement","src":"17838:35:4"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"ptrdata","scope":2851,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":2786,"name":"ElementaryTypeName","src":"17891:7:4"}],"id":2787,"name":"VariableDeclaration","src":"17891:15:4"}],"id":2788,"name":"VariableDeclarationStatement","src":"17891:15:4"},{"attributes":{"externalReferences":[{"ptr":{"declaration":2748,"isOffset":false,"isSlot":false,"src":"17956:3:4","valueSize":1}},{"ptrdata":{"declaration":2787,"isOffset":false,"isSlot":false,"src":"17935:7:4","valueSize":1}},{"mask":{"declaration":2757,"isOffset":false,"isSlot":false,"src":"17962:4:4","valueSize":1}}],"operations":"{\n ptrdata := and(mload(ptr), mask)\n}"},"children":[],"id":2789,"name":"InlineAssembly","src":"17924:68:4"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2787,"type":"bytes32","value":"ptrdata"},"id":2790,"name":"Identifier","src":"17994:7:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2775,"type":"bytes32","value":"needledata"},"id":2791,"name":"Identifier","src":"18005:10:4"}],"id":2792,"name":"BinaryOperation","src":"17994:21:4"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2748,"type":"uint256","value":"ptr"},"id":2793,"name":"Identifier","src":"18043:3:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2738,"type":"uint256","value":"selfptr"},"id":2794,"name":"Identifier","src":"18050:7:4"}],"id":2795,"name":"BinaryOperation","src":"18043:14:4"},{"attributes":{"functionReturnParameters":2746},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2738,"type":"uint256","value":"selfptr"},"id":2796,"name":"Identifier","src":"18090:7:4"}],"id":2797,"name":"Return","src":"18083:14:4"}],"id":2798,"name":"IfStatement","src":"18039:58:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"--","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2748,"type":"uint256","value":"ptr"},"id":2799,"name":"Identifier","src":"18119:3:4"}],"id":2800,"name":"UnaryOperation","src":"18119:5:4"}],"id":2801,"name":"ExpressionStatement","src":"18119:5:4"},{"attributes":{"externalReferences":[{"ptr":{"declaration":2748,"isOffset":false,"isSlot":false,"src":"18178:3:4","valueSize":1}},{"ptrdata":{"declaration":2787,"isOffset":false,"isSlot":false,"src":"18157:7:4","valueSize":1}},{"mask":{"declaration":2757,"isOffset":false,"isSlot":false,"src":"18184:4:4","valueSize":1}}],"operations":"{\n ptrdata := and(mload(ptr), mask)\n}"},"children":[],"id":2802,"name":"InlineAssembly","src":"18146:63:4"}],"id":2803,"name":"Block","src":"18017:192:4"}],"id":2804,"name":"WhileStatement","src":"17987:222:4"},{"attributes":{"functionReturnParameters":2746},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2748,"type":"uint256","value":"ptr"},"id":2805,"name":"Identifier","src":"18233:3:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2740,"type":"uint256","value":"needlelen"},"id":2806,"name":"Identifier","src":"18239:9:4"}],"id":2807,"name":"BinaryOperation","src":"18233:15:4"}],"id":2808,"name":"Return","src":"18226:22:4"}],"id":2809,"name":"Block","src":"17635:628:4"},{"children":[{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"hash","scope":2851,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":2810,"name":"ElementaryTypeName","src":"18336:7:4"}],"id":2811,"name":"VariableDeclaration","src":"18336:12:4"}],"id":2812,"name":"VariableDeclarationStatement","src":"18336:12:4"},{"attributes":{"externalReferences":[{"hash":{"declaration":2811,"isOffset":false,"isSlot":false,"src":"18377:4:4","valueSize":1}},{"needleptr":{"declaration":2742,"isOffset":false,"isSlot":false,"src":"18395:9:4","valueSize":1}},{"needlelen":{"declaration":2740,"isOffset":false,"isSlot":false,"src":"18406:9:4","valueSize":1}}],"operations":"{\n hash := keccak256(needleptr, needlelen)\n}"},"children":[],"id":2813,"name":"InlineAssembly","src":"18366:72:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2748,"type":"uint256","value":"ptr"},"id":2814,"name":"Identifier","src":"18435:3:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2738,"type":"uint256","value":"selfptr"},"id":2815,"name":"Identifier","src":"18441:7:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2736,"type":"uint256","value":"selflen"},"id":2816,"name":"Identifier","src":"18452:7:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2740,"type":"uint256","value":"needlelen"},"id":2817,"name":"Identifier","src":"18462:9:4"}],"id":2818,"name":"BinaryOperation","src":"18452:19:4"}],"id":2819,"name":"TupleExpression","src":"18451:21:4"}],"id":2820,"name":"BinaryOperation","src":"18441:31:4"}],"id":2821,"name":"Assignment","src":"18435:37:4"}],"id":2822,"name":"ExpressionStatement","src":"18435:37:4"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2748,"type":"uint256","value":"ptr"},"id":2823,"name":"Identifier","src":"18497:3:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2738,"type":"uint256","value":"selfptr"},"id":2824,"name":"Identifier","src":"18504:7:4"}],"id":2825,"name":"BinaryOperation","src":"18497:14:4"},{"children":[{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"testHash","scope":2851,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":2826,"name":"ElementaryTypeName","src":"18535:7:4"}],"id":2827,"name":"VariableDeclaration","src":"18535:16:4"}],"id":2828,"name":"VariableDeclarationStatement","src":"18535:16:4"},{"attributes":{"externalReferences":[{"testHash":{"declaration":2827,"isOffset":false,"isSlot":false,"src":"18584:8:4","valueSize":1}},{"ptr":{"declaration":2748,"isOffset":false,"isSlot":false,"src":"18606:3:4","valueSize":1}},{"needlelen":{"declaration":2740,"isOffset":false,"isSlot":false,"src":"18611:9:4","valueSize":1}}],"operations":"{\n testHash := keccak256(ptr, needlelen)\n}"},"children":[],"id":2829,"name":"InlineAssembly","src":"18573:73:4"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2811,"type":"bytes32","value":"hash"},"id":2830,"name":"Identifier","src":"18648:4:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2827,"type":"bytes32","value":"testHash"},"id":2831,"name":"Identifier","src":"18656:8:4"}],"id":2832,"name":"BinaryOperation","src":"18648:16:4"},{"attributes":{"functionReturnParameters":2746},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2748,"type":"uint256","value":"ptr"},"id":2833,"name":"Identifier","src":"18697:3:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2740,"type":"uint256","value":"needlelen"},"id":2834,"name":"Identifier","src":"18703:9:4"}],"id":2835,"name":"BinaryOperation","src":"18697:15:4"}],"id":2836,"name":"Return","src":"18690:22:4"}],"id":2837,"name":"IfStatement","src":"18644:68:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2748,"type":"uint256","value":"ptr"},"id":2838,"name":"Identifier","src":"18734:3:4"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":2839,"name":"Literal","src":"18741:1:4"}],"id":2840,"name":"Assignment","src":"18734:8:4"}],"id":2841,"name":"ExpressionStatement","src":"18734:8:4"}],"id":2842,"name":"Block","src":"18513:248:4"}],"id":2843,"name":"WhileStatement","src":"18490:271:4"}],"id":2844,"name":"Block","src":"18269:506:4"}],"id":2845,"name":"IfStatement","src":"17614:1161:4"}],"id":2846,"name":"Block","src":"17600:1185:4"}],"id":2847,"name":"IfStatement","src":"17574:1211:4"},{"attributes":{"functionReturnParameters":2746},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2738,"type":"uint256","value":"selfptr"},"id":2848,"name":"Identifier","src":"18801:7:4"}],"id":2849,"name":"Return","src":"18794:14:4"}],"id":2850,"name":"Block","src":"17545:1270:4"}],"id":2851,"name":"FunctionDefinition","src":"17439:1376:4"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"find","payable":false,"scope":3348,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":2891,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1660,"type":"struct strings.slice"},"id":2852,"name":"UserDefinedTypeName","src":"19165:5:4"}],"id":2853,"name":"VariableDeclaration","src":"19165:17:4"},{"attributes":{"constant":false,"name":"needle","scope":2891,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1660,"type":"struct strings.slice"},"id":2854,"name":"UserDefinedTypeName","src":"19184:5:4"}],"id":2855,"name":"VariableDeclaration","src":"19184:19:4"}],"id":2856,"name":"ParameterList","src":"19164:40:4"},{"children":[{"attributes":{"constant":false,"name":"","scope":2891,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1660,"type":"struct strings.slice"},"id":2857,"name":"UserDefinedTypeName","src":"19228:5:4"}],"id":2858,"name":"VariableDeclaration","src":"19228:5:4"}],"id":2859,"name":"ParameterList","src":"19227:14:4"},{"children":[{"attributes":{"assignments":[2861]},"children":[{"attributes":{"constant":false,"name":"ptr","scope":2891,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2860,"name":"ElementaryTypeName","src":"19252:4:4"}],"id":2861,"name":"VariableDeclaration","src":"19252:8:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":2734,"type":"function (uint256,uint256,uint256,uint256) pure returns (uint256)","value":"findPtr"},"id":2862,"name":"Identifier","src":"19263:7:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1657,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2853,"type":"struct strings.slice memory","value":"self"},"id":2863,"name":"Identifier","src":"19271:4:4"}],"id":2864,"name":"MemberAccess","src":"19271:9:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":1659,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2853,"type":"struct strings.slice memory","value":"self"},"id":2865,"name":"Identifier","src":"19282:4:4"}],"id":2866,"name":"MemberAccess","src":"19282:9:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1657,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2855,"type":"struct strings.slice memory","value":"needle"},"id":2867,"name":"Identifier","src":"19293:6:4"}],"id":2868,"name":"MemberAccess","src":"19293:11:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":1659,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2855,"type":"struct strings.slice memory","value":"needle"},"id":2869,"name":"Identifier","src":"19306:6:4"}],"id":2870,"name":"MemberAccess","src":"19306:11:4"}],"id":2871,"name":"FunctionCall","src":"19263:55:4"}],"id":2872,"name":"VariableDeclarationStatement","src":"19252:66:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":1657,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2853,"type":"struct strings.slice memory","value":"self"},"id":2873,"name":"Identifier","src":"19328:4:4"}],"id":2875,"name":"MemberAccess","src":"19328:9:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2861,"type":"uint256","value":"ptr"},"id":2876,"name":"Identifier","src":"19341:3:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":1659,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2853,"type":"struct strings.slice memory","value":"self"},"id":2877,"name":"Identifier","src":"19347:4:4"}],"id":2878,"name":"MemberAccess","src":"19347:9:4"}],"id":2879,"name":"BinaryOperation","src":"19341:15:4"}],"id":2880,"name":"Assignment","src":"19328:28:4"}],"id":2881,"name":"ExpressionStatement","src":"19328:28:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_ptr","referencedDeclaration":1659,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2853,"type":"struct strings.slice memory","value":"self"},"id":2882,"name":"Identifier","src":"19366:4:4"}],"id":2884,"name":"MemberAccess","src":"19366:9:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2861,"type":"uint256","value":"ptr"},"id":2885,"name":"Identifier","src":"19378:3:4"}],"id":2886,"name":"Assignment","src":"19366:15:4"}],"id":2887,"name":"ExpressionStatement","src":"19366:15:4"},{"attributes":{"functionReturnParameters":2859},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2853,"type":"struct strings.slice memory","value":"self"},"id":2888,"name":"Identifier","src":"19398:4:4"}],"id":2889,"name":"Return","src":"19391:11:4"}],"id":2890,"name":"Block","src":"19242:167:4"}],"id":2891,"name":"FunctionDefinition","src":"19151:258:4"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"rfind","payable":false,"scope":3348,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":2925,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1660,"type":"struct strings.slice"},"id":2892,"name":"UserDefinedTypeName","src":"19783:5:4"}],"id":2893,"name":"VariableDeclaration","src":"19783:17:4"},{"attributes":{"constant":false,"name":"needle","scope":2925,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1660,"type":"struct strings.slice"},"id":2894,"name":"UserDefinedTypeName","src":"19802:5:4"}],"id":2895,"name":"VariableDeclaration","src":"19802:19:4"}],"id":2896,"name":"ParameterList","src":"19782:40:4"},{"children":[{"attributes":{"constant":false,"name":"","scope":2925,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1660,"type":"struct strings.slice"},"id":2897,"name":"UserDefinedTypeName","src":"19846:5:4"}],"id":2898,"name":"VariableDeclaration","src":"19846:5:4"}],"id":2899,"name":"ParameterList","src":"19845:14:4"},{"children":[{"attributes":{"assignments":[2901]},"children":[{"attributes":{"constant":false,"name":"ptr","scope":2925,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2900,"name":"ElementaryTypeName","src":"19870:4:4"}],"id":2901,"name":"VariableDeclaration","src":"19870:8:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":2851,"type":"function (uint256,uint256,uint256,uint256) pure returns (uint256)","value":"rfindPtr"},"id":2902,"name":"Identifier","src":"19881:8:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1657,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2893,"type":"struct strings.slice memory","value":"self"},"id":2903,"name":"Identifier","src":"19890:4:4"}],"id":2904,"name":"MemberAccess","src":"19890:9:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":1659,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2893,"type":"struct strings.slice memory","value":"self"},"id":2905,"name":"Identifier","src":"19901:4:4"}],"id":2906,"name":"MemberAccess","src":"19901:9:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1657,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2895,"type":"struct strings.slice memory","value":"needle"},"id":2907,"name":"Identifier","src":"19912:6:4"}],"id":2908,"name":"MemberAccess","src":"19912:11:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":1659,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2895,"type":"struct strings.slice memory","value":"needle"},"id":2909,"name":"Identifier","src":"19925:6:4"}],"id":2910,"name":"MemberAccess","src":"19925:11:4"}],"id":2911,"name":"FunctionCall","src":"19881:56:4"}],"id":2912,"name":"VariableDeclarationStatement","src":"19870:67:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":1657,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2893,"type":"struct strings.slice memory","value":"self"},"id":2913,"name":"Identifier","src":"19947:4:4"}],"id":2915,"name":"MemberAccess","src":"19947:9:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2901,"type":"uint256","value":"ptr"},"id":2916,"name":"Identifier","src":"19959:3:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":1659,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2893,"type":"struct strings.slice memory","value":"self"},"id":2917,"name":"Identifier","src":"19965:4:4"}],"id":2918,"name":"MemberAccess","src":"19965:9:4"}],"id":2919,"name":"BinaryOperation","src":"19959:15:4"}],"id":2920,"name":"Assignment","src":"19947:27:4"}],"id":2921,"name":"ExpressionStatement","src":"19947:27:4"},{"attributes":{"functionReturnParameters":2899},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2893,"type":"struct strings.slice memory","value":"self"},"id":2922,"name":"Identifier","src":"19991:4:4"}],"id":2923,"name":"Return","src":"19984:11:4"}],"id":2924,"name":"Block","src":"19860:142:4"}],"id":2925,"name":"FunctionDefinition","src":"19768:234:4"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"split","payable":false,"scope":3348,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":3003,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1660,"type":"struct strings.slice"},"id":2926,"name":"UserDefinedTypeName","src":"20523:5:4"}],"id":2927,"name":"VariableDeclaration","src":"20523:17:4"},{"attributes":{"constant":false,"name":"needle","scope":3003,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1660,"type":"struct strings.slice"},"id":2928,"name":"UserDefinedTypeName","src":"20542:5:4"}],"id":2929,"name":"VariableDeclaration","src":"20542:19:4"},{"attributes":{"constant":false,"name":"token","scope":3003,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1660,"type":"struct strings.slice"},"id":2930,"name":"UserDefinedTypeName","src":"20563:5:4"}],"id":2931,"name":"VariableDeclaration","src":"20563:18:4"}],"id":2932,"name":"ParameterList","src":"20522:60:4"},{"children":[{"attributes":{"constant":false,"name":"","scope":3003,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1660,"type":"struct strings.slice"},"id":2933,"name":"UserDefinedTypeName","src":"20606:5:4"}],"id":2934,"name":"VariableDeclaration","src":"20606:5:4"}],"id":2935,"name":"ParameterList","src":"20605:14:4"},{"children":[{"attributes":{"assignments":[2937]},"children":[{"attributes":{"constant":false,"name":"ptr","scope":3003,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2936,"name":"ElementaryTypeName","src":"20630:4:4"}],"id":2937,"name":"VariableDeclaration","src":"20630:8:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":2734,"type":"function (uint256,uint256,uint256,uint256) pure returns (uint256)","value":"findPtr"},"id":2938,"name":"Identifier","src":"20641:7:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1657,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2927,"type":"struct strings.slice memory","value":"self"},"id":2939,"name":"Identifier","src":"20649:4:4"}],"id":2940,"name":"MemberAccess","src":"20649:9:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":1659,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2927,"type":"struct strings.slice memory","value":"self"},"id":2941,"name":"Identifier","src":"20660:4:4"}],"id":2942,"name":"MemberAccess","src":"20660:9:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1657,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2929,"type":"struct strings.slice memory","value":"needle"},"id":2943,"name":"Identifier","src":"20671:6:4"}],"id":2944,"name":"MemberAccess","src":"20671:11:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":1659,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2929,"type":"struct strings.slice memory","value":"needle"},"id":2945,"name":"Identifier","src":"20684:6:4"}],"id":2946,"name":"MemberAccess","src":"20684:11:4"}],"id":2947,"name":"FunctionCall","src":"20641:55:4"}],"id":2948,"name":"VariableDeclarationStatement","src":"20630:66:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_ptr","referencedDeclaration":1659,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2931,"type":"struct strings.slice memory","value":"token"},"id":2949,"name":"Identifier","src":"20706:5:4"}],"id":2951,"name":"MemberAccess","src":"20706:10:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":1659,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2927,"type":"struct strings.slice memory","value":"self"},"id":2952,"name":"Identifier","src":"20719:4:4"}],"id":2953,"name":"MemberAccess","src":"20719:9:4"}],"id":2954,"name":"Assignment","src":"20706:22:4"}],"id":2955,"name":"ExpressionStatement","src":"20706:22:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":1657,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2931,"type":"struct strings.slice memory","value":"token"},"id":2956,"name":"Identifier","src":"20738:5:4"}],"id":2958,"name":"MemberAccess","src":"20738:10:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2937,"type":"uint256","value":"ptr"},"id":2959,"name":"Identifier","src":"20751:3:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":1659,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2927,"type":"struct strings.slice memory","value":"self"},"id":2960,"name":"Identifier","src":"20757:4:4"}],"id":2961,"name":"MemberAccess","src":"20757:9:4"}],"id":2962,"name":"BinaryOperation","src":"20751:15:4"}],"id":2963,"name":"Assignment","src":"20738:28:4"}],"id":2964,"name":"ExpressionStatement","src":"20738:28:4"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2937,"type":"uint256","value":"ptr"},"id":2965,"name":"Identifier","src":"20780:3:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":1659,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2927,"type":"struct strings.slice memory","value":"self"},"id":2966,"name":"Identifier","src":"20787:4:4"}],"id":2967,"name":"MemberAccess","src":"20787:9:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1657,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2927,"type":"struct strings.slice memory","value":"self"},"id":2968,"name":"Identifier","src":"20799:4:4"}],"id":2969,"name":"MemberAccess","src":"20799:9:4"}],"id":2970,"name":"BinaryOperation","src":"20787:21:4"}],"id":2971,"name":"BinaryOperation","src":"20780:28:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":1657,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2927,"type":"struct strings.slice memory","value":"self"},"id":2972,"name":"Identifier","src":"20849:4:4"}],"id":2974,"name":"MemberAccess","src":"20849:9:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2975,"name":"Literal","src":"20861:1:4"}],"id":2976,"name":"Assignment","src":"20849:13:4"}],"id":2977,"name":"ExpressionStatement","src":"20849:13:4"}],"id":2978,"name":"Block","src":"20810:63:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":1657,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2927,"type":"struct strings.slice memory","value":"self"},"id":2979,"name":"Identifier","src":"20893:4:4"}],"id":2981,"name":"MemberAccess","src":"20893:9:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1657,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2931,"type":"struct strings.slice memory","value":"token"},"id":2982,"name":"Identifier","src":"20906:5:4"}],"id":2983,"name":"MemberAccess","src":"20906:10:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1657,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2929,"type":"struct strings.slice memory","value":"needle"},"id":2984,"name":"Identifier","src":"20919:6:4"}],"id":2985,"name":"MemberAccess","src":"20919:11:4"}],"id":2986,"name":"BinaryOperation","src":"20906:24:4"}],"id":2987,"name":"Assignment","src":"20893:37:4"}],"id":2988,"name":"ExpressionStatement","src":"20893:37:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_ptr","referencedDeclaration":1659,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2927,"type":"struct strings.slice memory","value":"self"},"id":2989,"name":"Identifier","src":"20944:4:4"}],"id":2991,"name":"MemberAccess","src":"20944:9:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2937,"type":"uint256","value":"ptr"},"id":2992,"name":"Identifier","src":"20956:3:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1657,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2929,"type":"struct strings.slice memory","value":"needle"},"id":2993,"name":"Identifier","src":"20962:6:4"}],"id":2994,"name":"MemberAccess","src":"20962:11:4"}],"id":2995,"name":"BinaryOperation","src":"20956:17:4"}],"id":2996,"name":"Assignment","src":"20944:29:4"}],"id":2997,"name":"ExpressionStatement","src":"20944:29:4"}],"id":2998,"name":"Block","src":"20879:105:4"}],"id":2999,"name":"IfStatement","src":"20776:208:4"},{"attributes":{"functionReturnParameters":2935},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2931,"type":"struct strings.slice memory","value":"token"},"id":3000,"name":"Identifier","src":"21000:5:4"}],"id":3001,"name":"Return","src":"20993:12:4"}],"id":3002,"name":"Block","src":"20620:392:4"}],"id":3003,"name":"FunctionDefinition","src":"20508:504:4"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"split","payable":false,"scope":3348,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":3019,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1660,"type":"struct strings.slice"},"id":3004,"name":"UserDefinedTypeName","src":"21498:5:4"}],"id":3005,"name":"VariableDeclaration","src":"21498:17:4"},{"attributes":{"constant":false,"name":"needle","scope":3019,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1660,"type":"struct strings.slice"},"id":3006,"name":"UserDefinedTypeName","src":"21517:5:4"}],"id":3007,"name":"VariableDeclaration","src":"21517:19:4"}],"id":3008,"name":"ParameterList","src":"21497:40:4"},{"children":[{"attributes":{"constant":false,"name":"token","scope":3019,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1660,"type":"struct strings.slice"},"id":3009,"name":"UserDefinedTypeName","src":"21561:5:4"}],"id":3010,"name":"VariableDeclaration","src":"21561:18:4"}],"id":3011,"name":"ParameterList","src":"21560:20:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"struct strings.slice memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$1660_memory_ptr","typeString":"struct strings.slice memory"},{"typeIdentifier":"t_struct$_slice_$1660_memory_ptr","typeString":"struct strings.slice memory"},{"typeIdentifier":"t_struct$_slice_$1660_memory_ptr","typeString":"struct strings.slice memory"}],"overloadedDeclarations":[3003,3019],"referencedDeclaration":3003,"type":"function (struct strings.slice memory,struct strings.slice memory,struct strings.slice memory) pure returns (struct strings.slice memory)","value":"split"},"id":3012,"name":"Identifier","src":"21591:5:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3005,"type":"struct strings.slice memory","value":"self"},"id":3013,"name":"Identifier","src":"21597:4:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3007,"type":"struct strings.slice memory","value":"needle"},"id":3014,"name":"Identifier","src":"21603:6:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3010,"type":"struct strings.slice memory","value":"token"},"id":3015,"name":"Identifier","src":"21611:5:4"}],"id":3016,"name":"FunctionCall","src":"21591:26:4"}],"id":3017,"name":"ExpressionStatement","src":"21591:26:4"}],"id":3018,"name":"Block","src":"21581:43:4"}],"id":3019,"name":"FunctionDefinition","src":"21483:141:4"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"rsplit","payable":false,"scope":3348,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":3088,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1660,"type":"struct strings.slice"},"id":3020,"name":"UserDefinedTypeName","src":"22145:5:4"}],"id":3021,"name":"VariableDeclaration","src":"22145:17:4"},{"attributes":{"constant":false,"name":"needle","scope":3088,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1660,"type":"struct strings.slice"},"id":3022,"name":"UserDefinedTypeName","src":"22164:5:4"}],"id":3023,"name":"VariableDeclaration","src":"22164:19:4"},{"attributes":{"constant":false,"name":"token","scope":3088,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1660,"type":"struct strings.slice"},"id":3024,"name":"UserDefinedTypeName","src":"22185:5:4"}],"id":3025,"name":"VariableDeclaration","src":"22185:18:4"}],"id":3026,"name":"ParameterList","src":"22144:60:4"},{"children":[{"attributes":{"constant":false,"name":"","scope":3088,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1660,"type":"struct strings.slice"},"id":3027,"name":"UserDefinedTypeName","src":"22228:5:4"}],"id":3028,"name":"VariableDeclaration","src":"22228:5:4"}],"id":3029,"name":"ParameterList","src":"22227:14:4"},{"children":[{"attributes":{"assignments":[3031]},"children":[{"attributes":{"constant":false,"name":"ptr","scope":3088,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":3030,"name":"ElementaryTypeName","src":"22252:4:4"}],"id":3031,"name":"VariableDeclaration","src":"22252:8:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":2851,"type":"function (uint256,uint256,uint256,uint256) pure returns (uint256)","value":"rfindPtr"},"id":3032,"name":"Identifier","src":"22263:8:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1657,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3021,"type":"struct strings.slice memory","value":"self"},"id":3033,"name":"Identifier","src":"22272:4:4"}],"id":3034,"name":"MemberAccess","src":"22272:9:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":1659,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3021,"type":"struct strings.slice memory","value":"self"},"id":3035,"name":"Identifier","src":"22283:4:4"}],"id":3036,"name":"MemberAccess","src":"22283:9:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1657,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3023,"type":"struct strings.slice memory","value":"needle"},"id":3037,"name":"Identifier","src":"22294:6:4"}],"id":3038,"name":"MemberAccess","src":"22294:11:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":1659,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3023,"type":"struct strings.slice memory","value":"needle"},"id":3039,"name":"Identifier","src":"22307:6:4"}],"id":3040,"name":"MemberAccess","src":"22307:11:4"}],"id":3041,"name":"FunctionCall","src":"22263:56:4"}],"id":3042,"name":"VariableDeclarationStatement","src":"22252:67:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_ptr","referencedDeclaration":1659,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3025,"type":"struct strings.slice memory","value":"token"},"id":3043,"name":"Identifier","src":"22329:5:4"}],"id":3045,"name":"MemberAccess","src":"22329:10:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3031,"type":"uint256","value":"ptr"},"id":3046,"name":"Identifier","src":"22342:3:4"}],"id":3047,"name":"Assignment","src":"22329:16:4"}],"id":3048,"name":"ExpressionStatement","src":"22329:16:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":1657,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3025,"type":"struct strings.slice memory","value":"token"},"id":3049,"name":"Identifier","src":"22355:5:4"}],"id":3051,"name":"MemberAccess","src":"22355:10:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1657,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3021,"type":"struct strings.slice memory","value":"self"},"id":3052,"name":"Identifier","src":"22368:4:4"}],"id":3053,"name":"MemberAccess","src":"22368:9:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3031,"type":"uint256","value":"ptr"},"id":3054,"name":"Identifier","src":"22381:3:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":1659,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3021,"type":"struct strings.slice memory","value":"self"},"id":3055,"name":"Identifier","src":"22387:4:4"}],"id":3056,"name":"MemberAccess","src":"22387:9:4"}],"id":3057,"name":"BinaryOperation","src":"22381:15:4"}],"id":3058,"name":"TupleExpression","src":"22380:17:4"}],"id":3059,"name":"BinaryOperation","src":"22368:29:4"}],"id":3060,"name":"Assignment","src":"22355:42:4"}],"id":3061,"name":"ExpressionStatement","src":"22355:42:4"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3031,"type":"uint256","value":"ptr"},"id":3062,"name":"Identifier","src":"22411:3:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":1659,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3021,"type":"struct strings.slice memory","value":"self"},"id":3063,"name":"Identifier","src":"22418:4:4"}],"id":3064,"name":"MemberAccess","src":"22418:9:4"}],"id":3065,"name":"BinaryOperation","src":"22411:16:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":1657,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3021,"type":"struct strings.slice memory","value":"self"},"id":3066,"name":"Identifier","src":"22468:4:4"}],"id":3068,"name":"MemberAccess","src":"22468:9:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3069,"name":"Literal","src":"22480:1:4"}],"id":3070,"name":"Assignment","src":"22468:13:4"}],"id":3071,"name":"ExpressionStatement","src":"22468:13:4"}],"id":3072,"name":"Block","src":"22429:63:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":1657,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3021,"type":"struct strings.slice memory","value":"self"},"id":3073,"name":"Identifier","src":"22512:4:4"}],"id":3075,"name":"MemberAccess","src":"22512:9:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1657,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3025,"type":"struct strings.slice memory","value":"token"},"id":3076,"name":"Identifier","src":"22525:5:4"}],"id":3077,"name":"MemberAccess","src":"22525:10:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1657,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3023,"type":"struct strings.slice memory","value":"needle"},"id":3078,"name":"Identifier","src":"22538:6:4"}],"id":3079,"name":"MemberAccess","src":"22538:11:4"}],"id":3080,"name":"BinaryOperation","src":"22525:24:4"}],"id":3081,"name":"Assignment","src":"22512:37:4"}],"id":3082,"name":"ExpressionStatement","src":"22512:37:4"}],"id":3083,"name":"Block","src":"22498:62:4"}],"id":3084,"name":"IfStatement","src":"22407:153:4"},{"attributes":{"functionReturnParameters":3029},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3025,"type":"struct strings.slice memory","value":"token"},"id":3085,"name":"Identifier","src":"22576:5:4"}],"id":3086,"name":"Return","src":"22569:12:4"}],"id":3087,"name":"Block","src":"22242:346:4"}],"id":3088,"name":"FunctionDefinition","src":"22129:459:4"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"rsplit","payable":false,"scope":3348,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":3104,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1660,"type":"struct strings.slice"},"id":3089,"name":"UserDefinedTypeName","src":"23073:5:4"}],"id":3090,"name":"VariableDeclaration","src":"23073:17:4"},{"attributes":{"constant":false,"name":"needle","scope":3104,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1660,"type":"struct strings.slice"},"id":3091,"name":"UserDefinedTypeName","src":"23092:5:4"}],"id":3092,"name":"VariableDeclaration","src":"23092:19:4"}],"id":3093,"name":"ParameterList","src":"23072:40:4"},{"children":[{"attributes":{"constant":false,"name":"token","scope":3104,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1660,"type":"struct strings.slice"},"id":3094,"name":"UserDefinedTypeName","src":"23136:5:4"}],"id":3095,"name":"VariableDeclaration","src":"23136:18:4"}],"id":3096,"name":"ParameterList","src":"23135:20:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"struct strings.slice memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$1660_memory_ptr","typeString":"struct strings.slice memory"},{"typeIdentifier":"t_struct$_slice_$1660_memory_ptr","typeString":"struct strings.slice memory"},{"typeIdentifier":"t_struct$_slice_$1660_memory_ptr","typeString":"struct strings.slice memory"}],"overloadedDeclarations":[3088,3104],"referencedDeclaration":3088,"type":"function (struct strings.slice memory,struct strings.slice memory,struct strings.slice memory) pure returns (struct strings.slice memory)","value":"rsplit"},"id":3097,"name":"Identifier","src":"23166:6:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3090,"type":"struct strings.slice memory","value":"self"},"id":3098,"name":"Identifier","src":"23173:4:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3092,"type":"struct strings.slice memory","value":"needle"},"id":3099,"name":"Identifier","src":"23179:6:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3095,"type":"struct strings.slice memory","value":"token"},"id":3100,"name":"Identifier","src":"23187:5:4"}],"id":3101,"name":"FunctionCall","src":"23166:27:4"}],"id":3102,"name":"ExpressionStatement","src":"23166:27:4"}],"id":3103,"name":"Block","src":"23156:44:4"}],"id":3104,"name":"FunctionDefinition","src":"23057:143:4"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"count","payable":false,"scope":3348,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":3163,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1660,"type":"struct strings.slice"},"id":3105,"name":"UserDefinedTypeName","src":"23484:5:4"}],"id":3106,"name":"VariableDeclaration","src":"23484:17:4"},{"attributes":{"constant":false,"name":"needle","scope":3163,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1660,"type":"struct strings.slice"},"id":3107,"name":"UserDefinedTypeName","src":"23503:5:4"}],"id":3108,"name":"VariableDeclaration","src":"23503:19:4"}],"id":3109,"name":"ParameterList","src":"23483:40:4"},{"children":[{"attributes":{"constant":false,"name":"cnt","scope":3163,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":3110,"name":"ElementaryTypeName","src":"23547:4:4"}],"id":3111,"name":"VariableDeclaration","src":"23547:8:4"}],"id":3112,"name":"ParameterList","src":"23546:10:4"},{"children":[{"attributes":{"assignments":[3114]},"children":[{"attributes":{"constant":false,"name":"ptr","scope":3163,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":3113,"name":"ElementaryTypeName","src":"23567:4:4"}],"id":3114,"name":"VariableDeclaration","src":"23567:8:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":2734,"type":"function (uint256,uint256,uint256,uint256) pure returns (uint256)","value":"findPtr"},"id":3115,"name":"Identifier","src":"23578:7:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1657,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3106,"type":"struct strings.slice memory","value":"self"},"id":3116,"name":"Identifier","src":"23586:4:4"}],"id":3117,"name":"MemberAccess","src":"23586:9:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":1659,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3106,"type":"struct strings.slice memory","value":"self"},"id":3118,"name":"Identifier","src":"23597:4:4"}],"id":3119,"name":"MemberAccess","src":"23597:9:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1657,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3108,"type":"struct strings.slice memory","value":"needle"},"id":3120,"name":"Identifier","src":"23608:6:4"}],"id":3121,"name":"MemberAccess","src":"23608:11:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":1659,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3108,"type":"struct strings.slice memory","value":"needle"},"id":3122,"name":"Identifier","src":"23621:6:4"}],"id":3123,"name":"MemberAccess","src":"23621:11:4"}],"id":3124,"name":"FunctionCall","src":"23578:55:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1657,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3108,"type":"struct strings.slice memory","value":"needle"},"id":3125,"name":"Identifier","src":"23636:6:4"}],"id":3126,"name":"MemberAccess","src":"23636:11:4"}],"id":3127,"name":"BinaryOperation","src":"23578:69:4"}],"id":3128,"name":"VariableDeclarationStatement","src":"23567:80:4"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3114,"type":"uint256","value":"ptr"},"id":3129,"name":"Identifier","src":"23664:3:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":1659,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3106,"type":"struct strings.slice memory","value":"self"},"id":3130,"name":"Identifier","src":"23671:4:4"}],"id":3131,"name":"MemberAccess","src":"23671:9:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1657,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3106,"type":"struct strings.slice memory","value":"self"},"id":3132,"name":"Identifier","src":"23683:4:4"}],"id":3133,"name":"MemberAccess","src":"23683:9:4"}],"id":3134,"name":"BinaryOperation","src":"23671:21:4"}],"id":3135,"name":"BinaryOperation","src":"23664:28:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3111,"type":"uint256","value":"cnt"},"id":3136,"name":"Identifier","src":"23708:3:4"}],"id":3137,"name":"UnaryOperation","src":"23708:5:4"}],"id":3138,"name":"ExpressionStatement","src":"23708:5:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3114,"type":"uint256","value":"ptr"},"id":3139,"name":"Identifier","src":"23727:3:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":2734,"type":"function (uint256,uint256,uint256,uint256) pure returns (uint256)","value":"findPtr"},"id":3140,"name":"Identifier","src":"23733:7:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1657,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3106,"type":"struct strings.slice memory","value":"self"},"id":3141,"name":"Identifier","src":"23741:4:4"}],"id":3142,"name":"MemberAccess","src":"23741:9:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3114,"type":"uint256","value":"ptr"},"id":3143,"name":"Identifier","src":"23754:3:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":1659,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3106,"type":"struct strings.slice memory","value":"self"},"id":3144,"name":"Identifier","src":"23760:4:4"}],"id":3145,"name":"MemberAccess","src":"23760:9:4"}],"id":3146,"name":"BinaryOperation","src":"23754:15:4"}],"id":3147,"name":"TupleExpression","src":"23753:17:4"}],"id":3148,"name":"BinaryOperation","src":"23741:29:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3114,"type":"uint256","value":"ptr"},"id":3149,"name":"Identifier","src":"23772:3:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1657,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3108,"type":"struct strings.slice memory","value":"needle"},"id":3150,"name":"Identifier","src":"23777:6:4"}],"id":3151,"name":"MemberAccess","src":"23777:11:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":1659,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3108,"type":"struct strings.slice memory","value":"needle"},"id":3152,"name":"Identifier","src":"23790:6:4"}],"id":3153,"name":"MemberAccess","src":"23790:11:4"}],"id":3154,"name":"FunctionCall","src":"23733:69:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1657,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3108,"type":"struct strings.slice memory","value":"needle"},"id":3155,"name":"Identifier","src":"23805:6:4"}],"id":3156,"name":"MemberAccess","src":"23805:11:4"}],"id":3157,"name":"BinaryOperation","src":"23733:83:4"}],"id":3158,"name":"Assignment","src":"23727:89:4"}],"id":3159,"name":"ExpressionStatement","src":"23727:89:4"}],"id":3160,"name":"Block","src":"23694:133:4"}],"id":3161,"name":"WhileStatement","src":"23657:170:4"}],"id":3162,"name":"Block","src":"23557:276:4"}],"id":3163,"name":"FunctionDefinition","src":"23469:364:4"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"contains","payable":false,"scope":3348,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":3187,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1660,"type":"struct strings.slice"},"id":3164,"name":"UserDefinedTypeName","src":"24090:5:4"}],"id":3165,"name":"VariableDeclaration","src":"24090:17:4"},{"attributes":{"constant":false,"name":"needle","scope":3187,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1660,"type":"struct strings.slice"},"id":3166,"name":"UserDefinedTypeName","src":"24109:5:4"}],"id":3167,"name":"VariableDeclaration","src":"24109:19:4"}],"id":3168,"name":"ParameterList","src":"24089:40:4"},{"children":[{"attributes":{"constant":false,"name":"","scope":3187,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":3169,"name":"ElementaryTypeName","src":"24153:4:4"}],"id":3170,"name":"VariableDeclaration","src":"24153:4:4"}],"id":3171,"name":"ParameterList","src":"24152:6:4"},{"children":[{"attributes":{"functionReturnParameters":3171},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":2851,"type":"function (uint256,uint256,uint256,uint256) pure returns (uint256)","value":"rfindPtr"},"id":3172,"name":"Identifier","src":"24176:8:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1657,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3165,"type":"struct strings.slice memory","value":"self"},"id":3173,"name":"Identifier","src":"24185:4:4"}],"id":3174,"name":"MemberAccess","src":"24185:9:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":1659,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3165,"type":"struct strings.slice memory","value":"self"},"id":3175,"name":"Identifier","src":"24196:4:4"}],"id":3176,"name":"MemberAccess","src":"24196:9:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1657,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3167,"type":"struct strings.slice memory","value":"needle"},"id":3177,"name":"Identifier","src":"24207:6:4"}],"id":3178,"name":"MemberAccess","src":"24207:11:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":1659,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3167,"type":"struct strings.slice memory","value":"needle"},"id":3179,"name":"Identifier","src":"24220:6:4"}],"id":3180,"name":"MemberAccess","src":"24220:11:4"}],"id":3181,"name":"FunctionCall","src":"24176:56:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":1659,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3165,"type":"struct strings.slice memory","value":"self"},"id":3182,"name":"Identifier","src":"24236:4:4"}],"id":3183,"name":"MemberAccess","src":"24236:9:4"}],"id":3184,"name":"BinaryOperation","src":"24176:69:4"}],"id":3185,"name":"Return","src":"24169:76:4"}],"id":3186,"name":"Block","src":"24159:93:4"}],"id":3187,"name":"FunctionDefinition","src":"24072:180:4"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"concat","payable":false,"scope":3348,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":3233,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1660,"type":"struct strings.slice"},"id":3188,"name":"UserDefinedTypeName","src":"24555:5:4"}],"id":3189,"name":"VariableDeclaration","src":"24555:17:4"},{"attributes":{"constant":false,"name":"other","scope":3233,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1660,"type":"struct strings.slice"},"id":3190,"name":"UserDefinedTypeName","src":"24574:5:4"}],"id":3191,"name":"VariableDeclaration","src":"24574:18:4"}],"id":3192,"name":"ParameterList","src":"24554:39:4"},{"children":[{"attributes":{"constant":false,"name":"","scope":3233,"stateVariable":false,"storageLocation":"memory","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":3193,"name":"ElementaryTypeName","src":"24617:6:4"}],"id":3194,"name":"VariableDeclaration","src":"24617:6:4"}],"id":3195,"name":"ParameterList","src":"24616:15:4"},{"children":[{"attributes":{"assignments":[3197]},"children":[{"attributes":{"constant":false,"name":"ret","scope":3233,"stateVariable":false,"storageLocation":"memory","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":3196,"name":"ElementaryTypeName","src":"24642:6:4"}],"id":3197,"name":"VariableDeclaration","src":"24642:17:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (string memory)"},"children":[{"attributes":{"name":"string","type":"string"},"id":3198,"name":"ElementaryTypeName","src":"24666:6:4"}],"id":3199,"name":"NewExpression","src":"24662:10:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1657,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3189,"type":"struct strings.slice memory","value":"self"},"id":3200,"name":"Identifier","src":"24673:4:4"}],"id":3201,"name":"MemberAccess","src":"24673:9:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1657,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3191,"type":"struct strings.slice memory","value":"other"},"id":3202,"name":"Identifier","src":"24685:5:4"}],"id":3203,"name":"MemberAccess","src":"24685:10:4"}],"id":3204,"name":"BinaryOperation","src":"24673:22:4"}],"id":3205,"name":"FunctionCall","src":"24662:34:4"}],"id":3206,"name":"VariableDeclarationStatement","src":"24642:54:4"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"retptr","scope":3233,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":3207,"name":"ElementaryTypeName","src":"24706:4:4"}],"id":3208,"name":"VariableDeclaration","src":"24706:11:4"}],"id":3209,"name":"VariableDeclarationStatement","src":"24706:11:4"},{"attributes":{"externalReferences":[{"retptr":{"declaration":3208,"isOffset":false,"isSlot":false,"src":"24738:6:4","valueSize":1}},{"ret":{"declaration":3197,"isOffset":false,"isSlot":false,"src":"24752:3:4","valueSize":1}}],"operations":"{\n retptr := add(ret, 32)\n}"},"children":[],"id":3210,"name":"InlineAssembly","src":"24727:50:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":1700,"type":"function (uint256,uint256,uint256) pure","value":"memcpy"},"id":3211,"name":"Identifier","src":"24771:6:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3208,"type":"uint256","value":"retptr"},"id":3212,"name":"Identifier","src":"24778:6:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":1659,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3189,"type":"struct strings.slice memory","value":"self"},"id":3213,"name":"Identifier","src":"24786:4:4"}],"id":3214,"name":"MemberAccess","src":"24786:9:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1657,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3189,"type":"struct strings.slice memory","value":"self"},"id":3215,"name":"Identifier","src":"24797:4:4"}],"id":3216,"name":"MemberAccess","src":"24797:9:4"}],"id":3217,"name":"FunctionCall","src":"24771:36:4"}],"id":3218,"name":"ExpressionStatement","src":"24771:36:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":1700,"type":"function (uint256,uint256,uint256) pure","value":"memcpy"},"id":3219,"name":"Identifier","src":"24817:6:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3208,"type":"uint256","value":"retptr"},"id":3220,"name":"Identifier","src":"24824:6:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1657,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3189,"type":"struct strings.slice memory","value":"self"},"id":3221,"name":"Identifier","src":"24833:4:4"}],"id":3222,"name":"MemberAccess","src":"24833:9:4"}],"id":3223,"name":"BinaryOperation","src":"24824:18:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":1659,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3191,"type":"struct strings.slice memory","value":"other"},"id":3224,"name":"Identifier","src":"24844:5:4"}],"id":3225,"name":"MemberAccess","src":"24844:10:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1657,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3191,"type":"struct strings.slice memory","value":"other"},"id":3226,"name":"Identifier","src":"24856:5:4"}],"id":3227,"name":"MemberAccess","src":"24856:10:4"}],"id":3228,"name":"FunctionCall","src":"24817:50:4"}],"id":3229,"name":"ExpressionStatement","src":"24817:50:4"},{"attributes":{"functionReturnParameters":3195},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3197,"type":"string memory","value":"ret"},"id":3230,"name":"Identifier","src":"24884:3:4"}],"id":3231,"name":"Return","src":"24877:10:4"}],"id":3232,"name":"Block","src":"24632:262:4"}],"id":3233,"name":"FunctionDefinition","src":"24539:355:4"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"join","payable":false,"scope":3348,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":3347,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1660,"type":"struct strings.slice"},"id":3234,"name":"UserDefinedTypeName","src":"25244:5:4"}],"id":3235,"name":"VariableDeclaration","src":"25244:17:4"},{"attributes":{"constant":false,"name":"parts","scope":3347,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"struct strings.slice[]"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":1660,"type":"struct strings.slice"},"id":3236,"name":"UserDefinedTypeName","src":"25263:5:4"}],"id":3237,"name":"ArrayTypeName","src":"25263:7:4"}],"id":3238,"name":"VariableDeclaration","src":"25263:20:4"}],"id":3239,"name":"ParameterList","src":"25243:41:4"},{"children":[{"attributes":{"constant":false,"name":"","scope":3347,"stateVariable":false,"storageLocation":"memory","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":3240,"name":"ElementaryTypeName","src":"25308:6:4"}],"id":3241,"name":"VariableDeclaration","src":"25308:6:4"}],"id":3242,"name":"ParameterList","src":"25307:15:4"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3238,"type":"struct strings.slice memory[] memory","value":"parts"},"id":3243,"name":"Identifier","src":"25337:5:4"}],"id":3244,"name":"MemberAccess","src":"25337:12:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3245,"name":"Literal","src":"25353:1:4"}],"id":3246,"name":"BinaryOperation","src":"25337:17:4"},{"attributes":{"functionReturnParameters":3242},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"\"","value":""},"id":3247,"name":"Literal","src":"25375:2:4"}],"id":3248,"name":"Return","src":"25368:9:4"}],"id":3249,"name":"IfStatement","src":"25333:44:4"},{"attributes":{"assignments":[3251]},"children":[{"attributes":{"constant":false,"name":"length","scope":3347,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":3250,"name":"ElementaryTypeName","src":"25388:4:4"}],"id":3251,"name":"VariableDeclaration","src":"25388:11:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1657,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3235,"type":"struct strings.slice memory","value":"self"},"id":3252,"name":"Identifier","src":"25402:4:4"}],"id":3253,"name":"MemberAccess","src":"25402:9:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3238,"type":"struct strings.slice memory[] memory","value":"parts"},"id":3254,"name":"Identifier","src":"25415:5:4"}],"id":3255,"name":"MemberAccess","src":"25415:12:4"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":3256,"name":"Literal","src":"25430:1:4"}],"id":3257,"name":"BinaryOperation","src":"25415:16:4"}],"id":3258,"name":"TupleExpression","src":"25414:18:4"}],"id":3259,"name":"BinaryOperation","src":"25402:30:4"}],"id":3260,"name":"VariableDeclarationStatement","src":"25388:44:4"},{"children":[{"attributes":{"assignments":[3262]},"children":[{"attributes":{"constant":false,"name":"i","scope":3347,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":3261,"name":"ElementaryTypeName","src":"25446:4:4"}],"id":3262,"name":"VariableDeclaration","src":"25446:6:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3263,"name":"Literal","src":"25455:1:4"}],"id":3264,"name":"VariableDeclarationStatement","src":"25446:10:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3262,"type":"uint256","value":"i"},"id":3265,"name":"Identifier","src":"25458:1:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3238,"type":"struct strings.slice memory[] memory","value":"parts"},"id":3266,"name":"Identifier","src":"25462:5:4"}],"id":3267,"name":"MemberAccess","src":"25462:12:4"}],"id":3268,"name":"BinaryOperation","src":"25458:16:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3262,"type":"uint256","value":"i"},"id":3269,"name":"Identifier","src":"25476:1:4"}],"id":3270,"name":"UnaryOperation","src":"25476:3:4"}],"id":3271,"name":"ExpressionStatement","src":"25476:3:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3251,"type":"uint256","value":"length"},"id":3272,"name":"Identifier","src":"25493:6:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1657,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct strings.slice memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3238,"type":"struct strings.slice memory[] memory","value":"parts"},"id":3273,"name":"Identifier","src":"25503:5:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3262,"type":"uint256","value":"i"},"id":3274,"name":"Identifier","src":"25509:1:4"}],"id":3275,"name":"IndexAccess","src":"25503:8:4"}],"id":3276,"name":"MemberAccess","src":"25503:13:4"}],"id":3277,"name":"Assignment","src":"25493:23:4"}],"id":3278,"name":"ExpressionStatement","src":"25493:23:4"}],"id":3279,"name":"ForStatement","src":"25442:74:4"},{"attributes":{"assignments":[3281]},"children":[{"attributes":{"constant":false,"name":"ret","scope":3347,"stateVariable":false,"storageLocation":"memory","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":3280,"name":"ElementaryTypeName","src":"25527:6:4"}],"id":3281,"name":"VariableDeclaration","src":"25527:17:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (string memory)"},"children":[{"attributes":{"name":"string","type":"string"},"id":3282,"name":"ElementaryTypeName","src":"25551:6:4"}],"id":3283,"name":"NewExpression","src":"25547:10:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3251,"type":"uint256","value":"length"},"id":3284,"name":"Identifier","src":"25558:6:4"}],"id":3285,"name":"FunctionCall","src":"25547:18:4"}],"id":3286,"name":"VariableDeclarationStatement","src":"25527:38:4"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"retptr","scope":3347,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":3287,"name":"ElementaryTypeName","src":"25575:4:4"}],"id":3288,"name":"VariableDeclaration","src":"25575:11:4"}],"id":3289,"name":"VariableDeclarationStatement","src":"25575:11:4"},{"attributes":{"externalReferences":[{"retptr":{"declaration":3288,"isOffset":false,"isSlot":false,"src":"25607:6:4","valueSize":1}},{"ret":{"declaration":3281,"isOffset":false,"isSlot":false,"src":"25621:3:4","valueSize":1}}],"operations":"{\n retptr := add(ret, 32)\n}"},"children":[],"id":3290,"name":"InlineAssembly","src":"25596:48:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3262,"type":"uint256","value":"i"},"id":3291,"name":"Identifier","src":"25645:1:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3292,"name":"Literal","src":"25649:1:4"}],"id":3293,"name":"Assignment","src":"25645:5:4"}],"id":3294,"name":"ExpressionStatement","src":"25645:5:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3262,"type":"uint256","value":"i"},"id":3295,"name":"Identifier","src":"25652:1:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3238,"type":"struct strings.slice memory[] memory","value":"parts"},"id":3296,"name":"Identifier","src":"25656:5:4"}],"id":3297,"name":"MemberAccess","src":"25656:12:4"}],"id":3298,"name":"BinaryOperation","src":"25652:16:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3262,"type":"uint256","value":"i"},"id":3299,"name":"Identifier","src":"25670:1:4"}],"id":3300,"name":"UnaryOperation","src":"25670:3:4"}],"id":3301,"name":"ExpressionStatement","src":"25670:3:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":1700,"type":"function (uint256,uint256,uint256) pure","value":"memcpy"},"id":3302,"name":"Identifier","src":"25689:6:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3288,"type":"uint256","value":"retptr"},"id":3303,"name":"Identifier","src":"25696:6:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":1659,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct strings.slice memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3238,"type":"struct strings.slice memory[] memory","value":"parts"},"id":3304,"name":"Identifier","src":"25704:5:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3262,"type":"uint256","value":"i"},"id":3305,"name":"Identifier","src":"25710:1:4"}],"id":3306,"name":"IndexAccess","src":"25704:8:4"}],"id":3307,"name":"MemberAccess","src":"25704:13:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1657,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct strings.slice memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3238,"type":"struct strings.slice memory[] memory","value":"parts"},"id":3308,"name":"Identifier","src":"25719:5:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3262,"type":"uint256","value":"i"},"id":3309,"name":"Identifier","src":"25725:1:4"}],"id":3310,"name":"IndexAccess","src":"25719:8:4"}],"id":3311,"name":"MemberAccess","src":"25719:13:4"}],"id":3312,"name":"FunctionCall","src":"25689:44:4"}],"id":3313,"name":"ExpressionStatement","src":"25689:44:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3288,"type":"uint256","value":"retptr"},"id":3314,"name":"Identifier","src":"25747:6:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1657,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct strings.slice memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3238,"type":"struct strings.slice memory[] memory","value":"parts"},"id":3315,"name":"Identifier","src":"25757:5:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3262,"type":"uint256","value":"i"},"id":3316,"name":"Identifier","src":"25763:1:4"}],"id":3317,"name":"IndexAccess","src":"25757:8:4"}],"id":3318,"name":"MemberAccess","src":"25757:13:4"}],"id":3319,"name":"Assignment","src":"25747:23:4"}],"id":3320,"name":"ExpressionStatement","src":"25747:23:4"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3262,"type":"uint256","value":"i"},"id":3321,"name":"Identifier","src":"25788:1:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3238,"type":"struct strings.slice memory[] memory","value":"parts"},"id":3322,"name":"Identifier","src":"25792:5:4"}],"id":3323,"name":"MemberAccess","src":"25792:12:4"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":3324,"name":"Literal","src":"25807:1:4"}],"id":3325,"name":"BinaryOperation","src":"25792:16:4"}],"id":3326,"name":"BinaryOperation","src":"25788:20:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":1700,"type":"function (uint256,uint256,uint256) pure","value":"memcpy"},"id":3327,"name":"Identifier","src":"25828:6:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3288,"type":"uint256","value":"retptr"},"id":3328,"name":"Identifier","src":"25835:6:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":1659,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3235,"type":"struct strings.slice memory","value":"self"},"id":3329,"name":"Identifier","src":"25843:4:4"}],"id":3330,"name":"MemberAccess","src":"25843:9:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1657,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3235,"type":"struct strings.slice memory","value":"self"},"id":3331,"name":"Identifier","src":"25854:4:4"}],"id":3332,"name":"MemberAccess","src":"25854:9:4"}],"id":3333,"name":"FunctionCall","src":"25828:36:4"}],"id":3334,"name":"ExpressionStatement","src":"25828:36:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3288,"type":"uint256","value":"retptr"},"id":3335,"name":"Identifier","src":"25882:6:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":1657,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3235,"type":"struct strings.slice memory","value":"self"},"id":3336,"name":"Identifier","src":"25892:4:4"}],"id":3337,"name":"MemberAccess","src":"25892:9:4"}],"id":3338,"name":"Assignment","src":"25882:19:4"}],"id":3339,"name":"ExpressionStatement","src":"25882:19:4"}],"id":3340,"name":"Block","src":"25810:106:4"}],"id":3341,"name":"IfStatement","src":"25784:132:4"}],"id":3342,"name":"Block","src":"25675:251:4"}],"id":3343,"name":"ForStatement","src":"25641:285:4"},{"attributes":{"functionReturnParameters":3242},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3281,"type":"string memory","value":"ret"},"id":3344,"name":"Identifier","src":"25943:3:4"}],"id":3345,"name":"Return","src":"25936:10:4"}],"id":3346,"name":"Block","src":"25323:630:4"}],"id":3347,"name":"FunctionDefinition","src":"25230:723:4"}],"id":3348,"name":"ContractDefinition","src":"2600:23355:4"}],"id":3349,"name":"SourceUnit","src":"2574:23382:4"}},"internals/claimable.sol":{"AST":{"attributes":{"absolutePath":"internals/claimable.sol","exportedSymbols":{"Claimable":[3401]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".25"]},"id":3350,"name":"PragmaDirective","src":"769:24:5"},{"attributes":{"SourceUnit":3654,"absolutePath":"externals/ERC20.sol","file":"../externals/ERC20.sol","scope":3402,"symbolAliases":[null],"unitAlias":""},"id":3351,"name":"ImportDirective","src":"795:32:5"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"contract","documentation":"@title Claimable, allowing contract to withdraw tokens accidentally sent to itself","fullyImplemented":true,"linearizedBaseContracts":[3401],"name":"Claimable","scope":3402},"children":[{"attributes":{"anonymous":false,"documentation":null,"name":"Claimed"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_to","scope":3359,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3352,"name":"ElementaryTypeName","src":"957:7:5"}],"id":3353,"name":"VariableDeclaration","src":"957:11:5"},{"attributes":{"constant":false,"indexed":false,"name":"_asset","scope":3359,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3354,"name":"ElementaryTypeName","src":"970:7:5"}],"id":3355,"name":"VariableDeclaration","src":"970:14:5"},{"attributes":{"constant":false,"indexed":false,"name":"_amount","scope":3359,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":3356,"name":"ElementaryTypeName","src":"986:4:5"}],"id":3357,"name":"VariableDeclaration","src":"986:12:5"}],"id":3358,"name":"ParameterList","src":"956:43:5"}],"id":3359,"name":"EventDefinition","src":"943:57:5"},{"attributes":{"constant":false,"documentation":"@dev This function is used to move tokens sent accidentally to this contract method.\n @dev The owner can chose the new destination address\n @param _to is the recipient's address.\n @param _asset is the address of an ERC20 token or 0x0 for ether.\n @param _amount is the amount to be transferred in base units.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_claim","payable":false,"scope":3401,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_to","scope":3400,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3360,"name":"ElementaryTypeName","src":"1366:7:5"}],"id":3361,"name":"VariableDeclaration","src":"1366:11:5"},{"attributes":{"constant":false,"name":"_asset","scope":3400,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3362,"name":"ElementaryTypeName","src":"1379:7:5"}],"id":3363,"name":"VariableDeclaration","src":"1379:14:5"},{"attributes":{"constant":false,"name":"_amount","scope":3400,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":3364,"name":"ElementaryTypeName","src":"1395:4:5"}],"id":3365,"name":"VariableDeclaration","src":"1395:12:5"}],"id":3366,"name":"ParameterList","src":"1365:43:5"},{"attributes":{"parameters":[null]},"children":[],"id":3367,"name":"ParameterList","src":"1418:0:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3363,"type":"address","value":"_asset"},"id":3368,"name":"Identifier","src":"1476:6:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":3369,"name":"ElementaryTypeNameExpression","src":"1486:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3370,"name":"Literal","src":"1494:1:5"}],"id":3371,"name":"FunctionCall","src":"1486:10:5"}],"id":3372,"name":"BinaryOperation","src":"1476:20:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"transfer","referencedDeclaration":null,"type":"function (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3361,"type":"address","value":"_to"},"id":3373,"name":"Identifier","src":"1512:3:5"}],"id":3375,"name":"MemberAccess","src":"1512:12:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3365,"type":"uint256","value":"_amount"},"id":3376,"name":"Identifier","src":"1525:7:5"}],"id":3377,"name":"FunctionCall","src":"1512:21:5"}],"id":3378,"name":"ExpressionStatement","src":"1512:21:5"}],"id":3379,"name":"Block","src":"1498:46:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_bebbba0e3133c903fb13ff92bbd373380a11a38636d3fcb2a56e9eeaa3171b67","typeString":"literal_string \"ERC20 token transfer was unsuccessful\""}],"overloadedDeclarations":[4032,4033],"referencedDeclaration":4033,"type":"function (bool,string memory) pure","value":"require"},"id":3380,"name":"Identifier","src":"1564:7:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"transfer","referencedDeclaration":3641,"type":"function (address,uint256) external returns (bool)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract ERC20","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":3653,"type":"type(contract ERC20)","value":"ERC20"},"id":3381,"name":"Identifier","src":"1572:5:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3363,"type":"address","value":"_asset"},"id":3382,"name":"Identifier","src":"1578:6:5"}],"id":3383,"name":"FunctionCall","src":"1572:13:5"}],"id":3384,"name":"MemberAccess","src":"1572:22:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3361,"type":"address","value":"_to"},"id":3385,"name":"Identifier","src":"1595:3:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3365,"type":"uint256","value":"_amount"},"id":3386,"name":"Identifier","src":"1600:7:5"}],"id":3387,"name":"FunctionCall","src":"1572:36:5"},{"attributes":{"argumentTypes":null,"hexvalue":"455243323020746f6b656e207472616e736665722077617320756e7375636365737366756c","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"ERC20 token transfer was unsuccessful\"","value":"ERC20 token transfer was unsuccessful"},"id":3388,"name":"Literal","src":"1610:39:5"}],"id":3389,"name":"FunctionCall","src":"1564:86:5"}],"id":3390,"name":"ExpressionStatement","src":"1564:86:5"}],"id":3391,"name":"Block","src":"1550:111:5"}],"id":3392,"name":"IfStatement","src":"1472:189:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":3359,"type":"function (address,address,uint256)","value":"Claimed"},"id":3393,"name":"Identifier","src":"1676:7:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3361,"type":"address","value":"_to"},"id":3394,"name":"Identifier","src":"1684:3:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3363,"type":"address","value":"_asset"},"id":3395,"name":"Identifier","src":"1689:6:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3365,"type":"uint256","value":"_amount"},"id":3396,"name":"Identifier","src":"1697:7:5"}],"id":3397,"name":"FunctionCall","src":"1676:29:5"}],"id":3398,"name":"EmitStatement","src":"1671:34:5"}],"id":3399,"name":"Block","src":"1418:294:5"}],"id":3400,"name":"FunctionDefinition","src":"1350:362:5"}],"id":3401,"name":"ContractDefinition","src":"917:797:5"}],"id":3402,"name":"SourceUnit","src":"769:946:5"}},"internals/controllable.sol":{"AST":{"attributes":{"absolutePath":"internals/controllable.sol","exportedSymbols":{"Controllable":[3457]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".25"]},"id":3403,"name":"PragmaDirective","src":"772:24:6"},{"attributes":{"SourceUnit":4015,"absolutePath":"internals/controller.sol","file":"./controller.sol","scope":3458,"symbolAliases":[null],"unitAlias":""},"id":3404,"name":"ImportDirective","src":"798:26:6"},{"attributes":{"SourceUnit":181,"absolutePath":"internals/ensResolvable.sol","file":"../internals/ensResolvable.sol","scope":3458,"symbolAliases":[null],"unitAlias":""},"id":3405,"name":"ImportDirective","src":"825:40:6"},{"attributes":{"contractDependencies":[180],"contractKind":"contract","documentation":"@title Controllable implements access control functionality of the Controller found via ENS.","fullyImplemented":false,"linearizedBaseContracts":[3457,180],"name":"Controllable","scope":3458},"children":[{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"ENSResolvable","referencedDeclaration":180,"type":"contract ENSResolvable"},"id":3406,"name":"UserDefinedTypeName","src":"990:13:6"}],"id":3407,"name":"InheritanceSpecifier","src":"990:13:6"},{"attributes":{"constant":false,"name":"_controllerNode","scope":3457,"stateVariable":true,"storageLocation":"default","type":"bytes32","value":null,"visibility":"private"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3408,"name":"ElementaryTypeName","src":"1087:7:6"}],"id":3409,"name":"VariableDeclaration","src":"1087:31:6"},{"attributes":{"constant":false,"documentation":"@notice Constructor initializes the controller contract object.\n @param _controllerNameHash_ is the ENS name hash of the Controller.","implemented":true,"isConstructor":true,"modifiers":[null],"name":"","payable":false,"scope":3457,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_controllerNameHash_","scope":3419,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3410,"name":"ElementaryTypeName","src":"1285:7:6"}],"id":3411,"name":"VariableDeclaration","src":"1285:28:6"}],"id":3412,"name":"ParameterList","src":"1284:30:6"},{"attributes":{"parameters":[null]},"children":[],"id":3413,"name":"ParameterList","src":"1324:0:6"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3409,"type":"bytes32","value":"_controllerNode"},"id":3414,"name":"Identifier","src":"1334:15:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3411,"type":"bytes32","value":"_controllerNameHash_"},"id":3415,"name":"Identifier","src":"1352:20:6"}],"id":3416,"name":"Assignment","src":"1334:38:6"}],"id":3417,"name":"ExpressionStatement","src":"1334:38:6"}],"id":3418,"name":"Block","src":"1324:55:6"}],"id":3419,"name":"FunctionDefinition","src":"1273:106:6"},{"attributes":{"documentation":"@notice Checks if message sender is the controller.","name":"onlyController","visibility":"internal"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":3420,"name":"ParameterList","src":"1468:2:6"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_918bc5a096178f6e8c423f958a6008c4b24fd25b7a3ca0123b85463c61a2e566","typeString":"literal_string \"sender is not a controller\""}],"overloadedDeclarations":[4032,4033],"referencedDeclaration":4033,"type":"function (bool,string memory) pure","value":"require"},"id":3421,"name":"Identifier","src":"1481:7:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":3456,"type":"function (address) view returns (bool)","value":"_isController"},"id":3422,"name":"Identifier","src":"1489:13:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4029,"type":"msg","value":"msg"},"id":3423,"name":"Identifier","src":"1503:3:6"}],"id":3424,"name":"MemberAccess","src":"1503:10:6"}],"id":3425,"name":"FunctionCall","src":"1489:25:6"},{"attributes":{"argumentTypes":null,"hexvalue":"73656e646572206973206e6f74206120636f6e74726f6c6c6572","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"sender is not a controller\"","value":"sender is not a controller"},"id":3426,"name":"Literal","src":"1516:28:6"}],"id":3427,"name":"FunctionCall","src":"1481:64:6"}],"id":3428,"name":"ExpressionStatement","src":"1481:64:6"},{"id":3429,"name":"PlaceholderStatement","src":"1555:1:6"}],"id":3430,"name":"Block","src":"1471:92:6"}],"id":3431,"name":"ModifierDefinition","src":"1445:118:6"},{"attributes":{"constant":true,"documentation":"@return the controller name hash registered in ENS.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"controllerNode","payable":false,"scope":3457,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":3432,"name":"ParameterList","src":"1652:2:6"},{"children":[{"attributes":{"constant":false,"name":"","scope":3439,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3433,"name":"ElementaryTypeName","src":"1678:7:6"}],"id":3434,"name":"VariableDeclaration","src":"1678:7:6"}],"id":3435,"name":"ParameterList","src":"1677:9:6"},{"children":[{"attributes":{"functionReturnParameters":3435},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3409,"type":"bytes32","value":"_controllerNode"},"id":3436,"name":"Identifier","src":"1704:15:6"}],"id":3437,"name":"Return","src":"1697:22:6"}],"id":3438,"name":"Block","src":"1687:39:6"}],"id":3439,"name":"FunctionDefinition","src":"1629:97:6"},{"attributes":{"constant":true,"documentation":"@return true if the provided account is the controller.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_isController","payable":false,"scope":3457,"stateMutability":"view","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":3456,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3440,"name":"ElementaryTypeName","src":"1819:7:6"}],"id":3441,"name":"VariableDeclaration","src":"1819:16:6"}],"id":3442,"name":"ParameterList","src":"1818:18:6"},{"children":[{"attributes":{"constant":false,"name":"","scope":3456,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":3443,"name":"ElementaryTypeName","src":"1860:4:6"}],"id":3444,"name":"VariableDeclaration","src":"1860:4:6"}],"id":3445,"name":"ParameterList","src":"1859:6:6"},{"children":[{"attributes":{"functionReturnParameters":3445},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"isController","referencedDeclaration":3664,"type":"function (address) view external returns (bool)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract IController","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":3665,"type":"type(contract IController)","value":"IController"},"id":3446,"name":"Identifier","src":"1883:11:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[null],"referencedDeclaration":179,"type":"function (bytes32) view returns (address)","value":"_ensResolve"},"id":3447,"name":"Identifier","src":"1895:11:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3409,"type":"bytes32","value":"_controllerNode"},"id":3448,"name":"Identifier","src":"1907:15:6"}],"id":3449,"name":"FunctionCall","src":"1895:28:6"}],"id":3450,"name":"FunctionCall","src":"1883:41:6"}],"id":3451,"name":"MemberAccess","src":"1883:54:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3441,"type":"address","value":"_account"},"id":3452,"name":"Identifier","src":"1938:8:6"}],"id":3453,"name":"FunctionCall","src":"1883:64:6"}],"id":3454,"name":"Return","src":"1876:71:6"}],"id":3455,"name":"Block","src":"1866:88:6"}],"id":3456,"name":"FunctionDefinition","src":"1796:158:6"}],"id":3457,"name":"ContractDefinition","src":"965:992:6"}],"id":3458,"name":"SourceUnit","src":"772:1186:6"}},"internals/controller.sol":{"AST":{"attributes":{"absolutePath":"internals/controller.sol","exportedSymbols":{"Controller":[4014],"IController":[3665]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".25"]},"id":3655,"name":"PragmaDirective","src":"770:24:7"},{"attributes":{"SourceUnit":3615,"absolutePath":"internals/ownable.sol","file":"./ownable.sol","scope":4015,"symbolAliases":[null],"unitAlias":""},"id":3656,"name":"ImportDirective","src":"796:23:7"},{"attributes":{"SourceUnit":3402,"absolutePath":"internals/claimable.sol","file":"./claimable.sol","scope":4015,"symbolAliases":[null],"unitAlias":""},"id":3657,"name":"ImportDirective","src":"820:25:7"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"interface","documentation":"@title The IController interface provides access to the isController check.","fullyImplemented":false,"linearizedBaseContracts":[3665],"name":"IController","scope":4015},"children":[{"attributes":{"body":null,"constant":true,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"isController","payable":false,"scope":3665,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"","scope":3664,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3658,"name":"ElementaryTypeName","src":"977:7:7"}],"id":3659,"name":"VariableDeclaration","src":"977:7:7"}],"id":3660,"name":"ParameterList","src":"976:9:7"},{"children":[{"attributes":{"constant":false,"name":"","scope":3664,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":3661,"name":"ElementaryTypeName","src":"1009:4:7"}],"id":3662,"name":"VariableDeclaration","src":"1009:4:7"}],"id":3663,"name":"ParameterList","src":"1008:6:7"}],"id":3664,"name":"FunctionDefinition","src":"955:60:7"}],"id":3665,"name":"ContractDefinition","src":"927:90:7"},{"attributes":{"contractDependencies":[3401,3614,3665],"contractKind":"contract","documentation":"@title Controller stores a list of controller addresses that can be used for authentication in other contracts.\n @notice The Controller implements a hierarchy of concepts, Owner, Admin, and the Controllers.\n @dev Owner can change the Admins\n @dev Admins and can the Controllers\n @dev Controllers are used by the application.","fullyImplemented":true,"linearizedBaseContracts":[4014,3401,3614,3665],"name":"Controller","scope":4015},"children":[{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"IController","referencedDeclaration":3665,"type":"contract IController"},"id":3666,"name":"UserDefinedTypeName","src":"1384:11:7"}],"id":3667,"name":"InheritanceSpecifier","src":"1384:11:7"},{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"Ownable","referencedDeclaration":3614,"type":"contract Ownable"},"id":3668,"name":"UserDefinedTypeName","src":"1397:7:7"}],"id":3669,"name":"InheritanceSpecifier","src":"1397:7:7"},{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"Claimable","referencedDeclaration":3401,"type":"contract Claimable"},"id":3670,"name":"UserDefinedTypeName","src":"1406:9:7"}],"id":3671,"name":"InheritanceSpecifier","src":"1406:9:7"},{"attributes":{"anonymous":false,"documentation":null,"name":"AddedController"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_sender","scope":3677,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3672,"name":"ElementaryTypeName","src":"1445:7:7"}],"id":3673,"name":"VariableDeclaration","src":"1445:15:7"},{"attributes":{"constant":false,"indexed":false,"name":"_controller","scope":3677,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3674,"name":"ElementaryTypeName","src":"1462:7:7"}],"id":3675,"name":"VariableDeclaration","src":"1462:19:7"}],"id":3676,"name":"ParameterList","src":"1444:38:7"}],"id":3677,"name":"EventDefinition","src":"1423:60:7"},{"attributes":{"anonymous":false,"documentation":null,"name":"RemovedController"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_sender","scope":3683,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3678,"name":"ElementaryTypeName","src":"1512:7:7"}],"id":3679,"name":"VariableDeclaration","src":"1512:15:7"},{"attributes":{"constant":false,"indexed":false,"name":"_controller","scope":3683,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3680,"name":"ElementaryTypeName","src":"1529:7:7"}],"id":3681,"name":"VariableDeclaration","src":"1529:19:7"}],"id":3682,"name":"ParameterList","src":"1511:38:7"}],"id":3683,"name":"EventDefinition","src":"1488:62:7"},{"attributes":{"anonymous":false,"documentation":null,"name":"AddedAdmin"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_sender","scope":3689,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3684,"name":"ElementaryTypeName","src":"1573:7:7"}],"id":3685,"name":"VariableDeclaration","src":"1573:15:7"},{"attributes":{"constant":false,"indexed":false,"name":"_admin","scope":3689,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3686,"name":"ElementaryTypeName","src":"1590:7:7"}],"id":3687,"name":"VariableDeclaration","src":"1590:14:7"}],"id":3688,"name":"ParameterList","src":"1572:33:7"}],"id":3689,"name":"EventDefinition","src":"1556:50:7"},{"attributes":{"anonymous":false,"documentation":null,"name":"RemovedAdmin"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_sender","scope":3695,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3690,"name":"ElementaryTypeName","src":"1630:7:7"}],"id":3691,"name":"VariableDeclaration","src":"1630:15:7"},{"attributes":{"constant":false,"indexed":false,"name":"_admin","scope":3695,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3692,"name":"ElementaryTypeName","src":"1647:7:7"}],"id":3693,"name":"VariableDeclaration","src":"1647:14:7"}],"id":3694,"name":"ParameterList","src":"1629:33:7"}],"id":3695,"name":"EventDefinition","src":"1611:52:7"},{"attributes":{"constant":false,"name":"_isAdmin","scope":4014,"stateVariable":true,"storageLocation":"default","type":"mapping(address => bool)","value":null,"visibility":"private"},"children":[{"attributes":{"type":"mapping(address => bool)"},"children":[{"attributes":{"name":"address","type":"address"},"id":3696,"name":"ElementaryTypeName","src":"1678:7:7"},{"attributes":{"name":"bool","type":"bool"},"id":3697,"name":"ElementaryTypeName","src":"1689:4:7"}],"id":3698,"name":"Mapping","src":"1669:25:7"}],"id":3699,"name":"VariableDeclaration","src":"1669:42:7"},{"attributes":{"constant":false,"name":"_adminCount","scope":4014,"stateVariable":true,"storageLocation":"default","type":"uint256","value":null,"visibility":"private"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":3700,"name":"ElementaryTypeName","src":"1717:4:7"}],"id":3701,"name":"VariableDeclaration","src":"1717:24:7"},{"attributes":{"constant":false,"name":"_isController","scope":4014,"stateVariable":true,"storageLocation":"default","type":"mapping(address => bool)","value":null,"visibility":"private"},"children":[{"attributes":{"type":"mapping(address => bool)"},"children":[{"attributes":{"name":"address","type":"address"},"id":3702,"name":"ElementaryTypeName","src":"1757:7:7"},{"attributes":{"name":"bool","type":"bool"},"id":3703,"name":"ElementaryTypeName","src":"1768:4:7"}],"id":3704,"name":"Mapping","src":"1748:25:7"}],"id":3705,"name":"VariableDeclaration","src":"1748:47:7"},{"attributes":{"constant":false,"name":"_controllerCount","scope":4014,"stateVariable":true,"storageLocation":"default","type":"uint256","value":null,"visibility":"private"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":3706,"name":"ElementaryTypeName","src":"1801:4:7"}],"id":3707,"name":"VariableDeclaration","src":"1801:29:7"},{"attributes":{"constant":false,"documentation":"@notice Constructor initializes the owner with the provided address.\n @param _ownerAddress_ address of the owner.\n @param _transferable_ indicates whether the contract ownership can be transferred.","implemented":true,"isConstructor":true,"name":"","payable":false,"scope":4014,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"_ownerAddress_","scope":3719,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3708,"name":"ElementaryTypeName","src":"2069:7:7"}],"id":3709,"name":"VariableDeclaration","src":"2069:22:7"},{"attributes":{"constant":false,"name":"_transferable_","scope":3719,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":3710,"name":"ElementaryTypeName","src":"2093:4:7"}],"id":3711,"name":"VariableDeclaration","src":"2093:19:7"}],"id":3712,"name":"ParameterList","src":"2068:45:7"},{"attributes":{"parameters":[null]},"children":[],"id":3717,"name":"ParameterList","src":"2161:0:7"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3614,"type":"type(contract Ownable)","value":"Ownable"},"id":3713,"name":"Identifier","src":"2114:7:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3709,"type":"address","value":"_ownerAddress_"},"id":3714,"name":"Identifier","src":"2122:14:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3711,"type":"bool","value":"_transferable_"},"id":3715,"name":"Identifier","src":"2138:14:7"}],"id":3716,"name":"ModifierInvocation","src":"2114:39:7"},{"attributes":{"statements":[null]},"children":[],"id":3718,"name":"Block","src":"2161:3:7"}],"id":3719,"name":"FunctionDefinition","src":"2057:107:7"},{"attributes":{"documentation":"@notice Checks if message sender is an admin.","name":"onlyAdmin","visibility":"internal"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":3720,"name":"ParameterList","src":"2242:2:7"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_156cbb05733026f4aa0b363c6a3be5f21b7ab8f248a865cc639a4d928ddeabb8","typeString":"literal_string \"sender is not an admin\""}],"overloadedDeclarations":[4032,4033],"referencedDeclaration":4033,"type":"function (bool,string memory) pure","value":"require"},"id":3721,"name":"Identifier","src":"2255:7:7"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":3819,"type":"function (address) view returns (bool)","value":"isAdmin"},"id":3722,"name":"Identifier","src":"2263:7:7"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4029,"type":"msg","value":"msg"},"id":3723,"name":"Identifier","src":"2271:3:7"}],"id":3724,"name":"MemberAccess","src":"2271:10:7"}],"id":3725,"name":"FunctionCall","src":"2263:19:7"},{"attributes":{"argumentTypes":null,"hexvalue":"73656e646572206973206e6f7420616e2061646d696e","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"sender is not an admin\"","value":"sender is not an admin"},"id":3726,"name":"Literal","src":"2284:24:7"}],"id":3727,"name":"FunctionCall","src":"2255:54:7"}],"id":3728,"name":"ExpressionStatement","src":"2255:54:7"},{"id":3729,"name":"PlaceholderStatement","src":"2319:1:7"}],"id":3730,"name":"Block","src":"2245:82:7"}],"id":3731,"name":"ModifierDefinition","src":"2224:103:7"},{"attributes":{"documentation":"@notice Checks if message sender is a controller.","name":"onlyController","visibility":"internal"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":3732,"name":"ParameterList","src":"2414:2:7"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_918bc5a096178f6e8c423f958a6008c4b24fd25b7a3ca0123b85463c61a2e566","typeString":"literal_string \"sender is not a controller\""}],"overloadedDeclarations":[4032,4033],"referencedDeclaration":4033,"type":"function (bool,string memory) pure","value":"require"},"id":3733,"name":"Identifier","src":"2427:7:7"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":3831,"type":"function (address) view returns (bool)","value":"isController"},"id":3734,"name":"Identifier","src":"2435:12:7"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4029,"type":"msg","value":"msg"},"id":3735,"name":"Identifier","src":"2448:3:7"}],"id":3736,"name":"MemberAccess","src":"2448:10:7"}],"id":3737,"name":"FunctionCall","src":"2435:24:7"},{"attributes":{"argumentTypes":null,"hexvalue":"73656e646572206973206e6f74206120636f6e74726f6c6c6572","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"sender is not a controller\"","value":"sender is not a controller"},"id":3738,"name":"Literal","src":"2461:28:7"}],"id":3739,"name":"FunctionCall","src":"2427:63:7"}],"id":3740,"name":"ExpressionStatement","src":"2427:63:7"},{"id":3741,"name":"PlaceholderStatement","src":"2500:1:7"}],"id":3742,"name":"Block","src":"2417:91:7"}],"id":3743,"name":"ModifierDefinition","src":"2391:117:7"},{"attributes":{"constant":false,"documentation":"@notice Add a new admin to the list of admins.\n @param _account address to add to the list of admins.","implemented":true,"isConstructor":false,"name":"addAdmin","payable":false,"scope":4014,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":3755,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3744,"name":"ElementaryTypeName","src":"2649:7:7"}],"id":3745,"name":"VariableDeclaration","src":"2649:16:7"}],"id":3746,"name":"ParameterList","src":"2648:18:7"},{"attributes":{"parameters":[null]},"children":[],"id":3749,"name":"ParameterList","src":"2686:0:7"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3516,"type":"modifier ()","value":"onlyOwner"},"id":3747,"name":"Identifier","src":"2676:9:7"}],"id":3748,"name":"ModifierInvocation","src":"2676:9:7"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":3885,"type":"function (address)","value":"_addAdmin"},"id":3750,"name":"Identifier","src":"2696:9:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3745,"type":"address","value":"_account"},"id":3751,"name":"Identifier","src":"2706:8:7"}],"id":3752,"name":"FunctionCall","src":"2696:19:7"}],"id":3753,"name":"ExpressionStatement","src":"2696:19:7"}],"id":3754,"name":"Block","src":"2686:36:7"}],"id":3755,"name":"FunctionDefinition","src":"2631:91:7"},{"attributes":{"constant":false,"documentation":"@notice Remove a admin from the list of admins.\n @param _account address to remove from the list of admins.","implemented":true,"isConstructor":false,"name":"removeAdmin","payable":false,"scope":4014,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":3767,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3756,"name":"ElementaryTypeName","src":"2872:7:7"}],"id":3757,"name":"VariableDeclaration","src":"2872:16:7"}],"id":3758,"name":"ParameterList","src":"2871:18:7"},{"attributes":{"parameters":[null]},"children":[],"id":3761,"name":"ParameterList","src":"2909:0:7"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3516,"type":"modifier ()","value":"onlyOwner"},"id":3759,"name":"Identifier","src":"2899:9:7"}],"id":3760,"name":"ModifierInvocation","src":"2899:9:7"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":3913,"type":"function (address)","value":"_removeAdmin"},"id":3762,"name":"Identifier","src":"2919:12:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3757,"type":"address","value":"_account"},"id":3763,"name":"Identifier","src":"2932:8:7"}],"id":3764,"name":"FunctionCall","src":"2919:22:7"}],"id":3765,"name":"ExpressionStatement","src":"2919:22:7"}],"id":3766,"name":"Block","src":"2909:39:7"}],"id":3767,"name":"FunctionDefinition","src":"2851:97:7"},{"attributes":{"constant":true,"documentation":"@return the current number of admins.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"adminCount","payable":false,"scope":4014,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":3768,"name":"ParameterList","src":"3019:2:7"},{"children":[{"attributes":{"constant":false,"name":"","scope":3775,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":3769,"name":"ElementaryTypeName","src":"3045:4:7"}],"id":3770,"name":"VariableDeclaration","src":"3045:4:7"}],"id":3771,"name":"ParameterList","src":"3044:6:7"},{"children":[{"attributes":{"functionReturnParameters":3771},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3701,"type":"uint256","value":"_adminCount"},"id":3772,"name":"Identifier","src":"3068:11:7"}],"id":3773,"name":"Return","src":"3061:18:7"}],"id":3774,"name":"Block","src":"3051:35:7"}],"id":3775,"name":"FunctionDefinition","src":"3000:86:7"},{"attributes":{"constant":false,"documentation":"@notice Add a new controller to the list of controllers.\n @param _account address to add to the list of controllers.","implemented":true,"isConstructor":false,"name":"addController","payable":false,"scope":4014,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":3787,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3776,"name":"ElementaryTypeName","src":"3247:7:7"}],"id":3777,"name":"VariableDeclaration","src":"3247:16:7"}],"id":3778,"name":"ParameterList","src":"3246:18:7"},{"attributes":{"parameters":[null]},"children":[],"id":3781,"name":"ParameterList","src":"3284:0:7"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3731,"type":"modifier ()","value":"onlyAdmin"},"id":3779,"name":"Identifier","src":"3274:9:7"}],"id":3780,"name":"ModifierInvocation","src":"3274:9:7"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":3967,"type":"function (address)","value":"_addController"},"id":3782,"name":"Identifier","src":"3294:14:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3777,"type":"address","value":"_account"},"id":3783,"name":"Identifier","src":"3309:8:7"}],"id":3784,"name":"FunctionCall","src":"3294:24:7"}],"id":3785,"name":"ExpressionStatement","src":"3294:24:7"}],"id":3786,"name":"Block","src":"3284:41:7"}],"id":3787,"name":"FunctionDefinition","src":"3224:101:7"},{"attributes":{"constant":false,"documentation":"@notice Remove a controller from the list of controllers.\n @param _account address to remove from the list of controllers.","implemented":true,"isConstructor":false,"name":"removeController","payable":false,"scope":4014,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":3799,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3788,"name":"ElementaryTypeName","src":"3495:7:7"}],"id":3789,"name":"VariableDeclaration","src":"3495:16:7"}],"id":3790,"name":"ParameterList","src":"3494:18:7"},{"attributes":{"parameters":[null]},"children":[],"id":3793,"name":"ParameterList","src":"3532:0:7"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3731,"type":"modifier ()","value":"onlyAdmin"},"id":3791,"name":"Identifier","src":"3522:9:7"}],"id":3792,"name":"ModifierInvocation","src":"3522:9:7"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":3995,"type":"function (address)","value":"_removeController"},"id":3794,"name":"Identifier","src":"3542:17:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3789,"type":"address","value":"_account"},"id":3795,"name":"Identifier","src":"3560:8:7"}],"id":3796,"name":"FunctionCall","src":"3542:27:7"}],"id":3797,"name":"ExpressionStatement","src":"3542:27:7"}],"id":3798,"name":"Block","src":"3532:44:7"}],"id":3799,"name":"FunctionDefinition","src":"3469:107:7"},{"attributes":{"constant":true,"documentation":"@notice count the Controllers\n @return the current number of controllers.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"controllerCount","payable":false,"scope":4014,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":3800,"name":"ParameterList","src":"3695:2:7"},{"children":[{"attributes":{"constant":false,"name":"","scope":3807,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":3801,"name":"ElementaryTypeName","src":"3721:4:7"}],"id":3802,"name":"VariableDeclaration","src":"3721:4:7"}],"id":3803,"name":"ParameterList","src":"3720:6:7"},{"children":[{"attributes":{"functionReturnParameters":3803},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3707,"type":"uint256","value":"_controllerCount"},"id":3804,"name":"Identifier","src":"3744:16:7"}],"id":3805,"name":"Return","src":"3737:23:7"}],"id":3806,"name":"Block","src":"3727:40:7"}],"id":3807,"name":"FunctionDefinition","src":"3671:96:7"},{"attributes":{"constant":true,"documentation":"@notice is an address an Admin?\n @return true if the provided account is an admin.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"isAdmin","payable":false,"scope":4014,"stateMutability":"view","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":3819,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3808,"name":"ElementaryTypeName","src":"3888:7:7"}],"id":3809,"name":"VariableDeclaration","src":"3888:16:7"}],"id":3810,"name":"ParameterList","src":"3887:18:7"},{"children":[{"attributes":{"constant":false,"name":"","scope":3819,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":3811,"name":"ElementaryTypeName","src":"3927:4:7"}],"id":3812,"name":"VariableDeclaration","src":"3927:4:7"}],"id":3813,"name":"ParameterList","src":"3926:6:7"},{"children":[{"attributes":{"functionReturnParameters":3813},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3699,"type":"mapping(address => bool)","value":"_isAdmin"},"id":3814,"name":"Identifier","src":"3950:8:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3809,"type":"address","value":"_account"},"id":3815,"name":"Identifier","src":"3959:8:7"}],"id":3816,"name":"IndexAccess","src":"3950:18:7"}],"id":3817,"name":"Return","src":"3943:25:7"}],"id":3818,"name":"Block","src":"3933:42:7"}],"id":3819,"name":"FunctionDefinition","src":"3871:104:7"},{"attributes":{"constant":true,"documentation":"@notice is an address a Controller?\n @return true if the provided account is a controller.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"isController","payable":false,"scope":4014,"stateMutability":"view","superFunction":3664,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":3831,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3820,"name":"ElementaryTypeName","src":"4109:7:7"}],"id":3821,"name":"VariableDeclaration","src":"4109:16:7"}],"id":3822,"name":"ParameterList","src":"4108:18:7"},{"children":[{"attributes":{"constant":false,"name":"","scope":3831,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":3823,"name":"ElementaryTypeName","src":"4148:4:7"}],"id":3824,"name":"VariableDeclaration","src":"4148:4:7"}],"id":3825,"name":"ParameterList","src":"4147:6:7"},{"children":[{"attributes":{"functionReturnParameters":3825},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3705,"type":"mapping(address => bool)","value":"_isController"},"id":3826,"name":"Identifier","src":"4171:13:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3821,"type":"address","value":"_account"},"id":3827,"name":"Identifier","src":"4185:8:7"}],"id":3828,"name":"IndexAccess","src":"4171:23:7"}],"id":3829,"name":"Return","src":"4164:30:7"}],"id":3830,"name":"Block","src":"4154:47:7"}],"id":3831,"name":"FunctionDefinition","src":"4087:114:7"},{"attributes":{"constant":false,"documentation":"@notice Internal-only function that adds a new admin.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_addAdmin","payable":false,"scope":4014,"stateMutability":"nonpayable","superFunction":null,"visibility":"private"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":3885,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3832,"name":"ElementaryTypeName","src":"4288:7:7"}],"id":3833,"name":"VariableDeclaration","src":"4288:16:7"}],"id":3834,"name":"ParameterList","src":"4287:18:7"},{"attributes":{"parameters":[null]},"children":[],"id":3835,"name":"ParameterList","src":"4314:0:7"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_491ef411eef1615ecf908753bd22ae846aac933d79b0327335a18e3988db6215","typeString":"literal_string \"provided account is already an admin\""}],"overloadedDeclarations":[4032,4033],"referencedDeclaration":4033,"type":"function (bool,string memory) pure","value":"require"},"id":3836,"name":"Identifier","src":"4324:7:7"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3699,"type":"mapping(address => bool)","value":"_isAdmin"},"id":3837,"name":"Identifier","src":"4333:8:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3833,"type":"address","value":"_account"},"id":3838,"name":"Identifier","src":"4342:8:7"}],"id":3839,"name":"IndexAccess","src":"4333:18:7"}],"id":3840,"name":"UnaryOperation","src":"4332:19:7"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e7420697320616c726561647920616e2061646d696e","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is already an admin\"","value":"provided account is already an admin"},"id":3841,"name":"Literal","src":"4353:38:7"}],"id":3842,"name":"FunctionCall","src":"4324:68:7"}],"id":3843,"name":"ExpressionStatement","src":"4324:68:7"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ea5e43d1c86e3916e6efb6c5ad4a915069293195e26cfb0847e731b480c61b69","typeString":"literal_string \"provided account is already a controller\""}],"overloadedDeclarations":[4032,4033],"referencedDeclaration":4033,"type":"function (bool,string memory) pure","value":"require"},"id":3844,"name":"Identifier","src":"4402:7:7"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3705,"type":"mapping(address => bool)","value":"_isController"},"id":3845,"name":"Identifier","src":"4411:13:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3833,"type":"address","value":"_account"},"id":3846,"name":"Identifier","src":"4425:8:7"}],"id":3847,"name":"IndexAccess","src":"4411:23:7"}],"id":3848,"name":"UnaryOperation","src":"4410:24:7"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e7420697320616c7265616479206120636f6e74726f6c6c6572","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is already a controller\"","value":"provided account is already a controller"},"id":3849,"name":"Literal","src":"4436:42:7"}],"id":3850,"name":"FunctionCall","src":"4402:77:7"}],"id":3851,"name":"ExpressionStatement","src":"4402:77:7"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_28b510b314348cd3eee423698115cd76923e2c39fff2abeefc9606aa1cd4c741","typeString":"literal_string \"provided account is already the owner\""}],"overloadedDeclarations":[4032,4033],"referencedDeclaration":4033,"type":"function (bool,string memory) pure","value":"require"},"id":3852,"name":"Identifier","src":"4489:7:7"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":3613,"type":"function (address) view returns (bool)","value":"_isOwner"},"id":3853,"name":"Identifier","src":"4498:8:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3833,"type":"address","value":"_account"},"id":3854,"name":"Identifier","src":"4507:8:7"}],"id":3855,"name":"FunctionCall","src":"4498:18:7"}],"id":3856,"name":"UnaryOperation","src":"4497:19:7"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e7420697320616c726561647920746865206f776e6572","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is already the owner\"","value":"provided account is already the owner"},"id":3857,"name":"Literal","src":"4518:39:7"}],"id":3858,"name":"FunctionCall","src":"4489:69:7"}],"id":3859,"name":"ExpressionStatement","src":"4489:69:7"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_da72d12cc1dab77bb87826430977e9a5d381ba54a70ad14cb2761e202f01ff3b","typeString":"literal_string \"provided account is the zero address\""}],"overloadedDeclarations":[4032,4033],"referencedDeclaration":4033,"type":"function (bool,string memory) pure","value":"require"},"id":3860,"name":"Identifier","src":"4568:7:7"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3833,"type":"address","value":"_account"},"id":3861,"name":"Identifier","src":"4576:8:7"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":3862,"name":"ElementaryTypeNameExpression","src":"4588:7:7"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3863,"name":"Literal","src":"4596:1:7"}],"id":3864,"name":"FunctionCall","src":"4588:10:7"}],"id":3865,"name":"BinaryOperation","src":"4576:22:7"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e7420697320746865207a65726f2061646472657373","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is the zero address\"","value":"provided account is the zero address"},"id":3866,"name":"Literal","src":"4600:38:7"}],"id":3867,"name":"FunctionCall","src":"4568:71:7"}],"id":3868,"name":"ExpressionStatement","src":"4568:71:7"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3699,"type":"mapping(address => bool)","value":"_isAdmin"},"id":3869,"name":"Identifier","src":"4649:8:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3833,"type":"address","value":"_account"},"id":3870,"name":"Identifier","src":"4658:8:7"}],"id":3871,"name":"IndexAccess","src":"4649:18:7"},{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":3872,"name":"Literal","src":"4670:4:7"}],"id":3873,"name":"Assignment","src":"4649:25:7"}],"id":3874,"name":"ExpressionStatement","src":"4649:25:7"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3701,"type":"uint256","value":"_adminCount"},"id":3875,"name":"Identifier","src":"4684:11:7"}],"id":3876,"name":"UnaryOperation","src":"4684:13:7"}],"id":3877,"name":"ExpressionStatement","src":"4684:13:7"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":3689,"type":"function (address,address)","value":"AddedAdmin"},"id":3878,"name":"Identifier","src":"4712:10:7"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4029,"type":"msg","value":"msg"},"id":3879,"name":"Identifier","src":"4723:3:7"}],"id":3880,"name":"MemberAccess","src":"4723:10:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3833,"type":"address","value":"_account"},"id":3881,"name":"Identifier","src":"4735:8:7"}],"id":3882,"name":"FunctionCall","src":"4712:32:7"}],"id":3883,"name":"EmitStatement","src":"4707:37:7"}],"id":3884,"name":"Block","src":"4314:437:7"}],"id":3885,"name":"FunctionDefinition","src":"4269:482:7"},{"attributes":{"constant":false,"documentation":"@notice Internal-only function that removes an existing admin.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_removeAdmin","payable":false,"scope":4014,"stateMutability":"nonpayable","superFunction":null,"visibility":"private"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":3913,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3886,"name":"ElementaryTypeName","src":"4850:7:7"}],"id":3887,"name":"VariableDeclaration","src":"4850:16:7"}],"id":3888,"name":"ParameterList","src":"4849:18:7"},{"attributes":{"parameters":[null]},"children":[],"id":3889,"name":"ParameterList","src":"4876:0:7"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1c739c60677de73f71e20970ace8544e82a98bdcd16e21df5754e7a2756cbedc","typeString":"literal_string \"provided account is not an admin\""}],"overloadedDeclarations":[4032,4033],"referencedDeclaration":4033,"type":"function (bool,string memory) pure","value":"require"},"id":3890,"name":"Identifier","src":"4886:7:7"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3699,"type":"mapping(address => bool)","value":"_isAdmin"},"id":3891,"name":"Identifier","src":"4894:8:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3887,"type":"address","value":"_account"},"id":3892,"name":"Identifier","src":"4903:8:7"}],"id":3893,"name":"IndexAccess","src":"4894:18:7"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e74206973206e6f7420616e2061646d696e","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is not an admin\"","value":"provided account is not an admin"},"id":3894,"name":"Literal","src":"4914:34:7"}],"id":3895,"name":"FunctionCall","src":"4886:63:7"}],"id":3896,"name":"ExpressionStatement","src":"4886:63:7"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3699,"type":"mapping(address => bool)","value":"_isAdmin"},"id":3897,"name":"Identifier","src":"4959:8:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3887,"type":"address","value":"_account"},"id":3898,"name":"Identifier","src":"4968:8:7"}],"id":3899,"name":"IndexAccess","src":"4959:18:7"},{"attributes":{"argumentTypes":null,"hexvalue":"66616c7365","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"false"},"id":3900,"name":"Literal","src":"4980:5:7"}],"id":3901,"name":"Assignment","src":"4959:26:7"}],"id":3902,"name":"ExpressionStatement","src":"4959:26:7"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"--","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3701,"type":"uint256","value":"_adminCount"},"id":3903,"name":"Identifier","src":"4995:11:7"}],"id":3904,"name":"UnaryOperation","src":"4995:13:7"}],"id":3905,"name":"ExpressionStatement","src":"4995:13:7"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":3695,"type":"function (address,address)","value":"RemovedAdmin"},"id":3906,"name":"Identifier","src":"5023:12:7"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4029,"type":"msg","value":"msg"},"id":3907,"name":"Identifier","src":"5036:3:7"}],"id":3908,"name":"MemberAccess","src":"5036:10:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3887,"type":"address","value":"_account"},"id":3909,"name":"Identifier","src":"5048:8:7"}],"id":3910,"name":"FunctionCall","src":"5023:34:7"}],"id":3911,"name":"EmitStatement","src":"5018:39:7"}],"id":3912,"name":"Block","src":"4876:188:7"}],"id":3913,"name":"FunctionDefinition","src":"4828:236:7"},{"attributes":{"constant":false,"documentation":"@notice Internal-only function that adds a new controller.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_addController","payable":false,"scope":4014,"stateMutability":"nonpayable","superFunction":null,"visibility":"private"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":3967,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3914,"name":"ElementaryTypeName","src":"5161:7:7"}],"id":3915,"name":"VariableDeclaration","src":"5161:16:7"}],"id":3916,"name":"ParameterList","src":"5160:18:7"},{"attributes":{"parameters":[null]},"children":[],"id":3917,"name":"ParameterList","src":"5187:0:7"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_491ef411eef1615ecf908753bd22ae846aac933d79b0327335a18e3988db6215","typeString":"literal_string \"provided account is already an admin\""}],"overloadedDeclarations":[4032,4033],"referencedDeclaration":4033,"type":"function (bool,string memory) pure","value":"require"},"id":3918,"name":"Identifier","src":"5197:7:7"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3699,"type":"mapping(address => bool)","value":"_isAdmin"},"id":3919,"name":"Identifier","src":"5206:8:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3915,"type":"address","value":"_account"},"id":3920,"name":"Identifier","src":"5215:8:7"}],"id":3921,"name":"IndexAccess","src":"5206:18:7"}],"id":3922,"name":"UnaryOperation","src":"5205:19:7"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e7420697320616c726561647920616e2061646d696e","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is already an admin\"","value":"provided account is already an admin"},"id":3923,"name":"Literal","src":"5226:38:7"}],"id":3924,"name":"FunctionCall","src":"5197:68:7"}],"id":3925,"name":"ExpressionStatement","src":"5197:68:7"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ea5e43d1c86e3916e6efb6c5ad4a915069293195e26cfb0847e731b480c61b69","typeString":"literal_string \"provided account is already a controller\""}],"overloadedDeclarations":[4032,4033],"referencedDeclaration":4033,"type":"function (bool,string memory) pure","value":"require"},"id":3926,"name":"Identifier","src":"5275:7:7"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3705,"type":"mapping(address => bool)","value":"_isController"},"id":3927,"name":"Identifier","src":"5284:13:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3915,"type":"address","value":"_account"},"id":3928,"name":"Identifier","src":"5298:8:7"}],"id":3929,"name":"IndexAccess","src":"5284:23:7"}],"id":3930,"name":"UnaryOperation","src":"5283:24:7"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e7420697320616c7265616479206120636f6e74726f6c6c6572","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is already a controller\"","value":"provided account is already a controller"},"id":3931,"name":"Literal","src":"5309:42:7"}],"id":3932,"name":"FunctionCall","src":"5275:77:7"}],"id":3933,"name":"ExpressionStatement","src":"5275:77:7"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_28b510b314348cd3eee423698115cd76923e2c39fff2abeefc9606aa1cd4c741","typeString":"literal_string \"provided account is already the owner\""}],"overloadedDeclarations":[4032,4033],"referencedDeclaration":4033,"type":"function (bool,string memory) pure","value":"require"},"id":3934,"name":"Identifier","src":"5362:7:7"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":3613,"type":"function (address) view returns (bool)","value":"_isOwner"},"id":3935,"name":"Identifier","src":"5371:8:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3915,"type":"address","value":"_account"},"id":3936,"name":"Identifier","src":"5380:8:7"}],"id":3937,"name":"FunctionCall","src":"5371:18:7"}],"id":3938,"name":"UnaryOperation","src":"5370:19:7"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e7420697320616c726561647920746865206f776e6572","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is already the owner\"","value":"provided account is already the owner"},"id":3939,"name":"Literal","src":"5391:39:7"}],"id":3940,"name":"FunctionCall","src":"5362:69:7"}],"id":3941,"name":"ExpressionStatement","src":"5362:69:7"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_da72d12cc1dab77bb87826430977e9a5d381ba54a70ad14cb2761e202f01ff3b","typeString":"literal_string \"provided account is the zero address\""}],"overloadedDeclarations":[4032,4033],"referencedDeclaration":4033,"type":"function (bool,string memory) pure","value":"require"},"id":3942,"name":"Identifier","src":"5441:7:7"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3915,"type":"address","value":"_account"},"id":3943,"name":"Identifier","src":"5449:8:7"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":3944,"name":"ElementaryTypeNameExpression","src":"5461:7:7"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3945,"name":"Literal","src":"5469:1:7"}],"id":3946,"name":"FunctionCall","src":"5461:10:7"}],"id":3947,"name":"BinaryOperation","src":"5449:22:7"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e7420697320746865207a65726f2061646472657373","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is the zero address\"","value":"provided account is the zero address"},"id":3948,"name":"Literal","src":"5473:38:7"}],"id":3949,"name":"FunctionCall","src":"5441:71:7"}],"id":3950,"name":"ExpressionStatement","src":"5441:71:7"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3705,"type":"mapping(address => bool)","value":"_isController"},"id":3951,"name":"Identifier","src":"5522:13:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3915,"type":"address","value":"_account"},"id":3952,"name":"Identifier","src":"5536:8:7"}],"id":3953,"name":"IndexAccess","src":"5522:23:7"},{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":3954,"name":"Literal","src":"5548:4:7"}],"id":3955,"name":"Assignment","src":"5522:30:7"}],"id":3956,"name":"ExpressionStatement","src":"5522:30:7"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3707,"type":"uint256","value":"_controllerCount"},"id":3957,"name":"Identifier","src":"5562:16:7"}],"id":3958,"name":"UnaryOperation","src":"5562:18:7"}],"id":3959,"name":"ExpressionStatement","src":"5562:18:7"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":3677,"type":"function (address,address)","value":"AddedController"},"id":3960,"name":"Identifier","src":"5595:15:7"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4029,"type":"msg","value":"msg"},"id":3961,"name":"Identifier","src":"5611:3:7"}],"id":3962,"name":"MemberAccess","src":"5611:10:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3915,"type":"address","value":"_account"},"id":3963,"name":"Identifier","src":"5623:8:7"}],"id":3964,"name":"FunctionCall","src":"5595:37:7"}],"id":3965,"name":"EmitStatement","src":"5590:42:7"}],"id":3966,"name":"Block","src":"5187:452:7"}],"id":3967,"name":"FunctionDefinition","src":"5137:502:7"},{"attributes":{"constant":false,"documentation":"@notice Internal-only function that removes an existing controller.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_removeController","payable":false,"scope":4014,"stateMutability":"nonpayable","superFunction":null,"visibility":"private"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":3995,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3968,"name":"ElementaryTypeName","src":"5748:7:7"}],"id":3969,"name":"VariableDeclaration","src":"5748:16:7"}],"id":3970,"name":"ParameterList","src":"5747:18:7"},{"attributes":{"parameters":[null]},"children":[],"id":3971,"name":"ParameterList","src":"5774:0:7"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_61b6700985eb6a295850095b1dc6d25862c09fd9ea7ce39c0e5f303dfe8ed582","typeString":"literal_string \"provided account is not a controller\""}],"overloadedDeclarations":[4032,4033],"referencedDeclaration":4033,"type":"function (bool,string memory) pure","value":"require"},"id":3972,"name":"Identifier","src":"5784:7:7"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3705,"type":"mapping(address => bool)","value":"_isController"},"id":3973,"name":"Identifier","src":"5792:13:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3969,"type":"address","value":"_account"},"id":3974,"name":"Identifier","src":"5806:8:7"}],"id":3975,"name":"IndexAccess","src":"5792:23:7"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e74206973206e6f74206120636f6e74726f6c6c6572","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is not a controller\"","value":"provided account is not a controller"},"id":3976,"name":"Literal","src":"5817:38:7"}],"id":3977,"name":"FunctionCall","src":"5784:72:7"}],"id":3978,"name":"ExpressionStatement","src":"5784:72:7"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3705,"type":"mapping(address => bool)","value":"_isController"},"id":3979,"name":"Identifier","src":"5866:13:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3969,"type":"address","value":"_account"},"id":3980,"name":"Identifier","src":"5880:8:7"}],"id":3981,"name":"IndexAccess","src":"5866:23:7"},{"attributes":{"argumentTypes":null,"hexvalue":"66616c7365","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"false"},"id":3982,"name":"Literal","src":"5892:5:7"}],"id":3983,"name":"Assignment","src":"5866:31:7"}],"id":3984,"name":"ExpressionStatement","src":"5866:31:7"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"--","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3707,"type":"uint256","value":"_controllerCount"},"id":3985,"name":"Identifier","src":"5907:16:7"}],"id":3986,"name":"UnaryOperation","src":"5907:18:7"}],"id":3987,"name":"ExpressionStatement","src":"5907:18:7"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":3683,"type":"function (address,address)","value":"RemovedController"},"id":3988,"name":"Identifier","src":"5940:17:7"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4029,"type":"msg","value":"msg"},"id":3989,"name":"Identifier","src":"5958:3:7"}],"id":3990,"name":"MemberAccess","src":"5958:10:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3969,"type":"address","value":"_account"},"id":3991,"name":"Identifier","src":"5970:8:7"}],"id":3992,"name":"FunctionCall","src":"5940:39:7"}],"id":3993,"name":"EmitStatement","src":"5935:44:7"}],"id":3994,"name":"Block","src":"5774:212:7"}],"id":3995,"name":"FunctionDefinition","src":"5721:265:7"},{"attributes":{"constant":false,"documentation":"/ @notice Withdraw tokens from the smart contract to the specified account.","implemented":true,"isConstructor":false,"name":"claim","payable":false,"scope":4014,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_to","scope":4013,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3996,"name":"ElementaryTypeName","src":"6090:7:7"}],"id":3997,"name":"VariableDeclaration","src":"6090:11:7"},{"attributes":{"constant":false,"name":"_asset","scope":4013,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3998,"name":"ElementaryTypeName","src":"6103:7:7"}],"id":3999,"name":"VariableDeclaration","src":"6103:14:7"},{"attributes":{"constant":false,"name":"_amount","scope":4013,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4000,"name":"ElementaryTypeName","src":"6119:4:7"}],"id":4001,"name":"VariableDeclaration","src":"6119:12:7"}],"id":4002,"name":"ParameterList","src":"6089:43:7"},{"attributes":{"parameters":[null]},"children":[],"id":4005,"name":"ParameterList","src":"6152:0:7"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3516,"type":"modifier ()","value":"onlyOwner"},"id":4003,"name":"Identifier","src":"6142:9:7"}],"id":4004,"name":"ModifierInvocation","src":"6142:9:7"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":3400,"type":"function (address,address,uint256)","value":"_claim"},"id":4006,"name":"Identifier","src":"6162:6:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3997,"type":"address","value":"_to"},"id":4007,"name":"Identifier","src":"6169:3:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3999,"type":"address","value":"_asset"},"id":4008,"name":"Identifier","src":"6174:6:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4001,"type":"uint256","value":"_amount"},"id":4009,"name":"Identifier","src":"6182:7:7"}],"id":4010,"name":"FunctionCall","src":"6162:28:7"}],"id":4011,"name":"ExpressionStatement","src":"6162:28:7"}],"id":4012,"name":"Block","src":"6152:45:7"}],"id":4013,"name":"FunctionDefinition","src":"6075:122:7"}],"id":4014,"name":"ContractDefinition","src":"1361:4838:7"}],"id":4015,"name":"SourceUnit","src":"770:5430:7"}},"internals/ensResolvable.sol":{"AST":{"attributes":{"absolutePath":"internals/ensResolvable.sol","exportedSymbols":{"ENSResolvable":[180]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".25"]},"id":131,"name":"PragmaDirective","src":"773:24:8"},{"attributes":{"SourceUnit":441,"absolutePath":"externals/ens/ENS.sol","file":"../externals/ens/ENS.sol","scope":181,"symbolAliases":[null],"unitAlias":""},"id":132,"name":"ImportDirective","src":"799:34:8"},{"attributes":{"SourceUnit":949,"absolutePath":"externals/ens/PublicResolver.sol","file":"../externals/ens/PublicResolver.sol","scope":181,"symbolAliases":[null],"unitAlias":""},"id":133,"name":"ImportDirective","src":"834:45:8"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"contract","documentation":"@title ENSResolvable - Ethereum Name Service Resolver\n@notice contract should be used to get an address for an ENS nodeHash","fullyImplemented":true,"linearizedBaseContracts":[180],"name":"ENSResolvable","scope":181},"children":[{"attributes":{"constant":false,"name":"_ens","scope":180,"stateVariable":true,"storageLocation":"default","type":"contract ENS","value":null,"visibility":"private"},"children":[{"attributes":{"contractScope":null,"name":"ENS","referencedDeclaration":440,"type":"contract ENS"},"id":134,"name":"UserDefinedTypeName","src":"1084:3:8"}],"id":135,"name":"VariableDeclaration","src":"1084:16:8"},{"attributes":{"constant":false,"name":"_ensRegistry","scope":180,"stateVariable":true,"storageLocation":"default","type":"address","value":null,"visibility":"private"},"children":[{"attributes":{"name":"address","type":"address"},"id":136,"name":"ElementaryTypeName","src":"1179:7:8"}],"id":137,"name":"VariableDeclaration","src":"1179:28:8"},{"attributes":{"constant":false,"documentation":"@param _ensReg_ is the ENS registry used","implemented":true,"isConstructor":true,"modifiers":[null],"name":"","payable":false,"scope":180,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_ensReg_","scope":153,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":138,"name":"ElementaryTypeName","src":"1275:7:8"}],"id":139,"name":"VariableDeclaration","src":"1275:16:8"}],"id":140,"name":"ParameterList","src":"1274:18:8"},{"attributes":{"parameters":[null]},"children":[],"id":141,"name":"ParameterList","src":"1302:0:8"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":137,"type":"address","value":"_ensRegistry"},"id":142,"name":"Identifier","src":"1312:12:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":139,"type":"address","value":"_ensReg_"},"id":143,"name":"Identifier","src":"1327:8:8"}],"id":144,"name":"Assignment","src":"1312:23:8"}],"id":145,"name":"ExpressionStatement","src":"1312:23:8"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"contract ENS"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":135,"type":"contract ENS","value":"_ens"},"id":146,"name":"Identifier","src":"1345:4:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract ENS","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":440,"type":"type(contract ENS)","value":"ENS"},"id":147,"name":"Identifier","src":"1352:3:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":137,"type":"address","value":"_ensRegistry"},"id":148,"name":"Identifier","src":"1356:12:8"}],"id":149,"name":"FunctionCall","src":"1352:17:8"}],"id":150,"name":"Assignment","src":"1345:24:8"}],"id":151,"name":"ExpressionStatement","src":"1345:24:8"}],"id":152,"name":"Block","src":"1302:74:8"}],"id":153,"name":"FunctionDefinition","src":"1263:113:8"},{"attributes":{"constant":true,"documentation":"@notice this is used to that one can observe which ENS registry is being used","implemented":true,"isConstructor":false,"modifiers":[null],"name":"ensRegistry","payable":false,"scope":180,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":154,"name":"ParameterList","src":"1488:2:8"},{"children":[{"attributes":{"constant":false,"name":"","scope":161,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":155,"name":"ElementaryTypeName","src":"1514:7:8"}],"id":156,"name":"VariableDeclaration","src":"1514:7:8"}],"id":157,"name":"ParameterList","src":"1513:9:8"},{"children":[{"attributes":{"functionReturnParameters":157},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":137,"type":"address","value":"_ensRegistry"},"id":158,"name":"Identifier","src":"1540:12:8"}],"id":159,"name":"Return","src":"1533:19:8"}],"id":160,"name":"Block","src":"1523:36:8"}],"id":161,"name":"FunctionDefinition","src":"1468:91:8"},{"attributes":{"constant":true,"documentation":"@notice helper function used to get the address of a node Hash\n @param _nodeHash of the ENS entry that needs resolving\n @return the address of the said nodeHash","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_ensResolve","payable":false,"scope":180,"stateMutability":"view","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_nodeHash","scope":179,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":162,"name":"ElementaryTypeName","src":"1769:7:8"}],"id":163,"name":"VariableDeclaration","src":"1769:17:8"}],"id":164,"name":"ParameterList","src":"1768:19:8"},{"children":[{"attributes":{"constant":false,"name":"","scope":179,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":165,"name":"ElementaryTypeName","src":"1811:7:8"}],"id":166,"name":"VariableDeclaration","src":"1811:7:8"}],"id":167,"name":"ParameterList","src":"1810:9:8"},{"children":[{"attributes":{"functionReturnParameters":167},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"addr","referencedDeclaration":907,"type":"function (bytes32) view external returns (address)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract PublicResolver","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":948,"type":"type(contract PublicResolver)","value":"PublicResolver"},"id":168,"name":"Identifier","src":"1837:14:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"resolver","referencedDeclaration":432,"type":"function (bytes32) view external returns (address)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":135,"type":"contract ENS","value":"_ens"},"id":169,"name":"Identifier","src":"1852:4:8"}],"id":170,"name":"MemberAccess","src":"1852:13:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":163,"type":"bytes32","value":"_nodeHash"},"id":171,"name":"Identifier","src":"1866:9:8"}],"id":172,"name":"FunctionCall","src":"1852:24:8"}],"id":173,"name":"FunctionCall","src":"1837:40:8"}],"id":174,"name":"MemberAccess","src":"1837:45:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":163,"type":"bytes32","value":"_nodeHash"},"id":175,"name":"Identifier","src":"1883:9:8"}],"id":176,"name":"FunctionCall","src":"1837:56:8"}],"id":177,"name":"Return","src":"1830:63:8"}],"id":178,"name":"Block","src":"1820:80:8"}],"id":179,"name":"FunctionDefinition","src":"1748:152:8"}],"id":180,"name":"ContractDefinition","src":"1012:891:8"}],"id":181,"name":"SourceUnit","src":"773:1131:8"}},"internals/ownable.sol":{"AST":{"attributes":{"absolutePath":"internals/ownable.sol","exportedSymbols":{"Ownable":[3614]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".25"]},"id":3459,"name":"PragmaDirective","src":"767:24:9"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"contract","documentation":"@title Ownable has an owner address and provides basic authorization control functions.\n This contract is modified version of the MIT OpenZepplin Ownable contract\n This contract allows for the transferOwnership operation to be made impossible\n https://github.com/OpenZeppelin/openzeppelin-solidity/blob/master/contracts/ownership/Ownable.sol","fullyImplemented":true,"linearizedBaseContracts":[3614],"name":"Ownable","scope":3615},"children":[{"attributes":{"anonymous":false,"documentation":null,"name":"TransferredOwnership"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_from","scope":3465,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3460,"name":"ElementaryTypeName","src":"1199:7:9"}],"id":3461,"name":"VariableDeclaration","src":"1199:13:9"},{"attributes":{"constant":false,"indexed":false,"name":"_to","scope":3465,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3462,"name":"ElementaryTypeName","src":"1214:7:9"}],"id":3463,"name":"VariableDeclaration","src":"1214:11:9"}],"id":3464,"name":"ParameterList","src":"1198:28:9"}],"id":3465,"name":"EventDefinition","src":"1172:55:9"},{"attributes":{"anonymous":false,"documentation":null,"name":"LockedOwnership"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_locked","scope":3469,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3466,"name":"ElementaryTypeName","src":"1254:7:9"}],"id":3467,"name":"VariableDeclaration","src":"1254:15:9"}],"id":3468,"name":"ParameterList","src":"1253:17:9"}],"id":3469,"name":"EventDefinition","src":"1232:39:9"},{"attributes":{"constant":false,"name":"_owner","scope":3614,"stateVariable":true,"storageLocation":"default","type":"address","value":null,"visibility":"private"},"children":[{"attributes":{"name":"address","type":"address"},"id":3470,"name":"ElementaryTypeName","src":"1277:7:9"}],"id":3471,"name":"VariableDeclaration","src":"1277:22:9"},{"attributes":{"constant":false,"name":"_isTransferable","scope":3614,"stateVariable":true,"storageLocation":"default","type":"bool","value":null,"visibility":"private"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":3472,"name":"ElementaryTypeName","src":"1305:4:9"}],"id":3473,"name":"VariableDeclaration","src":"1305:28:9"},{"attributes":{"constant":false,"documentation":"@notice Constructor sets the original owner of the contract and whether or not it is one time transferable.","implemented":true,"isConstructor":true,"modifiers":[null],"name":"","payable":false,"scope":3614,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account_","scope":3504,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3474,"name":"ElementaryTypeName","src":"1468:7:9"}],"id":3475,"name":"VariableDeclaration","src":"1468:17:9"},{"attributes":{"constant":false,"name":"_transferable_","scope":3504,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":3476,"name":"ElementaryTypeName","src":"1487:4:9"}],"id":3477,"name":"VariableDeclaration","src":"1487:19:9"}],"id":3478,"name":"ParameterList","src":"1467:40:9"},{"attributes":{"parameters":[null]},"children":[],"id":3479,"name":"ParameterList","src":"1517:0:9"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3471,"type":"address","value":"_owner"},"id":3480,"name":"Identifier","src":"1527:6:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3475,"type":"address","value":"_account_"},"id":3481,"name":"Identifier","src":"1536:9:9"}],"id":3482,"name":"Assignment","src":"1527:18:9"}],"id":3483,"name":"ExpressionStatement","src":"1527:18:9"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3473,"type":"bool","value":"_isTransferable"},"id":3484,"name":"Identifier","src":"1555:15:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3477,"type":"bool","value":"_transferable_"},"id":3485,"name":"Identifier","src":"1573:14:9"}],"id":3486,"name":"Assignment","src":"1555:32:9"}],"id":3487,"name":"ExpressionStatement","src":"1555:32:9"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3473,"type":"bool","value":"_isTransferable"},"id":3488,"name":"Identifier","src":"1671:15:9"}],"id":3489,"name":"UnaryOperation","src":"1670:16:9"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":3469,"type":"function (address)","value":"LockedOwnership"},"id":3490,"name":"Identifier","src":"1707:15:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3475,"type":"address","value":"_account_"},"id":3491,"name":"Identifier","src":"1723:9:9"}],"id":3492,"name":"FunctionCall","src":"1707:26:9"}],"id":3493,"name":"EmitStatement","src":"1702:31:9"}],"id":3494,"name":"Block","src":"1688:56:9"}],"id":3495,"name":"IfStatement","src":"1666:78:9"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":3465,"type":"function (address,address)","value":"TransferredOwnership"},"id":3496,"name":"Identifier","src":"1758:20:9"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":3497,"name":"ElementaryTypeNameExpression","src":"1779:7:9"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3498,"name":"Literal","src":"1787:1:9"}],"id":3499,"name":"FunctionCall","src":"1779:10:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3475,"type":"address","value":"_account_"},"id":3500,"name":"Identifier","src":"1791:9:9"}],"id":3501,"name":"FunctionCall","src":"1758:43:9"}],"id":3502,"name":"EmitStatement","src":"1753:48:9"}],"id":3503,"name":"Block","src":"1517:291:9"}],"id":3504,"name":"FunctionDefinition","src":"1456:352:9"},{"attributes":{"documentation":"@notice Reverts if called by any account other than the owner.","name":"onlyOwner","visibility":"internal"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":3505,"name":"ParameterList","src":"1903:2:9"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_96d7cc6c06f3d4101b2a14e4ad2906b79dc824ab8a44b63e774a71d2b9c7abd2","typeString":"literal_string \"sender is not an owner\""}],"overloadedDeclarations":[4032,4033],"referencedDeclaration":4033,"type":"function (bool,string memory) pure","value":"require"},"id":3506,"name":"Identifier","src":"1916:7:9"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":3613,"type":"function (address) view returns (bool)","value":"_isOwner"},"id":3507,"name":"Identifier","src":"1924:8:9"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4029,"type":"msg","value":"msg"},"id":3508,"name":"Identifier","src":"1933:3:9"}],"id":3509,"name":"MemberAccess","src":"1933:10:9"}],"id":3510,"name":"FunctionCall","src":"1924:20:9"},{"attributes":{"argumentTypes":null,"hexvalue":"73656e646572206973206e6f7420616e206f776e6572","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"sender is not an owner\"","value":"sender is not an owner"},"id":3511,"name":"Literal","src":"1946:24:9"}],"id":3512,"name":"FunctionCall","src":"1916:55:9"}],"id":3513,"name":"ExpressionStatement","src":"1916:55:9"},{"id":3514,"name":"PlaceholderStatement","src":"1981:1:9"}],"id":3515,"name":"Block","src":"1906:83:9"}],"id":3516,"name":"ModifierDefinition","src":"1885:104:9"},{"attributes":{"constant":false,"documentation":"@notice Allows the current owner to transfer control of the contract to a new address.\n @param _account address to transfer ownership to.\n @param _transferable indicates whether to keep the ownership transferable.","implemented":true,"isConstructor":false,"name":"transferOwnership","payable":false,"scope":3614,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":3561,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3517,"name":"ElementaryTypeName","src":"2258:7:9"}],"id":3518,"name":"VariableDeclaration","src":"2258:16:9"},{"attributes":{"constant":false,"name":"_transferable","scope":3561,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":3519,"name":"ElementaryTypeName","src":"2276:4:9"}],"id":3520,"name":"VariableDeclaration","src":"2276:18:9"}],"id":3521,"name":"ParameterList","src":"2257:38:9"},{"attributes":{"parameters":[null]},"children":[],"id":3524,"name":"ParameterList","src":"2315:0:9"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3516,"type":"modifier ()","value":"onlyOwner"},"id":3522,"name":"Identifier","src":"2305:9:9"}],"id":3523,"name":"ModifierInvocation","src":"2305:9:9"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b2967f1eb3e333ead270a5eb332284149554452f916a981f27e70894d40a893f","typeString":"literal_string \"ownership is not transferable\""}],"overloadedDeclarations":[4032,4033],"referencedDeclaration":4033,"type":"function (bool,string memory) pure","value":"require"},"id":3525,"name":"Identifier","src":"2380:7:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3473,"type":"bool","value":"_isTransferable"},"id":3526,"name":"Identifier","src":"2388:15:9"},{"attributes":{"argumentTypes":null,"hexvalue":"6f776e657273686970206973206e6f74207472616e7366657261626c65","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"ownership is not transferable\"","value":"ownership is not transferable"},"id":3527,"name":"Literal","src":"2405:31:9"}],"id":3528,"name":"FunctionCall","src":"2380:57:9"}],"id":3529,"name":"ExpressionStatement","src":"2380:57:9"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_be619f073d6b85c603c617050d1729f1cf3b31bf6ae5ae03f35765577d9bb6c8","typeString":"literal_string \"owner cannot be set to zero address\""}],"overloadedDeclarations":[4032,4033],"referencedDeclaration":4033,"type":"function (bool,string memory) pure","value":"require"},"id":3530,"name":"Identifier","src":"2510:7:9"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3518,"type":"address","value":"_account"},"id":3531,"name":"Identifier","src":"2518:8:9"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":3532,"name":"ElementaryTypeNameExpression","src":"2530:7:9"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3533,"name":"Literal","src":"2538:1:9"}],"id":3534,"name":"FunctionCall","src":"2530:10:9"}],"id":3535,"name":"BinaryOperation","src":"2518:22:9"},{"attributes":{"argumentTypes":null,"hexvalue":"6f776e65722063616e6e6f742062652073657420746f207a65726f2061646472657373","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"owner cannot be set to zero address\"","value":"owner cannot be set to zero address"},"id":3536,"name":"Literal","src":"2542:37:9"}],"id":3537,"name":"FunctionCall","src":"2510:70:9"}],"id":3538,"name":"ExpressionStatement","src":"2510:70:9"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3473,"type":"bool","value":"_isTransferable"},"id":3539,"name":"Identifier","src":"2665:15:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3520,"type":"bool","value":"_transferable"},"id":3540,"name":"Identifier","src":"2683:13:9"}],"id":3541,"name":"Assignment","src":"2665:31:9"}],"id":3542,"name":"ExpressionStatement","src":"2665:31:9"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3520,"type":"bool","value":"_transferable"},"id":3543,"name":"Identifier","src":"2780:13:9"}],"id":3544,"name":"UnaryOperation","src":"2779:14:9"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":3469,"type":"function (address)","value":"LockedOwnership"},"id":3545,"name":"Identifier","src":"2814:15:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3518,"type":"address","value":"_account"},"id":3546,"name":"Identifier","src":"2830:8:9"}],"id":3547,"name":"FunctionCall","src":"2814:25:9"}],"id":3548,"name":"EmitStatement","src":"2809:30:9"}],"id":3549,"name":"Block","src":"2795:55:9"}],"id":3550,"name":"IfStatement","src":"2775:75:9"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":3465,"type":"function (address,address)","value":"TransferredOwnership"},"id":3551,"name":"Identifier","src":"2910:20:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3471,"type":"address","value":"_owner"},"id":3552,"name":"Identifier","src":"2931:6:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3518,"type":"address","value":"_account"},"id":3553,"name":"Identifier","src":"2939:8:9"}],"id":3554,"name":"FunctionCall","src":"2910:38:9"}],"id":3555,"name":"EmitStatement","src":"2905:43:9"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3471,"type":"address","value":"_owner"},"id":3556,"name":"Identifier","src":"3008:6:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3518,"type":"address","value":"_account"},"id":3557,"name":"Identifier","src":"3017:8:9"}],"id":3558,"name":"Assignment","src":"3008:17:9"}],"id":3559,"name":"ExpressionStatement","src":"3008:17:9"}],"id":3560,"name":"Block","src":"2315:717:9"}],"id":3561,"name":"FunctionDefinition","src":"2231:801:9"},{"attributes":{"constant":true,"documentation":"@notice check if the ownership is transferable.\n @return true if the ownership is transferable.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"isTransferable","payable":false,"scope":3614,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":3562,"name":"ParameterList","src":"3172:2:9"},{"children":[{"attributes":{"constant":false,"name":"","scope":3569,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":3563,"name":"ElementaryTypeName","src":"3198:4:9"}],"id":3564,"name":"VariableDeclaration","src":"3198:4:9"}],"id":3565,"name":"ParameterList","src":"3197:6:9"},{"children":[{"attributes":{"functionReturnParameters":3565},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3473,"type":"bool","value":"_isTransferable"},"id":3566,"name":"Identifier","src":"3221:15:9"}],"id":3567,"name":"Return","src":"3214:22:9"}],"id":3568,"name":"Block","src":"3204:39:9"}],"id":3569,"name":"FunctionDefinition","src":"3149:94:9"},{"attributes":{"constant":false,"documentation":"@notice Allows the current owner to relinquish control of the contract.\n @dev Renouncing to ownership will leave the contract without an owner and unusable.\n @dev It will not be possible to call the functions with the `onlyOwner` modifier anymore.","implemented":true,"isConstructor":false,"name":"renounceOwnership","payable":false,"scope":3614,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":3570,"name":"ParameterList","src":"3545:2:9"},{"attributes":{"parameters":[null]},"children":[],"id":3573,"name":"ParameterList","src":"3567:0:9"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3516,"type":"modifier ()","value":"onlyOwner"},"id":3571,"name":"Identifier","src":"3557:9:9"}],"id":3572,"name":"ModifierInvocation","src":"3557:9:9"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b2967f1eb3e333ead270a5eb332284149554452f916a981f27e70894d40a893f","typeString":"literal_string \"ownership is not transferable\""}],"overloadedDeclarations":[4032,4033],"referencedDeclaration":4033,"type":"function (bool,string memory) pure","value":"require"},"id":3574,"name":"Identifier","src":"3632:7:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3473,"type":"bool","value":"_isTransferable"},"id":3575,"name":"Identifier","src":"3640:15:9"},{"attributes":{"argumentTypes":null,"hexvalue":"6f776e657273686970206973206e6f74207472616e7366657261626c65","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"ownership is not transferable\"","value":"ownership is not transferable"},"id":3576,"name":"Literal","src":"3657:31:9"}],"id":3577,"name":"FunctionCall","src":"3632:57:9"}],"id":3578,"name":"ExpressionStatement","src":"3632:57:9"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3471,"type":"address","value":"_owner"},"id":3579,"name":"Identifier","src":"3743:6:9"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":3580,"name":"ElementaryTypeNameExpression","src":"3752:7:9"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3581,"name":"Literal","src":"3760:1:9"}],"id":3582,"name":"FunctionCall","src":"3752:10:9"}],"id":3583,"name":"Assignment","src":"3743:19:9"}],"id":3584,"name":"ExpressionStatement","src":"3743:19:9"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":3465,"type":"function (address,address)","value":"TransferredOwnership"},"id":3585,"name":"Identifier","src":"3778:20:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3471,"type":"address","value":"_owner"},"id":3586,"name":"Identifier","src":"3799:6:9"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":3587,"name":"ElementaryTypeNameExpression","src":"3807:7:9"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3588,"name":"Literal","src":"3815:1:9"}],"id":3589,"name":"FunctionCall","src":"3807:10:9"}],"id":3590,"name":"FunctionCall","src":"3778:40:9"}],"id":3591,"name":"EmitStatement","src":"3773:45:9"}],"id":3592,"name":"Block","src":"3567:258:9"}],"id":3593,"name":"FunctionDefinition","src":"3519:306:9"},{"attributes":{"constant":true,"documentation":"@notice Find out owner address\n @return address of the owner.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"owner","payable":false,"scope":3614,"stateMutability":"view","superFunction":null,"visibility":"public"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":3594,"name":"ParameterList","src":"3922:2:9"},{"children":[{"attributes":{"constant":false,"name":"","scope":3601,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3595,"name":"ElementaryTypeName","src":"3946:7:9"}],"id":3596,"name":"VariableDeclaration","src":"3946:7:9"}],"id":3597,"name":"ParameterList","src":"3945:9:9"},{"children":[{"attributes":{"functionReturnParameters":3597},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3471,"type":"address","value":"_owner"},"id":3598,"name":"Identifier","src":"3972:6:9"}],"id":3599,"name":"Return","src":"3965:13:9"}],"id":3600,"name":"Block","src":"3955:30:9"}],"id":3601,"name":"FunctionDefinition","src":"3908:77:9"},{"attributes":{"constant":true,"documentation":"@notice Check if owner address\n @return true if sender is the owner of the contract.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_isOwner","payable":false,"scope":3614,"stateMutability":"view","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_address","scope":3613,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3602,"name":"ElementaryTypeName","src":"4109:7:9"}],"id":3603,"name":"VariableDeclaration","src":"4109:16:9"}],"id":3604,"name":"ParameterList","src":"4108:18:9"},{"children":[{"attributes":{"constant":false,"name":"","scope":3613,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":3605,"name":"ElementaryTypeName","src":"4150:4:9"}],"id":3606,"name":"VariableDeclaration","src":"4150:4:9"}],"id":3607,"name":"ParameterList","src":"4149:6:9"},{"children":[{"attributes":{"functionReturnParameters":3607},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3603,"type":"address","value":"_address"},"id":3608,"name":"Identifier","src":"4173:8:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3471,"type":"address","value":"_owner"},"id":3609,"name":"Identifier","src":"4185:6:9"}],"id":3610,"name":"BinaryOperation","src":"4173:18:9"}],"id":3611,"name":"Return","src":"4166:25:9"}],"id":3612,"name":"Block","src":"4156:42:9"}],"id":3613,"name":"FunctionDefinition","src":"4091:107:9"}],"id":3614,"name":"ContractDefinition","src":"1149:3051:9"}],"id":3615,"name":"SourceUnit","src":"767:3434:9"}},"internals/tokenWhitelist.sol":{"AST":{"attributes":{"absolutePath":"internals/tokenWhitelist.sol","exportedSymbols":{"ITokenWhitelist":[1012],"TokenWhitelist":[1525]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".25"]},"id":950,"name":"PragmaDirective","src":"774:24:10"},{"attributes":{"SourceUnit":3615,"absolutePath":"internals/ownable.sol","file":"./ownable.sol","scope":1526,"symbolAliases":[null],"unitAlias":""},"id":951,"name":"ImportDirective","src":"800:23:10"},{"attributes":{"SourceUnit":3458,"absolutePath":"internals/controllable.sol","file":"./controllable.sol","scope":1526,"symbolAliases":[null],"unitAlias":""},"id":952,"name":"ImportDirective","src":"824:28:10"},{"attributes":{"SourceUnit":3402,"absolutePath":"internals/claimable.sol","file":"./claimable.sol","scope":1526,"symbolAliases":[null],"unitAlias":""},"id":953,"name":"ImportDirective","src":"853:25:10"},{"attributes":{"SourceUnit":3349,"absolutePath":"externals/strings.sol","file":"../externals/strings.sol","scope":1526,"symbolAliases":[null],"unitAlias":""},"id":954,"name":"ImportDirective","src":"879:34:10"},{"attributes":{"SourceUnit":1654,"absolutePath":"externals/SafeMath.sol","file":"../externals/SafeMath.sol","scope":1526,"symbolAliases":[null],"unitAlias":""},"id":955,"name":"ImportDirective","src":"914:35:10"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"interface","documentation":"@title The ITokenWhitelist interface provides access to a whitelist of tokens.","fullyImplemented":false,"linearizedBaseContracts":[1012],"name":"ITokenWhitelist","scope":1526},"children":[{"attributes":{"body":null,"constant":true,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"getTokenInfo","payable":false,"scope":1012,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"","scope":974,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":956,"name":"ElementaryTypeName","src":"1088:7:10"}],"id":957,"name":"VariableDeclaration","src":"1088:7:10"}],"id":958,"name":"ParameterList","src":"1087:9:10"},{"children":[{"attributes":{"constant":false,"name":"","scope":974,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":959,"name":"ElementaryTypeName","src":"1120:6:10"}],"id":960,"name":"VariableDeclaration","src":"1120:6:10"},{"attributes":{"constant":false,"name":"","scope":974,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":961,"name":"ElementaryTypeName","src":"1128:7:10"}],"id":962,"name":"VariableDeclaration","src":"1128:7:10"},{"attributes":{"constant":false,"name":"","scope":974,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":963,"name":"ElementaryTypeName","src":"1137:7:10"}],"id":964,"name":"VariableDeclaration","src":"1137:7:10"},{"attributes":{"constant":false,"name":"","scope":974,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":965,"name":"ElementaryTypeName","src":"1146:4:10"}],"id":966,"name":"VariableDeclaration","src":"1146:4:10"},{"attributes":{"constant":false,"name":"","scope":974,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":967,"name":"ElementaryTypeName","src":"1152:4:10"}],"id":968,"name":"VariableDeclaration","src":"1152:4:10"},{"attributes":{"constant":false,"name":"","scope":974,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":969,"name":"ElementaryTypeName","src":"1158:4:10"}],"id":970,"name":"VariableDeclaration","src":"1158:4:10"},{"attributes":{"constant":false,"name":"","scope":974,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":971,"name":"ElementaryTypeName","src":"1164:7:10"}],"id":972,"name":"VariableDeclaration","src":"1164:7:10"}],"id":973,"name":"ParameterList","src":"1119:53:10"}],"id":974,"name":"FunctionDefinition","src":"1066:107:10"},{"attributes":{"body":null,"constant":true,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"getStablecoinInfo","payable":false,"scope":1012,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":975,"name":"ParameterList","src":"1204:2:10"},{"children":[{"attributes":{"constant":false,"name":"","scope":991,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":976,"name":"ElementaryTypeName","src":"1230:6:10"}],"id":977,"name":"VariableDeclaration","src":"1230:6:10"},{"attributes":{"constant":false,"name":"","scope":991,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":978,"name":"ElementaryTypeName","src":"1238:7:10"}],"id":979,"name":"VariableDeclaration","src":"1238:7:10"},{"attributes":{"constant":false,"name":"","scope":991,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":980,"name":"ElementaryTypeName","src":"1247:7:10"}],"id":981,"name":"VariableDeclaration","src":"1247:7:10"},{"attributes":{"constant":false,"name":"","scope":991,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":982,"name":"ElementaryTypeName","src":"1256:4:10"}],"id":983,"name":"VariableDeclaration","src":"1256:4:10"},{"attributes":{"constant":false,"name":"","scope":991,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":984,"name":"ElementaryTypeName","src":"1262:4:10"}],"id":985,"name":"VariableDeclaration","src":"1262:4:10"},{"attributes":{"constant":false,"name":"","scope":991,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":986,"name":"ElementaryTypeName","src":"1268:4:10"}],"id":987,"name":"VariableDeclaration","src":"1268:4:10"},{"attributes":{"constant":false,"name":"","scope":991,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":988,"name":"ElementaryTypeName","src":"1274:7:10"}],"id":989,"name":"VariableDeclaration","src":"1274:7:10"}],"id":990,"name":"ParameterList","src":"1229:53:10"}],"id":991,"name":"FunctionDefinition","src":"1178:105:10"},{"attributes":{"body":null,"constant":true,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"tokenAddressArray","payable":false,"scope":1012,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":992,"name":"ParameterList","src":"1314:2:10"},{"children":[{"attributes":{"constant":false,"name":"","scope":997,"stateVariable":false,"storageLocation":"default","type":"address[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"address[]"},"children":[{"attributes":{"name":"address","type":"address"},"id":993,"name":"ElementaryTypeName","src":"1340:7:10"}],"id":994,"name":"ArrayTypeName","src":"1340:9:10"}],"id":995,"name":"VariableDeclaration","src":"1340:9:10"}],"id":996,"name":"ParameterList","src":"1339:11:10"}],"id":997,"name":"FunctionDefinition","src":"1288:63:10"},{"attributes":{"body":null,"constant":false,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"updateTokenRate","payable":false,"scope":1012,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"","scope":1006,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":998,"name":"ElementaryTypeName","src":"1381:7:10"}],"id":999,"name":"VariableDeclaration","src":"1381:7:10"},{"attributes":{"constant":false,"name":"","scope":1006,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1000,"name":"ElementaryTypeName","src":"1390:4:10"}],"id":1001,"name":"VariableDeclaration","src":"1390:4:10"},{"attributes":{"constant":false,"name":"","scope":1006,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1002,"name":"ElementaryTypeName","src":"1396:4:10"}],"id":1003,"name":"VariableDeclaration","src":"1396:4:10"}],"id":1004,"name":"ParameterList","src":"1380:21:10"},{"attributes":{"parameters":[null]},"children":[],"id":1005,"name":"ParameterList","src":"1410:0:10"}],"id":1006,"name":"FunctionDefinition","src":"1356:55:10"},{"attributes":{"body":null,"constant":true,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"stablecoin","payable":false,"scope":1012,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":1007,"name":"ParameterList","src":"1435:2:10"},{"children":[{"attributes":{"constant":false,"name":"","scope":1011,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":1008,"name":"ElementaryTypeName","src":"1461:7:10"}],"id":1009,"name":"VariableDeclaration","src":"1461:7:10"}],"id":1010,"name":"ParameterList","src":"1460:9:10"}],"id":1011,"name":"FunctionDefinition","src":"1416:54:10"}],"id":1012,"name":"ContractDefinition","src":"1034:438:10"},{"attributes":{"contractDependencies":[180,3401,3457,3614],"contractKind":"contract","documentation":"@title TokenWhitelist stores a list of tokens used by the Consumer Contract Wallet, the Oracle, the TKN Holder and the TKN Licence Contract","fullyImplemented":true,"linearizedBaseContracts":[1525,3401,3614,3457,180],"name":"TokenWhitelist","scope":1526},"children":[{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"ENSResolvable","referencedDeclaration":180,"type":"contract ENSResolvable"},"id":1013,"name":"UserDefinedTypeName","src":"1646:13:10"}],"id":1014,"name":"InheritanceSpecifier","src":"1646:13:10"},{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"Controllable","referencedDeclaration":3457,"type":"contract Controllable"},"id":1015,"name":"UserDefinedTypeName","src":"1661:12:10"}],"id":1016,"name":"InheritanceSpecifier","src":"1661:12:10"},{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"Ownable","referencedDeclaration":3614,"type":"contract Ownable"},"id":1017,"name":"UserDefinedTypeName","src":"1675:7:10"}],"id":1018,"name":"InheritanceSpecifier","src":"1675:7:10"},{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"Claimable","referencedDeclaration":3401,"type":"contract Claimable"},"id":1019,"name":"UserDefinedTypeName","src":"1684:9:10"}],"id":1020,"name":"InheritanceSpecifier","src":"1684:9:10"},{"attributes":{"typeName":null},"children":[{"attributes":{"contractScope":null,"name":"strings","referencedDeclaration":3348,"type":"library strings"},"id":1021,"name":"UserDefinedTypeName","src":"1706:7:10"}],"id":1022,"name":"UsingForDirective","src":"1700:20:10"},{"children":[{"attributes":{"contractScope":null,"name":"SafeMath","referencedDeclaration":1653,"type":"library SafeMath"},"id":1023,"name":"UserDefinedTypeName","src":"1731:8:10"},{"attributes":{"name":"uint256","type":"uint256"},"id":1024,"name":"ElementaryTypeName","src":"1744:7:10"}],"id":1025,"name":"UsingForDirective","src":"1725:27:10"},{"attributes":{"anonymous":false,"documentation":null,"name":"UpdatedTokenRate"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_sender","scope":1033,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":1026,"name":"ElementaryTypeName","src":"1781:7:10"}],"id":1027,"name":"VariableDeclaration","src":"1781:15:10"},{"attributes":{"constant":false,"indexed":false,"name":"_token","scope":1033,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":1028,"name":"ElementaryTypeName","src":"1798:7:10"}],"id":1029,"name":"VariableDeclaration","src":"1798:14:10"},{"attributes":{"constant":false,"indexed":false,"name":"_rate","scope":1033,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1030,"name":"ElementaryTypeName","src":"1814:4:10"}],"id":1031,"name":"VariableDeclaration","src":"1814:10:10"}],"id":1032,"name":"ParameterList","src":"1780:45:10"}],"id":1033,"name":"EventDefinition","src":"1758:68:10"},{"attributes":{"anonymous":false,"documentation":null,"name":"AddedToken"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_sender","scope":1047,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":1034,"name":"ElementaryTypeName","src":"1849:7:10"}],"id":1035,"name":"VariableDeclaration","src":"1849:15:10"},{"attributes":{"constant":false,"indexed":false,"name":"_token","scope":1047,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":1036,"name":"ElementaryTypeName","src":"1866:7:10"}],"id":1037,"name":"VariableDeclaration","src":"1866:14:10"},{"attributes":{"constant":false,"indexed":false,"name":"_symbol","scope":1047,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":1038,"name":"ElementaryTypeName","src":"1882:6:10"}],"id":1039,"name":"VariableDeclaration","src":"1882:14:10"},{"attributes":{"constant":false,"indexed":false,"name":"_magnitude","scope":1047,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1040,"name":"ElementaryTypeName","src":"1898:4:10"}],"id":1041,"name":"VariableDeclaration","src":"1898:15:10"},{"attributes":{"constant":false,"indexed":false,"name":"_loadable","scope":1047,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":1042,"name":"ElementaryTypeName","src":"1915:4:10"}],"id":1043,"name":"VariableDeclaration","src":"1915:14:10"},{"attributes":{"constant":false,"indexed":false,"name":"_burnable","scope":1047,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":1044,"name":"ElementaryTypeName","src":"1931:4:10"}],"id":1045,"name":"VariableDeclaration","src":"1931:14:10"}],"id":1046,"name":"ParameterList","src":"1848:98:10"}],"id":1047,"name":"EventDefinition","src":"1832:115:10"},{"attributes":{"anonymous":false,"documentation":null,"name":"RemovedToken"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_sender","scope":1053,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":1048,"name":"ElementaryTypeName","src":"1971:7:10"}],"id":1049,"name":"VariableDeclaration","src":"1971:15:10"},{"attributes":{"constant":false,"indexed":false,"name":"_token","scope":1053,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":1050,"name":"ElementaryTypeName","src":"1988:7:10"}],"id":1051,"name":"VariableDeclaration","src":"1988:14:10"}],"id":1052,"name":"ParameterList","src":"1970:33:10"}],"id":1053,"name":"EventDefinition","src":"1952:52:10"},{"attributes":{"canonicalName":"TokenWhitelist.Token","name":"Token","scope":1525,"visibility":"public"},"children":[{"attributes":{"constant":false,"name":"symbol","scope":1068,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":1054,"name":"ElementaryTypeName","src":"2033:6:10"}],"id":1055,"name":"VariableDeclaration","src":"2033:13:10"},{"attributes":{"constant":false,"name":"magnitude","scope":1068,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1056,"name":"ElementaryTypeName","src":"2075:4:10"}],"id":1057,"name":"VariableDeclaration","src":"2075:14:10"},{"attributes":{"constant":false,"name":"rate","scope":1068,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1058,"name":"ElementaryTypeName","src":"2116:4:10"}],"id":1059,"name":"VariableDeclaration","src":"2116:9:10"},{"attributes":{"constant":false,"name":"available","scope":1068,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":1060,"name":"ElementaryTypeName","src":"2172:4:10"}],"id":1061,"name":"VariableDeclaration","src":"2172:14:10"},{"attributes":{"constant":false,"name":"loadable","scope":1068,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":1062,"name":"ElementaryTypeName","src":"2240:4:10"}],"id":1063,"name":"VariableDeclaration","src":"2240:13:10"},{"attributes":{"constant":false,"name":"burnable","scope":1068,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":1064,"name":"ElementaryTypeName","src":"2313:4:10"}],"id":1065,"name":"VariableDeclaration","src":"2313:13:10"},{"attributes":{"constant":false,"name":"lastUpdate","scope":1068,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1066,"name":"ElementaryTypeName","src":"2396:4:10"}],"id":1067,"name":"VariableDeclaration","src":"2396:15:10"}],"id":1068,"name":"StructDefinition","src":"2010:441:10"},{"attributes":{"constant":false,"name":"_tokenInfoMap","scope":1525,"stateVariable":true,"storageLocation":"default","type":"mapping(address => struct TokenWhitelist.Token)","value":null,"visibility":"private"},"children":[{"attributes":{"type":"mapping(address => struct TokenWhitelist.Token)"},"children":[{"attributes":{"name":"address","type":"address"},"id":1069,"name":"ElementaryTypeName","src":"2465:7:10"},{"attributes":{"contractScope":null,"name":"Token","referencedDeclaration":1068,"type":"struct TokenWhitelist.Token"},"id":1070,"name":"UserDefinedTypeName","src":"2476:5:10"}],"id":1071,"name":"Mapping","src":"2457:25:10"}],"id":1072,"name":"VariableDeclaration","src":"2457:47:10"},{"attributes":{"constant":false,"name":"_tokenAddressArray","scope":1525,"stateVariable":true,"storageLocation":"default","type":"address[]","value":null,"visibility":"private"},"children":[{"attributes":{"length":null,"type":"address[]"},"children":[{"attributes":{"name":"address","type":"address"},"id":1073,"name":"ElementaryTypeName","src":"2510:7:10"}],"id":1074,"name":"ArrayTypeName","src":"2510:9:10"}],"id":1075,"name":"VariableDeclaration","src":"2510:36:10"},{"attributes":{"documentation":null,"name":"onlyControllerOrOracle","visibility":"internal"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":1076,"name":"ParameterList","src":"2584:2:10"},{"children":[{"attributes":{"assignments":[1078]},"children":[{"attributes":{"constant":false,"name":"oracleAddress","scope":1098,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":1077,"name":"ElementaryTypeName","src":"2597:7:10"}],"id":1078,"name":"VariableDeclaration","src":"2597:21:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[null],"referencedDeclaration":179,"type":"function (bytes32) view returns (address)","value":"_ensResolve"},"id":1079,"name":"Identifier","src":"2621:11:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1102,"type":"bytes32","value":"_oracleNode"},"id":1080,"name":"Identifier","src":"2633:11:10"}],"id":1081,"name":"FunctionCall","src":"2621:24:10"}],"id":1082,"name":"VariableDeclarationStatement","src":"2597:48:10"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7f651a1c3852ff2a697b659eaace9616ca61af623afbb095898c910cf89ec35f","typeString":"literal_string \"either oracle or controller\""}],"overloadedDeclarations":[4032,4033],"referencedDeclaration":4033,"type":"function (bool,string memory) pure","value":"require"},"id":1083,"name":"Identifier","src":"2655:7:10"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"||","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":3456,"type":"function (address) view returns (bool)","value":"_isController"},"id":1084,"name":"Identifier","src":"2664:13:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4029,"type":"msg","value":"msg"},"id":1085,"name":"Identifier","src":"2678:3:10"}],"id":1086,"name":"MemberAccess","src":"2678:10:10"}],"id":1087,"name":"FunctionCall","src":"2664:25:10"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4029,"type":"msg","value":"msg"},"id":1088,"name":"Identifier","src":"2693:3:10"}],"id":1089,"name":"MemberAccess","src":"2693:10:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1078,"type":"address","value":"oracleAddress"},"id":1090,"name":"Identifier","src":"2707:13:10"}],"id":1091,"name":"BinaryOperation","src":"2693:27:10"}],"id":1092,"name":"BinaryOperation","src":"2664:56:10"},{"attributes":{"argumentTypes":null,"hexvalue":"656974686572206f7261636c65206f7220636f6e74726f6c6c6572","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"either oracle or controller\"","value":"either oracle or controller"},"id":1093,"name":"Literal","src":"2722:29:10"}],"id":1094,"name":"FunctionCall","src":"2655:97:10"}],"id":1095,"name":"ExpressionStatement","src":"2655:97:10"},{"id":1096,"name":"PlaceholderStatement","src":"2762:1:10"}],"id":1097,"name":"Block","src":"2587:183:10"}],"id":1098,"name":"ModifierDefinition","src":"2553:217:10"},{"attributes":{"constant":false,"name":"_stablecoin","scope":1525,"stateVariable":true,"storageLocation":"default","type":"address","value":null,"visibility":"private"},"children":[{"attributes":{"name":"address","type":"address"},"id":1099,"name":"ElementaryTypeName","src":"2819:7:10"}],"id":1100,"name":"VariableDeclaration","src":"2819:27:10"},{"attributes":{"constant":false,"name":"_oracleNode","scope":1525,"stateVariable":true,"storageLocation":"default","type":"bytes32","value":null,"visibility":"private"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":1101,"name":"ElementaryTypeName","src":"2930:7:10"}],"id":1102,"name":"VariableDeclaration","src":"2930:27:10"},{"attributes":{"constant":false,"documentation":"@notice Constructor initializes ENSResolvable, Controllable, and Ownable\n @param _oracleNameHash_ is the ENS name hash of the Oracle.\n @param _stabelcoinAddress_ is the address of the stablecoint used by the wallet","implemented":true,"isConstructor":true,"name":"","payable":false,"scope":1525,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"_ens_","scope":1136,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":1103,"name":"ElementaryTypeName","src":"3213:7:10"}],"id":1104,"name":"VariableDeclaration","src":"3213:13:10"},{"attributes":{"constant":false,"name":"_oracleNameHash_","scope":1136,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":1105,"name":"ElementaryTypeName","src":"3228:7:10"}],"id":1106,"name":"VariableDeclaration","src":"3228:24:10"},{"attributes":{"constant":false,"name":"_controllerNameHash_","scope":1136,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":1107,"name":"ElementaryTypeName","src":"3254:7:10"}],"id":1108,"name":"VariableDeclaration","src":"3254:28:10"},{"attributes":{"constant":false,"name":"_owner_","scope":1136,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":1109,"name":"ElementaryTypeName","src":"3284:7:10"}],"id":1110,"name":"VariableDeclaration","src":"3284:15:10"},{"attributes":{"constant":false,"name":"_transferable_","scope":1136,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":1111,"name":"ElementaryTypeName","src":"3301:4:10"}],"id":1112,"name":"VariableDeclaration","src":"3301:19:10"},{"attributes":{"constant":false,"name":"_stabelcoinAddress_","scope":1136,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":1113,"name":"ElementaryTypeName","src":"3322:7:10"}],"id":1114,"name":"VariableDeclaration","src":"3322:27:10"}],"id":1115,"name":"ParameterList","src":"3212:138:10"},{"attributes":{"parameters":[null]},"children":[],"id":1126,"name":"ParameterList","src":"3447:0:10"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":180,"type":"type(contract ENSResolvable)","value":"ENSResolvable"},"id":1116,"name":"Identifier","src":"3351:13:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1104,"type":"address","value":"_ens_"},"id":1117,"name":"Identifier","src":"3365:5:10"}],"id":1118,"name":"ModifierInvocation","src":"3351:20:10"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3457,"type":"type(contract Controllable)","value":"Controllable"},"id":1119,"name":"Identifier","src":"3372:12:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1108,"type":"bytes32","value":"_controllerNameHash_"},"id":1120,"name":"Identifier","src":"3385:20:10"}],"id":1121,"name":"ModifierInvocation","src":"3372:34:10"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3614,"type":"type(contract Ownable)","value":"Ownable"},"id":1122,"name":"Identifier","src":"3407:7:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1110,"type":"address","value":"_owner_"},"id":1123,"name":"Identifier","src":"3415:7:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1112,"type":"bool","value":"_transferable_"},"id":1124,"name":"Identifier","src":"3424:14:10"}],"id":1125,"name":"ModifierInvocation","src":"3407:32:10"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1102,"type":"bytes32","value":"_oracleNode"},"id":1127,"name":"Identifier","src":"3457:11:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1106,"type":"bytes32","value":"_oracleNameHash_"},"id":1128,"name":"Identifier","src":"3471:16:10"}],"id":1129,"name":"Assignment","src":"3457:30:10"}],"id":1130,"name":"ExpressionStatement","src":"3457:30:10"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1100,"type":"address","value":"_stablecoin"},"id":1131,"name":"Identifier","src":"3497:11:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1114,"type":"address","value":"_stabelcoinAddress_"},"id":1132,"name":"Identifier","src":"3511:19:10"}],"id":1133,"name":"Assignment","src":"3497:33:10"}],"id":1134,"name":"ExpressionStatement","src":"3497:33:10"}],"id":1135,"name":"Block","src":"3447:90:10"}],"id":1136,"name":"FunctionDefinition","src":"3201:336:10"},{"attributes":{"constant":false,"documentation":"@notice Add ERC20 tokens to the list of whitelisted tokens.\n @param _tokens ERC20 token contract addresses.\n @param _symbols ERC20 token names.\n @param _magnitude 10 to the power of number of decimal places used by each ERC20 token.\n @param _loadable is a bool that states whether or not a token is loadable to the TokenCard.\n @param _burnable is a bool that states whether or not a token is burnable in the TKN Holder Contract.\n @param _lastUpdate is a unit representing an ISO datetime e.g. 20180913153211","implemented":true,"isConstructor":false,"name":"addTokens","payable":false,"scope":1525,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_tokens","scope":1268,"stateVariable":false,"storageLocation":"default","type":"address[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"address[]"},"children":[{"attributes":{"name":"address","type":"address"},"id":1137,"name":"ElementaryTypeName","src":"4120:7:10"}],"id":1138,"name":"ArrayTypeName","src":"4120:9:10"}],"id":1139,"name":"VariableDeclaration","src":"4120:17:10"},{"attributes":{"constant":false,"name":"_symbols","scope":1268,"stateVariable":false,"storageLocation":"default","type":"bytes32[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"bytes32[]"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":1140,"name":"ElementaryTypeName","src":"4139:7:10"}],"id":1141,"name":"ArrayTypeName","src":"4139:9:10"}],"id":1142,"name":"VariableDeclaration","src":"4139:18:10"},{"attributes":{"constant":false,"name":"_magnitude","scope":1268,"stateVariable":false,"storageLocation":"default","type":"uint256[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"uint256[]"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1143,"name":"ElementaryTypeName","src":"4159:4:10"}],"id":1144,"name":"ArrayTypeName","src":"4159:6:10"}],"id":1145,"name":"VariableDeclaration","src":"4159:17:10"},{"attributes":{"constant":false,"name":"_loadable","scope":1268,"stateVariable":false,"storageLocation":"default","type":"bool[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"bool[]"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":1146,"name":"ElementaryTypeName","src":"4178:4:10"}],"id":1147,"name":"ArrayTypeName","src":"4178:6:10"}],"id":1148,"name":"VariableDeclaration","src":"4178:16:10"},{"attributes":{"constant":false,"name":"_burnable","scope":1268,"stateVariable":false,"storageLocation":"default","type":"bool[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"bool[]"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":1149,"name":"ElementaryTypeName","src":"4196:4:10"}],"id":1150,"name":"ArrayTypeName","src":"4196:6:10"}],"id":1151,"name":"VariableDeclaration","src":"4196:16:10"},{"attributes":{"constant":false,"name":"_lastUpdate","scope":1268,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1152,"name":"ElementaryTypeName","src":"4214:4:10"}],"id":1153,"name":"VariableDeclaration","src":"4214:16:10"}],"id":1154,"name":"ParameterList","src":"4119:112:10"},{"attributes":{"parameters":[null]},"children":[],"id":1157,"name":"ParameterList","src":"4256:0:10"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3431,"type":"modifier ()","value":"onlyController"},"id":1155,"name":"Identifier","src":"4241:14:10"}],"id":1156,"name":"ModifierInvocation","src":"4241:14:10"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_229d13192b5da189e34c035711b06ef00014d6b1ae3d20f5919a9f7f0dc28e53","typeString":"literal_string \"parameter lengths do not match\""}],"overloadedDeclarations":[4032,4033],"referencedDeclaration":4033,"type":"function (bool,string memory) pure","value":"require"},"id":1158,"name":"Identifier","src":"4327:7:10"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&&","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&&","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&&","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1139,"type":"address[] calldata","value":"_tokens"},"id":1159,"name":"Identifier","src":"4335:7:10"}],"id":1160,"name":"MemberAccess","src":"4335:14:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1142,"type":"bytes32[] calldata","value":"_symbols"},"id":1161,"name":"Identifier","src":"4353:8:10"}],"id":1162,"name":"MemberAccess","src":"4353:15:10"}],"id":1163,"name":"BinaryOperation","src":"4335:33:10"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1139,"type":"address[] calldata","value":"_tokens"},"id":1164,"name":"Identifier","src":"4372:7:10"}],"id":1165,"name":"MemberAccess","src":"4372:14:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1145,"type":"uint256[] calldata","value":"_magnitude"},"id":1166,"name":"Identifier","src":"4390:10:10"}],"id":1167,"name":"MemberAccess","src":"4390:17:10"}],"id":1168,"name":"BinaryOperation","src":"4372:35:10"}],"id":1169,"name":"BinaryOperation","src":"4335:72:10"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1139,"type":"address[] calldata","value":"_tokens"},"id":1170,"name":"Identifier","src":"4411:7:10"}],"id":1171,"name":"MemberAccess","src":"4411:14:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1148,"type":"bool[] calldata","value":"_loadable"},"id":1172,"name":"Identifier","src":"4429:9:10"}],"id":1173,"name":"MemberAccess","src":"4429:16:10"}],"id":1174,"name":"BinaryOperation","src":"4411:34:10"}],"id":1175,"name":"BinaryOperation","src":"4335:110:10"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1139,"type":"address[] calldata","value":"_tokens"},"id":1176,"name":"Identifier","src":"4449:7:10"}],"id":1177,"name":"MemberAccess","src":"4449:14:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1148,"type":"bool[] calldata","value":"_loadable"},"id":1178,"name":"Identifier","src":"4467:9:10"}],"id":1179,"name":"MemberAccess","src":"4467:16:10"}],"id":1180,"name":"BinaryOperation","src":"4449:34:10"}],"id":1181,"name":"BinaryOperation","src":"4335:148:10"},{"attributes":{"argumentTypes":null,"hexvalue":"706172616d65746572206c656e6774687320646f206e6f74206d61746368","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"parameter lengths do not match\"","value":"parameter lengths do not match"},"id":1182,"name":"Literal","src":"4485:32:10"}],"id":1183,"name":"FunctionCall","src":"4327:191:10"}],"id":1184,"name":"ExpressionStatement","src":"4327:191:10"},{"children":[{"attributes":{"assignments":[1186]},"children":[{"attributes":{"constant":false,"name":"i","scope":1268,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1185,"name":"ElementaryTypeName","src":"4592:4:10"}],"id":1186,"name":"VariableDeclaration","src":"4592:6:10"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1187,"name":"Literal","src":"4601:1:10"}],"id":1188,"name":"VariableDeclarationStatement","src":"4592:10:10"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1186,"type":"uint256","value":"i"},"id":1189,"name":"Identifier","src":"4604:1:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1139,"type":"address[] calldata","value":"_tokens"},"id":1190,"name":"Identifier","src":"4608:7:10"}],"id":1191,"name":"MemberAccess","src":"4608:14:10"}],"id":1192,"name":"BinaryOperation","src":"4604:18:10"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1186,"type":"uint256","value":"i"},"id":1193,"name":"Identifier","src":"4624:1:10"}],"id":1194,"name":"UnaryOperation","src":"4624:3:10"}],"id":1195,"name":"ExpressionStatement","src":"4624:3:10"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e7eb3a05df4990307bc322b918e16d072d8c2936ee70a5abacdb05979a5cec23","typeString":"literal_string \"token already available\""}],"overloadedDeclarations":[4032,4033],"referencedDeclaration":4033,"type":"function (bool,string memory) pure","value":"require"},"id":1196,"name":"Identifier","src":"4706:7:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"available","referencedDeclaration":1061,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct TokenWhitelist.Token storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1072,"type":"mapping(address => struct TokenWhitelist.Token storage ref)","value":"_tokenInfoMap"},"id":1197,"name":"Identifier","src":"4715:13:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1139,"type":"address[] calldata","value":"_tokens"},"id":1198,"name":"Identifier","src":"4729:7:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1186,"type":"uint256","value":"i"},"id":1199,"name":"Identifier","src":"4737:1:10"}],"id":1200,"name":"IndexAccess","src":"4729:10:10"}],"id":1201,"name":"IndexAccess","src":"4715:25:10"}],"id":1202,"name":"MemberAccess","src":"4715:35:10"}],"id":1203,"name":"UnaryOperation","src":"4714:36:10"},{"attributes":{"argumentTypes":null,"hexvalue":"746f6b656e20616c726561647920617661696c61626c65","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"token already available\"","value":"token already available"},"id":1204,"name":"Literal","src":"4752:25:10"}],"id":1205,"name":"FunctionCall","src":"4706:72:10"}],"id":1206,"name":"ExpressionStatement","src":"4706:72:10"},{"attributes":{"assignments":[1208]},"children":[{"attributes":{"constant":false,"name":"symbol","scope":1268,"stateVariable":false,"storageLocation":"memory","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":1207,"name":"ElementaryTypeName","src":"4838:6:10"}],"id":1208,"name":"VariableDeclaration","src":"4838:20:10"},{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"toString","referencedDeclaration":1898,"type":"function (struct strings.slice memory) pure returns (string memory)"},"children":[{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"struct strings.slice memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"toSliceB32","referencedDeclaration":1853,"type":"function (bytes32) pure returns (struct strings.slice memory)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1142,"type":"bytes32[] calldata","value":"_symbols"},"id":1209,"name":"Identifier","src":"4861:8:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1186,"type":"uint256","value":"i"},"id":1210,"name":"Identifier","src":"4870:1:10"}],"id":1211,"name":"IndexAccess","src":"4861:11:10"}],"id":1212,"name":"MemberAccess","src":"4861:22:10"}],"id":1213,"name":"FunctionCall","src":"4861:24:10"}],"id":1214,"name":"MemberAccess","src":"4861:33:10"}],"id":1215,"name":"FunctionCall","src":"4861:35:10"}],"id":1216,"name":"VariableDeclarationStatement","src":"4838:58:10"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"struct TokenWhitelist.Token storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"struct TokenWhitelist.Token storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1072,"type":"mapping(address => struct TokenWhitelist.Token storage ref)","value":"_tokenInfoMap"},"id":1217,"name":"Identifier","src":"4958:13:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1139,"type":"address[] calldata","value":"_tokens"},"id":1218,"name":"Identifier","src":"4972:7:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1186,"type":"uint256","value":"i"},"id":1219,"name":"Identifier","src":"4980:1:10"}],"id":1220,"name":"IndexAccess","src":"4972:10:10"}],"id":1221,"name":"IndexAccess","src":"4958:25:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":true,"lValueRequested":false,"names":["symbol","magnitude","rate","available","loadable","burnable","lastUpdate"],"type":"struct TokenWhitelist.Token memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1068,"type":"type(struct TokenWhitelist.Token storage pointer)","value":"Token"},"id":1222,"name":"Identifier","src":"4986:5:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1208,"type":"string memory","value":"symbol"},"id":1223,"name":"Identifier","src":"5019:6:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1145,"type":"uint256[] calldata","value":"_magnitude"},"id":1224,"name":"Identifier","src":"5055:10:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1186,"type":"uint256","value":"i"},"id":1225,"name":"Identifier","src":"5066:1:10"}],"id":1226,"name":"IndexAccess","src":"5055:13:10"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1227,"name":"Literal","src":"5093:1:10"},{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":1228,"name":"Literal","src":"5124:4:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1148,"type":"bool[] calldata","value":"_loadable"},"id":1229,"name":"Identifier","src":"5157:9:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1186,"type":"uint256","value":"i"},"id":1230,"name":"Identifier","src":"5167:1:10"}],"id":1231,"name":"IndexAccess","src":"5157:12:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1151,"type":"bool[] calldata","value":"_burnable"},"id":1232,"name":"Identifier","src":"5197:9:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1186,"type":"uint256","value":"i"},"id":1233,"name":"Identifier","src":"5207:1:10"}],"id":1234,"name":"IndexAccess","src":"5197:12:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1153,"type":"uint256","value":"_lastUpdate"},"id":1235,"name":"Identifier","src":"5240:11:10"}],"id":1236,"name":"FunctionCall","src":"4986:284:10"}],"id":1237,"name":"Assignment","src":"4958:312:10"}],"id":1238,"name":"ExpressionStatement","src":"4958:312:10"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"push","referencedDeclaration":null,"type":"function (address) returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1075,"type":"address[] storage ref","value":"_tokenAddressArray"},"id":1239,"name":"Identifier","src":"5342:18:10"}],"id":1241,"name":"MemberAccess","src":"5342:23:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1139,"type":"address[] calldata","value":"_tokens"},"id":1242,"name":"Identifier","src":"5366:7:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1186,"type":"uint256","value":"i"},"id":1243,"name":"Identifier","src":"5374:1:10"}],"id":1244,"name":"IndexAccess","src":"5366:10:10"}],"id":1245,"name":"FunctionCall","src":"5342:35:10"}],"id":1246,"name":"ExpressionStatement","src":"5342:35:10"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"overloadedDeclarations":[null],"referencedDeclaration":1047,"type":"function (address,address,string memory,uint256,bool,bool)","value":"AddedToken"},"id":1247,"name":"Identifier","src":"5438:10:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4029,"type":"msg","value":"msg"},"id":1248,"name":"Identifier","src":"5449:3:10"}],"id":1249,"name":"MemberAccess","src":"5449:10:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1139,"type":"address[] calldata","value":"_tokens"},"id":1250,"name":"Identifier","src":"5461:7:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1186,"type":"uint256","value":"i"},"id":1251,"name":"Identifier","src":"5469:1:10"}],"id":1252,"name":"IndexAccess","src":"5461:10:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1208,"type":"string memory","value":"symbol"},"id":1253,"name":"Identifier","src":"5473:6:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1145,"type":"uint256[] calldata","value":"_magnitude"},"id":1254,"name":"Identifier","src":"5481:10:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1186,"type":"uint256","value":"i"},"id":1255,"name":"Identifier","src":"5492:1:10"}],"id":1256,"name":"IndexAccess","src":"5481:13:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1148,"type":"bool[] calldata","value":"_loadable"},"id":1257,"name":"Identifier","src":"5496:9:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1186,"type":"uint256","value":"i"},"id":1258,"name":"Identifier","src":"5506:1:10"}],"id":1259,"name":"IndexAccess","src":"5496:12:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1151,"type":"bool[] calldata","value":"_burnable"},"id":1260,"name":"Identifier","src":"5510:9:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1186,"type":"uint256","value":"i"},"id":1261,"name":"Identifier","src":"5520:1:10"}],"id":1262,"name":"IndexAccess","src":"5510:12:10"}],"id":1263,"name":"FunctionCall","src":"5438:85:10"}],"id":1264,"name":"EmitStatement","src":"5433:90:10"}],"id":1265,"name":"Block","src":"4629:905:10"}],"id":1266,"name":"ForStatement","src":"4587:947:10"}],"id":1267,"name":"Block","src":"4256:1284:10"}],"id":1268,"name":"FunctionDefinition","src":"4101:1439:10"},{"attributes":{"constant":false,"documentation":"@notice Remove ERC20 tokens from the whitelist of tokens.\n @param _tokens ERC20 token contract addresses.","implemented":true,"isConstructor":false,"name":"removeTokens","payable":false,"scope":1525,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_tokens","scope":1358,"stateVariable":false,"storageLocation":"default","type":"address[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"address[]"},"children":[{"attributes":{"name":"address","type":"address"},"id":1269,"name":"ElementaryTypeName","src":"5689:7:10"}],"id":1270,"name":"ArrayTypeName","src":"5689:9:10"}],"id":1271,"name":"VariableDeclaration","src":"5689:17:10"}],"id":1272,"name":"ParameterList","src":"5688:19:10"},{"attributes":{"parameters":[null]},"children":[],"id":1275,"name":"ParameterList","src":"5732:0:10"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3431,"type":"modifier ()","value":"onlyController"},"id":1273,"name":"Identifier","src":"5717:14:10"}],"id":1274,"name":"ModifierInvocation","src":"5717:14:10"},{"children":[{"children":[{"attributes":{"assignments":[1277]},"children":[{"attributes":{"constant":false,"name":"i","scope":1358,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1276,"name":"ElementaryTypeName","src":"5850:4:10"}],"id":1277,"name":"VariableDeclaration","src":"5850:6:10"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1278,"name":"Literal","src":"5859:1:10"}],"id":1279,"name":"VariableDeclarationStatement","src":"5850:10:10"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1277,"type":"uint256","value":"i"},"id":1280,"name":"Identifier","src":"5862:1:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1271,"type":"address[] calldata","value":"_tokens"},"id":1281,"name":"Identifier","src":"5866:7:10"}],"id":1282,"name":"MemberAccess","src":"5866:14:10"}],"id":1283,"name":"BinaryOperation","src":"5862:18:10"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1277,"type":"uint256","value":"i"},"id":1284,"name":"Identifier","src":"5882:1:10"}],"id":1285,"name":"UnaryOperation","src":"5882:3:10"}],"id":1286,"name":"ExpressionStatement","src":"5882:3:10"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d487155ec60125f09758305e6de21696dc3e345a5b0edca0b920691dd5be4852","typeString":"literal_string \"token is not available\""}],"overloadedDeclarations":[4032,4033],"referencedDeclaration":4033,"type":"function (bool,string memory) pure","value":"require"},"id":1287,"name":"Identifier","src":"5970:7:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"available","referencedDeclaration":1061,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct TokenWhitelist.Token storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1072,"type":"mapping(address => struct TokenWhitelist.Token storage ref)","value":"_tokenInfoMap"},"id":1288,"name":"Identifier","src":"5978:13:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1271,"type":"address[] calldata","value":"_tokens"},"id":1289,"name":"Identifier","src":"5992:7:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1277,"type":"uint256","value":"i"},"id":1290,"name":"Identifier","src":"6000:1:10"}],"id":1291,"name":"IndexAccess","src":"5992:10:10"}],"id":1292,"name":"IndexAccess","src":"5978:25:10"}],"id":1293,"name":"MemberAccess","src":"5978:35:10"},{"attributes":{"argumentTypes":null,"hexvalue":"746f6b656e206973206e6f7420617661696c61626c65","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"token is not available\"","value":"token is not available"},"id":1294,"name":"Literal","src":"6015:24:10"}],"id":1295,"name":"FunctionCall","src":"5970:70:10"}],"id":1296,"name":"ExpressionStatement","src":"5970:70:10"},{"attributes":{"assignments":[1298]},"children":[{"attributes":{"constant":false,"name":"token","scope":1358,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":1297,"name":"ElementaryTypeName","src":"6094:7:10"}],"id":1298,"name":"VariableDeclaration","src":"6094:13:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1271,"type":"address[] calldata","value":"_tokens"},"id":1299,"name":"Identifier","src":"6110:7:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1277,"type":"uint256","value":"i"},"id":1300,"name":"Identifier","src":"6118:1:10"}],"id":1301,"name":"IndexAccess","src":"6110:10:10"}],"id":1302,"name":"VariableDeclarationStatement","src":"6094:26:10"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"delete","prefix":true,"type":"tuple()"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"struct TokenWhitelist.Token storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1072,"type":"mapping(address => struct TokenWhitelist.Token storage ref)","value":"_tokenInfoMap"},"id":1303,"name":"Identifier","src":"6181:13:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1298,"type":"address","value":"token"},"id":1304,"name":"Identifier","src":"6195:5:10"}],"id":1305,"name":"IndexAccess","src":"6181:20:10"}],"id":1306,"name":"UnaryOperation","src":"6174:27:10"}],"id":1307,"name":"ExpressionStatement","src":"6174:27:10"},{"children":[{"attributes":{"assignments":[1309]},"children":[{"attributes":{"constant":false,"name":"j","scope":1358,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1308,"name":"ElementaryTypeName","src":"6283:4:10"}],"id":1309,"name":"VariableDeclaration","src":"6283:6:10"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1310,"name":"Literal","src":"6292:1:10"}],"id":1311,"name":"VariableDeclarationStatement","src":"6283:10:10"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1309,"type":"uint256","value":"j"},"id":1312,"name":"Identifier","src":"6295:1:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sub","referencedDeclaration":1608,"type":"function (uint256,uint256) pure returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1075,"type":"address[] storage ref","value":"_tokenAddressArray"},"id":1313,"name":"Identifier","src":"6299:18:10"}],"id":1314,"name":"MemberAccess","src":"6299:25:10"}],"id":1315,"name":"MemberAccess","src":"6299:29:10"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":1316,"name":"Literal","src":"6329:1:10"}],"id":1317,"name":"FunctionCall","src":"6299:32:10"}],"id":1318,"name":"BinaryOperation","src":"6295:36:10"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1309,"type":"uint256","value":"j"},"id":1319,"name":"Identifier","src":"6333:1:10"}],"id":1320,"name":"UnaryOperation","src":"6333:3:10"}],"id":1321,"name":"ExpressionStatement","src":"6333:3:10"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1075,"type":"address[] storage ref","value":"_tokenAddressArray"},"id":1322,"name":"Identifier","src":"6360:18:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1309,"type":"uint256","value":"j"},"id":1323,"name":"Identifier","src":"6379:1:10"}],"id":1324,"name":"IndexAccess","src":"6360:21:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1298,"type":"address","value":"token"},"id":1325,"name":"Identifier","src":"6385:5:10"}],"id":1326,"name":"BinaryOperation","src":"6360:30:10"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"address"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1075,"type":"address[] storage ref","value":"_tokenAddressArray"},"id":1327,"name":"Identifier","src":"6414:18:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1309,"type":"uint256","value":"j"},"id":1328,"name":"Identifier","src":"6433:1:10"}],"id":1329,"name":"IndexAccess","src":"6414:21:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1075,"type":"address[] storage ref","value":"_tokenAddressArray"},"id":1330,"name":"Identifier","src":"6438:18:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sub","referencedDeclaration":1608,"type":"function (uint256,uint256) pure returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1075,"type":"address[] storage ref","value":"_tokenAddressArray"},"id":1331,"name":"Identifier","src":"6457:18:10"}],"id":1332,"name":"MemberAccess","src":"6457:25:10"}],"id":1333,"name":"MemberAccess","src":"6457:29:10"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":1334,"name":"Literal","src":"6487:1:10"}],"id":1335,"name":"FunctionCall","src":"6457:32:10"}],"id":1336,"name":"IndexAccess","src":"6438:52:10"}],"id":1337,"name":"Assignment","src":"6414:76:10"}],"id":1338,"name":"ExpressionStatement","src":"6414:76:10"},{"id":1339,"name":"Break","src":"6512:5:10"}],"id":1340,"name":"Block","src":"6392:144:10"}],"id":1341,"name":"IfStatement","src":"6356:180:10"}],"id":1342,"name":"Block","src":"6338:212:10"}],"id":1343,"name":"ForStatement","src":"6278:272:10"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"--","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1075,"type":"address[] storage ref","value":"_tokenAddressArray"},"id":1344,"name":"Identifier","src":"6563:18:10"}],"id":1346,"name":"MemberAccess","src":"6563:25:10"}],"id":1347,"name":"UnaryOperation","src":"6563:27:10"}],"id":1348,"name":"ExpressionStatement","src":"6563:27:10"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":1053,"type":"function (address,address)","value":"RemovedToken"},"id":1349,"name":"Identifier","src":"6650:12:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4029,"type":"msg","value":"msg"},"id":1350,"name":"Identifier","src":"6663:3:10"}],"id":1351,"name":"MemberAccess","src":"6663:10:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1298,"type":"address","value":"token"},"id":1352,"name":"Identifier","src":"6675:5:10"}],"id":1353,"name":"FunctionCall","src":"6650:31:10"}],"id":1354,"name":"EmitStatement","src":"6645:36:10"}],"id":1355,"name":"Block","src":"5887:805:10"}],"id":1356,"name":"ForStatement","src":"5845:847:10"}],"id":1357,"name":"Block","src":"5732:966:10"}],"id":1358,"name":"FunctionDefinition","src":"5667:1031:10"},{"attributes":{"constant":false,"documentation":"@notice Update ERC20 token exchange rate.\n @param _token ERC20 token contract address.\n @param _rate ERC20 token exchange rate in wei.\n @param _updateDate date for the token updates. This will be compared to when oracle updates are received.","implemented":true,"isConstructor":false,"name":"updateTokenRate","payable":false,"scope":1525,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_token","scope":1399,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":1359,"name":"ElementaryTypeName","src":"7000:7:10"}],"id":1360,"name":"VariableDeclaration","src":"7000:14:10"},{"attributes":{"constant":false,"name":"_rate","scope":1399,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1361,"name":"ElementaryTypeName","src":"7016:4:10"}],"id":1362,"name":"VariableDeclaration","src":"7016:10:10"},{"attributes":{"constant":false,"name":"_updateDate","scope":1399,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1363,"name":"ElementaryTypeName","src":"7028:4:10"}],"id":1364,"name":"VariableDeclaration","src":"7028:16:10"}],"id":1365,"name":"ParameterList","src":"6999:46:10"},{"attributes":{"parameters":[null]},"children":[],"id":1368,"name":"ParameterList","src":"7078:0:10"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1098,"type":"modifier ()","value":"onlyControllerOrOracle"},"id":1366,"name":"Identifier","src":"7055:22:10"}],"id":1367,"name":"ModifierInvocation","src":"7055:22:10"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d487155ec60125f09758305e6de21696dc3e345a5b0edca0b920691dd5be4852","typeString":"literal_string \"token is not available\""}],"overloadedDeclarations":[4032,4033],"referencedDeclaration":4033,"type":"function (bool,string memory) pure","value":"require"},"id":1369,"name":"Identifier","src":"7130:7:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"available","referencedDeclaration":1061,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct TokenWhitelist.Token storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1072,"type":"mapping(address => struct TokenWhitelist.Token storage ref)","value":"_tokenInfoMap"},"id":1370,"name":"Identifier","src":"7138:13:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1360,"type":"address","value":"_token"},"id":1371,"name":"Identifier","src":"7152:6:10"}],"id":1372,"name":"IndexAccess","src":"7138:21:10"}],"id":1373,"name":"MemberAccess","src":"7138:31:10"},{"attributes":{"argumentTypes":null,"hexvalue":"746f6b656e206973206e6f7420617661696c61626c65","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"token is not available\"","value":"token is not available"},"id":1374,"name":"Literal","src":"7171:24:10"}],"id":1375,"name":"FunctionCall","src":"7130:66:10"}],"id":1376,"name":"ExpressionStatement","src":"7130:66:10"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"rate","referencedDeclaration":1059,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct TokenWhitelist.Token storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1072,"type":"mapping(address => struct TokenWhitelist.Token storage ref)","value":"_tokenInfoMap"},"id":1377,"name":"Identifier","src":"7242:13:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1360,"type":"address","value":"_token"},"id":1378,"name":"Identifier","src":"7256:6:10"}],"id":1379,"name":"IndexAccess","src":"7242:21:10"}],"id":1380,"name":"MemberAccess","src":"7242:26:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1362,"type":"uint256","value":"_rate"},"id":1381,"name":"Identifier","src":"7271:5:10"}],"id":1382,"name":"Assignment","src":"7242:34:10"}],"id":1383,"name":"ExpressionStatement","src":"7242:34:10"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"lastUpdate","referencedDeclaration":1067,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct TokenWhitelist.Token storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1072,"type":"mapping(address => struct TokenWhitelist.Token storage ref)","value":"_tokenInfoMap"},"id":1384,"name":"Identifier","src":"7339:13:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1360,"type":"address","value":"_token"},"id":1385,"name":"Identifier","src":"7353:6:10"}],"id":1386,"name":"IndexAccess","src":"7339:21:10"}],"id":1387,"name":"MemberAccess","src":"7339:32:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1364,"type":"uint256","value":"_updateDate"},"id":1388,"name":"Identifier","src":"7374:11:10"}],"id":1389,"name":"Assignment","src":"7339:46:10"}],"id":1390,"name":"ExpressionStatement","src":"7339:46:10"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":1033,"type":"function (address,address,uint256)","value":"UpdatedTokenRate"},"id":1391,"name":"Identifier","src":"7439:16:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4029,"type":"msg","value":"msg"},"id":1392,"name":"Identifier","src":"7456:3:10"}],"id":1393,"name":"MemberAccess","src":"7456:10:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1360,"type":"address","value":"_token"},"id":1394,"name":"Identifier","src":"7468:6:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1362,"type":"uint256","value":"_rate"},"id":1395,"name":"Identifier","src":"7476:5:10"}],"id":1396,"name":"FunctionCall","src":"7439:43:10"}],"id":1397,"name":"EmitStatement","src":"7434:48:10"}],"id":1398,"name":"Block","src":"7078:411:10"}],"id":1399,"name":"FunctionDefinition","src":"6975:514:10"},{"attributes":{"constant":false,"documentation":"/ @notice Withdraw tokens from the smart contract to the specified account.","implemented":true,"isConstructor":false,"name":"claim","payable":false,"scope":1525,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_to","scope":1417,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":1400,"name":"ElementaryTypeName","src":"7593:7:10"}],"id":1401,"name":"VariableDeclaration","src":"7593:11:10"},{"attributes":{"constant":false,"name":"_asset","scope":1417,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":1402,"name":"ElementaryTypeName","src":"7606:7:10"}],"id":1403,"name":"VariableDeclaration","src":"7606:14:10"},{"attributes":{"constant":false,"name":"_amount","scope":1417,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1404,"name":"ElementaryTypeName","src":"7622:4:10"}],"id":1405,"name":"VariableDeclaration","src":"7622:12:10"}],"id":1406,"name":"ParameterList","src":"7592:43:10"},{"attributes":{"parameters":[null]},"children":[],"id":1409,"name":"ParameterList","src":"7655:0:10"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3516,"type":"modifier ()","value":"onlyOwner"},"id":1407,"name":"Identifier","src":"7645:9:10"}],"id":1408,"name":"ModifierInvocation","src":"7645:9:10"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":3400,"type":"function (address,address,uint256)","value":"_claim"},"id":1410,"name":"Identifier","src":"7665:6:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1401,"type":"address","value":"_to"},"id":1411,"name":"Identifier","src":"7672:3:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1403,"type":"address","value":"_asset"},"id":1412,"name":"Identifier","src":"7677:6:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1405,"type":"uint256","value":"_amount"},"id":1413,"name":"Identifier","src":"7685:7:10"}],"id":1414,"name":"FunctionCall","src":"7665:28:10"}],"id":1415,"name":"ExpressionStatement","src":"7665:28:10"}],"id":1416,"name":"Block","src":"7655:45:10"}],"id":1417,"name":"FunctionDefinition","src":"7578:122:10"},{"attributes":{"constant":true,"documentation":"@notice This returns all of the fields for a given token\n @param _a is the address of a given token\n @return string of the token's symbol\n @return uint of the token's magnitude\n @return uint of the token's exchange rate to ETH\n @return bool whether the token is available\n @return bool whether the token is loadable to the TokenCard\n @return bool whether the token is burnable to the TKN Holder Contract\n @return uint of the lastUpdated time of the token's exchange rate","implemented":true,"isConstructor":false,"modifiers":[null],"name":"getTokenInfo","payable":false,"scope":1525,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_a","scope":1459,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":1418,"name":"ElementaryTypeName","src":"8263:7:10"}],"id":1419,"name":"VariableDeclaration","src":"8263:10:10"}],"id":1420,"name":"ParameterList","src":"8262:12:10"},{"children":[{"attributes":{"constant":false,"name":"","scope":1459,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":1421,"name":"ElementaryTypeName","src":"8298:6:10"}],"id":1422,"name":"VariableDeclaration","src":"8298:6:10"},{"attributes":{"constant":false,"name":"","scope":1459,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1423,"name":"ElementaryTypeName","src":"8306:7:10"}],"id":1424,"name":"VariableDeclaration","src":"8306:7:10"},{"attributes":{"constant":false,"name":"","scope":1459,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1425,"name":"ElementaryTypeName","src":"8315:7:10"}],"id":1426,"name":"VariableDeclaration","src":"8315:7:10"},{"attributes":{"constant":false,"name":"","scope":1459,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":1427,"name":"ElementaryTypeName","src":"8324:4:10"}],"id":1428,"name":"VariableDeclaration","src":"8324:4:10"},{"attributes":{"constant":false,"name":"","scope":1459,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":1429,"name":"ElementaryTypeName","src":"8330:4:10"}],"id":1430,"name":"VariableDeclaration","src":"8330:4:10"},{"attributes":{"constant":false,"name":"","scope":1459,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":1431,"name":"ElementaryTypeName","src":"8336:4:10"}],"id":1432,"name":"VariableDeclaration","src":"8336:4:10"},{"attributes":{"constant":false,"name":"","scope":1459,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1433,"name":"ElementaryTypeName","src":"8342:7:10"}],"id":1434,"name":"VariableDeclaration","src":"8342:7:10"}],"id":1435,"name":"ParameterList","src":"8297:53:10"},{"children":[{"attributes":{"assignments":[1437]},"children":[{"attributes":{"constant":false,"name":"tokenInfo","scope":1459,"stateVariable":false,"storageLocation":"storage","type":"struct TokenWhitelist.Token","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"Token","referencedDeclaration":1068,"type":"struct TokenWhitelist.Token"},"id":1436,"name":"UserDefinedTypeName","src":"8361:5:10"}],"id":1437,"name":"VariableDeclaration","src":"8361:23:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct TokenWhitelist.Token storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1072,"type":"mapping(address => struct TokenWhitelist.Token storage ref)","value":"_tokenInfoMap"},"id":1438,"name":"Identifier","src":"8387:13:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1419,"type":"address","value":"_a"},"id":1439,"name":"Identifier","src":"8401:2:10"}],"id":1440,"name":"IndexAccess","src":"8387:17:10"}],"id":1441,"name":"VariableDeclarationStatement","src":"8361:43:10"},{"attributes":{"functionReturnParameters":1435},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"tuple(string storage ref,uint256,uint256,bool,bool,bool,uint256)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"symbol","referencedDeclaration":1055,"type":"string storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1437,"type":"struct TokenWhitelist.Token storage pointer","value":"tokenInfo"},"id":1442,"name":"Identifier","src":"8422:9:10"}],"id":1443,"name":"MemberAccess","src":"8422:16:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"magnitude","referencedDeclaration":1057,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1437,"type":"struct TokenWhitelist.Token storage pointer","value":"tokenInfo"},"id":1444,"name":"Identifier","src":"8440:9:10"}],"id":1445,"name":"MemberAccess","src":"8440:19:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"rate","referencedDeclaration":1059,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1437,"type":"struct TokenWhitelist.Token storage pointer","value":"tokenInfo"},"id":1446,"name":"Identifier","src":"8461:9:10"}],"id":1447,"name":"MemberAccess","src":"8461:14:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"available","referencedDeclaration":1061,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1437,"type":"struct TokenWhitelist.Token storage pointer","value":"tokenInfo"},"id":1448,"name":"Identifier","src":"8477:9:10"}],"id":1449,"name":"MemberAccess","src":"8477:19:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"loadable","referencedDeclaration":1063,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1437,"type":"struct TokenWhitelist.Token storage pointer","value":"tokenInfo"},"id":1450,"name":"Identifier","src":"8498:9:10"}],"id":1451,"name":"MemberAccess","src":"8498:18:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"burnable","referencedDeclaration":1065,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1437,"type":"struct TokenWhitelist.Token storage pointer","value":"tokenInfo"},"id":1452,"name":"Identifier","src":"8518:9:10"}],"id":1453,"name":"MemberAccess","src":"8518:18:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"lastUpdate","referencedDeclaration":1067,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1437,"type":"struct TokenWhitelist.Token storage pointer","value":"tokenInfo"},"id":1454,"name":"Identifier","src":"8538:9:10"}],"id":1455,"name":"MemberAccess","src":"8538:20:10"}],"id":1456,"name":"TupleExpression","src":"8421:138:10"}],"id":1457,"name":"Return","src":"8414:145:10"}],"id":1458,"name":"Block","src":"8351:215:10"}],"id":1459,"name":"FunctionDefinition","src":"8241:325:10"},{"attributes":{"constant":true,"documentation":"@notice This returns all of the fields for our StableCoin\n @return string of the token's symbol\n @return uint of the token's magnitude\n @return uint of the token's exchange rate to ETH\n @return bool whether the token is available\n @return bool whether the token is loadable to the TokenCard\n @return bool whether the token is burnable to the TKN Holder Contract\n @return uint of the lastUpdated time of the token's exchange rate","implemented":true,"isConstructor":false,"modifiers":[null],"name":"getStablecoinInfo","payable":false,"scope":1525,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":1460,"name":"ParameterList","src":"9084:2:10"},{"children":[{"attributes":{"constant":false,"name":"","scope":1499,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":1461,"name":"ElementaryTypeName","src":"9110:6:10"}],"id":1462,"name":"VariableDeclaration","src":"9110:6:10"},{"attributes":{"constant":false,"name":"","scope":1499,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1463,"name":"ElementaryTypeName","src":"9118:7:10"}],"id":1464,"name":"VariableDeclaration","src":"9118:7:10"},{"attributes":{"constant":false,"name":"","scope":1499,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1465,"name":"ElementaryTypeName","src":"9127:7:10"}],"id":1466,"name":"VariableDeclaration","src":"9127:7:10"},{"attributes":{"constant":false,"name":"","scope":1499,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":1467,"name":"ElementaryTypeName","src":"9136:4:10"}],"id":1468,"name":"VariableDeclaration","src":"9136:4:10"},{"attributes":{"constant":false,"name":"","scope":1499,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":1469,"name":"ElementaryTypeName","src":"9142:4:10"}],"id":1470,"name":"VariableDeclaration","src":"9142:4:10"},{"attributes":{"constant":false,"name":"","scope":1499,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":1471,"name":"ElementaryTypeName","src":"9148:4:10"}],"id":1472,"name":"VariableDeclaration","src":"9148:4:10"},{"attributes":{"constant":false,"name":"","scope":1499,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1473,"name":"ElementaryTypeName","src":"9154:7:10"}],"id":1474,"name":"VariableDeclaration","src":"9154:7:10"}],"id":1475,"name":"ParameterList","src":"9109:53:10"},{"children":[{"attributes":{"assignments":[1477]},"children":[{"attributes":{"constant":false,"name":"stablecoinInfo","scope":1499,"stateVariable":false,"storageLocation":"storage","type":"struct TokenWhitelist.Token","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"Token","referencedDeclaration":1068,"type":"struct TokenWhitelist.Token"},"id":1476,"name":"UserDefinedTypeName","src":"9173:5:10"}],"id":1477,"name":"VariableDeclaration","src":"9173:28:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct TokenWhitelist.Token storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1072,"type":"mapping(address => struct TokenWhitelist.Token storage ref)","value":"_tokenInfoMap"},"id":1478,"name":"Identifier","src":"9204:13:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1100,"type":"address","value":"_stablecoin"},"id":1479,"name":"Identifier","src":"9218:11:10"}],"id":1480,"name":"IndexAccess","src":"9204:26:10"}],"id":1481,"name":"VariableDeclarationStatement","src":"9173:57:10"},{"attributes":{"functionReturnParameters":1475},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"tuple(string storage ref,uint256,uint256,bool,bool,bool,uint256)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"symbol","referencedDeclaration":1055,"type":"string storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1477,"type":"struct TokenWhitelist.Token storage pointer","value":"stablecoinInfo"},"id":1482,"name":"Identifier","src":"9248:14:10"}],"id":1483,"name":"MemberAccess","src":"9248:21:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"magnitude","referencedDeclaration":1057,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1477,"type":"struct TokenWhitelist.Token storage pointer","value":"stablecoinInfo"},"id":1484,"name":"Identifier","src":"9271:14:10"}],"id":1485,"name":"MemberAccess","src":"9271:24:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"rate","referencedDeclaration":1059,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1477,"type":"struct TokenWhitelist.Token storage pointer","value":"stablecoinInfo"},"id":1486,"name":"Identifier","src":"9297:14:10"}],"id":1487,"name":"MemberAccess","src":"9297:19:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"available","referencedDeclaration":1061,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1477,"type":"struct TokenWhitelist.Token storage pointer","value":"stablecoinInfo"},"id":1488,"name":"Identifier","src":"9318:14:10"}],"id":1489,"name":"MemberAccess","src":"9318:24:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"loadable","referencedDeclaration":1063,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1477,"type":"struct TokenWhitelist.Token storage pointer","value":"stablecoinInfo"},"id":1490,"name":"Identifier","src":"9344:14:10"}],"id":1491,"name":"MemberAccess","src":"9344:23:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"burnable","referencedDeclaration":1065,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1477,"type":"struct TokenWhitelist.Token storage pointer","value":"stablecoinInfo"},"id":1492,"name":"Identifier","src":"9369:14:10"}],"id":1493,"name":"MemberAccess","src":"9369:23:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"lastUpdate","referencedDeclaration":1067,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1477,"type":"struct TokenWhitelist.Token storage pointer","value":"stablecoinInfo"},"id":1494,"name":"Identifier","src":"9394:14:10"}],"id":1495,"name":"MemberAccess","src":"9394:25:10"}],"id":1496,"name":"TupleExpression","src":"9247:173:10"}],"id":1497,"name":"Return","src":"9240:180:10"}],"id":1498,"name":"Block","src":"9163:264:10"}],"id":1499,"name":"FunctionDefinition","src":"9058:369:10"},{"attributes":{"constant":true,"documentation":"@notice This returns an array of our whitelisted address\n @return address[] of our whitelisted tokens","implemented":true,"isConstructor":false,"modifiers":[null],"name":"tokenAddressArray","payable":false,"scope":1525,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":1500,"name":"ParameterList","src":"9576:2:10"},{"children":[{"attributes":{"constant":false,"name":"","scope":1508,"stateVariable":false,"storageLocation":"default","type":"address[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"address[]"},"children":[{"attributes":{"name":"address","type":"address"},"id":1501,"name":"ElementaryTypeName","src":"9602:7:10"}],"id":1502,"name":"ArrayTypeName","src":"9602:9:10"}],"id":1503,"name":"VariableDeclaration","src":"9602:9:10"}],"id":1504,"name":"ParameterList","src":"9601:11:10"},{"children":[{"attributes":{"functionReturnParameters":1504},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1075,"type":"address[] storage ref","value":"_tokenAddressArray"},"id":1505,"name":"Identifier","src":"9630:18:10"}],"id":1506,"name":"Return","src":"9623:25:10"}],"id":1507,"name":"Block","src":"9613:42:10"}],"id":1508,"name":"FunctionDefinition","src":"9550:105:10"},{"attributes":{"constant":true,"documentation":"@notice This returns the address of our stablecoin of choice\n @return the address of the stablecoin contract.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"stablecoin","payable":false,"scope":1525,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":1509,"name":"ParameterList","src":"9805:2:10"},{"children":[{"attributes":{"constant":false,"name":"","scope":1516,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":1510,"name":"ElementaryTypeName","src":"9831:7:10"}],"id":1511,"name":"VariableDeclaration","src":"9831:7:10"}],"id":1512,"name":"ParameterList","src":"9830:9:10"},{"children":[{"attributes":{"functionReturnParameters":1512},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1100,"type":"address","value":"_stablecoin"},"id":1513,"name":"Identifier","src":"9857:11:10"}],"id":1514,"name":"Return","src":"9850:18:10"}],"id":1515,"name":"Block","src":"9840:35:10"}],"id":1516,"name":"FunctionDefinition","src":"9786:89:10"},{"attributes":{"constant":true,"documentation":"@notice this returns the node hash of our Oracle\n @return the oracle node registered in ENS.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"oracleNode","payable":false,"scope":1525,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":1517,"name":"ParameterList","src":"10008:2:10"},{"children":[{"attributes":{"constant":false,"name":"","scope":1524,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":1518,"name":"ElementaryTypeName","src":"10034:7:10"}],"id":1519,"name":"VariableDeclaration","src":"10034:7:10"}],"id":1520,"name":"ParameterList","src":"10033:9:10"},{"children":[{"attributes":{"functionReturnParameters":1520},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1102,"type":"bytes32","value":"_oracleNode"},"id":1521,"name":"Identifier","src":"10060:11:10"}],"id":1522,"name":"Return","src":"10053:18:10"}],"id":1523,"name":"Block","src":"10043:35:10"}],"id":1524,"name":"FunctionDefinition","src":"9989:89:10"}],"id":1525,"name":"ContractDefinition","src":"1619:8461:10"}],"id":1526,"name":"SourceUnit","src":"774:9307:10"}},"internals/tokenWhitelistable.sol":{"AST":{"attributes":{"absolutePath":"internals/tokenWhitelistable.sol","exportedSymbols":{"TokenWhitelistable":[360]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".25"]},"id":182,"name":"PragmaDirective","src":"778:24:11"},{"attributes":{"SourceUnit":1526,"absolutePath":"internals/tokenWhitelist.sol","file":"./tokenWhitelist.sol","scope":361,"symbolAliases":[null],"unitAlias":""},"id":183,"name":"ImportDirective","src":"804:30:11"},{"attributes":{"SourceUnit":181,"absolutePath":"internals/ensResolvable.sol","file":"../internals/ensResolvable.sol","scope":361,"symbolAliases":[null],"unitAlias":""},"id":184,"name":"ImportDirective","src":"835:40:11"},{"attributes":{"contractDependencies":[180],"contractKind":"contract","documentation":"@title TokenWhitelistable implements access to the TokenWhitelist located behind ENS.","fullyImplemented":false,"linearizedBaseContracts":[360,180],"name":"TokenWhitelistable","scope":361},"children":[{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"ENSResolvable","referencedDeclaration":180,"type":"contract ENSResolvable"},"id":185,"name":"UserDefinedTypeName","src":"999:13:11"}],"id":186,"name":"InheritanceSpecifier","src":"999:13:11"},{"attributes":{"constant":false,"name":"_tokenWhitelistNode","scope":360,"stateVariable":true,"storageLocation":"default","type":"bytes32","value":null,"visibility":"private"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":187,"name":"ElementaryTypeName","src":"1104:7:11"}],"id":188,"name":"VariableDeclaration","src":"1104:35:11"},{"attributes":{"constant":false,"documentation":"@notice Constructor initializes the TokenWhitelistable object.\n @param _tokenWhitelistNameHash_ is the ENS name hash of the TokenWhitelist.","implemented":true,"isConstructor":true,"modifiers":[null],"name":"","payable":false,"scope":360,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_tokenWhitelistNameHash_","scope":198,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":189,"name":"ElementaryTypeName","src":"1313:7:11"}],"id":190,"name":"VariableDeclaration","src":"1313:32:11"}],"id":191,"name":"ParameterList","src":"1312:34:11"},{"attributes":{"parameters":[null]},"children":[],"id":192,"name":"ParameterList","src":"1356:0:11"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":188,"type":"bytes32","value":"_tokenWhitelistNode"},"id":193,"name":"Identifier","src":"1366:19:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":190,"type":"bytes32","value":"_tokenWhitelistNameHash_"},"id":194,"name":"Identifier","src":"1388:24:11"}],"id":195,"name":"Assignment","src":"1366:46:11"}],"id":196,"name":"ExpressionStatement","src":"1366:46:11"}],"id":197,"name":"Block","src":"1356:63:11"}],"id":198,"name":"FunctionDefinition","src":"1301:118:11"},{"attributes":{"constant":true,"documentation":"@notice This shows what TokenWhitelist is being used\n @return the TokenWhitelist's name hash registered in ENS.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"tokenWhitelistNode","payable":false,"scope":360,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":199,"name":"ParameterList","src":"1579:2:11"},{"children":[{"attributes":{"constant":false,"name":"","scope":206,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":200,"name":"ElementaryTypeName","src":"1605:7:11"}],"id":201,"name":"VariableDeclaration","src":"1605:7:11"}],"id":202,"name":"ParameterList","src":"1604:9:11"},{"children":[{"attributes":{"functionReturnParameters":202},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":188,"type":"bytes32","value":"_tokenWhitelistNode"},"id":203,"name":"Identifier","src":"1631:19:11"}],"id":204,"name":"Return","src":"1624:26:11"}],"id":205,"name":"Block","src":"1614:43:11"}],"id":206,"name":"FunctionDefinition","src":"1552:105:11"},{"attributes":{"constant":true,"documentation":"@notice This returns all of the fields for a given token\n @param _a is the address of a given token\n @return string of the token's symbol\n @return uint of the token's magnitude\n @return uint of the token's exchange rate to ETH\n @return bool whether the token is available\n @return bool whether the token is loadable to the TokenCard\n @return bool whether the token is burnable to the TKN Holder Contract\n @return uint of the lastUpdated time of the token's exchange rate","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_getTokenInfo","payable":false,"scope":360,"stateMutability":"view","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_a","scope":235,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":207,"name":"ElementaryTypeName","src":"2221:7:11"}],"id":208,"name":"VariableDeclaration","src":"2221:10:11"}],"id":209,"name":"ParameterList","src":"2220:12:11"},{"children":[{"attributes":{"constant":false,"name":"","scope":235,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":210,"name":"ElementaryTypeName","src":"2256:6:11"}],"id":211,"name":"VariableDeclaration","src":"2256:6:11"},{"attributes":{"constant":false,"name":"","scope":235,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":212,"name":"ElementaryTypeName","src":"2264:7:11"}],"id":213,"name":"VariableDeclaration","src":"2264:7:11"},{"attributes":{"constant":false,"name":"","scope":235,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":214,"name":"ElementaryTypeName","src":"2273:7:11"}],"id":215,"name":"VariableDeclaration","src":"2273:7:11"},{"attributes":{"constant":false,"name":"","scope":235,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":216,"name":"ElementaryTypeName","src":"2282:4:11"}],"id":217,"name":"VariableDeclaration","src":"2282:4:11"},{"attributes":{"constant":false,"name":"","scope":235,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":218,"name":"ElementaryTypeName","src":"2288:4:11"}],"id":219,"name":"VariableDeclaration","src":"2288:4:11"},{"attributes":{"constant":false,"name":"","scope":235,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":220,"name":"ElementaryTypeName","src":"2294:4:11"}],"id":221,"name":"VariableDeclaration","src":"2294:4:11"},{"attributes":{"constant":false,"name":"","scope":235,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":222,"name":"ElementaryTypeName","src":"2300:7:11"}],"id":223,"name":"VariableDeclaration","src":"2300:7:11"}],"id":224,"name":"ParameterList","src":"2255:53:11"},{"children":[{"attributes":{"functionReturnParameters":224},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple(string memory,uint256,uint256,bool,bool,bool,uint256)","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"getTokenInfo","referencedDeclaration":974,"type":"function (address) view external returns (string memory,uint256,uint256,bool,bool,bool,uint256)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract ITokenWhitelist","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":1012,"type":"type(contract ITokenWhitelist)","value":"ITokenWhitelist"},"id":225,"name":"Identifier","src":"2326:15:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[null],"referencedDeclaration":179,"type":"function (bytes32) view returns (address)","value":"_ensResolve"},"id":226,"name":"Identifier","src":"2342:11:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":188,"type":"bytes32","value":"_tokenWhitelistNode"},"id":227,"name":"Identifier","src":"2354:19:11"}],"id":228,"name":"FunctionCall","src":"2342:32:11"}],"id":229,"name":"FunctionCall","src":"2326:49:11"}],"id":230,"name":"MemberAccess","src":"2326:62:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":208,"type":"address","value":"_a"},"id":231,"name":"Identifier","src":"2389:2:11"}],"id":232,"name":"FunctionCall","src":"2326:66:11"}],"id":233,"name":"Return","src":"2319:73:11"}],"id":234,"name":"Block","src":"2309:90:11"}],"id":235,"name":"FunctionDefinition","src":"2198:201:11"},{"attributes":{"constant":true,"documentation":"@notice This returns all of the fields for our stablecoin token\n @return string of the token's symbol\n @return uint of the token's magnitude\n @return uint of the token's exchange rate to ETH\n @return bool whether the token is available\n @return bool whether the token is loadable to the TokenCard\n @return bool whether the token is burnable to the TKN Holder Contract\n @return uint of the lastUpdated time of the token's exchange rate","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_getStablecoinInfo","payable":false,"scope":360,"stateMutability":"view","superFunction":null,"visibility":"internal"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":236,"name":"ParameterList","src":"2924:2:11"},{"children":[{"attributes":{"constant":false,"name":"","scope":261,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":237,"name":"ElementaryTypeName","src":"2950:6:11"}],"id":238,"name":"VariableDeclaration","src":"2950:6:11"},{"attributes":{"constant":false,"name":"","scope":261,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":239,"name":"ElementaryTypeName","src":"2958:7:11"}],"id":240,"name":"VariableDeclaration","src":"2958:7:11"},{"attributes":{"constant":false,"name":"","scope":261,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":241,"name":"ElementaryTypeName","src":"2967:7:11"}],"id":242,"name":"VariableDeclaration","src":"2967:7:11"},{"attributes":{"constant":false,"name":"","scope":261,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":243,"name":"ElementaryTypeName","src":"2976:4:11"}],"id":244,"name":"VariableDeclaration","src":"2976:4:11"},{"attributes":{"constant":false,"name":"","scope":261,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":245,"name":"ElementaryTypeName","src":"2982:4:11"}],"id":246,"name":"VariableDeclaration","src":"2982:4:11"},{"attributes":{"constant":false,"name":"","scope":261,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":247,"name":"ElementaryTypeName","src":"2988:4:11"}],"id":248,"name":"VariableDeclaration","src":"2988:4:11"},{"attributes":{"constant":false,"name":"","scope":261,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":249,"name":"ElementaryTypeName","src":"2994:7:11"}],"id":250,"name":"VariableDeclaration","src":"2994:7:11"}],"id":251,"name":"ParameterList","src":"2949:53:11"},{"children":[{"attributes":{"functionReturnParameters":251},"children":[{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple(string memory,uint256,uint256,bool,bool,bool,uint256)","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"getStablecoinInfo","referencedDeclaration":991,"type":"function () view external returns (string memory,uint256,uint256,bool,bool,bool,uint256)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract ITokenWhitelist","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":1012,"type":"type(contract ITokenWhitelist)","value":"ITokenWhitelist"},"id":252,"name":"Identifier","src":"3020:15:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[null],"referencedDeclaration":179,"type":"function (bytes32) view returns (address)","value":"_ensResolve"},"id":253,"name":"Identifier","src":"3036:11:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":188,"type":"bytes32","value":"_tokenWhitelistNode"},"id":254,"name":"Identifier","src":"3048:19:11"}],"id":255,"name":"FunctionCall","src":"3036:32:11"}],"id":256,"name":"FunctionCall","src":"3020:49:11"}],"id":257,"name":"MemberAccess","src":"3020:67:11"}],"id":258,"name":"FunctionCall","src":"3020:69:11"}],"id":259,"name":"Return","src":"3013:76:11"}],"id":260,"name":"Block","src":"3003:93:11"}],"id":261,"name":"FunctionDefinition","src":"2897:199:11"},{"attributes":{"constant":true,"documentation":"@notice This returns an array of our whitelisted address\n @return address[] of our whitelisted tokens","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_tokenAddressArray","payable":false,"scope":360,"stateMutability":"view","superFunction":null,"visibility":"internal"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":262,"name":"ParameterList","src":"3246:2:11"},{"children":[{"attributes":{"constant":false,"name":"","scope":276,"stateVariable":false,"storageLocation":"default","type":"address[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"address[]"},"children":[{"attributes":{"name":"address","type":"address"},"id":263,"name":"ElementaryTypeName","src":"3272:7:11"}],"id":264,"name":"ArrayTypeName","src":"3272:9:11"}],"id":265,"name":"VariableDeclaration","src":"3272:9:11"}],"id":266,"name":"ParameterList","src":"3271:11:11"},{"children":[{"attributes":{"functionReturnParameters":266},"children":[{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address[] memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"tokenAddressArray","referencedDeclaration":997,"type":"function () view external returns (address[] memory)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract ITokenWhitelist","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":1012,"type":"type(contract ITokenWhitelist)","value":"ITokenWhitelist"},"id":267,"name":"Identifier","src":"3300:15:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[null],"referencedDeclaration":179,"type":"function (bytes32) view returns (address)","value":"_ensResolve"},"id":268,"name":"Identifier","src":"3316:11:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":188,"type":"bytes32","value":"_tokenWhitelistNode"},"id":269,"name":"Identifier","src":"3328:19:11"}],"id":270,"name":"FunctionCall","src":"3316:32:11"}],"id":271,"name":"FunctionCall","src":"3300:49:11"}],"id":272,"name":"MemberAccess","src":"3300:67:11"}],"id":273,"name":"FunctionCall","src":"3300:69:11"}],"id":274,"name":"Return","src":"3293:76:11"}],"id":275,"name":"Block","src":"3283:93:11"}],"id":276,"name":"FunctionDefinition","src":"3219:157:11"},{"attributes":{"constant":false,"documentation":"@notice Update ERC20 token exchange rate.\n @param _token ERC20 token contract address.\n @param _rate ERC20 token exchange rate in wei.\n @param _updateDate date for the token updates. This will be compared to when oracle updates are received.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_updateTokenRate","payable":false,"scope":360,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_token","scope":297,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":277,"name":"ElementaryTypeName","src":"3679:7:11"}],"id":278,"name":"VariableDeclaration","src":"3679:14:11"},{"attributes":{"constant":false,"name":"_rate","scope":297,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":279,"name":"ElementaryTypeName","src":"3695:4:11"}],"id":280,"name":"VariableDeclaration","src":"3695:10:11"},{"attributes":{"constant":false,"name":"_updateDate","scope":297,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":281,"name":"ElementaryTypeName","src":"3707:4:11"}],"id":282,"name":"VariableDeclaration","src":"3707:16:11"}],"id":283,"name":"ParameterList","src":"3678:46:11"},{"attributes":{"parameters":[null]},"children":[],"id":284,"name":"ParameterList","src":"3734:0:11"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"updateTokenRate","referencedDeclaration":1006,"type":"function (address,uint256,uint256) external"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract ITokenWhitelist","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":1012,"type":"type(contract ITokenWhitelist)","value":"ITokenWhitelist"},"id":285,"name":"Identifier","src":"3744:15:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[null],"referencedDeclaration":179,"type":"function (bytes32) view returns (address)","value":"_ensResolve"},"id":286,"name":"Identifier","src":"3760:11:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":188,"type":"bytes32","value":"_tokenWhitelistNode"},"id":287,"name":"Identifier","src":"3772:19:11"}],"id":288,"name":"FunctionCall","src":"3760:32:11"}],"id":289,"name":"FunctionCall","src":"3744:49:11"}],"id":290,"name":"MemberAccess","src":"3744:65:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":278,"type":"address","value":"_token"},"id":291,"name":"Identifier","src":"3810:6:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":280,"type":"uint256","value":"_rate"},"id":292,"name":"Identifier","src":"3818:5:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":282,"type":"uint256","value":"_updateDate"},"id":293,"name":"Identifier","src":"3825:11:11"}],"id":294,"name":"FunctionCall","src":"3744:93:11"}],"id":295,"name":"ExpressionStatement","src":"3744:93:11"}],"id":296,"name":"Block","src":"3734:110:11"}],"id":297,"name":"FunctionDefinition","src":"3653:191:11"},{"attributes":{"constant":true,"documentation":"@notice Checks whether a token is available\n @return bool available or not","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_isTokenAvailable","payable":false,"scope":360,"stateMutability":"view","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_a","scope":313,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":298,"name":"ElementaryTypeName","src":"3967:7:11"}],"id":299,"name":"VariableDeclaration","src":"3967:10:11"}],"id":300,"name":"ParameterList","src":"3966:12:11"},{"children":[{"attributes":{"constant":false,"name":"","scope":313,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":301,"name":"ElementaryTypeName","src":"4002:4:11"}],"id":302,"name":"VariableDeclaration","src":"4002:4:11"}],"id":303,"name":"ParameterList","src":"4001:6:11"},{"children":[{"attributes":{"assignments":[null,null,null,305,null,null,null]},"children":[{"attributes":{"constant":false,"name":"available","scope":313,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":304,"name":"ElementaryTypeName","src":"4026:4:11"}],"id":305,"name":"VariableDeclaration","src":"4026:14:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple(string memory,uint256,uint256,bool,bool,bool,uint256)","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":235,"type":"function (address) view returns (string memory,uint256,uint256,bool,bool,bool,uint256)","value":"_getTokenInfo"},"id":306,"name":"Identifier","src":"4050:13:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":299,"type":"address","value":"_a"},"id":307,"name":"Identifier","src":"4064:2:11"}],"id":308,"name":"FunctionCall","src":"4050:17:11"}],"id":309,"name":"VariableDeclarationStatement","src":"4018:49:11"},{"attributes":{"functionReturnParameters":303},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":305,"type":"bool","value":"available"},"id":310,"name":"Identifier","src":"4084:9:11"}],"id":311,"name":"Return","src":"4077:16:11"}],"id":312,"name":"Block","src":"4008:92:11"}],"id":313,"name":"FunctionDefinition","src":"3940:160:11"},{"attributes":{"constant":true,"documentation":"@notice Checks whether a token is burnable\n @return bool burnable or not","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_isTokenBurnable","payable":false,"scope":360,"stateMutability":"view","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_a","scope":329,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":314,"name":"ElementaryTypeName","src":"4220:7:11"}],"id":315,"name":"VariableDeclaration","src":"4220:10:11"}],"id":316,"name":"ParameterList","src":"4219:12:11"},{"children":[{"attributes":{"constant":false,"name":"","scope":329,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":317,"name":"ElementaryTypeName","src":"4255:4:11"}],"id":318,"name":"VariableDeclaration","src":"4255:4:11"}],"id":319,"name":"ParameterList","src":"4254:6:11"},{"children":[{"attributes":{"assignments":[null,null,null,null,null,321,null]},"children":[{"attributes":{"constant":false,"name":"burnable","scope":329,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":320,"name":"ElementaryTypeName","src":"4283:4:11"}],"id":321,"name":"VariableDeclaration","src":"4283:13:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple(string memory,uint256,uint256,bool,bool,bool,uint256)","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":235,"type":"function (address) view returns (string memory,uint256,uint256,bool,bool,bool,uint256)","value":"_getTokenInfo"},"id":322,"name":"Identifier","src":"4302:13:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":315,"type":"address","value":"_a"},"id":323,"name":"Identifier","src":"4316:2:11"}],"id":324,"name":"FunctionCall","src":"4302:17:11"}],"id":325,"name":"VariableDeclarationStatement","src":"4271:48:11"},{"attributes":{"functionReturnParameters":319},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":321,"type":"bool","value":"burnable"},"id":326,"name":"Identifier","src":"4336:8:11"}],"id":327,"name":"Return","src":"4329:15:11"}],"id":328,"name":"Block","src":"4261:90:11"}],"id":329,"name":"FunctionDefinition","src":"4194:157:11"},{"attributes":{"constant":true,"documentation":"@notice Checks whether a token is loadable\n @return bool loadable or not","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_isTokenLoadable","payable":false,"scope":360,"stateMutability":"view","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_a","scope":345,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":330,"name":"ElementaryTypeName","src":"4471:7:11"}],"id":331,"name":"VariableDeclaration","src":"4471:10:11"}],"id":332,"name":"ParameterList","src":"4470:12:11"},{"children":[{"attributes":{"constant":false,"name":"","scope":345,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":333,"name":"ElementaryTypeName","src":"4506:4:11"}],"id":334,"name":"VariableDeclaration","src":"4506:4:11"}],"id":335,"name":"ParameterList","src":"4505:6:11"},{"children":[{"attributes":{"assignments":[null,null,null,null,337,null,null]},"children":[{"attributes":{"constant":false,"name":"loadable","scope":345,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":336,"name":"ElementaryTypeName","src":"4532:4:11"}],"id":337,"name":"VariableDeclaration","src":"4532:13:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple(string memory,uint256,uint256,bool,bool,bool,uint256)","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":235,"type":"function (address) view returns (string memory,uint256,uint256,bool,bool,bool,uint256)","value":"_getTokenInfo"},"id":338,"name":"Identifier","src":"4553:13:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":331,"type":"address","value":"_a"},"id":339,"name":"Identifier","src":"4567:2:11"}],"id":340,"name":"FunctionCall","src":"4553:17:11"}],"id":341,"name":"VariableDeclarationStatement","src":"4522:48:11"},{"attributes":{"functionReturnParameters":335},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":337,"type":"bool","value":"loadable"},"id":342,"name":"Identifier","src":"4587:8:11"}],"id":343,"name":"Return","src":"4580:15:11"}],"id":344,"name":"Block","src":"4512:90:11"}],"id":345,"name":"FunctionDefinition","src":"4445:157:11"},{"attributes":{"constant":true,"documentation":"@notice This gets the address of the stablecoin\n @return the address of the stablecoin contract.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_stablecoin","payable":false,"scope":360,"stateMutability":"view","superFunction":null,"visibility":"internal"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":346,"name":"ParameterList","src":"4740:2:11"},{"children":[{"attributes":{"constant":false,"name":"","scope":359,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":347,"name":"ElementaryTypeName","src":"4766:7:11"}],"id":348,"name":"VariableDeclaration","src":"4766:7:11"}],"id":349,"name":"ParameterList","src":"4765:9:11"},{"children":[{"attributes":{"functionReturnParameters":349},"children":[{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"stablecoin","referencedDeclaration":1011,"type":"function () view external returns (address)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract ITokenWhitelist","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":1012,"type":"type(contract ITokenWhitelist)","value":"ITokenWhitelist"},"id":350,"name":"Identifier","src":"4792:15:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[null],"referencedDeclaration":179,"type":"function (bytes32) view returns (address)","value":"_ensResolve"},"id":351,"name":"Identifier","src":"4808:11:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":188,"type":"bytes32","value":"_tokenWhitelistNode"},"id":352,"name":"Identifier","src":"4820:19:11"}],"id":353,"name":"FunctionCall","src":"4808:32:11"}],"id":354,"name":"FunctionCall","src":"4792:49:11"}],"id":355,"name":"MemberAccess","src":"4792:60:11"}],"id":356,"name":"FunctionCall","src":"4792:62:11"}],"id":357,"name":"Return","src":"4785:69:11"}],"id":358,"name":"Block","src":"4775:86:11"}],"id":359,"name":"FunctionDefinition","src":"4720:141:11"}],"id":360,"name":"ContractDefinition","src":"968:3896:11"}],"id":361,"name":"SourceUnit","src":"778:4087:11"}},"mocks/tokenWhitelistableExporter.sol":{"AST":{"attributes":{"absolutePath":"mocks/tokenWhitelistableExporter.sol","exportedSymbols":{"TokenWhitelistableExporter":[129]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".25"]},"id":1,"name":"PragmaDirective","src":"0:24:12"},{"attributes":{"SourceUnit":361,"absolutePath":"internals/tokenWhitelistable.sol","file":"../internals/tokenWhitelistable.sol","scope":130,"symbolAliases":[null],"unitAlias":""},"id":2,"name":"ImportDirective","src":"26:45:12"},{"attributes":{"SourceUnit":181,"absolutePath":"internals/ensResolvable.sol","file":"../internals/ensResolvable.sol","scope":130,"symbolAliases":[null],"unitAlias":""},"id":3,"name":"ImportDirective","src":"72:40:12"},{"attributes":{"contractDependencies":[180,360],"contractKind":"contract","documentation":null,"fullyImplemented":true,"linearizedBaseContracts":[129,360,180],"name":"TokenWhitelistableExporter","scope":130},"children":[{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"ENSResolvable","referencedDeclaration":180,"type":"contract ENSResolvable"},"id":4,"name":"UserDefinedTypeName","src":"153:13:12"}],"id":5,"name":"InheritanceSpecifier","src":"153:13:12"},{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"TokenWhitelistable","referencedDeclaration":360,"type":"contract TokenWhitelistable"},"id":6,"name":"UserDefinedTypeName","src":"168:18:12"}],"id":7,"name":"InheritanceSpecifier","src":"168:18:12"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":true,"name":"","payable":false,"scope":129,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"_ens_","scope":21,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":8,"name":"ElementaryTypeName","src":"204:7:12"}],"id":9,"name":"VariableDeclaration","src":"204:13:12"},{"attributes":{"constant":false,"name":"_tokenWhitelistName_","scope":21,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":10,"name":"ElementaryTypeName","src":"219:7:12"}],"id":11,"name":"VariableDeclaration","src":"219:28:12"}],"id":12,"name":"ParameterList","src":"203:45:12"},{"attributes":{"parameters":[null]},"children":[],"id":19,"name":"ParameterList","src":"318:0:12"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":180,"type":"type(contract ENSResolvable)","value":"ENSResolvable"},"id":13,"name":"Identifier","src":"249:13:12"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9,"type":"address","value":"_ens_"},"id":14,"name":"Identifier","src":"263:5:12"}],"id":15,"name":"ModifierInvocation","src":"249:20:12"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":360,"type":"type(contract TokenWhitelistable)","value":"TokenWhitelistable"},"id":16,"name":"Identifier","src":"270:18:12"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11,"type":"bytes32","value":"_tokenWhitelistName_"},"id":17,"name":"Identifier","src":"289:20:12"}],"id":18,"name":"ModifierInvocation","src":"270:40:12"},{"attributes":{"statements":[null]},"children":[],"id":20,"name":"Block","src":"318:2:12"}],"id":21,"name":"FunctionDefinition","src":"192:128:12"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"getTokenInfo","payable":false,"scope":129,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_a","scope":45,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":22,"name":"ElementaryTypeName","src":"346:7:12"}],"id":23,"name":"VariableDeclaration","src":"346:10:12"}],"id":24,"name":"ParameterList","src":"345:12:12"},{"children":[{"attributes":{"constant":false,"name":"","scope":45,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":25,"name":"ElementaryTypeName","src":"381:6:12"}],"id":26,"name":"VariableDeclaration","src":"381:6:12"},{"attributes":{"constant":false,"name":"","scope":45,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":27,"name":"ElementaryTypeName","src":"389:7:12"}],"id":28,"name":"VariableDeclaration","src":"389:7:12"},{"attributes":{"constant":false,"name":"","scope":45,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":29,"name":"ElementaryTypeName","src":"398:7:12"}],"id":30,"name":"VariableDeclaration","src":"398:7:12"},{"attributes":{"constant":false,"name":"","scope":45,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":31,"name":"ElementaryTypeName","src":"407:4:12"}],"id":32,"name":"VariableDeclaration","src":"407:4:12"},{"attributes":{"constant":false,"name":"","scope":45,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":33,"name":"ElementaryTypeName","src":"413:4:12"}],"id":34,"name":"VariableDeclaration","src":"413:4:12"},{"attributes":{"constant":false,"name":"","scope":45,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":35,"name":"ElementaryTypeName","src":"419:4:12"}],"id":36,"name":"VariableDeclaration","src":"419:4:12"},{"attributes":{"constant":false,"name":"","scope":45,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":37,"name":"ElementaryTypeName","src":"425:7:12"}],"id":38,"name":"VariableDeclaration","src":"425:7:12"}],"id":39,"name":"ParameterList","src":"380:53:12"},{"children":[{"attributes":{"functionReturnParameters":39},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple(string memory,uint256,uint256,bool,bool,bool,uint256)","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":235,"type":"function (address) view returns (string memory,uint256,uint256,bool,bool,bool,uint256)","value":"_getTokenInfo"},"id":40,"name":"Identifier","src":"449:13:12"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":23,"type":"address","value":"_a"},"id":41,"name":"Identifier","src":"463:2:12"}],"id":42,"name":"FunctionCall","src":"449:17:12"}],"id":43,"name":"Return","src":"442:24:12"}],"id":44,"name":"Block","src":"434:37:12"}],"id":45,"name":"FunctionDefinition","src":"324:147:12"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"getStablecoinInfo","payable":false,"scope":129,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":46,"name":"ParameterList","src":"501:2:12"},{"children":[{"attributes":{"constant":false,"name":"","scope":66,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":47,"name":"ElementaryTypeName","src":"527:6:12"}],"id":48,"name":"VariableDeclaration","src":"527:6:12"},{"attributes":{"constant":false,"name":"","scope":66,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":49,"name":"ElementaryTypeName","src":"535:7:12"}],"id":50,"name":"VariableDeclaration","src":"535:7:12"},{"attributes":{"constant":false,"name":"","scope":66,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":51,"name":"ElementaryTypeName","src":"544:7:12"}],"id":52,"name":"VariableDeclaration","src":"544:7:12"},{"attributes":{"constant":false,"name":"","scope":66,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":53,"name":"ElementaryTypeName","src":"553:4:12"}],"id":54,"name":"VariableDeclaration","src":"553:4:12"},{"attributes":{"constant":false,"name":"","scope":66,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":55,"name":"ElementaryTypeName","src":"559:4:12"}],"id":56,"name":"VariableDeclaration","src":"559:4:12"},{"attributes":{"constant":false,"name":"","scope":66,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":57,"name":"ElementaryTypeName","src":"565:4:12"}],"id":58,"name":"VariableDeclaration","src":"565:4:12"},{"attributes":{"constant":false,"name":"","scope":66,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":59,"name":"ElementaryTypeName","src":"571:7:12"}],"id":60,"name":"VariableDeclaration","src":"571:7:12"}],"id":61,"name":"ParameterList","src":"526:53:12"},{"children":[{"attributes":{"functionReturnParameters":61},"children":[{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple(string memory,uint256,uint256,bool,bool,bool,uint256)","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"overloadedDeclarations":[null],"referencedDeclaration":261,"type":"function () view returns (string memory,uint256,uint256,bool,bool,bool,uint256)","value":"_getStablecoinInfo"},"id":62,"name":"Identifier","src":"595:18:12"}],"id":63,"name":"FunctionCall","src":"595:20:12"}],"id":64,"name":"Return","src":"588:27:12"}],"id":65,"name":"Block","src":"580:40:12"}],"id":66,"name":"FunctionDefinition","src":"475:145:12"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"tokenAddressArray","payable":false,"scope":129,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":67,"name":"ParameterList","src":"650:2:12"},{"children":[{"attributes":{"constant":false,"name":"","scope":76,"stateVariable":false,"storageLocation":"default","type":"address[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"address[]"},"children":[{"attributes":{"name":"address","type":"address"},"id":68,"name":"ElementaryTypeName","src":"676:7:12"}],"id":69,"name":"ArrayTypeName","src":"676:9:12"}],"id":70,"name":"VariableDeclaration","src":"676:9:12"}],"id":71,"name":"ParameterList","src":"675:11:12"},{"children":[{"attributes":{"functionReturnParameters":71},"children":[{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address[] memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"overloadedDeclarations":[null],"referencedDeclaration":276,"type":"function () view returns (address[] memory)","value":"_tokenAddressArray"},"id":72,"name":"Identifier","src":"702:18:12"}],"id":73,"name":"FunctionCall","src":"702:20:12"}],"id":74,"name":"Return","src":"695:27:12"}],"id":75,"name":"Block","src":"687:40:12"}],"id":76,"name":"FunctionDefinition","src":"624:103:12"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"updateTokenRate","payable":false,"scope":129,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_token","scope":92,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":77,"name":"ElementaryTypeName","src":"756:7:12"}],"id":78,"name":"VariableDeclaration","src":"756:14:12"},{"attributes":{"constant":false,"name":"_rate","scope":92,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":79,"name":"ElementaryTypeName","src":"772:4:12"}],"id":80,"name":"VariableDeclaration","src":"772:10:12"},{"attributes":{"constant":false,"name":"_updateDate","scope":92,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":81,"name":"ElementaryTypeName","src":"784:4:12"}],"id":82,"name":"VariableDeclaration","src":"784:16:12"}],"id":83,"name":"ParameterList","src":"755:46:12"},{"attributes":{"parameters":[null]},"children":[],"id":84,"name":"ParameterList","src":"811:0:12"},{"children":[{"attributes":{"functionReturnParameters":84},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":297,"type":"function (address,uint256,uint256)","value":"_updateTokenRate"},"id":85,"name":"Identifier","src":"826:16:12"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":78,"type":"address","value":"_token"},"id":86,"name":"Identifier","src":"843:6:12"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":80,"type":"uint256","value":"_rate"},"id":87,"name":"Identifier","src":"851:5:12"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":82,"type":"uint256","value":"_updateDate"},"id":88,"name":"Identifier","src":"858:11:12"}],"id":89,"name":"FunctionCall","src":"826:44:12"}],"id":90,"name":"Return","src":"819:51:12"}],"id":91,"name":"Block","src":"811:64:12"}],"id":92,"name":"FunctionDefinition","src":"731:144:12"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"isTokenLoadable","payable":false,"scope":129,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_a","scope":104,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":93,"name":"ElementaryTypeName","src":"904:7:12"}],"id":94,"name":"VariableDeclaration","src":"904:10:12"}],"id":95,"name":"ParameterList","src":"903:12:12"},{"children":[{"attributes":{"constant":false,"name":"","scope":104,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":96,"name":"ElementaryTypeName","src":"939:4:12"}],"id":97,"name":"VariableDeclaration","src":"939:4:12"}],"id":98,"name":"ParameterList","src":"938:6:12"},{"children":[{"attributes":{"functionReturnParameters":98},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":345,"type":"function (address) view returns (bool)","value":"_isTokenLoadable"},"id":99,"name":"Identifier","src":"960:16:12"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":94,"type":"address","value":"_a"},"id":100,"name":"Identifier","src":"977:2:12"}],"id":101,"name":"FunctionCall","src":"960:20:12"}],"id":102,"name":"Return","src":"953:27:12"}],"id":103,"name":"Block","src":"945:40:12"}],"id":104,"name":"FunctionDefinition","src":"879:106:12"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"isTokenAvailable","payable":false,"scope":129,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_a","scope":116,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":105,"name":"ElementaryTypeName","src":"1015:7:12"}],"id":106,"name":"VariableDeclaration","src":"1015:10:12"}],"id":107,"name":"ParameterList","src":"1014:12:12"},{"children":[{"attributes":{"constant":false,"name":"","scope":116,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":108,"name":"ElementaryTypeName","src":"1050:4:12"}],"id":109,"name":"VariableDeclaration","src":"1050:4:12"}],"id":110,"name":"ParameterList","src":"1049:6:12"},{"children":[{"attributes":{"functionReturnParameters":110},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":313,"type":"function (address) view returns (bool)","value":"_isTokenAvailable"},"id":111,"name":"Identifier","src":"1071:17:12"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":106,"type":"address","value":"_a"},"id":112,"name":"Identifier","src":"1089:2:12"}],"id":113,"name":"FunctionCall","src":"1071:21:12"}],"id":114,"name":"Return","src":"1064:28:12"}],"id":115,"name":"Block","src":"1056:41:12"}],"id":116,"name":"FunctionDefinition","src":"989:108:12"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"isTokenBurnable","payable":false,"scope":129,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_a","scope":128,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":117,"name":"ElementaryTypeName","src":"1126:7:12"}],"id":118,"name":"VariableDeclaration","src":"1126:10:12"}],"id":119,"name":"ParameterList","src":"1125:12:12"},{"children":[{"attributes":{"constant":false,"name":"","scope":128,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":120,"name":"ElementaryTypeName","src":"1161:4:12"}],"id":121,"name":"VariableDeclaration","src":"1161:4:12"}],"id":122,"name":"ParameterList","src":"1160:6:12"},{"children":[{"attributes":{"functionReturnParameters":122},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":329,"type":"function (address) view returns (bool)","value":"_isTokenBurnable"},"id":123,"name":"Identifier","src":"1182:16:12"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":118,"type":"address","value":"_a"},"id":124,"name":"Identifier","src":"1199:2:12"}],"id":125,"name":"FunctionCall","src":"1182:20:12"}],"id":126,"name":"Return","src":"1175:27:12"}],"id":127,"name":"Block","src":"1167:40:12"}],"id":128,"name":"FunctionDefinition","src":"1101:106:12"}],"id":129,"name":"ContractDefinition","src":"114:1096:12"}],"id":130,"name":"SourceUnit","src":"0:1211:12"}}},"version":"0.4.25+commit.59dbf8f1.Linux.g++"} \ No newline at end of file diff --git a/build/oracle/Controller.abi b/build/oracle/Controller.abi index 5df6cd3a..10bc0c9e 100644 --- a/build/oracle/Controller.abi +++ b/build/oracle/Controller.abi @@ -1 +1 @@ -[{"constant":true,"inputs":[],"name":"controllerCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_account","type":"address"}],"name":"removeAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isTransferable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_account","type":"address"}],"name":"isAdmin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"adminCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_account","type":"address"}],"name":"addAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_account","type":"address"}],"name":"addController","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_account","type":"address"},{"name":"_transferable","type":"bool"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_account","type":"address"}],"name":"isController","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_account","type":"address"}],"name":"removeController","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_ownerAddress_","type":"address"},{"name":"_transferable_","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_sender","type":"address"},{"indexed":false,"name":"_controller","type":"address"}],"name":"AddedController","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_sender","type":"address"},{"indexed":false,"name":"_controller","type":"address"}],"name":"RemovedController","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_sender","type":"address"},{"indexed":false,"name":"_admin","type":"address"}],"name":"AddedAdmin","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_sender","type":"address"},{"indexed":false,"name":"_admin","type":"address"}],"name":"RemovedAdmin","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_from","type":"address"},{"indexed":false,"name":"_to","type":"address"}],"name":"TransferredOwnership","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_locked","type":"address"}],"name":"LockedOwnership","type":"event"}] \ No newline at end of file +[{"constant":true,"inputs":[],"name":"controllerCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_account","type":"address"}],"name":"removeAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isTransferable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_account","type":"address"}],"name":"isAdmin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"adminCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_account","type":"address"}],"name":"addAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_asset","type":"address"},{"name":"_amount","type":"uint256"}],"name":"claim","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_account","type":"address"}],"name":"addController","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_account","type":"address"},{"name":"_transferable","type":"bool"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_account","type":"address"}],"name":"isController","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_account","type":"address"}],"name":"removeController","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_ownerAddress_","type":"address"},{"name":"_transferable_","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_sender","type":"address"},{"indexed":false,"name":"_controller","type":"address"}],"name":"AddedController","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_sender","type":"address"},{"indexed":false,"name":"_controller","type":"address"}],"name":"RemovedController","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_sender","type":"address"},{"indexed":false,"name":"_admin","type":"address"}],"name":"AddedAdmin","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_sender","type":"address"},{"indexed":false,"name":"_admin","type":"address"}],"name":"RemovedAdmin","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_to","type":"address"},{"indexed":false,"name":"_asset","type":"address"},{"indexed":false,"name":"_amount","type":"uint256"}],"name":"Claimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_from","type":"address"},{"indexed":false,"name":"_to","type":"address"}],"name":"TransferredOwnership","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_locked","type":"address"}],"name":"LockedOwnership","type":"event"}] \ No newline at end of file diff --git a/build/oracle/Controller.bin b/build/oracle/Controller.bin index bbc39dbe..afa63062 100644 --- a/build/oracle/Controller.bin +++ b/build/oracle/Controller.bin @@ -1 +1 @@ -608060405234801561001057600080fd5b5060405160408061103a83398101604052805160209091015160008054600160a060020a031916600160a060020a0384161760a060020a60ff02191674010000000000000000000000000000000000000000831515810291909117918290558391839160ff91041615156100bb5760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b6040805160008152600160a060020a038416602082015281517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea5929181900390910190a150505050610f28806101126000396000f3006080604052600436106100b95763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166315b9a8b881146100be5780631785f53c146100e55780632121dc751461010857806324d7806c146101315780632b7832b3146101525780637048027514610167578063715018a6146101885780638da5cb5b1461019d578063a7fc7a07146101ce578063b242e534146101ef578063b429afeb14610215578063f6a74ed714610236575b600080fd5b3480156100ca57600080fd5b506100d3610257565b60408051918252519081900360200190f35b3480156100f157600080fd5b50610106600160a060020a036004351661025d565b005b34801561011457600080fd5b5061011d6102b6565b604080519115158252519081900360200190f35b34801561013d57600080fd5b5061011d600160a060020a03600435166102d7565b34801561015e57600080fd5b506100d36102f5565b34801561017357600080fd5b50610106600160a060020a03600435166102fb565b34801561019457600080fd5b50610106610351565b3480156101a957600080fd5b506101b261046c565b60408051600160a060020a039092168252519081900360200190f35b3480156101da57600080fd5b50610106600160a060020a036004351661047b565b3480156101fb57600080fd5b50610106600160a060020a036004351660243515156104e3565b34801561022157600080fd5b5061011d600160a060020a0360043516610722565b34801561024257600080fd5b50610106600160a060020a0360043516610740565b60045490565b610266336107a8565b15156102aa576040805160e560020a62461bcd0281526020600482015260166024820152600080516020610edd833981519152604482015290519081900360640190fd5b6102b3816107bc565b50565b60005474010000000000000000000000000000000000000000900460ff1690565b600160a060020a031660009081526001602052604090205460ff1690565b60025490565b610304336107a8565b1515610348576040805160e560020a62461bcd0281526020600482015260166024820152600080516020610edd833981519152604482015290519081900360640190fd5b6102b381610897565b61035a336107a8565b151561039e576040805160e560020a62461bcd0281526020600482015260166024820152600080516020610edd833981519152604482015290519081900360640190fd5b60005474010000000000000000000000000000000000000000900460ff161515610412576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916815560408051828152602081019290925280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1565b600054600160a060020a031690565b610484336102d7565b15156104da576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e2061646d696e00000000000000000000604482015290519081900360640190fd5b6102b381610b38565b6104ec336107a8565b1515610530576040805160e560020a62461bcd0281526020600482015260166024820152600080516020610edd833981519152604482015290519081900360640190fd5b60005474010000000000000000000000000000000000000000900460ff1615156105a4576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b600160a060020a038216151561062a576040805160e560020a62461bcd02815260206004820152602360248201527f6f776e65722063616e6e6f742062652073657420746f207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6000805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000831515908102919091179091556106aa5760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b60005460408051600160a060020a039283168152918416602083015280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1506000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a031660009081526003602052604090205460ff1690565b610749336102d7565b151561079f576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e2061646d696e00000000000000000000604482015290519081900360640190fd5b6102b381610ddc565b600054600160a060020a0390811691161490565b600160a060020a03811660009081526001602052604090205460ff16151561082e576040805160e560020a62461bcd02815260206004820181905260248201527f70726f7669646564206163636f756e74206973206e6f7420616e2061646d696e604482015290519081900360640190fd5b600160a060020a038116600081815260016020908152604091829020805460ff191690556002805460001901905581513381529081019290925280517f787a2e12f4a55b658b8f573c32432ee11a5e8b51677d1e1e937aaf6a0bb5776e9281900390910190a150565b600160a060020a03811660009081526001602052604090205460ff161561092d576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320616c726561647920616e206160448201527f646d696e00000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a03811660009081526003602052604090205460ff16156109c4576040805160e560020a62461bcd02815260206004820152602860248201527f70726f7669646564206163636f756e7420697320616c7265616479206120636f60448201527f6e74726f6c6c6572000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6109cd816107a8565b15610a48576040805160e560020a62461bcd02815260206004820152602560248201527f70726f7669646564206163636f756e7420697320616c7265616479207468652060448201527f6f776e6572000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0381161515610acd576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260016020818152604092839020805460ff1916831790556002805490920190915581513381529081019290925280517fc58b647b8ba5a8cab2f11f32673636cc1061324240972ed05e8cc005b81a4b7a9281900390910190a150565b600160a060020a03811660009081526001602052604090205460ff1615610bce576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320616c726561647920616e206160448201527f646d696e00000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a03811660009081526003602052604090205460ff1615610c65576040805160e560020a62461bcd02815260206004820152602860248201527f70726f7669646564206163636f756e7420697320616c7265616479206120636f60448201527f6e74726f6c6c6572000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b610c6e816107a8565b15610ce9576040805160e560020a62461bcd02815260206004820152602560248201527f70726f7669646564206163636f756e7420697320616c7265616479207468652060448201527f6f776e6572000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0381161515610d6e576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260036020908152604091829020805460ff1916600190811790915560048054909101905581513381529081019290925280517fb890d5abdcd5c2b61ce8bbc2cf6af9b6d7f7451830cbc85037cbdd182c86fe1d9281900390910190a150565b600160a060020a03811660009081526003602052604090205460ff161515610e73576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e74206973206e6f74206120636f6e74726f60448201527f6c6c657200000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260036020908152604091829020805460ff191690556004805460001901905581513381529081019290925280517fb6a283aaede08e15ef55c74e3014e30eb0c0040d4b156cccb77391268ea373949281900390910190a150560073656e646572206973206e6f7420616e206f776e657200000000000000000000a165627a7a72305820e3381d505607ee63056d5ba42a87e53a7b0dab423e773fa53f1e050ccb6949390029 \ No newline at end of file +608060405234801561001057600080fd5b5060405160408061128b83398101604052805160209091015160008054600160a060020a031916600160a060020a0384161760a060020a60ff02191674010000000000000000000000000000000000000000831515810291909117918290558391839160ff91041615156100bb5760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b6040805160008152600160a060020a038416602082015281517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea5929181900390910190a150505050611179806101126000396000f3006080604052600436106100c45763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166315b9a8b881146100c95780631785f53c146100f05780632121dc751461011357806324d7806c1461013c5780632b7832b31461015d5780637048027514610172578063715018a6146101935780638da5cb5b146101a8578063996cba68146101d9578063a7fc7a0714610203578063b242e53414610224578063b429afeb1461024a578063f6a74ed71461026b575b600080fd5b3480156100d557600080fd5b506100de61028c565b60408051918252519081900360200190f35b3480156100fc57600080fd5b50610111600160a060020a0360043516610292565b005b34801561011f57600080fd5b506101286102eb565b604080519115158252519081900360200190f35b34801561014857600080fd5b50610128600160a060020a036004351661030c565b34801561016957600080fd5b506100de61032a565b34801561017e57600080fd5b50610111600160a060020a0360043516610330565b34801561019f57600080fd5b50610111610386565b3480156101b457600080fd5b506101bd6104a1565b60408051600160a060020a039092168252519081900360200190f35b3480156101e557600080fd5b50610111600160a060020a03600435811690602435166044356104b0565b34801561020f57600080fd5b50610111600160a060020a036004351661050d565b34801561023057600080fd5b50610111600160a060020a03600435166024351515610575565b34801561025657600080fd5b50610128600160a060020a03600435166107b4565b34801561027757600080fd5b50610111600160a060020a03600435166107d2565b60045490565b61029b3361083a565b15156102df576040805160e560020a62461bcd028152602060048201526016602482015260008051602061112e833981519152604482015290519081900360640190fd5b6102e88161084e565b50565b60005474010000000000000000000000000000000000000000900460ff1690565b600160a060020a031660009081526001602052604090205460ff1690565b60025490565b6103393361083a565b151561037d576040805160e560020a62461bcd028152602060048201526016602482015260008051602061112e833981519152604482015290519081900360640190fd5b6102e881610929565b61038f3361083a565b15156103d3576040805160e560020a62461bcd028152602060048201526016602482015260008051602061112e833981519152604482015290519081900360640190fd5b60005474010000000000000000000000000000000000000000900460ff161515610447576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916815560408051828152602081019290925280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1565b600054600160a060020a031690565b6104b93361083a565b15156104fd576040805160e560020a62461bcd028152602060048201526016602482015260008051602061112e833981519152604482015290519081900360640190fd5b610508838383610bca565b505050565b6105163361030c565b151561056c576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e2061646d696e00000000000000000000604482015290519081900360640190fd5b6102e881610d89565b61057e3361083a565b15156105c2576040805160e560020a62461bcd028152602060048201526016602482015260008051602061112e833981519152604482015290519081900360640190fd5b60005474010000000000000000000000000000000000000000900460ff161515610636576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b600160a060020a03821615156106bc576040805160e560020a62461bcd02815260206004820152602360248201527f6f776e65722063616e6e6f742062652073657420746f207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6000805474ff00000000000000000000000000000000000000001916740100000000000000000000000000000000000000008315159081029190911790915561073c5760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b60005460408051600160a060020a039283168152918416602083015280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1506000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a031660009081526003602052604090205460ff1690565b6107db3361030c565b1515610831576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e2061646d696e00000000000000000000604482015290519081900360640190fd5b6102e88161102d565b600054600160a060020a0390811691161490565b600160a060020a03811660009081526001602052604090205460ff1615156108c0576040805160e560020a62461bcd02815260206004820181905260248201527f70726f7669646564206163636f756e74206973206e6f7420616e2061646d696e604482015290519081900360640190fd5b600160a060020a038116600081815260016020908152604091829020805460ff191690556002805460001901905581513381529081019290925280517f787a2e12f4a55b658b8f573c32432ee11a5e8b51677d1e1e937aaf6a0bb5776e9281900390910190a150565b600160a060020a03811660009081526001602052604090205460ff16156109bf576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320616c726561647920616e206160448201527f646d696e00000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a03811660009081526003602052604090205460ff1615610a56576040805160e560020a62461bcd02815260206004820152602860248201527f70726f7669646564206163636f756e7420697320616c7265616479206120636f60448201527f6e74726f6c6c6572000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b610a5f8161083a565b15610ada576040805160e560020a62461bcd02815260206004820152602560248201527f70726f7669646564206163636f756e7420697320616c7265616479207468652060448201527f6f776e6572000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0381161515610b5f576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260016020818152604092839020805460ff1916831790556002805490920190915581513381529081019290925280517fc58b647b8ba5a8cab2f11f32673636cc1061324240972ed05e8cc005b81a4b7a9281900390910190a150565b600160a060020a0382161515610c1657604051600160a060020a0384169082156108fc029083906000818181858888f19350505050158015610c10573d6000803e3d6000fd5b50610d3a565b81600160a060020a031663a9059cbb84836040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b158015610c9257600080fd5b505af1158015610ca6573d6000803e3d6000fd5b505050506040513d6020811015610cbc57600080fd5b50511515610d3a576040805160e560020a62461bcd02815260206004820152602560248201527f455243323020746f6b656e207472616e736665722077617320756e737563636560448201527f737366756c000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60408051600160a060020a0380861682528416602082015280820183905290517ff7a40077ff7a04c7e61f6f26fb13774259ddf1b6bce9ecf26a8276cdd39926839181900360600190a1505050565b600160a060020a03811660009081526001602052604090205460ff1615610e1f576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320616c726561647920616e206160448201527f646d696e00000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a03811660009081526003602052604090205460ff1615610eb6576040805160e560020a62461bcd02815260206004820152602860248201527f70726f7669646564206163636f756e7420697320616c7265616479206120636f60448201527f6e74726f6c6c6572000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b610ebf8161083a565b15610f3a576040805160e560020a62461bcd02815260206004820152602560248201527f70726f7669646564206163636f756e7420697320616c7265616479207468652060448201527f6f776e6572000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0381161515610fbf576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260036020908152604091829020805460ff1916600190811790915560048054909101905581513381529081019290925280517fb890d5abdcd5c2b61ce8bbc2cf6af9b6d7f7451830cbc85037cbdd182c86fe1d9281900390910190a150565b600160a060020a03811660009081526003602052604090205460ff1615156110c4576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e74206973206e6f74206120636f6e74726f60448201527f6c6c657200000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260036020908152604091829020805460ff191690556004805460001901905581513381529081019290925280517fb6a283aaede08e15ef55c74e3014e30eb0c0040d4b156cccb77391268ea373949281900390910190a150560073656e646572206973206e6f7420616e206f776e657200000000000000000000a165627a7a723058200e752e3a88decc3d8c5d0c377c032b4fe39f5eb66a5b9fe8ce60f184698d72480029 \ No newline at end of file diff --git a/build/oracle/Oracle.bin b/build/oracle/Oracle.bin index ee3db599..4b67afe0 100644 --- a/build/oracle/Oracle.bin +++ b/build/oracle/Oracle.bin @@ -1 +1 @@ -60806040523480156200001157600080fd5b5060405160808062005c9e83398101604081815282516020808501518386015160609687015160018054600160a060020a03808616600160a060020a031992831617928390556000805490921692169190911790556007829055600881905596860185528486527fa0f4f688350018ad1b9785991c0bde5f704b005dc79972b114dbed4a615a98379286019283527f10bfc647ebe5a320daa28771dce6a2d104f5efa2e4a85ba3760b76d46f8571ca958501959095529194919392620000da91600991620009bb565b5060028054600160a060020a031916600160a060020a0386161790556200010f6402540be4006401000000006200014d810204565b620001437ff0000000000000000000000000000000000000000000000000000000000000006401000000006200038f810204565b5050505062000a5d565b600254600160a060020a031615806200018357506002546200018190600160a060020a0316640100000000620005d6810204565b155b15620001a0576200019e6000640100000000620005da810204565b505b600260009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156200020d57600080fd5b505af115801562000222573d6000803e3d6000fd5b505050506040513d60208110156200023957600080fd5b5051600354600160a060020a039081169116146200030c57600260009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015620002be57600080fd5b505af1158015620002d3573d6000803e3d6000fd5b505050506040513d6020811015620002ea57600080fd5b505160038054600160a060020a031916600160a060020a039092169190911790555b600354604080517fca6ad1e4000000000000000000000000000000000000000000000000000000008152600481018490529051600160a060020a039092169163ca6ad1e49160248082019260009290919082900301818387803b1580156200037357600080fd5b505af115801562000388573d6000803e3d6000fd5b5050505050565b600254600160a060020a03161580620003c55750600254620003c390600160a060020a0316640100000000620005d6810204565b155b15620003e257620003e06000640100000000620005da810204565b505b600260009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156200044f57600080fd5b505af115801562000464573d6000803e3d6000fd5b505050506040513d60208110156200047b57600080fd5b5051600354600160a060020a039081169116146200054e57600260009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156200050057600080fd5b505af115801562000515573d6000803e3d6000fd5b505050506040513d60208110156200052c57600080fd5b505160038054600160a060020a031916600160a060020a039092169190911790555b600354604080517f688dcfd70000000000000000000000000000000000000000000000000000000081527fff00000000000000000000000000000000000000000000000000000000000000841660048201529051600160a060020a039092169163688dcfd79160248082019260009290919082900301818387803b1580156200037357600080fd5b3b90565b6000620005ef640100000000620005f5810204565b92915050565b60008062000620731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed640100000000620005d6810204565b11156200069e5760028054600160a060020a031916731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed17905560408051808201909152600b81527f6574685f6d61696e6e657400000000000000000000000000000000000000000060208201526200069590640100000000620009a2810204565b5060016200099f565b6000620006c873c03a2615d5efaf5f49f60b7bb6583eaec212fdf1640100000000620005d6810204565b11156200073d5760028054600160a060020a03191673c03a2615d5efaf5f49f60b7bb6583eaec212fdf117905560408051808201909152600c81527f6574685f726f707374656e33000000000000000000000000000000000000000060208201526200069590640100000000620009a2810204565b60006200076773b7a07bcf2ba2f2703b24c0691b5278999c59ac7e640100000000620005d6810204565b1115620007dc5760028054600160a060020a03191673b7a07bcf2ba2f2703b24c0691b5278999c59ac7e17905560408051808201909152600981527f6574685f6b6f76616e000000000000000000000000000000000000000000000060208201526200069590640100000000620009a2810204565b60006200080673146500cfd35b22e4a392fe0adc06de1a1368ed48640100000000620005d6810204565b11156200087b5760028054600160a060020a03191673146500cfd35b22e4a392fe0adc06de1a1368ed4817905560408051808201909152600b81527f6574685f72696e6b65627900000000000000000000000000000000000000000060208201526200069590640100000000620009a2810204565b6000620008a5736f485c8bf6fc43ea212e93bbf8ce046c7f1cb475640100000000620005d6810204565b1115620008db575060028054600160a060020a031916736f485c8bf6fc43ea212e93bbf8ce046c7f1cb47517905560016200099f565b6000620009057320e12a1f859b3feae5fb2a0a32c18f5a65555bbf640100000000620005d6810204565b11156200093b575060028054600160a060020a0319167320e12a1f859b3feae5fb2a0a32c18f5a65555bbf17905560016200099f565b6000620009657351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa640100000000620005d6810204565b11156200099b575060028054600160a060020a0319167351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa17905560016200099f565b5060005b90565b8051620009b7906004906020840190620009bb565b5050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620009fe57805160ff191683800117855562000a2e565b8280016001018555821562000a2e579182015b8281111562000a2e57825182559160200191906001019062000a11565b5062000a3c92915062000a40565b5090565b6200099f91905b8082111562000a3c576000815560010162000a47565b6152318062000a6d6000396000f3006080604052600436106100955763ffffffff60e060020a60003504166327dc297e811461009a57806338bbfa50146100fa5780633acbe96e146101965780637d73b23114610220578063877337b014610251578063937f54a414610278578063996cba681461028f578063b598f882146102b9578063c2c3d054146102c4578063ca6ad1e4146102e4578063e2b4ce97146102fc575b600080fd5b3480156100a657600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526100f89583359536956044949193909101919081908401838280828437509497506103119650505050505050565b005b34801561010657600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526100f895833595369560449491939091019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437509497506103319650505050505050565b3480156101a257600080fd5b506101ab610569565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101e55781810151838201526020016101cd565b50505050905090810190601f1680156102125780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561022c57600080fd5b506102356105f7565b60408051600160a060020a039092168252519081900360200190f35b34801561025d57600080fd5b50610266610607565b60408051918252519081900360200190f35b6100f860048035906024803590810191013561060d565b34801561029b57600080fd5b506100f8600160a060020a0360043581169060243516604435610696565b6100f86004356106ee565b3480156102d057600080fd5b506100f86004803560248101910135610747565b3480156102f057600080fd5b506100f86004356107ff565b34801561030857600080fd5b50610266610893565b60408051600081526020810190915261032d9083908390610331565b5050565b6000806000806000806000610344610899565b600160a060020a031633146103a3576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f74206f7261636c697a6500000000000000000000604482015290519081900360640190fd5b60008a8152600a6020526040902054600160a060020a03169650861515610414576040805160e560020a62461bcd02815260206004820152601c60248201527f71756572794944206d61746368657320746f2061646472657373203000000000604482015290519081900360640190fd5b61041d87610a8e565b9a505050985050505085151561047d576040805160e560020a62461bcd02815260206004820152601760248201527f746f6b656e206d75737420626520617661696c61626c65000000000000000000604482015290519081900360640190fd5b60098054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152610515938d938d9383018282801561050a5780601f106104df5761010080835404028352916020019161050a565b820191906000526020600020905b8154815290600101906020018083116104ed57829003601f168201915b505050505088610bc0565b9094509250831561055d5761053161052c8a61121d565b61159b565b60008b8152600a602052604090208054600160a060020a0319169055915082905061055d8783836115ae565b50505050505050505050565b6009805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156105ef5780601f106105c4576101008083540402835291602001916105ef565b820191906000526020600020905b8154815290600101906020018083116105d257829003601f168201915b505050505081565b600154600160a060020a03165b90565b60085490565b61061633611640565b151561065a576040805160e560020a62461bcd02815260206004820152601a60248201526000805160206151a6833981519152604482015290519081900360640190fd5b61069183838380806020026020016040519081016040528093929190818152602001838360200280828437506116d9945050505050565b505050565b61069f33611640565b15156106e3576040805160e560020a62461bcd02815260206004820152601a60248201526000805160206151a6833981519152604482015290519081900360640190fd5b610691838383611a70565b6106f733611640565b151561073b576040805160e560020a62461bcd02815260206004820152601a60248201526000805160206151a6833981519152604482015290519081900360640190fd5b61074481611c16565b50565b61075033611640565b1515610794576040805160e560020a62461bcd02815260206004820152601a60248201526000805160206151a6833981519152604482015290519081900360640190fd5b6107a060098383615048565b506040805133808252602082018381529282018490527fc6b0860ba9f580e9c5b6ba4e0954fe82827096a99d92e8c2d73009539ea8d9fa9290918591859190606082018484808284376040519201829003965090945050505050a15050565b61080833611640565b151561084c576040805160e560020a62461bcd02815260206004820152601a60248201526000805160206151a6833981519152604482015290519081900360640190fd5b61085581611f3e565b604080513381526020810183905281517ffbd406825addb09beef160afc17bb80ba28df4a3533dcd23592b82658a1c5ab4929181900390910190a150565b60075490565b600254600090600160a060020a031615806108c657506002546108c490600160a060020a031661212d565b155b156108d7576108d56000612131565b505b600260009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561092a57600080fd5b505af115801561093e573d6000803e3d6000fd5b505050506040513d602081101561095457600080fd5b5051600354600160a060020a03908116911614610a0a57600260009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156109be57600080fd5b505af11580156109d2573d6000803e3d6000fd5b505050506040513d60208110156109e857600080fd5b505160038054600160a060020a031916600160a060020a039092169190911790555b600360009054906101000a9004600160a060020a0316600160a060020a031663c281d19e6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610a5d57600080fd5b505af1158015610a71573d6000803e3d6000fd5b505050506040513d6020811015610a8757600080fd5b5051905090565b6060600080600080600080610aa460085461213b565b600160a060020a0316631f69565f896040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b158015610afe57600080fd5b505af1158015610b12573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260e0811015610b3b57600080fd5b810190808051640100000000811115610b5357600080fd5b82016020810184811115610b6657600080fd5b8151640100000000811182820187101715610b8057600080fd5b5050602082015160408301516060840151608085015160a086015160c090960151949e50929c50909a509850965090945092505050919395979092949650565b6000806060806060600080606060a58b51141515610c28576040805160e560020a62461bcd02815260206004820152601460248201527f696e76616c69642070726f6f66206c656e677468000000000000000000000000604482015290519081900360640190fd5b60418b6001815181101515610c3957fe5b016020015160f860020a9081900481020414610c9f576040805160e560020a62461bcd02815260206004820152601860248201527f696e76616c6964207369676e6174757265206c656e6774680000000000000000604482015290519081900360640190fd5b60408051604180825260808201909252906020820161082080388339019050509550610cd18b60026041896000612232565b8b519096506060908c906044908110610ce657fe5b90602001015160f860020a900460f860020a0260f860020a90046101008d6041600201815181101515610d1557fe5b016020015160f860020a90819004810204020114610d7d576040805160e560020a62461bcd02815260206004820152601660248201527f696e76616c69642068656164657273206c656e67746800000000000000000000604482015290519081900360640190fd5b604080516060808252608082019092529060208201610c0080388339019050509450610daf8b60456060886000612232565b9450610dbc85878c612287565b1515610e12576040805160e560020a62461bcd02815260206004820152601160248201527f696e76616c6964207369676e6174757265000000000000000000000000000000604482015290519081900360640190fd5b604080516014808252818301909252906020820161028080388339019050509350610e4385600b6014876000612232565b9350610e4f848a6123a2565b9093509150821515610eab576040805160e560020a62461bcd02815260206004820152600c60248201527f696e76616c696420646174650000000000000000000000000000000000000000604482015290519081900360640190fd5b60408051602c80825260608201909252906020820161058080388339019050509050610edd856034602c846000612232565b9050610ee8816127e0565b6040518082805190602001908083835b60208310610f175780518252601f199092019160209182019101610ef8565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660028d6040516020018082805190602001908083835b60208310610f7d5780518252601f199092019160209182019101610f5e565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040526040518082805190602001908083835b60208310610fe05780518252601f199092019160209182019101610fc1565b51815160209384036101000a600019018019909216911617905260405191909301945091925050808303816000865af1158015611021573d6000803e3d6000fd5b5050506040513d602081101561103657600080fd5b50516040805160208181019390935281518082038401815290820191829052805190928291908401908083835b602083106110825780518252601f199092019160209182019101611063565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191614151561110a576040805160e560020a62461bcd02815260206004820152601860248201527f726573756c742068617368206e6f74206d61746368696e670000000000000000604482015290519081900360640190fd5b7f0902fdd015aa1e56f7e6026b69c0595e82155dcbd83a83a23b40f9fe96babbd98a8d604051808060200180602001838103835285818151815260200191508051906020019080838360005b8381101561116e578181015183820152602001611156565b50505050905090810190601f16801561119b5780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b838110156111ce5781810151838201526020016111b6565b50505050905090810190601f1680156111fb5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a15060019b909a5098505050505050505050565b60606000606061122b6150c6565b846040516020018082805190602001908083835b6020831061125e5780518252601f19909201916020918201910161123f565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040525192506008831180156112a65750601c8311155b15156112fc576040805160e560020a62461bcd02815260206004820152601260248201527f6d6973666f726d617474656420696e7075740000000000000000000000000000604482015290519081900360640190fd5b604080516007808252818301909252906020820160e080388339019050509150611392856040516020018082805190602001908083835b602083106113525780518252601f199092019160209182019101611333565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405260006007856000612232565b50604080517f7b22455448223a0000000000000000000000000000000000000000000000000081529051908190036007018120835190918491819060208401908083835b602083106113f55780518252601f1990920191602091820191016113d6565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191614151561147d576040805160e560020a62461bcd02815260206004820152600f60248201527f707265666978206d69736d617463680000000000000000000000000000000000604482015290519081900360640190fd5b611486856131f8565b90506114d66114c96040805190810160405280600181526020017f3a000000000000000000000000000000000000000000000000000000000000008152506131f8565b829063ffffffff61322116565b508060000151925061152c61151f6040805190810160405280600181526020017f7d000000000000000000000000000000000000000000000000000000000000008152506131f8565b829063ffffffff61323b16565b508051600019840114611589576040805160e560020a62461bcd02815260206004820152600f60248201527f6e6f74206a736f6e20666f726d61740000000000000000000000000000000000604482015290519081900360640190fd5b611592816132a4565b95945050505050565b60006115a88260126132f7565b92915050565b6115b960085461213b565b600160a060020a031663d545782e8484846040518463ffffffff1660e060020a0281526004018084600160a060020a0316600160a060020a031681526020018381526020018281526020019350505050600060405180830381600087803b15801561162357600080fd5b505af1158015611637573d6000803e3d6000fd5b50505050505050565b600061164d60075461213b565b600160a060020a031663b429afeb836040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b1580156116a757600080fd5b505af11580156116bb573d6000803e3d6000fd5b505050506040513d60208110156116d157600080fd5b505192915050565b6116e16150c6565b6116e96150c6565b6000606060006116f76150c6565b6000875160001415611756576040805160208082526010908201527f656d70747920746f6b656e206c697374000000000000000000000000000000008183015290516000805160206151c68339815191529181900360600190a1611a65565b30600160a060020a031631885161178a60408051908101604052806003815260200160ea60020a6215549302815250613ec2565b0211156117e4576040805160208082526014908201527f696e73756666696369656e742062616c616e63650000000000000000000000008183015290516000805160206151c68339815191529181900360600190a1611a65565b611849606060405190810160405280603281526020017f68747470733a2f2f6d696e2d6170692e63727970746f636f6d706172652e636f81526020017f6d2f646174612f70726963653f6673796d3d00000000000000000000000000008152506131f8565b96506118896040805190810160405280601481526020017f267473796d733d455448267369676e3d747275650000000000000000000000008152506131f8565b9550600094505b8751851015611a65576118b988868151811015156118aa57fe5b90602001906020020151610a8e565b505050955050509350821515611919576040805160e560020a62461bcd02815260206004820152601760248201527f746f6b656e206d75737420626520617661696c61626c65000000000000000000604482015290519081900360640190fd5b611922846131f8565b604080518082019091526003815260ea60020a621554930260208201529092506119749061196e8861196261195d8c8863ffffffff6140f816565b6131f8565b9063ffffffff6140f816565b8b61416f565b9050878581518110151561198457fe5b6020908102919091018101516000838152600a90925260409091208054600160a060020a031916600160a060020a039092169190911790557fd28a52bc81f387be057d69ee89db644f94b7064c4acec0d5bc33e201a2031c056119e6836132a4565b6040805160208082528351818301528351919283929083019185019080838360005b83811015611a20578181015183820152602001611a08565b50505050905090810190601f168015611a4d5780820380516001836020036101000a031916815260200191505b509250505060405180910390a1600190940193611890565b505050505050505050565b600160a060020a0382161515611abc57604051600160a060020a0384169082156108fc029083906000818181858888f19350505050158015611ab6573d6000803e3d6000fd5b50611bc7565b81600160a060020a031663a9059cbb84836040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b158015611b1f57600080fd5b505af1158015611b33573d6000803e3d6000fd5b505050506040513d6020811015611b4957600080fd5b50511515611bc7576040805160e560020a62461bcd02815260206004820152602560248201527f455243323020746f6b656e207472616e736665722077617320756e737563636560448201527f737366756c000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60408051600160a060020a0380861682528416602082015280820183905290517ff7a40077ff7a04c7e61f6f26fb13774259ddf1b6bce9ecf26a8276cdd39926839181900360600190a1505050565b6060611c206150c6565b611c286150c6565b60006060611c346150c6565b6000611c3e614572565b9650865160001415611c9d576040805160208082526009908201527f6e6f20746f6b656e7300000000000000000000000000000000000000000000008183015290516000805160206151c68339815191529181900360600190a1611f34565b30600160a060020a0316318751611cd160408051908101604052806003815260200160ea60020a6215549302815250613ec2565b021115611d2b576040805160208082526014908201527f696e73756666696369656e742062616c616e63650000000000000000000000008183015290516000805160206151c68339815191529181900360600190a1611f34565b611d90606060405190810160405280603281526020017f68747470733a2f2f6d696e2d6170692e63727970746f636f6d706172652e636f81526020017f6d2f646174612f70726963653f6673796d3d00000000000000000000000000008152506131f8565b9550611dd06040805190810160405280601481526020017f267473796d733d455448267369676e3d747275650000000000000000000000008152506131f8565b9450600093505b8651841015611f3457611df187858151811015156118aa57fe5b5050505050509250611e02836131f8565b604080518082019091526003815260ea60020a62155493026020820152909250611e4390611e3d8761196261195d8b8863ffffffff6140f816565b8a61416f565b90508684815181101515611e5357fe5b6020908102919091018101516000838152600a90925260409091208054600160a060020a031916600160a060020a039092169190911790557fd28a52bc81f387be057d69ee89db644f94b7064c4acec0d5bc33e201a2031c05611eb5836132a4565b6040805160208082528351818301528351919283929083019185019080838360005b83811015611eef578181015183820152602001611ed7565b50505050905090810190601f168015611f1c5780820380516001836020036101000a031916815260200191505b509250505060405180910390a1600190930192611dd7565b5050505050505050565b600254600160a060020a03161580611f685750600254611f6690600160a060020a031661212d565b155b15611f7957611f776000612131565b505b600260009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611fcc57600080fd5b505af1158015611fe0573d6000803e3d6000fd5b505050506040513d6020811015611ff657600080fd5b5051600354600160a060020a039081169116146120ac57600260009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561206057600080fd5b505af1158015612074573d6000803e3d6000fd5b505050506040513d602081101561208a57600080fd5b505160038054600160a060020a031916600160a060020a039092169190911790555b600354604080517fca6ad1e4000000000000000000000000000000000000000000000000000000008152600481018490529051600160a060020a039092169163ca6ad1e49160248082019260009290919082900301818387803b15801561211257600080fd5b505af1158015612126573d6000803e3d6000fd5b5050505050565b3b90565b60006115a861464c565b60008054604080517f0178b8bf000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691630178b8bf9160248082019260209290919082900301818787803b1580156121a257600080fd5b505af11580156121b6573d6000803e3d6000fd5b505050506040513d60208110156121cc57600080fd5b5051604080517f3b3b57de000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691633b3b57de916024808201926020929091908290030181600087803b1580156116a757600080fd5b6060600080600084870192508286511015151561224e57600080fd5b505060208087019084015b86886020010182101561227a57888201518682015260209182019101612259565b5093979650505050505050565b600080600061231f6002876040518082805190602001908083835b602083106122c15780518252601f1990920191602091820191016122a2565b51815160209384036101000a600019018019909216911617905260405191909301945091925050808303816000865af1158015612302573d6000803e3d6000fd5b5050506040513d602081101561231757600080fd5b505186614974565b925090508080156123985750836040518082805190602001908083835b6020831061235b5780518252601f19909201916020918201910161233c565b5181516020939093036101000a60001901801990911692169190911790526040519201829003909120600160a060020a0390811690861614925050505b9695505050505050565b6000806123ad6150c6565b6123b56150c6565b6123bd6150c6565b60008060008060008060008d6040516020018082805190602001908083835b602083106123fb5780518252601f1990920191602091820191016123dc565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405251601414151561243b57fe5b6124448e6131f8565b99506124846040805190810160405280600181526020017f3a000000000000000000000000000000000000000000000000000000000000008152506131f8565b98506124c46040805190810160405280600181526020017f20000000000000000000000000000000000000000000000000000000000000008152506131f8565b97506124e66124e16124dc8c8b63ffffffff61322116565b6132a4565b6149fc565b96506000871180156124f85750602087105b151561254e576040805160e560020a62461bcd02815260206004820152600960248201527f646179206572726f720000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6125696125646124dc8c8b63ffffffff61322116565b614a09565b60ff16955060008611801561257e5750600d86105b15156125d4576040805160e560020a62461bcd02815260206004820152600b60248201527f6d6f6e7468206572726f72000000000000000000000000000000000000000000604482015290519081900360640190fd5b6125ea6124e16124dc8c8b63ffffffff61322116565b94506107e1851180156125fe5750610bb885105b1515612654576040805160e560020a62461bcd02815260206004820152600a60248201527f79656172206572726f7200000000000000000000000000000000000000000000604482015290519081900360640190fd5b61266a6124e16124dc8c8c63ffffffff61322116565b9350601984106126c4576040805160e560020a62461bcd02815260206004820152600a60248201527f686f7572206572726f7200000000000000000000000000000000000000000000604482015290519081900360640190fd5b6126da6124e16124dc8c8c63ffffffff61322116565b9250603c8310612734576040805160e560020a62461bcd02815260206004820152600c60248201527f6d696e757465206572726f720000000000000000000000000000000000000000604482015290519081900360640190fd5b61274a6124e16124dc8c8c63ffffffff61322116565b9150603c82106127a4576040805160e560020a62461bcd02815260206004820152600c60248201527f7365636f6e64206572726f720000000000000000000000000000000000000000604482015290519081900360640190fd5b506402540be40084026305f5e100860201620f4240870201612710840201606483020181018c81119b5099505050505050505050509250929050565b60606000806000806000606060008060008a519450846040519080825280601f01601f191660200182016040528015612823578160200160208202803883390190505b509350600085118015612837575060048506155b151561288d576040805160e560020a62461bcd02815260206004820152601760248201527f696e76616c69642062617365363420656e636f64696e67000000000000000000604482015290519081900360640190fd5b604080517f3d00000000000000000000000000000000000000000000000000000000000000815290519081900360010190208b518c9060011988019081106128d157fe5b90602001015160f860020a900460f860020a026040516020018082600160f860020a031916600160f860020a03191681526001019150506040516020818303038152906040526040518082805190602001908083835b602083106129465780518252601f199092019160209182019101612927565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902060001916141561298857600285039450612a7f565b604080517f3d00000000000000000000000000000000000000000000000000000000000000815290519081900360010190208b518c9060001988019081106129cc57fe5b90602001015160f860020a900460f860020a026040516020018082600160f860020a031916600160f860020a03191681526001019150506040516020818303038152906040526040518082805190602001908083835b60208310612a415780518252601f199092019160209182019101612a22565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020600019161415612a7f576001850394505b505060048084040260005b81811015612de1576040805160a081018252607b815260006020820152600080516020615186833981519152918101919091526000805160206151e6833981519152606082015260008051602061516683398151915260808201528b5160018301928d918110612af657fe5b90602001015160f860020a900460f860020a0260f860020a9004815181101515612b1c57fe5b90602001015160f860020a900460f860020a02985060a060405190810160405280607b81526020016000815260200160008051602061518683398151915281526020016000805160206151e683398151915281526020016000805160206151668339815191528152508b82806001019350815181101515612b9957fe5b90602001015160f860020a900460f860020a0260f860020a9004815181101515612bbf57fe5b90602001015160f860020a900460f860020a02975060a060405190810160405280607b81526020016000815260200160008051602061518683398151915281526020016000805160206151e683398151915281526020016000805160206151668339815191528152508b82806001019350815181101515612c3c57fe5b90602001015160f860020a900460f860020a0260f860020a9004815181101515612c6257fe5b90602001015160f860020a900460f860020a02965060a060405190810160405280607b81526020016000815260200160008051602061518683398151915281526020016000805160206151e683398151915281526020016000805160206151668339815191528152508b82806001019350815181101515612cdf57fe5b90602001015160f860020a900460f860020a0260f860020a9004815181101515612d0557fe5b0160200151845160f860020a9182900490910296506001840193600160f860020a03198b81166004026010828d16041716918691908110612d4257fe5b906020010190600160f860020a031916908160001a905350835160018401936010600160f860020a03198b8116919091026004828c16041716918691908110612d8757fe5b906020010190600160f860020a031916908160001a90535083516001840193600160f860020a0319898116604002891716918691908110612dc457fe5b906020010190600160f860020a031916908160001a905350612a8a565b81850360021415612f73576040805160a081018252607b815260006020820152600080516020615186833981519152918101919091526000805160206151e6833981519152606082015260008051602061516683398151915260808201528b5160018301928d918110612e5057fe5b90602001015160f860020a900460f860020a0260f860020a9004815181101515612e7657fe5b90602001015160f860020a900460f860020a02985060a060405190810160405280607b81526020016000815260200160008051602061518683398151915281526020016000805160206151e683398151915281526020016000805160206151668339815191528152508b82806001019350815181101515612ef357fe5b90602001015160f860020a900460f860020a0260f860020a9004815181101515612f1957fe5b0160200151845160f860020a9182900490910298506001840193600160f860020a03198b81166004026010828d16041716918691908110612f5657fe5b906020010190600160f860020a031916908160001a9053506131e9565b818503600314156131e9576040805160a081018252607b815260006020820152600080516020615186833981519152918101919091526000805160206151e6833981519152606082015260008051602061516683398151915260808201528b5160018301928d918110612fe257fe5b90602001015160f860020a900460f860020a0260f860020a900481518110151561300857fe5b90602001015160f860020a900460f860020a02985060a060405190810160405280607b81526020016000815260200160008051602061518683398151915281526020016000805160206151e683398151915281526020016000805160206151668339815191528152508b8280600101935081518110151561308557fe5b90602001015160f860020a900460f860020a0260f860020a90048151811015156130ab57fe5b90602001015160f860020a900460f860020a02975060a060405190810160405280607b81526020016000815260200160008051602061518683398151915281526020016000805160206151e683398151915281526020016000805160206151668339815191528152508b8280600101935081518110151561312857fe5b90602001015160f860020a900460f860020a0260f860020a900481518110151561314e57fe5b0160200151845160f860020a9182900490910297506001840193600160f860020a03198b81166004026010828d1604171691869190811061318b57fe5b906020010190600160f860020a031916908160001a905350835160018401936010600160f860020a03198b8116919091026004828c160417169186919081106131d057fe5b906020010190600160f860020a031916908160001a9053505b50508152979650505050505050565b6132006150c6565b50604080518082019091528151815260208281019082018190525b50919050565b6132296150c6565b613234838383614e3c565b5092915050565b6132436150c6565b815183516000918291101561325a5784925061329c565b5050815183516020808601519085015191019190910390600190821461328a575082516020840151819020908220145b801561329857835185510385525b8492505b505092915050565b606080600083600001516040519080825280601f01601f1916602001820160405280156132db578160200160208202803883390190505b5091506020820190506132348185602001518660000151614ead565b60008281808080808080808080805b8b51811015613b73578b517f3000000000000000000000000000000000000000000000000000000000000000908d908390811061333f57fe5b90602001015160f860020a900460f860020a02600160f860020a031916101580156133b557508b517f3900000000000000000000000000000000000000000000000000000000000000908d908390811061339557fe5b90602001015160f860020a900460f860020a02600160f860020a03191611155b80156133bf575083155b1561348957841561342a576133db8a600a63ffffffff614ef116565b8c51909a5061341d906030908e90849081106133f357fe5b90602001015160f860020a900460f860020a0260f860020a9004038b614f2690919063ffffffff16565b9950600190970196613484565b6001955061343f8b600a63ffffffff614ef116565b8c51909b50613481906030908e908490811061345757fe5b90602001015160f860020a900460f860020a0260f860020a9004038c614f2690919063ffffffff16565b9a505b613b6b565b8b517f3000000000000000000000000000000000000000000000000000000000000000908d90839081106134b957fe5b90602001015160f860020a900460f860020a02600160f860020a0319161015801561352f57508b517f3900000000000000000000000000000000000000000000000000000000000000908d908390811061350f57fe5b90602001015160f860020a900460f860020a02600160f860020a03191611155b80156135385750835b156135975761354e89600a63ffffffff614ef116565b8c51909950613590906030908e908490811061356657fe5b90602001015160f860020a900460f860020a0260f860020a9004038a614f2690919063ffffffff16565b9850613b6b565b8b517f2e00000000000000000000000000000000000000000000000000000000000000908d90839081106135c757fe5b90602001015160f860020a900460f860020a02600160f860020a03191614156136f657851515613641576040805160e560020a62461bcd02815260206004820152601560248201527f6d697373696e6720696e74656772616c20706172740000000000000000000000604482015290519081900360640190fd5b8415613697576040805160e560020a62461bcd02815260206004820152601760248201527f6475706c696361746520646563696d616c20706f696e74000000000000000000604482015290519081900360640190fd5b83156136ed576040805160e560020a62461bcd02815260206004820152601660248201527f646563696d616c206166746572206578706f6e656e7400000000000000000000604482015290519081900360640190fd5b60019450613b6b565b8b517f2d00000000000000000000000000000000000000000000000000000000000000908d908390811061372657fe5b90602001015160f860020a900460f860020a02600160f860020a031916141561385857821561379f576040805160e560020a62461bcd02815260206004820152600b60248201527f6475706c6963617465202d000000000000000000000000000000000000000000604482015290519081900360640190fd5b81156137f5576040805160e560020a62461bcd02815260206004820152600a60248201527f6578747261207369676e00000000000000000000000000000000000000000000604482015290519081900360640190fd5b60018701811461384f576040805160e560020a62461bcd02815260206004820152601e60248201527f2d207369676e206e6f7420696d6d6564696174656c7920616674657220650000604482015290519081900360640190fd5b60019250613b6b565b8b517f2b00000000000000000000000000000000000000000000000000000000000000908d908390811061388857fe5b90602001015160f860020a900460f860020a02600160f860020a03191614156139ba578115613901576040805160e560020a62461bcd02815260206004820152600b60248201527f6475706c6963617465202b000000000000000000000000000000000000000000604482015290519081900360640190fd5b8215613957576040805160e560020a62461bcd02815260206004820152600a60248201527f6578747261207369676e00000000000000000000000000000000000000000000604482015290519081900360640190fd5b6001870181146139b1576040805160e560020a62461bcd02815260206004820152601e60248201527f2b207369676e206e6f7420696d6d6564696174656c7920616674657220650000604482015290519081900360640190fd5b60019150613b6b565b8b517f4500000000000000000000000000000000000000000000000000000000000000908d90839081106139ea57fe5b90602001015160f860020a900460f860020a02600160f860020a0319161480613a5d57508b517f6500000000000000000000000000000000000000000000000000000000000000908d9083908110613a3e57fe5b90602001015160f860020a900460f860020a02600160f860020a031916145b15613b1b57851515613ab9576040805160e560020a62461bcd02815260206004820152601560248201527f6d697373696e6720696e74656772616c20706172740000000000000000000000604482015290519081900360640190fd5b8315613b0f576040805160e560020a62461bcd02815260206004820152601960248201527f6475706c6963617465206578706f6e656e742073796d626f6c00000000000000604482015290519081900360640190fd5b60019350809650613b6b565b6040805160e560020a62461bcd02815260206004820152600d60248201527f696e76616c696420646967697400000000000000000000000000000000000000604482015290519081900360640190fd5b600101613306565b8280613b7c5750815b15613b9557600287018111613b9057600080fd5b613baa565b8315613baa57600187018111613baa57600080fd5b8215613c36578d8910613c2c57604e8e8a0310613c11576040805160e560020a62461bcd02815260206004820152600d60248201527f6578706f6e656e74203e20373700000000000000000000000000000000000000604482015290519081900360640190fd5b8d8903600a0a8b811515613c2157fe5b049a508a9c50613eb0565b888e039d50613c49565b613c468e8a63ffffffff614f2616565b9d505b878e10613d6f57604e8810613cce576040805160e560020a62461bcd02815260206004820152602260248201527f6d6f7265207468616e20373720646563696d616c20646967697473207061727360448201527f6564000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b613ce28b600a8a900a63ffffffff614ef116565b9a50613cf48b8b63ffffffff614f2616565b9a50604e888f0310613d50576040805160e560020a62461bcd02815260206004820152600d60248201527f6578706f6e656e74203e20373700000000000000000000000000000000000000604482015290519081900360640190fd5b613d68888f03600a0a8c614ef190919063ffffffff16565b9a50613eac565b968d900396604e8810613df2576040805160e560020a62461bcd02815260206004820152602260248201527f6d6f7265207468616e20373720646563696d616c20646967697473207061727360448201527f6564000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b87600a0a8a811515613e0057fe5b049950604e8e10613e81576040805160e560020a62461bcd02815260206004820152602260248201527f6d6f7265207468616e20373720646563696d616c20646967697473207061727360448201527f6564000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b613e978e600a0a8c614ef190919063ffffffff16565b9a50613ea98b8b63ffffffff614f2616565b9a505b8a9c505b50505050505050505050505092915050565b600254600090600160a060020a03161580613eef5750600254613eed90600160a060020a031661212d565b155b15613f0057613efe6000612131565b505b600260009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015613f5357600080fd5b505af1158015613f67573d6000803e3d6000fd5b505050506040513d6020811015613f7d57600080fd5b5051600354600160a060020a0390811691161461403357600260009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015613fe757600080fd5b505af1158015613ffb573d6000803e3d6000fd5b505050506040513d602081101561401157600080fd5b505160038054600160a060020a031916600160a060020a039092169190911790555b6003546040517f524f3889000000000000000000000000000000000000000000000000000000008152602060048201818152855160248401528551600160a060020a039094169363524f388993879383926044909201919085019080838360005b838110156140ac578181015183820152602001614094565b50505050905090810190601f1680156140d95780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1580156116a757600080fd5b606080600083600001518560000151016040519080825280601f01601f191660200182016040528015614135578160200160208202803883390190505b5091506020820190506141518186602001518760000151614ead565b8451602085015185516141679284019190614ead565b509392505050565b6002546000908190600160a060020a0316158061419e575060025461419c90600160a060020a031661212d565b155b156141af576141ad6000612131565b505b600260009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561420257600080fd5b505af1158015614216573d6000803e3d6000fd5b505050506040513d602081101561422c57600080fd5b5051600354600160a060020a039081169116146142e257600260009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561429657600080fd5b505af11580156142aa573d6000803e3d6000fd5b505050506040513d60208110156142c057600080fd5b505160038054600160a060020a031916600160a060020a039092169190911790555b600354604080517f2ef3accc0000000000000000000000000000000000000000000000000000000081526024810186905260048101918252875160448201528751600160a060020a0390931692632ef3accc9289928892829160640190602086019080838360005b8381101561436257818101518382015260200161434a565b50505050905090810190601f16801561438f5780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b1580156143af57600080fd5b505af11580156143c3573d6000803e3d6000fd5b505050506040513d60208110156143d957600080fd5b50519050670de0b6b3a76400003a8402018111156143fa5760009150614167565b6003546040517fc51be90f00000000000000000000000000000000000000000000000000000000815260006004820181815260648301879052608060248401908152895160848501528951600160a060020a039095169463c51be90f948794938c938c938c93604481019160a49091019060208801908083838c5b8381101561448d578181015183820152602001614475565b50505050905090810190601f1680156144ba5780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b838110156144ed5781810151838201526020016144d5565b50505050905090810190601f16801561451a5780820380516001836020036101000a031916815260200191505b5096505050505050506020604051808303818588803b15801561453c57600080fd5b505af1158015614550573d6000803e3d6000fd5b50505050506040513d602081101561456757600080fd5b505195945050505050565b606061457f60085461213b565b600160a060020a031663443dd2a46040518163ffffffff1660e060020a028152600401600060405180830381600087803b1580156145bc57600080fd5b505af11580156145d0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156145f957600080fd5b81019080805164010000000081111561461157600080fd5b8201602081018481111561462457600080fd5b815185602082028301116401000000008211171561464157600080fd5b509094505050505090565b60008061466c731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed61212d565b11156146dd5760028054600160a060020a031916731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed17905560408051808201909152600b81527f6574685f6d61696e6e657400000000000000000000000000000000000000000060208201526146d590614f38565b506001610604565b60006146fc73c03a2615d5efaf5f49f60b7bb6583eaec212fdf161212d565b11156147655760028054600160a060020a03191673c03a2615d5efaf5f49f60b7bb6583eaec212fdf117905560408051808201909152600c81527f6574685f726f707374656e33000000000000000000000000000000000000000060208201526146d590614f38565b600061478473b7a07bcf2ba2f2703b24c0691b5278999c59ac7e61212d565b11156147ed5760028054600160a060020a03191673b7a07bcf2ba2f2703b24c0691b5278999c59ac7e17905560408051808201909152600981527f6574685f6b6f76616e000000000000000000000000000000000000000000000060208201526146d590614f38565b600061480c73146500cfd35b22e4a392fe0adc06de1a1368ed4861212d565b11156148755760028054600160a060020a03191673146500cfd35b22e4a392fe0adc06de1a1368ed4817905560408051808201909152600b81527f6574685f72696e6b65627900000000000000000000000000000000000000000060208201526146d590614f38565b6000614894736f485c8bf6fc43ea212e93bbf8ce046c7f1cb47561212d565b11156148c8575060028054600160a060020a031916736f485c8bf6fc43ea212e93bbf8ce046c7f1cb4751790556001610604565b60006148e77320e12a1f859b3feae5fb2a0a32c18f5a65555bbf61212d565b111561491b575060028054600160a060020a0319167320e12a1f859b3feae5fb2a0a32c18f5a65555bbf1790556001610604565b600061493a7351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa61212d565b111561496e575060028054600160a060020a0319167351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa1790556001610604565b50600090565b60008060008060008551604114151561499357600094508493506149f2565b50505060208301516040840151606085015160001a601b60ff821610156149b857601b015b8060ff16601b141580156149d057508060ff16601c14155b156149e157600094508493506149f2565b6149ed87828585614f4b565b945094505b5050509250929050565b60006115a88260006132f7565b600080826040516020018082805190602001908083835b60208310614a3f5780518252601f199092019160209182019101614a20565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040526040518082805190602001908083835b60208310614aa25780518252601f199092019160209182019101614a83565b5181516000196020949094036101000a93909301928316921916919091179052604080519390910183900383207f4a616e00000000000000000000000000000000000000000000000000000000008452905192839003600301909220919450508314159150614b169050576001915061321b565b604080517f466562000000000000000000000000000000000000000000000000000000000081529051908190036003019020811415614b58576002915061321b565b604080517f4d6172000000000000000000000000000000000000000000000000000000000081529051908190036003019020811415614b9a576003915061321b565b604080517f417072000000000000000000000000000000000000000000000000000000000081529051908190036003019020811415614bdc576004915061321b565b604080517f4d6179000000000000000000000000000000000000000000000000000000000081529051908190036003019020811415614c1e576005915061321b565b604080517f4a756e000000000000000000000000000000000000000000000000000000000081529051908190036003019020811415614c60576006915061321b565b604080517f4a756c000000000000000000000000000000000000000000000000000000000081529051908190036003019020811415614ca2576007915061321b565b604080517f417567000000000000000000000000000000000000000000000000000000000081529051908190036003019020811415614ce4576008915061321b565b604080517f536570000000000000000000000000000000000000000000000000000000000081529051908190036003019020811415614d26576009915061321b565b604080517f4f6374000000000000000000000000000000000000000000000000000000000081529051908190036003019020811415614d6857600a915061321b565b604080517f4e6f76000000000000000000000000000000000000000000000000000000000081529051908190036003019020811415614daa57600b915061321b565b604080517f446563000000000000000000000000000000000000000000000000000000000081529051908190036003019020811415614dec57600c915061321b565b6040805160e560020a62461bcd02815260206004820152601160248201527f6e6f7420612076616c6964206d6f6e7468000000000000000000000000000000604482015290519081900360640190fd5b614e446150c6565b6000614e628560000151866020015186600001518760200151614f88565b60208087018051918601919091528051820385528651905191925001811415614e8e5760008552614ea4565b8351835186519101900385528351810160208601525b50909392505050565b60005b60208210614ed2578251845260209384019390920191601f1990910190614eb0565b50905182516020929092036101000a6000190180199091169116179052565b600080831515614f045760009150613234565b50828202828482811515614f1457fe5b0414614f1f57600080fd5b9392505050565b600082820183811015614f1f57600080fd5b805161032d9060049060208401906150dd565b60008060008060405188815287602082015286604082015285606082015260208160808360006001610bb8f1905190999098509650505050505050565b600083818080808080808c8b116150325760208b11614ffb5760018b60200360080260020a03196001029550858a511694508a8d8d010393508588511692505b828514614ff357838810614fe0578c8c019850615038565b8780600101985050858851169250614fc8565b879850615038565b8a8a209150600096505b8a8d03871161503257508987208181141561502257879850615038565b6001978801979690960195615005565b8c8c0198505b5050505050505050949350505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106150895782800160ff198235161785556150b6565b828001600101855582156150b6579182015b828111156150b657823582559160200191906001019061509b565b506150c292915061514b565b5090565b604080518082019091526000808252602082015290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061511e57805160ff19168380011785556150b6565b828001600101855582156150b6579182015b828111156150b6578251825591602001919060010190615130565b61060491905b808211156150c257600081556001016151515600001a1b1c1d1e1f202122232425262728292a2b2c2d2e2f30313233000000000000000000000000000000003e003e003f3435363738393a3b3c3d00000000000073656e646572206973206e6f74206120636f6e74726f6c6c65720000000000004eb5629fd8501532aeb93b1b6a5b5b2ae398561e56514ed4b4b0c5ac2d381b6e00000102030405060708090a0b0c0d0e0f10111213141516171819000000003fa165627a7a72305820638888b51223150c5b2df2425104396afc8cd4366fdc38cd8f5073de023ba8f60029 \ No newline at end of file +60806040523480156200001157600080fd5b5060405160808062005c9e83398101604081815282516020808501518386015160609687015160018054600160a060020a03808616600160a060020a031992831617928390556000805490921692169190911790556007829055600881905596860185528486527fa0f4f688350018ad1b9785991c0bde5f704b005dc79972b114dbed4a615a98379286019283527f10bfc647ebe5a320daa28771dce6a2d104f5efa2e4a85ba3760b76d46f8571ca958501959095529194919392620000da91600991620009bb565b5060028054600160a060020a031916600160a060020a0386161790556200010f6402540be4006401000000006200014d810204565b620001437ff0000000000000000000000000000000000000000000000000000000000000006401000000006200038f810204565b5050505062000a5d565b600254600160a060020a031615806200018357506002546200018190600160a060020a0316640100000000620005d6810204565b155b15620001a0576200019e6000640100000000620005da810204565b505b600260009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156200020d57600080fd5b505af115801562000222573d6000803e3d6000fd5b505050506040513d60208110156200023957600080fd5b5051600354600160a060020a039081169116146200030c57600260009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015620002be57600080fd5b505af1158015620002d3573d6000803e3d6000fd5b505050506040513d6020811015620002ea57600080fd5b505160038054600160a060020a031916600160a060020a039092169190911790555b600354604080517fca6ad1e4000000000000000000000000000000000000000000000000000000008152600481018490529051600160a060020a039092169163ca6ad1e49160248082019260009290919082900301818387803b1580156200037357600080fd5b505af115801562000388573d6000803e3d6000fd5b5050505050565b600254600160a060020a03161580620003c55750600254620003c390600160a060020a0316640100000000620005d6810204565b155b15620003e257620003e06000640100000000620005da810204565b505b600260009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156200044f57600080fd5b505af115801562000464573d6000803e3d6000fd5b505050506040513d60208110156200047b57600080fd5b5051600354600160a060020a039081169116146200054e57600260009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156200050057600080fd5b505af115801562000515573d6000803e3d6000fd5b505050506040513d60208110156200052c57600080fd5b505160038054600160a060020a031916600160a060020a039092169190911790555b600354604080517f688dcfd70000000000000000000000000000000000000000000000000000000081527fff00000000000000000000000000000000000000000000000000000000000000841660048201529051600160a060020a039092169163688dcfd79160248082019260009290919082900301818387803b1580156200037357600080fd5b3b90565b6000620005ef640100000000620005f5810204565b92915050565b60008062000620731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed640100000000620005d6810204565b11156200069e5760028054600160a060020a031916731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed17905560408051808201909152600b81527f6574685f6d61696e6e657400000000000000000000000000000000000000000060208201526200069590640100000000620009a2810204565b5060016200099f565b6000620006c873c03a2615d5efaf5f49f60b7bb6583eaec212fdf1640100000000620005d6810204565b11156200073d5760028054600160a060020a03191673c03a2615d5efaf5f49f60b7bb6583eaec212fdf117905560408051808201909152600c81527f6574685f726f707374656e33000000000000000000000000000000000000000060208201526200069590640100000000620009a2810204565b60006200076773b7a07bcf2ba2f2703b24c0691b5278999c59ac7e640100000000620005d6810204565b1115620007dc5760028054600160a060020a03191673b7a07bcf2ba2f2703b24c0691b5278999c59ac7e17905560408051808201909152600981527f6574685f6b6f76616e000000000000000000000000000000000000000000000060208201526200069590640100000000620009a2810204565b60006200080673146500cfd35b22e4a392fe0adc06de1a1368ed48640100000000620005d6810204565b11156200087b5760028054600160a060020a03191673146500cfd35b22e4a392fe0adc06de1a1368ed4817905560408051808201909152600b81527f6574685f72696e6b65627900000000000000000000000000000000000000000060208201526200069590640100000000620009a2810204565b6000620008a5736f485c8bf6fc43ea212e93bbf8ce046c7f1cb475640100000000620005d6810204565b1115620008db575060028054600160a060020a031916736f485c8bf6fc43ea212e93bbf8ce046c7f1cb47517905560016200099f565b6000620009057320e12a1f859b3feae5fb2a0a32c18f5a65555bbf640100000000620005d6810204565b11156200093b575060028054600160a060020a0319167320e12a1f859b3feae5fb2a0a32c18f5a65555bbf17905560016200099f565b6000620009657351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa640100000000620005d6810204565b11156200099b575060028054600160a060020a0319167351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa17905560016200099f565b5060005b90565b8051620009b7906004906020840190620009bb565b5050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620009fe57805160ff191683800117855562000a2e565b8280016001018555821562000a2e579182015b8281111562000a2e57825182559160200191906001019062000a11565b5062000a3c92915062000a40565b5090565b6200099f91905b8082111562000a3c576000815560010162000a47565b6152318062000a6d6000396000f3006080604052600436106100955763ffffffff60e060020a60003504166327dc297e811461009a57806338bbfa50146100fa5780633acbe96e146101965780637d73b23114610220578063877337b014610251578063937f54a414610278578063996cba681461028f578063b598f882146102b9578063c2c3d054146102c4578063ca6ad1e4146102e4578063e2b4ce97146102fc575b600080fd5b3480156100a657600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526100f89583359536956044949193909101919081908401838280828437509497506103119650505050505050565b005b34801561010657600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526100f895833595369560449491939091019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437509497506103319650505050505050565b3480156101a257600080fd5b506101ab610569565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101e55781810151838201526020016101cd565b50505050905090810190601f1680156102125780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561022c57600080fd5b506102356105f7565b60408051600160a060020a039092168252519081900360200190f35b34801561025d57600080fd5b50610266610607565b60408051918252519081900360200190f35b6100f860048035906024803590810191013561060d565b34801561029b57600080fd5b506100f8600160a060020a0360043581169060243516604435610696565b6100f86004356106ee565b3480156102d057600080fd5b506100f86004803560248101910135610747565b3480156102f057600080fd5b506100f86004356107ff565b34801561030857600080fd5b50610266610893565b60408051600081526020810190915261032d9083908390610331565b5050565b6000806000806000806000610344610899565b600160a060020a031633146103a3576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f74206f7261636c697a6500000000000000000000604482015290519081900360640190fd5b60008a8152600a6020526040902054600160a060020a03169650861515610414576040805160e560020a62461bcd02815260206004820152601c60248201527f71756572794944206d61746368657320746f2061646472657373203000000000604482015290519081900360640190fd5b61041d87610a8e565b9a505050985050505085151561047d576040805160e560020a62461bcd02815260206004820152601760248201527f746f6b656e206d75737420626520617661696c61626c65000000000000000000604482015290519081900360640190fd5b60098054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152610515938d938d9383018282801561050a5780601f106104df5761010080835404028352916020019161050a565b820191906000526020600020905b8154815290600101906020018083116104ed57829003601f168201915b505050505088610bc0565b9094509250831561055d5761053161052c8a61121d565b61159b565b60008b8152600a602052604090208054600160a060020a0319169055915082905061055d8783836115ae565b50505050505050505050565b6009805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156105ef5780601f106105c4576101008083540402835291602001916105ef565b820191906000526020600020905b8154815290600101906020018083116105d257829003601f168201915b505050505081565b600154600160a060020a03165b90565b60085490565b61061633611640565b151561065a576040805160e560020a62461bcd02815260206004820152601a60248201526000805160206151a6833981519152604482015290519081900360640190fd5b61069183838380806020026020016040519081016040528093929190818152602001838360200280828437506116d9945050505050565b505050565b61069f33611640565b15156106e3576040805160e560020a62461bcd02815260206004820152601a60248201526000805160206151a6833981519152604482015290519081900360640190fd5b610691838383611a70565b6106f733611640565b151561073b576040805160e560020a62461bcd02815260206004820152601a60248201526000805160206151a6833981519152604482015290519081900360640190fd5b61074481611c16565b50565b61075033611640565b1515610794576040805160e560020a62461bcd02815260206004820152601a60248201526000805160206151a6833981519152604482015290519081900360640190fd5b6107a060098383615048565b506040805133808252602082018381529282018490527fc6b0860ba9f580e9c5b6ba4e0954fe82827096a99d92e8c2d73009539ea8d9fa9290918591859190606082018484808284376040519201829003965090945050505050a15050565b61080833611640565b151561084c576040805160e560020a62461bcd02815260206004820152601a60248201526000805160206151a6833981519152604482015290519081900360640190fd5b61085581611f3e565b604080513381526020810183905281517ffbd406825addb09beef160afc17bb80ba28df4a3533dcd23592b82658a1c5ab4929181900390910190a150565b60075490565b600254600090600160a060020a031615806108c657506002546108c490600160a060020a031661212d565b155b156108d7576108d56000612131565b505b600260009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561092a57600080fd5b505af115801561093e573d6000803e3d6000fd5b505050506040513d602081101561095457600080fd5b5051600354600160a060020a03908116911614610a0a57600260009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156109be57600080fd5b505af11580156109d2573d6000803e3d6000fd5b505050506040513d60208110156109e857600080fd5b505160038054600160a060020a031916600160a060020a039092169190911790555b600360009054906101000a9004600160a060020a0316600160a060020a031663c281d19e6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610a5d57600080fd5b505af1158015610a71573d6000803e3d6000fd5b505050506040513d6020811015610a8757600080fd5b5051905090565b6060600080600080600080610aa460085461213b565b600160a060020a0316631f69565f896040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b158015610afe57600080fd5b505af1158015610b12573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260e0811015610b3b57600080fd5b810190808051640100000000811115610b5357600080fd5b82016020810184811115610b6657600080fd5b8151640100000000811182820187101715610b8057600080fd5b5050602082015160408301516060840151608085015160a086015160c090960151949e50929c50909a509850965090945092505050919395979092949650565b6000806060806060600080606060a58b51141515610c28576040805160e560020a62461bcd02815260206004820152601460248201527f696e76616c69642070726f6f66206c656e677468000000000000000000000000604482015290519081900360640190fd5b60418b6001815181101515610c3957fe5b016020015160f860020a9081900481020414610c9f576040805160e560020a62461bcd02815260206004820152601860248201527f696e76616c6964207369676e6174757265206c656e6774680000000000000000604482015290519081900360640190fd5b60408051604180825260808201909252906020820161082080388339019050509550610cd18b60026041896000612232565b8b519096506060908c906044908110610ce657fe5b90602001015160f860020a900460f860020a0260f860020a90046101008d6041600201815181101515610d1557fe5b016020015160f860020a90819004810204020114610d7d576040805160e560020a62461bcd02815260206004820152601660248201527f696e76616c69642068656164657273206c656e67746800000000000000000000604482015290519081900360640190fd5b604080516060808252608082019092529060208201610c0080388339019050509450610daf8b60456060886000612232565b9450610dbc85878c612287565b1515610e12576040805160e560020a62461bcd02815260206004820152601160248201527f696e76616c6964207369676e6174757265000000000000000000000000000000604482015290519081900360640190fd5b604080516014808252818301909252906020820161028080388339019050509350610e4385600b6014876000612232565b9350610e4f848a6123a2565b9093509150821515610eab576040805160e560020a62461bcd02815260206004820152600c60248201527f696e76616c696420646174650000000000000000000000000000000000000000604482015290519081900360640190fd5b60408051602c80825260608201909252906020820161058080388339019050509050610edd856034602c846000612232565b9050610ee8816127e0565b6040518082805190602001908083835b60208310610f175780518252601f199092019160209182019101610ef8565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660028d6040516020018082805190602001908083835b60208310610f7d5780518252601f199092019160209182019101610f5e565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040526040518082805190602001908083835b60208310610fe05780518252601f199092019160209182019101610fc1565b51815160209384036101000a600019018019909216911617905260405191909301945091925050808303816000865af1158015611021573d6000803e3d6000fd5b5050506040513d602081101561103657600080fd5b50516040805160208181019390935281518082038401815290820191829052805190928291908401908083835b602083106110825780518252601f199092019160209182019101611063565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191614151561110a576040805160e560020a62461bcd02815260206004820152601860248201527f726573756c742068617368206e6f74206d61746368696e670000000000000000604482015290519081900360640190fd5b7f0902fdd015aa1e56f7e6026b69c0595e82155dcbd83a83a23b40f9fe96babbd98a8d604051808060200180602001838103835285818151815260200191508051906020019080838360005b8381101561116e578181015183820152602001611156565b50505050905090810190601f16801561119b5780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b838110156111ce5781810151838201526020016111b6565b50505050905090810190601f1680156111fb5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a15060019b909a5098505050505050505050565b60606000606061122b6150c6565b846040516020018082805190602001908083835b6020831061125e5780518252601f19909201916020918201910161123f565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040525192506008831180156112a65750601c8311155b15156112fc576040805160e560020a62461bcd02815260206004820152601260248201527f6d6973666f726d617474656420696e7075740000000000000000000000000000604482015290519081900360640190fd5b604080516007808252818301909252906020820160e080388339019050509150611392856040516020018082805190602001908083835b602083106113525780518252601f199092019160209182019101611333565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405260006007856000612232565b50604080517f7b22455448223a0000000000000000000000000000000000000000000000000081529051908190036007018120835190918491819060208401908083835b602083106113f55780518252601f1990920191602091820191016113d6565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191614151561147d576040805160e560020a62461bcd02815260206004820152600f60248201527f707265666978206d69736d617463680000000000000000000000000000000000604482015290519081900360640190fd5b611486856131f8565b90506114d66114c96040805190810160405280600181526020017f3a000000000000000000000000000000000000000000000000000000000000008152506131f8565b829063ffffffff61322116565b508060000151925061152c61151f6040805190810160405280600181526020017f7d000000000000000000000000000000000000000000000000000000000000008152506131f8565b829063ffffffff61323b16565b508051600019840114611589576040805160e560020a62461bcd02815260206004820152600f60248201527f6e6f74206a736f6e20666f726d61740000000000000000000000000000000000604482015290519081900360640190fd5b611592816132a4565b95945050505050565b60006115a88260126132f7565b92915050565b6115b960085461213b565b600160a060020a031663d545782e8484846040518463ffffffff1660e060020a0281526004018084600160a060020a0316600160a060020a031681526020018381526020018281526020019350505050600060405180830381600087803b15801561162357600080fd5b505af1158015611637573d6000803e3d6000fd5b50505050505050565b600061164d60075461213b565b600160a060020a031663b429afeb836040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b1580156116a757600080fd5b505af11580156116bb573d6000803e3d6000fd5b505050506040513d60208110156116d157600080fd5b505192915050565b6116e16150c6565b6116e96150c6565b6000606060006116f76150c6565b6000875160001415611756576040805160208082526010908201527f656d70747920746f6b656e206c697374000000000000000000000000000000008183015290516000805160206151c68339815191529181900360600190a1611a65565b30600160a060020a031631885161178a60408051908101604052806003815260200160ea60020a6215549302815250613ec2565b0211156117e4576040805160208082526014908201527f696e73756666696369656e742062616c616e63650000000000000000000000008183015290516000805160206151c68339815191529181900360600190a1611a65565b611849606060405190810160405280603281526020017f68747470733a2f2f6d696e2d6170692e63727970746f636f6d706172652e636f81526020017f6d2f646174612f70726963653f6673796d3d00000000000000000000000000008152506131f8565b96506118896040805190810160405280601481526020017f267473796d733d455448267369676e3d747275650000000000000000000000008152506131f8565b9550600094505b8751851015611a65576118b988868151811015156118aa57fe5b90602001906020020151610a8e565b505050955050509350821515611919576040805160e560020a62461bcd02815260206004820152601760248201527f746f6b656e206d75737420626520617661696c61626c65000000000000000000604482015290519081900360640190fd5b611922846131f8565b604080518082019091526003815260ea60020a621554930260208201529092506119749061196e8861196261195d8c8863ffffffff6140f816565b6131f8565b9063ffffffff6140f816565b8b61416f565b9050878581518110151561198457fe5b6020908102919091018101516000838152600a90925260409091208054600160a060020a031916600160a060020a039092169190911790557fd28a52bc81f387be057d69ee89db644f94b7064c4acec0d5bc33e201a2031c056119e6836132a4565b6040805160208082528351818301528351919283929083019185019080838360005b83811015611a20578181015183820152602001611a08565b50505050905090810190601f168015611a4d5780820380516001836020036101000a031916815260200191505b509250505060405180910390a1600190940193611890565b505050505050505050565b600160a060020a0382161515611abc57604051600160a060020a0384169082156108fc029083906000818181858888f19350505050158015611ab6573d6000803e3d6000fd5b50611bc7565b81600160a060020a031663a9059cbb84836040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b158015611b1f57600080fd5b505af1158015611b33573d6000803e3d6000fd5b505050506040513d6020811015611b4957600080fd5b50511515611bc7576040805160e560020a62461bcd02815260206004820152602560248201527f455243323020746f6b656e207472616e736665722077617320756e737563636560448201527f737366756c000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60408051600160a060020a0380861682528416602082015280820183905290517ff7a40077ff7a04c7e61f6f26fb13774259ddf1b6bce9ecf26a8276cdd39926839181900360600190a1505050565b6060611c206150c6565b611c286150c6565b60006060611c346150c6565b6000611c3e614572565b9650865160001415611c9d576040805160208082526009908201527f6e6f20746f6b656e7300000000000000000000000000000000000000000000008183015290516000805160206151c68339815191529181900360600190a1611f34565b30600160a060020a0316318751611cd160408051908101604052806003815260200160ea60020a6215549302815250613ec2565b021115611d2b576040805160208082526014908201527f696e73756666696369656e742062616c616e63650000000000000000000000008183015290516000805160206151c68339815191529181900360600190a1611f34565b611d90606060405190810160405280603281526020017f68747470733a2f2f6d696e2d6170692e63727970746f636f6d706172652e636f81526020017f6d2f646174612f70726963653f6673796d3d00000000000000000000000000008152506131f8565b9550611dd06040805190810160405280601481526020017f267473796d733d455448267369676e3d747275650000000000000000000000008152506131f8565b9450600093505b8651841015611f3457611df187858151811015156118aa57fe5b5050505050509250611e02836131f8565b604080518082019091526003815260ea60020a62155493026020820152909250611e4390611e3d8761196261195d8b8863ffffffff6140f816565b8a61416f565b90508684815181101515611e5357fe5b6020908102919091018101516000838152600a90925260409091208054600160a060020a031916600160a060020a039092169190911790557fd28a52bc81f387be057d69ee89db644f94b7064c4acec0d5bc33e201a2031c05611eb5836132a4565b6040805160208082528351818301528351919283929083019185019080838360005b83811015611eef578181015183820152602001611ed7565b50505050905090810190601f168015611f1c5780820380516001836020036101000a031916815260200191505b509250505060405180910390a1600190930192611dd7565b5050505050505050565b600254600160a060020a03161580611f685750600254611f6690600160a060020a031661212d565b155b15611f7957611f776000612131565b505b600260009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611fcc57600080fd5b505af1158015611fe0573d6000803e3d6000fd5b505050506040513d6020811015611ff657600080fd5b5051600354600160a060020a039081169116146120ac57600260009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561206057600080fd5b505af1158015612074573d6000803e3d6000fd5b505050506040513d602081101561208a57600080fd5b505160038054600160a060020a031916600160a060020a039092169190911790555b600354604080517fca6ad1e4000000000000000000000000000000000000000000000000000000008152600481018490529051600160a060020a039092169163ca6ad1e49160248082019260009290919082900301818387803b15801561211257600080fd5b505af1158015612126573d6000803e3d6000fd5b5050505050565b3b90565b60006115a861464c565b60008054604080517f0178b8bf000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691630178b8bf9160248082019260209290919082900301818787803b1580156121a257600080fd5b505af11580156121b6573d6000803e3d6000fd5b505050506040513d60208110156121cc57600080fd5b5051604080517f3b3b57de000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691633b3b57de916024808201926020929091908290030181600087803b1580156116a757600080fd5b6060600080600084870192508286511015151561224e57600080fd5b505060208087019084015b86886020010182101561227a57888201518682015260209182019101612259565b5093979650505050505050565b600080600061231f6002876040518082805190602001908083835b602083106122c15780518252601f1990920191602091820191016122a2565b51815160209384036101000a600019018019909216911617905260405191909301945091925050808303816000865af1158015612302573d6000803e3d6000fd5b5050506040513d602081101561231757600080fd5b505186614974565b925090508080156123985750836040518082805190602001908083835b6020831061235b5780518252601f19909201916020918201910161233c565b5181516020939093036101000a60001901801990911692169190911790526040519201829003909120600160a060020a0390811690861614925050505b9695505050505050565b6000806123ad6150c6565b6123b56150c6565b6123bd6150c6565b60008060008060008060008d6040516020018082805190602001908083835b602083106123fb5780518252601f1990920191602091820191016123dc565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405251601414151561243b57fe5b6124448e6131f8565b99506124846040805190810160405280600181526020017f3a000000000000000000000000000000000000000000000000000000000000008152506131f8565b98506124c46040805190810160405280600181526020017f20000000000000000000000000000000000000000000000000000000000000008152506131f8565b97506124e66124e16124dc8c8b63ffffffff61322116565b6132a4565b6149fc565b96506000871180156124f85750602087105b151561254e576040805160e560020a62461bcd02815260206004820152600960248201527f646179206572726f720000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6125696125646124dc8c8b63ffffffff61322116565b614a09565b60ff16955060008611801561257e5750600d86105b15156125d4576040805160e560020a62461bcd02815260206004820152600b60248201527f6d6f6e7468206572726f72000000000000000000000000000000000000000000604482015290519081900360640190fd5b6125ea6124e16124dc8c8b63ffffffff61322116565b94506107e1851180156125fe5750610bb885105b1515612654576040805160e560020a62461bcd02815260206004820152600a60248201527f79656172206572726f7200000000000000000000000000000000000000000000604482015290519081900360640190fd5b61266a6124e16124dc8c8c63ffffffff61322116565b9350601984106126c4576040805160e560020a62461bcd02815260206004820152600a60248201527f686f7572206572726f7200000000000000000000000000000000000000000000604482015290519081900360640190fd5b6126da6124e16124dc8c8c63ffffffff61322116565b9250603c8310612734576040805160e560020a62461bcd02815260206004820152600c60248201527f6d696e757465206572726f720000000000000000000000000000000000000000604482015290519081900360640190fd5b61274a6124e16124dc8c8c63ffffffff61322116565b9150603c82106127a4576040805160e560020a62461bcd02815260206004820152600c60248201527f7365636f6e64206572726f720000000000000000000000000000000000000000604482015290519081900360640190fd5b506402540be40084026305f5e100860201620f4240870201612710840201606483020181018c81119b5099505050505050505050509250929050565b60606000806000806000606060008060008a519450846040519080825280601f01601f191660200182016040528015612823578160200160208202803883390190505b509350600085118015612837575060048506155b151561288d576040805160e560020a62461bcd02815260206004820152601760248201527f696e76616c69642062617365363420656e636f64696e67000000000000000000604482015290519081900360640190fd5b604080517f3d00000000000000000000000000000000000000000000000000000000000000815290519081900360010190208b518c9060011988019081106128d157fe5b90602001015160f860020a900460f860020a026040516020018082600160f860020a031916600160f860020a03191681526001019150506040516020818303038152906040526040518082805190602001908083835b602083106129465780518252601f199092019160209182019101612927565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902060001916141561298857600285039450612a7f565b604080517f3d00000000000000000000000000000000000000000000000000000000000000815290519081900360010190208b518c9060001988019081106129cc57fe5b90602001015160f860020a900460f860020a026040516020018082600160f860020a031916600160f860020a03191681526001019150506040516020818303038152906040526040518082805190602001908083835b60208310612a415780518252601f199092019160209182019101612a22565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020600019161415612a7f576001850394505b505060048084040260005b81811015612de1576040805160a081018252607b815260006020820152600080516020615186833981519152918101919091526000805160206151e6833981519152606082015260008051602061516683398151915260808201528b5160018301928d918110612af657fe5b90602001015160f860020a900460f860020a0260f860020a9004815181101515612b1c57fe5b90602001015160f860020a900460f860020a02985060a060405190810160405280607b81526020016000815260200160008051602061518683398151915281526020016000805160206151e683398151915281526020016000805160206151668339815191528152508b82806001019350815181101515612b9957fe5b90602001015160f860020a900460f860020a0260f860020a9004815181101515612bbf57fe5b90602001015160f860020a900460f860020a02975060a060405190810160405280607b81526020016000815260200160008051602061518683398151915281526020016000805160206151e683398151915281526020016000805160206151668339815191528152508b82806001019350815181101515612c3c57fe5b90602001015160f860020a900460f860020a0260f860020a9004815181101515612c6257fe5b90602001015160f860020a900460f860020a02965060a060405190810160405280607b81526020016000815260200160008051602061518683398151915281526020016000805160206151e683398151915281526020016000805160206151668339815191528152508b82806001019350815181101515612cdf57fe5b90602001015160f860020a900460f860020a0260f860020a9004815181101515612d0557fe5b0160200151845160f860020a9182900490910296506001840193600160f860020a03198b81166004026010828d16041716918691908110612d4257fe5b906020010190600160f860020a031916908160001a905350835160018401936010600160f860020a03198b8116919091026004828c16041716918691908110612d8757fe5b906020010190600160f860020a031916908160001a90535083516001840193600160f860020a0319898116604002891716918691908110612dc457fe5b906020010190600160f860020a031916908160001a905350612a8a565b81850360021415612f73576040805160a081018252607b815260006020820152600080516020615186833981519152918101919091526000805160206151e6833981519152606082015260008051602061516683398151915260808201528b5160018301928d918110612e5057fe5b90602001015160f860020a900460f860020a0260f860020a9004815181101515612e7657fe5b90602001015160f860020a900460f860020a02985060a060405190810160405280607b81526020016000815260200160008051602061518683398151915281526020016000805160206151e683398151915281526020016000805160206151668339815191528152508b82806001019350815181101515612ef357fe5b90602001015160f860020a900460f860020a0260f860020a9004815181101515612f1957fe5b0160200151845160f860020a9182900490910298506001840193600160f860020a03198b81166004026010828d16041716918691908110612f5657fe5b906020010190600160f860020a031916908160001a9053506131e9565b818503600314156131e9576040805160a081018252607b815260006020820152600080516020615186833981519152918101919091526000805160206151e6833981519152606082015260008051602061516683398151915260808201528b5160018301928d918110612fe257fe5b90602001015160f860020a900460f860020a0260f860020a900481518110151561300857fe5b90602001015160f860020a900460f860020a02985060a060405190810160405280607b81526020016000815260200160008051602061518683398151915281526020016000805160206151e683398151915281526020016000805160206151668339815191528152508b8280600101935081518110151561308557fe5b90602001015160f860020a900460f860020a0260f860020a90048151811015156130ab57fe5b90602001015160f860020a900460f860020a02975060a060405190810160405280607b81526020016000815260200160008051602061518683398151915281526020016000805160206151e683398151915281526020016000805160206151668339815191528152508b8280600101935081518110151561312857fe5b90602001015160f860020a900460f860020a0260f860020a900481518110151561314e57fe5b0160200151845160f860020a9182900490910297506001840193600160f860020a03198b81166004026010828d1604171691869190811061318b57fe5b906020010190600160f860020a031916908160001a905350835160018401936010600160f860020a03198b8116919091026004828c160417169186919081106131d057fe5b906020010190600160f860020a031916908160001a9053505b50508152979650505050505050565b6132006150c6565b50604080518082019091528151815260208281019082018190525b50919050565b6132296150c6565b613234838383614e3c565b5092915050565b6132436150c6565b815183516000918291101561325a5784925061329c565b5050815183516020808601519085015191019190910390600190821461328a575082516020840151819020908220145b801561329857835185510385525b8492505b505092915050565b606080600083600001516040519080825280601f01601f1916602001820160405280156132db578160200160208202803883390190505b5091506020820190506132348185602001518660000151614ead565b60008281808080808080808080805b8b51811015613b73578b517f3000000000000000000000000000000000000000000000000000000000000000908d908390811061333f57fe5b90602001015160f860020a900460f860020a02600160f860020a031916101580156133b557508b517f3900000000000000000000000000000000000000000000000000000000000000908d908390811061339557fe5b90602001015160f860020a900460f860020a02600160f860020a03191611155b80156133bf575083155b1561348957841561342a576133db8a600a63ffffffff614ef116565b8c51909a5061341d906030908e90849081106133f357fe5b90602001015160f860020a900460f860020a0260f860020a9004038b614f2690919063ffffffff16565b9950600190970196613484565b6001955061343f8b600a63ffffffff614ef116565b8c51909b50613481906030908e908490811061345757fe5b90602001015160f860020a900460f860020a0260f860020a9004038c614f2690919063ffffffff16565b9a505b613b6b565b8b517f3000000000000000000000000000000000000000000000000000000000000000908d90839081106134b957fe5b90602001015160f860020a900460f860020a02600160f860020a0319161015801561352f57508b517f3900000000000000000000000000000000000000000000000000000000000000908d908390811061350f57fe5b90602001015160f860020a900460f860020a02600160f860020a03191611155b80156135385750835b156135975761354e89600a63ffffffff614ef116565b8c51909950613590906030908e908490811061356657fe5b90602001015160f860020a900460f860020a0260f860020a9004038a614f2690919063ffffffff16565b9850613b6b565b8b517f2e00000000000000000000000000000000000000000000000000000000000000908d90839081106135c757fe5b90602001015160f860020a900460f860020a02600160f860020a03191614156136f657851515613641576040805160e560020a62461bcd02815260206004820152601560248201527f6d697373696e6720696e74656772616c20706172740000000000000000000000604482015290519081900360640190fd5b8415613697576040805160e560020a62461bcd02815260206004820152601760248201527f6475706c696361746520646563696d616c20706f696e74000000000000000000604482015290519081900360640190fd5b83156136ed576040805160e560020a62461bcd02815260206004820152601660248201527f646563696d616c206166746572206578706f6e656e7400000000000000000000604482015290519081900360640190fd5b60019450613b6b565b8b517f2d00000000000000000000000000000000000000000000000000000000000000908d908390811061372657fe5b90602001015160f860020a900460f860020a02600160f860020a031916141561385857821561379f576040805160e560020a62461bcd02815260206004820152600b60248201527f6475706c6963617465202d000000000000000000000000000000000000000000604482015290519081900360640190fd5b81156137f5576040805160e560020a62461bcd02815260206004820152600a60248201527f6578747261207369676e00000000000000000000000000000000000000000000604482015290519081900360640190fd5b60018701811461384f576040805160e560020a62461bcd02815260206004820152601e60248201527f2d207369676e206e6f7420696d6d6564696174656c7920616674657220650000604482015290519081900360640190fd5b60019250613b6b565b8b517f2b00000000000000000000000000000000000000000000000000000000000000908d908390811061388857fe5b90602001015160f860020a900460f860020a02600160f860020a03191614156139ba578115613901576040805160e560020a62461bcd02815260206004820152600b60248201527f6475706c6963617465202b000000000000000000000000000000000000000000604482015290519081900360640190fd5b8215613957576040805160e560020a62461bcd02815260206004820152600a60248201527f6578747261207369676e00000000000000000000000000000000000000000000604482015290519081900360640190fd5b6001870181146139b1576040805160e560020a62461bcd02815260206004820152601e60248201527f2b207369676e206e6f7420696d6d6564696174656c7920616674657220650000604482015290519081900360640190fd5b60019150613b6b565b8b517f4500000000000000000000000000000000000000000000000000000000000000908d90839081106139ea57fe5b90602001015160f860020a900460f860020a02600160f860020a0319161480613a5d57508b517f6500000000000000000000000000000000000000000000000000000000000000908d9083908110613a3e57fe5b90602001015160f860020a900460f860020a02600160f860020a031916145b15613b1b57851515613ab9576040805160e560020a62461bcd02815260206004820152601560248201527f6d697373696e6720696e74656772616c20706172740000000000000000000000604482015290519081900360640190fd5b8315613b0f576040805160e560020a62461bcd02815260206004820152601960248201527f6475706c6963617465206578706f6e656e742073796d626f6c00000000000000604482015290519081900360640190fd5b60019350809650613b6b565b6040805160e560020a62461bcd02815260206004820152600d60248201527f696e76616c696420646967697400000000000000000000000000000000000000604482015290519081900360640190fd5b600101613306565b8280613b7c5750815b15613b9557600287018111613b9057600080fd5b613baa565b8315613baa57600187018111613baa57600080fd5b8215613c36578d8910613c2c57604e8e8a0310613c11576040805160e560020a62461bcd02815260206004820152600d60248201527f6578706f6e656e74203e20373700000000000000000000000000000000000000604482015290519081900360640190fd5b8d8903600a0a8b811515613c2157fe5b049a508a9c50613eb0565b888e039d50613c49565b613c468e8a63ffffffff614f2616565b9d505b878e10613d6f57604e8810613cce576040805160e560020a62461bcd02815260206004820152602260248201527f6d6f7265207468616e20373720646563696d616c20646967697473207061727360448201527f6564000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b613ce28b600a8a900a63ffffffff614ef116565b9a50613cf48b8b63ffffffff614f2616565b9a50604e888f0310613d50576040805160e560020a62461bcd02815260206004820152600d60248201527f6578706f6e656e74203e20373700000000000000000000000000000000000000604482015290519081900360640190fd5b613d68888f03600a0a8c614ef190919063ffffffff16565b9a50613eac565b968d900396604e8810613df2576040805160e560020a62461bcd02815260206004820152602260248201527f6d6f7265207468616e20373720646563696d616c20646967697473207061727360448201527f6564000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b87600a0a8a811515613e0057fe5b049950604e8e10613e81576040805160e560020a62461bcd02815260206004820152602260248201527f6d6f7265207468616e20373720646563696d616c20646967697473207061727360448201527f6564000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b613e978e600a0a8c614ef190919063ffffffff16565b9a50613ea98b8b63ffffffff614f2616565b9a505b8a9c505b50505050505050505050505092915050565b600254600090600160a060020a03161580613eef5750600254613eed90600160a060020a031661212d565b155b15613f0057613efe6000612131565b505b600260009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015613f5357600080fd5b505af1158015613f67573d6000803e3d6000fd5b505050506040513d6020811015613f7d57600080fd5b5051600354600160a060020a0390811691161461403357600260009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015613fe757600080fd5b505af1158015613ffb573d6000803e3d6000fd5b505050506040513d602081101561401157600080fd5b505160038054600160a060020a031916600160a060020a039092169190911790555b6003546040517f524f3889000000000000000000000000000000000000000000000000000000008152602060048201818152855160248401528551600160a060020a039094169363524f388993879383926044909201919085019080838360005b838110156140ac578181015183820152602001614094565b50505050905090810190601f1680156140d95780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1580156116a757600080fd5b606080600083600001518560000151016040519080825280601f01601f191660200182016040528015614135578160200160208202803883390190505b5091506020820190506141518186602001518760000151614ead565b8451602085015185516141679284019190614ead565b509392505050565b6002546000908190600160a060020a0316158061419e575060025461419c90600160a060020a031661212d565b155b156141af576141ad6000612131565b505b600260009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561420257600080fd5b505af1158015614216573d6000803e3d6000fd5b505050506040513d602081101561422c57600080fd5b5051600354600160a060020a039081169116146142e257600260009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561429657600080fd5b505af11580156142aa573d6000803e3d6000fd5b505050506040513d60208110156142c057600080fd5b505160038054600160a060020a031916600160a060020a039092169190911790555b600354604080517f2ef3accc0000000000000000000000000000000000000000000000000000000081526024810186905260048101918252875160448201528751600160a060020a0390931692632ef3accc9289928892829160640190602086019080838360005b8381101561436257818101518382015260200161434a565b50505050905090810190601f16801561438f5780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b1580156143af57600080fd5b505af11580156143c3573d6000803e3d6000fd5b505050506040513d60208110156143d957600080fd5b50519050670de0b6b3a76400003a8402018111156143fa5760009150614167565b6003546040517fc51be90f00000000000000000000000000000000000000000000000000000000815260006004820181815260648301879052608060248401908152895160848501528951600160a060020a039095169463c51be90f948794938c938c938c93604481019160a49091019060208801908083838c5b8381101561448d578181015183820152602001614475565b50505050905090810190601f1680156144ba5780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b838110156144ed5781810151838201526020016144d5565b50505050905090810190601f16801561451a5780820380516001836020036101000a031916815260200191505b5096505050505050506020604051808303818588803b15801561453c57600080fd5b505af1158015614550573d6000803e3d6000fd5b50505050506040513d602081101561456757600080fd5b505195945050505050565b606061457f60085461213b565b600160a060020a031663443dd2a46040518163ffffffff1660e060020a028152600401600060405180830381600087803b1580156145bc57600080fd5b505af11580156145d0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156145f957600080fd5b81019080805164010000000081111561461157600080fd5b8201602081018481111561462457600080fd5b815185602082028301116401000000008211171561464157600080fd5b509094505050505090565b60008061466c731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed61212d565b11156146dd5760028054600160a060020a031916731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed17905560408051808201909152600b81527f6574685f6d61696e6e657400000000000000000000000000000000000000000060208201526146d590614f38565b506001610604565b60006146fc73c03a2615d5efaf5f49f60b7bb6583eaec212fdf161212d565b11156147655760028054600160a060020a03191673c03a2615d5efaf5f49f60b7bb6583eaec212fdf117905560408051808201909152600c81527f6574685f726f707374656e33000000000000000000000000000000000000000060208201526146d590614f38565b600061478473b7a07bcf2ba2f2703b24c0691b5278999c59ac7e61212d565b11156147ed5760028054600160a060020a03191673b7a07bcf2ba2f2703b24c0691b5278999c59ac7e17905560408051808201909152600981527f6574685f6b6f76616e000000000000000000000000000000000000000000000060208201526146d590614f38565b600061480c73146500cfd35b22e4a392fe0adc06de1a1368ed4861212d565b11156148755760028054600160a060020a03191673146500cfd35b22e4a392fe0adc06de1a1368ed4817905560408051808201909152600b81527f6574685f72696e6b65627900000000000000000000000000000000000000000060208201526146d590614f38565b6000614894736f485c8bf6fc43ea212e93bbf8ce046c7f1cb47561212d565b11156148c8575060028054600160a060020a031916736f485c8bf6fc43ea212e93bbf8ce046c7f1cb4751790556001610604565b60006148e77320e12a1f859b3feae5fb2a0a32c18f5a65555bbf61212d565b111561491b575060028054600160a060020a0319167320e12a1f859b3feae5fb2a0a32c18f5a65555bbf1790556001610604565b600061493a7351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa61212d565b111561496e575060028054600160a060020a0319167351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa1790556001610604565b50600090565b60008060008060008551604114151561499357600094508493506149f2565b50505060208301516040840151606085015160001a601b60ff821610156149b857601b015b8060ff16601b141580156149d057508060ff16601c14155b156149e157600094508493506149f2565b6149ed87828585614f4b565b945094505b5050509250929050565b60006115a88260006132f7565b600080826040516020018082805190602001908083835b60208310614a3f5780518252601f199092019160209182019101614a20565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040526040518082805190602001908083835b60208310614aa25780518252601f199092019160209182019101614a83565b5181516000196020949094036101000a93909301928316921916919091179052604080519390910183900383207f4a616e00000000000000000000000000000000000000000000000000000000008452905192839003600301909220919450508314159150614b169050576001915061321b565b604080517f466562000000000000000000000000000000000000000000000000000000000081529051908190036003019020811415614b58576002915061321b565b604080517f4d6172000000000000000000000000000000000000000000000000000000000081529051908190036003019020811415614b9a576003915061321b565b604080517f417072000000000000000000000000000000000000000000000000000000000081529051908190036003019020811415614bdc576004915061321b565b604080517f4d6179000000000000000000000000000000000000000000000000000000000081529051908190036003019020811415614c1e576005915061321b565b604080517f4a756e000000000000000000000000000000000000000000000000000000000081529051908190036003019020811415614c60576006915061321b565b604080517f4a756c000000000000000000000000000000000000000000000000000000000081529051908190036003019020811415614ca2576007915061321b565b604080517f417567000000000000000000000000000000000000000000000000000000000081529051908190036003019020811415614ce4576008915061321b565b604080517f536570000000000000000000000000000000000000000000000000000000000081529051908190036003019020811415614d26576009915061321b565b604080517f4f6374000000000000000000000000000000000000000000000000000000000081529051908190036003019020811415614d6857600a915061321b565b604080517f4e6f76000000000000000000000000000000000000000000000000000000000081529051908190036003019020811415614daa57600b915061321b565b604080517f446563000000000000000000000000000000000000000000000000000000000081529051908190036003019020811415614dec57600c915061321b565b6040805160e560020a62461bcd02815260206004820152601160248201527f6e6f7420612076616c6964206d6f6e7468000000000000000000000000000000604482015290519081900360640190fd5b614e446150c6565b6000614e628560000151866020015186600001518760200151614f88565b60208087018051918601919091528051820385528651905191925001811415614e8e5760008552614ea4565b8351835186519101900385528351810160208601525b50909392505050565b60005b60208210614ed2578251845260209384019390920191601f1990910190614eb0565b50905182516020929092036101000a6000190180199091169116179052565b600080831515614f045760009150613234565b50828202828482811515614f1457fe5b0414614f1f57600080fd5b9392505050565b600082820183811015614f1f57600080fd5b805161032d9060049060208401906150dd565b60008060008060405188815287602082015286604082015285606082015260208160808360006001610bb8f1905190999098509650505050505050565b600083818080808080808c8b116150325760208b11614ffb5760018b60200360080260020a03196001029550858a511694508a8d8d010393508588511692505b828514614ff357838810614fe0578c8c019850615038565b8780600101985050858851169250614fc8565b879850615038565b8a8a209150600096505b8a8d03871161503257508987208181141561502257879850615038565b6001978801979690960195615005565b8c8c0198505b5050505050505050949350505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106150895782800160ff198235161785556150b6565b828001600101855582156150b6579182015b828111156150b657823582559160200191906001019061509b565b506150c292915061514b565b5090565b604080518082019091526000808252602082015290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061511e57805160ff19168380011785556150b6565b828001600101855582156150b6579182015b828111156150b6578251825591602001919060010190615130565b61060491905b808211156150c257600081556001016151515600001a1b1c1d1e1f202122232425262728292a2b2c2d2e2f30313233000000000000000000000000000000003e003e003f3435363738393a3b3c3d00000000000073656e646572206973206e6f74206120636f6e74726f6c6c65720000000000004eb5629fd8501532aeb93b1b6a5b5b2ae398561e56514ed4b4b0c5ac2d381b6e00000102030405060708090a0b0c0d0e0f10111213141516171819000000003fa165627a7a72305820f4cbcb1c991e9c745a7613ffdea81721a65e2bfa7b4e94a5d186a97a5f2928ff0029 \ No newline at end of file diff --git a/build/oracle/TokenWhitelist.abi b/build/oracle/TokenWhitelist.abi index b9f49cf9..09993a1c 100644 --- a/build/oracle/TokenWhitelist.abi +++ b/build/oracle/TokenWhitelist.abi @@ -1 +1 @@ -[{"constant":true,"inputs":[{"name":"_a","type":"address"}],"name":"getTokenInfo","outputs":[{"name":"","type":"string"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"bool"},{"name":"","type":"bool"},{"name":"","type":"bool"},{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isTransferable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_tokens","type":"address[]"},{"name":"_symbols","type":"bytes32[]"},{"name":"_magnitude","type":"uint256[]"},{"name":"_loadable","type":"bool[]"},{"name":"_burnable","type":"bool[]"},{"name":"_lastUpdate","type":"uint256"}],"name":"addTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getStablecoinInfo","outputs":[{"name":"","type":"string"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"bool"},{"name":"","type":"bool"},{"name":"","type":"bool"},{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokenAddressArray","outputs":[{"name":"","type":"address[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_tokens","type":"address[]"}],"name":"removeTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ensRegistry","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"oracleNode","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_account","type":"address"},{"name":"_transferable","type":"bool"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"},{"name":"_rate","type":"uint256"},{"name":"_updateDate","type":"uint256"}],"name":"updateTokenRate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"controllerNode","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"stablecoin","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_ens_","type":"address"},{"name":"_oracleNameHash_","type":"bytes32"},{"name":"_controllerNameHash_","type":"bytes32"},{"name":"_owner_","type":"address"},{"name":"_transferable_","type":"bool"},{"name":"_stabelcoinAddress_","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_sender","type":"address"},{"indexed":false,"name":"_token","type":"address"},{"indexed":false,"name":"_rate","type":"uint256"}],"name":"UpdatedTokenRate","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_sender","type":"address"},{"indexed":false,"name":"_token","type":"address"},{"indexed":false,"name":"_symbol","type":"string"},{"indexed":false,"name":"_magnitude","type":"uint256"},{"indexed":false,"name":"_loadable","type":"bool"},{"indexed":false,"name":"_burnable","type":"bool"}],"name":"AddedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_sender","type":"address"},{"indexed":false,"name":"_token","type":"address"}],"name":"RemovedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_from","type":"address"},{"indexed":false,"name":"_to","type":"address"}],"name":"TransferredOwnership","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_locked","type":"address"}],"name":"LockedOwnership","type":"event"}] \ No newline at end of file +[{"constant":true,"inputs":[{"name":"_a","type":"address"}],"name":"getTokenInfo","outputs":[{"name":"","type":"string"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"bool"},{"name":"","type":"bool"},{"name":"","type":"bool"},{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isTransferable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_tokens","type":"address[]"},{"name":"_symbols","type":"bytes32[]"},{"name":"_magnitude","type":"uint256[]"},{"name":"_loadable","type":"bool[]"},{"name":"_burnable","type":"bool[]"},{"name":"_lastUpdate","type":"uint256"}],"name":"addTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getStablecoinInfo","outputs":[{"name":"","type":"string"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"bool"},{"name":"","type":"bool"},{"name":"","type":"bool"},{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokenAddressArray","outputs":[{"name":"","type":"address[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_tokens","type":"address[]"}],"name":"removeTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ensRegistry","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"oracleNode","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_asset","type":"address"},{"name":"_amount","type":"uint256"}],"name":"claim","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_account","type":"address"},{"name":"_transferable","type":"bool"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"},{"name":"_rate","type":"uint256"},{"name":"_updateDate","type":"uint256"}],"name":"updateTokenRate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"controllerNode","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"stablecoin","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_ens_","type":"address"},{"name":"_oracleNameHash_","type":"bytes32"},{"name":"_controllerNameHash_","type":"bytes32"},{"name":"_owner_","type":"address"},{"name":"_transferable_","type":"bool"},{"name":"_stabelcoinAddress_","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_sender","type":"address"},{"indexed":false,"name":"_token","type":"address"},{"indexed":false,"name":"_rate","type":"uint256"}],"name":"UpdatedTokenRate","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_sender","type":"address"},{"indexed":false,"name":"_token","type":"address"},{"indexed":false,"name":"_symbol","type":"string"},{"indexed":false,"name":"_magnitude","type":"uint256"},{"indexed":false,"name":"_loadable","type":"bool"},{"indexed":false,"name":"_burnable","type":"bool"}],"name":"AddedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_sender","type":"address"},{"indexed":false,"name":"_token","type":"address"}],"name":"RemovedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_to","type":"address"},{"indexed":false,"name":"_asset","type":"address"},{"indexed":false,"name":"_amount","type":"uint256"}],"name":"Claimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_from","type":"address"},{"indexed":false,"name":"_to","type":"address"}],"name":"TransferredOwnership","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_locked","type":"address"}],"name":"LockedOwnership","type":"event"}] \ No newline at end of file diff --git a/build/oracle/TokenWhitelist.bin b/build/oracle/TokenWhitelist.bin index 6d008f22..fd906e9e 100644 --- a/build/oracle/TokenWhitelist.bin +++ b/build/oracle/TokenWhitelist.bin @@ -1 +1 @@ -608060405234801561001057600080fd5b5060405160c08061189f83398101604090815281516020830151918301516060840151608085015160a09095015160018054600160a060020a03808716600160a060020a03199283161792839055600080548316938216939093179092556002859055600380548915157401000000000000000000000000000000000000000090810260a060020a60ff0219958816929094169190911793909316919091179081905594969394929392849184910460ff1615156101055760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b6040805160008152600160a060020a038416602082015281517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea5929181900390910190a15050600794909455505060068054600160a060020a031916600160a060020a03909316929092179091555061171a9050806101856000396000f3006080604052600436106100cf5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631f69565f81146100d45780632121dc751461019f57806334c73edc146101c85780633efec5e91461021d578063443dd2a4146102325780636c3824ef14610297578063715018a6146102b75780637d73b231146102cc57806380cc0dda146102fd5780638da5cb5b14610324578063b242e53414610339578063d545782e1461035f578063e2b4ce9714610386578063e9cbd8221461039b575b600080fd5b3480156100e057600080fd5b506100f5600160a060020a03600435166103b0565b6040805160208082018990529181018790528515156060820152841515608082015283151560a082015260c0810183905260e08082528951908201528851909182916101008301918b019080838360005b8381101561015e578181015183820152602001610146565b50505050905090810190601f16801561018b5780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b3480156101ab57600080fd5b506101b46104ac565b604080519115158252519081900360200190f35b3480156101d457600080fd5b5061021b602460048035828101929082013591813580830192908201359160443580830192908201359160643580830192908201359160843591820191013560a4356104ce565b005b34801561022957600080fd5b506100f5610965565b34801561023e57600080fd5b50610247610a61565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561028357818101518382015260200161026b565b505050509050019250505060405180910390f35b3480156102a357600080fd5b5061021b6004803560248101910135610ac3565b3480156102c357600080fd5b5061021b610d62565b3480156102d857600080fd5b506102e1610e8f565b60408051600160a060020a039092168252519081900360200190f35b34801561030957600080fd5b50610312610e9e565b60408051918252519081900360200190f35b34801561033057600080fd5b506102e1610ea4565b34801561034557600080fd5b5061021b600160a060020a03600435166024351515610eb3565b34801561036b57600080fd5b5061021b600160a060020a0360043516602435604435611104565b34801561039257600080fd5b50610312611266565b3480156103a757600080fd5b506102e161126c565b600160a060020a0381166000908152600460208181526040808420600180820154600280840154600385015497850154855487516101009682161587026000190190911693909304601f81018990048902840189019097528683526060999889988998899889988998919788979296929560ff808216969382048116956201000090920416939289919083018282801561048b5780601f106104605761010080835404028352916020019161048b565b820191906000526020600020905b81548152906001019060200180831161046e57829003601f168201915b50505050509650975097509750975097509750975050919395979092949650565b60035474010000000000000000000000000000000000000000900460ff165b90565b600060606104db3361127b565b1515610531576040805160e560020a62461bcd02815260206004820152601a60248201527f73656e646572206973206e6f74206120636f6e74726f6c6c6572000000000000604482015290519081900360640190fd5b8b8a14801561053f57508b88145b801561054a57508b86145b801561055557508b86145b15156105ab576040805160e560020a62461bcd02815260206004820152601e60248201527f706172616d65746572206c656e6774687320646f206e6f74206d617463680000604482015290519081900360640190fd5b600091505b8b82101561095657600460008e8e858181106105c857fe5b60209081029290920135600160a060020a03168352508101919091526040016000206003015460ff1615610646576040805160e560020a62461bcd02815260206004820152601760248201527f746f6b656e20616c726561647920617661696c61626c65000000000000000000604482015290519081900360640190fd5b61066c6106678c8c8581811061065857fe5b6020029190910135905061132d565b611359565b905060e0604051908101604052808281526020018a8a85818110151561068e57fe5b9050602002013581526020016000815260200160011515815260200188888581811015156106b857fe5b602090810292909201351515835250018686858181106106d457fe5b60209081029290920135151583525001849052600460008f8f868181106106f757fe5b90506020020135600160a060020a0316600160a060020a0316600160a060020a0316815260200190815260200160002060008201518160000190805190602001906107439291906115cf565b5060208201516001820155604082015160028201556060820151600382018054608085015160a08601511515620100000262ff0000199115156101000261ff001995151560ff199094169390931794909416919091171691909117905560c09091015160049091015560058d8d848181106107ba57fe5b8354600181018555600094855260209485902001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0395909202939093013593909316929092179055507f1802e89da3f6ef84e024e37454c226b1e13bf846ce71cd2a1d24faef9cbf779b338e8e8581811061083157fe5b90506020020135600160a060020a0316838c8c87818110151561085057fe5b905060200201358b8b88818110151561086557fe5b9050602002013515158a8a89818110151561087c57fe5b9050602002013515156040518087600160a060020a0316600160a060020a0316815260200186600160a060020a0316600160a060020a03168152602001806020018581526020018415151515815260200183151515158152602001828103825286818151815260200191508051906020019080838360005b8381101561090c5781810151838201526020016108f4565b50505050905090810190601f1680156109395780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390a16001909101906105b0565b50505050505050505050505050565b600654600160a060020a03166000908152600460208181526040808420600180820154600280840154600385015497850154855487516101009682161587026000190190911693909304601f81018990048902840189019097528683526060999889988998899889988998919788979296929560ff8082169693820481169562010000909204169392899190830182828015610a425780601f10610a1757610100808354040283529160200191610a42565b820191906000526020600020905b815481529060010190602001808311610a2557829003601f168201915b5050505050965097509750975097509750975097505090919293949596565b60606005805480602002602001604051908101604052809291908181526020018280548015610ab957602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610a9b575b5050505050905090565b6000806000610ad13361127b565b1515610b27576040805160e560020a62461bcd02815260206004820152601a60248201527f73656e646572206973206e6f74206120636f6e74726f6c6c6572000000000000604482015290519081900360640190fd5b600092505b83831015610d5b5760046000868686818110610b4457fe5b60209081029290920135600160a060020a03168352508101919091526040016000206003015460ff161515610bc3576040805160e560020a62461bcd02815260206004820152601660248201527f746f6b656e206973206e6f7420617661696c61626c6500000000000000000000604482015290519081900360640190fd5b848484818110610bcf57fe5b60209081029290920135600160a060020a03166000818152600490935260408320909450919050610c00828261164d565b506000600182018190556002820181905560038201805462ffffff19169055600490910181905590505b600554610c3e90600163ffffffff6113b316565b811015610cf95781600160a060020a0316600582815481101515610c5e57fe5b600091825260209091200154600160a060020a03161415610cf15760058054610c8e90600163ffffffff6113b316565b81548110610c9857fe5b60009182526020909120015460058054600160a060020a039092169183908110610cbe57fe5b9060005260206000200160006101000a815481600160a060020a030219169083600160a060020a03160217905550610cf9565b600101610c2a565b6005805490610d0c906000198301611694565b5060408051338152600160a060020a038416602082015281517f703f7e3f084d5b8dcc12fddcfd9a70d65b6b21ec7659e4608dbaf4419ede3ad0929181900390910190a1600190920191610b2c565b5050505050565b610d6b336113ca565b1515610dc1576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e206f776e657200000000000000000000604482015290519081900360640190fd5b60035474010000000000000000000000000000000000000000900460ff161515610e35576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b6003805473ffffffffffffffffffffffffffffffffffffffff19169055604080516000808252602082015281517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea5929181900390910190a1565b600154600160a060020a031690565b60075490565b600354600160a060020a031690565b610ebc336113ca565b1515610f12576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e206f776e657200000000000000000000604482015290519081900360640190fd5b60035474010000000000000000000000000000000000000000900460ff161515610f86576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b600160a060020a038216151561100c576040805160e560020a62461bcd02815260206004820152602360248201527f6f776e65722063616e6e6f742062652073657420746f207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6003805474ff00000000000000000000000000000000000000001916740100000000000000000000000000000000000000008315159081029190911790915561108c5760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b60035460408051600160a060020a039283168152918416602083015280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1506003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60006111116007546113de565b905061111c3361127b565b8061112f575033600160a060020a038216145b1515611185576040805160e560020a62461bcd02815260206004820152601b60248201527f656974686572206f7261636c65206f7220636f6e74726f6c6c65720000000000604482015290519081900360640190fd5b600160a060020a03841660009081526004602052604090206003015460ff1615156111fa576040805160e560020a62461bcd02815260206004820152601660248201527f746f6b656e206973206e6f7420617661696c61626c6500000000000000000000604482015290519081900360640190fd5b600160a060020a03841660008181526004602081815260409283902060028101889055909101859055815133815290810192909252818101859052517fdb3a4cfb4cd8ac94343ff7440cee8d05ade309056203f0e53ca49b6db8197c7d9181900360600190a150505050565b60025490565b600654600160a060020a031690565b60006112886002546113de565b600160a060020a031663b429afeb836040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b1580156112fb57600080fd5b505af115801561130f573d6000803e3d6000fd5b505050506040513d602081101561132557600080fd5b505192915050565b6113356116bd565b6040516020810160405282815280602083015250611352826114d5565b8152919050565b606080600083600001516040519080825280601f01601f191660200182016040528015611390578160200160208202803883390190505b5091506020820190506113ac818560200151866000015161158b565b5092915050565b600080838311156113c357600080fd5b5050900390565b600354600160a060020a0390811691161490565b60008054604080517f0178b8bf000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691630178b8bf9160248082019260209290919082900301818787803b15801561144557600080fd5b505af1158015611459573d6000803e3d6000fd5b505050506040513d602081101561146f57600080fd5b5051604080517f3b3b57de000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691633b3b57de916024808201926020929091908290030181600087803b1580156112fb57600080fd5b6000808215156114e85760009150611585565b6fffffffffffffffffffffffffffffffff8316151561151b57601001700100000000000000000000000000000000830492505b67ffffffffffffffff8316151561153e5760080168010000000000000000830492505b63ffffffff8316151561155957600401640100000000830492505b61ffff831615156115705760020162010000830492505b60ff8316151561157e576001015b8060200391505b50919050565b60005b602082106115b0578251845260209384019390920191601f199091019061158e565b50905182516020929092036101000a6000190180199091169116179052565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061161057805160ff191683800117855561163d565b8280016001018555821561163d579182015b8281111561163d578251825591602001919060010190611622565b506116499291506116d4565b5090565b50805460018160011615610100020316600290046000825580601f106116735750611691565b601f01602090049060005260206000209081019061169191906116d4565b50565b8154818355818111156116b8576000838152602090206116b89181019083016116d4565b505050565b604080518082019091526000808252602082015290565b6104cb91905b8082111561164957600081556001016116da5600a165627a7a7230582093b6ea30833eac9793938fe8dab81d00e6ef1dbb9489c89e10258ba8847c4c870029 \ No newline at end of file +608060405234801561001057600080fd5b5060405160c080611ab283398101604090815281516020830151918301516060840151608085015160a09095015160018054600160a060020a03808716600160a060020a03199283161792839055600080548316938216939093179092556002859055600380548915157401000000000000000000000000000000000000000090810260a060020a60ff0219958816929094169190911793909316919091179081905594969394929392849184910460ff1615156101055760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b6040805160008152600160a060020a038416602082015281517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea5929181900390910190a15050600794909455505060068054600160a060020a031916600160a060020a03909316929092179091555061192d9050806101856000396000f3006080604052600436106100c15763ffffffff60e060020a6000350416631f69565f81146100c65780632121dc751461019157806334c73edc146101ba5780633efec5e91461020f578063443dd2a4146102245780636c3824ef14610289578063715018a6146102a95780637d73b231146102be57806380cc0dda146102ef5780638da5cb5b14610316578063996cba681461032b578063b242e53414610355578063d545782e1461037b578063e2b4ce97146103a2578063e9cbd822146103b7575b600080fd5b3480156100d257600080fd5b506100e7600160a060020a03600435166103cc565b6040805160208082018990529181018790528515156060820152841515608082015283151560a082015260c0810183905260e08082528951908201528851909182916101008301918b019080838360005b83811015610150578181015183820152602001610138565b50505050905090810190601f16801561017d5780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b34801561019d57600080fd5b506101a66104c8565b604080519115158252519081900360200190f35b3480156101c657600080fd5b5061020d602460048035828101929082013591813580830192908201359160443580830192908201359160643580830192908201359160843591820191013560a4356104ea565b005b34801561021b57600080fd5b506100e7610981565b34801561023057600080fd5b50610239610a7d565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561027557818101518382015260200161025d565b505050509050019250505060405180910390f35b34801561029557600080fd5b5061020d6004803560248101910135610adf565b3480156102b557600080fd5b5061020d610d7e565b3480156102ca57600080fd5b506102d3610eab565b60408051600160a060020a039092168252519081900360200190f35b3480156102fb57600080fd5b50610304610eba565b60408051918252519081900360200190f35b34801561032257600080fd5b506102d3610ec0565b34801561033757600080fd5b5061020d600160a060020a0360043581169060243516604435610ecf565b34801561036157600080fd5b5061020d600160a060020a03600435166024351515610f3e565b34801561038757600080fd5b5061020d600160a060020a036004351660243560443561118f565b3480156103ae57600080fd5b506103046112f1565b3480156103c357600080fd5b506102d36112f7565b600160a060020a0381166000908152600460208181526040808420600180820154600280840154600385015497850154855487516101009682161587026000190190911693909304601f81018990048902840189019097528683526060999889988998899889988998919788979296929560ff80821696938204811695620100009092041693928991908301828280156104a75780601f1061047c576101008083540402835291602001916104a7565b820191906000526020600020905b81548152906001019060200180831161048a57829003601f168201915b50505050509650975097509750975097509750975050919395979092949650565b60035474010000000000000000000000000000000000000000900460ff165b90565b600060606104f733611306565b151561054d576040805160e560020a62461bcd02815260206004820152601a60248201527f73656e646572206973206e6f74206120636f6e74726f6c6c6572000000000000604482015290519081900360640190fd5b8b8a14801561055b57508b88145b801561056657508b86145b801561057157508b86145b15156105c7576040805160e560020a62461bcd02815260206004820152601e60248201527f706172616d65746572206c656e6774687320646f206e6f74206d617463680000604482015290519081900360640190fd5b600091505b8b82101561097257600460008e8e858181106105e457fe5b60209081029290920135600160a060020a03168352508101919091526040016000206003015460ff1615610662576040805160e560020a62461bcd02815260206004820152601760248201527f746f6b656e20616c726561647920617661696c61626c65000000000000000000604482015290519081900360640190fd5b6106886106838c8c8581811061067457fe5b6020029190910135905061139f565b6113cb565b905060e0604051908101604052808281526020018a8a8581811015156106aa57fe5b9050602002013581526020016000815260200160011515815260200188888581811015156106d457fe5b602090810292909201351515835250018686858181106106f057fe5b60209081029290920135151583525001849052600460008f8f8681811061071357fe5b90506020020135600160a060020a0316600160a060020a0316600160a060020a03168152602001908152602001600020600082015181600001908051906020019061075f9291906117e7565b5060208201516001820155604082015160028201556060820151600382018054608085015160a08601511515620100000262ff0000199115156101000261ff001995151560ff199094169390931794909416919091171691909117905560c09091015160049091015560058d8d848181106107d657fe5b8354600181018555600094855260209485902001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0395909202939093013593909316929092179055507f1802e89da3f6ef84e024e37454c226b1e13bf846ce71cd2a1d24faef9cbf779b338e8e8581811061084d57fe5b90506020020135600160a060020a0316838c8c87818110151561086c57fe5b905060200201358b8b88818110151561088157fe5b9050602002013515158a8a89818110151561089857fe5b9050602002013515156040518087600160a060020a0316600160a060020a0316815260200186600160a060020a0316600160a060020a03168152602001806020018581526020018415151515815260200183151515158152602001828103825286818151815260200191508051906020019080838360005b83811015610928578181015183820152602001610910565b50505050905090810190601f1680156109555780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390a16001909101906105cc565b50505050505050505050505050565b600654600160a060020a03166000908152600460208181526040808420600180820154600280840154600385015497850154855487516101009682161587026000190190911693909304601f81018990048902840189019097528683526060999889988998899889988998919788979296929560ff8082169693820481169562010000909204169392899190830182828015610a5e5780601f10610a3357610100808354040283529160200191610a5e565b820191906000526020600020905b815481529060010190602001808311610a4157829003601f168201915b5050505050965097509750975097509750975097505090919293949596565b60606005805480602002602001604051908101604052809291908181526020018280548015610ad557602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610ab7575b5050505050905090565b6000806000610aed33611306565b1515610b43576040805160e560020a62461bcd02815260206004820152601a60248201527f73656e646572206973206e6f74206120636f6e74726f6c6c6572000000000000604482015290519081900360640190fd5b600092505b83831015610d775760046000868686818110610b6057fe5b60209081029290920135600160a060020a03168352508101919091526040016000206003015460ff161515610bdf576040805160e560020a62461bcd02815260206004820152601660248201527f746f6b656e206973206e6f7420617661696c61626c6500000000000000000000604482015290519081900360640190fd5b848484818110610beb57fe5b60209081029290920135600160a060020a03166000818152600490935260408320909450919050610c1c8282611865565b506000600182018190556002820181905560038201805462ffffff19169055600490910181905590505b600554610c5a90600163ffffffff61142516565b811015610d155781600160a060020a0316600582815481101515610c7a57fe5b600091825260209091200154600160a060020a03161415610d0d5760058054610caa90600163ffffffff61142516565b81548110610cb457fe5b60009182526020909120015460058054600160a060020a039092169183908110610cda57fe5b9060005260206000200160006101000a815481600160a060020a030219169083600160a060020a03160217905550610d15565b600101610c46565b6005805490610d289060001983016118ac565b5060408051338152600160a060020a038416602082015281517f703f7e3f084d5b8dcc12fddcfd9a70d65b6b21ec7659e4608dbaf4419ede3ad0929181900390910190a1600190920191610b48565b5050505050565b610d873361143c565b1515610ddd576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e206f776e657200000000000000000000604482015290519081900360640190fd5b60035474010000000000000000000000000000000000000000900460ff161515610e51576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b6003805473ffffffffffffffffffffffffffffffffffffffff19169055604080516000808252602082015281517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea5929181900390910190a1565b600154600160a060020a031690565b60075490565b600354600160a060020a031690565b610ed83361143c565b1515610f2e576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e206f776e657200000000000000000000604482015290519081900360640190fd5b610f39838383611450565b505050565b610f473361143c565b1515610f9d576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e206f776e657200000000000000000000604482015290519081900360640190fd5b60035474010000000000000000000000000000000000000000900460ff161515611011576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b600160a060020a0382161515611097576040805160e560020a62461bcd02815260206004820152602360248201527f6f776e65722063616e6e6f742062652073657420746f207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6003805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000831515908102919091179091556111175760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b60035460408051600160a060020a039283168152918416602083015280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1506003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600061119c6007546115f6565b90506111a733611306565b806111ba575033600160a060020a038216145b1515611210576040805160e560020a62461bcd02815260206004820152601b60248201527f656974686572206f7261636c65206f7220636f6e74726f6c6c65720000000000604482015290519081900360640190fd5b600160a060020a03841660009081526004602052604090206003015460ff161515611285576040805160e560020a62461bcd02815260206004820152601660248201527f746f6b656e206973206e6f7420617661696c61626c6500000000000000000000604482015290519081900360640190fd5b600160a060020a03841660008181526004602081815260409283902060028101889055909101859055815133815290810192909252818101859052517fdb3a4cfb4cd8ac94343ff7440cee8d05ade309056203f0e53ca49b6db8197c7d9181900360600190a150505050565b60025490565b600654600160a060020a031690565b60006113136002546115f6565b600160a060020a031663b429afeb836040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b15801561136d57600080fd5b505af1158015611381573d6000803e3d6000fd5b505050506040513d602081101561139757600080fd5b505192915050565b6113a76118d0565b60405160208101604052828152806020830152506113c4826116ed565b8152919050565b606080600083600001516040519080825280601f01601f191660200182016040528015611402578160200160208202803883390190505b50915060208201905061141e81856020015186600001516117a3565b5092915050565b6000808383111561143557600080fd5b5050900390565b600354600160a060020a0390811691161490565b600160a060020a038216151561149c57604051600160a060020a0384169082156108fc029083906000818181858888f19350505050158015611496573d6000803e3d6000fd5b506115a7565b81600160a060020a031663a9059cbb84836040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b1580156114ff57600080fd5b505af1158015611513573d6000803e3d6000fd5b505050506040513d602081101561152957600080fd5b505115156115a7576040805160e560020a62461bcd02815260206004820152602560248201527f455243323020746f6b656e207472616e736665722077617320756e737563636560448201527f737366756c000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60408051600160a060020a0380861682528416602082015280820183905290517ff7a40077ff7a04c7e61f6f26fb13774259ddf1b6bce9ecf26a8276cdd39926839181900360600190a1505050565b60008054604080517f0178b8bf000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691630178b8bf9160248082019260209290919082900301818787803b15801561165d57600080fd5b505af1158015611671573d6000803e3d6000fd5b505050506040513d602081101561168757600080fd5b5051604080517f3b3b57de000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691633b3b57de916024808201926020929091908290030181600087803b15801561136d57600080fd5b600080821515611700576000915061179d565b6fffffffffffffffffffffffffffffffff8316151561173357601001700100000000000000000000000000000000830492505b67ffffffffffffffff831615156117565760080168010000000000000000830492505b63ffffffff8316151561177157600401640100000000830492505b61ffff831615156117885760020162010000830492505b60ff83161515611796576001015b8060200391505b50919050565b60005b602082106117c8578251845260209384019390920191601f19909101906117a6565b50905182516020929092036101000a6000190180199091169116179052565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061182857805160ff1916838001178555611855565b82800160010185558215611855579182015b8281111561185557825182559160200191906001019061183a565b506118619291506118e7565b5090565b50805460018160011615610100020316600290046000825580601f1061188b57506118a9565b601f0160209004906000526020600020908101906118a991906118e7565b50565b815481835581811115610f3957600083815260209020610f399181019083016118e7565b604080518082019091526000808252602082015290565b6104e791905b8082111561186157600081556001016118ed5600a165627a7a723058208c4be71ac085882be552fd06a3c105b468b8d2bbdf25c86681a98320fb418c500029 \ No newline at end of file diff --git a/build/oracle/combined.json b/build/oracle/combined.json index 272482fd..a5d40b5d 100644 --- a/build/oracle/combined.json +++ b/build/oracle/combined.json @@ -1 +1 @@ -{"contracts":{"externals/ERC20.sol:ERC20":{"bin":"","bin-runtime":"","srcmap":"","srcmap-runtime":""},"externals/SafeMath.sol:SafeMath":{"bin":"604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820564cf9c59188bb4d206d867a51ebdc48341c3b90a16491599b74ecfe95674b940029","bin-runtime":"73000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820564cf9c59188bb4d206d867a51ebdc48341c3b90a16491599b74ecfe95674b940029","srcmap":"1289:1531:1:-;;132:2:-1;166:7;155:9;146:7;137:37;252:7;246:14;243:1;238:23;232:4;229:33;270:1;265:20;;;;222:63;;265:20;274:9;222:63;;298:9;295:1;288:20;328:4;319:7;311:22;352:7;343;336:24","srcmap-runtime":"1289:1531:1:-;;;;;;;;"},"externals/base64.sol:Base64":{"bin":"6080604052348015600f57600080fd5b50603580601d6000396000f3006080604052600080fd00a165627a7a72305820b1f79b0565dbd3d980444054ec606a2513c871ed44b9a16baa8e2e14dcd3a8850029","bin-runtime":"6080604052600080fd00a165627a7a72305820b1f79b0565dbd3d980444054ec606a2513c871ed44b9a16baa8e2e14dcd3a8850029","srcmap":"264:2270:2:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;264:2270:2;;;;;;;","srcmap-runtime":"264:2270:2:-;;;;;"},"externals/ens/ENS.sol:ENS":{"bin":"","bin-runtime":"","srcmap":"","srcmap-runtime":""},"externals/ens/PublicResolver.sol:PublicResolver":{"bin":"608060405234801561001057600080fd5b50604051602080611400833981016040525160008054600160a060020a03909216600160a060020a03199092169190911790556113ae806100526000396000f3006080604052600436106100da5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166301ffc9a781146100df57806310f13a8c146101155780632203ab56146101b357806329cd62ea1461024d5780632dff69411461026b5780633b3b57de1461029557806359d1d43c146102c9578063623195b01461039c578063691f3431146103fc5780637737221314610414578063aa4cb54714610472578063c3d014d6146104d0578063c8690233146104eb578063d5fa2b001461051c578063e89401a114610540575b600080fd5b3480156100eb57600080fd5b50610101600160e060020a031960043516610558565b604080519115158252519081900360200190f35b34801561012157600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526101b195833595369560449491939091019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437509497506106f99650505050505050565b005b3480156101bf57600080fd5b506101ce60043560243561091f565b6040518083815260200180602001828103825283818151815260200191508051906020019080838360005b838110156102115781810151838201526020016101f9565b50505050905090810190601f16801561023e5780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b34801561025957600080fd5b506101b1600435602435604435610a2b565b34801561027757600080fd5b50610283600435610b2b565b60408051918252519081900360200190f35b3480156102a157600080fd5b506102ad600435610b41565b60408051600160a060020a039092168252519081900360200190f35b3480156102d557600080fd5b5060408051602060046024803582810135601f8101859004850286018501909652858552610327958335953695604494919390910191908190840183828082843750949750610b5c9650505050505050565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610361578181015183820152602001610349565b50505050905090810190601f16801561038e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103a857600080fd5b50604080516020600460443581810135601f81018490048402850184019095528484526101b1948235946024803595369594606494920191908190840183828082843750949750610c659650505050505050565b34801561040857600080fd5b50610327600435610d66565b34801561042057600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526101b1958335953695604494919390910191908190840183828082843750949750610e0a9650505050505050565b34801561047e57600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526101b1958335953695604494919390910191908190840183828082843750949750610f609650505050505050565b3480156104dc57600080fd5b506101b1600435602435611076565b3480156104f757600080fd5b50610503600435611157565b6040805192835260208301919091528051918290030190f35b34801561052857600080fd5b506101b1600435600160a060020a0360243516611174565b34801561054c57600080fd5b50610327600435611278565b6000600160e060020a031982167f3b3b57de0000000000000000000000000000000000000000000000000000000014806105bb5750600160e060020a031982167fd8389dc500000000000000000000000000000000000000000000000000000000145b806105ef5750600160e060020a031982167f691f343100000000000000000000000000000000000000000000000000000000145b806106235750600160e060020a031982167f2203ab5600000000000000000000000000000000000000000000000000000000145b806106575750600160e060020a031982167fc869023300000000000000000000000000000000000000000000000000000000145b8061068b5750600160e060020a031982167f59d1d43c00000000000000000000000000000000000000000000000000000000145b806106bf5750600160e060020a031982167fe89401a100000000000000000000000000000000000000000000000000000000145b806106f35750600160e060020a031982167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b600080546040805160e060020a6302571be302815260048101879052905186933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b15801561074c57600080fd5b505af1158015610760573d6000803e3d6000fd5b505050506040513d602081101561077657600080fd5b5051600160a060020a03161461078b57600080fd5b6000848152600160209081526040918290209151855185936005019287929182918401908083835b602083106107d25780518252601f1990920191602091820191016107b3565b51815160209384036101000a6000190180199092169116179052920194855250604051938490038101909320845161081395919491909101925090506112e7565b5083600019167fd8c9334b1a9c2f9da342a0a2b32629c1a229b6445dad78947f674b44444a75508485604051808060200180602001838103835285818151815260200191508051906020019080838360005b8381101561087d578181015183820152602001610865565b50505050905090810190601f1680156108aa5780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b838110156108dd5781810151838201526020016108c5565b50505050905090810190601f16801561090a5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a250505050565b60008281526001602081905260409091206060905b838311610a1e578284161580159061096d5750600083815260068201602052604081205460026000196101006001841615020190911604115b15610a1357600083815260068201602090815260409182902080548351601f600260001961010060018616150201909316929092049182018490048402810184019094528084529091830182828015610a075780601f106109dc57610100808354040283529160200191610a07565b820191906000526020600020905b8154815290600101906020018083116109ea57829003601f168201915b50505050509150610a23565b600290920291610934565b600092505b509250929050565b600080546040805160e060020a6302571be302815260048101879052905186933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b158015610a7e57600080fd5b505af1158015610a92573d6000803e3d6000fd5b505050506040513d6020811015610aa857600080fd5b5051600160a060020a031614610abd57600080fd5b604080518082018252848152602080820185815260008881526001835284902092516003840155516004909201919091558151858152908101849052815186927f1d6f5e03d3f63eb58751986629a5439baee5079ff04f345becb66e23eb154e46928290030190a250505050565b6000908152600160208190526040909120015490565b600090815260016020526040902054600160a060020a031690565b600082815260016020908152604091829020915183516060936005019285929182918401908083835b60208310610ba45780518252601f199092019160209182019101610b85565b518151600019602094850361010090810a820192831692199390931691909117909252949092019687526040805197889003820188208054601f6002600183161590980290950116959095049283018290048202880182019052818752929450925050830182828015610c585780601f10610c2d57610100808354040283529160200191610c58565b820191906000526020600020905b815481529060010190602001808311610c3b57829003601f168201915b5050505050905092915050565b600080546040805160e060020a6302571be302815260048101879052905186933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b158015610cb857600080fd5b505af1158015610ccc573d6000803e3d6000fd5b505050506040513d6020811015610ce257600080fd5b5051600160a060020a031614610cf757600080fd5b6000198301831615610d0857600080fd5b600084815260016020908152604080832086845260060182529091208351610d32928501906112e7565b50604051839085907faa121bbeef5f32f5961a2a28966e769023910fc9479059ee3495d4c1a696efe390600090a350505050565b6000818152600160208181526040928390206002908101805485516000199582161561010002959095011691909104601f81018390048302840183019094528383526060939091830182828015610dfe5780601f10610dd357610100808354040283529160200191610dfe565b820191906000526020600020905b815481529060010190602001808311610de157829003601f168201915b50505050509050919050565b600080546040805160e060020a6302571be302815260048101869052905185933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b158015610e5d57600080fd5b505af1158015610e71573d6000803e3d6000fd5b505050506040513d6020811015610e8757600080fd5b5051600160a060020a031614610e9c57600080fd5b60008381526001602090815260409091208351610ec1926002909201918501906112e7565b50604080516020808252845181830152845186937fb7d29e911041e8d9b843369e890bcb72c9388692ba48b65ac54e7214c4c348f79387939092839283019185019080838360005b83811015610f21578181015183820152602001610f09565b50505050905090810190601f168015610f4e5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505050565b600080546040805160e060020a6302571be302815260048101869052905185933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b158015610fb357600080fd5b505af1158015610fc7573d6000803e3d6000fd5b505050506040513d6020811015610fdd57600080fd5b5051600160a060020a031614610ff257600080fd5b60008381526001602090815260409091208351611017926007909201918501906112e7565b50604080516020808252845181830152845186937fc0b0fc07269fc2749adada3221c095a1d2187b2d075b51c915857b520f3a502193879390928392830191850190808383600083811015610f21578181015183820152602001610f09565b600080546040805160e060020a6302571be302815260048101869052905185933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b1580156110c957600080fd5b505af11580156110dd573d6000803e3d6000fd5b505050506040513d60208110156110f357600080fd5b5051600160a060020a03161461110857600080fd5b6000838152600160208181526040928390209091018490558151848152915185927f0424b6fe0d9c3bdbece0e7879dc241bb0c22e900be8b6c168b4ee08bd9bf83bc92908290030190a2505050565b600090815260016020526040902060038101546004909101549091565b600080546040805160e060020a6302571be302815260048101869052905185933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b1580156111c757600080fd5b505af11580156111db573d6000803e3d6000fd5b505050506040513d60208110156111f157600080fd5b5051600160a060020a03161461120657600080fd5b600083815260016020908152604091829020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386169081179091558251908152915185927f52d7d861f09ab3d26239d492e8968629f95e9e318cf0b73bfddc441522a15fd292908290030190a2505050565b60008181526001602081815260409283902060070180548451600260001995831615610100029590950190911693909304601f81018390048302840183019094528383526060939091830182828015610dfe5780601f10610dd357610100808354040283529160200191610dfe565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061132857805160ff1916838001178555611355565b82800160010185558215611355579182015b8281111561135557825182559160200191906001019061133a565b50611361929150611365565b5090565b61137f91905b80821115611361576000815560010161136b565b905600a165627a7a72305820bf76237672851602565e309e20eddff44fc668000bb45495e385fdd9e24f4e310029","bin-runtime":"6080604052600436106100da5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166301ffc9a781146100df57806310f13a8c146101155780632203ab56146101b357806329cd62ea1461024d5780632dff69411461026b5780633b3b57de1461029557806359d1d43c146102c9578063623195b01461039c578063691f3431146103fc5780637737221314610414578063aa4cb54714610472578063c3d014d6146104d0578063c8690233146104eb578063d5fa2b001461051c578063e89401a114610540575b600080fd5b3480156100eb57600080fd5b50610101600160e060020a031960043516610558565b604080519115158252519081900360200190f35b34801561012157600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526101b195833595369560449491939091019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437509497506106f99650505050505050565b005b3480156101bf57600080fd5b506101ce60043560243561091f565b6040518083815260200180602001828103825283818151815260200191508051906020019080838360005b838110156102115781810151838201526020016101f9565b50505050905090810190601f16801561023e5780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b34801561025957600080fd5b506101b1600435602435604435610a2b565b34801561027757600080fd5b50610283600435610b2b565b60408051918252519081900360200190f35b3480156102a157600080fd5b506102ad600435610b41565b60408051600160a060020a039092168252519081900360200190f35b3480156102d557600080fd5b5060408051602060046024803582810135601f8101859004850286018501909652858552610327958335953695604494919390910191908190840183828082843750949750610b5c9650505050505050565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610361578181015183820152602001610349565b50505050905090810190601f16801561038e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103a857600080fd5b50604080516020600460443581810135601f81018490048402850184019095528484526101b1948235946024803595369594606494920191908190840183828082843750949750610c659650505050505050565b34801561040857600080fd5b50610327600435610d66565b34801561042057600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526101b1958335953695604494919390910191908190840183828082843750949750610e0a9650505050505050565b34801561047e57600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526101b1958335953695604494919390910191908190840183828082843750949750610f609650505050505050565b3480156104dc57600080fd5b506101b1600435602435611076565b3480156104f757600080fd5b50610503600435611157565b6040805192835260208301919091528051918290030190f35b34801561052857600080fd5b506101b1600435600160a060020a0360243516611174565b34801561054c57600080fd5b50610327600435611278565b6000600160e060020a031982167f3b3b57de0000000000000000000000000000000000000000000000000000000014806105bb5750600160e060020a031982167fd8389dc500000000000000000000000000000000000000000000000000000000145b806105ef5750600160e060020a031982167f691f343100000000000000000000000000000000000000000000000000000000145b806106235750600160e060020a031982167f2203ab5600000000000000000000000000000000000000000000000000000000145b806106575750600160e060020a031982167fc869023300000000000000000000000000000000000000000000000000000000145b8061068b5750600160e060020a031982167f59d1d43c00000000000000000000000000000000000000000000000000000000145b806106bf5750600160e060020a031982167fe89401a100000000000000000000000000000000000000000000000000000000145b806106f35750600160e060020a031982167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b600080546040805160e060020a6302571be302815260048101879052905186933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b15801561074c57600080fd5b505af1158015610760573d6000803e3d6000fd5b505050506040513d602081101561077657600080fd5b5051600160a060020a03161461078b57600080fd5b6000848152600160209081526040918290209151855185936005019287929182918401908083835b602083106107d25780518252601f1990920191602091820191016107b3565b51815160209384036101000a6000190180199092169116179052920194855250604051938490038101909320845161081395919491909101925090506112e7565b5083600019167fd8c9334b1a9c2f9da342a0a2b32629c1a229b6445dad78947f674b44444a75508485604051808060200180602001838103835285818151815260200191508051906020019080838360005b8381101561087d578181015183820152602001610865565b50505050905090810190601f1680156108aa5780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b838110156108dd5781810151838201526020016108c5565b50505050905090810190601f16801561090a5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a250505050565b60008281526001602081905260409091206060905b838311610a1e578284161580159061096d5750600083815260068201602052604081205460026000196101006001841615020190911604115b15610a1357600083815260068201602090815260409182902080548351601f600260001961010060018616150201909316929092049182018490048402810184019094528084529091830182828015610a075780601f106109dc57610100808354040283529160200191610a07565b820191906000526020600020905b8154815290600101906020018083116109ea57829003601f168201915b50505050509150610a23565b600290920291610934565b600092505b509250929050565b600080546040805160e060020a6302571be302815260048101879052905186933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b158015610a7e57600080fd5b505af1158015610a92573d6000803e3d6000fd5b505050506040513d6020811015610aa857600080fd5b5051600160a060020a031614610abd57600080fd5b604080518082018252848152602080820185815260008881526001835284902092516003840155516004909201919091558151858152908101849052815186927f1d6f5e03d3f63eb58751986629a5439baee5079ff04f345becb66e23eb154e46928290030190a250505050565b6000908152600160208190526040909120015490565b600090815260016020526040902054600160a060020a031690565b600082815260016020908152604091829020915183516060936005019285929182918401908083835b60208310610ba45780518252601f199092019160209182019101610b85565b518151600019602094850361010090810a820192831692199390931691909117909252949092019687526040805197889003820188208054601f6002600183161590980290950116959095049283018290048202880182019052818752929450925050830182828015610c585780601f10610c2d57610100808354040283529160200191610c58565b820191906000526020600020905b815481529060010190602001808311610c3b57829003601f168201915b5050505050905092915050565b600080546040805160e060020a6302571be302815260048101879052905186933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b158015610cb857600080fd5b505af1158015610ccc573d6000803e3d6000fd5b505050506040513d6020811015610ce257600080fd5b5051600160a060020a031614610cf757600080fd5b6000198301831615610d0857600080fd5b600084815260016020908152604080832086845260060182529091208351610d32928501906112e7565b50604051839085907faa121bbeef5f32f5961a2a28966e769023910fc9479059ee3495d4c1a696efe390600090a350505050565b6000818152600160208181526040928390206002908101805485516000199582161561010002959095011691909104601f81018390048302840183019094528383526060939091830182828015610dfe5780601f10610dd357610100808354040283529160200191610dfe565b820191906000526020600020905b815481529060010190602001808311610de157829003601f168201915b50505050509050919050565b600080546040805160e060020a6302571be302815260048101869052905185933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b158015610e5d57600080fd5b505af1158015610e71573d6000803e3d6000fd5b505050506040513d6020811015610e8757600080fd5b5051600160a060020a031614610e9c57600080fd5b60008381526001602090815260409091208351610ec1926002909201918501906112e7565b50604080516020808252845181830152845186937fb7d29e911041e8d9b843369e890bcb72c9388692ba48b65ac54e7214c4c348f79387939092839283019185019080838360005b83811015610f21578181015183820152602001610f09565b50505050905090810190601f168015610f4e5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505050565b600080546040805160e060020a6302571be302815260048101869052905185933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b158015610fb357600080fd5b505af1158015610fc7573d6000803e3d6000fd5b505050506040513d6020811015610fdd57600080fd5b5051600160a060020a031614610ff257600080fd5b60008381526001602090815260409091208351611017926007909201918501906112e7565b50604080516020808252845181830152845186937fc0b0fc07269fc2749adada3221c095a1d2187b2d075b51c915857b520f3a502193879390928392830191850190808383600083811015610f21578181015183820152602001610f09565b600080546040805160e060020a6302571be302815260048101869052905185933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b1580156110c957600080fd5b505af11580156110dd573d6000803e3d6000fd5b505050506040513d60208110156110f357600080fd5b5051600160a060020a03161461110857600080fd5b6000838152600160208181526040928390209091018490558151848152915185927f0424b6fe0d9c3bdbece0e7879dc241bb0c22e900be8b6c168b4ee08bd9bf83bc92908290030190a2505050565b600090815260016020526040902060038101546004909101549091565b600080546040805160e060020a6302571be302815260048101869052905185933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b1580156111c757600080fd5b505af11580156111db573d6000803e3d6000fd5b505050506040513d60208110156111f157600080fd5b5051600160a060020a03161461120657600080fd5b600083815260016020908152604091829020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386169081179091558251908152915185927f52d7d861f09ab3d26239d492e8968629f95e9e318cf0b73bfddc441522a15fd292908290030190a2505050565b60008181526001602081815260409283902060070180548451600260001995831615610100029590950190911693909304601f81018390048302840183019094528383526060939091830182828015610dfe5780601f10610dd357610100808354040283529160200191610dfe565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061132857805160ff1916838001178555611355565b82800160010185558215611355579182015b8281111561135557825182559160200191906001019061133a565b50611361929150611365565b5090565b61137f91905b80821115611361576000815560010161136b565b905600a165627a7a72305820bf76237672851602565e309e20eddff44fc668000bb45495e385fdd9e24f4e310029","srcmap":"1553:8134:4:-;;;3005:62;8:9:-1;5:2;;;30:1;27;20:12;5:2;3005:62:4;;;;;;;;;;;;;3047:3;:13;;-1:-1:-1;;;;;3047:13:4;;;-1:-1:-1;;;;;;3047:13:4;;;;;;;;;1553:8134;;;;;;","srcmap-runtime":"1553:8134:4:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9238:447;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9238:447:4;-1:-1:-1;;;;;;9238:447:4;;;;;;;;;;;;;;;;;;;;;;;6084:171;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6084:171:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6084:171:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6084:171:4;;;;-1:-1:-1;6084:171:4;-1:-1:-1;6084:171:4;;-1:-1:-1;6084:171:4;;;;;;;;-1:-1:-1;6084:171:4;;-1:-1:-1;6084:171:4;;-1:-1:-1;;;;;;;6084:171:4;;;7296:451;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7296:451:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;7296:451:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5631:174;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5631:174:4;;;;;;;;;8351:106;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8351:106:4;;;;;;;;;;;;;;;;;;;;;8887:100;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8887:100:4;;;;;;;;;-1:-1:-1;;;;;8887:100:4;;;;;;;;;;;;;;6472:116;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6472:116:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6472:116:4;;-1:-1:-1;6472:116:4;;-1:-1:-1;;;;;;;6472:116:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;6472:116:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5057:297;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5057:297:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5057:297:4;;-1:-1:-1;5057:297:4;;-1:-1:-1;;;;;;;5057:297:4;7947:99;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7947:99:4;;;;;4607:148;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4607:148:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4607:148:4;;-1:-1:-1;4607:148:4;;-1:-1:-1;;;;;;;4607:148:4;4200:162;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4200:162:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4200:162:4;;-1:-1:-1;4200:162:4;;-1:-1:-1;;;;;;;4200:162:4;3813:158;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3813:158:4;;;;;;;6830:145;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6830:145:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;3293:149;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3293:149:4;;;-1:-1:-1;;;;;3293:149:4;;;;;8620:108;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8620:108:4;;;;;9238:447;9306:4;-1:-1:-1;;;;;;9329:32:4;;9344:17;9329:32;;:79;;-1:-1:-1;;;;;;;9373:35:4;;9388:20;9373:35;9329:79;:123;;;-1:-1:-1;;;;;;;9420:32:4;;9435:17;9420:32;9329:123;:166;;;-1:-1:-1;;;;;;;9464:31:4;;9479:16;9464:31;9329:166;:212;;;-1:-1:-1;;;;;;;9507:34:4;;9522:19;9507:34;9329:212;:256;;;-1:-1:-1;;;;;;;9553:32:4;;9568:17;9553:32;9329:256;:305;;;-1:-1:-1;;;;;;;9597:37:4;;9612:22;9597:37;9329:305;:349;;;-1:-1:-1;;;;;;;9646:32:4;;9661:17;9646:32;9329:349;9322:356;9238:447;-1:-1:-1;;9238:447:4:o;6084:171::-;2865:3;;;:15;;;-1:-1:-1;;;;;2865:15:4;;;;;;;;;;6159:4;;2884:10;;-1:-1:-1;;;;;2865:3:4;;:9;;:15;;;;;;;;;;;;;;;;:3;:15;;;5:2:-1;;;;30:1;27;20:12;5:2;2865:15:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2865:15:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2865:15:4;-1:-1:-1;;;;;2865:29:4;;2857:38;;;;;;6175:13;;;;:7;:13;;;;;;;;;:23;;;;6201:5;;6175:18;;;6194:3;;6175:23;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;6175:23:4;;;;;-1:-1:-1;6175:23:4;;;;;;;;;;;:31;;;;:23;;:31;;;;;-1:-1:-1;6175:31:4;-1:-1:-1;6175:31:4;:::i;:::-;;6233:4;6221:27;;;;6239:3;6244;6221:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;6221:27:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6221:27:4;;;;;;;;;;;;;;;;;;;;;;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;6221:27:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6084:171;;;;:::o;7296:451::-;7366:19;7433:13;;;:7;:13;;;;;;;;7387:10;;7456:260;7478:27;;;7456:260;;7545:26;;;7544:33;;;;:72;;-1:-1:-1;7615:1:4;7581:24;;;:11;;;:24;;;;;:31;;-1:-1:-1;;7581:31:4;;;;;;;;;;;:35;7544:72;7540:166;;;7643:24;;;;:11;;;:24;;;;;;;;;7636:31;;;;;;-1:-1:-1;;7636:31:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7643:24;;7636:31;;7643:24;7636:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7685:7;;7540:166;7507:17;;;;;7456:260;;;7739:1;7725:15;;7296:451;;;;;;;:::o;5631:174::-;2865:3;;;:15;;;-1:-1:-1;;;;;2865:15:4;;;;;;;;;;5704:4;;2884:10;;-1:-1:-1;;;;;2865:3:4;;:9;;:15;;;;;;;;;;;;;;;;:3;:15;;;5:2:-1;;;;30:1;27;20:12;5:2;2865:15:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2865:15:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2865:15:4;-1:-1:-1;;;;;2865:29:4;;2857:38;;;;;;5743:15;;;;;;;;;;;;;;;;;;-1:-1:-1;5720:13:4;;;:7;:13;;;;;:38;;:20;;;:38;;;;;;;;;;5773:25;;;;;;;;;;;;;5728:4;;5773:25;;;;;;;;5631:174;;;;:::o;8351:106::-;8403:7;8429:13;;;:7;:13;;;;;;;;:21;;;8351:106::o;8887:100::-;8936:7;8962:13;;;:7;:13;;;;;:18;-1:-1:-1;;;;;8962:18:4;;8887:100::o;6472:116::-;6558:13;;;;:7;:13;;;;;;;;;:23;;;;6533:6;;6558:18;;;6577:3;;6558:23;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;-1:-1;;263:2;259:12;;;254:3;250:22;;;246:30;;340:21;;;311:9;;295:26;;;;377:20;;;;365:33;;;6558:23:4;;;;;;;;;;;;;;;;;;6551:30;;;;274:1:-1;6551:30:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6558:23;;-1:-1:-1;6551:30:4;-1:-1:-1;;6551:30:4;;6558:23;6551:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6472:116;;;;:::o;5057:297::-;2865:3;;;:15;;;-1:-1:-1;;;;;2865:15:4;;;;;;;;;;5138:4;;2884:10;;-1:-1:-1;;;;;2865:3:4;;:9;;:15;;;;;;;;;;;;;;;;:3;:15;;;5:2:-1;;;;30:1;27;20:12;5:2;2865:15:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2865:15:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2865:15:4;-1:-1:-1;;;;;2865:29:4;;2857:38;;;;;;-1:-1:-1;;5209:15:4;;5208:31;;5207:38;5199:47;;;;;;5265:13;;;;:7;:13;;;;;;;;:31;;;:18;;:31;;;;;:38;;;;;;;;:::i;:::-;-1:-1:-1;5318:29:4;;5335:11;;5329:4;;5318:29;;;;;5057:297;;;;:::o;7947:99::-;8021:13;;;;:7;:13;;;;;;;;;:18;;;;8014:25;;;;-1:-1:-1;;8014:25:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7996:6;;8021:18;;8014:25;;8021:18;8014:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7947:99;;;:::o;4607:148::-;2865:3;;;:15;;;-1:-1:-1;;;;;2865:15:4;;;;;;;;;;4669:4;;2884:10;;-1:-1:-1;;;;;2865:3:4;;:9;;:15;;;;;;;;;;;;;;;;:3;:15;;;5:2:-1;;;;30:1;27;20:12;5:2;2865:15:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2865:15:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2865:15:4;-1:-1:-1;;;;;2865:29:4;;2857:38;;;;;;4685:13;;;;:7;:13;;;;;;;;:25;;;;:18;;;;;:25;;;;:::i;:::-;-1:-1:-1;4725:23:4;;;;;;;;;;;;;;;4737:4;;4725:23;;4743:4;;4725:23;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;4725:23:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4607:148;;;:::o;4200:162::-;2865:3;;;:15;;;-1:-1:-1;;;;;2865:15:4;;;;;;;;;;4266:4;;2884:10;;-1:-1:-1;;;;;2865:3:4;;:9;;:15;;;;;;;;;;;;;;;;:3;:15;;;5:2:-1;;;;30:1;27;20:12;5:2;2865:15:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2865:15:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2865:15:4;-1:-1:-1;;;;;2865:29:4;;2857:38;;;;;;4282:13;;;;:7;:13;;;;;;;;:30;;;;:23;;;;;:30;;;;:::i;:::-;-1:-1:-1;4327:28:4;;;;;;;;;;;;;;;4344:4;;4327:28;;4350:4;;4327:28;;;;;;;;;;;;;;33:3:-1;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;3813:158:4;2865:3;;;:15;;;-1:-1:-1;;;;;2865:15:4;;;;;;;;;;3879:4;;2884:10;;-1:-1:-1;;;;;2865:3:4;;:9;;:15;;;;;;;;;;;;;;;;:3;:15;;;5:2:-1;;;;30:1;27;20:12;5:2;2865:15:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2865:15:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2865:15:4;-1:-1:-1;;;;;2865:29:4;;2857:38;;;;;;3895:13;;;;:7;:13;;;;;;;;;:21;;;:28;;;3938:26;;;;;;;3903:4;;3938:26;;;;;;;;;3813:158;;;:::o;6830:145::-;6881:9;6921:13;;;:7;:13;;;;;:20;;;:22;6945;;;;;6921;;6830:145::o;3293:149::-;2865:3;;;:15;;;-1:-1:-1;;;;;2865:15:4;;;;;;;;;;3356:4;;2884:10;;-1:-1:-1;;;;;2865:3:4;;:9;;:15;;;;;;;;;;;;;;;;:3;:15;;;5:2:-1;;;;30:1;27;20:12;5:2;2865:15:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2865:15:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2865:15:4;-1:-1:-1;;;;;2865:29:4;;2857:38;;;;;;3372:13;;;;:7;:13;;;;;;;;;:25;;-1:-1:-1;;3372:25:4;-1:-1:-1;;;;;3372:25:4;;;;;;;;3412:23;;;;;;;3372:13;;3412:23;;;;;;;;;3293:149;;;:::o;8620:108::-;8698:13;;;;:7;:13;;;;;;;;;:23;;8691:30;;;;;-1:-1:-1;;8691:30:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8674:5;;8698:23;;8691:30;;8698:23;8691:30;;;;;;;;;;;;;;;;;;;;;;;;1553:8134;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1553:8134:4;;;-1:-1:-1;1553:8134:4;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o"},"externals/oraclizeAPI_0.4.25.sol:Buffer":{"bin":"604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820363fef3bba23a3e8517306abc19041de3037b1e57ad9d2a43b8c8bf4240e4dc40029","bin-runtime":"73000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820363fef3bba23a3e8517306abc19041de3037b1e57ad9d2a43b8c8bf4240e4dc40029","srcmap":"3971:4237:5:-;;132:2:-1;166:7;155:9;146:7;137:37;252:7;246:14;243:1;238:23;232:4;229:33;270:1;265:20;;;;222:63;;265:20;274:9;222:63;;298:9;295:1;288:20;328:4;319:7;311:22;352:7;343;336:24","srcmap-runtime":"3971:4237:5:-;;;;;;;;"},"externals/oraclizeAPI_0.4.25.sol:CBOR":{"bin":"604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820aa288f15de5b2d63391b5c6e6318a32c92ff4e721225950e0d9bd6b8a3abe1eb0029","bin-runtime":"73000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820aa288f15de5b2d63391b5c6e6318a32c92ff4e721225950e0d9bd6b8a3abe1eb0029","srcmap":"8210:2407:5:-;;132:2:-1;166:7;155:9;146:7;137:37;252:7;246:14;243:1;238:23;232:4;229:33;270:1;265:20;;;;222:63;;265:20;274:9;222:63;;298:9;295:1;288:20;328:4;319:7;311:22;352:7;343;336:24","srcmap-runtime":"8210:2407:5:-;;;;;;;;"},"externals/oraclizeAPI_0.4.25.sol:OraclizeAddrResolverI":{"bin":"","bin-runtime":"","srcmap":"","srcmap-runtime":""},"externals/oraclizeAPI_0.4.25.sol:OraclizeI":{"bin":"","bin-runtime":"","srcmap":"","srcmap-runtime":""},"externals/oraclizeAPI_0.4.25.sol:usingOraclize":{"bin":"608060405234801561001057600080fd5b5061019d806100206000396000f30060806040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166327dc297e811461005057806338bbfa50146100b0575b600080fd5b34801561005c57600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526100ae95833595369560449491939091019190819084018382808284375094975061014c9650505050505050565b005b3480156100bc57600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526100ae95833595369560449491939091019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a99988101979196509182019450925082915084018382808284375094975061016c9650505050505050565b604080516000815260208101909152610168908390839061016c565b5050565b5050505600a165627a7a72305820006b11ff0715dd1eec44f0392a35175fe2365016df2a283c8e0cf1111f1c866a0029","bin-runtime":"60806040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166327dc297e811461005057806338bbfa50146100b0575b600080fd5b34801561005c57600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526100ae95833595369560449491939091019190819084018382808284375094975061014c9650505050505050565b005b3480156100bc57600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526100ae95833595369560449491939091019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a99988101979196509182019450925082915084018382808284375094975061016c9650505050505050565b604080516000815260208101909152610168908390839061016c565b5050565b5050505600a165627a7a72305820006b11ff0715dd1eec44f0392a35175fe2365016df2a283c8e0cf1111f1c866a0029","srcmap":"10650:41987:5:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10650:41987:5;;;;;;;","srcmap-runtime":"10650:41987:5:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;13619:111;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;13619:111:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13619:111:5;;-1:-1:-1;13619:111:5;;-1:-1:-1;;;;;;;13619:111:5;;;13735:440;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;13735:440:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;13735:440:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13735:440:5;;;;-1:-1:-1;13735:440:5;-1:-1:-1;13735:440:5;;-1:-1:-1;13735:440:5;;;;;;;;-1:-1:-1;13735:440:5;;-1:-1:-1;13735:440:5;;-1:-1:-1;;;;;;;13735:440:5;13619:111;13710:12;;;13720:1;13710:12;;;;;;;;13685:38;;13696:4;;13702:6;;13685:10;:38::i;:::-;13619:111;;:::o;13735:440::-;;;;:::o"},"externals/strings.sol:strings":{"bin":"604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a7230582024a2b0f9f886001e5fd3db71aa4fb1e8f4254fc3db05e9d54265f7c101091af20029","bin-runtime":"73000000000000000000000000000000000000000030146080604052600080fd00a165627a7a7230582024a2b0f9f886001e5fd3db71aa4fb1e8f4254fc3db05e9d54265f7c101091af20029","srcmap":"2600:23355:6:-;;132:2:-1;166:7;155:9;146:7;137:37;252:7;246:14;243:1;238:23;232:4;229:33;270:1;265:20;;;;222:63;;265:20;274:9;222:63;;298:9;295:1;288:20;328:4;319:7;311:22;352:7;343;336:24","srcmap-runtime":"2600:23355:6:-;;;;;;;;"},"internals/claimable.sol:Claimable":{"bin":"6080604052348015600f57600080fd5b50603580601d6000396000f3006080604052600080fd00a165627a7a72305820395b628221b28dc04b0498f55415adf15a37b484bd593b1cfd29b4eab19dc5300029","bin-runtime":"6080604052600080fd00a165627a7a72305820395b628221b28dc04b0498f55415adf15a37b484bd593b1cfd29b4eab19dc5300029","srcmap":"917:797:7:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;917:797:7;;;;;;;","srcmap-runtime":"917:797:7:-;;;;;"},"internals/controllable.sol:Controllable":{"bin":"","bin-runtime":"","srcmap":"","srcmap-runtime":""},"internals/controller.sol:Controller":{"bin":"608060405234801561001057600080fd5b5060405160408061103a83398101604052805160209091015160008054600160a060020a031916600160a060020a0384161760a060020a60ff02191674010000000000000000000000000000000000000000831515810291909117918290558391839160ff91041615156100bb5760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b6040805160008152600160a060020a038416602082015281517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea5929181900390910190a150505050610f28806101126000396000f3006080604052600436106100b95763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166315b9a8b881146100be5780631785f53c146100e55780632121dc751461010857806324d7806c146101315780632b7832b3146101525780637048027514610167578063715018a6146101885780638da5cb5b1461019d578063a7fc7a07146101ce578063b242e534146101ef578063b429afeb14610215578063f6a74ed714610236575b600080fd5b3480156100ca57600080fd5b506100d3610257565b60408051918252519081900360200190f35b3480156100f157600080fd5b50610106600160a060020a036004351661025d565b005b34801561011457600080fd5b5061011d6102b6565b604080519115158252519081900360200190f35b34801561013d57600080fd5b5061011d600160a060020a03600435166102d7565b34801561015e57600080fd5b506100d36102f5565b34801561017357600080fd5b50610106600160a060020a03600435166102fb565b34801561019457600080fd5b50610106610351565b3480156101a957600080fd5b506101b261046c565b60408051600160a060020a039092168252519081900360200190f35b3480156101da57600080fd5b50610106600160a060020a036004351661047b565b3480156101fb57600080fd5b50610106600160a060020a036004351660243515156104e3565b34801561022157600080fd5b5061011d600160a060020a0360043516610722565b34801561024257600080fd5b50610106600160a060020a0360043516610740565b60045490565b610266336107a8565b15156102aa576040805160e560020a62461bcd0281526020600482015260166024820152600080516020610edd833981519152604482015290519081900360640190fd5b6102b3816107bc565b50565b60005474010000000000000000000000000000000000000000900460ff1690565b600160a060020a031660009081526001602052604090205460ff1690565b60025490565b610304336107a8565b1515610348576040805160e560020a62461bcd0281526020600482015260166024820152600080516020610edd833981519152604482015290519081900360640190fd5b6102b381610897565b61035a336107a8565b151561039e576040805160e560020a62461bcd0281526020600482015260166024820152600080516020610edd833981519152604482015290519081900360640190fd5b60005474010000000000000000000000000000000000000000900460ff161515610412576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916815560408051828152602081019290925280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1565b600054600160a060020a031690565b610484336102d7565b15156104da576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e2061646d696e00000000000000000000604482015290519081900360640190fd5b6102b381610b38565b6104ec336107a8565b1515610530576040805160e560020a62461bcd0281526020600482015260166024820152600080516020610edd833981519152604482015290519081900360640190fd5b60005474010000000000000000000000000000000000000000900460ff1615156105a4576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b600160a060020a038216151561062a576040805160e560020a62461bcd02815260206004820152602360248201527f6f776e65722063616e6e6f742062652073657420746f207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6000805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000831515908102919091179091556106aa5760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b60005460408051600160a060020a039283168152918416602083015280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1506000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a031660009081526003602052604090205460ff1690565b610749336102d7565b151561079f576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e2061646d696e00000000000000000000604482015290519081900360640190fd5b6102b381610ddc565b600054600160a060020a0390811691161490565b600160a060020a03811660009081526001602052604090205460ff16151561082e576040805160e560020a62461bcd02815260206004820181905260248201527f70726f7669646564206163636f756e74206973206e6f7420616e2061646d696e604482015290519081900360640190fd5b600160a060020a038116600081815260016020908152604091829020805460ff191690556002805460001901905581513381529081019290925280517f787a2e12f4a55b658b8f573c32432ee11a5e8b51677d1e1e937aaf6a0bb5776e9281900390910190a150565b600160a060020a03811660009081526001602052604090205460ff161561092d576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320616c726561647920616e206160448201527f646d696e00000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a03811660009081526003602052604090205460ff16156109c4576040805160e560020a62461bcd02815260206004820152602860248201527f70726f7669646564206163636f756e7420697320616c7265616479206120636f60448201527f6e74726f6c6c6572000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6109cd816107a8565b15610a48576040805160e560020a62461bcd02815260206004820152602560248201527f70726f7669646564206163636f756e7420697320616c7265616479207468652060448201527f6f776e6572000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0381161515610acd576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260016020818152604092839020805460ff1916831790556002805490920190915581513381529081019290925280517fc58b647b8ba5a8cab2f11f32673636cc1061324240972ed05e8cc005b81a4b7a9281900390910190a150565b600160a060020a03811660009081526001602052604090205460ff1615610bce576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320616c726561647920616e206160448201527f646d696e00000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a03811660009081526003602052604090205460ff1615610c65576040805160e560020a62461bcd02815260206004820152602860248201527f70726f7669646564206163636f756e7420697320616c7265616479206120636f60448201527f6e74726f6c6c6572000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b610c6e816107a8565b15610ce9576040805160e560020a62461bcd02815260206004820152602560248201527f70726f7669646564206163636f756e7420697320616c7265616479207468652060448201527f6f776e6572000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0381161515610d6e576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260036020908152604091829020805460ff1916600190811790915560048054909101905581513381529081019290925280517fb890d5abdcd5c2b61ce8bbc2cf6af9b6d7f7451830cbc85037cbdd182c86fe1d9281900390910190a150565b600160a060020a03811660009081526003602052604090205460ff161515610e73576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e74206973206e6f74206120636f6e74726f60448201527f6c6c657200000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260036020908152604091829020805460ff191690556004805460001901905581513381529081019290925280517fb6a283aaede08e15ef55c74e3014e30eb0c0040d4b156cccb77391268ea373949281900390910190a150560073656e646572206973206e6f7420616e206f776e657200000000000000000000a165627a7a72305820e3381d505607ee63056d5ba42a87e53a7b0dab423e773fa53f1e050ccb6949390029","bin-runtime":"6080604052600436106100b95763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166315b9a8b881146100be5780631785f53c146100e55780632121dc751461010857806324d7806c146101315780632b7832b3146101525780637048027514610167578063715018a6146101885780638da5cb5b1461019d578063a7fc7a07146101ce578063b242e534146101ef578063b429afeb14610215578063f6a74ed714610236575b600080fd5b3480156100ca57600080fd5b506100d3610257565b60408051918252519081900360200190f35b3480156100f157600080fd5b50610106600160a060020a036004351661025d565b005b34801561011457600080fd5b5061011d6102b6565b604080519115158252519081900360200190f35b34801561013d57600080fd5b5061011d600160a060020a03600435166102d7565b34801561015e57600080fd5b506100d36102f5565b34801561017357600080fd5b50610106600160a060020a03600435166102fb565b34801561019457600080fd5b50610106610351565b3480156101a957600080fd5b506101b261046c565b60408051600160a060020a039092168252519081900360200190f35b3480156101da57600080fd5b50610106600160a060020a036004351661047b565b3480156101fb57600080fd5b50610106600160a060020a036004351660243515156104e3565b34801561022157600080fd5b5061011d600160a060020a0360043516610722565b34801561024257600080fd5b50610106600160a060020a0360043516610740565b60045490565b610266336107a8565b15156102aa576040805160e560020a62461bcd0281526020600482015260166024820152600080516020610edd833981519152604482015290519081900360640190fd5b6102b3816107bc565b50565b60005474010000000000000000000000000000000000000000900460ff1690565b600160a060020a031660009081526001602052604090205460ff1690565b60025490565b610304336107a8565b1515610348576040805160e560020a62461bcd0281526020600482015260166024820152600080516020610edd833981519152604482015290519081900360640190fd5b6102b381610897565b61035a336107a8565b151561039e576040805160e560020a62461bcd0281526020600482015260166024820152600080516020610edd833981519152604482015290519081900360640190fd5b60005474010000000000000000000000000000000000000000900460ff161515610412576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916815560408051828152602081019290925280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1565b600054600160a060020a031690565b610484336102d7565b15156104da576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e2061646d696e00000000000000000000604482015290519081900360640190fd5b6102b381610b38565b6104ec336107a8565b1515610530576040805160e560020a62461bcd0281526020600482015260166024820152600080516020610edd833981519152604482015290519081900360640190fd5b60005474010000000000000000000000000000000000000000900460ff1615156105a4576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b600160a060020a038216151561062a576040805160e560020a62461bcd02815260206004820152602360248201527f6f776e65722063616e6e6f742062652073657420746f207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6000805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000831515908102919091179091556106aa5760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b60005460408051600160a060020a039283168152918416602083015280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1506000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a031660009081526003602052604090205460ff1690565b610749336102d7565b151561079f576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e2061646d696e00000000000000000000604482015290519081900360640190fd5b6102b381610ddc565b600054600160a060020a0390811691161490565b600160a060020a03811660009081526001602052604090205460ff16151561082e576040805160e560020a62461bcd02815260206004820181905260248201527f70726f7669646564206163636f756e74206973206e6f7420616e2061646d696e604482015290519081900360640190fd5b600160a060020a038116600081815260016020908152604091829020805460ff191690556002805460001901905581513381529081019290925280517f787a2e12f4a55b658b8f573c32432ee11a5e8b51677d1e1e937aaf6a0bb5776e9281900390910190a150565b600160a060020a03811660009081526001602052604090205460ff161561092d576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320616c726561647920616e206160448201527f646d696e00000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a03811660009081526003602052604090205460ff16156109c4576040805160e560020a62461bcd02815260206004820152602860248201527f70726f7669646564206163636f756e7420697320616c7265616479206120636f60448201527f6e74726f6c6c6572000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6109cd816107a8565b15610a48576040805160e560020a62461bcd02815260206004820152602560248201527f70726f7669646564206163636f756e7420697320616c7265616479207468652060448201527f6f776e6572000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0381161515610acd576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260016020818152604092839020805460ff1916831790556002805490920190915581513381529081019290925280517fc58b647b8ba5a8cab2f11f32673636cc1061324240972ed05e8cc005b81a4b7a9281900390910190a150565b600160a060020a03811660009081526001602052604090205460ff1615610bce576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320616c726561647920616e206160448201527f646d696e00000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a03811660009081526003602052604090205460ff1615610c65576040805160e560020a62461bcd02815260206004820152602860248201527f70726f7669646564206163636f756e7420697320616c7265616479206120636f60448201527f6e74726f6c6c6572000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b610c6e816107a8565b15610ce9576040805160e560020a62461bcd02815260206004820152602560248201527f70726f7669646564206163636f756e7420697320616c7265616479207468652060448201527f6f776e6572000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0381161515610d6e576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260036020908152604091829020805460ff1916600190811790915560048054909101905581513381529081019290925280517fb890d5abdcd5c2b61ce8bbc2cf6af9b6d7f7451830cbc85037cbdd182c86fe1d9281900390910190a150565b600160a060020a03811660009081526003602052604090205460ff161515610e73576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e74206973206e6f74206120636f6e74726f60448201527f6c6c657200000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260036020908152604091829020805460ff191690556004805460001901905581513381529081019290925280517fb6a283aaede08e15ef55c74e3014e30eb0c0040d4b156cccb77391268ea373949281900390910190a150560073656e646572206973206e6f7420616e206f776e657200000000000000000000a165627a7a72305820e3381d505607ee63056d5ba42a87e53a7b0dab423e773fa53f1e050ccb6949390029","srcmap":"1335:4616:9:-;;;2020:107;8:9:-1;5:2;;;30:1;27;20:12;5:2;2020:107:9;;;;;;;;;;;;;;;;;;;1527:6:12;:18;;-1:-1:-1;;;;;;1527:18:12;-1:-1:-1;;;;;1527:18:12;;;-1:-1:-1;;;;;;1555:32:12;;;;;;;;;;;;;;;2020:107:9;;;;1555:32:12;1671:15;;;1670:16;1666:78;;;1707:26;;;-1:-1:-1;;;;;1707:26:12;;;;;;;;;;;;;;;1666:78;1758:43;;;1787:1;1758:43;;-1:-1:-1;;;;;1758:43:12;;;;;;;;;;;;;;;;;;;1456:352;;2020:107:9;;1335:4616;;;;;;","srcmap-runtime":"1335:4616:9:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3634:96;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3634:96:9;;;;;;;;;;;;;;;;;;;;2814:97;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2814:97:9;-1:-1:-1;;;;;2814:97:9;;;;;;;3149:94:12;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3149:94:12;;;;;;;;;;;;;;;;;;;;;;3834:104:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3834:104:9;-1:-1:-1;;;;;3834:104:9;;;;;2963:86;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2963:86:9;;;;2594:91;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2594:91:9;-1:-1:-1;;;;;2594:91:9;;;;;3519:306:12;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3519:306:12;;;;3908:77;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3908:77:12;;;;;;;;-1:-1:-1;;;;;3908:77:12;;;;;;;;;;;;;;3187:101:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3187:101:9;-1:-1:-1;;;;;3187:101:9;;;;;2231:801:12;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2231:801:12;-1:-1:-1;;;;;2231:801:12;;;;;;;;;4050:114:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4050:114:9;-1:-1:-1;;;;;4050:114:9;;;;;3432:107;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3432:107:9;-1:-1:-1;;;;;3432:107:9;;;;;3634:96;3707:16;;3634:96;:::o;2814:97::-;1924:20:12;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:12;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1916:55:12;;;;;;;;;;;;;;;2882:22:9;2895:8;2882:12;:22::i;:::-;2814:97;:::o;3149:94:12:-;3198:4;3221:15;;;;;;;3149:94::o;3834:104:9:-;-1:-1:-1;;;;;3913:18:9;3890:4;3913:18;;;:8;:18;;;;;;;;;3834:104::o;2963:86::-;3031:11;;2963:86;:::o;2594:91::-;1924:20:12;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:12;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1916:55:12;;;;;;;;;;;;;;;2659:19:9;2669:8;2659:9;:19::i;3519:306:12:-;1924:20;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:12;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1916:55:12;;;;;;;;;;;;;;;3640:15;;;;;;;3632:57;;;;;;;-1:-1:-1;;;;;3632:57:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;3760:1;3743:19;;-1:-1:-1;;3743:19:12;;;3778:40;;;;;;;;;;;;;;;;;;;;;;;;;3519:306::o;3908:77::-;3946:7;3972:6;-1:-1:-1;;;;;3972:6:12;3908:77;:::o;3187:101:9:-;2226:19;2234:10;2226:7;:19::i;:::-;2218:54;;;;;;;-1:-1:-1;;;;;2218:54:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;3257:24;3272:8;3257:14;:24::i;2231:801:12:-;1924:20;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:12;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1916:55:12;;;;;;;;;;;;;;;2388:15;;;;;;;2380:57;;;;;;;-1:-1:-1;;;;;2380:57:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2518:22:12;;;;2510:70;;;;;-1:-1:-1;;;;;2510:70:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2665:15;:31;;-1:-1:-1;;2665:31:12;;;;;;;;;;;;;;;2775:75;;2814:25;;;-1:-1:-1;;;;;2814:25:12;;;;;;;;;;;;;;;2775:75;2931:6;;2910:38;;;-1:-1:-1;;;;;2931:6:12;;;2910:38;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3008:6:12;:17;;-1:-1:-1;;3008:17:12;-1:-1:-1;;;;;3008:17:12;;;;;;;;;;2231:801::o;4050:114:9:-;-1:-1:-1;;;;;4134:23:9;4111:4;4134:23;;;:13;:23;;;;;;;;;4050:114::o;3432:107::-;2226:19;2234:10;2226:7;:19::i;:::-;2218:54;;;;;;;-1:-1:-1;;;;;2218:54:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;3505:27;3523:8;3505:17;:27::i;4091:107:12:-;4150:4;4185:6;-1:-1:-1;;;;;4185:6:12;;;4173:18;;;;4091:107::o;4791:236:9:-;-1:-1:-1;;;;;4857:18:9;;;;;;:8;:18;;;;;;;;4849:63;;;;;;;-1:-1:-1;;;;;4849:63:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4922:18:9;;4943:5;4922:18;;;:8;:18;;;;;;;;;:26;;-1:-1:-1;;4922:26:9;;;4958:11;:13;;-1:-1:-1;;4958:13:9;;;4986:34;;4999:10;4986:34;;;;;;;;;;;;;;;;;;;;;4791:236;:::o;4232:482::-;-1:-1:-1;;;;;4296:18:9;;;;;;:8;:18;;;;;;;;4295:19;4287:68;;;;;-1:-1:-1;;;;;4287:68:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4374:23:9;;;;;;:13;:23;;;;;;;;4373:24;4365:77;;;;;-1:-1:-1;;;;;4365:77:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4461:18;4470:8;4461;:18::i;:::-;4460:19;4452:69;;;;;-1:-1:-1;;;;;4452:69:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4539:22:9;;;;4531:71;;;;;-1:-1:-1;;;;;4531:71:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4612:18:9;;;;;;4633:4;4612:18;;;;;;;;;:25;;-1:-1:-1;;4612:25:9;;;;;4647:11;:13;;;;;;;;4675:32;;4686:10;4675:32;;;;;;;;;;;;;;;;;;;;;4232:482;:::o;5100:502::-;-1:-1:-1;;;;;5169:18:9;;;;;;:8;:18;;;;;;;;5168:19;5160:68;;;;;-1:-1:-1;;;;;5160:68:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5247:23:9;;;;;;:13;:23;;;;;;;;5246:24;5238:77;;;;;-1:-1:-1;;;;;5238:77:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5334:18;5343:8;5334;:18::i;:::-;5333:19;5325:69;;;;;-1:-1:-1;;;;;5325:69:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5412:22:9;;;;5404:71;;;;;-1:-1:-1;;;;;5404:71:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5485:23:9;;;;;;:13;:23;;;;;;;;;:30;;-1:-1:-1;;5485:30:9;5511:4;5485:30;;;;;;5525:16;:18;;;;;;;5558:37;;5574:10;5558:37;;;;;;;;;;;;;;;;;;;;;5100:502;:::o;5684:265::-;-1:-1:-1;;;;;5755:23:9;;;;;;:13;:23;;;;;;;;5747:72;;;;;;;-1:-1:-1;;;;;5747:72:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5829:23:9;;5855:5;5829:23;;;:13;:23;;;;;;;;;:31;;-1:-1:-1;;5829:31:9;;;5870:16;:18;;-1:-1:-1;;5870:18:9;;;5903:39;;5921:10;5903:39;;;;;;;;;;;;;;;;;;;;;5684:265;:::o"},"internals/controller.sol:IController":{"bin":"","bin-runtime":"","srcmap":"","srcmap-runtime":""},"internals/date.sol:Date":{"bin":"6080604052348015600f57600080fd5b50603580601d6000396000f3006080604052600080fd00a165627a7a72305820bcaee84bedef42af3422d291252804450534500ae191f95d2d1ef5e8632505350029","bin-runtime":"6080604052600080fd00a165627a7a72305820bcaee84bedef42af3422d291252804450534500ae191f95d2d1ef5e8632505350029","srcmap":"927:1780:10:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;927:1780:10;;;;;;;","srcmap-runtime":"927:1780:10:-;;;;;"},"internals/ensResolvable.sol:ENSResolvable":{"bin":"","bin-runtime":"","srcmap":"","srcmap-runtime":""},"internals/ownable.sol:Ownable":{"bin":"","bin-runtime":"","srcmap":"","srcmap-runtime":""},"internals/parseIntScientific.sol:ParseIntScientific":{"bin":"6080604052348015600f57600080fd5b50603580601d6000396000f3006080604052600080fd00a165627a7a723058208c37e6953e2122dc56dabf6b83172b69a9ffe4f23efe16822418455f581c7a2d0029","bin-runtime":"6080604052600080fd00a165627a7a723058208c37e6953e2122dc56dabf6b83172b69a9ffe4f23efe16822418455f581c7a2d0029","srcmap":"952:7409:13:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;952:7409:13;;;;;;;","srcmap-runtime":"952:7409:13:-;;;;;"},"internals/tokenWhitelist.sol:ITokenWhitelist":{"bin":"","bin-runtime":"","srcmap":"","srcmap-runtime":""},"internals/tokenWhitelist.sol:TokenWhitelist":{"bin":"608060405234801561001057600080fd5b5060405160c08061189f83398101604090815281516020830151918301516060840151608085015160a09095015160018054600160a060020a03808716600160a060020a03199283161792839055600080548316938216939093179092556002859055600380548915157401000000000000000000000000000000000000000090810260a060020a60ff0219958816929094169190911793909316919091179081905594969394929392849184910460ff1615156101055760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b6040805160008152600160a060020a038416602082015281517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea5929181900390910190a15050600794909455505060068054600160a060020a031916600160a060020a03909316929092179091555061171a9050806101856000396000f3006080604052600436106100cf5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631f69565f81146100d45780632121dc751461019f57806334c73edc146101c85780633efec5e91461021d578063443dd2a4146102325780636c3824ef14610297578063715018a6146102b75780637d73b231146102cc57806380cc0dda146102fd5780638da5cb5b14610324578063b242e53414610339578063d545782e1461035f578063e2b4ce9714610386578063e9cbd8221461039b575b600080fd5b3480156100e057600080fd5b506100f5600160a060020a03600435166103b0565b6040805160208082018990529181018790528515156060820152841515608082015283151560a082015260c0810183905260e08082528951908201528851909182916101008301918b019080838360005b8381101561015e578181015183820152602001610146565b50505050905090810190601f16801561018b5780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b3480156101ab57600080fd5b506101b46104ac565b604080519115158252519081900360200190f35b3480156101d457600080fd5b5061021b602460048035828101929082013591813580830192908201359160443580830192908201359160643580830192908201359160843591820191013560a4356104ce565b005b34801561022957600080fd5b506100f5610965565b34801561023e57600080fd5b50610247610a61565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561028357818101518382015260200161026b565b505050509050019250505060405180910390f35b3480156102a357600080fd5b5061021b6004803560248101910135610ac3565b3480156102c357600080fd5b5061021b610d62565b3480156102d857600080fd5b506102e1610e8f565b60408051600160a060020a039092168252519081900360200190f35b34801561030957600080fd5b50610312610e9e565b60408051918252519081900360200190f35b34801561033057600080fd5b506102e1610ea4565b34801561034557600080fd5b5061021b600160a060020a03600435166024351515610eb3565b34801561036b57600080fd5b5061021b600160a060020a0360043516602435604435611104565b34801561039257600080fd5b50610312611266565b3480156103a757600080fd5b506102e161126c565b600160a060020a0381166000908152600460208181526040808420600180820154600280840154600385015497850154855487516101009682161587026000190190911693909304601f81018990048902840189019097528683526060999889988998899889988998919788979296929560ff808216969382048116956201000090920416939289919083018282801561048b5780601f106104605761010080835404028352916020019161048b565b820191906000526020600020905b81548152906001019060200180831161046e57829003601f168201915b50505050509650975097509750975097509750975050919395979092949650565b60035474010000000000000000000000000000000000000000900460ff165b90565b600060606104db3361127b565b1515610531576040805160e560020a62461bcd02815260206004820152601a60248201527f73656e646572206973206e6f74206120636f6e74726f6c6c6572000000000000604482015290519081900360640190fd5b8b8a14801561053f57508b88145b801561054a57508b86145b801561055557508b86145b15156105ab576040805160e560020a62461bcd02815260206004820152601e60248201527f706172616d65746572206c656e6774687320646f206e6f74206d617463680000604482015290519081900360640190fd5b600091505b8b82101561095657600460008e8e858181106105c857fe5b60209081029290920135600160a060020a03168352508101919091526040016000206003015460ff1615610646576040805160e560020a62461bcd02815260206004820152601760248201527f746f6b656e20616c726561647920617661696c61626c65000000000000000000604482015290519081900360640190fd5b61066c6106678c8c8581811061065857fe5b6020029190910135905061132d565b611359565b905060e0604051908101604052808281526020018a8a85818110151561068e57fe5b9050602002013581526020016000815260200160011515815260200188888581811015156106b857fe5b602090810292909201351515835250018686858181106106d457fe5b60209081029290920135151583525001849052600460008f8f868181106106f757fe5b90506020020135600160a060020a0316600160a060020a0316600160a060020a0316815260200190815260200160002060008201518160000190805190602001906107439291906115cf565b5060208201516001820155604082015160028201556060820151600382018054608085015160a08601511515620100000262ff0000199115156101000261ff001995151560ff199094169390931794909416919091171691909117905560c09091015160049091015560058d8d848181106107ba57fe5b8354600181018555600094855260209485902001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0395909202939093013593909316929092179055507f1802e89da3f6ef84e024e37454c226b1e13bf846ce71cd2a1d24faef9cbf779b338e8e8581811061083157fe5b90506020020135600160a060020a0316838c8c87818110151561085057fe5b905060200201358b8b88818110151561086557fe5b9050602002013515158a8a89818110151561087c57fe5b9050602002013515156040518087600160a060020a0316600160a060020a0316815260200186600160a060020a0316600160a060020a03168152602001806020018581526020018415151515815260200183151515158152602001828103825286818151815260200191508051906020019080838360005b8381101561090c5781810151838201526020016108f4565b50505050905090810190601f1680156109395780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390a16001909101906105b0565b50505050505050505050505050565b600654600160a060020a03166000908152600460208181526040808420600180820154600280840154600385015497850154855487516101009682161587026000190190911693909304601f81018990048902840189019097528683526060999889988998899889988998919788979296929560ff8082169693820481169562010000909204169392899190830182828015610a425780601f10610a1757610100808354040283529160200191610a42565b820191906000526020600020905b815481529060010190602001808311610a2557829003601f168201915b5050505050965097509750975097509750975097505090919293949596565b60606005805480602002602001604051908101604052809291908181526020018280548015610ab957602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610a9b575b5050505050905090565b6000806000610ad13361127b565b1515610b27576040805160e560020a62461bcd02815260206004820152601a60248201527f73656e646572206973206e6f74206120636f6e74726f6c6c6572000000000000604482015290519081900360640190fd5b600092505b83831015610d5b5760046000868686818110610b4457fe5b60209081029290920135600160a060020a03168352508101919091526040016000206003015460ff161515610bc3576040805160e560020a62461bcd02815260206004820152601660248201527f746f6b656e206973206e6f7420617661696c61626c6500000000000000000000604482015290519081900360640190fd5b848484818110610bcf57fe5b60209081029290920135600160a060020a03166000818152600490935260408320909450919050610c00828261164d565b506000600182018190556002820181905560038201805462ffffff19169055600490910181905590505b600554610c3e90600163ffffffff6113b316565b811015610cf95781600160a060020a0316600582815481101515610c5e57fe5b600091825260209091200154600160a060020a03161415610cf15760058054610c8e90600163ffffffff6113b316565b81548110610c9857fe5b60009182526020909120015460058054600160a060020a039092169183908110610cbe57fe5b9060005260206000200160006101000a815481600160a060020a030219169083600160a060020a03160217905550610cf9565b600101610c2a565b6005805490610d0c906000198301611694565b5060408051338152600160a060020a038416602082015281517f703f7e3f084d5b8dcc12fddcfd9a70d65b6b21ec7659e4608dbaf4419ede3ad0929181900390910190a1600190920191610b2c565b5050505050565b610d6b336113ca565b1515610dc1576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e206f776e657200000000000000000000604482015290519081900360640190fd5b60035474010000000000000000000000000000000000000000900460ff161515610e35576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b6003805473ffffffffffffffffffffffffffffffffffffffff19169055604080516000808252602082015281517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea5929181900390910190a1565b600154600160a060020a031690565b60075490565b600354600160a060020a031690565b610ebc336113ca565b1515610f12576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e206f776e657200000000000000000000604482015290519081900360640190fd5b60035474010000000000000000000000000000000000000000900460ff161515610f86576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b600160a060020a038216151561100c576040805160e560020a62461bcd02815260206004820152602360248201527f6f776e65722063616e6e6f742062652073657420746f207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6003805474ff00000000000000000000000000000000000000001916740100000000000000000000000000000000000000008315159081029190911790915561108c5760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b60035460408051600160a060020a039283168152918416602083015280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1506003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60006111116007546113de565b905061111c3361127b565b8061112f575033600160a060020a038216145b1515611185576040805160e560020a62461bcd02815260206004820152601b60248201527f656974686572206f7261636c65206f7220636f6e74726f6c6c65720000000000604482015290519081900360640190fd5b600160a060020a03841660009081526004602052604090206003015460ff1615156111fa576040805160e560020a62461bcd02815260206004820152601660248201527f746f6b656e206973206e6f7420617661696c61626c6500000000000000000000604482015290519081900360640190fd5b600160a060020a03841660008181526004602081815260409283902060028101889055909101859055815133815290810192909252818101859052517fdb3a4cfb4cd8ac94343ff7440cee8d05ade309056203f0e53ca49b6db8197c7d9181900360600190a150505050565b60025490565b600654600160a060020a031690565b60006112886002546113de565b600160a060020a031663b429afeb836040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b1580156112fb57600080fd5b505af115801561130f573d6000803e3d6000fd5b505050506040513d602081101561132557600080fd5b505192915050565b6113356116bd565b6040516020810160405282815280602083015250611352826114d5565b8152919050565b606080600083600001516040519080825280601f01601f191660200182016040528015611390578160200160208202803883390190505b5091506020820190506113ac818560200151866000015161158b565b5092915050565b600080838311156113c357600080fd5b5050900390565b600354600160a060020a0390811691161490565b60008054604080517f0178b8bf000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691630178b8bf9160248082019260209290919082900301818787803b15801561144557600080fd5b505af1158015611459573d6000803e3d6000fd5b505050506040513d602081101561146f57600080fd5b5051604080517f3b3b57de000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691633b3b57de916024808201926020929091908290030181600087803b1580156112fb57600080fd5b6000808215156114e85760009150611585565b6fffffffffffffffffffffffffffffffff8316151561151b57601001700100000000000000000000000000000000830492505b67ffffffffffffffff8316151561153e5760080168010000000000000000830492505b63ffffffff8316151561155957600401640100000000830492505b61ffff831615156115705760020162010000830492505b60ff8316151561157e576001015b8060200391505b50919050565b60005b602082106115b0578251845260209384019390920191601f199091019061158e565b50905182516020929092036101000a6000190180199091169116179052565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061161057805160ff191683800117855561163d565b8280016001018555821561163d579182015b8281111561163d578251825591602001919060010190611622565b506116499291506116d4565b5090565b50805460018160011615610100020316600290046000825580601f106116735750611691565b601f01602090049060005260206000209081019061169191906116d4565b50565b8154818355818111156116b8576000838152602090206116b89181019083016116d4565b505050565b604080518082019091526000808252602082015290565b6104cb91905b8082111561164957600081556001016116da5600a165627a7a7230582093b6ea30833eac9793938fe8dab81d00e6ef1dbb9489c89e10258ba8847c4c870029","bin-runtime":"6080604052600436106100cf5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631f69565f81146100d45780632121dc751461019f57806334c73edc146101c85780633efec5e91461021d578063443dd2a4146102325780636c3824ef14610297578063715018a6146102b75780637d73b231146102cc57806380cc0dda146102fd5780638da5cb5b14610324578063b242e53414610339578063d545782e1461035f578063e2b4ce9714610386578063e9cbd8221461039b575b600080fd5b3480156100e057600080fd5b506100f5600160a060020a03600435166103b0565b6040805160208082018990529181018790528515156060820152841515608082015283151560a082015260c0810183905260e08082528951908201528851909182916101008301918b019080838360005b8381101561015e578181015183820152602001610146565b50505050905090810190601f16801561018b5780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b3480156101ab57600080fd5b506101b46104ac565b604080519115158252519081900360200190f35b3480156101d457600080fd5b5061021b602460048035828101929082013591813580830192908201359160443580830192908201359160643580830192908201359160843591820191013560a4356104ce565b005b34801561022957600080fd5b506100f5610965565b34801561023e57600080fd5b50610247610a61565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561028357818101518382015260200161026b565b505050509050019250505060405180910390f35b3480156102a357600080fd5b5061021b6004803560248101910135610ac3565b3480156102c357600080fd5b5061021b610d62565b3480156102d857600080fd5b506102e1610e8f565b60408051600160a060020a039092168252519081900360200190f35b34801561030957600080fd5b50610312610e9e565b60408051918252519081900360200190f35b34801561033057600080fd5b506102e1610ea4565b34801561034557600080fd5b5061021b600160a060020a03600435166024351515610eb3565b34801561036b57600080fd5b5061021b600160a060020a0360043516602435604435611104565b34801561039257600080fd5b50610312611266565b3480156103a757600080fd5b506102e161126c565b600160a060020a0381166000908152600460208181526040808420600180820154600280840154600385015497850154855487516101009682161587026000190190911693909304601f81018990048902840189019097528683526060999889988998899889988998919788979296929560ff808216969382048116956201000090920416939289919083018282801561048b5780601f106104605761010080835404028352916020019161048b565b820191906000526020600020905b81548152906001019060200180831161046e57829003601f168201915b50505050509650975097509750975097509750975050919395979092949650565b60035474010000000000000000000000000000000000000000900460ff165b90565b600060606104db3361127b565b1515610531576040805160e560020a62461bcd02815260206004820152601a60248201527f73656e646572206973206e6f74206120636f6e74726f6c6c6572000000000000604482015290519081900360640190fd5b8b8a14801561053f57508b88145b801561054a57508b86145b801561055557508b86145b15156105ab576040805160e560020a62461bcd02815260206004820152601e60248201527f706172616d65746572206c656e6774687320646f206e6f74206d617463680000604482015290519081900360640190fd5b600091505b8b82101561095657600460008e8e858181106105c857fe5b60209081029290920135600160a060020a03168352508101919091526040016000206003015460ff1615610646576040805160e560020a62461bcd02815260206004820152601760248201527f746f6b656e20616c726561647920617661696c61626c65000000000000000000604482015290519081900360640190fd5b61066c6106678c8c8581811061065857fe5b6020029190910135905061132d565b611359565b905060e0604051908101604052808281526020018a8a85818110151561068e57fe5b9050602002013581526020016000815260200160011515815260200188888581811015156106b857fe5b602090810292909201351515835250018686858181106106d457fe5b60209081029290920135151583525001849052600460008f8f868181106106f757fe5b90506020020135600160a060020a0316600160a060020a0316600160a060020a0316815260200190815260200160002060008201518160000190805190602001906107439291906115cf565b5060208201516001820155604082015160028201556060820151600382018054608085015160a08601511515620100000262ff0000199115156101000261ff001995151560ff199094169390931794909416919091171691909117905560c09091015160049091015560058d8d848181106107ba57fe5b8354600181018555600094855260209485902001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0395909202939093013593909316929092179055507f1802e89da3f6ef84e024e37454c226b1e13bf846ce71cd2a1d24faef9cbf779b338e8e8581811061083157fe5b90506020020135600160a060020a0316838c8c87818110151561085057fe5b905060200201358b8b88818110151561086557fe5b9050602002013515158a8a89818110151561087c57fe5b9050602002013515156040518087600160a060020a0316600160a060020a0316815260200186600160a060020a0316600160a060020a03168152602001806020018581526020018415151515815260200183151515158152602001828103825286818151815260200191508051906020019080838360005b8381101561090c5781810151838201526020016108f4565b50505050905090810190601f1680156109395780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390a16001909101906105b0565b50505050505050505050505050565b600654600160a060020a03166000908152600460208181526040808420600180820154600280840154600385015497850154855487516101009682161587026000190190911693909304601f81018990048902840189019097528683526060999889988998899889988998919788979296929560ff8082169693820481169562010000909204169392899190830182828015610a425780601f10610a1757610100808354040283529160200191610a42565b820191906000526020600020905b815481529060010190602001808311610a2557829003601f168201915b5050505050965097509750975097509750975097505090919293949596565b60606005805480602002602001604051908101604052809291908181526020018280548015610ab957602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610a9b575b5050505050905090565b6000806000610ad13361127b565b1515610b27576040805160e560020a62461bcd02815260206004820152601a60248201527f73656e646572206973206e6f74206120636f6e74726f6c6c6572000000000000604482015290519081900360640190fd5b600092505b83831015610d5b5760046000868686818110610b4457fe5b60209081029290920135600160a060020a03168352508101919091526040016000206003015460ff161515610bc3576040805160e560020a62461bcd02815260206004820152601660248201527f746f6b656e206973206e6f7420617661696c61626c6500000000000000000000604482015290519081900360640190fd5b848484818110610bcf57fe5b60209081029290920135600160a060020a03166000818152600490935260408320909450919050610c00828261164d565b506000600182018190556002820181905560038201805462ffffff19169055600490910181905590505b600554610c3e90600163ffffffff6113b316565b811015610cf95781600160a060020a0316600582815481101515610c5e57fe5b600091825260209091200154600160a060020a03161415610cf15760058054610c8e90600163ffffffff6113b316565b81548110610c9857fe5b60009182526020909120015460058054600160a060020a039092169183908110610cbe57fe5b9060005260206000200160006101000a815481600160a060020a030219169083600160a060020a03160217905550610cf9565b600101610c2a565b6005805490610d0c906000198301611694565b5060408051338152600160a060020a038416602082015281517f703f7e3f084d5b8dcc12fddcfd9a70d65b6b21ec7659e4608dbaf4419ede3ad0929181900390910190a1600190920191610b2c565b5050505050565b610d6b336113ca565b1515610dc1576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e206f776e657200000000000000000000604482015290519081900360640190fd5b60035474010000000000000000000000000000000000000000900460ff161515610e35576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b6003805473ffffffffffffffffffffffffffffffffffffffff19169055604080516000808252602082015281517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea5929181900390910190a1565b600154600160a060020a031690565b60075490565b600354600160a060020a031690565b610ebc336113ca565b1515610f12576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e206f776e657200000000000000000000604482015290519081900360640190fd5b60035474010000000000000000000000000000000000000000900460ff161515610f86576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b600160a060020a038216151561100c576040805160e560020a62461bcd02815260206004820152602360248201527f6f776e65722063616e6e6f742062652073657420746f207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6003805474ff00000000000000000000000000000000000000001916740100000000000000000000000000000000000000008315159081029190911790915561108c5760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b60035460408051600160a060020a039283168152918416602083015280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1506003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60006111116007546113de565b905061111c3361127b565b8061112f575033600160a060020a038216145b1515611185576040805160e560020a62461bcd02815260206004820152601b60248201527f656974686572206f7261636c65206f7220636f6e74726f6c6c65720000000000604482015290519081900360640190fd5b600160a060020a03841660009081526004602052604090206003015460ff1615156111fa576040805160e560020a62461bcd02815260206004820152601660248201527f746f6b656e206973206e6f7420617661696c61626c6500000000000000000000604482015290519081900360640190fd5b600160a060020a03841660008181526004602081815260409283902060028101889055909101859055815133815290810192909252818101859052517fdb3a4cfb4cd8ac94343ff7440cee8d05ade309056203f0e53ca49b6db8197c7d9181900360600190a150505050565b60025490565b600654600160a060020a031690565b60006112886002546113de565b600160a060020a031663b429afeb836040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b1580156112fb57600080fd5b505af115801561130f573d6000803e3d6000fd5b505050506040513d602081101561132557600080fd5b505192915050565b6113356116bd565b6040516020810160405282815280602083015250611352826114d5565b8152919050565b606080600083600001516040519080825280601f01601f191660200182016040528015611390578160200160208202803883390190505b5091506020820190506113ac818560200151866000015161158b565b5092915050565b600080838311156113c357600080fd5b5050900390565b600354600160a060020a0390811691161490565b60008054604080517f0178b8bf000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691630178b8bf9160248082019260209290919082900301818787803b15801561144557600080fd5b505af1158015611459573d6000803e3d6000fd5b505050506040513d602081101561146f57600080fd5b5051604080517f3b3b57de000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691633b3b57de916024808201926020929091908290030181600087803b1580156112fb57600080fd5b6000808215156114e85760009150611585565b6fffffffffffffffffffffffffffffffff8316151561151b57601001700100000000000000000000000000000000830492505b67ffffffffffffffff8316151561153e5760080168010000000000000000830492505b63ffffffff8316151561155957600401640100000000830492505b61ffff831615156115705760020162010000830492505b60ff8316151561157e576001015b8060200391505b50919050565b60005b602082106115b0578251845260209384019390920191601f199091019061158e565b50905182516020929092036101000a6000190180199091169116179052565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061161057805160ff191683800117855561163d565b8280016001018555821561163d579182015b8281111561163d578251825591602001919060010190611622565b506116499291506116d4565b5090565b50805460018160011615610100020316600290046000825580601f106116735750611691565b601f01602090049060005260206000209081019061169191906116d4565b50565b8154818355818111156116b8576000838152602090206116b89181019083016116d4565b505050565b604080518082019091526000808252602082015290565b6104cb91905b8082111561164957600081556001016116da5600a165627a7a7230582093b6ea30833eac9793938fe8dab81d00e6ef1dbb9489c89e10258ba8847c4c870029","srcmap":"1593:8239:14:-;;;3164:336;8:9:-1;5:2;;;30:1;27;20:12;5:2;3164:336:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1312:12:11;:23;;-1:-1:-1;;;;;1312:23:11;;;-1:-1:-1;;;;;;1312:23:11;;;;;;;;:12;1345:24;;;;1356:12;;;1345:24;;;;;;;1334:15:8;:38;;;1527:6:12;:18;;1555:32;;;;;;;-1:-1:-1;;;;;;1527:18:12;;;;;;;;;;;1555:32;;;;;;;;;;;;3164:336:14;;;;;;;;;;;1671:15:12;1555:32;1671:15;1670:16;1666:78;;;1707:26;;;-1:-1:-1;;;;;1707:26:12;;;;;;;;;;;;;;;1666:78;1758:43;;;1787:1;1758:43;;-1:-1:-1;;;;;1758:43:12;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3420:11:14;:30;;;;-1:-1:-1;;3460:11:14;:33;;-1:-1:-1;;;;;;3460:33:14;-1:-1:-1;;;;;3460:33:14;;;;;;;;;;-1:-1:-1;1593:8239:14;;-1:-1:-1;1593:8239:14;;-1:-1:-1;1593:8239:14;;","srcmap-runtime":"1593:8239:14:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7993:325;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7993:325:14;-1:-1:-1;;;;;7993:325:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-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;7993:325:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3149:94:12;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3149:94:12;;;;;;;;;;;;;;;;;;;;;;4064:1439:14;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4064:1439:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8810:369;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8810:369:14;;;;9302:105;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9302:105:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;9302:105:14;;;;;;;;;;;;;;;;;5630:1031;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5630:1031:14;;;;;;;;;;;;3519:306:12;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3519:306:12;;;;1468:91:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1468:91:11;;;;;;;;-1:-1:-1;;;;;1468:91:11;;;;;;;;;;;;;;9741:89:14;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9741:89:14;;;;;;;;;;;;;;;;;;;;3908:77:12;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3908:77:12;;;;2231:801;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2231:801:12;-1:-1:-1;;;;;2231:801:12;;;;;;;;;6938:514:14;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6938:514:14;-1:-1:-1;;;;;6938:514:14;;;;;;;;;1629:97:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1629:97:8;;;;9538:89:14;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9538:89:14;;;;7993:325;-1:-1:-1;;;;;8139:17:14;;8058:7;8139:17;;;:13;:17;;;;;;;;8192:19;;;;;8213:14;;;;;8229:19;;;;8290:20;;;;8166:145;;;;8229:19;8166:145;;;;;;-1:-1:-1;;8166:145:14;;;;;;;;;;;;;;;;;;;;;;;;;;8050:6;;8058:7;;;;;;;;;;;8139:17;;;;8192:19;;8213:14;;8229:19;;;;;8250:18;;;;;;8270;;;;;;8290:20;8139:17;;8166:145;;;8139:17;8166:145;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7993:325;;;;;;;;;;:::o;3149:94:12:-;3221:15;;;;;;;3149:94;;:::o;4064:1439:14:-;4555:6;4801:20;1489:25:8;1503:10;1489:13;:25::i;:::-;1481:64;;;;;;;-1:-1:-1;;;;;1481:64:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;4298:33:14;;;:72;;;;-1:-1:-1;4335:35:14;;;4298:72;:110;;;;-1:-1:-1;4374:34:14;;;4298:110;:148;;;;-1:-1:-1;4412:34:14;;;4298:148;4290:191;;;;;;;-1:-1:-1;;;;;4290:191:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;4564:1;4555:10;;4550:947;4567:18;;;4550:947;;;4678:13;:25;4692:7;;4700:1;4692:10;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4692:10:14;4678:25;;-1:-1:-1;4678:25:14;;;;;;;;-1:-1:-1;4678:25:14;:35;;;;;4677:36;4669:72;;;;;-1:-1:-1;;;;;4669:72:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;4824:35;:24;:8;;4833:1;4824:11;;;;;;;;;;;;;;;-1:-1:-1;4824:22:14;:24::i;:::-;:33;:35::i;:::-;4801:58;;4949:284;;;;;;;;;4982:6;4949:284;;;;5018:10;;5029:1;5018:13;;;;;;;;;;;;;;;4949:284;;;;5056:1;4949:284;;;;5087:4;4949:284;;;;;;5120:9;;5130:1;5120:12;;;;;;;;;;;;;;;;;;;;4949:284;;-1:-1:-1;4949:284:14;5160:9;;5170:1;5160:12;;;;;;;;;;;;;;;;;;4949:284;;-1:-1:-1;4949:284:14;;;;4921:13;-1:-1:-1;4935:7:14;;4943:1;4935:10;;;;;;;;;;;;;-1:-1:-1;;;;;4935:10:14;-1:-1:-1;;;;;4921:25:14;-1:-1:-1;;;;;4921:25:14;;;;;;;;;;;;:312;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;4921:312:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4921:312:14;;;;;-1:-1:-1;;4921:312:14;;;-1:-1:-1;;4921:312:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5305:18;5329:7;;5337:1;5329:10;;;;;;;27::-1;;39:1;23:18;;45:23;;-1:-1;5305:35:14;;;5329:10;5305:35;;;;;;;-1:-1:-1;;5305:35:14;-1:-1:-1;;;;;5329:10:14;;;;;;;;;;;;;5305:35;;;;;;-1:-1:-1;5401:85:14;5412:10;5424:7;;5432:1;5424:10;;;;;;;;;;;;;-1:-1:-1;;;;;5424:10:14;5436:6;5444:10;;5455:1;5444:13;;;;;;;;;;;;;;;5459:9;;5469:1;5459:12;;;;;;;;;;;;;;;;;5473:9;;5483:1;5473:12;;;;;;;;;;;;;;;;;5401:85;;;;-1:-1:-1;;;;;5401:85:14;-1:-1:-1;;;;;5401:85:14;;;;;;-1:-1:-1;;;;;5401:85:14;-1:-1:-1;;;;;5401:85:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;5401:85:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4587:3;;;;;4550:947;;;4064:1439;;;;;;;;;;;;;:::o;8810:369::-;8970:11;;-1:-1:-1;;;;;8970:11:14;8870:7;8956:26;;;:13;:26;;;;;;;;8970:11;9023:24;;;;9049:19;;;;;9070:24;;;;9146:25;;;;8992:180;;;;8970:11;8992:180;;;;;;-1:-1:-1;;8992:180:14;;;;;;;;;;;;;;;;;;;;;;;;;;8862:6;;8870:7;;;;;;;;;;;8956:26;;;;9023:24;;9049:19;;9070:24;;;;;9096:23;;;;;;9121;;;;;;9146:25;8956:26;;8992:180;;;8956:26;8992:180;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8810:369;;;;;;;;:::o;9302:105::-;9354:9;9382:18;9375:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9375:25:14;;;;;;;;;;;;;;;;;;;;;;;9302:105;:::o;5630:1031::-;5813:6;6057:13;6246:6;1489:25:8;1503:10;1489:13;:25::i;:::-;1481:64;;;;;;;-1:-1:-1;;;;;1481:64:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;5822:1:14;5813:10;;5808:847;5825:18;;;5808:847;;;5941:13;:25;5955:7;;5963:1;5955:10;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5955:10:14;5941:25;;-1:-1:-1;5941:25:14;;;;;;;;-1:-1:-1;5941:25:14;:35;;;;;5933:70;;;;;;;-1:-1:-1;;;;;5933:70:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;6073:7;;6081:1;6073:10;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6073:10:14;6144:20;;;;:13;:20;;;;;;6073:10;;-1:-1:-1;6144:20:14;;-1:-1:-1;6137:27:14;6144:20;;6137:27;:::i;:::-;-1:-1:-1;6137:27:14;;;;;;;;;;;;;;;;;;-1:-1:-1;;6137:27:14;;;;;;;;;;;-1:-1:-1;6241:272:14;6262:18;:25;:32;;6292:1;6262:32;:29;:32;:::i;:::-;6258:1;:36;6241:272;;;6348:5;-1:-1:-1;;;;;6323:30:14;:18;6342:1;6323:21;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6323:21:14;:30;6319:180;;;6401:18;6420:25;;:32;;6450:1;6420:32;:29;:32;:::i;:::-;6401:52;;;;;;;;;;;;;;;;;;6377:18;:21;;-1:-1:-1;;;;;6401:52:14;;;;6396:1;;6377:21;;;;;;;;;;;;;;:76;;;;;-1:-1:-1;;;;;6377:76:14;;;;;-1:-1:-1;;;;;6377:76:14;;;;;;6475:5;;6319:180;6296:3;;6241:272;;;6526:18;:27;;;;;-1:-1:-1;;6526:27:14;;;:::i;:::-;-1:-1:-1;6613:31:14;;;6626:10;6613:31;;-1:-1:-1;;;;;6613:31:14;;;;;;;;;;;;;;;;;;;5845:3;;;;;5808:847;;;5630:1031;;;;;:::o;3519:306:12:-;1924:20;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;3640:15;;;;;;;3632:57;;;;;;;-1:-1:-1;;;;;3632:57:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;3743:6;:19;;-1:-1:-1;;3743:19:12;;;3778:40;;;3760:1;3778:40;;;;;;;;;;;;;;;;;;;;3519:306::o;1468:91:11:-;1540:12;;-1:-1:-1;;;;;1540:12:11;1468:91;:::o;9741:89:14:-;9812:11;;9741:89;:::o;3908:77:12:-;3972:6;;-1:-1:-1;;;;;3972:6:12;3908:77;:::o;2231:801::-;1924:20;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;2388:15;;;;;;;2380:57;;;;;;;-1:-1:-1;;;;;2380:57:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2518:22:12;;;;2510:70;;;;;-1:-1:-1;;;;;2510:70:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2665:15;:31;;-1:-1:-1;;2665:31:12;;;;;;;;;;;;;;;2775:75;;2814:25;;;-1:-1:-1;;;;;2814:25:12;;;;;;;;;;;;;;;2775:75;2931:6;;2910:38;;;-1:-1:-1;;;;;2931:6:12;;;2910:38;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3008:6:12;:17;;-1:-1:-1;;3008:17:12;-1:-1:-1;;;;;3008:17:12;;;;;;;;;;2231:801::o;6938:514:14:-;2560:21;2584:24;2596:11;;2584;:24::i;:::-;2560:48;;2627:25;2641:10;2627:13;:25::i;:::-;:56;;;-1:-1:-1;2656:10:14;-1:-1:-1;;;;;2656:27:14;;;2627:56;2618:97;;;;;;;-1:-1:-1;;;;;2618:97:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7101:21:14;;;;;;:13;:21;;;;;:31;;;;;7093:66;;;;;;;-1:-1:-1;;;;;7093:66:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7205:21:14;;;;;;:13;:21;;;;;;;;;:26;;;:34;;;7302:32;;;:46;;;7402:43;;7419:10;7402:43;;;;;;;;;;;;;;;;;;;;;;;;;6938:514;;;;:::o;1629:97:8:-;1704:15;;1629:97;:::o;9538:89:14:-;9609:11;;-1:-1:-1;;;;;9609:11:14;9538:89;:::o;1796:158:8:-;1860:4;1895:28;1907:15;;1895:11;:28::i;:::-;-1:-1:-1;;;;;1883:54:8;;1938:8;1883:64;;;;;;;;;;;;;-1:-1:-1;;;;;1883:64:8;-1:-1:-1;;;;;1883:64:8;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1883:64:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1883:64:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1883:64:8;;1796:158;-1:-1:-1;;1796:158:8:o;4914:370:6:-;4971:16;;:::i;:::-;5122:4;5116:11;5162:4;5157:3;5153:14;5147:4;5140:28;5193:4;5188:3;5181:17;5234:3;5227:4;5222:3;5218:14;5211:27;5091:157;5268:9;5272:4;5268:3;:9::i;:::-;5257:20;;:3;4914:370;-1:-1:-1;4914:370:6:o;5778:265::-;5838:6;5863:17;5914:11;5894:4;:9;;;5883:21;;;;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;5883:21:6;;5863:41;;5965:2;5960:3;5956:12;5946:22;;5980:36;5987:6;5995:4;:9;;;6006:4;:9;;;5980:6;:36::i;:::-;-1:-1:-1;6033:3:6;5778:265;-1:-1:-1;;5778:265:6:o;2250:131:1:-;2308:7;;2331:6;;;;2323:15;;;;;;-1:-1:-1;;2356:5:1;;;2250:131::o;4091:107:12:-;4185:6;;-1:-1:-1;;;;;4185:6:12;;;4173:18;;;;4091:107::o;1748:152:11:-;1811:7;1852:4;;:24;;;;;;;;;;;;;;-1:-1:-1;;;;;1852:4:11;;;;:13;;:24;;;;;;;;;;;;;;;1811:7;1852:4;:24;;;5:2:-1;;;;30:1;27;20:12;5:2;1852:24:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1852:24:11;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1852:24:11;1837:56;;;;;;;;;;;;;;-1:-1:-1;;;;;1837:45:11;;;;;;:56;;;;;1852:24;;1837:56;;;;;;;;;:45;:56;;;5:2:-1;;;;30:1;27;20:12;3840:768:6;3890:4;;3928:9;;3924:35;;;3958:1;3951:8;;;;3924:35;3980:34;3973:41;;:46;3969:164;;;4042:2;4035:9;4086:35;4078:4;4073:48;;-1:-1:-1;3969:164:6;4153:18;4146:25;;:30;4142:131;;;4199:1;4192:8;4242:19;4234:4;4229:32;;-1:-1:-1;4142:131:6;4293:10;4286:17;;:22;4282:115;;;4331:1;4324:8;4374:11;4366:4;4361:24;;-1:-1:-1;4282:115:6;4417:6;4410:13;;:18;4406:107;;;4451:1;4444:8;4494:7;4486:4;4481:20;;-1:-1:-1;4406:107:6;4533:4;4526:11;;:16;4522:55;;;4565:1;4558:8;4522:55;4598:3;4593:2;:8;4586:15;;3840:768;;;;;:::o;2686:548::-;3012:9;2806:164;2819:2;2812:9;;2806:164;;2888:10;;2875:24;;2934:2;2926:10;;;;2950:9;;;;-1:-1:-1;;2823:9:6;;;;2806:164;;;-1:-1:-1;3097:10:6;;3152:11;;3032:2;:8;;;;3024:3;:17;-1:-1:-1;;3024:21:6;3109:9;;3093:26;;;3148:22;;3196:21;3183:35;;3064:164::o;1593:8239:14:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1593:8239:14;;;-1:-1:-1;1593:8239:14;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;1593:8239:14;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;"},"internals/tokenWhitelistable.sol:TokenWhitelistable":{"bin":"","bin-runtime":"","srcmap":"","srcmap-runtime":""},"oracle.sol:Oracle":{"bin":"60806040523480156200001157600080fd5b5060405160808062005c9e83398101604081815282516020808501518386015160609687015160018054600160a060020a03808616600160a060020a031992831617928390556000805490921692169190911790556007829055600881905596860185528486527fa0f4f688350018ad1b9785991c0bde5f704b005dc79972b114dbed4a615a98379286019283527f10bfc647ebe5a320daa28771dce6a2d104f5efa2e4a85ba3760b76d46f8571ca958501959095529194919392620000da91600991620009bb565b5060028054600160a060020a031916600160a060020a0386161790556200010f6402540be4006401000000006200014d810204565b620001437ff0000000000000000000000000000000000000000000000000000000000000006401000000006200038f810204565b5050505062000a5d565b600254600160a060020a031615806200018357506002546200018190600160a060020a0316640100000000620005d6810204565b155b15620001a0576200019e6000640100000000620005da810204565b505b600260009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156200020d57600080fd5b505af115801562000222573d6000803e3d6000fd5b505050506040513d60208110156200023957600080fd5b5051600354600160a060020a039081169116146200030c57600260009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015620002be57600080fd5b505af1158015620002d3573d6000803e3d6000fd5b505050506040513d6020811015620002ea57600080fd5b505160038054600160a060020a031916600160a060020a039092169190911790555b600354604080517fca6ad1e4000000000000000000000000000000000000000000000000000000008152600481018490529051600160a060020a039092169163ca6ad1e49160248082019260009290919082900301818387803b1580156200037357600080fd5b505af115801562000388573d6000803e3d6000fd5b5050505050565b600254600160a060020a03161580620003c55750600254620003c390600160a060020a0316640100000000620005d6810204565b155b15620003e257620003e06000640100000000620005da810204565b505b600260009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156200044f57600080fd5b505af115801562000464573d6000803e3d6000fd5b505050506040513d60208110156200047b57600080fd5b5051600354600160a060020a039081169116146200054e57600260009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156200050057600080fd5b505af115801562000515573d6000803e3d6000fd5b505050506040513d60208110156200052c57600080fd5b505160038054600160a060020a031916600160a060020a039092169190911790555b600354604080517f688dcfd70000000000000000000000000000000000000000000000000000000081527fff00000000000000000000000000000000000000000000000000000000000000841660048201529051600160a060020a039092169163688dcfd79160248082019260009290919082900301818387803b1580156200037357600080fd5b3b90565b6000620005ef640100000000620005f5810204565b92915050565b60008062000620731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed640100000000620005d6810204565b11156200069e5760028054600160a060020a031916731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed17905560408051808201909152600b81527f6574685f6d61696e6e657400000000000000000000000000000000000000000060208201526200069590640100000000620009a2810204565b5060016200099f565b6000620006c873c03a2615d5efaf5f49f60b7bb6583eaec212fdf1640100000000620005d6810204565b11156200073d5760028054600160a060020a03191673c03a2615d5efaf5f49f60b7bb6583eaec212fdf117905560408051808201909152600c81527f6574685f726f707374656e33000000000000000000000000000000000000000060208201526200069590640100000000620009a2810204565b60006200076773b7a07bcf2ba2f2703b24c0691b5278999c59ac7e640100000000620005d6810204565b1115620007dc5760028054600160a060020a03191673b7a07bcf2ba2f2703b24c0691b5278999c59ac7e17905560408051808201909152600981527f6574685f6b6f76616e000000000000000000000000000000000000000000000060208201526200069590640100000000620009a2810204565b60006200080673146500cfd35b22e4a392fe0adc06de1a1368ed48640100000000620005d6810204565b11156200087b5760028054600160a060020a03191673146500cfd35b22e4a392fe0adc06de1a1368ed4817905560408051808201909152600b81527f6574685f72696e6b65627900000000000000000000000000000000000000000060208201526200069590640100000000620009a2810204565b6000620008a5736f485c8bf6fc43ea212e93bbf8ce046c7f1cb475640100000000620005d6810204565b1115620008db575060028054600160a060020a031916736f485c8bf6fc43ea212e93bbf8ce046c7f1cb47517905560016200099f565b6000620009057320e12a1f859b3feae5fb2a0a32c18f5a65555bbf640100000000620005d6810204565b11156200093b575060028054600160a060020a0319167320e12a1f859b3feae5fb2a0a32c18f5a65555bbf17905560016200099f565b6000620009657351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa640100000000620005d6810204565b11156200099b575060028054600160a060020a0319167351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa17905560016200099f565b5060005b90565b8051620009b7906004906020840190620009bb565b5050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620009fe57805160ff191683800117855562000a2e565b8280016001018555821562000a2e579182015b8281111562000a2e57825182559160200191906001019062000a11565b5062000a3c92915062000a40565b5090565b6200099f91905b8082111562000a3c576000815560010162000a47565b6152318062000a6d6000396000f3006080604052600436106100955763ffffffff60e060020a60003504166327dc297e811461009a57806338bbfa50146100fa5780633acbe96e146101965780637d73b23114610220578063877337b014610251578063937f54a414610278578063996cba681461028f578063b598f882146102b9578063c2c3d054146102c4578063ca6ad1e4146102e4578063e2b4ce97146102fc575b600080fd5b3480156100a657600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526100f89583359536956044949193909101919081908401838280828437509497506103119650505050505050565b005b34801561010657600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526100f895833595369560449491939091019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437509497506103319650505050505050565b3480156101a257600080fd5b506101ab610569565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101e55781810151838201526020016101cd565b50505050905090810190601f1680156102125780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561022c57600080fd5b506102356105f7565b60408051600160a060020a039092168252519081900360200190f35b34801561025d57600080fd5b50610266610607565b60408051918252519081900360200190f35b6100f860048035906024803590810191013561060d565b34801561029b57600080fd5b506100f8600160a060020a0360043581169060243516604435610696565b6100f86004356106ee565b3480156102d057600080fd5b506100f86004803560248101910135610747565b3480156102f057600080fd5b506100f86004356107ff565b34801561030857600080fd5b50610266610893565b60408051600081526020810190915261032d9083908390610331565b5050565b6000806000806000806000610344610899565b600160a060020a031633146103a3576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f74206f7261636c697a6500000000000000000000604482015290519081900360640190fd5b60008a8152600a6020526040902054600160a060020a03169650861515610414576040805160e560020a62461bcd02815260206004820152601c60248201527f71756572794944206d61746368657320746f2061646472657373203000000000604482015290519081900360640190fd5b61041d87610a8e565b9a505050985050505085151561047d576040805160e560020a62461bcd02815260206004820152601760248201527f746f6b656e206d75737420626520617661696c61626c65000000000000000000604482015290519081900360640190fd5b60098054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152610515938d938d9383018282801561050a5780601f106104df5761010080835404028352916020019161050a565b820191906000526020600020905b8154815290600101906020018083116104ed57829003601f168201915b505050505088610bc0565b9094509250831561055d5761053161052c8a61121d565b61159b565b60008b8152600a602052604090208054600160a060020a0319169055915082905061055d8783836115ae565b50505050505050505050565b6009805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156105ef5780601f106105c4576101008083540402835291602001916105ef565b820191906000526020600020905b8154815290600101906020018083116105d257829003601f168201915b505050505081565b600154600160a060020a03165b90565b60085490565b61061633611640565b151561065a576040805160e560020a62461bcd02815260206004820152601a60248201526000805160206151a6833981519152604482015290519081900360640190fd5b61069183838380806020026020016040519081016040528093929190818152602001838360200280828437506116d9945050505050565b505050565b61069f33611640565b15156106e3576040805160e560020a62461bcd02815260206004820152601a60248201526000805160206151a6833981519152604482015290519081900360640190fd5b610691838383611a70565b6106f733611640565b151561073b576040805160e560020a62461bcd02815260206004820152601a60248201526000805160206151a6833981519152604482015290519081900360640190fd5b61074481611c16565b50565b61075033611640565b1515610794576040805160e560020a62461bcd02815260206004820152601a60248201526000805160206151a6833981519152604482015290519081900360640190fd5b6107a060098383615048565b506040805133808252602082018381529282018490527fc6b0860ba9f580e9c5b6ba4e0954fe82827096a99d92e8c2d73009539ea8d9fa9290918591859190606082018484808284376040519201829003965090945050505050a15050565b61080833611640565b151561084c576040805160e560020a62461bcd02815260206004820152601a60248201526000805160206151a6833981519152604482015290519081900360640190fd5b61085581611f3e565b604080513381526020810183905281517ffbd406825addb09beef160afc17bb80ba28df4a3533dcd23592b82658a1c5ab4929181900390910190a150565b60075490565b600254600090600160a060020a031615806108c657506002546108c490600160a060020a031661212d565b155b156108d7576108d56000612131565b505b600260009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561092a57600080fd5b505af115801561093e573d6000803e3d6000fd5b505050506040513d602081101561095457600080fd5b5051600354600160a060020a03908116911614610a0a57600260009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156109be57600080fd5b505af11580156109d2573d6000803e3d6000fd5b505050506040513d60208110156109e857600080fd5b505160038054600160a060020a031916600160a060020a039092169190911790555b600360009054906101000a9004600160a060020a0316600160a060020a031663c281d19e6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610a5d57600080fd5b505af1158015610a71573d6000803e3d6000fd5b505050506040513d6020811015610a8757600080fd5b5051905090565b6060600080600080600080610aa460085461213b565b600160a060020a0316631f69565f896040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b158015610afe57600080fd5b505af1158015610b12573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260e0811015610b3b57600080fd5b810190808051640100000000811115610b5357600080fd5b82016020810184811115610b6657600080fd5b8151640100000000811182820187101715610b8057600080fd5b5050602082015160408301516060840151608085015160a086015160c090960151949e50929c50909a509850965090945092505050919395979092949650565b6000806060806060600080606060a58b51141515610c28576040805160e560020a62461bcd02815260206004820152601460248201527f696e76616c69642070726f6f66206c656e677468000000000000000000000000604482015290519081900360640190fd5b60418b6001815181101515610c3957fe5b016020015160f860020a9081900481020414610c9f576040805160e560020a62461bcd02815260206004820152601860248201527f696e76616c6964207369676e6174757265206c656e6774680000000000000000604482015290519081900360640190fd5b60408051604180825260808201909252906020820161082080388339019050509550610cd18b60026041896000612232565b8b519096506060908c906044908110610ce657fe5b90602001015160f860020a900460f860020a0260f860020a90046101008d6041600201815181101515610d1557fe5b016020015160f860020a90819004810204020114610d7d576040805160e560020a62461bcd02815260206004820152601660248201527f696e76616c69642068656164657273206c656e67746800000000000000000000604482015290519081900360640190fd5b604080516060808252608082019092529060208201610c0080388339019050509450610daf8b60456060886000612232565b9450610dbc85878c612287565b1515610e12576040805160e560020a62461bcd02815260206004820152601160248201527f696e76616c6964207369676e6174757265000000000000000000000000000000604482015290519081900360640190fd5b604080516014808252818301909252906020820161028080388339019050509350610e4385600b6014876000612232565b9350610e4f848a6123a2565b9093509150821515610eab576040805160e560020a62461bcd02815260206004820152600c60248201527f696e76616c696420646174650000000000000000000000000000000000000000604482015290519081900360640190fd5b60408051602c80825260608201909252906020820161058080388339019050509050610edd856034602c846000612232565b9050610ee8816127e0565b6040518082805190602001908083835b60208310610f175780518252601f199092019160209182019101610ef8565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660028d6040516020018082805190602001908083835b60208310610f7d5780518252601f199092019160209182019101610f5e565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040526040518082805190602001908083835b60208310610fe05780518252601f199092019160209182019101610fc1565b51815160209384036101000a600019018019909216911617905260405191909301945091925050808303816000865af1158015611021573d6000803e3d6000fd5b5050506040513d602081101561103657600080fd5b50516040805160208181019390935281518082038401815290820191829052805190928291908401908083835b602083106110825780518252601f199092019160209182019101611063565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191614151561110a576040805160e560020a62461bcd02815260206004820152601860248201527f726573756c742068617368206e6f74206d61746368696e670000000000000000604482015290519081900360640190fd5b7f0902fdd015aa1e56f7e6026b69c0595e82155dcbd83a83a23b40f9fe96babbd98a8d604051808060200180602001838103835285818151815260200191508051906020019080838360005b8381101561116e578181015183820152602001611156565b50505050905090810190601f16801561119b5780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b838110156111ce5781810151838201526020016111b6565b50505050905090810190601f1680156111fb5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a15060019b909a5098505050505050505050565b60606000606061122b6150c6565b846040516020018082805190602001908083835b6020831061125e5780518252601f19909201916020918201910161123f565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040525192506008831180156112a65750601c8311155b15156112fc576040805160e560020a62461bcd02815260206004820152601260248201527f6d6973666f726d617474656420696e7075740000000000000000000000000000604482015290519081900360640190fd5b604080516007808252818301909252906020820160e080388339019050509150611392856040516020018082805190602001908083835b602083106113525780518252601f199092019160209182019101611333565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405260006007856000612232565b50604080517f7b22455448223a0000000000000000000000000000000000000000000000000081529051908190036007018120835190918491819060208401908083835b602083106113f55780518252601f1990920191602091820191016113d6565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191614151561147d576040805160e560020a62461bcd02815260206004820152600f60248201527f707265666978206d69736d617463680000000000000000000000000000000000604482015290519081900360640190fd5b611486856131f8565b90506114d66114c96040805190810160405280600181526020017f3a000000000000000000000000000000000000000000000000000000000000008152506131f8565b829063ffffffff61322116565b508060000151925061152c61151f6040805190810160405280600181526020017f7d000000000000000000000000000000000000000000000000000000000000008152506131f8565b829063ffffffff61323b16565b508051600019840114611589576040805160e560020a62461bcd02815260206004820152600f60248201527f6e6f74206a736f6e20666f726d61740000000000000000000000000000000000604482015290519081900360640190fd5b611592816132a4565b95945050505050565b60006115a88260126132f7565b92915050565b6115b960085461213b565b600160a060020a031663d545782e8484846040518463ffffffff1660e060020a0281526004018084600160a060020a0316600160a060020a031681526020018381526020018281526020019350505050600060405180830381600087803b15801561162357600080fd5b505af1158015611637573d6000803e3d6000fd5b50505050505050565b600061164d60075461213b565b600160a060020a031663b429afeb836040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b1580156116a757600080fd5b505af11580156116bb573d6000803e3d6000fd5b505050506040513d60208110156116d157600080fd5b505192915050565b6116e16150c6565b6116e96150c6565b6000606060006116f76150c6565b6000875160001415611756576040805160208082526010908201527f656d70747920746f6b656e206c697374000000000000000000000000000000008183015290516000805160206151c68339815191529181900360600190a1611a65565b30600160a060020a031631885161178a60408051908101604052806003815260200160ea60020a6215549302815250613ec2565b0211156117e4576040805160208082526014908201527f696e73756666696369656e742062616c616e63650000000000000000000000008183015290516000805160206151c68339815191529181900360600190a1611a65565b611849606060405190810160405280603281526020017f68747470733a2f2f6d696e2d6170692e63727970746f636f6d706172652e636f81526020017f6d2f646174612f70726963653f6673796d3d00000000000000000000000000008152506131f8565b96506118896040805190810160405280601481526020017f267473796d733d455448267369676e3d747275650000000000000000000000008152506131f8565b9550600094505b8751851015611a65576118b988868151811015156118aa57fe5b90602001906020020151610a8e565b505050955050509350821515611919576040805160e560020a62461bcd02815260206004820152601760248201527f746f6b656e206d75737420626520617661696c61626c65000000000000000000604482015290519081900360640190fd5b611922846131f8565b604080518082019091526003815260ea60020a621554930260208201529092506119749061196e8861196261195d8c8863ffffffff6140f816565b6131f8565b9063ffffffff6140f816565b8b61416f565b9050878581518110151561198457fe5b6020908102919091018101516000838152600a90925260409091208054600160a060020a031916600160a060020a039092169190911790557fd28a52bc81f387be057d69ee89db644f94b7064c4acec0d5bc33e201a2031c056119e6836132a4565b6040805160208082528351818301528351919283929083019185019080838360005b83811015611a20578181015183820152602001611a08565b50505050905090810190601f168015611a4d5780820380516001836020036101000a031916815260200191505b509250505060405180910390a1600190940193611890565b505050505050505050565b600160a060020a0382161515611abc57604051600160a060020a0384169082156108fc029083906000818181858888f19350505050158015611ab6573d6000803e3d6000fd5b50611bc7565b81600160a060020a031663a9059cbb84836040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b158015611b1f57600080fd5b505af1158015611b33573d6000803e3d6000fd5b505050506040513d6020811015611b4957600080fd5b50511515611bc7576040805160e560020a62461bcd02815260206004820152602560248201527f455243323020746f6b656e207472616e736665722077617320756e737563636560448201527f737366756c000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60408051600160a060020a0380861682528416602082015280820183905290517ff7a40077ff7a04c7e61f6f26fb13774259ddf1b6bce9ecf26a8276cdd39926839181900360600190a1505050565b6060611c206150c6565b611c286150c6565b60006060611c346150c6565b6000611c3e614572565b9650865160001415611c9d576040805160208082526009908201527f6e6f20746f6b656e7300000000000000000000000000000000000000000000008183015290516000805160206151c68339815191529181900360600190a1611f34565b30600160a060020a0316318751611cd160408051908101604052806003815260200160ea60020a6215549302815250613ec2565b021115611d2b576040805160208082526014908201527f696e73756666696369656e742062616c616e63650000000000000000000000008183015290516000805160206151c68339815191529181900360600190a1611f34565b611d90606060405190810160405280603281526020017f68747470733a2f2f6d696e2d6170692e63727970746f636f6d706172652e636f81526020017f6d2f646174612f70726963653f6673796d3d00000000000000000000000000008152506131f8565b9550611dd06040805190810160405280601481526020017f267473796d733d455448267369676e3d747275650000000000000000000000008152506131f8565b9450600093505b8651841015611f3457611df187858151811015156118aa57fe5b5050505050509250611e02836131f8565b604080518082019091526003815260ea60020a62155493026020820152909250611e4390611e3d8761196261195d8b8863ffffffff6140f816565b8a61416f565b90508684815181101515611e5357fe5b6020908102919091018101516000838152600a90925260409091208054600160a060020a031916600160a060020a039092169190911790557fd28a52bc81f387be057d69ee89db644f94b7064c4acec0d5bc33e201a2031c05611eb5836132a4565b6040805160208082528351818301528351919283929083019185019080838360005b83811015611eef578181015183820152602001611ed7565b50505050905090810190601f168015611f1c5780820380516001836020036101000a031916815260200191505b509250505060405180910390a1600190930192611dd7565b5050505050505050565b600254600160a060020a03161580611f685750600254611f6690600160a060020a031661212d565b155b15611f7957611f776000612131565b505b600260009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611fcc57600080fd5b505af1158015611fe0573d6000803e3d6000fd5b505050506040513d6020811015611ff657600080fd5b5051600354600160a060020a039081169116146120ac57600260009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561206057600080fd5b505af1158015612074573d6000803e3d6000fd5b505050506040513d602081101561208a57600080fd5b505160038054600160a060020a031916600160a060020a039092169190911790555b600354604080517fca6ad1e4000000000000000000000000000000000000000000000000000000008152600481018490529051600160a060020a039092169163ca6ad1e49160248082019260009290919082900301818387803b15801561211257600080fd5b505af1158015612126573d6000803e3d6000fd5b5050505050565b3b90565b60006115a861464c565b60008054604080517f0178b8bf000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691630178b8bf9160248082019260209290919082900301818787803b1580156121a257600080fd5b505af11580156121b6573d6000803e3d6000fd5b505050506040513d60208110156121cc57600080fd5b5051604080517f3b3b57de000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691633b3b57de916024808201926020929091908290030181600087803b1580156116a757600080fd5b6060600080600084870192508286511015151561224e57600080fd5b505060208087019084015b86886020010182101561227a57888201518682015260209182019101612259565b5093979650505050505050565b600080600061231f6002876040518082805190602001908083835b602083106122c15780518252601f1990920191602091820191016122a2565b51815160209384036101000a600019018019909216911617905260405191909301945091925050808303816000865af1158015612302573d6000803e3d6000fd5b5050506040513d602081101561231757600080fd5b505186614974565b925090508080156123985750836040518082805190602001908083835b6020831061235b5780518252601f19909201916020918201910161233c565b5181516020939093036101000a60001901801990911692169190911790526040519201829003909120600160a060020a0390811690861614925050505b9695505050505050565b6000806123ad6150c6565b6123b56150c6565b6123bd6150c6565b60008060008060008060008d6040516020018082805190602001908083835b602083106123fb5780518252601f1990920191602091820191016123dc565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405251601414151561243b57fe5b6124448e6131f8565b99506124846040805190810160405280600181526020017f3a000000000000000000000000000000000000000000000000000000000000008152506131f8565b98506124c46040805190810160405280600181526020017f20000000000000000000000000000000000000000000000000000000000000008152506131f8565b97506124e66124e16124dc8c8b63ffffffff61322116565b6132a4565b6149fc565b96506000871180156124f85750602087105b151561254e576040805160e560020a62461bcd02815260206004820152600960248201527f646179206572726f720000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6125696125646124dc8c8b63ffffffff61322116565b614a09565b60ff16955060008611801561257e5750600d86105b15156125d4576040805160e560020a62461bcd02815260206004820152600b60248201527f6d6f6e7468206572726f72000000000000000000000000000000000000000000604482015290519081900360640190fd5b6125ea6124e16124dc8c8b63ffffffff61322116565b94506107e1851180156125fe5750610bb885105b1515612654576040805160e560020a62461bcd02815260206004820152600a60248201527f79656172206572726f7200000000000000000000000000000000000000000000604482015290519081900360640190fd5b61266a6124e16124dc8c8c63ffffffff61322116565b9350601984106126c4576040805160e560020a62461bcd02815260206004820152600a60248201527f686f7572206572726f7200000000000000000000000000000000000000000000604482015290519081900360640190fd5b6126da6124e16124dc8c8c63ffffffff61322116565b9250603c8310612734576040805160e560020a62461bcd02815260206004820152600c60248201527f6d696e757465206572726f720000000000000000000000000000000000000000604482015290519081900360640190fd5b61274a6124e16124dc8c8c63ffffffff61322116565b9150603c82106127a4576040805160e560020a62461bcd02815260206004820152600c60248201527f7365636f6e64206572726f720000000000000000000000000000000000000000604482015290519081900360640190fd5b506402540be40084026305f5e100860201620f4240870201612710840201606483020181018c81119b5099505050505050505050509250929050565b60606000806000806000606060008060008a519450846040519080825280601f01601f191660200182016040528015612823578160200160208202803883390190505b509350600085118015612837575060048506155b151561288d576040805160e560020a62461bcd02815260206004820152601760248201527f696e76616c69642062617365363420656e636f64696e67000000000000000000604482015290519081900360640190fd5b604080517f3d00000000000000000000000000000000000000000000000000000000000000815290519081900360010190208b518c9060011988019081106128d157fe5b90602001015160f860020a900460f860020a026040516020018082600160f860020a031916600160f860020a03191681526001019150506040516020818303038152906040526040518082805190602001908083835b602083106129465780518252601f199092019160209182019101612927565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902060001916141561298857600285039450612a7f565b604080517f3d00000000000000000000000000000000000000000000000000000000000000815290519081900360010190208b518c9060001988019081106129cc57fe5b90602001015160f860020a900460f860020a026040516020018082600160f860020a031916600160f860020a03191681526001019150506040516020818303038152906040526040518082805190602001908083835b60208310612a415780518252601f199092019160209182019101612a22565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020600019161415612a7f576001850394505b505060048084040260005b81811015612de1576040805160a081018252607b815260006020820152600080516020615186833981519152918101919091526000805160206151e6833981519152606082015260008051602061516683398151915260808201528b5160018301928d918110612af657fe5b90602001015160f860020a900460f860020a0260f860020a9004815181101515612b1c57fe5b90602001015160f860020a900460f860020a02985060a060405190810160405280607b81526020016000815260200160008051602061518683398151915281526020016000805160206151e683398151915281526020016000805160206151668339815191528152508b82806001019350815181101515612b9957fe5b90602001015160f860020a900460f860020a0260f860020a9004815181101515612bbf57fe5b90602001015160f860020a900460f860020a02975060a060405190810160405280607b81526020016000815260200160008051602061518683398151915281526020016000805160206151e683398151915281526020016000805160206151668339815191528152508b82806001019350815181101515612c3c57fe5b90602001015160f860020a900460f860020a0260f860020a9004815181101515612c6257fe5b90602001015160f860020a900460f860020a02965060a060405190810160405280607b81526020016000815260200160008051602061518683398151915281526020016000805160206151e683398151915281526020016000805160206151668339815191528152508b82806001019350815181101515612cdf57fe5b90602001015160f860020a900460f860020a0260f860020a9004815181101515612d0557fe5b0160200151845160f860020a9182900490910296506001840193600160f860020a03198b81166004026010828d16041716918691908110612d4257fe5b906020010190600160f860020a031916908160001a905350835160018401936010600160f860020a03198b8116919091026004828c16041716918691908110612d8757fe5b906020010190600160f860020a031916908160001a90535083516001840193600160f860020a0319898116604002891716918691908110612dc457fe5b906020010190600160f860020a031916908160001a905350612a8a565b81850360021415612f73576040805160a081018252607b815260006020820152600080516020615186833981519152918101919091526000805160206151e6833981519152606082015260008051602061516683398151915260808201528b5160018301928d918110612e5057fe5b90602001015160f860020a900460f860020a0260f860020a9004815181101515612e7657fe5b90602001015160f860020a900460f860020a02985060a060405190810160405280607b81526020016000815260200160008051602061518683398151915281526020016000805160206151e683398151915281526020016000805160206151668339815191528152508b82806001019350815181101515612ef357fe5b90602001015160f860020a900460f860020a0260f860020a9004815181101515612f1957fe5b0160200151845160f860020a9182900490910298506001840193600160f860020a03198b81166004026010828d16041716918691908110612f5657fe5b906020010190600160f860020a031916908160001a9053506131e9565b818503600314156131e9576040805160a081018252607b815260006020820152600080516020615186833981519152918101919091526000805160206151e6833981519152606082015260008051602061516683398151915260808201528b5160018301928d918110612fe257fe5b90602001015160f860020a900460f860020a0260f860020a900481518110151561300857fe5b90602001015160f860020a900460f860020a02985060a060405190810160405280607b81526020016000815260200160008051602061518683398151915281526020016000805160206151e683398151915281526020016000805160206151668339815191528152508b8280600101935081518110151561308557fe5b90602001015160f860020a900460f860020a0260f860020a90048151811015156130ab57fe5b90602001015160f860020a900460f860020a02975060a060405190810160405280607b81526020016000815260200160008051602061518683398151915281526020016000805160206151e683398151915281526020016000805160206151668339815191528152508b8280600101935081518110151561312857fe5b90602001015160f860020a900460f860020a0260f860020a900481518110151561314e57fe5b0160200151845160f860020a9182900490910297506001840193600160f860020a03198b81166004026010828d1604171691869190811061318b57fe5b906020010190600160f860020a031916908160001a905350835160018401936010600160f860020a03198b8116919091026004828c160417169186919081106131d057fe5b906020010190600160f860020a031916908160001a9053505b50508152979650505050505050565b6132006150c6565b50604080518082019091528151815260208281019082018190525b50919050565b6132296150c6565b613234838383614e3c565b5092915050565b6132436150c6565b815183516000918291101561325a5784925061329c565b5050815183516020808601519085015191019190910390600190821461328a575082516020840151819020908220145b801561329857835185510385525b8492505b505092915050565b606080600083600001516040519080825280601f01601f1916602001820160405280156132db578160200160208202803883390190505b5091506020820190506132348185602001518660000151614ead565b60008281808080808080808080805b8b51811015613b73578b517f3000000000000000000000000000000000000000000000000000000000000000908d908390811061333f57fe5b90602001015160f860020a900460f860020a02600160f860020a031916101580156133b557508b517f3900000000000000000000000000000000000000000000000000000000000000908d908390811061339557fe5b90602001015160f860020a900460f860020a02600160f860020a03191611155b80156133bf575083155b1561348957841561342a576133db8a600a63ffffffff614ef116565b8c51909a5061341d906030908e90849081106133f357fe5b90602001015160f860020a900460f860020a0260f860020a9004038b614f2690919063ffffffff16565b9950600190970196613484565b6001955061343f8b600a63ffffffff614ef116565b8c51909b50613481906030908e908490811061345757fe5b90602001015160f860020a900460f860020a0260f860020a9004038c614f2690919063ffffffff16565b9a505b613b6b565b8b517f3000000000000000000000000000000000000000000000000000000000000000908d90839081106134b957fe5b90602001015160f860020a900460f860020a02600160f860020a0319161015801561352f57508b517f3900000000000000000000000000000000000000000000000000000000000000908d908390811061350f57fe5b90602001015160f860020a900460f860020a02600160f860020a03191611155b80156135385750835b156135975761354e89600a63ffffffff614ef116565b8c51909950613590906030908e908490811061356657fe5b90602001015160f860020a900460f860020a0260f860020a9004038a614f2690919063ffffffff16565b9850613b6b565b8b517f2e00000000000000000000000000000000000000000000000000000000000000908d90839081106135c757fe5b90602001015160f860020a900460f860020a02600160f860020a03191614156136f657851515613641576040805160e560020a62461bcd02815260206004820152601560248201527f6d697373696e6720696e74656772616c20706172740000000000000000000000604482015290519081900360640190fd5b8415613697576040805160e560020a62461bcd02815260206004820152601760248201527f6475706c696361746520646563696d616c20706f696e74000000000000000000604482015290519081900360640190fd5b83156136ed576040805160e560020a62461bcd02815260206004820152601660248201527f646563696d616c206166746572206578706f6e656e7400000000000000000000604482015290519081900360640190fd5b60019450613b6b565b8b517f2d00000000000000000000000000000000000000000000000000000000000000908d908390811061372657fe5b90602001015160f860020a900460f860020a02600160f860020a031916141561385857821561379f576040805160e560020a62461bcd02815260206004820152600b60248201527f6475706c6963617465202d000000000000000000000000000000000000000000604482015290519081900360640190fd5b81156137f5576040805160e560020a62461bcd02815260206004820152600a60248201527f6578747261207369676e00000000000000000000000000000000000000000000604482015290519081900360640190fd5b60018701811461384f576040805160e560020a62461bcd02815260206004820152601e60248201527f2d207369676e206e6f7420696d6d6564696174656c7920616674657220650000604482015290519081900360640190fd5b60019250613b6b565b8b517f2b00000000000000000000000000000000000000000000000000000000000000908d908390811061388857fe5b90602001015160f860020a900460f860020a02600160f860020a03191614156139ba578115613901576040805160e560020a62461bcd02815260206004820152600b60248201527f6475706c6963617465202b000000000000000000000000000000000000000000604482015290519081900360640190fd5b8215613957576040805160e560020a62461bcd02815260206004820152600a60248201527f6578747261207369676e00000000000000000000000000000000000000000000604482015290519081900360640190fd5b6001870181146139b1576040805160e560020a62461bcd02815260206004820152601e60248201527f2b207369676e206e6f7420696d6d6564696174656c7920616674657220650000604482015290519081900360640190fd5b60019150613b6b565b8b517f4500000000000000000000000000000000000000000000000000000000000000908d90839081106139ea57fe5b90602001015160f860020a900460f860020a02600160f860020a0319161480613a5d57508b517f6500000000000000000000000000000000000000000000000000000000000000908d9083908110613a3e57fe5b90602001015160f860020a900460f860020a02600160f860020a031916145b15613b1b57851515613ab9576040805160e560020a62461bcd02815260206004820152601560248201527f6d697373696e6720696e74656772616c20706172740000000000000000000000604482015290519081900360640190fd5b8315613b0f576040805160e560020a62461bcd02815260206004820152601960248201527f6475706c6963617465206578706f6e656e742073796d626f6c00000000000000604482015290519081900360640190fd5b60019350809650613b6b565b6040805160e560020a62461bcd02815260206004820152600d60248201527f696e76616c696420646967697400000000000000000000000000000000000000604482015290519081900360640190fd5b600101613306565b8280613b7c5750815b15613b9557600287018111613b9057600080fd5b613baa565b8315613baa57600187018111613baa57600080fd5b8215613c36578d8910613c2c57604e8e8a0310613c11576040805160e560020a62461bcd02815260206004820152600d60248201527f6578706f6e656e74203e20373700000000000000000000000000000000000000604482015290519081900360640190fd5b8d8903600a0a8b811515613c2157fe5b049a508a9c50613eb0565b888e039d50613c49565b613c468e8a63ffffffff614f2616565b9d505b878e10613d6f57604e8810613cce576040805160e560020a62461bcd02815260206004820152602260248201527f6d6f7265207468616e20373720646563696d616c20646967697473207061727360448201527f6564000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b613ce28b600a8a900a63ffffffff614ef116565b9a50613cf48b8b63ffffffff614f2616565b9a50604e888f0310613d50576040805160e560020a62461bcd02815260206004820152600d60248201527f6578706f6e656e74203e20373700000000000000000000000000000000000000604482015290519081900360640190fd5b613d68888f03600a0a8c614ef190919063ffffffff16565b9a50613eac565b968d900396604e8810613df2576040805160e560020a62461bcd02815260206004820152602260248201527f6d6f7265207468616e20373720646563696d616c20646967697473207061727360448201527f6564000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b87600a0a8a811515613e0057fe5b049950604e8e10613e81576040805160e560020a62461bcd02815260206004820152602260248201527f6d6f7265207468616e20373720646563696d616c20646967697473207061727360448201527f6564000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b613e978e600a0a8c614ef190919063ffffffff16565b9a50613ea98b8b63ffffffff614f2616565b9a505b8a9c505b50505050505050505050505092915050565b600254600090600160a060020a03161580613eef5750600254613eed90600160a060020a031661212d565b155b15613f0057613efe6000612131565b505b600260009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015613f5357600080fd5b505af1158015613f67573d6000803e3d6000fd5b505050506040513d6020811015613f7d57600080fd5b5051600354600160a060020a0390811691161461403357600260009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015613fe757600080fd5b505af1158015613ffb573d6000803e3d6000fd5b505050506040513d602081101561401157600080fd5b505160038054600160a060020a031916600160a060020a039092169190911790555b6003546040517f524f3889000000000000000000000000000000000000000000000000000000008152602060048201818152855160248401528551600160a060020a039094169363524f388993879383926044909201919085019080838360005b838110156140ac578181015183820152602001614094565b50505050905090810190601f1680156140d95780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1580156116a757600080fd5b606080600083600001518560000151016040519080825280601f01601f191660200182016040528015614135578160200160208202803883390190505b5091506020820190506141518186602001518760000151614ead565b8451602085015185516141679284019190614ead565b509392505050565b6002546000908190600160a060020a0316158061419e575060025461419c90600160a060020a031661212d565b155b156141af576141ad6000612131565b505b600260009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561420257600080fd5b505af1158015614216573d6000803e3d6000fd5b505050506040513d602081101561422c57600080fd5b5051600354600160a060020a039081169116146142e257600260009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561429657600080fd5b505af11580156142aa573d6000803e3d6000fd5b505050506040513d60208110156142c057600080fd5b505160038054600160a060020a031916600160a060020a039092169190911790555b600354604080517f2ef3accc0000000000000000000000000000000000000000000000000000000081526024810186905260048101918252875160448201528751600160a060020a0390931692632ef3accc9289928892829160640190602086019080838360005b8381101561436257818101518382015260200161434a565b50505050905090810190601f16801561438f5780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b1580156143af57600080fd5b505af11580156143c3573d6000803e3d6000fd5b505050506040513d60208110156143d957600080fd5b50519050670de0b6b3a76400003a8402018111156143fa5760009150614167565b6003546040517fc51be90f00000000000000000000000000000000000000000000000000000000815260006004820181815260648301879052608060248401908152895160848501528951600160a060020a039095169463c51be90f948794938c938c938c93604481019160a49091019060208801908083838c5b8381101561448d578181015183820152602001614475565b50505050905090810190601f1680156144ba5780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b838110156144ed5781810151838201526020016144d5565b50505050905090810190601f16801561451a5780820380516001836020036101000a031916815260200191505b5096505050505050506020604051808303818588803b15801561453c57600080fd5b505af1158015614550573d6000803e3d6000fd5b50505050506040513d602081101561456757600080fd5b505195945050505050565b606061457f60085461213b565b600160a060020a031663443dd2a46040518163ffffffff1660e060020a028152600401600060405180830381600087803b1580156145bc57600080fd5b505af11580156145d0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156145f957600080fd5b81019080805164010000000081111561461157600080fd5b8201602081018481111561462457600080fd5b815185602082028301116401000000008211171561464157600080fd5b509094505050505090565b60008061466c731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed61212d565b11156146dd5760028054600160a060020a031916731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed17905560408051808201909152600b81527f6574685f6d61696e6e657400000000000000000000000000000000000000000060208201526146d590614f38565b506001610604565b60006146fc73c03a2615d5efaf5f49f60b7bb6583eaec212fdf161212d565b11156147655760028054600160a060020a03191673c03a2615d5efaf5f49f60b7bb6583eaec212fdf117905560408051808201909152600c81527f6574685f726f707374656e33000000000000000000000000000000000000000060208201526146d590614f38565b600061478473b7a07bcf2ba2f2703b24c0691b5278999c59ac7e61212d565b11156147ed5760028054600160a060020a03191673b7a07bcf2ba2f2703b24c0691b5278999c59ac7e17905560408051808201909152600981527f6574685f6b6f76616e000000000000000000000000000000000000000000000060208201526146d590614f38565b600061480c73146500cfd35b22e4a392fe0adc06de1a1368ed4861212d565b11156148755760028054600160a060020a03191673146500cfd35b22e4a392fe0adc06de1a1368ed4817905560408051808201909152600b81527f6574685f72696e6b65627900000000000000000000000000000000000000000060208201526146d590614f38565b6000614894736f485c8bf6fc43ea212e93bbf8ce046c7f1cb47561212d565b11156148c8575060028054600160a060020a031916736f485c8bf6fc43ea212e93bbf8ce046c7f1cb4751790556001610604565b60006148e77320e12a1f859b3feae5fb2a0a32c18f5a65555bbf61212d565b111561491b575060028054600160a060020a0319167320e12a1f859b3feae5fb2a0a32c18f5a65555bbf1790556001610604565b600061493a7351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa61212d565b111561496e575060028054600160a060020a0319167351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa1790556001610604565b50600090565b60008060008060008551604114151561499357600094508493506149f2565b50505060208301516040840151606085015160001a601b60ff821610156149b857601b015b8060ff16601b141580156149d057508060ff16601c14155b156149e157600094508493506149f2565b6149ed87828585614f4b565b945094505b5050509250929050565b60006115a88260006132f7565b600080826040516020018082805190602001908083835b60208310614a3f5780518252601f199092019160209182019101614a20565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040526040518082805190602001908083835b60208310614aa25780518252601f199092019160209182019101614a83565b5181516000196020949094036101000a93909301928316921916919091179052604080519390910183900383207f4a616e00000000000000000000000000000000000000000000000000000000008452905192839003600301909220919450508314159150614b169050576001915061321b565b604080517f466562000000000000000000000000000000000000000000000000000000000081529051908190036003019020811415614b58576002915061321b565b604080517f4d6172000000000000000000000000000000000000000000000000000000000081529051908190036003019020811415614b9a576003915061321b565b604080517f417072000000000000000000000000000000000000000000000000000000000081529051908190036003019020811415614bdc576004915061321b565b604080517f4d6179000000000000000000000000000000000000000000000000000000000081529051908190036003019020811415614c1e576005915061321b565b604080517f4a756e000000000000000000000000000000000000000000000000000000000081529051908190036003019020811415614c60576006915061321b565b604080517f4a756c000000000000000000000000000000000000000000000000000000000081529051908190036003019020811415614ca2576007915061321b565b604080517f417567000000000000000000000000000000000000000000000000000000000081529051908190036003019020811415614ce4576008915061321b565b604080517f536570000000000000000000000000000000000000000000000000000000000081529051908190036003019020811415614d26576009915061321b565b604080517f4f6374000000000000000000000000000000000000000000000000000000000081529051908190036003019020811415614d6857600a915061321b565b604080517f4e6f76000000000000000000000000000000000000000000000000000000000081529051908190036003019020811415614daa57600b915061321b565b604080517f446563000000000000000000000000000000000000000000000000000000000081529051908190036003019020811415614dec57600c915061321b565b6040805160e560020a62461bcd02815260206004820152601160248201527f6e6f7420612076616c6964206d6f6e7468000000000000000000000000000000604482015290519081900360640190fd5b614e446150c6565b6000614e628560000151866020015186600001518760200151614f88565b60208087018051918601919091528051820385528651905191925001811415614e8e5760008552614ea4565b8351835186519101900385528351810160208601525b50909392505050565b60005b60208210614ed2578251845260209384019390920191601f1990910190614eb0565b50905182516020929092036101000a6000190180199091169116179052565b600080831515614f045760009150613234565b50828202828482811515614f1457fe5b0414614f1f57600080fd5b9392505050565b600082820183811015614f1f57600080fd5b805161032d9060049060208401906150dd565b60008060008060405188815287602082015286604082015285606082015260208160808360006001610bb8f1905190999098509650505050505050565b600083818080808080808c8b116150325760208b11614ffb5760018b60200360080260020a03196001029550858a511694508a8d8d010393508588511692505b828514614ff357838810614fe0578c8c019850615038565b8780600101985050858851169250614fc8565b879850615038565b8a8a209150600096505b8a8d03871161503257508987208181141561502257879850615038565b6001978801979690960195615005565b8c8c0198505b5050505050505050949350505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106150895782800160ff198235161785556150b6565b828001600101855582156150b6579182015b828111156150b657823582559160200191906001019061509b565b506150c292915061514b565b5090565b604080518082019091526000808252602082015290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061511e57805160ff19168380011785556150b6565b828001600101855582156150b6579182015b828111156150b6578251825591602001919060010190615130565b61060491905b808211156150c257600081556001016151515600001a1b1c1d1e1f202122232425262728292a2b2c2d2e2f30313233000000000000000000000000000000003e003e003f3435363738393a3b3c3d00000000000073656e646572206973206e6f74206120636f6e74726f6c6c65720000000000004eb5629fd8501532aeb93b1b6a5b5b2ae398561e56514ed4b4b0c5ac2d381b6e00000102030405060708090a0b0c0d0e0f10111213141516171819000000003fa165627a7a72305820638888b51223150c5b2df2425104396afc8cd4366fdc38cd8f5073de023ba8f60029","bin-runtime":"6080604052600436106100955763ffffffff60e060020a60003504166327dc297e811461009a57806338bbfa50146100fa5780633acbe96e146101965780637d73b23114610220578063877337b014610251578063937f54a414610278578063996cba681461028f578063b598f882146102b9578063c2c3d054146102c4578063ca6ad1e4146102e4578063e2b4ce97146102fc575b600080fd5b3480156100a657600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526100f89583359536956044949193909101919081908401838280828437509497506103119650505050505050565b005b34801561010657600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526100f895833595369560449491939091019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437509497506103319650505050505050565b3480156101a257600080fd5b506101ab610569565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101e55781810151838201526020016101cd565b50505050905090810190601f1680156102125780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561022c57600080fd5b506102356105f7565b60408051600160a060020a039092168252519081900360200190f35b34801561025d57600080fd5b50610266610607565b60408051918252519081900360200190f35b6100f860048035906024803590810191013561060d565b34801561029b57600080fd5b506100f8600160a060020a0360043581169060243516604435610696565b6100f86004356106ee565b3480156102d057600080fd5b506100f86004803560248101910135610747565b3480156102f057600080fd5b506100f86004356107ff565b34801561030857600080fd5b50610266610893565b60408051600081526020810190915261032d9083908390610331565b5050565b6000806000806000806000610344610899565b600160a060020a031633146103a3576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f74206f7261636c697a6500000000000000000000604482015290519081900360640190fd5b60008a8152600a6020526040902054600160a060020a03169650861515610414576040805160e560020a62461bcd02815260206004820152601c60248201527f71756572794944206d61746368657320746f2061646472657373203000000000604482015290519081900360640190fd5b61041d87610a8e565b9a505050985050505085151561047d576040805160e560020a62461bcd02815260206004820152601760248201527f746f6b656e206d75737420626520617661696c61626c65000000000000000000604482015290519081900360640190fd5b60098054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152610515938d938d9383018282801561050a5780601f106104df5761010080835404028352916020019161050a565b820191906000526020600020905b8154815290600101906020018083116104ed57829003601f168201915b505050505088610bc0565b9094509250831561055d5761053161052c8a61121d565b61159b565b60008b8152600a602052604090208054600160a060020a0319169055915082905061055d8783836115ae565b50505050505050505050565b6009805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156105ef5780601f106105c4576101008083540402835291602001916105ef565b820191906000526020600020905b8154815290600101906020018083116105d257829003601f168201915b505050505081565b600154600160a060020a03165b90565b60085490565b61061633611640565b151561065a576040805160e560020a62461bcd02815260206004820152601a60248201526000805160206151a6833981519152604482015290519081900360640190fd5b61069183838380806020026020016040519081016040528093929190818152602001838360200280828437506116d9945050505050565b505050565b61069f33611640565b15156106e3576040805160e560020a62461bcd02815260206004820152601a60248201526000805160206151a6833981519152604482015290519081900360640190fd5b610691838383611a70565b6106f733611640565b151561073b576040805160e560020a62461bcd02815260206004820152601a60248201526000805160206151a6833981519152604482015290519081900360640190fd5b61074481611c16565b50565b61075033611640565b1515610794576040805160e560020a62461bcd02815260206004820152601a60248201526000805160206151a6833981519152604482015290519081900360640190fd5b6107a060098383615048565b506040805133808252602082018381529282018490527fc6b0860ba9f580e9c5b6ba4e0954fe82827096a99d92e8c2d73009539ea8d9fa9290918591859190606082018484808284376040519201829003965090945050505050a15050565b61080833611640565b151561084c576040805160e560020a62461bcd02815260206004820152601a60248201526000805160206151a6833981519152604482015290519081900360640190fd5b61085581611f3e565b604080513381526020810183905281517ffbd406825addb09beef160afc17bb80ba28df4a3533dcd23592b82658a1c5ab4929181900390910190a150565b60075490565b600254600090600160a060020a031615806108c657506002546108c490600160a060020a031661212d565b155b156108d7576108d56000612131565b505b600260009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561092a57600080fd5b505af115801561093e573d6000803e3d6000fd5b505050506040513d602081101561095457600080fd5b5051600354600160a060020a03908116911614610a0a57600260009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156109be57600080fd5b505af11580156109d2573d6000803e3d6000fd5b505050506040513d60208110156109e857600080fd5b505160038054600160a060020a031916600160a060020a039092169190911790555b600360009054906101000a9004600160a060020a0316600160a060020a031663c281d19e6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610a5d57600080fd5b505af1158015610a71573d6000803e3d6000fd5b505050506040513d6020811015610a8757600080fd5b5051905090565b6060600080600080600080610aa460085461213b565b600160a060020a0316631f69565f896040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b158015610afe57600080fd5b505af1158015610b12573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260e0811015610b3b57600080fd5b810190808051640100000000811115610b5357600080fd5b82016020810184811115610b6657600080fd5b8151640100000000811182820187101715610b8057600080fd5b5050602082015160408301516060840151608085015160a086015160c090960151949e50929c50909a509850965090945092505050919395979092949650565b6000806060806060600080606060a58b51141515610c28576040805160e560020a62461bcd02815260206004820152601460248201527f696e76616c69642070726f6f66206c656e677468000000000000000000000000604482015290519081900360640190fd5b60418b6001815181101515610c3957fe5b016020015160f860020a9081900481020414610c9f576040805160e560020a62461bcd02815260206004820152601860248201527f696e76616c6964207369676e6174757265206c656e6774680000000000000000604482015290519081900360640190fd5b60408051604180825260808201909252906020820161082080388339019050509550610cd18b60026041896000612232565b8b519096506060908c906044908110610ce657fe5b90602001015160f860020a900460f860020a0260f860020a90046101008d6041600201815181101515610d1557fe5b016020015160f860020a90819004810204020114610d7d576040805160e560020a62461bcd02815260206004820152601660248201527f696e76616c69642068656164657273206c656e67746800000000000000000000604482015290519081900360640190fd5b604080516060808252608082019092529060208201610c0080388339019050509450610daf8b60456060886000612232565b9450610dbc85878c612287565b1515610e12576040805160e560020a62461bcd02815260206004820152601160248201527f696e76616c6964207369676e6174757265000000000000000000000000000000604482015290519081900360640190fd5b604080516014808252818301909252906020820161028080388339019050509350610e4385600b6014876000612232565b9350610e4f848a6123a2565b9093509150821515610eab576040805160e560020a62461bcd02815260206004820152600c60248201527f696e76616c696420646174650000000000000000000000000000000000000000604482015290519081900360640190fd5b60408051602c80825260608201909252906020820161058080388339019050509050610edd856034602c846000612232565b9050610ee8816127e0565b6040518082805190602001908083835b60208310610f175780518252601f199092019160209182019101610ef8565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660028d6040516020018082805190602001908083835b60208310610f7d5780518252601f199092019160209182019101610f5e565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040526040518082805190602001908083835b60208310610fe05780518252601f199092019160209182019101610fc1565b51815160209384036101000a600019018019909216911617905260405191909301945091925050808303816000865af1158015611021573d6000803e3d6000fd5b5050506040513d602081101561103657600080fd5b50516040805160208181019390935281518082038401815290820191829052805190928291908401908083835b602083106110825780518252601f199092019160209182019101611063565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191614151561110a576040805160e560020a62461bcd02815260206004820152601860248201527f726573756c742068617368206e6f74206d61746368696e670000000000000000604482015290519081900360640190fd5b7f0902fdd015aa1e56f7e6026b69c0595e82155dcbd83a83a23b40f9fe96babbd98a8d604051808060200180602001838103835285818151815260200191508051906020019080838360005b8381101561116e578181015183820152602001611156565b50505050905090810190601f16801561119b5780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b838110156111ce5781810151838201526020016111b6565b50505050905090810190601f1680156111fb5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a15060019b909a5098505050505050505050565b60606000606061122b6150c6565b846040516020018082805190602001908083835b6020831061125e5780518252601f19909201916020918201910161123f565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040525192506008831180156112a65750601c8311155b15156112fc576040805160e560020a62461bcd02815260206004820152601260248201527f6d6973666f726d617474656420696e7075740000000000000000000000000000604482015290519081900360640190fd5b604080516007808252818301909252906020820160e080388339019050509150611392856040516020018082805190602001908083835b602083106113525780518252601f199092019160209182019101611333565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405260006007856000612232565b50604080517f7b22455448223a0000000000000000000000000000000000000000000000000081529051908190036007018120835190918491819060208401908083835b602083106113f55780518252601f1990920191602091820191016113d6565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191614151561147d576040805160e560020a62461bcd02815260206004820152600f60248201527f707265666978206d69736d617463680000000000000000000000000000000000604482015290519081900360640190fd5b611486856131f8565b90506114d66114c96040805190810160405280600181526020017f3a000000000000000000000000000000000000000000000000000000000000008152506131f8565b829063ffffffff61322116565b508060000151925061152c61151f6040805190810160405280600181526020017f7d000000000000000000000000000000000000000000000000000000000000008152506131f8565b829063ffffffff61323b16565b508051600019840114611589576040805160e560020a62461bcd02815260206004820152600f60248201527f6e6f74206a736f6e20666f726d61740000000000000000000000000000000000604482015290519081900360640190fd5b611592816132a4565b95945050505050565b60006115a88260126132f7565b92915050565b6115b960085461213b565b600160a060020a031663d545782e8484846040518463ffffffff1660e060020a0281526004018084600160a060020a0316600160a060020a031681526020018381526020018281526020019350505050600060405180830381600087803b15801561162357600080fd5b505af1158015611637573d6000803e3d6000fd5b50505050505050565b600061164d60075461213b565b600160a060020a031663b429afeb836040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b1580156116a757600080fd5b505af11580156116bb573d6000803e3d6000fd5b505050506040513d60208110156116d157600080fd5b505192915050565b6116e16150c6565b6116e96150c6565b6000606060006116f76150c6565b6000875160001415611756576040805160208082526010908201527f656d70747920746f6b656e206c697374000000000000000000000000000000008183015290516000805160206151c68339815191529181900360600190a1611a65565b30600160a060020a031631885161178a60408051908101604052806003815260200160ea60020a6215549302815250613ec2565b0211156117e4576040805160208082526014908201527f696e73756666696369656e742062616c616e63650000000000000000000000008183015290516000805160206151c68339815191529181900360600190a1611a65565b611849606060405190810160405280603281526020017f68747470733a2f2f6d696e2d6170692e63727970746f636f6d706172652e636f81526020017f6d2f646174612f70726963653f6673796d3d00000000000000000000000000008152506131f8565b96506118896040805190810160405280601481526020017f267473796d733d455448267369676e3d747275650000000000000000000000008152506131f8565b9550600094505b8751851015611a65576118b988868151811015156118aa57fe5b90602001906020020151610a8e565b505050955050509350821515611919576040805160e560020a62461bcd02815260206004820152601760248201527f746f6b656e206d75737420626520617661696c61626c65000000000000000000604482015290519081900360640190fd5b611922846131f8565b604080518082019091526003815260ea60020a621554930260208201529092506119749061196e8861196261195d8c8863ffffffff6140f816565b6131f8565b9063ffffffff6140f816565b8b61416f565b9050878581518110151561198457fe5b6020908102919091018101516000838152600a90925260409091208054600160a060020a031916600160a060020a039092169190911790557fd28a52bc81f387be057d69ee89db644f94b7064c4acec0d5bc33e201a2031c056119e6836132a4565b6040805160208082528351818301528351919283929083019185019080838360005b83811015611a20578181015183820152602001611a08565b50505050905090810190601f168015611a4d5780820380516001836020036101000a031916815260200191505b509250505060405180910390a1600190940193611890565b505050505050505050565b600160a060020a0382161515611abc57604051600160a060020a0384169082156108fc029083906000818181858888f19350505050158015611ab6573d6000803e3d6000fd5b50611bc7565b81600160a060020a031663a9059cbb84836040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b158015611b1f57600080fd5b505af1158015611b33573d6000803e3d6000fd5b505050506040513d6020811015611b4957600080fd5b50511515611bc7576040805160e560020a62461bcd02815260206004820152602560248201527f455243323020746f6b656e207472616e736665722077617320756e737563636560448201527f737366756c000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60408051600160a060020a0380861682528416602082015280820183905290517ff7a40077ff7a04c7e61f6f26fb13774259ddf1b6bce9ecf26a8276cdd39926839181900360600190a1505050565b6060611c206150c6565b611c286150c6565b60006060611c346150c6565b6000611c3e614572565b9650865160001415611c9d576040805160208082526009908201527f6e6f20746f6b656e7300000000000000000000000000000000000000000000008183015290516000805160206151c68339815191529181900360600190a1611f34565b30600160a060020a0316318751611cd160408051908101604052806003815260200160ea60020a6215549302815250613ec2565b021115611d2b576040805160208082526014908201527f696e73756666696369656e742062616c616e63650000000000000000000000008183015290516000805160206151c68339815191529181900360600190a1611f34565b611d90606060405190810160405280603281526020017f68747470733a2f2f6d696e2d6170692e63727970746f636f6d706172652e636f81526020017f6d2f646174612f70726963653f6673796d3d00000000000000000000000000008152506131f8565b9550611dd06040805190810160405280601481526020017f267473796d733d455448267369676e3d747275650000000000000000000000008152506131f8565b9450600093505b8651841015611f3457611df187858151811015156118aa57fe5b5050505050509250611e02836131f8565b604080518082019091526003815260ea60020a62155493026020820152909250611e4390611e3d8761196261195d8b8863ffffffff6140f816565b8a61416f565b90508684815181101515611e5357fe5b6020908102919091018101516000838152600a90925260409091208054600160a060020a031916600160a060020a039092169190911790557fd28a52bc81f387be057d69ee89db644f94b7064c4acec0d5bc33e201a2031c05611eb5836132a4565b6040805160208082528351818301528351919283929083019185019080838360005b83811015611eef578181015183820152602001611ed7565b50505050905090810190601f168015611f1c5780820380516001836020036101000a031916815260200191505b509250505060405180910390a1600190930192611dd7565b5050505050505050565b600254600160a060020a03161580611f685750600254611f6690600160a060020a031661212d565b155b15611f7957611f776000612131565b505b600260009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611fcc57600080fd5b505af1158015611fe0573d6000803e3d6000fd5b505050506040513d6020811015611ff657600080fd5b5051600354600160a060020a039081169116146120ac57600260009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561206057600080fd5b505af1158015612074573d6000803e3d6000fd5b505050506040513d602081101561208a57600080fd5b505160038054600160a060020a031916600160a060020a039092169190911790555b600354604080517fca6ad1e4000000000000000000000000000000000000000000000000000000008152600481018490529051600160a060020a039092169163ca6ad1e49160248082019260009290919082900301818387803b15801561211257600080fd5b505af1158015612126573d6000803e3d6000fd5b5050505050565b3b90565b60006115a861464c565b60008054604080517f0178b8bf000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691630178b8bf9160248082019260209290919082900301818787803b1580156121a257600080fd5b505af11580156121b6573d6000803e3d6000fd5b505050506040513d60208110156121cc57600080fd5b5051604080517f3b3b57de000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691633b3b57de916024808201926020929091908290030181600087803b1580156116a757600080fd5b6060600080600084870192508286511015151561224e57600080fd5b505060208087019084015b86886020010182101561227a57888201518682015260209182019101612259565b5093979650505050505050565b600080600061231f6002876040518082805190602001908083835b602083106122c15780518252601f1990920191602091820191016122a2565b51815160209384036101000a600019018019909216911617905260405191909301945091925050808303816000865af1158015612302573d6000803e3d6000fd5b5050506040513d602081101561231757600080fd5b505186614974565b925090508080156123985750836040518082805190602001908083835b6020831061235b5780518252601f19909201916020918201910161233c565b5181516020939093036101000a60001901801990911692169190911790526040519201829003909120600160a060020a0390811690861614925050505b9695505050505050565b6000806123ad6150c6565b6123b56150c6565b6123bd6150c6565b60008060008060008060008d6040516020018082805190602001908083835b602083106123fb5780518252601f1990920191602091820191016123dc565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405251601414151561243b57fe5b6124448e6131f8565b99506124846040805190810160405280600181526020017f3a000000000000000000000000000000000000000000000000000000000000008152506131f8565b98506124c46040805190810160405280600181526020017f20000000000000000000000000000000000000000000000000000000000000008152506131f8565b97506124e66124e16124dc8c8b63ffffffff61322116565b6132a4565b6149fc565b96506000871180156124f85750602087105b151561254e576040805160e560020a62461bcd02815260206004820152600960248201527f646179206572726f720000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6125696125646124dc8c8b63ffffffff61322116565b614a09565b60ff16955060008611801561257e5750600d86105b15156125d4576040805160e560020a62461bcd02815260206004820152600b60248201527f6d6f6e7468206572726f72000000000000000000000000000000000000000000604482015290519081900360640190fd5b6125ea6124e16124dc8c8b63ffffffff61322116565b94506107e1851180156125fe5750610bb885105b1515612654576040805160e560020a62461bcd02815260206004820152600a60248201527f79656172206572726f7200000000000000000000000000000000000000000000604482015290519081900360640190fd5b61266a6124e16124dc8c8c63ffffffff61322116565b9350601984106126c4576040805160e560020a62461bcd02815260206004820152600a60248201527f686f7572206572726f7200000000000000000000000000000000000000000000604482015290519081900360640190fd5b6126da6124e16124dc8c8c63ffffffff61322116565b9250603c8310612734576040805160e560020a62461bcd02815260206004820152600c60248201527f6d696e757465206572726f720000000000000000000000000000000000000000604482015290519081900360640190fd5b61274a6124e16124dc8c8c63ffffffff61322116565b9150603c82106127a4576040805160e560020a62461bcd02815260206004820152600c60248201527f7365636f6e64206572726f720000000000000000000000000000000000000000604482015290519081900360640190fd5b506402540be40084026305f5e100860201620f4240870201612710840201606483020181018c81119b5099505050505050505050509250929050565b60606000806000806000606060008060008a519450846040519080825280601f01601f191660200182016040528015612823578160200160208202803883390190505b509350600085118015612837575060048506155b151561288d576040805160e560020a62461bcd02815260206004820152601760248201527f696e76616c69642062617365363420656e636f64696e67000000000000000000604482015290519081900360640190fd5b604080517f3d00000000000000000000000000000000000000000000000000000000000000815290519081900360010190208b518c9060011988019081106128d157fe5b90602001015160f860020a900460f860020a026040516020018082600160f860020a031916600160f860020a03191681526001019150506040516020818303038152906040526040518082805190602001908083835b602083106129465780518252601f199092019160209182019101612927565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902060001916141561298857600285039450612a7f565b604080517f3d00000000000000000000000000000000000000000000000000000000000000815290519081900360010190208b518c9060001988019081106129cc57fe5b90602001015160f860020a900460f860020a026040516020018082600160f860020a031916600160f860020a03191681526001019150506040516020818303038152906040526040518082805190602001908083835b60208310612a415780518252601f199092019160209182019101612a22565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020600019161415612a7f576001850394505b505060048084040260005b81811015612de1576040805160a081018252607b815260006020820152600080516020615186833981519152918101919091526000805160206151e6833981519152606082015260008051602061516683398151915260808201528b5160018301928d918110612af657fe5b90602001015160f860020a900460f860020a0260f860020a9004815181101515612b1c57fe5b90602001015160f860020a900460f860020a02985060a060405190810160405280607b81526020016000815260200160008051602061518683398151915281526020016000805160206151e683398151915281526020016000805160206151668339815191528152508b82806001019350815181101515612b9957fe5b90602001015160f860020a900460f860020a0260f860020a9004815181101515612bbf57fe5b90602001015160f860020a900460f860020a02975060a060405190810160405280607b81526020016000815260200160008051602061518683398151915281526020016000805160206151e683398151915281526020016000805160206151668339815191528152508b82806001019350815181101515612c3c57fe5b90602001015160f860020a900460f860020a0260f860020a9004815181101515612c6257fe5b90602001015160f860020a900460f860020a02965060a060405190810160405280607b81526020016000815260200160008051602061518683398151915281526020016000805160206151e683398151915281526020016000805160206151668339815191528152508b82806001019350815181101515612cdf57fe5b90602001015160f860020a900460f860020a0260f860020a9004815181101515612d0557fe5b0160200151845160f860020a9182900490910296506001840193600160f860020a03198b81166004026010828d16041716918691908110612d4257fe5b906020010190600160f860020a031916908160001a905350835160018401936010600160f860020a03198b8116919091026004828c16041716918691908110612d8757fe5b906020010190600160f860020a031916908160001a90535083516001840193600160f860020a0319898116604002891716918691908110612dc457fe5b906020010190600160f860020a031916908160001a905350612a8a565b81850360021415612f73576040805160a081018252607b815260006020820152600080516020615186833981519152918101919091526000805160206151e6833981519152606082015260008051602061516683398151915260808201528b5160018301928d918110612e5057fe5b90602001015160f860020a900460f860020a0260f860020a9004815181101515612e7657fe5b90602001015160f860020a900460f860020a02985060a060405190810160405280607b81526020016000815260200160008051602061518683398151915281526020016000805160206151e683398151915281526020016000805160206151668339815191528152508b82806001019350815181101515612ef357fe5b90602001015160f860020a900460f860020a0260f860020a9004815181101515612f1957fe5b0160200151845160f860020a9182900490910298506001840193600160f860020a03198b81166004026010828d16041716918691908110612f5657fe5b906020010190600160f860020a031916908160001a9053506131e9565b818503600314156131e9576040805160a081018252607b815260006020820152600080516020615186833981519152918101919091526000805160206151e6833981519152606082015260008051602061516683398151915260808201528b5160018301928d918110612fe257fe5b90602001015160f860020a900460f860020a0260f860020a900481518110151561300857fe5b90602001015160f860020a900460f860020a02985060a060405190810160405280607b81526020016000815260200160008051602061518683398151915281526020016000805160206151e683398151915281526020016000805160206151668339815191528152508b8280600101935081518110151561308557fe5b90602001015160f860020a900460f860020a0260f860020a90048151811015156130ab57fe5b90602001015160f860020a900460f860020a02975060a060405190810160405280607b81526020016000815260200160008051602061518683398151915281526020016000805160206151e683398151915281526020016000805160206151668339815191528152508b8280600101935081518110151561312857fe5b90602001015160f860020a900460f860020a0260f860020a900481518110151561314e57fe5b0160200151845160f860020a9182900490910297506001840193600160f860020a03198b81166004026010828d1604171691869190811061318b57fe5b906020010190600160f860020a031916908160001a905350835160018401936010600160f860020a03198b8116919091026004828c160417169186919081106131d057fe5b906020010190600160f860020a031916908160001a9053505b50508152979650505050505050565b6132006150c6565b50604080518082019091528151815260208281019082018190525b50919050565b6132296150c6565b613234838383614e3c565b5092915050565b6132436150c6565b815183516000918291101561325a5784925061329c565b5050815183516020808601519085015191019190910390600190821461328a575082516020840151819020908220145b801561329857835185510385525b8492505b505092915050565b606080600083600001516040519080825280601f01601f1916602001820160405280156132db578160200160208202803883390190505b5091506020820190506132348185602001518660000151614ead565b60008281808080808080808080805b8b51811015613b73578b517f3000000000000000000000000000000000000000000000000000000000000000908d908390811061333f57fe5b90602001015160f860020a900460f860020a02600160f860020a031916101580156133b557508b517f3900000000000000000000000000000000000000000000000000000000000000908d908390811061339557fe5b90602001015160f860020a900460f860020a02600160f860020a03191611155b80156133bf575083155b1561348957841561342a576133db8a600a63ffffffff614ef116565b8c51909a5061341d906030908e90849081106133f357fe5b90602001015160f860020a900460f860020a0260f860020a9004038b614f2690919063ffffffff16565b9950600190970196613484565b6001955061343f8b600a63ffffffff614ef116565b8c51909b50613481906030908e908490811061345757fe5b90602001015160f860020a900460f860020a0260f860020a9004038c614f2690919063ffffffff16565b9a505b613b6b565b8b517f3000000000000000000000000000000000000000000000000000000000000000908d90839081106134b957fe5b90602001015160f860020a900460f860020a02600160f860020a0319161015801561352f57508b517f3900000000000000000000000000000000000000000000000000000000000000908d908390811061350f57fe5b90602001015160f860020a900460f860020a02600160f860020a03191611155b80156135385750835b156135975761354e89600a63ffffffff614ef116565b8c51909950613590906030908e908490811061356657fe5b90602001015160f860020a900460f860020a0260f860020a9004038a614f2690919063ffffffff16565b9850613b6b565b8b517f2e00000000000000000000000000000000000000000000000000000000000000908d90839081106135c757fe5b90602001015160f860020a900460f860020a02600160f860020a03191614156136f657851515613641576040805160e560020a62461bcd02815260206004820152601560248201527f6d697373696e6720696e74656772616c20706172740000000000000000000000604482015290519081900360640190fd5b8415613697576040805160e560020a62461bcd02815260206004820152601760248201527f6475706c696361746520646563696d616c20706f696e74000000000000000000604482015290519081900360640190fd5b83156136ed576040805160e560020a62461bcd02815260206004820152601660248201527f646563696d616c206166746572206578706f6e656e7400000000000000000000604482015290519081900360640190fd5b60019450613b6b565b8b517f2d00000000000000000000000000000000000000000000000000000000000000908d908390811061372657fe5b90602001015160f860020a900460f860020a02600160f860020a031916141561385857821561379f576040805160e560020a62461bcd02815260206004820152600b60248201527f6475706c6963617465202d000000000000000000000000000000000000000000604482015290519081900360640190fd5b81156137f5576040805160e560020a62461bcd02815260206004820152600a60248201527f6578747261207369676e00000000000000000000000000000000000000000000604482015290519081900360640190fd5b60018701811461384f576040805160e560020a62461bcd02815260206004820152601e60248201527f2d207369676e206e6f7420696d6d6564696174656c7920616674657220650000604482015290519081900360640190fd5b60019250613b6b565b8b517f2b00000000000000000000000000000000000000000000000000000000000000908d908390811061388857fe5b90602001015160f860020a900460f860020a02600160f860020a03191614156139ba578115613901576040805160e560020a62461bcd02815260206004820152600b60248201527f6475706c6963617465202b000000000000000000000000000000000000000000604482015290519081900360640190fd5b8215613957576040805160e560020a62461bcd02815260206004820152600a60248201527f6578747261207369676e00000000000000000000000000000000000000000000604482015290519081900360640190fd5b6001870181146139b1576040805160e560020a62461bcd02815260206004820152601e60248201527f2b207369676e206e6f7420696d6d6564696174656c7920616674657220650000604482015290519081900360640190fd5b60019150613b6b565b8b517f4500000000000000000000000000000000000000000000000000000000000000908d90839081106139ea57fe5b90602001015160f860020a900460f860020a02600160f860020a0319161480613a5d57508b517f6500000000000000000000000000000000000000000000000000000000000000908d9083908110613a3e57fe5b90602001015160f860020a900460f860020a02600160f860020a031916145b15613b1b57851515613ab9576040805160e560020a62461bcd02815260206004820152601560248201527f6d697373696e6720696e74656772616c20706172740000000000000000000000604482015290519081900360640190fd5b8315613b0f576040805160e560020a62461bcd02815260206004820152601960248201527f6475706c6963617465206578706f6e656e742073796d626f6c00000000000000604482015290519081900360640190fd5b60019350809650613b6b565b6040805160e560020a62461bcd02815260206004820152600d60248201527f696e76616c696420646967697400000000000000000000000000000000000000604482015290519081900360640190fd5b600101613306565b8280613b7c5750815b15613b9557600287018111613b9057600080fd5b613baa565b8315613baa57600187018111613baa57600080fd5b8215613c36578d8910613c2c57604e8e8a0310613c11576040805160e560020a62461bcd02815260206004820152600d60248201527f6578706f6e656e74203e20373700000000000000000000000000000000000000604482015290519081900360640190fd5b8d8903600a0a8b811515613c2157fe5b049a508a9c50613eb0565b888e039d50613c49565b613c468e8a63ffffffff614f2616565b9d505b878e10613d6f57604e8810613cce576040805160e560020a62461bcd02815260206004820152602260248201527f6d6f7265207468616e20373720646563696d616c20646967697473207061727360448201527f6564000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b613ce28b600a8a900a63ffffffff614ef116565b9a50613cf48b8b63ffffffff614f2616565b9a50604e888f0310613d50576040805160e560020a62461bcd02815260206004820152600d60248201527f6578706f6e656e74203e20373700000000000000000000000000000000000000604482015290519081900360640190fd5b613d68888f03600a0a8c614ef190919063ffffffff16565b9a50613eac565b968d900396604e8810613df2576040805160e560020a62461bcd02815260206004820152602260248201527f6d6f7265207468616e20373720646563696d616c20646967697473207061727360448201527f6564000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b87600a0a8a811515613e0057fe5b049950604e8e10613e81576040805160e560020a62461bcd02815260206004820152602260248201527f6d6f7265207468616e20373720646563696d616c20646967697473207061727360448201527f6564000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b613e978e600a0a8c614ef190919063ffffffff16565b9a50613ea98b8b63ffffffff614f2616565b9a505b8a9c505b50505050505050505050505092915050565b600254600090600160a060020a03161580613eef5750600254613eed90600160a060020a031661212d565b155b15613f0057613efe6000612131565b505b600260009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015613f5357600080fd5b505af1158015613f67573d6000803e3d6000fd5b505050506040513d6020811015613f7d57600080fd5b5051600354600160a060020a0390811691161461403357600260009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015613fe757600080fd5b505af1158015613ffb573d6000803e3d6000fd5b505050506040513d602081101561401157600080fd5b505160038054600160a060020a031916600160a060020a039092169190911790555b6003546040517f524f3889000000000000000000000000000000000000000000000000000000008152602060048201818152855160248401528551600160a060020a039094169363524f388993879383926044909201919085019080838360005b838110156140ac578181015183820152602001614094565b50505050905090810190601f1680156140d95780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1580156116a757600080fd5b606080600083600001518560000151016040519080825280601f01601f191660200182016040528015614135578160200160208202803883390190505b5091506020820190506141518186602001518760000151614ead565b8451602085015185516141679284019190614ead565b509392505050565b6002546000908190600160a060020a0316158061419e575060025461419c90600160a060020a031661212d565b155b156141af576141ad6000612131565b505b600260009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561420257600080fd5b505af1158015614216573d6000803e3d6000fd5b505050506040513d602081101561422c57600080fd5b5051600354600160a060020a039081169116146142e257600260009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561429657600080fd5b505af11580156142aa573d6000803e3d6000fd5b505050506040513d60208110156142c057600080fd5b505160038054600160a060020a031916600160a060020a039092169190911790555b600354604080517f2ef3accc0000000000000000000000000000000000000000000000000000000081526024810186905260048101918252875160448201528751600160a060020a0390931692632ef3accc9289928892829160640190602086019080838360005b8381101561436257818101518382015260200161434a565b50505050905090810190601f16801561438f5780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b1580156143af57600080fd5b505af11580156143c3573d6000803e3d6000fd5b505050506040513d60208110156143d957600080fd5b50519050670de0b6b3a76400003a8402018111156143fa5760009150614167565b6003546040517fc51be90f00000000000000000000000000000000000000000000000000000000815260006004820181815260648301879052608060248401908152895160848501528951600160a060020a039095169463c51be90f948794938c938c938c93604481019160a49091019060208801908083838c5b8381101561448d578181015183820152602001614475565b50505050905090810190601f1680156144ba5780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b838110156144ed5781810151838201526020016144d5565b50505050905090810190601f16801561451a5780820380516001836020036101000a031916815260200191505b5096505050505050506020604051808303818588803b15801561453c57600080fd5b505af1158015614550573d6000803e3d6000fd5b50505050506040513d602081101561456757600080fd5b505195945050505050565b606061457f60085461213b565b600160a060020a031663443dd2a46040518163ffffffff1660e060020a028152600401600060405180830381600087803b1580156145bc57600080fd5b505af11580156145d0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156145f957600080fd5b81019080805164010000000081111561461157600080fd5b8201602081018481111561462457600080fd5b815185602082028301116401000000008211171561464157600080fd5b509094505050505090565b60008061466c731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed61212d565b11156146dd5760028054600160a060020a031916731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed17905560408051808201909152600b81527f6574685f6d61696e6e657400000000000000000000000000000000000000000060208201526146d590614f38565b506001610604565b60006146fc73c03a2615d5efaf5f49f60b7bb6583eaec212fdf161212d565b11156147655760028054600160a060020a03191673c03a2615d5efaf5f49f60b7bb6583eaec212fdf117905560408051808201909152600c81527f6574685f726f707374656e33000000000000000000000000000000000000000060208201526146d590614f38565b600061478473b7a07bcf2ba2f2703b24c0691b5278999c59ac7e61212d565b11156147ed5760028054600160a060020a03191673b7a07bcf2ba2f2703b24c0691b5278999c59ac7e17905560408051808201909152600981527f6574685f6b6f76616e000000000000000000000000000000000000000000000060208201526146d590614f38565b600061480c73146500cfd35b22e4a392fe0adc06de1a1368ed4861212d565b11156148755760028054600160a060020a03191673146500cfd35b22e4a392fe0adc06de1a1368ed4817905560408051808201909152600b81527f6574685f72696e6b65627900000000000000000000000000000000000000000060208201526146d590614f38565b6000614894736f485c8bf6fc43ea212e93bbf8ce046c7f1cb47561212d565b11156148c8575060028054600160a060020a031916736f485c8bf6fc43ea212e93bbf8ce046c7f1cb4751790556001610604565b60006148e77320e12a1f859b3feae5fb2a0a32c18f5a65555bbf61212d565b111561491b575060028054600160a060020a0319167320e12a1f859b3feae5fb2a0a32c18f5a65555bbf1790556001610604565b600061493a7351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa61212d565b111561496e575060028054600160a060020a0319167351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa1790556001610604565b50600090565b60008060008060008551604114151561499357600094508493506149f2565b50505060208301516040840151606085015160001a601b60ff821610156149b857601b015b8060ff16601b141580156149d057508060ff16601c14155b156149e157600094508493506149f2565b6149ed87828585614f4b565b945094505b5050509250929050565b60006115a88260006132f7565b600080826040516020018082805190602001908083835b60208310614a3f5780518252601f199092019160209182019101614a20565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040526040518082805190602001908083835b60208310614aa25780518252601f199092019160209182019101614a83565b5181516000196020949094036101000a93909301928316921916919091179052604080519390910183900383207f4a616e00000000000000000000000000000000000000000000000000000000008452905192839003600301909220919450508314159150614b169050576001915061321b565b604080517f466562000000000000000000000000000000000000000000000000000000000081529051908190036003019020811415614b58576002915061321b565b604080517f4d6172000000000000000000000000000000000000000000000000000000000081529051908190036003019020811415614b9a576003915061321b565b604080517f417072000000000000000000000000000000000000000000000000000000000081529051908190036003019020811415614bdc576004915061321b565b604080517f4d6179000000000000000000000000000000000000000000000000000000000081529051908190036003019020811415614c1e576005915061321b565b604080517f4a756e000000000000000000000000000000000000000000000000000000000081529051908190036003019020811415614c60576006915061321b565b604080517f4a756c000000000000000000000000000000000000000000000000000000000081529051908190036003019020811415614ca2576007915061321b565b604080517f417567000000000000000000000000000000000000000000000000000000000081529051908190036003019020811415614ce4576008915061321b565b604080517f536570000000000000000000000000000000000000000000000000000000000081529051908190036003019020811415614d26576009915061321b565b604080517f4f6374000000000000000000000000000000000000000000000000000000000081529051908190036003019020811415614d6857600a915061321b565b604080517f4e6f76000000000000000000000000000000000000000000000000000000000081529051908190036003019020811415614daa57600b915061321b565b604080517f446563000000000000000000000000000000000000000000000000000000000081529051908190036003019020811415614dec57600c915061321b565b6040805160e560020a62461bcd02815260206004820152601160248201527f6e6f7420612076616c6964206d6f6e7468000000000000000000000000000000604482015290519081900360640190fd5b614e446150c6565b6000614e628560000151866020015186600001518760200151614f88565b60208087018051918601919091528051820385528651905191925001811415614e8e5760008552614ea4565b8351835186519101900385528351810160208601525b50909392505050565b60005b60208210614ed2578251845260209384019390920191601f1990910190614eb0565b50905182516020929092036101000a6000190180199091169116179052565b600080831515614f045760009150613234565b50828202828482811515614f1457fe5b0414614f1f57600080fd5b9392505050565b600082820183811015614f1f57600080fd5b805161032d9060049060208401906150dd565b60008060008060405188815287602082015286604082015285606082015260208160808360006001610bb8f1905190999098509650505050505050565b600083818080808080808c8b116150325760208b11614ffb5760018b60200360080260020a03196001029550858a511694508a8d8d010393508588511692505b828514614ff357838810614fe0578c8c019850615038565b8780600101985050858851169250614fc8565b879850615038565b8a8a209150600096505b8a8d03871161503257508987208181141561502257879850615038565b6001978801979690960195615005565b8c8c0198505b5050505050505050949350505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106150895782800160ff198235161785556150b6565b828001600101855582156150b6579182015b828111156150b657823582559160200191906001019061509b565b506150c292915061514b565b5090565b604080518082019091526000808252602082015290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061511e57805160ff19168380011785556150b6565b828001600101855582156150b6579182015b828111156150b6578251825591602001919060010190615130565b61060491905b808211156150c257600081556001016151515600001a1b1c1d1e1f202122232425262728292a2b2c2d2e2f30313233000000000000000000000000000000003e003e003f3435363738393a3b3c3d00000000000073656e646572206973206e6f74206120636f6e74726f6c6c65720000000000004eb5629fd8501532aeb93b1b6a5b5b2ae398561e56514ed4b4b0c5ac2d381b6e00000102030405060708090a0b0c0d0e0f10111213141516171819000000003fa165627a7a72305820638888b51223150c5b2df2425104396afc8cd4366fdc38cd8f5073de023ba8f60029","srcmap":"1225:15100:16:-;;;3096:540;8:9:-1;5:2;;;30:1;27;20:12;5:2;3096:540:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1312:12:11;:23;;-1:-1:-1;;;;;1312:23:11;;;-1:-1:-1;;;;;;1312:23:11;;;;;;;;:12;1345:24;;;;;1356:12;;1345:24;;;;;;1334:15:8;:38;;;1366:19:15;:46;;;3325:161:16;;;;;;;;;;;;;;;;;;;;;;;3096:540;;;;;3325:161;;:25;;:161;:::i;:::-;-1:-1:-1;3496:3:16;:39;;-1:-1:-1;;;;;;3496:39:16;-1:-1:-1;;;;;3496:39:16;;;;;3545;3572:11;3545:26;;;;:39;:::i;:::-;3594:35;3612:16;3594:17;;;;:35;:::i;:::-;3096:540;;;;1225:15100;;33991:132:5;11360:3;;-1:-1:-1;;;;;11360:3:5;11352:15;;11351:49;;-1:-1:-1;11391:3:5;;11371:25;;-1:-1:-1;;;;;11391:3:5;11371:11;;;;:25;:::i;:::-;:28;11351:49;11348:101;;;11414:35;11082:1;11414:19;;;;:35;:::i;:::-;;11348:101;11484:3;;;;;;;;;-1:-1:-1;;;;;11484:3:5;-1:-1:-1;;;;;11484:14:5;;:16;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11484:16:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11484:16:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11484:16:5;11471:8;;-1:-1:-1;;;;;11471:8:5;;;11463:37;;;11460:92;;11535:3;;;;;;;;;-1:-1:-1;;;;;11535:3:5;-1:-1:-1;;;;;11535:14:5;;:16;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11535:16:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11535:16:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11535:16:5;11514:8;:38;;-1:-1:-1;;;;;;11514:38:5;-1:-1:-1;;;;;11514:38:5;;;;;;;;;11460:92;34080:8;;:36;;;;;;;;;;;;;;-1:-1:-1;;;;;34080:8:5;;;;:26;;:36;;;;;:8;;:36;;;;;;;;:8;;:36;;;5:2:-1;;;;30:1;27;20:12;5:2;34080:36:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;34080:36:5;;;;33991:132;:::o;33872:114::-;11360:3;;-1:-1:-1;;;;;11360:3:5;11352:15;;11351:49;;-1:-1:-1;11391:3:5;;11371:25;;-1:-1:-1;;;;;11391:3:5;11371:11;;;;:25;:::i;:::-;:28;11351:49;11348:101;;;11414:35;11082:1;11414:19;;;;:35;:::i;:::-;;11348:101;11484:3;;;;;;;;;-1:-1:-1;;;;;11484:3:5;-1:-1:-1;;;;;11484:14:5;;:16;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11484:16:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11484:16:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11484:16:5;11471:8;;-1:-1:-1;;;;;11471:8:5;;;11463:37;;;11460:92;;11535:3;;;;;;;;;-1:-1:-1;;;;;11535:3:5;-1:-1:-1;;;;;11535:14:5;;:16;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11535:16:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11535:16:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11535:16:5;11514:8;:38;;-1:-1:-1;;;;;;11514:38:5;-1:-1:-1;;;;;11514:38:5;;;;;;;;;11460:92;33950:8;;:29;;;;;;;;;;;;;;;-1:-1:-1;;;;;33950:8:5;;;;:21;;:29;;;;;:8;;:29;;;;;;;;:8;;:29;;;5:2:-1;;;;30:1;27;20:12;34287:146:5;34399:18;;34376:51::o;11676:183::-;11739:4;11759:21;:19;;;;:21;:::i;:::-;11752:28;11676:183;-1:-1:-1;;11676:183:5:o;11864:1749::-;11912:4;;11931:55;11943:42;11931:11;;;;:55;:::i;:::-;:57;11927:245;;;12013:3;:71;;-1:-1:-1;;;;;;12013:71:5;12041:42;12013:71;;;12098:38;;;;;;;;;;;;;;;;;;;:23;;;;:38;:::i;:::-;-1:-1:-1;12157:4:5;12150:11;;11927:245;12241:1;12185:55;12197:42;12185:11;;;;:55;:::i;:::-;:57;12181:254;;;12275:3;:71;;-1:-1:-1;;;;;;12275:71:5;12303:42;12275:71;;;12360:39;;;;;;;;;;;;;;;;;;;:23;;;;:39;:::i;12181:254::-;12504:1;12448:55;12460:42;12448:11;;;;:55;:::i;:::-;:57;12444:249;;;12536:3;:71;;-1:-1:-1;;;;;;12536:71:5;12564:42;12536:71;;;12621:36;;;;;;;;;;;;;;;;;;;:23;;;;:36;:::i;12444:249::-;12762:1;12706:55;12718:42;12706:11;;;;:55;:::i;:::-;:57;12702:253;;;12796:3;:71;;-1:-1:-1;;;;;;12796:71:5;12824:42;12796:71;;;12881:38;;;;;;;;;;;;;;;;;;;:23;;;;:38;:::i;12702:253::-;13024:1;12968:55;12980:42;12968:11;;;;:55;:::i;:::-;:57;12964:201;;;-1:-1:-1;13058:3:5;:71;;-1:-1:-1;;;;;;13058:71:5;13086:42;13058:71;;;;13143:11;;12964:201;13234:1;13178:55;13190:42;13178:11;;;;:55;:::i;:::-;:57;13174:200;;;-1:-1:-1;13267:3:5;:71;;-1:-1:-1;;;;;;13267:71:5;13295:42;13267:71;;;;13352:11;;13174:200;13443:1;13387:55;13399:42;13387:11;;;;:55;:::i;:::-;:57;13383:202;;;-1:-1:-1;13478:3:5;:71;;-1:-1:-1;;;;;;13478:71:5;13506:42;13478:71;;;;13563:11;;13383:202;-1:-1:-1;13601:5:5;11864:1749;;:::o;39748:118::-;39822:37;;;;:21;;:37;;;;;:::i;:::-;;39748:118;:::o;1225:15100:16:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1225:15100:16;;;-1:-1:-1;1225:15100:16;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;","srcmap-runtime":"1225:15100:16:-;;;;;;;;;-1:-1:-1;;;1225:15100:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13619:111:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;13619:111:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13619:111:5;;-1:-1:-1;13619:111:5;;-1:-1:-1;;;;;;;13619:111:5;;;5441:1204:16;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5441:1204:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5441:1204:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5441:1204:16;;;;-1:-1:-1;5441:1204:16;-1:-1:-1;5441:1204:16;;-1:-1:-1;5441:1204:16;;;;;;;;-1:-1:-1;5441:1204:16;;-1:-1:-1;5441:1204:16;;-1:-1:-1;;;;;;;5441:1204:16;2618:38;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2618:38:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2618:38:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1468:91:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1468:91:11;;;;;;;;-1:-1:-1;;;;;1468:91:11;;;;;;;;;;;;;;1552:105:15;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1552:105:15;;;;;;;;;;;;;;;;;;;;4780:161:16;;;;;;;;;;;;;;;;;5029:127;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5029:127:16;-1:-1:-1;;;;;5029:127:16;;;;;;;;;;;;4414:119;;;;;;3761:202;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3761:202:16;;;;;;;;;;;;4073:170;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4073:170:16;;;;;1629:97:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1629:97:8;;;;13619:111:5;13710:12;;;13720:1;13710:12;;;;;;;;13685:38;;13696:4;;13702:6;;13685:10;:38::i;:::-;13619:111;;:::o;5441:1204:16:-;5730:13;5904:14;5924:18;6032:10;6052:14;6306:18;6437:24;5609:20;:18;:20::i;:::-;-1:-1:-1;;;;;5595:34:16;:10;:34;5587:69;;;;;-1:-1:-1;;;;;5587:69:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;5746:23;;;;:13;:23;;;;;;-1:-1:-1;;;;;5746:23:16;;-1:-1:-1;5787:19:16;;;5779:60;;;;;-1:-1:-1;;;;;5779:60:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;5946:20;5960:5;5946:13;:20::i;:::-;5896:70;;;;;;;;;5984:9;5976:45;;;;;;;-1:-1:-1;;;;;5976:45:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;6127:25;6097:68;;;;;;;;-1:-1:-1;;6097:68:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6110:7;;6119:6;;6097:68;;6127:25;6097:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6154:10;6097:12;:68::i;:::-;6076:89;;-1:-1:-1;6076:89:16;-1:-1:-1;6220:419:16;;;;6327:42;6350:18;6360:7;6350:9;:18::i;:::-;6327:22;:42::i;:::-;6537:23;;;;:13;:23;;;;;6530:30;;-1:-1:-1;;;;;;6530:30:16;;;6306:63;-1:-1:-1;6464:9:16;;-1:-1:-1;6575:53:16;6592:5;6306:63;6464:9;6575:16;:53::i;:::-;5441:1204;;;;;;;;;;:::o;2618:38::-;;;;;;;;;;;;;;;-1:-1:-1;;2618:38:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1468:91:11:-;1540:12;;-1:-1:-1;;;;;1540:12:11;1468:91;;:::o;1552:105:15:-;1631:19;;1552:105;:::o;4780:161:16:-;1489:25:8;1503:10;1489:13;:25::i;:::-;1481:64;;;;;;;-1:-1:-1;;;;;1481:64:8;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1481:64:8;;;;;;;;;;;;;;;4890:44:16;4912:9;4923:10;;4890:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4890:21:16;;-1:-1:-1;;;;;4890:44:16:i;:::-;4780:161;;;:::o;5029:127::-;1489:25:8;1503:10;1489:13;:25::i;:::-;1481:64;;;;;;;-1:-1:-1;;;;;1481:64:8;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1481:64:8;;;;;;;;;;;;;;;5121:28:16;5128:3;5133:6;5141:7;5121:6;:28::i;4414:119::-;1489:25:8;1503:10;1489:13;:25::i;:::-;1481:64;;;;;;;-1:-1:-1;;;;;1481:64:8;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1481:64:8;;;;;;;;;;;;;;;4498:28:16;4516:9;4498:17;:28::i;:::-;4414:119;:::o;3761:202::-;1489:25:8;1503:10;1489:13;:25::i;:::-;1481:64;;;;;;;-1:-1:-1;;;;;1481:64:8;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1481:64:8;;;;;;;;;;;;;;;3854:38:16;:25;3882:10;;3854:38;:::i;:::-;-1:-1:-1;3907:49:16;;;3933:10;3907:49;;;;;;;;;;;;;;;;;3933:10;;3945;;;;3907:49;;;;3945:10;;;;3907:49;;;;;;;;;;-1:-1:-1;3907:49:16;;-1:-1:-1;;;;;3907:49:16;3761:202;;:::o;4073:170::-;1489:25:8;1503:10;1489:13;:25::i;:::-;1481:64;;;;;;;-1:-1:-1;;;;;1481:64:8;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1481:64:8;;;;;;;;;;;;;;;4150:37:16;4177:9;4150:26;:37::i;:::-;4202:34;;;4214:10;4202:34;;;;;;;;;;;;;;;;;;;;;4073:170;:::o;1629:97:8:-;1704:15;;1629:97;:::o;33755:112:5:-;11360:3;;33815:7;;-1:-1:-1;;;;;11360:3:5;11352:15;;11351:49;;-1:-1:-1;11391:3:5;;11371:25;;-1:-1:-1;;;;;11391:3:5;11371:11;:25::i;:::-;:28;11351:49;11348:101;;;11414:35;11082:1;11414:19;:35::i;:::-;;11348:101;11484:3;;;;;;;;;-1:-1:-1;;;;;11484:3:5;-1:-1:-1;;;;;11484:14:5;;:16;;;;;-1:-1:-1;;;11484:16:5;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11484:16:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11484:16:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11484:16:5;11471:8;;-1:-1:-1;;;;;11471:8:5;;;11463:37;;;11460:92;;11535:3;;;;;;;;;-1:-1:-1;;;;;11535:3:5;-1:-1:-1;;;;;11535:14:5;;:16;;;;;-1:-1:-1;;;11535:16:5;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11535:16:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11535:16:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11535:16:5;11514:8;:38;;-1:-1:-1;;;;;;11514:38:5;-1:-1:-1;;;;;11514:38:5;;;;;;;;;11460:92;33840:8;;;;;;;;;-1:-1:-1;;;;;33840:8:5;-1:-1:-1;;;;;33840:18:5;;:20;;;;;-1:-1:-1;;;33840:20:5;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;33840:20:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;33840:20:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;33840:20:5;;-1:-1:-1;33755:112:5;:::o;2198:201:15:-;2256:6;2264:7;2273;2282:4;2288;2294;2300:7;2342:32;2354:19;;2342:11;:32::i;:::-;-1:-1:-1;;;;;2326:62:15;;2389:2;2326:66;;;;;-1:-1:-1;;;2326:66:15;;;;;;;-1:-1:-1;;;;;2326:66:15;-1:-1:-1;;;;;2326:66:15;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2326:66:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2326:66:15;;;;;;39:16:-1;36:1;17:17;2:54;101:4;2326:66:15;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:3;5:12;;2:2;;;30:1;27;20:12;2:2;2326:66:15;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;218:10;;268:11;251:29;;293:43;;;290:58;-1:-1;239:118;236:2;;;370:1;367;360:12;236:2;-1:-1;;2326:66:15;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2326:66:15;;-1:-1:-1;2326:66:15;;-1:-1:-1;2326:66:15;-1:-1:-1;2326:66:15;-1:-1:-1;2326:66:15;;-1:-1:-1;2326:66:15;-1:-1:-1;;;2198:201:15;;;;;;;;;:::o;11831:2174:16:-;11936:4;11942;12289:22;12698:20;13094:23;13278:14;13302;13606:19;1894:3;12004:6;:13;:27;;12000:88;;;12047:30;;;-1:-1:-1;;;;;12047:30:16;;;;;;;;;;;;;;;;;;;;;;;;;;;12000:88;1942:2;12190:6;12197:1;12190:9;;;;;;;;;;;;;;-1:-1:-1;;;12190:9:16;;;;;;12185:15;:33;12181:98;;12234:34;;;-1:-1:-1;;;;;12234:34:16;;;;;;;;;;;;;;;;;;;;;;;;;;;12181:98;12314:25;;;1942:2;12314:25;;;;;;;;;;;;;17:15:-1;;105:10;12314:25:16;88:34:-1;136:17;;-1:-1;12314:25:16;12289:50;;12362;12372:6;12380:1;1942:2;12399:9;12410:1;12362:9;:50::i;:::-;12568:44;;12350:62;;-1:-1:-1;2034:49:16;;12568:6;;12575:36;;12568:44;;;;;;;;;;;-1:-1:-1;;;12568:44:16;;-1:-1:-1;;;12568:44:16;-1:-1:-1;;;12563:50:16;;2456:3;12502:6;1942:2;1990:1;12509:32;12502:40;;;;;;;;;;;;;;-1:-1:-1;;;12502:40:16;;;;;;12497:46;:63;:116;:132;12493:195;;12645:32;;;-1:-1:-1;;;;;12645:32:16;;;;;;;;;;;;;;;;;;;;;;;;;;;12493:195;12721:23;;;2034:49;12721:23;;;;;;;;;;;;;17:15:-1;;105:10;12721:23:16;88:34:-1;136:17;;-1:-1;;12698:46:16;-1:-1:-1;12764:81:16;12774:6;12782:36;2034:49;12698:46;12843:1;12764:9;:81::i;:::-;12754:91;;12943:48;12960:7;12969:9;12980:10;12943:16;:48::i;:::-;12942:49;12938:107;;;13007:27;;;-1:-1:-1;;;;;13007:27:16;;;;;;;;;;;;;;;;;;;;;;;;;;;12938:107;13120:13;;;13130:2;13120:13;;;;;;;;;;;;;17:15:-1;;105:10;13120:13:16;88:34:-1;136:17;;-1:-1;13120:13:16;13094:39;;13226:41;13236:7;13245:2;13249;13253:10;13265:1;13226:9;:41::i;:::-;13213:54;;13351:44;13370:10;13383:11;13351;:44::i;:::-;13326:69;;-1:-1:-1;13326:69:16;-1:-1:-1;13469:10:16;;13465:63;;;13495:22;;;-1:-1:-1;;;;;13495:22:16;;;;;;;;;;;;;;;;;;;;;;;;;;;13465:63;13628:29;;;2186:2;13628:29;;;;;;;;;;;;;17:15:-1;;105:10;13628:29:16;88:34:-1;136:17;;-1:-1;;13606:51:16;-1:-1:-1;13676:65:16;13686:7;2310:33;2186:2;13606:51;13739:1;13676:9;:65::i;:::-;13667:74;;13832:21;13846:6;13832:13;:21::i;:::-;13822:32;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;13822:32:16;;;;;;;;;;;;;;;;13756:98;;;13783:33;13807:7;13790:25;;;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;13790:25:16;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;13790:25:16;;;13783:33;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;13783::16;;;;;;;-1:-1:-1;263:2;;-1:-1;;13783:33:16;;;;-1:-1:-1;13783:33:16;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13783:33:16;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13783:33:16;13766:51;;;13783:33;13766:51;;;;;;;;;26:21:-1;;;22:32;;6:49;;13766:51:16;;;;;;;13756:62;;13766:51;;;;13756:62;;;;;13766:51;13756:62;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;13756:62:16;;;;;;;;;;;;;;;;:98;;;;;13752:163;;;13870:34;;;-1:-1:-1;;;;;13870:34:16;;;;;;;;;;;;;;;;;;;;;;;;;;;13752:163;13930:34;13944:10;13956:7;13930:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;13930:34:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13930:34:16;;;;;;;;;;;;;;;;;;;;;;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;13930:34:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13982:4:16;;13988:9;;-1:-1:-1;11831:2174:16;-1:-1:-1;;;;;;;;;11831:2174:16:o;6793:860::-;6849:6;6868:12;7067:23;7256:25;;:::i;:::-;6900:5;6883:23;;;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;6883:23:16;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;6883:23:16;;;:30;6868:45;;7015:1;7005:7;:11;:28;;;;;7031:2;7020:7;:13;;7005:28;6997:59;;;;;;;-1:-1:-1;;;;;6997:59:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;7093:12;;;7103:1;7093:12;;;;;;;;;;;;;17:15:-1;;105:10;7093:12:16;88:34:-1;136:17;;-1:-1;7093:12:16;7067:38;;7115:55;7142:5;7125:23;;;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;7125:23:16;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;7125:23:16;;;7150:1;7153;7156:10;7168:1;7115:9;:55::i;:::-;-1:-1:-1;2589:22:16;;;;;;;;;;;;;;;;7188:21;;2589:22;;7198:10;;2589:22;;7188:21;;;;;2589:22;7188:21;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;7188:21:16;;;;;;;;;;;;;;;;:37;;;;7180:65;;;;;;;-1:-1:-1;;;;;7180:65:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;7284:15;:5;:13;:15::i;:::-;7256:43;;7309:25;7320:13;:11;;;;;;;;;;;;;;;;;;;:13::i;:::-;7309:4;;:25;:10;:25;:::i;:::-;;7443:4;:9;;;7433:19;;7462:25;7473:13;:11;;;;;;;;;;;;;;;;;;;:13::i;:::-;7462:4;;:25;:10;:25;:::i;:::-;-1:-1:-1;7505:9:16;;-1:-1:-1;;7518:11:16;;7505:24;7497:52;;;;;-1:-1:-1;;;;;7497:52:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;7631:15;:4;:13;:15::i;:::-;7624:22;6793:860;-1:-1:-1;;;;;6793:860:16:o;1899:137:13:-;1972:4;1995:34;2015:9;2026:2;1995:19;:34::i;:::-;1988:41;1899:137;-1:-1:-1;;1899:137:13:o;3653:191:15:-;3760:32;3772:19;;3760:11;:32::i;:::-;-1:-1:-1;;;;;3744:65:15;;3810:6;3818:5;3825:11;3744:93;;;;;-1:-1:-1;;;3744:93:15;;;;;;;-1:-1:-1;;;;;3744:93:15;-1:-1:-1;;;;;3744:93:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3744:93:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3744:93:15;;;;3653:191;;;:::o;1796:158:8:-;1860:4;1895:28;1907:15;;1895:11;:28::i;:::-;-1:-1:-1;;;;;1883:54:8;;1938:8;1883:64;;;;;-1:-1:-1;;;1883:64:8;;;;;;;-1:-1:-1;;;;;1883:64:8;-1:-1:-1;;;;;1883:64:8;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1883:64:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1883:64:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1883:64:8;;1796:158;-1:-1:-1;;1796:158:8:o;9751:1753:16:-;10376:30;;:::i;:::-;10485;;:::i;:::-;10639:6;10755:25;10786:14;10981:27;;:::i;:::-;11125:15;9893:10;:17;9914:1;9893:22;9889:1609;;;9979:39;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;9979:39:16;;;;;;;;9889:1609;;;10166:4;-1:-1:-1;;;;;10158:21:16;;10138:10;:17;10111:24;;;;;;;;;;;;;;;-1:-1:-1;;;;;10111:24:16;;;:17;:24::i;:::-;:44;:68;10107:1391;;;10243:43;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;10243:43:16;;;;;;;;10107:1391;;;10409:62;:60;;;;;;;;;;;;;;;;;;;;;;;;:62::i;:::-;10376:95;;10518:32;:30;;;;;;;;;;;;;;;;;;;:32::i;:::-;10485:65;;10648:1;10639:10;;10634:854;10655:10;:17;10651:1;:21;10634:854;;;10811:28;10825:10;10836:1;10825:13;;;;;;;;;;;;;;;;;;10811;:28::i;:::-;10754:85;;;;;;;;;10865:9;10857:45;;;;;;;-1:-1:-1;;;;;10857:45:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;11011:21;:11;:19;:21::i;:::-;11143:86;;;;;;;;;;;;-1:-1:-1;;;;;11143:86:16;;;;10981:51;;-1:-1:-1;11143:86:16;;11165:52;11207:9;11165:34;:24;:9;10981:51;11165:24;:16;:24;:::i;:::-;:32;:34::i;:::-;:41;:52;:41;:52;:::i;:::-;11219:9;11143:14;:86::i;:::-;11125:104;;11354:10;11365:1;11354:13;;;;;;;;;;;;;;;;;;;;;11329:22;;;;:13;:22;;;;;;;:38;;-1:-1:-1;;;;;;11329:38:16;-1:-1:-1;;;;;11329:38:16;;;;;;;;;11439:34;11455:17;:6;:15;:17::i;:::-;11439:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;11439:34:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10674:3;;;;;10634:854;;;9751:1753;;;;;;;;;:::o;1350:362:7:-;-1:-1:-1;;;;;1476:20:7;;;1472:189;;;1512:21;;-1:-1:-1;;;;;1512:12:7;;;:21;;;;;1525:7;;1512:21;;;;1525:7;1512:12;:21;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1512:21:7;1472:189;;;1578:6;-1:-1:-1;;;;;1572:22:7;;1595:3;1600:7;1572:36;;;;;-1:-1:-1;;;1572:36:7;;;;;;;-1:-1:-1;;;;;1572:36:7;-1:-1:-1;;;;;1572:36:7;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1572:36:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1572:36:7;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1572:36:7;1564:86;;;;;;;-1:-1:-1;;;;;1564:86:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1676:29;;;-1:-1:-1;;;;;1676:29:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;1350:362;;;:::o;7824:1655:16:-;7885:31;8492:30;;:::i;:::-;8601;;:::i;:::-;8755:6;8879:20;8966:24;;:::i;:::-;9102:15;7919:20;:18;:20::i;:::-;7885:54;;8004:14;:21;8029:1;8004:26;8000:1473;;;8094:32;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;8094:32:16;;;;;;;;8000:1473;;;8282:4;-1:-1:-1;;;;;8274:21:16;;8250:14;:21;8223:24;;;;;;;;;;;;;;;-1:-1:-1;;;;;8223:24:16;;;:17;:24::i;:::-;:48;:72;8219:1254;;;8359:43;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;8359:43:16;;;;;;;;8219:1254;;;8525:62;:60;;;;;;;;;;;;;;;;;;;;;;;;:62::i;:::-;8492:95;;8634:32;:30;;;;;;;;;;;;;;;;;;;:32::i;:::-;8601:65;;8764:1;8755:10;;8750:713;8771:14;:21;8767:1;:25;8750:713;;;8915:32;8929:14;8944:1;8929:17;;;;;;;;;8915:32;8878:69;;;;;;;;8993:16;:6;:14;:16::i;:::-;9120:83;;;;;;;;;;;;-1:-1:-1;;;;;9120:83:16;;;;8966:43;;-1:-1:-1;9120:83:16;;9142:49;9181:9;9142:31;:21;:9;8966:43;9142:21;:16;:21;:::i;:49::-;9193:9;9120:14;:83::i;:::-;9102:101;;9328:14;9343:1;9328:17;;;;;;;;;;;;;;;;;;;;;9303:22;;;;:13;:22;;;;;;;:42;;-1:-1:-1;;;;;;9303:42:16;-1:-1:-1;;;;;9303:42:16;;;;;;;;;9417:31;9433:14;:3;:12;:14::i;:::-;9417:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;9417:31:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8794:3;;;;;8750:713;;;7824:1655;;;;;;;;:::o;33991:132:5:-;11360:3;;-1:-1:-1;;;;;11360:3:5;11352:15;;11351:49;;-1:-1:-1;11391:3:5;;11371:25;;-1:-1:-1;;;;;11391:3:5;11371:11;:25::i;:::-;:28;11351:49;11348:101;;;11414:35;11082:1;11414:19;:35::i;:::-;;11348:101;11484:3;;;;;;;;;-1:-1:-1;;;;;11484:3:5;-1:-1:-1;;;;;11484:14:5;;:16;;;;;-1:-1:-1;;;11484:16:5;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11484:16:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11484:16:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11484:16:5;11471:8;;-1:-1:-1;;;;;11471:8:5;;;11463:37;;;11460:92;;11535:3;;;;;;;;;-1:-1:-1;;;;;11535:3:5;-1:-1:-1;;;;;11535:14:5;;:16;;;;;-1:-1:-1;;;11535:16:5;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11535:16:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11535:16:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11535:16:5;11514:8;:38;;-1:-1:-1;;;;;;11514:38:5;-1:-1:-1;;;;;11514:38:5;;;;;;;;;11460:92;34080:8;;:36;;;;;;;;;;;;;;-1:-1:-1;;;;;34080:8:5;;;;:26;;:36;;;;;:8;;:36;;;;;;;;:8;;:36;;;5:2:-1;;;;30:1;27;20:12;5:2;34080:36:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;34080:36:5;;;;33991:132;:::o;34287:146::-;34399:18;;34376:51::o;11676:183::-;11739:4;11759:21;:19;:21::i;1748:152:11:-;1811:7;1852:4;;:24;;;;;;;;;;;;;;-1:-1:-1;;;;;1852:4:11;;;;:13;;:24;;;;;;;;;;;;;;;1811:7;1852:4;:24;;;5:2:-1;;;;30:1;27;20:12;5:2;1852:24:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1852:24:11;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1852:24:11;1837:56;;;;;;;;;;;;;;-1:-1:-1;;;;;1837:45:11;;;;;;:56;;;;;1852:24;;1837:56;;;;;;;;;:45;:56;;;5:2:-1;;;;30:1;27;20:12;49114:666:5;49223:5;49240:14;49471:6;49505;49266:8;49257:6;:17;49240:34;;49334:9;49321:2;:9;:22;;49313:31;;;;;;;;-1:-1:-1;;49480:2:5;:15;;;;49514:13;;49538:216;49568:6;49555:10;49550:2;:15;:24;49545:1;:30;49538:216;;;49635:12;;;49629:19;49672:10;;;49665:23;49720:2;49715:7;;;;49736;49538:216;;;-1:-1:-1;49771:2:5;;49114:666;-1:-1:-1;;;;;;;49114:666:5:o;14262:372:16:-;14357:4;14373:14;14397:16;14515:40;14526:16;14533:8;14526:16;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;14526:16:16;;;;;;;-1:-1:-1;263:2;;-1:-1;;14526:16:16;;;;-1:-1:-1;14526:16:16;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14526:16:16;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14526:16:16;14544:10;14515;:40::i;:::-;14491:64;-1:-1:-1;14491:64:16;-1:-1:-1;14491:64:16;14572:55;;;;;14615:10;14605:21;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;;;;365:33;;14605:21:16;;;;;;;;;;-1:-1:-1;;;;;14587:40:16;;;;;;;;-1:-1:-1;;;14572:55:16;14565:62;14262:372;-1:-1:-1;;;;;;14262:372:16:o;14864:1458::-;14945:4;14951;15180:25;;:::i;:::-;15239:34;;:::i;:::-;15299;;:::i;:::-;15360:8;15490:10;15623:9;15762;15884:11;16012;16140:14;15074:11;15057:29;;;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;15057:29:16;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;15057:29:16;;;:36;15097:2;15057:42;15050:50;;;;;;15208:21;:11;:19;:21::i;:::-;15180:49;;15276:13;:11;;;;;;;;;;;;;;;;;;;:13::i;:::-;15239:50;;15336:13;:11;;;;;;;;;;;;;;;;;;;:13::i;:::-;15299:50;-1:-1:-1;15371:57:16;15391:36;:25;:4;15299:50;15391:25;:10;:25;:::i;:::-;:34;:36::i;:::-;15371:19;:57::i;:::-;15360:68;;15452:1;15446:3;:7;:19;;;;;15463:2;15457:3;:8;15446:19;15438:41;;;;;;;-1:-1:-1;;;;;15438:41:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;15503:52;15518:36;:25;:4;15529:13;15518:25;:10;:25;:::i;:36::-;15503:14;:52::i;:::-;15490:65;;;;15581:1;15573:5;:9;:23;;;;;15594:2;15586:5;:10;15573:23;15565:47;;;;;;;-1:-1:-1;;;;;15565:47:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;15635:57;15655:36;:25;:4;15666:13;15655:25;:10;:25;:::i;15635:57::-;15623:69;;15717:4;15710;:11;:26;;;;;15732:4;15725;:11;15710:26;15702:49;;;;;;;-1:-1:-1;;;;;15702:49:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;15774:57;15794:36;:25;:4;15805:13;15794:25;:10;:25;:::i;15774:57::-;15762:69;-1:-1:-1;15856:2:16;15849:9;;15841:32;;;;;-1:-1:-1;;;;;15841:32:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;15898:57;15918:36;:25;:4;15929:13;15918:25;:10;:25;:::i;15898:57::-;15884:71;-1:-1:-1;15982:2:16;15973:11;;15965:36;;;;;-1:-1:-1;;;;;15965:36:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;16026:57;16046:36;:25;:4;16057:13;16046:25;:10;:25;:::i;16026:57::-;16012:71;-1:-1:-1;16110:2:16;16101:11;;16093:36;;;;;-1:-1:-1;;;;;16093:36:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16165:8:16;16157:17;;16186:7;16177:17;;16157:37;16204:7;16197:15;;16157:55;16223:7;16215:16;;16157:74;16244:7;16234:18;;16157:95;:104;;16280:23;;;;-1:-1:-1;16157:104:16;-1:-1:-1;14864:1458:16;;;;;;;;;;;;;;:::o;676:1856:2:-;738:5;755:7;772;789;806;823:11;862:19;911:10;1337;1383:6;837:8;:15;823:29;;894:6;884:17;;;;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;884:17:2;;862:39;;1032:1;1023:6;:10;:30;;;;-1:-1:-1;1047:1:2;1038:6;:10;:15;1023:30;1015:66;;;;;;;-1:-1:-1;;;;;1015:66:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;1151:14;;;;;;;;;;;;;;;;1125:20;;:8;;-1:-1:-1;;1134:10:2;;;1125:20;;;;;;;;;;;-1:-1:-1;;;1125:20:2;;-1:-1:-1;;;1125:20:2;1108:38;;;;;;-1:-1:-1;;;;;1108:38:2;;-1:-1:-1;;;;;1108:38:2;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;1108:38:2;;;1098:49;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;1098:49:2;;;;;;;;;;;;;;;;:67;;;;1094:232;;;1193:1;1183:11;;;;1094:232;;;1270:14;;;;;;;;;;;;;;;;1244:20;;:8;;-1:-1:-1;;1253:10:2;;;1244:20;;;;;;;;;;;-1:-1:-1;;;1244:20:2;;-1:-1:-1;;;1244:20:2;1227:38;;;;;;-1:-1:-1;;;;;1227:38:2;;-1:-1:-1;;;;;1227:38:2;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;1227:38:2;;;1217:49;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;1217:49:2;;;;;;;;;;;;;;;;:67;;;;1213:113;;;1312:1;1302:11;;;;1213:113;-1:-1:-1;;1350:11:2;;;;:16;1392:1;1378:455;1399:5;1395:1;:9;1378:455;;;1428:18;;;;;;;;;;;-1:-1:-1;1428:18:2;;;;-1:-1:-1;;;;;;;;;;;1428:18:2;;;;;;;-1:-1:-1;;;;;;;;;;;1428:18:2;;;;-1:-1:-1;;;;;;;;;;;1428:18:2;;;;1452:13;;1461:3;;;;1452:8;;:13;;;;;;;;;;;-1:-1:-1;;;1452:13:2;;-1:-1:-1;;;1452:13:2;-1:-1:-1;;;1447:19:2;;1428:39;;;;;;;;;;;;;;;-1:-1:-1;;;1428:39:2;;-1:-1:-1;;;1428:39:2;1423:44;;1488:18;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1488:18:2;;;;-1:-1:-1;;;;;;;;;;;1488:18:2;;;;-1:-1:-1;;;;;;;;;;;1488:18:2;;;1512:8;1521:3;;;;;;1512:13;;;;;;;;;;;;;;;-1:-1:-1;;;1512:13:2;;-1:-1:-1;;;1512:13:2;-1:-1:-1;;;1507:19:2;;1488:39;;;;;;;;;;;;;;;-1:-1:-1;;;1488:39:2;;-1:-1:-1;;;1488:39:2;1483:44;;1548:18;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1548:18:2;;;;-1:-1:-1;;;;;;;;;;;1548:18:2;;;;-1:-1:-1;;;;;;;;;;;1548:18:2;;;1572:8;1581:3;;;;;;1572:13;;;;;;;;;;;;;;;-1:-1:-1;;;1572:13:2;;-1:-1:-1;;;1572:13:2;-1:-1:-1;;;1567:19:2;;1548:39;;;;;;;;;;;;;;;-1:-1:-1;;;1548:39:2;;-1:-1:-1;;;1548:39:2;1543:44;;1608:18;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1608:18:2;;;;-1:-1:-1;;;;;;;;;;;1608:18:2;;;;-1:-1:-1;;;;;;;;;;;1608:18:2;;;1632:8;1641:3;;;;;;1632:13;;;;;;;;;;;;;;;-1:-1:-1;;;1632:13:2;;-1:-1:-1;;;1632:13:2;-1:-1:-1;;;1627:19:2;;1608:39;;;;;;;;;;;;;;1664:15;;-1:-1:-1;;;1608:39:2;;;;;;;;-1:-1:-1;1671:7:2;;;;-1:-1:-1;;;;;;1683:7:2;;;1699:1;1683:7;1693;;;;;1683:17;1682:25;;1664:6;;1671:7;1664:15;;;;;;;;;;:43;-1:-1:-1;;;;;1664:43:2;;;;;;;;-1:-1:-1;1723:15:2;;1730:7;;;;1742;-1:-1:-1;;;;;;1742:7:2;;;;;;;1752;;;;;1742:17;1741:25;;1723:6;;1730:7;1723:15;;;;;;;;;;:43;-1:-1:-1;;;;;1723:43:2;;;;;;;;-1:-1:-1;1782:15:2;;1789:7;;;;-1:-1:-1;;;;;;1801:7:2;;;;;:12;;1800:20;;1782:15;;1789:7;1782:15;;;;;;;;;;:38;-1:-1:-1;;;;;1782:38:2;;;;;;;;;1378:455;;;1857:5;1848:6;:14;1866:1;1848:19;1844:560;;;1890:18;;;;;;;;;;;-1:-1:-1;1890:18:2;;;;-1:-1:-1;;;;;;;;;;;1890:18:2;;;;;;;-1:-1:-1;;;;;;;;;;;1890:18:2;;;;-1:-1:-1;;;;;;;;;;;1890:18:2;;;;1914:13;;1923:3;;;;1914:8;;:13;;;;;;;;;;;-1:-1:-1;;;1914:13:2;;-1:-1:-1;;;1914:13:2;-1:-1:-1;;;1909:19:2;;1890:39;;;;;;;;;;;;;;;-1:-1:-1;;;1890:39:2;;-1:-1:-1;;;1890:39:2;1885:44;;1950:18;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1950:18:2;;;;-1:-1:-1;;;;;;;;;;;1950:18:2;;;;-1:-1:-1;;;;;;;;;;;1950:18:2;;;1974:8;1983:3;;;;;;1974:13;;;;;;;;;;;;;;;-1:-1:-1;;;1974:13:2;;-1:-1:-1;;;1974:13:2;-1:-1:-1;;;1969:19:2;;1950:39;;;;;;;;;;;;;;2005:15;;-1:-1:-1;;;1950:39:2;;;;;;;;-1:-1:-1;2012:7:2;;;;-1:-1:-1;;;;;;2024:7:2;;;2040:1;2024:7;2034;;;;;2024:17;2023:25;;2005:6;;2012:7;2005:15;;;;;;;;;;:43;-1:-1:-1;;;;;2005:43:2;;;;;;;;;1844:560;;;2080:5;2071:6;:14;2089:1;2071:19;2067:337;;;2113:18;;;;;;;;;;;-1:-1:-1;2113:18:2;;;;-1:-1:-1;;;;;;;;;;;2113:18:2;;;;;;;-1:-1:-1;;;;;;;;;;;2113:18:2;;;;-1:-1:-1;;;;;;;;;;;2113:18:2;;;;2137:13;;2146:3;;;;2137:8;;:13;;;;;;;;;;;-1:-1:-1;;;2137:13:2;;-1:-1:-1;;;2137:13:2;-1:-1:-1;;;2132:19:2;;2113:39;;;;;;;;;;;;;;;-1:-1:-1;;;2113:39:2;;-1:-1:-1;;;2113:39:2;2108:44;;2173:18;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2173:18:2;;;;-1:-1:-1;;;;;;;;;;;2173:18:2;;;;-1:-1:-1;;;;;;;;;;;2173:18:2;;;2197:8;2206:3;;;;;;2197:13;;;;;;;;;;;;;;;-1:-1:-1;;;2197:13:2;;-1:-1:-1;;;2197:13:2;-1:-1:-1;;;2192:19:2;;2173:39;;;;;;;;;;;;;;;-1:-1:-1;;;2173:39:2;;-1:-1:-1;;;2173:39:2;2168:44;;2233:18;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2233:18:2;;;;-1:-1:-1;;;;;;;;;;;2233:18:2;;;;-1:-1:-1;;;;;;;;;;;2233:18:2;;;2257:8;2266:3;;;;;;2257:13;;;;;;;;;;;;;;;-1:-1:-1;;;2257:13:2;;-1:-1:-1;;;2257:13:2;-1:-1:-1;;;2252:19:2;;2233:39;;;;;;;;;;;;;;2289:15;;-1:-1:-1;;;2233:39:2;;;;;;;;-1:-1:-1;2296:7:2;;;;-1:-1:-1;;;;;;2308:7:2;;;2324:1;2308:7;2318;;;;;2308:17;2307:25;;2289:6;;2296:7;2289:15;;;;;;;;;;:43;-1:-1:-1;;;;;2289:43:2;;;;;;;;-1:-1:-1;2348:15:2;;2355:7;;;;2367;-1:-1:-1;;;;;;2367:7:2;;;;;;;2377;;;;;2367:17;2366:25;;2348:6;;2355:7;2348:15;;;;;;;;;;:43;-1:-1:-1;;;;;2348:43:2;;;;;;;;;2067:337;-1:-1:-1;;2471:21:2;;2478:6;676:1856;-1:-1:-1;;;;;;;676:1856:2:o;3434:210:6:-;3494:5;;:::i;:::-;-1:-1:-1;3607:30:6;;;;;;;;;3613:18;;3607:30;;3576:4;3566:15;;;3607:30;;;;;;3434:210;;;;;:::o;21483:141::-;21561:18;;:::i;:::-;21591:26;21597:4;21603:6;21611:5;21591;:26::i;:::-;;21483:141;;;;:::o;15131:626::-;15209:5;;:::i;:::-;15249:11;;15237:9;;15308:12;;;;15237:23;15233:65;;;15283:4;15276:11;;;;15233:65;-1:-1:-1;;15347:11:6;;15335:9;;15323;;;;;15410:11;;;;15323:21;;:35;;;;;15381:4;;15399:22;;15395:264;;-1:-1:-1;15478:13:6;;15543:4;15531:17;;15525:24;15606:28;;;15578:26;;;15575:60;15446:203;15673:5;15669:60;;;15707:11;;15694:24;;;;;15669:60;15746:4;15739:11;;15131:626;;;;;;;:::o;5778:265::-;5838:6;5863:17;5914:11;5894:4;:9;;;5883:21;;;;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;5883:21:6;;5863:41;;5965:2;5960:3;5956:12;5946:22;;5980:36;5987:6;5995:4;:9;;;6006:4;:9;;;5980:6;:36::i;2243:6116:13:-;2334:4;2380:9;2334:4;;;;;;;;;;;3189:2782;3210:7;:14;3206:1;:18;3189:2782;;;3250:10;;1274:8;;3250:7;;3258:1;;3250:10;;;;;;;;;;;-1:-1:-1;;;3250:10:13;;-1:-1:-1;;;3250:10:13;-1:-1:-1;;;;;3250:25:13;;;;3249:58;;;;-1:-1:-1;3281:10:13;;1347:8;;3281:7;;3289:1;;3281:10;;;;;;;;;;;-1:-1:-1;;;3281:10:13;;-1:-1:-1;;;3281:10:13;-1:-1:-1;;;;;3281:25:13;;;;3249:58;:68;;;;;3313:3;3312:4;3249:68;3245:2716;;;3418:8;3414:621;;;3564:15;:7;3576:2;3564:15;:11;:15;:::i;:::-;3628:10;;3554:25;;-1:-1:-1;3611:49:13;;1279:2;;3628:7;;3636:1;;3628:10;;;;;;;;;;;-1:-1:-1;;;3628:10:13;;-1:-1:-1;;;3628:10:13;-1:-1:-1;;;3623:16:13;;:36;3611:7;:11;;:49;;;;:::i;:::-;3601:59;-1:-1:-1;3682:11:13;;;;;3414:621;;;3831:4;;-1:-1:-1;3929:12:13;:4;3938:2;3929:12;:8;:12;:::i;:::-;3984:10;;3922:19;;-1:-1:-1;3970:46:13;;1279:2;;3984:7;;3992:1;;3984:10;;;;;;;;;;;-1:-1:-1;;;3984:10:13;;-1:-1:-1;;;3984:10:13;-1:-1:-1;;;3979:16:13;;:36;3970:4;:8;;:46;;;;:::i;:::-;3963:53;;3414:621;3245:2716;;;4060:10;;1274:8;;4060:7;;4068:1;;4060:10;;;;;;;;;;;-1:-1:-1;;;4060:10:13;;-1:-1:-1;;;4060:10:13;-1:-1:-1;;;;;4060:25:13;;;;4059:58;;;;-1:-1:-1;4091:10:13;;1347:8;;4091:7;;4099:1;;4091:10;;;;;;;;;;;-1:-1:-1;;;4091:10:13;;-1:-1:-1;;;4091:10:13;-1:-1:-1;;;;;4091:25:13;;;;4059:58;:67;;;;;4122:3;4059:67;4055:1906;;;4239:15;:7;4251:2;4239:15;:11;:15;:::i;:::-;4299:10;;4229:25;;-1:-1:-1;4282:49:13;;1279:2;;4299:7;;4307:1;;4299:10;;;;;;;;;;;-1:-1:-1;;;4299:10:13;;-1:-1:-1;;;4299:10:13;-1:-1:-1;;;4294:16:13;;:36;4282:7;:11;;:49;;;;:::i;:::-;4272:59;;4055:1906;;;4356:10;;1201:8;;4356:7;;4364:1;;4356:10;;;;;;;;;;;-1:-1:-1;;;4356:10:13;;-1:-1:-1;;;4356:10:13;-1:-1:-1;;;;;4356:24:13;;;4352:1609;;;4481:8;4473:42;;;;;;;-1:-1:-1;;;;;4473:42:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;4608:9;;4600:45;;;;;-1:-1:-1;;;;;4600:45:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;4744:4;;4736:39;;;;;-1:-1:-1;;;;;4736:39:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;4804:4;4793:15;;4352:1609;;;4833:10;;1129:8;;4833:7;;4841:1;;4833:10;;;;;;;;;;;-1:-1:-1;;;4833:10:13;;-1:-1:-1;;;4833:10:13;-1:-1:-1;;;;;4833:25:13;;;4829:1132;;;4960:6;;4952:30;;;;;-1:-1:-1;;;;;4952:30:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;5008:5;;5000:28;;;;;-1:-1:-1;;;;;5000:28:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;5065:1;5054:12;;:17;;5046:60;;;;;-1:-1:-1;;;;;5046:60:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;5132:4;5124:12;;4829:1132;;;5161:10;;1056:8;;5161:7;;5169:1;;5161:10;;;;;;;;;;;-1:-1:-1;;;5161:10:13;;-1:-1:-1;;;5161:10:13;-1:-1:-1;;;;;5161:25:13;;;5157:804;;;5288:5;;5280:29;;;;;-1:-1:-1;;;;;5280:29:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;5335:6;;5327:29;;;;;-1:-1:-1;;;;;5327:29:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;5393:1;5382:12;;:17;;5374:60;;;;;-1:-1:-1;;;;;5374:60:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;5459:4;5452:11;;5157:804;;;5489:10;;1417:8;;5489:7;;5497:1;;5489:10;;;;;;;;;;;-1:-1:-1;;;5489:10:13;;-1:-1:-1;;;5489:10:13;-1:-1:-1;;;;;5489:22:13;;;5488:62;;;-1:-1:-1;5517:10:13;;1497:9;;5517:7;;5525:1;;5517:10;;;;;;;;;;;-1:-1:-1;;;5517:10:13;;-1:-1:-1;;;5517:10:13;-1:-1:-1;;;;;5517:32:13;;;5488:62;5484:477;;;5651:8;5643:42;;;;;;;-1:-1:-1;;;;;5643:42:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;5792:4;;5784:42;;;;;-1:-1:-1;;;;;5784:42:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;5850:4;5844:10;;5883:1;5872:12;;5484:477;;;5923:23;;;-1:-1:-1;;;;;5923:23:13;;;;;;;;;;;;;;;;;;;;;;;;;;;5484:477;3226:3;;3189:2782;;;5985:5;:13;;;;5994:4;5985:13;5981:267;;;6105:1;6094:12;;6090:16;;6082:25;;;;;;5981:267;;;6128:3;6124:124;;;6235:1;6224:12;;6220:16;;6212:25;;;;;;6262:5;6258:886;;;6309:25;;;6305:600;;6553:2;6526:24;;;:29;6518:55;;;;;-1:-1:-1;;;;;6518:55:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;6619:14;6609:7;:24;6602:2;:32;6594:40;;;;;;;;;;;6659:4;6652:11;;;;6305:600;6883:7;6866:14;:24;6849:41;;6258:886;;;7106:27;:14;7125:7;7106:27;:18;:27;:::i;:::-;7089:44;;6258:886;7158:27;;;7154:1177;;7426:2;7414:14;;7406:61;;;;;-1:-1:-1;;;;;7406:61:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7491:27;:4;7500:2;:17;;;7491:27;:8;:27;:::i;:::-;7484:34;-1:-1:-1;7539:17:13;7484:34;7548:7;7539:17;:8;:17;:::i;:::-;7532:24;-1:-1:-1;7693:2:13;7664:26;;;:31;7656:57;;;;;-1:-1:-1;;;;;7656:57:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;7737:44;7770:9;7753:14;:26;7746:2;:34;7737:4;:8;;:44;;;;:::i;:::-;7730:51;;7154:1177;;;7939:27;;;;;8000:2;7988:14;;7980:61;;;;;-1:-1:-1;;;;;7980:61:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8076:9;8069:2;:17;8058:28;;;;;;;;;;-1:-1:-1;8185:2:13;8168:19;;8160:66;;;;;-1:-1:-1;;;;;8160:66:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8250:32;8266:14;8259:2;:22;8250:4;:8;;:32;;;;:::i;:::-;8243:39;-1:-1:-1;8303:17:13;8243:39;8312:7;8303:17;:8;:17;:::i;:::-;8296:24;;7154:1177;8348:4;8341:11;;2243:6116;;;;;;;;;;;;;;;;;:::o;14181:134:5:-;11360:3;;14257:4;;-1:-1:-1;;;;;11360:3:5;11352:15;;11351:49;;-1:-1:-1;11391:3:5;;11371:25;;-1:-1:-1;;;;;11391:3:5;11371:11;:25::i;:::-;:28;11351:49;11348:101;;;11414:35;11082:1;11414:19;:35::i;:::-;;11348:101;11484:3;;;;;;;;;-1:-1:-1;;;;;11484:3:5;-1:-1:-1;;;;;11484:14:5;;:16;;;;;-1:-1:-1;;;11484:16:5;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11484:16:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11484:16:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11484:16:5;11471:8;;-1:-1:-1;;;;;11471:8:5;;;11463:37;;;11460:92;;11535:3;;;;;;;;;-1:-1:-1;;;;;11535:3:5;-1:-1:-1;;;;;11535:14:5;;:16;;;;;-1:-1:-1;;;11535:16:5;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11535:16:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11535:16:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11535:16:5;11514:8;:38;;-1:-1:-1;;;;;;11514:38:5;-1:-1:-1;;;;;11514:38:5;;;;;;;;;11460:92;14279:8;;:29;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14279:8:5;;;;:17;;14297:10;;14279:29;;;;;;;;;;;;;;:8;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;14279:29:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;24539:355:6;24617:6;24642:17;24706:11;24685:5;:10;;;24673:4;:9;;;:22;24662:34;;;;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;24662:34:6;;24642:54;;24757:2;24752:3;24748:12;24738:22;;24771:36;24778:6;24786:4;:9;;;24797:4;:9;;;24771:6;:36::i;:::-;24833:9;;24844:10;;;;24856;;24817:50;;24824:18;;;24844:10;24817:6;:50::i;:::-;-1:-1:-1;24884:3:6;24539:355;-1:-1:-1;;;24539:355:6:o;15517:356:5:-;11360:3;;15617:10;;;;-1:-1:-1;;;;;11360:3:5;11352:15;;11351:49;;-1:-1:-1;11391:3:5;;11371:25;;-1:-1:-1;;;;;11391:3:5;11371:11;:25::i;:::-;:28;11351:49;11348:101;;;11414:35;11082:1;11414:19;:35::i;:::-;;11348:101;11484:3;;;;;;;;;-1:-1:-1;;;;;11484:3:5;-1:-1:-1;;;;;11484:14:5;;:16;;;;;-1:-1:-1;;;11484:16:5;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11484:16:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11484:16:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11484:16:5;11471:8;;-1:-1:-1;;;;;11471:8:5;;;11463:37;;;11460:92;;11535:3;;;;;;;;;-1:-1:-1;;;;;11535:3:5;-1:-1:-1;;;;;11535:14:5;;:16;;;;;-1:-1:-1;;;11535:16:5;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11535:16:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11535:16:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11535:16:5;11514:8;:38;;-1:-1:-1;;;;;;11514:38:5;-1:-1:-1;;;;;11514:38:5;;;;;;;;;11460:92;15651:8;;:39;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15651:8:5;;;;:17;;15669:10;;15681:8;;15651:39;;;;;;;;;;;;:8;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;15651:39:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15651:39:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15651:39:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15651:39:5;;-1:-1:-1;15712:7:5;15722:11;:20;;15712:30;15704:38;;15700:52;;;15751:1;;-1:-1:-1;15744:8:5;;15700:52;15796:8;;:70;;;;;:8;:70;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15796:8:5;;;;:27;;15830:5;;15796:8;15840:10;;15852:3;;15857:8;;15796:70;;;;;;;;;;;;;;;;:8;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;15796:70:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15796:70:5;;;;;;;;;;;;;;;;;;;;;;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;15796:70:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15796:70:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15796:70:5;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15796:70:5;;15517:356;-1:-1:-1;;;;;15517:356:5:o;3219:157:15:-;3272:9;3316:32;3328:19;;3316:11;:32::i;:::-;-1:-1:-1;;;;;3300:67:15;;:69;;;;;-1:-1:-1;;;3300:69:15;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3300:69:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3300:69:15;;;;;;39:16:-1;36:1;17:17;2:54;101:4;3300:69:15;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;3300:69:15;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;224:3;218:10;339:9;333:2;319:12;315:21;297:16;293:44;290:59;268:11;254:12;251:29;239:119;236:2;;;371:1;368;361:12;236:2;-1:-1;3300:69:15;;-1:-1:-1;;;;;3219:157:15;:::o;11864:1749:5:-;11912:4;11987:1;11931:55;11943:42;11931:11;:55::i;:::-;:57;11927:245;;;12013:3;:71;;-1:-1:-1;;;;;;12013:71:5;12041:42;12013:71;;;12098:38;;;;;;;;;;;;;;;;;;;:23;:38::i;:::-;-1:-1:-1;12157:4:5;12150:11;;11927:245;12241:1;12185:55;12197:42;12185:11;:55::i;:::-;:57;12181:254;;;12275:3;:71;;-1:-1:-1;;;;;;12275:71:5;12303:42;12275:71;;;12360:39;;;;;;;;;;;;;;;;;;;:23;:39::i;12181:254::-;12504:1;12448:55;12460:42;12448:11;:55::i;:::-;:57;12444:249;;;12536:3;:71;;-1:-1:-1;;;;;;12536:71:5;12564:42;12536:71;;;12621:36;;;;;;;;;;;;;;;;;;;:23;:36::i;12444:249::-;12762:1;12706:55;12718:42;12706:11;:55::i;:::-;:57;12702:253;;;12796:3;:71;;-1:-1:-1;;;;;;12796:71:5;12824:42;12796:71;;;12881:38;;;;;;;;;;;;;;;;;;;:23;:38::i;12702:253::-;13024:1;12968:55;12980:42;12968:11;:55::i;:::-;:57;12964:201;;;-1:-1:-1;13058:3:5;:71;;-1:-1:-1;;;;;;13058:71:5;13086:42;13058:71;;;;13143:11;;12964:201;13234:1;13178:55;13190:42;13178:11;:55::i;:::-;:57;13174:200;;;-1:-1:-1;13267:3:5;:71;;-1:-1:-1;;;;;;13267:71:5;13295:42;13267:71;;;;13352:11;;13174:200;13443:1;13387:55;13399:42;13387:11;:55::i;:::-;:57;13383:202;;;-1:-1:-1;13478:3:5;:71;;-1:-1:-1;;;;;;13478:71:5;13506:42;13478:71;;;;13563:11;;13383:202;-1:-1:-1;13601:5:5;11864:1749;:::o;51075:1383::-;51138:4;51144:7;51163:9;51182;51201:7;51223:3;:10;51237:2;51223:16;;51219:49;;;51259:5;;-1:-1:-1;51259:5:5;;-1:-1:-1;51251:17:5;;51219:49;-1:-1:-1;;;51480:2:5;51471:12;;51465:19;51517:2;51508:12;;51502:19;51775:2;51766:12;;51760:19;51757:1;51752:28;52318:2;52314:6;;;;52310:29;;;52337:2;52332:7;52310:29;52354:1;:7;;52359:2;52354:7;;:18;;;;;52365:1;:7;;52370:2;52365:7;;52354:18;52350:53;;;52394:5;;-1:-1:-1;52394:5:5;;-1:-1:-1;52386:17:5;;52350:53;52421:30;52437:4;52443:1;52446;52449;52421:15;:30::i;:::-;52414:37;;;;51075:1383;;;;;;;;;:::o;1658:133:13:-;1728:4;1751:33;1771:9;1782:1;1751:19;:33::i;1770:935:10:-;1832:5;1849:13;1892:6;1875:24;;;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;1875:24:10;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;1875:24:10;;;1865:35;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;-1:-1;;263:2;259:12;;;;254:3;250:22;246:30;;;;340:21;;;311:9;;295:26;377:20;;;;365:33;;1865:35:10;;;;;;;;;;;;984:16;;;;;;;;;;;;;;1865:35;;-1:-1:-1;;1914:17:10;;1910:789;;-1:-1:-1;1910:789:10;;-1:-1:-1;1910:789:10;1954:1;1947:8;;;;1910:789;1043:16;;;;;;;;;;;;;;;;1976:18;;1972:727;;;2017:1;2010:8;;;;1972:727;1099:16;;;;;;;;;;;;;;;;2039:15;;2035:664;;;2077:1;2070:8;;;;2035:664;1155:16;;;;;;;;;;;;;;;;2099:15;;2095:604;;;2137:1;2130:8;;;;2095:604;1209:16;;;;;;;;;;;;;;;;2159:13;;2155:544;;;2195:1;2188:8;;;;2155:544;1264:16;;;;;;;;;;;;;;;;2217:14;;2213:486;;;2254:1;2247:8;;;;2213:486;1319:16;;;;;;;;;;;;;;;;2276:14;;2272:427;;;2313:1;2306:8;;;;2272:427;1376:16;;;;;;;;;;;;;;;;2335;;2331:368;;;2374:1;2367:8;;;;2331:368;1436:16;;;;;;;;;;;;;;;;2396:19;;2392:307;;;2438:1;2431:8;;;;2392:307;1494:16;;;;;;;;;;;;;;;;2460:17;;2456:243;;;2500:2;2493:9;;;;2456:243;1553:16;;;;;;;;;;;;;;;;2523:18;;2519:180;;;2564:2;2557:9;;;;2519:180;1612:16;;;;;;;;;;;;;;;;2587:18;;2583:116;;;2628:2;2621:9;;;;2583:116;2661:27;;;-1:-1:-1;;;;;2661:27:10;;;;;;;;;;;;;;;;;;;;;;;;;;;20508:504:6;20606:5;;:::i;:::-;20630:8;20641:55;20649:4;:9;;;20660:4;:9;;;20671:6;:11;;;20684:6;:11;;;20641:7;:55::i;:::-;20719:9;;;;;;20706:10;;;:22;;;;20757:9;;20751:15;;20738:28;;20799:9;;20787;;20630:66;;-1:-1:-1;20787:21:6;20780:28;;20776:208;;;20861:1;20849:13;;20776:208;;;20919:11;;20906:10;;20893:37;;20906:24;;20893:37;;;;20962:11;;20956:17;;20944:9;;;:29;20776:208;-1:-1:-1;21000:5:6;;20508:504;-1:-1:-1;;;20508:504:6:o;2686:548::-;3012:9;2806:164;2819:2;2812:9;;2806:164;;2888:10;;2875:24;;2934:2;2926:10;;;;2950:9;;;;-1:-1:-1;;2823:9:6;;;;2806:164;;;-1:-1:-1;3097:10:6;;3152:11;;3032:2;:8;;;;3024:3;:17;-1:-1:-1;;3024:21:6;3109:9;;3093:26;;;3148:22;;3196:21;3183:35;;3064:164::o;1376:381:1:-;1434:7;;1658:6;;1654:35;;;1681:1;1674:8;;;;1654:35;-1:-1:-1;1707:5:1;;;1711:1;1707;:5;1726;;;;;;;;:10;1718:19;;;;;;1751:1;1376:381;-1:-1:-1;;;1376:381:1:o;2444:131::-;2502:7;2529:5;;;2548:6;;;;2540:15;;;;;39748:118:5;39822:37;;;;:21;;:37;;;;;:::i;49978:973::-;50066:4;50072:7;50476:8;50494:12;50558:4;50552:11;50589:4;50583;50576:18;50629:1;50624:2;50618:4;50614:13;50607:24;50666:1;50661:2;50655:4;50651:13;50644:24;50703:1;50698:2;50692:4;50688:13;50681:24;50871:2;50865:4;50860:3;50854:4;50851:1;50848;50842:4;50837:37;50895:11;;50830:44;;50895:11;;-1:-1:-1;49978:973:5;-1:-1:-1;;;;;;;49978:973:5:o;15914:1372:6:-;16013:4;16040:7;16013:4;;;;;;;16080:20;;;16076:1170;;16133:2;16120:15;;16116:1120;;16210:1;16196:9;16191:2;:14;16186:1;:20;16180:1;:27;:31;16178:34;16170:43;;16155:58;;16315:4;16303:9;16297:16;16293:27;16279:41;;16371:9;16361:7;16351;:17;:29;16340:40;;16469:4;16463:3;16457:10;16453:21;16442:32;;16494:228;16501:21;;;16494:228;;16550:10;;;16546:64;;16603:7;16593;:17;16586:24;;;;16546:64;16632:5;;;;;;;16697:4;16691:3;16685:10;16681:21;16670:32;;16668:36;;;16746:3;16739:10;;;;16116:1120;16907:9;16896;16886:31;16878:39;;16948:1;16942:7;;16937:285;16958:19;;;16951:26;;16937:285;;-1:-1:-1;17069:25:6;;;17121:16;;;17117:56;;;17170:3;17163:10;;;;17117:56;17202:1;17195:8;;;;16979:5;;;;;16937:285;;;17272:7;17262;:17;17255:24;;15914:1372;;;;;;;;;;;;;;;:::o;1225:15100:16:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1225:15100:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1225:15100:16;;;-1:-1:-1;1225:15100:16;:::i;:::-;;;:::o;:::-;;;;;;;;;;-1:-1:-1;1225:15100:16;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}},"sourceList":["externals/ERC20.sol","externals/SafeMath.sol","externals/base64.sol","externals/ens/ENS.sol","externals/ens/PublicResolver.sol","externals/oraclizeAPI_0.4.25.sol","externals/strings.sol","internals/claimable.sol","internals/controllable.sol","internals/controller.sol","internals/date.sol","internals/ensResolvable.sol","internals/ownable.sol","internals/parseIntScientific.sol","internals/tokenWhitelist.sol","internals/tokenWhitelistable.sol","oracle.sol"],"sources":{"externals/ERC20.sol":{"AST":{"attributes":{"absolutePath":"externals/ERC20.sol","exportedSymbols":{"ERC20":[8665]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".25"]},"id":8628,"name":"PragmaDirective","src":"0:24:0"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"interface","documentation":"@title ERC20 interface is a subset of the ERC20 specification.","fullyImplemented":false,"linearizedBaseContracts":[8665],"name":"ERC20","scope":8666},"children":[{"attributes":{"body":null,"constant":false,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"approve","payable":false,"scope":8665,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"","scope":8637,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":8629,"name":"ElementaryTypeName","src":"132:7:0"}],"id":8630,"name":"VariableDeclaration","src":"132:7:0"},{"attributes":{"constant":false,"name":"","scope":8637,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":8631,"name":"ElementaryTypeName","src":"141:7:0"}],"id":8632,"name":"VariableDeclaration","src":"141:7:0"}],"id":8633,"name":"ParameterList","src":"131:18:0"},{"children":[{"attributes":{"constant":false,"name":"","scope":8637,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":8634,"name":"ElementaryTypeName","src":"168:4:0"}],"id":8635,"name":"VariableDeclaration","src":"168:4:0"}],"id":8636,"name":"ParameterList","src":"167:6:0"}],"id":8637,"name":"FunctionDefinition","src":"115:59:0"},{"attributes":{"body":null,"constant":true,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"balanceOf","payable":false,"scope":8665,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"","scope":8644,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":8638,"name":"ElementaryTypeName","src":"198:7:0"}],"id":8639,"name":"VariableDeclaration","src":"198:7:0"}],"id":8640,"name":"ParameterList","src":"197:9:0"},{"children":[{"attributes":{"constant":false,"name":"","scope":8644,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":8641,"name":"ElementaryTypeName","src":"230:4:0"}],"id":8642,"name":"VariableDeclaration","src":"230:4:0"}],"id":8643,"name":"ParameterList","src":"229:6:0"}],"id":8644,"name":"FunctionDefinition","src":"179:57:0"},{"attributes":{"body":null,"constant":false,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"transfer","payable":false,"scope":8665,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"","scope":8653,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":8645,"name":"ElementaryTypeName","src":"259:7:0"}],"id":8646,"name":"VariableDeclaration","src":"259:7:0"},{"attributes":{"constant":false,"name":"","scope":8653,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":8647,"name":"ElementaryTypeName","src":"268:4:0"}],"id":8648,"name":"VariableDeclaration","src":"268:4:0"}],"id":8649,"name":"ParameterList","src":"258:15:0"},{"children":[{"attributes":{"constant":false,"name":"","scope":8653,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":8650,"name":"ElementaryTypeName","src":"292:4:0"}],"id":8651,"name":"VariableDeclaration","src":"292:4:0"}],"id":8652,"name":"ParameterList","src":"291:6:0"}],"id":8653,"name":"FunctionDefinition","src":"241:57:0"},{"attributes":{"body":null,"constant":false,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"transferFrom","payable":false,"scope":8665,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_from","scope":8664,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":8654,"name":"ElementaryTypeName","src":"325:7:0"}],"id":8655,"name":"VariableDeclaration","src":"325:13:0"},{"attributes":{"constant":false,"name":"_to","scope":8664,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":8656,"name":"ElementaryTypeName","src":"340:7:0"}],"id":8657,"name":"VariableDeclaration","src":"340:11:0"},{"attributes":{"constant":false,"name":"_value","scope":8664,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":8658,"name":"ElementaryTypeName","src":"353:7:0"}],"id":8659,"name":"VariableDeclaration","src":"353:14:0"}],"id":8660,"name":"ParameterList","src":"324:44:0"},{"children":[{"attributes":{"constant":false,"name":"success","scope":8664,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":8661,"name":"ElementaryTypeName","src":"387:4:0"}],"id":8662,"name":"VariableDeclaration","src":"387:12:0"}],"id":8663,"name":"ParameterList","src":"386:14:0"}],"id":8664,"name":"FunctionDefinition","src":"303:98:0"}],"id":8665,"name":"ContractDefinition","src":"93:310:0"}],"id":8666,"name":"SourceUnit","src":"0:404:0"}},"externals/SafeMath.sol":{"AST":{"attributes":{"absolutePath":"externals/SafeMath.sol","exportedSymbols":{"SafeMath":[1226]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".24"]},"id":1100,"name":"PragmaDirective","src":"1172:24:1"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"library","documentation":"@title SafeMath\n@dev Math operations with safety checks that revert on error","fullyImplemented":true,"linearizedBaseContracts":[1226],"name":"SafeMath","scope":1227},"children":[{"attributes":{"constant":true,"documentation":"@dev Multiplies two numbers, reverts on overflow.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"mul","payable":false,"scope":1226,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"a","scope":1133,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1101,"name":"ElementaryTypeName","src":"1389:7:1"}],"id":1102,"name":"VariableDeclaration","src":"1389:9:1"},{"attributes":{"constant":false,"name":"b","scope":1133,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1103,"name":"ElementaryTypeName","src":"1400:7:1"}],"id":1104,"name":"VariableDeclaration","src":"1400:9:1"}],"id":1105,"name":"ParameterList","src":"1388:22:1"},{"children":[{"attributes":{"constant":false,"name":"","scope":1133,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1106,"name":"ElementaryTypeName","src":"1434:7:1"}],"id":1107,"name":"VariableDeclaration","src":"1434:7:1"}],"id":1108,"name":"ParameterList","src":"1433:9:1"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1102,"type":"uint256","value":"a"},"id":1109,"name":"Identifier","src":"1658:1:1"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1110,"name":"Literal","src":"1663:1:1"}],"id":1111,"name":"BinaryOperation","src":"1658:6:1"},{"children":[{"attributes":{"functionReturnParameters":1108},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1112,"name":"Literal","src":"1681:1:1"}],"id":1113,"name":"Return","src":"1674:8:1"}],"id":1114,"name":"Block","src":"1666:23:1"}],"id":1115,"name":"IfStatement","src":"1654:35:1"},{"attributes":{"assignments":[1117]},"children":[{"attributes":{"constant":false,"name":"c","scope":1133,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1116,"name":"ElementaryTypeName","src":"1695:7:1"}],"id":1117,"name":"VariableDeclaration","src":"1695:9:1"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1102,"type":"uint256","value":"a"},"id":1118,"name":"Identifier","src":"1707:1:1"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1104,"type":"uint256","value":"b"},"id":1119,"name":"Identifier","src":"1711:1:1"}],"id":1120,"name":"BinaryOperation","src":"1707:5:1"}],"id":1121,"name":"VariableDeclarationStatement","src":"1695:17:1"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"overloadedDeclarations":[12019,12020],"referencedDeclaration":12019,"type":"function (bool) pure","value":"require"},"id":1122,"name":"Identifier","src":"1718:7:1"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"/","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1117,"type":"uint256","value":"c"},"id":1123,"name":"Identifier","src":"1726:1:1"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1102,"type":"uint256","value":"a"},"id":1124,"name":"Identifier","src":"1730:1:1"}],"id":1125,"name":"BinaryOperation","src":"1726:5:1"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1104,"type":"uint256","value":"b"},"id":1126,"name":"Identifier","src":"1735:1:1"}],"id":1127,"name":"BinaryOperation","src":"1726:10:1"}],"id":1128,"name":"FunctionCall","src":"1718:19:1"}],"id":1129,"name":"ExpressionStatement","src":"1718:19:1"},{"attributes":{"functionReturnParameters":1108},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1117,"type":"uint256","value":"c"},"id":1130,"name":"Identifier","src":"1751:1:1"}],"id":1131,"name":"Return","src":"1744:8:1"}],"id":1132,"name":"Block","src":"1443:314:1"}],"id":1133,"name":"FunctionDefinition","src":"1376:381:1"},{"attributes":{"constant":true,"documentation":"@dev Integer division of two numbers truncating the quotient, reverts on division by zero.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"div","payable":false,"scope":1226,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"a","scope":1157,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1134,"name":"ElementaryTypeName","src":"1880:7:1"}],"id":1135,"name":"VariableDeclaration","src":"1880:9:1"},{"attributes":{"constant":false,"name":"b","scope":1157,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1136,"name":"ElementaryTypeName","src":"1891:7:1"}],"id":1137,"name":"VariableDeclaration","src":"1891:9:1"}],"id":1138,"name":"ParameterList","src":"1879:22:1"},{"children":[{"attributes":{"constant":false,"name":"","scope":1157,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1139,"name":"ElementaryTypeName","src":"1925:7:1"}],"id":1140,"name":"VariableDeclaration","src":"1925:7:1"}],"id":1141,"name":"ParameterList","src":"1924:9:1"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"overloadedDeclarations":[12019,12020],"referencedDeclaration":12019,"type":"function (bool) pure","value":"require"},"id":1142,"name":"Identifier","src":"1940:7:1"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1137,"type":"uint256","value":"b"},"id":1143,"name":"Identifier","src":"1948:1:1"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1144,"name":"Literal","src":"1952:1:1"}],"id":1145,"name":"BinaryOperation","src":"1948:5:1"}],"id":1146,"name":"FunctionCall","src":"1940:14:1"}],"id":1147,"name":"ExpressionStatement","src":"1940:14:1"},{"attributes":{"assignments":[1149]},"children":[{"attributes":{"constant":false,"name":"c","scope":1157,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1148,"name":"ElementaryTypeName","src":"2018:7:1"}],"id":1149,"name":"VariableDeclaration","src":"2018:9:1"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"/","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1135,"type":"uint256","value":"a"},"id":1150,"name":"Identifier","src":"2030:1:1"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1137,"type":"uint256","value":"b"},"id":1151,"name":"Identifier","src":"2034:1:1"}],"id":1152,"name":"BinaryOperation","src":"2030:5:1"}],"id":1153,"name":"VariableDeclarationStatement","src":"2018:17:1"},{"attributes":{"functionReturnParameters":1141},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1149,"type":"uint256","value":"c"},"id":1154,"name":"Identifier","src":"2131:1:1"}],"id":1155,"name":"Return","src":"2124:8:1"}],"id":1156,"name":"Block","src":"1934:203:1"}],"id":1157,"name":"FunctionDefinition","src":"1867:270:1"},{"attributes":{"constant":true,"documentation":"@dev Subtracts two numbers, reverts on overflow (i.e. if subtrahend is greater than minuend).","implemented":true,"isConstructor":false,"modifiers":[null],"name":"sub","payable":false,"scope":1226,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"a","scope":1181,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1158,"name":"ElementaryTypeName","src":"2263:7:1"}],"id":1159,"name":"VariableDeclaration","src":"2263:9:1"},{"attributes":{"constant":false,"name":"b","scope":1181,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1160,"name":"ElementaryTypeName","src":"2274:7:1"}],"id":1161,"name":"VariableDeclaration","src":"2274:9:1"}],"id":1162,"name":"ParameterList","src":"2262:22:1"},{"children":[{"attributes":{"constant":false,"name":"","scope":1181,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1163,"name":"ElementaryTypeName","src":"2308:7:1"}],"id":1164,"name":"VariableDeclaration","src":"2308:7:1"}],"id":1165,"name":"ParameterList","src":"2307:9:1"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"overloadedDeclarations":[12019,12020],"referencedDeclaration":12019,"type":"function (bool) pure","value":"require"},"id":1166,"name":"Identifier","src":"2323:7:1"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1161,"type":"uint256","value":"b"},"id":1167,"name":"Identifier","src":"2331:1:1"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1159,"type":"uint256","value":"a"},"id":1168,"name":"Identifier","src":"2336:1:1"}],"id":1169,"name":"BinaryOperation","src":"2331:6:1"}],"id":1170,"name":"FunctionCall","src":"2323:15:1"}],"id":1171,"name":"ExpressionStatement","src":"2323:15:1"},{"attributes":{"assignments":[1173]},"children":[{"attributes":{"constant":false,"name":"c","scope":1181,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1172,"name":"ElementaryTypeName","src":"2344:7:1"}],"id":1173,"name":"VariableDeclaration","src":"2344:9:1"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1159,"type":"uint256","value":"a"},"id":1174,"name":"Identifier","src":"2356:1:1"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1161,"type":"uint256","value":"b"},"id":1175,"name":"Identifier","src":"2360:1:1"}],"id":1176,"name":"BinaryOperation","src":"2356:5:1"}],"id":1177,"name":"VariableDeclarationStatement","src":"2344:17:1"},{"attributes":{"functionReturnParameters":1165},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1173,"type":"uint256","value":"c"},"id":1178,"name":"Identifier","src":"2375:1:1"}],"id":1179,"name":"Return","src":"2368:8:1"}],"id":1180,"name":"Block","src":"2317:64:1"}],"id":1181,"name":"FunctionDefinition","src":"2250:131:1"},{"attributes":{"constant":true,"documentation":"@dev Adds two numbers, reverts on overflow.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"add","payable":false,"scope":1226,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"a","scope":1205,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1182,"name":"ElementaryTypeName","src":"2457:7:1"}],"id":1183,"name":"VariableDeclaration","src":"2457:9:1"},{"attributes":{"constant":false,"name":"b","scope":1205,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1184,"name":"ElementaryTypeName","src":"2468:7:1"}],"id":1185,"name":"VariableDeclaration","src":"2468:9:1"}],"id":1186,"name":"ParameterList","src":"2456:22:1"},{"children":[{"attributes":{"constant":false,"name":"","scope":1205,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1187,"name":"ElementaryTypeName","src":"2502:7:1"}],"id":1188,"name":"VariableDeclaration","src":"2502:7:1"}],"id":1189,"name":"ParameterList","src":"2501:9:1"},{"children":[{"attributes":{"assignments":[1191]},"children":[{"attributes":{"constant":false,"name":"c","scope":1205,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1190,"name":"ElementaryTypeName","src":"2517:7:1"}],"id":1191,"name":"VariableDeclaration","src":"2517:9:1"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1183,"type":"uint256","value":"a"},"id":1192,"name":"Identifier","src":"2529:1:1"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1185,"type":"uint256","value":"b"},"id":1193,"name":"Identifier","src":"2533:1:1"}],"id":1194,"name":"BinaryOperation","src":"2529:5:1"}],"id":1195,"name":"VariableDeclarationStatement","src":"2517:17:1"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"overloadedDeclarations":[12019,12020],"referencedDeclaration":12019,"type":"function (bool) pure","value":"require"},"id":1196,"name":"Identifier","src":"2540:7:1"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1191,"type":"uint256","value":"c"},"id":1197,"name":"Identifier","src":"2548:1:1"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1183,"type":"uint256","value":"a"},"id":1198,"name":"Identifier","src":"2553:1:1"}],"id":1199,"name":"BinaryOperation","src":"2548:6:1"}],"id":1200,"name":"FunctionCall","src":"2540:15:1"}],"id":1201,"name":"ExpressionStatement","src":"2540:15:1"},{"attributes":{"functionReturnParameters":1189},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1191,"type":"uint256","value":"c"},"id":1202,"name":"Identifier","src":"2569:1:1"}],"id":1203,"name":"Return","src":"2562:8:1"}],"id":1204,"name":"Block","src":"2511:64:1"}],"id":1205,"name":"FunctionDefinition","src":"2444:131:1"},{"attributes":{"constant":true,"documentation":"@dev Divides two numbers and returns the remainder (unsigned integer modulo),\nreverts when dividing by zero.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"mod","payable":false,"scope":1226,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"a","scope":1225,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1206,"name":"ElementaryTypeName","src":"2720:7:1"}],"id":1207,"name":"VariableDeclaration","src":"2720:9:1"},{"attributes":{"constant":false,"name":"b","scope":1225,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1208,"name":"ElementaryTypeName","src":"2731:7:1"}],"id":1209,"name":"VariableDeclaration","src":"2731:9:1"}],"id":1210,"name":"ParameterList","src":"2719:22:1"},{"children":[{"attributes":{"constant":false,"name":"","scope":1225,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1211,"name":"ElementaryTypeName","src":"2765:7:1"}],"id":1212,"name":"VariableDeclaration","src":"2765:7:1"}],"id":1213,"name":"ParameterList","src":"2764:9:1"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"overloadedDeclarations":[12019,12020],"referencedDeclaration":12019,"type":"function (bool) pure","value":"require"},"id":1214,"name":"Identifier","src":"2780:7:1"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1209,"type":"uint256","value":"b"},"id":1215,"name":"Identifier","src":"2788:1:1"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1216,"name":"Literal","src":"2793:1:1"}],"id":1217,"name":"BinaryOperation","src":"2788:6:1"}],"id":1218,"name":"FunctionCall","src":"2780:15:1"}],"id":1219,"name":"ExpressionStatement","src":"2780:15:1"},{"attributes":{"functionReturnParameters":1213},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"%","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1207,"type":"uint256","value":"a"},"id":1220,"name":"Identifier","src":"2808:1:1"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1209,"type":"uint256","value":"b"},"id":1221,"name":"Identifier","src":"2812:1:1"}],"id":1222,"name":"BinaryOperation","src":"2808:5:1"}],"id":1223,"name":"Return","src":"2801:12:1"}],"id":1224,"name":"Block","src":"2774:44:1"}],"id":1225,"name":"FunctionDefinition","src":"2707:111:1"}],"id":1226,"name":"ContractDefinition","src":"1289:1531:1"}],"id":1227,"name":"SourceUnit","src":"1172:1649:1"}},"externals/base64.sol":{"AST":{"attributes":{"absolutePath":"externals/base64.sol","exportedSymbols":{"Base64":[1547]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".25"]},"id":1228,"name":"PragmaDirective","src":"0:24:2"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"contract","documentation":"@title Base64 provides base 64 decoding functionality.","fullyImplemented":true,"linearizedBaseContracts":[1547],"name":"Base64","scope":1548},"children":[{"attributes":{"constant":true,"name":"BASE64_DECODE_CHAR","scope":1547,"stateVariable":true,"storageLocation":"default","type":"bytes","visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":1229,"name":"ElementaryTypeName","src":"286:5:2"},{"attributes":{"argumentTypes":null,"hexvalue":"000000000000000000000000000000000000000000000000000000000000000000000000000000000000003e003e003f3435363738393a3b3c3d00000000000000000102030405060708090a0b0c0d0e0f10111213141516171819000000003f001a1b1c1d1e1f202122232425262728292a2b2c2d2e2f30313233","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000>\u0000>\u0000?456789:;<=\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u0000\u0000\u0000\u0000?\u0000\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123\"","value":"\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000>\u0000>\u0000?456789:;<=\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u0000\u0000\u0000\u0000?\u0000\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123"},"id":1230,"name":"Literal","src":"322:251:2"}],"id":1231,"name":"VariableDeclaration","src":"286:287:2"},{"attributes":{"constant":true,"documentation":"@return decoded array of bytes.\n @param _encoded base 64 encoded array of bytes.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_base64decode","payable":false,"scope":1547,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_encoded","scope":1546,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":1232,"name":"ElementaryTypeName","src":"699:5:2"}],"id":1233,"name":"VariableDeclaration","src":"699:14:2"}],"id":1234,"name":"ParameterList","src":"698:16:2"},{"children":[{"attributes":{"constant":false,"name":"","scope":1546,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":1235,"name":"ElementaryTypeName","src":"738:5:2"}],"id":1236,"name":"VariableDeclaration","src":"738:5:2"}],"id":1237,"name":"ParameterList","src":"737:7:2"},{"children":[{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"v1","scope":1546,"stateVariable":false,"storageLocation":"default","type":"bytes1","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"byte","type":"bytes1"},"id":1238,"name":"ElementaryTypeName","src":"755:4:2"}],"id":1239,"name":"VariableDeclaration","src":"755:7:2"}],"id":1240,"name":"VariableDeclarationStatement","src":"755:7:2"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"v2","scope":1546,"stateVariable":false,"storageLocation":"default","type":"bytes1","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"byte","type":"bytes1"},"id":1241,"name":"ElementaryTypeName","src":"772:4:2"}],"id":1242,"name":"VariableDeclaration","src":"772:7:2"}],"id":1243,"name":"VariableDeclarationStatement","src":"772:7:2"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"v3","scope":1546,"stateVariable":false,"storageLocation":"default","type":"bytes1","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"byte","type":"bytes1"},"id":1244,"name":"ElementaryTypeName","src":"789:4:2"}],"id":1245,"name":"VariableDeclaration","src":"789:7:2"}],"id":1246,"name":"VariableDeclarationStatement","src":"789:7:2"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"v4","scope":1546,"stateVariable":false,"storageLocation":"default","type":"bytes1","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"byte","type":"bytes1"},"id":1247,"name":"ElementaryTypeName","src":"806:4:2"}],"id":1248,"name":"VariableDeclaration","src":"806:7:2"}],"id":1249,"name":"VariableDeclarationStatement","src":"806:7:2"},{"attributes":{"assignments":[1251]},"children":[{"attributes":{"constant":false,"name":"length","scope":1546,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1250,"name":"ElementaryTypeName","src":"823:4:2"}],"id":1251,"name":"VariableDeclaration","src":"823:11:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1233,"type":"bytes memory","value":"_encoded"},"id":1252,"name":"Identifier","src":"837:8:2"}],"id":1253,"name":"MemberAccess","src":"837:15:2"}],"id":1254,"name":"VariableDeclarationStatement","src":"823:29:2"},{"attributes":{"assignments":[1256]},"children":[{"attributes":{"constant":false,"name":"result","scope":1546,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":1255,"name":"ElementaryTypeName","src":"862:5:2"}],"id":1256,"name":"VariableDeclaration","src":"862:19:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (bytes memory)"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":1257,"name":"ElementaryTypeName","src":"888:5:2"}],"id":1258,"name":"NewExpression","src":"884:9:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1251,"type":"uint256","value":"length"},"id":1259,"name":"Identifier","src":"894:6:2"}],"id":1260,"name":"FunctionCall","src":"884:17:2"}],"id":1261,"name":"VariableDeclarationStatement","src":"862:39:2"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"index","scope":1546,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1262,"name":"ElementaryTypeName","src":"911:4:2"}],"id":1263,"name":"VariableDeclaration","src":"911:10:2"}],"id":1264,"name":"VariableDeclarationStatement","src":"911:10:2"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0ced718491cb52017183196eff428e56ca4dea680831f565a9e1feeb6144c7b3","typeString":"literal_string \"invalid base64 encoding\""}],"overloadedDeclarations":[12019,12020],"referencedDeclaration":12020,"type":"function (bool,string memory) pure","value":"require"},"id":1265,"name":"Identifier","src":"1015:7:2"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&&","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1251,"type":"uint256","value":"length"},"id":1266,"name":"Identifier","src":"1023:6:2"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1267,"name":"Literal","src":"1032:1:2"}],"id":1268,"name":"BinaryOperation","src":"1023:10:2"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"%","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1251,"type":"uint256","value":"length"},"id":1269,"name":"Identifier","src":"1038:6:2"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":1270,"name":"Literal","src":"1047:1:2"}],"id":1271,"name":"BinaryOperation","src":"1038:10:2"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1272,"name":"Literal","src":"1052:1:2"}],"id":1273,"name":"BinaryOperation","src":"1038:15:2"}],"id":1274,"name":"BinaryOperation","src":"1023:30:2"},{"attributes":{"argumentTypes":null,"hexvalue":"696e76616c69642062617365363420656e636f64696e67","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"invalid base64 encoding\"","value":"invalid base64 encoding"},"id":1275,"name":"Literal","src":"1055:25:2"}],"id":1276,"name":"FunctionCall","src":"1015:66:2"}],"id":1277,"name":"ExpressionStatement","src":"1015:66:2"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"overloadedDeclarations":[null],"referencedDeclaration":12010,"type":"function () pure returns (bytes32)","value":"keccak256"},"id":1278,"name":"Identifier","src":"1098:9:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"member_name":"encodePacked","referencedDeclaration":null,"type":"function () pure returns (bytes memory)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":12003,"type":"abi","value":"abi"},"id":1279,"name":"Identifier","src":"1108:3:2"}],"id":1280,"name":"MemberAccess","src":"1108:16:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1233,"type":"bytes memory","value":"_encoded"},"id":1281,"name":"Identifier","src":"1125:8:2"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1251,"type":"uint256","value":"length"},"id":1282,"name":"Identifier","src":"1134:6:2"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":1283,"name":"Literal","src":"1143:1:2"}],"id":1284,"name":"BinaryOperation","src":"1134:10:2"}],"id":1285,"name":"IndexAccess","src":"1125:20:2"}],"id":1286,"name":"FunctionCall","src":"1108:38:2"}],"id":1287,"name":"FunctionCall","src":"1098:49:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f30c17f6c257181e11b9ea19fc7d498b2880fcad645a66e130edeab084271f16","typeString":"literal_string \"=\""}],"overloadedDeclarations":[null],"referencedDeclaration":12010,"type":"function () pure returns (bytes32)","value":"keccak256"},"id":1288,"name":"Identifier","src":"1151:9:2"},{"attributes":{"argumentTypes":null,"hexvalue":"3d","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"=\"","value":"="},"id":1289,"name":"Literal","src":"1161:3:2"}],"id":1290,"name":"FunctionCall","src":"1151:14:2"}],"id":1291,"name":"BinaryOperation","src":"1098:67:2"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1251,"type":"uint256","value":"length"},"id":1292,"name":"Identifier","src":"1183:6:2"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":1293,"name":"Literal","src":"1193:1:2"}],"id":1294,"name":"Assignment","src":"1183:11:2"}],"id":1295,"name":"ExpressionStatement","src":"1183:11:2"}],"id":1296,"name":"Block","src":"1167:40:2"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"overloadedDeclarations":[null],"referencedDeclaration":12010,"type":"function () pure returns (bytes32)","value":"keccak256"},"id":1297,"name":"Identifier","src":"1217:9:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"member_name":"encodePacked","referencedDeclaration":null,"type":"function () pure returns (bytes memory)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":12003,"type":"abi","value":"abi"},"id":1298,"name":"Identifier","src":"1227:3:2"}],"id":1299,"name":"MemberAccess","src":"1227:16:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1233,"type":"bytes memory","value":"_encoded"},"id":1300,"name":"Identifier","src":"1244:8:2"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1251,"type":"uint256","value":"length"},"id":1301,"name":"Identifier","src":"1253:6:2"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":1302,"name":"Literal","src":"1262:1:2"}],"id":1303,"name":"BinaryOperation","src":"1253:10:2"}],"id":1304,"name":"IndexAccess","src":"1244:20:2"}],"id":1305,"name":"FunctionCall","src":"1227:38:2"}],"id":1306,"name":"FunctionCall","src":"1217:49:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f30c17f6c257181e11b9ea19fc7d498b2880fcad645a66e130edeab084271f16","typeString":"literal_string \"=\""}],"overloadedDeclarations":[null],"referencedDeclaration":12010,"type":"function () pure returns (bytes32)","value":"keccak256"},"id":1307,"name":"Identifier","src":"1270:9:2"},{"attributes":{"argumentTypes":null,"hexvalue":"3d","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"=\"","value":"="},"id":1308,"name":"Literal","src":"1280:3:2"}],"id":1309,"name":"FunctionCall","src":"1270:14:2"}],"id":1310,"name":"BinaryOperation","src":"1217:67:2"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1251,"type":"uint256","value":"length"},"id":1311,"name":"Identifier","src":"1302:6:2"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":1312,"name":"Literal","src":"1312:1:2"}],"id":1313,"name":"Assignment","src":"1302:11:2"}],"id":1314,"name":"ExpressionStatement","src":"1302:11:2"}],"id":1315,"name":"Block","src":"1286:40:2"}],"id":1316,"name":"IfStatement","src":"1213:113:2"}],"id":1317,"name":"IfStatement","src":"1094:232:2"},{"attributes":{"assignments":[1319]},"children":[{"attributes":{"constant":false,"name":"count","scope":1546,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1318,"name":"ElementaryTypeName","src":"1337:4:2"}],"id":1319,"name":"VariableDeclaration","src":"1337:10:2"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<<","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">>","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1251,"type":"uint256","value":"length"},"id":1320,"name":"Identifier","src":"1350:6:2"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":1321,"name":"Literal","src":"1360:1:2"}],"id":1322,"name":"BinaryOperation","src":"1350:11:2"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":1323,"name":"Literal","src":"1365:1:2"}],"id":1324,"name":"BinaryOperation","src":"1350:16:2"}],"id":1325,"name":"VariableDeclarationStatement","src":"1337:29:2"},{"attributes":{"loopExpression":null},"children":[{"attributes":{"assignments":[1327]},"children":[{"attributes":{"constant":false,"name":"i","scope":1546,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1326,"name":"ElementaryTypeName","src":"1383:4:2"}],"id":1327,"name":"VariableDeclaration","src":"1383:6:2"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1328,"name":"Literal","src":"1392:1:2"}],"id":1329,"name":"VariableDeclarationStatement","src":"1383:10:2"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1327,"type":"uint256","value":"i"},"id":1330,"name":"Identifier","src":"1395:1:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1319,"type":"uint256","value":"count"},"id":1331,"name":"Identifier","src":"1399:5:2"}],"id":1332,"name":"BinaryOperation","src":"1395:9:2"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1239,"type":"bytes1","value":"v1"},"id":1333,"name":"Identifier","src":"1423:2:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1231,"type":"bytes memory","value":"BASE64_DECODE_CHAR"},"id":1334,"name":"Identifier","src":"1428:18:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint"},"id":1335,"name":"ElementaryTypeNameExpression","src":"1447:4:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1233,"type":"bytes memory","value":"_encoded"},"id":1336,"name":"Identifier","src":"1452:8:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1327,"type":"uint256","value":"i"},"id":1337,"name":"Identifier","src":"1461:1:2"}],"id":1338,"name":"UnaryOperation","src":"1461:3:2"}],"id":1339,"name":"IndexAccess","src":"1452:13:2"}],"id":1340,"name":"FunctionCall","src":"1447:19:2"}],"id":1341,"name":"IndexAccess","src":"1428:39:2"}],"id":1342,"name":"Assignment","src":"1423:44:2"}],"id":1343,"name":"ExpressionStatement","src":"1423:44:2"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1242,"type":"bytes1","value":"v2"},"id":1344,"name":"Identifier","src":"1483:2:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1231,"type":"bytes memory","value":"BASE64_DECODE_CHAR"},"id":1345,"name":"Identifier","src":"1488:18:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint"},"id":1346,"name":"ElementaryTypeNameExpression","src":"1507:4:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1233,"type":"bytes memory","value":"_encoded"},"id":1347,"name":"Identifier","src":"1512:8:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1327,"type":"uint256","value":"i"},"id":1348,"name":"Identifier","src":"1521:1:2"}],"id":1349,"name":"UnaryOperation","src":"1521:3:2"}],"id":1350,"name":"IndexAccess","src":"1512:13:2"}],"id":1351,"name":"FunctionCall","src":"1507:19:2"}],"id":1352,"name":"IndexAccess","src":"1488:39:2"}],"id":1353,"name":"Assignment","src":"1483:44:2"}],"id":1354,"name":"ExpressionStatement","src":"1483:44:2"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1245,"type":"bytes1","value":"v3"},"id":1355,"name":"Identifier","src":"1543:2:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1231,"type":"bytes memory","value":"BASE64_DECODE_CHAR"},"id":1356,"name":"Identifier","src":"1548:18:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint"},"id":1357,"name":"ElementaryTypeNameExpression","src":"1567:4:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1233,"type":"bytes memory","value":"_encoded"},"id":1358,"name":"Identifier","src":"1572:8:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1327,"type":"uint256","value":"i"},"id":1359,"name":"Identifier","src":"1581:1:2"}],"id":1360,"name":"UnaryOperation","src":"1581:3:2"}],"id":1361,"name":"IndexAccess","src":"1572:13:2"}],"id":1362,"name":"FunctionCall","src":"1567:19:2"}],"id":1363,"name":"IndexAccess","src":"1548:39:2"}],"id":1364,"name":"Assignment","src":"1543:44:2"}],"id":1365,"name":"ExpressionStatement","src":"1543:44:2"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1248,"type":"bytes1","value":"v4"},"id":1366,"name":"Identifier","src":"1603:2:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1231,"type":"bytes memory","value":"BASE64_DECODE_CHAR"},"id":1367,"name":"Identifier","src":"1608:18:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint"},"id":1368,"name":"ElementaryTypeNameExpression","src":"1627:4:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1233,"type":"bytes memory","value":"_encoded"},"id":1369,"name":"Identifier","src":"1632:8:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1327,"type":"uint256","value":"i"},"id":1370,"name":"Identifier","src":"1641:1:2"}],"id":1371,"name":"UnaryOperation","src":"1641:3:2"}],"id":1372,"name":"IndexAccess","src":"1632:13:2"}],"id":1373,"name":"FunctionCall","src":"1627:19:2"}],"id":1374,"name":"IndexAccess","src":"1608:39:2"}],"id":1375,"name":"Assignment","src":"1603:44:2"}],"id":1376,"name":"ExpressionStatement","src":"1603:44:2"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1256,"type":"bytes memory","value":"result"},"id":1377,"name":"Identifier","src":"1664:6:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1263,"type":"uint256","value":"index"},"id":1378,"name":"Identifier","src":"1671:5:2"}],"id":1379,"name":"UnaryOperation","src":"1671:7:2"}],"id":1380,"name":"IndexAccess","src":"1664:15:2"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"|","type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<<","type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1239,"type":"bytes1","value":"v1"},"id":1381,"name":"Identifier","src":"1683:2:2"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":1382,"name":"Literal","src":"1689:1:2"}],"id":1383,"name":"BinaryOperation","src":"1683:7:2"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">>","type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1242,"type":"bytes1","value":"v2"},"id":1384,"name":"Identifier","src":"1693:2:2"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":1385,"name":"Literal","src":"1699:1:2"}],"id":1386,"name":"BinaryOperation","src":"1693:7:2"}],"id":1387,"name":"BinaryOperation","src":"1683:17:2"}],"id":1388,"name":"TupleExpression","src":"1682:19:2"},{"attributes":{"argumentTypes":null,"hexvalue":"323535","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 255","value":"255"},"id":1389,"name":"Literal","src":"1704:3:2"}],"id":1390,"name":"BinaryOperation","src":"1682:25:2"}],"id":1391,"name":"Assignment","src":"1664:43:2"}],"id":1392,"name":"ExpressionStatement","src":"1664:43:2"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1256,"type":"bytes memory","value":"result"},"id":1393,"name":"Identifier","src":"1723:6:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1263,"type":"uint256","value":"index"},"id":1394,"name":"Identifier","src":"1730:5:2"}],"id":1395,"name":"UnaryOperation","src":"1730:7:2"}],"id":1396,"name":"IndexAccess","src":"1723:15:2"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"|","type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<<","type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1242,"type":"bytes1","value":"v2"},"id":1397,"name":"Identifier","src":"1742:2:2"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":1398,"name":"Literal","src":"1748:1:2"}],"id":1399,"name":"BinaryOperation","src":"1742:7:2"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">>","type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1245,"type":"bytes1","value":"v3"},"id":1400,"name":"Identifier","src":"1752:2:2"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":1401,"name":"Literal","src":"1758:1:2"}],"id":1402,"name":"BinaryOperation","src":"1752:7:2"}],"id":1403,"name":"BinaryOperation","src":"1742:17:2"}],"id":1404,"name":"TupleExpression","src":"1741:19:2"},{"attributes":{"argumentTypes":null,"hexvalue":"323535","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 255","value":"255"},"id":1405,"name":"Literal","src":"1763:3:2"}],"id":1406,"name":"BinaryOperation","src":"1741:25:2"}],"id":1407,"name":"Assignment","src":"1723:43:2"}],"id":1408,"name":"ExpressionStatement","src":"1723:43:2"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1256,"type":"bytes memory","value":"result"},"id":1409,"name":"Identifier","src":"1782:6:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1263,"type":"uint256","value":"index"},"id":1410,"name":"Identifier","src":"1789:5:2"}],"id":1411,"name":"UnaryOperation","src":"1789:7:2"}],"id":1412,"name":"IndexAccess","src":"1782:15:2"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"|","type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<<","type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1245,"type":"bytes1","value":"v3"},"id":1413,"name":"Identifier","src":"1801:2:2"},{"attributes":{"argumentTypes":null,"hexvalue":"36","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 6","value":"6"},"id":1414,"name":"Literal","src":"1807:1:2"}],"id":1415,"name":"BinaryOperation","src":"1801:7:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1248,"type":"bytes1","value":"v4"},"id":1416,"name":"Identifier","src":"1811:2:2"}],"id":1417,"name":"BinaryOperation","src":"1801:12:2"}],"id":1418,"name":"TupleExpression","src":"1800:14:2"},{"attributes":{"argumentTypes":null,"hexvalue":"323535","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 255","value":"255"},"id":1419,"name":"Literal","src":"1817:3:2"}],"id":1420,"name":"BinaryOperation","src":"1800:20:2"}],"id":1421,"name":"Assignment","src":"1782:38:2"}],"id":1422,"name":"ExpressionStatement","src":"1782:38:2"}],"id":1423,"name":"Block","src":"1407:426:2"}],"id":1424,"name":"ForStatement","src":"1378:455:2"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1251,"type":"uint256","value":"length"},"id":1425,"name":"Identifier","src":"1848:6:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1319,"type":"uint256","value":"count"},"id":1426,"name":"Identifier","src":"1857:5:2"}],"id":1427,"name":"BinaryOperation","src":"1848:14:2"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":1428,"name":"Literal","src":"1866:1:2"}],"id":1429,"name":"BinaryOperation","src":"1848:19:2"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1239,"type":"bytes1","value":"v1"},"id":1430,"name":"Identifier","src":"1885:2:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1231,"type":"bytes memory","value":"BASE64_DECODE_CHAR"},"id":1431,"name":"Identifier","src":"1890:18:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint"},"id":1432,"name":"ElementaryTypeNameExpression","src":"1909:4:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1233,"type":"bytes memory","value":"_encoded"},"id":1433,"name":"Identifier","src":"1914:8:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1327,"type":"uint256","value":"i"},"id":1434,"name":"Identifier","src":"1923:1:2"}],"id":1435,"name":"UnaryOperation","src":"1923:3:2"}],"id":1436,"name":"IndexAccess","src":"1914:13:2"}],"id":1437,"name":"FunctionCall","src":"1909:19:2"}],"id":1438,"name":"IndexAccess","src":"1890:39:2"}],"id":1439,"name":"Assignment","src":"1885:44:2"}],"id":1440,"name":"ExpressionStatement","src":"1885:44:2"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1242,"type":"bytes1","value":"v2"},"id":1441,"name":"Identifier","src":"1945:2:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1231,"type":"bytes memory","value":"BASE64_DECODE_CHAR"},"id":1442,"name":"Identifier","src":"1950:18:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint"},"id":1443,"name":"ElementaryTypeNameExpression","src":"1969:4:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1233,"type":"bytes memory","value":"_encoded"},"id":1444,"name":"Identifier","src":"1974:8:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1327,"type":"uint256","value":"i"},"id":1445,"name":"Identifier","src":"1983:1:2"}],"id":1446,"name":"UnaryOperation","src":"1983:3:2"}],"id":1447,"name":"IndexAccess","src":"1974:13:2"}],"id":1448,"name":"FunctionCall","src":"1969:19:2"}],"id":1449,"name":"IndexAccess","src":"1950:39:2"}],"id":1450,"name":"Assignment","src":"1945:44:2"}],"id":1451,"name":"ExpressionStatement","src":"1945:44:2"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1256,"type":"bytes memory","value":"result"},"id":1452,"name":"Identifier","src":"2005:6:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1263,"type":"uint256","value":"index"},"id":1453,"name":"Identifier","src":"2012:5:2"}],"id":1454,"name":"UnaryOperation","src":"2012:7:2"}],"id":1455,"name":"IndexAccess","src":"2005:15:2"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"|","type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<<","type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1239,"type":"bytes1","value":"v1"},"id":1456,"name":"Identifier","src":"2024:2:2"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":1457,"name":"Literal","src":"2030:1:2"}],"id":1458,"name":"BinaryOperation","src":"2024:7:2"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">>","type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1242,"type":"bytes1","value":"v2"},"id":1459,"name":"Identifier","src":"2034:2:2"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":1460,"name":"Literal","src":"2040:1:2"}],"id":1461,"name":"BinaryOperation","src":"2034:7:2"}],"id":1462,"name":"BinaryOperation","src":"2024:17:2"}],"id":1463,"name":"TupleExpression","src":"2023:19:2"},{"attributes":{"argumentTypes":null,"hexvalue":"323535","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 255","value":"255"},"id":1464,"name":"Literal","src":"2045:3:2"}],"id":1465,"name":"BinaryOperation","src":"2023:25:2"}],"id":1466,"name":"Assignment","src":"2005:43:2"}],"id":1467,"name":"ExpressionStatement","src":"2005:43:2"}],"id":1468,"name":"Block","src":"1869:192:2"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1251,"type":"uint256","value":"length"},"id":1469,"name":"Identifier","src":"2071:6:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1319,"type":"uint256","value":"count"},"id":1470,"name":"Identifier","src":"2080:5:2"}],"id":1471,"name":"BinaryOperation","src":"2071:14:2"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":1472,"name":"Literal","src":"2089:1:2"}],"id":1473,"name":"BinaryOperation","src":"2071:19:2"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1239,"type":"bytes1","value":"v1"},"id":1474,"name":"Identifier","src":"2108:2:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1231,"type":"bytes memory","value":"BASE64_DECODE_CHAR"},"id":1475,"name":"Identifier","src":"2113:18:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint"},"id":1476,"name":"ElementaryTypeNameExpression","src":"2132:4:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1233,"type":"bytes memory","value":"_encoded"},"id":1477,"name":"Identifier","src":"2137:8:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1327,"type":"uint256","value":"i"},"id":1478,"name":"Identifier","src":"2146:1:2"}],"id":1479,"name":"UnaryOperation","src":"2146:3:2"}],"id":1480,"name":"IndexAccess","src":"2137:13:2"}],"id":1481,"name":"FunctionCall","src":"2132:19:2"}],"id":1482,"name":"IndexAccess","src":"2113:39:2"}],"id":1483,"name":"Assignment","src":"2108:44:2"}],"id":1484,"name":"ExpressionStatement","src":"2108:44:2"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1242,"type":"bytes1","value":"v2"},"id":1485,"name":"Identifier","src":"2168:2:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1231,"type":"bytes memory","value":"BASE64_DECODE_CHAR"},"id":1486,"name":"Identifier","src":"2173:18:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint"},"id":1487,"name":"ElementaryTypeNameExpression","src":"2192:4:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1233,"type":"bytes memory","value":"_encoded"},"id":1488,"name":"Identifier","src":"2197:8:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1327,"type":"uint256","value":"i"},"id":1489,"name":"Identifier","src":"2206:1:2"}],"id":1490,"name":"UnaryOperation","src":"2206:3:2"}],"id":1491,"name":"IndexAccess","src":"2197:13:2"}],"id":1492,"name":"FunctionCall","src":"2192:19:2"}],"id":1493,"name":"IndexAccess","src":"2173:39:2"}],"id":1494,"name":"Assignment","src":"2168:44:2"}],"id":1495,"name":"ExpressionStatement","src":"2168:44:2"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1245,"type":"bytes1","value":"v3"},"id":1496,"name":"Identifier","src":"2228:2:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1231,"type":"bytes memory","value":"BASE64_DECODE_CHAR"},"id":1497,"name":"Identifier","src":"2233:18:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint"},"id":1498,"name":"ElementaryTypeNameExpression","src":"2252:4:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1233,"type":"bytes memory","value":"_encoded"},"id":1499,"name":"Identifier","src":"2257:8:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1327,"type":"uint256","value":"i"},"id":1500,"name":"Identifier","src":"2266:1:2"}],"id":1501,"name":"UnaryOperation","src":"2266:3:2"}],"id":1502,"name":"IndexAccess","src":"2257:13:2"}],"id":1503,"name":"FunctionCall","src":"2252:19:2"}],"id":1504,"name":"IndexAccess","src":"2233:39:2"}],"id":1505,"name":"Assignment","src":"2228:44:2"}],"id":1506,"name":"ExpressionStatement","src":"2228:44:2"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1256,"type":"bytes memory","value":"result"},"id":1507,"name":"Identifier","src":"2289:6:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1263,"type":"uint256","value":"index"},"id":1508,"name":"Identifier","src":"2296:5:2"}],"id":1509,"name":"UnaryOperation","src":"2296:7:2"}],"id":1510,"name":"IndexAccess","src":"2289:15:2"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"|","type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<<","type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1239,"type":"bytes1","value":"v1"},"id":1511,"name":"Identifier","src":"2308:2:2"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":1512,"name":"Literal","src":"2314:1:2"}],"id":1513,"name":"BinaryOperation","src":"2308:7:2"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">>","type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1242,"type":"bytes1","value":"v2"},"id":1514,"name":"Identifier","src":"2318:2:2"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":1515,"name":"Literal","src":"2324:1:2"}],"id":1516,"name":"BinaryOperation","src":"2318:7:2"}],"id":1517,"name":"BinaryOperation","src":"2308:17:2"}],"id":1518,"name":"TupleExpression","src":"2307:19:2"},{"attributes":{"argumentTypes":null,"hexvalue":"323535","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 255","value":"255"},"id":1519,"name":"Literal","src":"2329:3:2"}],"id":1520,"name":"BinaryOperation","src":"2307:25:2"}],"id":1521,"name":"Assignment","src":"2289:43:2"}],"id":1522,"name":"ExpressionStatement","src":"2289:43:2"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1256,"type":"bytes memory","value":"result"},"id":1523,"name":"Identifier","src":"2348:6:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1263,"type":"uint256","value":"index"},"id":1524,"name":"Identifier","src":"2355:5:2"}],"id":1525,"name":"UnaryOperation","src":"2355:7:2"}],"id":1526,"name":"IndexAccess","src":"2348:15:2"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"|","type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<<","type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1242,"type":"bytes1","value":"v2"},"id":1527,"name":"Identifier","src":"2367:2:2"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":1528,"name":"Literal","src":"2373:1:2"}],"id":1529,"name":"BinaryOperation","src":"2367:7:2"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">>","type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1245,"type":"bytes1","value":"v3"},"id":1530,"name":"Identifier","src":"2377:2:2"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":1531,"name":"Literal","src":"2383:1:2"}],"id":1532,"name":"BinaryOperation","src":"2377:7:2"}],"id":1533,"name":"BinaryOperation","src":"2367:17:2"}],"id":1534,"name":"TupleExpression","src":"2366:19:2"},{"attributes":{"argumentTypes":null,"hexvalue":"323535","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 255","value":"255"},"id":1535,"name":"Literal","src":"2388:3:2"}],"id":1536,"name":"BinaryOperation","src":"2366:25:2"}],"id":1537,"name":"Assignment","src":"2348:43:2"}],"id":1538,"name":"ExpressionStatement","src":"2348:43:2"}],"id":1539,"name":"Block","src":"2092:312:2"}],"id":1540,"name":"IfStatement","src":"2067:337:2"}],"id":1541,"name":"IfStatement","src":"1844:560:2"},{"attributes":{"externalReferences":[{"result":{"declaration":1256,"isOffset":false,"isSlot":false,"src":"2478:6:2","valueSize":1}},{"index":{"declaration":1263,"isOffset":false,"isSlot":false,"src":"2486:5:2","valueSize":1}}],"operations":"{\n mstore(result, index)\n}"},"children":[],"id":1542,"name":"InlineAssembly","src":"2448:70:2"},{"attributes":{"functionReturnParameters":1237},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1256,"type":"bytes memory","value":"result"},"id":1543,"name":"Identifier","src":"2519:6:2"}],"id":1544,"name":"Return","src":"2512:13:2"}],"id":1545,"name":"Block","src":"745:1787:2"}],"id":1546,"name":"FunctionDefinition","src":"676:1856:2"}],"id":1547,"name":"ContractDefinition","src":"264:2270:2"}],"id":1548,"name":"SourceUnit","src":"0:2535:2"}},"externals/ens/ENS.sol":{"AST":{"attributes":{"absolutePath":"externals/ens/ENS.sol","exportedSymbols":{"ENS":[9085]}},"children":[{"attributes":{"literals":["solidity",">=","0.4",".24"]},"id":9007,"name":"PragmaDirective","src":"1400:25:3"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"interface","documentation":null,"fullyImplemented":false,"linearizedBaseContracts":[9085],"name":"ENS","scope":9086},"children":[{"attributes":{"anonymous":false,"documentation":null,"name":"NewOwner"},"children":[{"children":[{"attributes":{"constant":false,"indexed":true,"name":"node","scope":9015,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9008,"name":"ElementaryTypeName","src":"1536:7:3"}],"id":9009,"name":"VariableDeclaration","src":"1536:20:3"},{"attributes":{"constant":false,"indexed":true,"name":"label","scope":9015,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9010,"name":"ElementaryTypeName","src":"1558:7:3"}],"id":9011,"name":"VariableDeclaration","src":"1558:21:3"},{"attributes":{"constant":false,"indexed":false,"name":"owner","scope":9015,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":9012,"name":"ElementaryTypeName","src":"1581:7:3"}],"id":9013,"name":"VariableDeclaration","src":"1581:13:3"}],"id":9014,"name":"ParameterList","src":"1535:60:3"}],"id":9015,"name":"EventDefinition","src":"1521:75:3"},{"attributes":{"anonymous":false,"documentation":null,"name":"Transfer"},"children":[{"children":[{"attributes":{"constant":false,"indexed":true,"name":"node","scope":9021,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9016,"name":"ElementaryTypeName","src":"1694:7:3"}],"id":9017,"name":"VariableDeclaration","src":"1694:20:3"},{"attributes":{"constant":false,"indexed":false,"name":"owner","scope":9021,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":9018,"name":"ElementaryTypeName","src":"1716:7:3"}],"id":9019,"name":"VariableDeclaration","src":"1716:13:3"}],"id":9020,"name":"ParameterList","src":"1693:37:3"}],"id":9021,"name":"EventDefinition","src":"1679:52:3"},{"attributes":{"anonymous":false,"documentation":null,"name":"NewResolver"},"children":[{"children":[{"attributes":{"constant":false,"indexed":true,"name":"node","scope":9027,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9022,"name":"ElementaryTypeName","src":"1807:7:3"}],"id":9023,"name":"VariableDeclaration","src":"1807:20:3"},{"attributes":{"constant":false,"indexed":false,"name":"resolver","scope":9027,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":9024,"name":"ElementaryTypeName","src":"1829:7:3"}],"id":9025,"name":"VariableDeclaration","src":"1829:16:3"}],"id":9026,"name":"ParameterList","src":"1806:40:3"}],"id":9027,"name":"EventDefinition","src":"1789:58:3"},{"attributes":{"anonymous":false,"documentation":null,"name":"NewTTL"},"children":[{"children":[{"attributes":{"constant":false,"indexed":true,"name":"node","scope":9033,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9028,"name":"ElementaryTypeName","src":"1911:7:3"}],"id":9029,"name":"VariableDeclaration","src":"1911:20:3"},{"attributes":{"constant":false,"indexed":false,"name":"ttl","scope":9033,"stateVariable":false,"storageLocation":"default","type":"uint64","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint64","type":"uint64"},"id":9030,"name":"ElementaryTypeName","src":"1933:6:3"}],"id":9031,"name":"VariableDeclaration","src":"1933:10:3"}],"id":9032,"name":"ParameterList","src":"1910:34:3"}],"id":9033,"name":"EventDefinition","src":"1898:47:3"},{"attributes":{"body":null,"constant":false,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"setSubnodeOwner","payable":false,"scope":9085,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":9042,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9034,"name":"ElementaryTypeName","src":"1977:7:3"}],"id":9035,"name":"VariableDeclaration","src":"1977:12:3"},{"attributes":{"constant":false,"name":"label","scope":9042,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9036,"name":"ElementaryTypeName","src":"1991:7:3"}],"id":9037,"name":"VariableDeclaration","src":"1991:13:3"},{"attributes":{"constant":false,"name":"owner","scope":9042,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":9038,"name":"ElementaryTypeName","src":"2006:7:3"}],"id":9039,"name":"VariableDeclaration","src":"2006:13:3"}],"id":9040,"name":"ParameterList","src":"1976:44:3"},{"attributes":{"parameters":[null]},"children":[],"id":9041,"name":"ParameterList","src":"2029:0:3"}],"id":9042,"name":"FunctionDefinition","src":"1952:78:3"},{"attributes":{"body":null,"constant":false,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"setResolver","payable":false,"scope":9085,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":9049,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9043,"name":"ElementaryTypeName","src":"2056:7:3"}],"id":9044,"name":"VariableDeclaration","src":"2056:12:3"},{"attributes":{"constant":false,"name":"resolver","scope":9049,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":9045,"name":"ElementaryTypeName","src":"2070:7:3"}],"id":9046,"name":"VariableDeclaration","src":"2070:16:3"}],"id":9047,"name":"ParameterList","src":"2055:32:3"},{"attributes":{"parameters":[null]},"children":[],"id":9048,"name":"ParameterList","src":"2096:0:3"}],"id":9049,"name":"FunctionDefinition","src":"2035:62:3"},{"attributes":{"body":null,"constant":false,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"setOwner","payable":false,"scope":9085,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":9056,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9050,"name":"ElementaryTypeName","src":"2120:7:3"}],"id":9051,"name":"VariableDeclaration","src":"2120:12:3"},{"attributes":{"constant":false,"name":"owner","scope":9056,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":9052,"name":"ElementaryTypeName","src":"2134:7:3"}],"id":9053,"name":"VariableDeclaration","src":"2134:13:3"}],"id":9054,"name":"ParameterList","src":"2119:29:3"},{"attributes":{"parameters":[null]},"children":[],"id":9055,"name":"ParameterList","src":"2157:0:3"}],"id":9056,"name":"FunctionDefinition","src":"2102:56:3"},{"attributes":{"body":null,"constant":false,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"setTTL","payable":false,"scope":9085,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":9063,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9057,"name":"ElementaryTypeName","src":"2179:7:3"}],"id":9058,"name":"VariableDeclaration","src":"2179:12:3"},{"attributes":{"constant":false,"name":"ttl","scope":9063,"stateVariable":false,"storageLocation":"default","type":"uint64","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint64","type":"uint64"},"id":9059,"name":"ElementaryTypeName","src":"2193:6:3"}],"id":9060,"name":"VariableDeclaration","src":"2193:10:3"}],"id":9061,"name":"ParameterList","src":"2178:26:3"},{"attributes":{"parameters":[null]},"children":[],"id":9062,"name":"ParameterList","src":"2213:0:3"}],"id":9063,"name":"FunctionDefinition","src":"2163:51:3"},{"attributes":{"body":null,"constant":true,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"owner","payable":false,"scope":9085,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":9070,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9064,"name":"ElementaryTypeName","src":"2234:7:3"}],"id":9065,"name":"VariableDeclaration","src":"2234:12:3"}],"id":9066,"name":"ParameterList","src":"2233:14:3"},{"children":[{"attributes":{"constant":false,"name":"","scope":9070,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":9067,"name":"ElementaryTypeName","src":"2271:7:3"}],"id":9068,"name":"VariableDeclaration","src":"2271:7:3"}],"id":9069,"name":"ParameterList","src":"2270:9:3"}],"id":9070,"name":"FunctionDefinition","src":"2219:61:3"},{"attributes":{"body":null,"constant":true,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"resolver","payable":false,"scope":9085,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":9077,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9071,"name":"ElementaryTypeName","src":"2303:7:3"}],"id":9072,"name":"VariableDeclaration","src":"2303:12:3"}],"id":9073,"name":"ParameterList","src":"2302:14:3"},{"children":[{"attributes":{"constant":false,"name":"","scope":9077,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":9074,"name":"ElementaryTypeName","src":"2340:7:3"}],"id":9075,"name":"VariableDeclaration","src":"2340:7:3"}],"id":9076,"name":"ParameterList","src":"2339:9:3"}],"id":9077,"name":"FunctionDefinition","src":"2285:64:3"},{"attributes":{"body":null,"constant":true,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"ttl","payable":false,"scope":9085,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":9084,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9078,"name":"ElementaryTypeName","src":"2367:7:3"}],"id":9079,"name":"VariableDeclaration","src":"2367:12:3"}],"id":9080,"name":"ParameterList","src":"2366:14:3"},{"children":[{"attributes":{"constant":false,"name":"","scope":9084,"stateVariable":false,"storageLocation":"default","type":"uint64","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint64","type":"uint64"},"id":9081,"name":"ElementaryTypeName","src":"2404:6:3"}],"id":9082,"name":"VariableDeclaration","src":"2404:6:3"}],"id":9083,"name":"ParameterList","src":"2403:8:3"}],"id":9084,"name":"FunctionDefinition","src":"2354:58:3"}],"id":9085,"name":"ContractDefinition","src":"1427:988:3"}],"id":9086,"name":"SourceUnit","src":"1400:1017:3"}},"externals/ens/PublicResolver.sol":{"AST":{"attributes":{"absolutePath":"externals/ens/PublicResolver.sol","exportedSymbols":{"PublicResolver":[9593]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".24"]},"id":9087,"name":"PragmaDirective","src":"1406:24:4"},{"attributes":{"SourceUnit":9086,"absolutePath":"externals/ens/ENS.sol","file":"./ENS.sol","scope":9594,"symbolAliases":[null],"unitAlias":""},"id":9088,"name":"ImportDirective","src":"1432:19:4"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"contract","documentation":"A simple resolver anyone can use; only allows the owner of a node to set its\naddress.","fullyImplemented":true,"linearizedBaseContracts":[9593],"name":"PublicResolver","scope":9594},"children":[{"attributes":{"constant":true,"name":"INTERFACE_META_ID","scope":9593,"stateVariable":true,"storageLocation":"default","type":"bytes4","visibility":"internal"},"children":[{"attributes":{"name":"bytes4","type":"bytes4"},"id":9089,"name":"ElementaryTypeName","src":"1584:6:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30783031666663396137","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 33540519","value":"0x01ffc9a7"},"id":9090,"name":"Literal","src":"1620:10:4"}],"id":9091,"name":"VariableDeclaration","src":"1584:46:4"},{"attributes":{"constant":true,"name":"ADDR_INTERFACE_ID","scope":9593,"stateVariable":true,"storageLocation":"default","type":"bytes4","visibility":"internal"},"children":[{"attributes":{"name":"bytes4","type":"bytes4"},"id":9092,"name":"ElementaryTypeName","src":"1636:6:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30783362336235376465","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 993744862","value":"0x3b3b57de"},"id":9093,"name":"Literal","src":"1672:10:4"}],"id":9094,"name":"VariableDeclaration","src":"1636:46:4"},{"attributes":{"constant":true,"name":"CONTENT_INTERFACE_ID","scope":9593,"stateVariable":true,"storageLocation":"default","type":"bytes4","visibility":"internal"},"children":[{"attributes":{"name":"bytes4","type":"bytes4"},"id":9095,"name":"ElementaryTypeName","src":"1688:6:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30786438333839646335","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3627589061","value":"0xd8389dc5"},"id":9096,"name":"Literal","src":"1727:10:4"}],"id":9097,"name":"VariableDeclaration","src":"1688:49:4"},{"attributes":{"constant":true,"name":"NAME_INTERFACE_ID","scope":9593,"stateVariable":true,"storageLocation":"default","type":"bytes4","visibility":"internal"},"children":[{"attributes":{"name":"bytes4","type":"bytes4"},"id":9098,"name":"ElementaryTypeName","src":"1743:6:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30783639316633343331","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1763652657","value":"0x691f3431"},"id":9099,"name":"Literal","src":"1779:10:4"}],"id":9100,"name":"VariableDeclaration","src":"1743:46:4"},{"attributes":{"constant":true,"name":"ABI_INTERFACE_ID","scope":9593,"stateVariable":true,"storageLocation":"default","type":"bytes4","visibility":"internal"},"children":[{"attributes":{"name":"bytes4","type":"bytes4"},"id":9101,"name":"ElementaryTypeName","src":"1795:6:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30783232303361623536","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 570665814","value":"0x2203ab56"},"id":9102,"name":"Literal","src":"1830:10:4"}],"id":9103,"name":"VariableDeclaration","src":"1795:45:4"},{"attributes":{"constant":true,"name":"PUBKEY_INTERFACE_ID","scope":9593,"stateVariable":true,"storageLocation":"default","type":"bytes4","visibility":"internal"},"children":[{"attributes":{"name":"bytes4","type":"bytes4"},"id":9104,"name":"ElementaryTypeName","src":"1846:6:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30786338363930323333","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3362325043","value":"0xc8690233"},"id":9105,"name":"Literal","src":"1884:10:4"}],"id":9106,"name":"VariableDeclaration","src":"1846:48:4"},{"attributes":{"constant":true,"name":"TEXT_INTERFACE_ID","scope":9593,"stateVariable":true,"storageLocation":"default","type":"bytes4","visibility":"internal"},"children":[{"attributes":{"name":"bytes4","type":"bytes4"},"id":9107,"name":"ElementaryTypeName","src":"1900:6:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30783539643164343363","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1506923580","value":"0x59d1d43c"},"id":9108,"name":"Literal","src":"1936:10:4"}],"id":9109,"name":"VariableDeclaration","src":"1900:46:4"},{"attributes":{"constant":true,"name":"MULTIHASH_INTERFACE_ID","scope":9593,"stateVariable":true,"storageLocation":"default","type":"bytes4","visibility":"internal"},"children":[{"attributes":{"name":"bytes4","type":"bytes4"},"id":9110,"name":"ElementaryTypeName","src":"1952:6:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30786538393430316131","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3902013857","value":"0xe89401a1"},"id":9111,"name":"Literal","src":"1993:10:4"}],"id":9112,"name":"VariableDeclaration","src":"1952:51:4"},{"attributes":{"anonymous":false,"documentation":null,"name":"AddrChanged"},"children":[{"children":[{"attributes":{"constant":false,"indexed":true,"name":"node","scope":9118,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9113,"name":"ElementaryTypeName","src":"2028:7:4"}],"id":9114,"name":"VariableDeclaration","src":"2028:20:4"},{"attributes":{"constant":false,"indexed":false,"name":"a","scope":9118,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":9115,"name":"ElementaryTypeName","src":"2050:7:4"}],"id":9116,"name":"VariableDeclaration","src":"2050:9:4"}],"id":9117,"name":"ParameterList","src":"2027:33:4"}],"id":9118,"name":"EventDefinition","src":"2010:51:4"},{"attributes":{"anonymous":false,"documentation":null,"name":"ContentChanged"},"children":[{"children":[{"attributes":{"constant":false,"indexed":true,"name":"node","scope":9124,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9119,"name":"ElementaryTypeName","src":"2087:7:4"}],"id":9120,"name":"VariableDeclaration","src":"2087:20:4"},{"attributes":{"constant":false,"indexed":false,"name":"hash","scope":9124,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9121,"name":"ElementaryTypeName","src":"2109:7:4"}],"id":9122,"name":"VariableDeclaration","src":"2109:12:4"}],"id":9123,"name":"ParameterList","src":"2086:36:4"}],"id":9124,"name":"EventDefinition","src":"2066:57:4"},{"attributes":{"anonymous":false,"documentation":null,"name":"NameChanged"},"children":[{"children":[{"attributes":{"constant":false,"indexed":true,"name":"node","scope":9130,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9125,"name":"ElementaryTypeName","src":"2146:7:4"}],"id":9126,"name":"VariableDeclaration","src":"2146:20:4"},{"attributes":{"constant":false,"indexed":false,"name":"name","scope":9130,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":9127,"name":"ElementaryTypeName","src":"2168:6:4"}],"id":9128,"name":"VariableDeclaration","src":"2168:11:4"}],"id":9129,"name":"ParameterList","src":"2145:35:4"}],"id":9130,"name":"EventDefinition","src":"2128:53:4"},{"attributes":{"anonymous":false,"documentation":null,"name":"ABIChanged"},"children":[{"children":[{"attributes":{"constant":false,"indexed":true,"name":"node","scope":9136,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9131,"name":"ElementaryTypeName","src":"2203:7:4"}],"id":9132,"name":"VariableDeclaration","src":"2203:20:4"},{"attributes":{"constant":false,"indexed":true,"name":"contentType","scope":9136,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":9133,"name":"ElementaryTypeName","src":"2225:7:4"}],"id":9134,"name":"VariableDeclaration","src":"2225:27:4"}],"id":9135,"name":"ParameterList","src":"2202:51:4"}],"id":9136,"name":"EventDefinition","src":"2186:68:4"},{"attributes":{"anonymous":false,"documentation":null,"name":"PubkeyChanged"},"children":[{"children":[{"attributes":{"constant":false,"indexed":true,"name":"node","scope":9144,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9137,"name":"ElementaryTypeName","src":"2279:7:4"}],"id":9138,"name":"VariableDeclaration","src":"2279:20:4"},{"attributes":{"constant":false,"indexed":false,"name":"x","scope":9144,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9139,"name":"ElementaryTypeName","src":"2301:7:4"}],"id":9140,"name":"VariableDeclaration","src":"2301:9:4"},{"attributes":{"constant":false,"indexed":false,"name":"y","scope":9144,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9141,"name":"ElementaryTypeName","src":"2312:7:4"}],"id":9142,"name":"VariableDeclaration","src":"2312:9:4"}],"id":9143,"name":"ParameterList","src":"2278:44:4"}],"id":9144,"name":"EventDefinition","src":"2259:64:4"},{"attributes":{"anonymous":false,"documentation":null,"name":"TextChanged"},"children":[{"children":[{"attributes":{"constant":false,"indexed":true,"name":"node","scope":9152,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9145,"name":"ElementaryTypeName","src":"2346:7:4"}],"id":9146,"name":"VariableDeclaration","src":"2346:20:4"},{"attributes":{"constant":false,"indexed":false,"name":"indexedKey","scope":9152,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":9147,"name":"ElementaryTypeName","src":"2368:6:4"}],"id":9148,"name":"VariableDeclaration","src":"2368:17:4"},{"attributes":{"constant":false,"indexed":false,"name":"key","scope":9152,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":9149,"name":"ElementaryTypeName","src":"2387:6:4"}],"id":9150,"name":"VariableDeclaration","src":"2387:10:4"}],"id":9151,"name":"ParameterList","src":"2345:53:4"}],"id":9152,"name":"EventDefinition","src":"2328:71:4"},{"attributes":{"anonymous":false,"documentation":null,"name":"MultihashChanged"},"children":[{"children":[{"attributes":{"constant":false,"indexed":true,"name":"node","scope":9158,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9153,"name":"ElementaryTypeName","src":"2427:7:4"}],"id":9154,"name":"VariableDeclaration","src":"2427:20:4"},{"attributes":{"constant":false,"indexed":false,"name":"hash","scope":9158,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":9155,"name":"ElementaryTypeName","src":"2449:5:4"}],"id":9156,"name":"VariableDeclaration","src":"2449:10:4"}],"id":9157,"name":"ParameterList","src":"2426:34:4"}],"id":9158,"name":"EventDefinition","src":"2404:57:4"},{"attributes":{"canonicalName":"PublicResolver.PublicKey","name":"PublicKey","scope":9593,"visibility":"public"},"children":[{"attributes":{"constant":false,"name":"x","scope":9163,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9159,"name":"ElementaryTypeName","src":"2494:7:4"}],"id":9160,"name":"VariableDeclaration","src":"2494:9:4"},{"attributes":{"constant":false,"name":"y","scope":9163,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9161,"name":"ElementaryTypeName","src":"2513:7:4"}],"id":9162,"name":"VariableDeclaration","src":"2513:9:4"}],"id":9163,"name":"StructDefinition","src":"2467:62:4"},{"attributes":{"canonicalName":"PublicResolver.Record","name":"Record","scope":9593,"visibility":"public"},"children":[{"attributes":{"constant":false,"name":"addr","scope":9182,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":9164,"name":"ElementaryTypeName","src":"2559:7:4"}],"id":9165,"name":"VariableDeclaration","src":"2559:12:4"},{"attributes":{"constant":false,"name":"content","scope":9182,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9166,"name":"ElementaryTypeName","src":"2581:7:4"}],"id":9167,"name":"VariableDeclaration","src":"2581:15:4"},{"attributes":{"constant":false,"name":"name","scope":9182,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":9168,"name":"ElementaryTypeName","src":"2606:6:4"}],"id":9169,"name":"VariableDeclaration","src":"2606:11:4"},{"attributes":{"constant":false,"name":"pubkey","scope":9182,"stateVariable":false,"storageLocation":"default","type":"struct PublicResolver.PublicKey","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"PublicKey","referencedDeclaration":9163,"type":"struct PublicResolver.PublicKey"},"id":9170,"name":"UserDefinedTypeName","src":"2627:9:4"}],"id":9171,"name":"VariableDeclaration","src":"2627:16:4"},{"attributes":{"constant":false,"name":"text","scope":9182,"stateVariable":false,"storageLocation":"default","type":"mapping(string => string)","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"mapping(string => string)"},"children":[{"attributes":{"name":"string","type":"string"},"id":9172,"name":"ElementaryTypeName","src":"2661:6:4"},{"attributes":{"name":"string","type":"string"},"id":9173,"name":"ElementaryTypeName","src":"2669:6:4"}],"id":9174,"name":"Mapping","src":"2653:23:4"}],"id":9175,"name":"VariableDeclaration","src":"2653:28:4"},{"attributes":{"constant":false,"name":"abis","scope":9182,"stateVariable":false,"storageLocation":"default","type":"mapping(uint256 => bytes)","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"mapping(uint256 => bytes)"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":9176,"name":"ElementaryTypeName","src":"2699:7:4"},{"attributes":{"name":"bytes","type":"bytes"},"id":9177,"name":"ElementaryTypeName","src":"2708:5:4"}],"id":9178,"name":"Mapping","src":"2691:23:4"}],"id":9179,"name":"VariableDeclaration","src":"2691:28:4"},{"attributes":{"constant":false,"name":"multihash","scope":9182,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":9180,"name":"ElementaryTypeName","src":"2729:5:4"}],"id":9181,"name":"VariableDeclaration","src":"2729:15:4"}],"id":9182,"name":"StructDefinition","src":"2535:216:4"},{"attributes":{"constant":false,"name":"ens","scope":9593,"stateVariable":true,"storageLocation":"default","type":"contract ENS","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"ENS","referencedDeclaration":9085,"type":"contract ENS"},"id":9183,"name":"UserDefinedTypeName","src":"2757:3:4"}],"id":9184,"name":"VariableDeclaration","src":"2757:7:4"},{"attributes":{"constant":false,"name":"records","scope":9593,"stateVariable":true,"storageLocation":"default","type":"mapping(bytes32 => struct PublicResolver.Record)","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"mapping(bytes32 => struct PublicResolver.Record)"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9185,"name":"ElementaryTypeName","src":"2780:7:4"},{"attributes":{"contractScope":null,"name":"Record","referencedDeclaration":9182,"type":"struct PublicResolver.Record"},"id":9186,"name":"UserDefinedTypeName","src":"2791:6:4"}],"id":9187,"name":"Mapping","src":"2771:27:4"}],"id":9188,"name":"VariableDeclaration","src":"2771:35:4"},{"attributes":{"documentation":null,"name":"only_owner","visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":9204,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9189,"name":"ElementaryTypeName","src":"2833:7:4"}],"id":9190,"name":"VariableDeclaration","src":"2833:12:4"}],"id":9191,"name":"ParameterList","src":"2832:14:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"overloadedDeclarations":[12019,12020],"referencedDeclaration":12019,"type":"function (bool) pure","value":"require"},"id":9192,"name":"Identifier","src":"2857:7:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"owner","referencedDeclaration":9070,"type":"function (bytes32) view external returns (address)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9184,"type":"contract ENS","value":"ens"},"id":9193,"name":"Identifier","src":"2865:3:4"}],"id":9194,"name":"MemberAccess","src":"2865:9:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9190,"type":"bytes32","value":"node"},"id":9195,"name":"Identifier","src":"2875:4:4"}],"id":9196,"name":"FunctionCall","src":"2865:15:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":12016,"type":"msg","value":"msg"},"id":9197,"name":"Identifier","src":"2884:3:4"}],"id":9198,"name":"MemberAccess","src":"2884:10:4"}],"id":9199,"name":"BinaryOperation","src":"2865:29:4"}],"id":9200,"name":"FunctionCall","src":"2857:38:4"}],"id":9201,"name":"ExpressionStatement","src":"2857:38:4"},{"id":9202,"name":"PlaceholderStatement","src":"2905:1:4"}],"id":9203,"name":"Block","src":"2847:66:4"}],"id":9204,"name":"ModifierDefinition","src":"2813:100:4"},{"attributes":{"constant":false,"documentation":"Constructor.\n@param ensAddr The ENS registrar contract.","implemented":true,"isConstructor":true,"modifiers":[null],"name":"","payable":false,"scope":9593,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"ensAddr","scope":9214,"stateVariable":false,"storageLocation":"default","type":"contract ENS","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"ENS","referencedDeclaration":9085,"type":"contract ENS"},"id":9205,"name":"UserDefinedTypeName","src":"3017:3:4"}],"id":9206,"name":"VariableDeclaration","src":"3017:11:4"}],"id":9207,"name":"ParameterList","src":"3016:13:4"},{"attributes":{"parameters":[null]},"children":[],"id":9208,"name":"ParameterList","src":"3037:0:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"contract ENS"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9184,"type":"contract ENS","value":"ens"},"id":9209,"name":"Identifier","src":"3047:3:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9206,"type":"contract ENS","value":"ensAddr"},"id":9210,"name":"Identifier","src":"3053:7:4"}],"id":9211,"name":"Assignment","src":"3047:13:4"}],"id":9212,"name":"ExpressionStatement","src":"3047:13:4"}],"id":9213,"name":"Block","src":"3037:30:4"}],"id":9214,"name":"FunctionDefinition","src":"3005:62:4"},{"attributes":{"constant":false,"documentation":"Sets the address associated with an ENS node.\nMay only be called by the owner of that node in the ENS registry.\n@param node The node to update.\n@param addr The address to set.","implemented":true,"isConstructor":false,"name":"setAddr","payable":false,"scope":9593,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":9237,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9215,"name":"ElementaryTypeName","src":"3310:7:4"}],"id":9216,"name":"VariableDeclaration","src":"3310:12:4"},{"attributes":{"constant":false,"name":"addr","scope":9237,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":9217,"name":"ElementaryTypeName","src":"3324:7:4"}],"id":9218,"name":"VariableDeclaration","src":"3324:12:4"}],"id":9219,"name":"ParameterList","src":"3309:28:4"},{"attributes":{"parameters":[null]},"children":[],"id":9223,"name":"ParameterList","src":"3362:0:4"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9204,"type":"modifier (bytes32)","value":"only_owner"},"id":9220,"name":"Identifier","src":"3345:10:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9216,"type":"bytes32","value":"node"},"id":9221,"name":"Identifier","src":"3356:4:4"}],"id":9222,"name":"ModifierInvocation","src":"3345:16:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"address"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"addr","referencedDeclaration":9165,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9188,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":9224,"name":"Identifier","src":"3372:7:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9216,"type":"bytes32","value":"node"},"id":9225,"name":"Identifier","src":"3380:4:4"}],"id":9226,"name":"IndexAccess","src":"3372:13:4"}],"id":9227,"name":"MemberAccess","src":"3372:18:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9218,"type":"address","value":"addr"},"id":9228,"name":"Identifier","src":"3393:4:4"}],"id":9229,"name":"Assignment","src":"3372:25:4"}],"id":9230,"name":"ExpressionStatement","src":"3372:25:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":9118,"type":"function (bytes32,address)","value":"AddrChanged"},"id":9231,"name":"Identifier","src":"3412:11:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9216,"type":"bytes32","value":"node"},"id":9232,"name":"Identifier","src":"3424:4:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9218,"type":"address","value":"addr"},"id":9233,"name":"Identifier","src":"3430:4:4"}],"id":9234,"name":"FunctionCall","src":"3412:23:4"}],"id":9235,"name":"EmitStatement","src":"3407:28:4"}],"id":9236,"name":"Block","src":"3362:80:4"}],"id":9237,"name":"FunctionDefinition","src":"3293:149:4"},{"attributes":{"constant":false,"documentation":"Sets the content hash associated with an ENS node.\nMay only be called by the owner of that node in the ENS registry.\nNote that this resource type is not standardized, and will likely change\nin future to a resource type based on multihash.\n@param node The node to update.\n@param hash The content hash to set","implemented":true,"isConstructor":false,"name":"setContent","payable":false,"scope":9593,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":9260,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9238,"name":"ElementaryTypeName","src":"3833:7:4"}],"id":9239,"name":"VariableDeclaration","src":"3833:12:4"},{"attributes":{"constant":false,"name":"hash","scope":9260,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9240,"name":"ElementaryTypeName","src":"3847:7:4"}],"id":9241,"name":"VariableDeclaration","src":"3847:12:4"}],"id":9242,"name":"ParameterList","src":"3832:28:4"},{"attributes":{"parameters":[null]},"children":[],"id":9246,"name":"ParameterList","src":"3885:0:4"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9204,"type":"modifier (bytes32)","value":"only_owner"},"id":9243,"name":"Identifier","src":"3868:10:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9239,"type":"bytes32","value":"node"},"id":9244,"name":"Identifier","src":"3879:4:4"}],"id":9245,"name":"ModifierInvocation","src":"3868:16:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"content","referencedDeclaration":9167,"type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9188,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":9247,"name":"Identifier","src":"3895:7:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9239,"type":"bytes32","value":"node"},"id":9248,"name":"Identifier","src":"3903:4:4"}],"id":9249,"name":"IndexAccess","src":"3895:13:4"}],"id":9250,"name":"MemberAccess","src":"3895:21:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9241,"type":"bytes32","value":"hash"},"id":9251,"name":"Identifier","src":"3919:4:4"}],"id":9252,"name":"Assignment","src":"3895:28:4"}],"id":9253,"name":"ExpressionStatement","src":"3895:28:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[null],"referencedDeclaration":9124,"type":"function (bytes32,bytes32)","value":"ContentChanged"},"id":9254,"name":"Identifier","src":"3938:14:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9239,"type":"bytes32","value":"node"},"id":9255,"name":"Identifier","src":"3953:4:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9241,"type":"bytes32","value":"hash"},"id":9256,"name":"Identifier","src":"3959:4:4"}],"id":9257,"name":"FunctionCall","src":"3938:26:4"}],"id":9258,"name":"EmitStatement","src":"3933:31:4"}],"id":9259,"name":"Block","src":"3885:86:4"}],"id":9260,"name":"FunctionDefinition","src":"3813:158:4"},{"attributes":{"constant":false,"documentation":"Sets the multihash associated with an ENS node.\nMay only be called by the owner of that node in the ENS registry.\n@param node The node to update.\n@param hash The multihash to set","implemented":true,"isConstructor":false,"name":"setMultihash","payable":false,"scope":9593,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":9283,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9261,"name":"ElementaryTypeName","src":"4222:7:4"}],"id":9262,"name":"VariableDeclaration","src":"4222:12:4"},{"attributes":{"constant":false,"name":"hash","scope":9283,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":9263,"name":"ElementaryTypeName","src":"4236:5:4"}],"id":9264,"name":"VariableDeclaration","src":"4236:10:4"}],"id":9265,"name":"ParameterList","src":"4221:26:4"},{"attributes":{"parameters":[null]},"children":[],"id":9269,"name":"ParameterList","src":"4272:0:4"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9204,"type":"modifier (bytes32)","value":"only_owner"},"id":9266,"name":"Identifier","src":"4255:10:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9262,"type":"bytes32","value":"node"},"id":9267,"name":"Identifier","src":"4266:4:4"}],"id":9268,"name":"ModifierInvocation","src":"4255:16:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"multihash","referencedDeclaration":9181,"type":"bytes storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9188,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":9270,"name":"Identifier","src":"4282:7:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9262,"type":"bytes32","value":"node"},"id":9271,"name":"Identifier","src":"4290:4:4"}],"id":9272,"name":"IndexAccess","src":"4282:13:4"}],"id":9273,"name":"MemberAccess","src":"4282:23:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9264,"type":"bytes memory","value":"hash"},"id":9274,"name":"Identifier","src":"4308:4:4"}],"id":9275,"name":"Assignment","src":"4282:30:4"}],"id":9276,"name":"ExpressionStatement","src":"4282:30:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"overloadedDeclarations":[null],"referencedDeclaration":9158,"type":"function (bytes32,bytes memory)","value":"MultihashChanged"},"id":9277,"name":"Identifier","src":"4327:16:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9262,"type":"bytes32","value":"node"},"id":9278,"name":"Identifier","src":"4344:4:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9264,"type":"bytes memory","value":"hash"},"id":9279,"name":"Identifier","src":"4350:4:4"}],"id":9280,"name":"FunctionCall","src":"4327:28:4"}],"id":9281,"name":"EmitStatement","src":"4322:33:4"}],"id":9282,"name":"Block","src":"4272:90:4"}],"id":9283,"name":"FunctionDefinition","src":"4200:162:4"},{"attributes":{"constant":false,"documentation":"Sets the name associated with an ENS node, for reverse records.\nMay only be called by the owner of that node in the ENS registry.\n@param node The node to update.\n@param name The name to set.","implemented":true,"isConstructor":false,"name":"setName","payable":false,"scope":9593,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":9306,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9284,"name":"ElementaryTypeName","src":"4624:7:4"}],"id":9285,"name":"VariableDeclaration","src":"4624:12:4"},{"attributes":{"constant":false,"name":"name","scope":9306,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":9286,"name":"ElementaryTypeName","src":"4638:6:4"}],"id":9287,"name":"VariableDeclaration","src":"4638:11:4"}],"id":9288,"name":"ParameterList","src":"4623:27:4"},{"attributes":{"parameters":[null]},"children":[],"id":9292,"name":"ParameterList","src":"4675:0:4"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9204,"type":"modifier (bytes32)","value":"only_owner"},"id":9289,"name":"Identifier","src":"4658:10:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9285,"type":"bytes32","value":"node"},"id":9290,"name":"Identifier","src":"4669:4:4"}],"id":9291,"name":"ModifierInvocation","src":"4658:16:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"name","referencedDeclaration":9169,"type":"string storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9188,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":9293,"name":"Identifier","src":"4685:7:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9285,"type":"bytes32","value":"node"},"id":9294,"name":"Identifier","src":"4693:4:4"}],"id":9295,"name":"IndexAccess","src":"4685:13:4"}],"id":9296,"name":"MemberAccess","src":"4685:18:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9287,"type":"string memory","value":"name"},"id":9297,"name":"Identifier","src":"4706:4:4"}],"id":9298,"name":"Assignment","src":"4685:25:4"}],"id":9299,"name":"ExpressionStatement","src":"4685:25:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"overloadedDeclarations":[null],"referencedDeclaration":9130,"type":"function (bytes32,string memory)","value":"NameChanged"},"id":9300,"name":"Identifier","src":"4725:11:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9285,"type":"bytes32","value":"node"},"id":9301,"name":"Identifier","src":"4737:4:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9287,"type":"string memory","value":"name"},"id":9302,"name":"Identifier","src":"4743:4:4"}],"id":9303,"name":"FunctionCall","src":"4725:23:4"}],"id":9304,"name":"EmitStatement","src":"4720:28:4"}],"id":9305,"name":"Block","src":"4675:80:4"}],"id":9306,"name":"FunctionDefinition","src":"4607:148:4"},{"attributes":{"constant":false,"documentation":"Sets the ABI associated with an ENS node.\nNodes may have one ABI of each content type. To remove an ABI, set it to\nthe empty string.\n@param node The node to update.\n@param contentType The content type of the ABI\n@param data The ABI data.","implemented":true,"isConstructor":false,"name":"setABI","payable":false,"scope":9593,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":9345,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9307,"name":"ElementaryTypeName","src":"5073:7:4"}],"id":9308,"name":"VariableDeclaration","src":"5073:12:4"},{"attributes":{"constant":false,"name":"contentType","scope":9345,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":9309,"name":"ElementaryTypeName","src":"5087:7:4"}],"id":9310,"name":"VariableDeclaration","src":"5087:19:4"},{"attributes":{"constant":false,"name":"data","scope":9345,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":9311,"name":"ElementaryTypeName","src":"5108:5:4"}],"id":9312,"name":"VariableDeclaration","src":"5108:10:4"}],"id":9313,"name":"ParameterList","src":"5072:47:4"},{"attributes":{"parameters":[null]},"children":[],"id":9317,"name":"ParameterList","src":"5144:0:4"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9204,"type":"modifier (bytes32)","value":"only_owner"},"id":9314,"name":"Identifier","src":"5127:10:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9308,"type":"bytes32","value":"node"},"id":9315,"name":"Identifier","src":"5138:4:4"}],"id":9316,"name":"ModifierInvocation","src":"5127:16:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"overloadedDeclarations":[12019,12020],"referencedDeclaration":12019,"type":"function (bool) pure","value":"require"},"id":9318,"name":"Identifier","src":"5199:7:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9310,"type":"uint256","value":"contentType"},"id":9319,"name":"Identifier","src":"5209:11:4"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":9320,"name":"Literal","src":"5223:1:4"}],"id":9321,"name":"BinaryOperation","src":"5209:15:4"}],"id":9322,"name":"TupleExpression","src":"5208:17:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9310,"type":"uint256","value":"contentType"},"id":9323,"name":"Identifier","src":"5228:11:4"}],"id":9324,"name":"BinaryOperation","src":"5208:31:4"}],"id":9325,"name":"TupleExpression","src":"5207:33:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":9326,"name":"Literal","src":"5244:1:4"}],"id":9327,"name":"BinaryOperation","src":"5207:38:4"}],"id":9328,"name":"FunctionCall","src":"5199:47:4"}],"id":9329,"name":"ExpressionStatement","src":"5199:47:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"abis","referencedDeclaration":9179,"type":"mapping(uint256 => bytes storage ref)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9188,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":9330,"name":"Identifier","src":"5265:7:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9308,"type":"bytes32","value":"node"},"id":9331,"name":"Identifier","src":"5273:4:4"}],"id":9332,"name":"IndexAccess","src":"5265:13:4"}],"id":9333,"name":"MemberAccess","src":"5265:18:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9310,"type":"uint256","value":"contentType"},"id":9334,"name":"Identifier","src":"5284:11:4"}],"id":9335,"name":"IndexAccess","src":"5265:31:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9312,"type":"bytes memory","value":"data"},"id":9336,"name":"Identifier","src":"5299:4:4"}],"id":9337,"name":"Assignment","src":"5265:38:4"}],"id":9338,"name":"ExpressionStatement","src":"5265:38:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":9136,"type":"function (bytes32,uint256)","value":"ABIChanged"},"id":9339,"name":"Identifier","src":"5318:10:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9308,"type":"bytes32","value":"node"},"id":9340,"name":"Identifier","src":"5329:4:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9310,"type":"uint256","value":"contentType"},"id":9341,"name":"Identifier","src":"5335:11:4"}],"id":9342,"name":"FunctionCall","src":"5318:29:4"}],"id":9343,"name":"EmitStatement","src":"5313:34:4"}],"id":9344,"name":"Block","src":"5144:210:4"}],"id":9345,"name":"FunctionDefinition","src":"5057:297:4"},{"attributes":{"constant":false,"documentation":"Sets the SECP256k1 public key associated with an ENS node.\n@param node The ENS node to query\n@param x the X coordinate of the curve point for the public key.\n@param y the Y coordinate of the curve point for the public key.","implemented":true,"isConstructor":false,"name":"setPubkey","payable":false,"scope":9593,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":9374,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9346,"name":"ElementaryTypeName","src":"5650:7:4"}],"id":9347,"name":"VariableDeclaration","src":"5650:12:4"},{"attributes":{"constant":false,"name":"x","scope":9374,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9348,"name":"ElementaryTypeName","src":"5664:7:4"}],"id":9349,"name":"VariableDeclaration","src":"5664:9:4"},{"attributes":{"constant":false,"name":"y","scope":9374,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9350,"name":"ElementaryTypeName","src":"5675:7:4"}],"id":9351,"name":"VariableDeclaration","src":"5675:9:4"}],"id":9352,"name":"ParameterList","src":"5649:36:4"},{"attributes":{"parameters":[null]},"children":[],"id":9356,"name":"ParameterList","src":"5710:0:4"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9204,"type":"modifier (bytes32)","value":"only_owner"},"id":9353,"name":"Identifier","src":"5693:10:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9347,"type":"bytes32","value":"node"},"id":9354,"name":"Identifier","src":"5704:4:4"}],"id":9355,"name":"ModifierInvocation","src":"5693:16:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"struct PublicResolver.PublicKey storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"pubkey","referencedDeclaration":9171,"type":"struct PublicResolver.PublicKey storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9188,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":9357,"name":"Identifier","src":"5720:7:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9347,"type":"bytes32","value":"node"},"id":9358,"name":"Identifier","src":"5728:4:4"}],"id":9359,"name":"IndexAccess","src":"5720:13:4"}],"id":9360,"name":"MemberAccess","src":"5720:20:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":true,"lValueRequested":false,"names":[null],"type":"struct PublicResolver.PublicKey memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[null],"referencedDeclaration":9163,"type":"type(struct PublicResolver.PublicKey storage pointer)","value":"PublicKey"},"id":9361,"name":"Identifier","src":"5743:9:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9349,"type":"bytes32","value":"x"},"id":9362,"name":"Identifier","src":"5753:1:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9351,"type":"bytes32","value":"y"},"id":9363,"name":"Identifier","src":"5756:1:4"}],"id":9364,"name":"FunctionCall","src":"5743:15:4"}],"id":9365,"name":"Assignment","src":"5720:38:4"}],"id":9366,"name":"ExpressionStatement","src":"5720:38:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[null],"referencedDeclaration":9144,"type":"function (bytes32,bytes32,bytes32)","value":"PubkeyChanged"},"id":9367,"name":"Identifier","src":"5773:13:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9347,"type":"bytes32","value":"node"},"id":9368,"name":"Identifier","src":"5787:4:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9349,"type":"bytes32","value":"x"},"id":9369,"name":"Identifier","src":"5793:1:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9351,"type":"bytes32","value":"y"},"id":9370,"name":"Identifier","src":"5796:1:4"}],"id":9371,"name":"FunctionCall","src":"5773:25:4"}],"id":9372,"name":"EmitStatement","src":"5768:30:4"}],"id":9373,"name":"Block","src":"5710:95:4"}],"id":9374,"name":"FunctionDefinition","src":"5631:174:4"},{"attributes":{"constant":false,"documentation":"Sets the text data associated with an ENS node and key.\nMay only be called by the owner of that node in the ENS registry.\n@param node The node to update.\n@param key The key to set.\n@param value The text data value to set.","implemented":true,"isConstructor":false,"name":"setText","payable":false,"scope":9593,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":9402,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9375,"name":"ElementaryTypeName","src":"6101:7:4"}],"id":9376,"name":"VariableDeclaration","src":"6101:12:4"},{"attributes":{"constant":false,"name":"key","scope":9402,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":9377,"name":"ElementaryTypeName","src":"6115:6:4"}],"id":9378,"name":"VariableDeclaration","src":"6115:10:4"},{"attributes":{"constant":false,"name":"value","scope":9402,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":9379,"name":"ElementaryTypeName","src":"6127:6:4"}],"id":9380,"name":"VariableDeclaration","src":"6127:12:4"}],"id":9381,"name":"ParameterList","src":"6100:40:4"},{"attributes":{"parameters":[null]},"children":[],"id":9385,"name":"ParameterList","src":"6165:0:4"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9204,"type":"modifier (bytes32)","value":"only_owner"},"id":9382,"name":"Identifier","src":"6148:10:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9376,"type":"bytes32","value":"node"},"id":9383,"name":"Identifier","src":"6159:4:4"}],"id":9384,"name":"ModifierInvocation","src":"6148:16:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"text","referencedDeclaration":9175,"type":"mapping(string memory => string storage ref)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9188,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":9386,"name":"Identifier","src":"6175:7:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9376,"type":"bytes32","value":"node"},"id":9387,"name":"Identifier","src":"6183:4:4"}],"id":9388,"name":"IndexAccess","src":"6175:13:4"}],"id":9389,"name":"MemberAccess","src":"6175:18:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9378,"type":"string memory","value":"key"},"id":9390,"name":"Identifier","src":"6194:3:4"}],"id":9391,"name":"IndexAccess","src":"6175:23:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9380,"type":"string memory","value":"value"},"id":9392,"name":"Identifier","src":"6201:5:4"}],"id":9393,"name":"Assignment","src":"6175:31:4"}],"id":9394,"name":"ExpressionStatement","src":"6175:31:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"overloadedDeclarations":[null],"referencedDeclaration":9152,"type":"function (bytes32,string memory,string memory)","value":"TextChanged"},"id":9395,"name":"Identifier","src":"6221:11:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9376,"type":"bytes32","value":"node"},"id":9396,"name":"Identifier","src":"6233:4:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9378,"type":"string memory","value":"key"},"id":9397,"name":"Identifier","src":"6239:3:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9378,"type":"string memory","value":"key"},"id":9398,"name":"Identifier","src":"6244:3:4"}],"id":9399,"name":"FunctionCall","src":"6221:27:4"}],"id":9400,"name":"EmitStatement","src":"6216:32:4"}],"id":9401,"name":"Block","src":"6165:90:4"}],"id":9402,"name":"FunctionDefinition","src":"6084:171:4"},{"attributes":{"constant":true,"documentation":"Returns the text data associated with an ENS node and key.\n@param node The ENS node to query.\n@param key The text data key to query.\n@return The associated text data.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"text","payable":false,"scope":9593,"stateMutability":"view","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":9419,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9403,"name":"ElementaryTypeName","src":"6486:7:4"}],"id":9404,"name":"VariableDeclaration","src":"6486:12:4"},{"attributes":{"constant":false,"name":"key","scope":9419,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":9405,"name":"ElementaryTypeName","src":"6500:6:4"}],"id":9406,"name":"VariableDeclaration","src":"6500:10:4"}],"id":9407,"name":"ParameterList","src":"6485:26:4"},{"children":[{"attributes":{"constant":false,"name":"","scope":9419,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":9408,"name":"ElementaryTypeName","src":"6533:6:4"}],"id":9409,"name":"VariableDeclaration","src":"6533:6:4"}],"id":9410,"name":"ParameterList","src":"6532:8:4"},{"children":[{"attributes":{"functionReturnParameters":9410},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"text","referencedDeclaration":9175,"type":"mapping(string memory => string storage ref)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9188,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":9411,"name":"Identifier","src":"6558:7:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9404,"type":"bytes32","value":"node"},"id":9412,"name":"Identifier","src":"6566:4:4"}],"id":9413,"name":"IndexAccess","src":"6558:13:4"}],"id":9414,"name":"MemberAccess","src":"6558:18:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9406,"type":"string memory","value":"key"},"id":9415,"name":"Identifier","src":"6577:3:4"}],"id":9416,"name":"IndexAccess","src":"6558:23:4"}],"id":9417,"name":"Return","src":"6551:30:4"}],"id":9418,"name":"Block","src":"6541:47:4"}],"id":9419,"name":"FunctionDefinition","src":"6472:116:4"},{"attributes":{"constant":true,"documentation":"Returns the SECP256k1 public key associated with an ENS node.\nDefined in EIP 619.\n@param node The ENS node to query\n@return x, y the X and Y coordinates of the curve point for the public key.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"pubkey","payable":false,"scope":9593,"stateMutability":"view","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":9441,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9420,"name":"ElementaryTypeName","src":"6846:7:4"}],"id":9421,"name":"VariableDeclaration","src":"6846:12:4"}],"id":9422,"name":"ParameterList","src":"6845:14:4"},{"children":[{"attributes":{"constant":false,"name":"x","scope":9441,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9423,"name":"ElementaryTypeName","src":"6881:7:4"}],"id":9424,"name":"VariableDeclaration","src":"6881:9:4"},{"attributes":{"constant":false,"name":"y","scope":9441,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9425,"name":"ElementaryTypeName","src":"6892:7:4"}],"id":9426,"name":"VariableDeclaration","src":"6892:9:4"}],"id":9427,"name":"ParameterList","src":"6880:22:4"},{"children":[{"attributes":{"functionReturnParameters":9427},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"tuple(bytes32,bytes32)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"x","referencedDeclaration":9160,"type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"pubkey","referencedDeclaration":9171,"type":"struct PublicResolver.PublicKey storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9188,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":9428,"name":"Identifier","src":"6921:7:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9421,"type":"bytes32","value":"node"},"id":9429,"name":"Identifier","src":"6929:4:4"}],"id":9430,"name":"IndexAccess","src":"6921:13:4"}],"id":9431,"name":"MemberAccess","src":"6921:20:4"}],"id":9432,"name":"MemberAccess","src":"6921:22:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"y","referencedDeclaration":9162,"type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"pubkey","referencedDeclaration":9171,"type":"struct PublicResolver.PublicKey storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9188,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":9433,"name":"Identifier","src":"6945:7:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9421,"type":"bytes32","value":"node"},"id":9434,"name":"Identifier","src":"6953:4:4"}],"id":9435,"name":"IndexAccess","src":"6945:13:4"}],"id":9436,"name":"MemberAccess","src":"6945:20:4"}],"id":9437,"name":"MemberAccess","src":"6945:22:4"}],"id":9438,"name":"TupleExpression","src":"6920:48:4"}],"id":9439,"name":"Return","src":"6913:55:4"}],"id":9440,"name":"Block","src":"6903:72:4"}],"id":9441,"name":"FunctionDefinition","src":"6830:145:4"},{"attributes":{"constant":true,"documentation":"Returns the ABI associated with an ENS node.\nDefined in EIP205.\n@param node The ENS node to query\n@param contentTypes A bitwise OR of the ABI formats accepted by the caller.\n@return contentType The content type of the return value\n@return data The ABI data","implemented":true,"isConstructor":false,"modifiers":[null],"name":"ABI","payable":false,"scope":9593,"stateMutability":"view","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":9500,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9442,"name":"ElementaryTypeName","src":"7309:7:4"}],"id":9443,"name":"VariableDeclaration","src":"7309:12:4"},{"attributes":{"constant":false,"name":"contentTypes","scope":9500,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":9444,"name":"ElementaryTypeName","src":"7323:7:4"}],"id":9445,"name":"VariableDeclaration","src":"7323:20:4"}],"id":9446,"name":"ParameterList","src":"7308:36:4"},{"children":[{"attributes":{"constant":false,"name":"contentType","scope":9500,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":9447,"name":"ElementaryTypeName","src":"7366:7:4"}],"id":9448,"name":"VariableDeclaration","src":"7366:19:4"},{"attributes":{"constant":false,"name":"data","scope":9500,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":9449,"name":"ElementaryTypeName","src":"7387:5:4"}],"id":9450,"name":"VariableDeclaration","src":"7387:10:4"}],"id":9451,"name":"ParameterList","src":"7365:33:4"},{"children":[{"attributes":{"assignments":[9453]},"children":[{"attributes":{"constant":false,"name":"record","scope":9500,"stateVariable":false,"storageLocation":"storage","type":"struct PublicResolver.Record","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"Record","referencedDeclaration":9182,"type":"struct PublicResolver.Record"},"id":9452,"name":"UserDefinedTypeName","src":"7409:6:4"}],"id":9453,"name":"VariableDeclaration","src":"7409:21:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9188,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":9454,"name":"Identifier","src":"7433:7:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9443,"type":"bytes32","value":"node"},"id":9455,"name":"Identifier","src":"7441:4:4"}],"id":9456,"name":"IndexAccess","src":"7433:13:4"}],"id":9457,"name":"VariableDeclarationStatement","src":"7409:37:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9448,"type":"uint256","value":"contentType"},"id":9458,"name":"Identifier","src":"7461:11:4"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":9459,"name":"Literal","src":"7475:1:4"}],"id":9460,"name":"Assignment","src":"7461:15:4"}],"id":9461,"name":"ExpressionStatement","src":"7461:15:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9448,"type":"uint256","value":"contentType"},"id":9462,"name":"Identifier","src":"7478:11:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9445,"type":"uint256","value":"contentTypes"},"id":9463,"name":"Identifier","src":"7493:12:4"}],"id":9464,"name":"BinaryOperation","src":"7478:27:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<<=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9448,"type":"uint256","value":"contentType"},"id":9465,"name":"Identifier","src":"7507:11:4"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":9466,"name":"Literal","src":"7523:1:4"}],"id":9467,"name":"Assignment","src":"7507:17:4"}],"id":9468,"name":"ExpressionStatement","src":"7507:17:4"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&&","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9448,"type":"uint256","value":"contentType"},"id":9469,"name":"Identifier","src":"7545:11:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9445,"type":"uint256","value":"contentTypes"},"id":9470,"name":"Identifier","src":"7559:12:4"}],"id":9471,"name":"BinaryOperation","src":"7545:26:4"}],"id":9472,"name":"TupleExpression","src":"7544:28:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":9473,"name":"Literal","src":"7576:1:4"}],"id":9474,"name":"BinaryOperation","src":"7544:33:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"abis","referencedDeclaration":9179,"type":"mapping(uint256 => bytes storage ref)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9453,"type":"struct PublicResolver.Record storage pointer","value":"record"},"id":9475,"name":"Identifier","src":"7581:6:4"}],"id":9476,"name":"MemberAccess","src":"7581:11:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9448,"type":"uint256","value":"contentType"},"id":9477,"name":"Identifier","src":"7593:11:4"}],"id":9478,"name":"IndexAccess","src":"7581:24:4"}],"id":9479,"name":"MemberAccess","src":"7581:31:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":9480,"name":"Literal","src":"7615:1:4"}],"id":9481,"name":"BinaryOperation","src":"7581:35:4"}],"id":9482,"name":"BinaryOperation","src":"7544:72:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9450,"type":"bytes memory","value":"data"},"id":9483,"name":"Identifier","src":"7636:4:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"abis","referencedDeclaration":9179,"type":"mapping(uint256 => bytes storage ref)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9453,"type":"struct PublicResolver.Record storage pointer","value":"record"},"id":9484,"name":"Identifier","src":"7643:6:4"}],"id":9485,"name":"MemberAccess","src":"7643:11:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9448,"type":"uint256","value":"contentType"},"id":9486,"name":"Identifier","src":"7655:11:4"}],"id":9487,"name":"IndexAccess","src":"7643:24:4"}],"id":9488,"name":"Assignment","src":"7636:31:4"}],"id":9489,"name":"ExpressionStatement","src":"7636:31:4"},{"attributes":{"expression":null,"functionReturnParameters":9451},"id":9490,"name":"Return","src":"7685:7:4"}],"id":9491,"name":"Block","src":"7618:88:4"}],"id":9492,"name":"IfStatement","src":"7540:166:4"}],"id":9493,"name":"Block","src":"7526:190:4"}],"id":9494,"name":"ForStatement","src":"7456:260:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9448,"type":"uint256","value":"contentType"},"id":9495,"name":"Identifier","src":"7725:11:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":9496,"name":"Literal","src":"7739:1:4"}],"id":9497,"name":"Assignment","src":"7725:15:4"}],"id":9498,"name":"ExpressionStatement","src":"7725:15:4"}],"id":9499,"name":"Block","src":"7399:348:4"}],"id":9500,"name":"FunctionDefinition","src":"7296:451:4"},{"attributes":{"constant":true,"documentation":"Returns the name associated with an ENS node, for reverse records.\nDefined in EIP181.\n@param node The ENS node to query.\n@return The associated name.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"name","payable":false,"scope":9593,"stateMutability":"view","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":9513,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9501,"name":"ElementaryTypeName","src":"7961:7:4"}],"id":9502,"name":"VariableDeclaration","src":"7961:12:4"}],"id":9503,"name":"ParameterList","src":"7960:14:4"},{"children":[{"attributes":{"constant":false,"name":"","scope":9513,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":9504,"name":"ElementaryTypeName","src":"7996:6:4"}],"id":9505,"name":"VariableDeclaration","src":"7996:6:4"}],"id":9506,"name":"ParameterList","src":"7995:8:4"},{"children":[{"attributes":{"functionReturnParameters":9506},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"name","referencedDeclaration":9169,"type":"string storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9188,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":9507,"name":"Identifier","src":"8021:7:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9502,"type":"bytes32","value":"node"},"id":9508,"name":"Identifier","src":"8029:4:4"}],"id":9509,"name":"IndexAccess","src":"8021:13:4"}],"id":9510,"name":"MemberAccess","src":"8021:18:4"}],"id":9511,"name":"Return","src":"8014:25:4"}],"id":9512,"name":"Block","src":"8004:42:4"}],"id":9513,"name":"FunctionDefinition","src":"7947:99:4"},{"attributes":{"constant":true,"documentation":"Returns the content hash associated with an ENS node.\nNote that this resource type is not standardized, and will likely change\nin future to a resource type based on multihash.\n@param node The ENS node to query.\n@return The associated content hash.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"content","payable":false,"scope":9593,"stateMutability":"view","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":9526,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9514,"name":"ElementaryTypeName","src":"8368:7:4"}],"id":9515,"name":"VariableDeclaration","src":"8368:12:4"}],"id":9516,"name":"ParameterList","src":"8367:14:4"},{"children":[{"attributes":{"constant":false,"name":"","scope":9526,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9517,"name":"ElementaryTypeName","src":"8403:7:4"}],"id":9518,"name":"VariableDeclaration","src":"8403:7:4"}],"id":9519,"name":"ParameterList","src":"8402:9:4"},{"children":[{"attributes":{"functionReturnParameters":9519},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"content","referencedDeclaration":9167,"type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9188,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":9520,"name":"Identifier","src":"8429:7:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9515,"type":"bytes32","value":"node"},"id":9521,"name":"Identifier","src":"8437:4:4"}],"id":9522,"name":"IndexAccess","src":"8429:13:4"}],"id":9523,"name":"MemberAccess","src":"8429:21:4"}],"id":9524,"name":"Return","src":"8422:28:4"}],"id":9525,"name":"Block","src":"8412:45:4"}],"id":9526,"name":"FunctionDefinition","src":"8351:106:4"},{"attributes":{"constant":true,"documentation":"Returns the multihash associated with an ENS node.\n@param node The ENS node to query.\n@return The associated multihash.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"multihash","payable":false,"scope":9593,"stateMutability":"view","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":9539,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9527,"name":"ElementaryTypeName","src":"8639:7:4"}],"id":9528,"name":"VariableDeclaration","src":"8639:12:4"}],"id":9529,"name":"ParameterList","src":"8638:14:4"},{"children":[{"attributes":{"constant":false,"name":"","scope":9539,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":9530,"name":"ElementaryTypeName","src":"8674:5:4"}],"id":9531,"name":"VariableDeclaration","src":"8674:5:4"}],"id":9532,"name":"ParameterList","src":"8673:7:4"},{"children":[{"attributes":{"functionReturnParameters":9532},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"multihash","referencedDeclaration":9181,"type":"bytes storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9188,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":9533,"name":"Identifier","src":"8698:7:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9528,"type":"bytes32","value":"node"},"id":9534,"name":"Identifier","src":"8706:4:4"}],"id":9535,"name":"IndexAccess","src":"8698:13:4"}],"id":9536,"name":"MemberAccess","src":"8698:23:4"}],"id":9537,"name":"Return","src":"8691:30:4"}],"id":9538,"name":"Block","src":"8681:47:4"}],"id":9539,"name":"FunctionDefinition","src":"8620:108:4"},{"attributes":{"constant":true,"documentation":"Returns the address associated with an ENS node.\n@param node The ENS node to query.\n@return The associated address.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"addr","payable":false,"scope":9593,"stateMutability":"view","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":9552,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9540,"name":"ElementaryTypeName","src":"8901:7:4"}],"id":9541,"name":"VariableDeclaration","src":"8901:12:4"}],"id":9542,"name":"ParameterList","src":"8900:14:4"},{"children":[{"attributes":{"constant":false,"name":"","scope":9552,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":9543,"name":"ElementaryTypeName","src":"8936:7:4"}],"id":9544,"name":"VariableDeclaration","src":"8936:7:4"}],"id":9545,"name":"ParameterList","src":"8935:9:4"},{"children":[{"attributes":{"functionReturnParameters":9545},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"addr","referencedDeclaration":9165,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9188,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":9546,"name":"Identifier","src":"8962:7:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9541,"type":"bytes32","value":"node"},"id":9547,"name":"Identifier","src":"8970:4:4"}],"id":9548,"name":"IndexAccess","src":"8962:13:4"}],"id":9549,"name":"MemberAccess","src":"8962:18:4"}],"id":9550,"name":"Return","src":"8955:25:4"}],"id":9551,"name":"Block","src":"8945:42:4"}],"id":9552,"name":"FunctionDefinition","src":"8887:100:4"},{"attributes":{"constant":true,"documentation":"Returns true if the resolver implements the interface specified by the provided hash.\n@param interfaceID The ID of the interface to check for.\n@return True if the contract implements the requested interface.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"supportsInterface","payable":false,"scope":9593,"stateMutability":"pure","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"interfaceID","scope":9592,"stateVariable":false,"storageLocation":"default","type":"bytes4","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes4","type":"bytes4"},"id":9553,"name":"ElementaryTypeName","src":"9265:6:4"}],"id":9554,"name":"VariableDeclaration","src":"9265:18:4"}],"id":9555,"name":"ParameterList","src":"9264:20:4"},{"children":[{"attributes":{"constant":false,"name":"","scope":9592,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":9556,"name":"ElementaryTypeName","src":"9306:4:4"}],"id":9557,"name":"VariableDeclaration","src":"9306:4:4"}],"id":9558,"name":"ParameterList","src":"9305:6:4"},{"children":[{"attributes":{"functionReturnParameters":9558},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"||","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"||","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"||","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"||","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"||","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"||","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"||","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9554,"type":"bytes4","value":"interfaceID"},"id":9559,"name":"Identifier","src":"9329:11:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9094,"type":"bytes4","value":"ADDR_INTERFACE_ID"},"id":9560,"name":"Identifier","src":"9344:17:4"}],"id":9561,"name":"BinaryOperation","src":"9329:32:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9554,"type":"bytes4","value":"interfaceID"},"id":9562,"name":"Identifier","src":"9373:11:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9097,"type":"bytes4","value":"CONTENT_INTERFACE_ID"},"id":9563,"name":"Identifier","src":"9388:20:4"}],"id":9564,"name":"BinaryOperation","src":"9373:35:4"}],"id":9565,"name":"BinaryOperation","src":"9329:79:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9554,"type":"bytes4","value":"interfaceID"},"id":9566,"name":"Identifier","src":"9420:11:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9100,"type":"bytes4","value":"NAME_INTERFACE_ID"},"id":9567,"name":"Identifier","src":"9435:17:4"}],"id":9568,"name":"BinaryOperation","src":"9420:32:4"}],"id":9569,"name":"BinaryOperation","src":"9329:123:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9554,"type":"bytes4","value":"interfaceID"},"id":9570,"name":"Identifier","src":"9464:11:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9103,"type":"bytes4","value":"ABI_INTERFACE_ID"},"id":9571,"name":"Identifier","src":"9479:16:4"}],"id":9572,"name":"BinaryOperation","src":"9464:31:4"}],"id":9573,"name":"BinaryOperation","src":"9329:166:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9554,"type":"bytes4","value":"interfaceID"},"id":9574,"name":"Identifier","src":"9507:11:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9106,"type":"bytes4","value":"PUBKEY_INTERFACE_ID"},"id":9575,"name":"Identifier","src":"9522:19:4"}],"id":9576,"name":"BinaryOperation","src":"9507:34:4"}],"id":9577,"name":"BinaryOperation","src":"9329:212:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9554,"type":"bytes4","value":"interfaceID"},"id":9578,"name":"Identifier","src":"9553:11:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9109,"type":"bytes4","value":"TEXT_INTERFACE_ID"},"id":9579,"name":"Identifier","src":"9568:17:4"}],"id":9580,"name":"BinaryOperation","src":"9553:32:4"}],"id":9581,"name":"BinaryOperation","src":"9329:256:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9554,"type":"bytes4","value":"interfaceID"},"id":9582,"name":"Identifier","src":"9597:11:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9112,"type":"bytes4","value":"MULTIHASH_INTERFACE_ID"},"id":9583,"name":"Identifier","src":"9612:22:4"}],"id":9584,"name":"BinaryOperation","src":"9597:37:4"}],"id":9585,"name":"BinaryOperation","src":"9329:305:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9554,"type":"bytes4","value":"interfaceID"},"id":9586,"name":"Identifier","src":"9646:11:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9091,"type":"bytes4","value":"INTERFACE_META_ID"},"id":9587,"name":"Identifier","src":"9661:17:4"}],"id":9588,"name":"BinaryOperation","src":"9646:32:4"}],"id":9589,"name":"BinaryOperation","src":"9329:349:4"}],"id":9590,"name":"Return","src":"9322:356:4"}],"id":9591,"name":"Block","src":"9312:373:4"}],"id":9592,"name":"FunctionDefinition","src":"9238:447:4"}],"id":9593,"name":"ContractDefinition","src":"1553:8134:4"}],"id":9594,"name":"SourceUnit","src":"1406:8282:4"}},"externals/oraclizeAPI_0.4.25.sol":{"AST":{"attributes":{"absolutePath":"externals/oraclizeAPI_0.4.25.sol","exportedSymbols":{"Buffer":[1895],"CBOR":[2195],"OraclizeAddrResolverI":[1665],"OraclizeI":[1659],"usingOraclize":[7573]}},"children":[{"attributes":{"literals":["solidity",">=","0.4",".22"]},"id":1549,"name":"PragmaDirective","src":"1375:25:5"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"contract","documentation":null,"fullyImplemented":false,"linearizedBaseContracts":[1659],"name":"OraclizeI","scope":7574},"children":[{"attributes":{"constant":false,"name":"cbAddress","scope":1659,"stateVariable":true,"storageLocation":"default","type":"address","value":null,"visibility":"public"},"children":[{"attributes":{"name":"address","type":"address"},"id":1550,"name":"ElementaryTypeName","src":"1547:7:5"}],"id":1551,"name":"VariableDeclaration","src":"1547:24:5"},{"attributes":{"body":null,"constant":false,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"query","payable":true,"scope":1659,"stateMutability":"payable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_timestamp","scope":1562,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1552,"name":"ElementaryTypeName","src":"1592:4:5"}],"id":1553,"name":"VariableDeclaration","src":"1592:15:5"},{"attributes":{"constant":false,"name":"_datasource","scope":1562,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":1554,"name":"ElementaryTypeName","src":"1609:6:5"}],"id":1555,"name":"VariableDeclaration","src":"1609:18:5"},{"attributes":{"constant":false,"name":"_arg","scope":1562,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":1556,"name":"ElementaryTypeName","src":"1629:6:5"}],"id":1557,"name":"VariableDeclaration","src":"1629:11:5"}],"id":1558,"name":"ParameterList","src":"1591:50:5"},{"children":[{"attributes":{"constant":false,"name":"_id","scope":1562,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":1559,"name":"ElementaryTypeName","src":"1668:7:5"}],"id":1560,"name":"VariableDeclaration","src":"1668:11:5"}],"id":1561,"name":"ParameterList","src":"1667:13:5"}],"id":1562,"name":"FunctionDefinition","src":"1577:104:5"},{"attributes":{"body":null,"constant":false,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"query_withGasLimit","payable":true,"scope":1659,"stateMutability":"payable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_timestamp","scope":1575,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1563,"name":"ElementaryTypeName","src":"1714:4:5"}],"id":1564,"name":"VariableDeclaration","src":"1714:15:5"},{"attributes":{"constant":false,"name":"_datasource","scope":1575,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":1565,"name":"ElementaryTypeName","src":"1731:6:5"}],"id":1566,"name":"VariableDeclaration","src":"1731:18:5"},{"attributes":{"constant":false,"name":"_arg","scope":1575,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":1567,"name":"ElementaryTypeName","src":"1751:6:5"}],"id":1568,"name":"VariableDeclaration","src":"1751:11:5"},{"attributes":{"constant":false,"name":"_gaslimit","scope":1575,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1569,"name":"ElementaryTypeName","src":"1764:4:5"}],"id":1570,"name":"VariableDeclaration","src":"1764:14:5"}],"id":1571,"name":"ParameterList","src":"1713:66:5"},{"children":[{"attributes":{"constant":false,"name":"_id","scope":1575,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":1572,"name":"ElementaryTypeName","src":"1806:7:5"}],"id":1573,"name":"VariableDeclaration","src":"1806:11:5"}],"id":1574,"name":"ParameterList","src":"1805:13:5"}],"id":1575,"name":"FunctionDefinition","src":"1686:133:5"},{"attributes":{"body":null,"constant":false,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"query2","payable":true,"scope":1659,"stateMutability":"payable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"_timestamp","scope":1588,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1576,"name":"ElementaryTypeName","src":"1840:4:5"}],"id":1577,"name":"VariableDeclaration","src":"1840:15:5"},{"attributes":{"constant":false,"name":"_datasource","scope":1588,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":1578,"name":"ElementaryTypeName","src":"1857:6:5"}],"id":1579,"name":"VariableDeclaration","src":"1857:18:5"},{"attributes":{"constant":false,"name":"_arg1","scope":1588,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":1580,"name":"ElementaryTypeName","src":"1877:6:5"}],"id":1581,"name":"VariableDeclaration","src":"1877:12:5"},{"attributes":{"constant":false,"name":"_arg2","scope":1588,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":1582,"name":"ElementaryTypeName","src":"1891:6:5"}],"id":1583,"name":"VariableDeclaration","src":"1891:12:5"}],"id":1584,"name":"ParameterList","src":"1839:65:5"},{"children":[{"attributes":{"constant":false,"name":"_id","scope":1588,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":1585,"name":"ElementaryTypeName","src":"1929:7:5"}],"id":1586,"name":"VariableDeclaration","src":"1929:11:5"}],"id":1587,"name":"ParameterList","src":"1928:13:5"}],"id":1588,"name":"FunctionDefinition","src":"1824:118:5"},{"attributes":{"body":null,"constant":false,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"query2_withGasLimit","payable":true,"scope":1659,"stateMutability":"payable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_timestamp","scope":1603,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1589,"name":"ElementaryTypeName","src":"1976:4:5"}],"id":1590,"name":"VariableDeclaration","src":"1976:15:5"},{"attributes":{"constant":false,"name":"_datasource","scope":1603,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":1591,"name":"ElementaryTypeName","src":"1993:6:5"}],"id":1592,"name":"VariableDeclaration","src":"1993:18:5"},{"attributes":{"constant":false,"name":"_arg1","scope":1603,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":1593,"name":"ElementaryTypeName","src":"2013:6:5"}],"id":1594,"name":"VariableDeclaration","src":"2013:12:5"},{"attributes":{"constant":false,"name":"_arg2","scope":1603,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":1595,"name":"ElementaryTypeName","src":"2027:6:5"}],"id":1596,"name":"VariableDeclaration","src":"2027:12:5"},{"attributes":{"constant":false,"name":"_gaslimit","scope":1603,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1597,"name":"ElementaryTypeName","src":"2041:4:5"}],"id":1598,"name":"VariableDeclaration","src":"2041:14:5"}],"id":1599,"name":"ParameterList","src":"1975:81:5"},{"children":[{"attributes":{"constant":false,"name":"_id","scope":1603,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":1600,"name":"ElementaryTypeName","src":"2083:7:5"}],"id":1601,"name":"VariableDeclaration","src":"2083:11:5"}],"id":1602,"name":"ParameterList","src":"2082:13:5"}],"id":1603,"name":"FunctionDefinition","src":"1947:149:5"},{"attributes":{"body":null,"constant":false,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"queryN","payable":true,"scope":1659,"stateMutability":"payable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"_timestamp","scope":1614,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1604,"name":"ElementaryTypeName","src":"2117:4:5"}],"id":1605,"name":"VariableDeclaration","src":"2117:15:5"},{"attributes":{"constant":false,"name":"_datasource","scope":1614,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":1606,"name":"ElementaryTypeName","src":"2134:6:5"}],"id":1607,"name":"VariableDeclaration","src":"2134:18:5"},{"attributes":{"constant":false,"name":"_argN","scope":1614,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":1608,"name":"ElementaryTypeName","src":"2154:5:5"}],"id":1609,"name":"VariableDeclaration","src":"2154:11:5"}],"id":1610,"name":"ParameterList","src":"2116:50:5"},{"children":[{"attributes":{"constant":false,"name":"_id","scope":1614,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":1611,"name":"ElementaryTypeName","src":"2191:7:5"}],"id":1612,"name":"VariableDeclaration","src":"2191:11:5"}],"id":1613,"name":"ParameterList","src":"2190:13:5"}],"id":1614,"name":"FunctionDefinition","src":"2101:103:5"},{"attributes":{"body":null,"constant":false,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"queryN_withGasLimit","payable":true,"scope":1659,"stateMutability":"payable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_timestamp","scope":1627,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1615,"name":"ElementaryTypeName","src":"2238:4:5"}],"id":1616,"name":"VariableDeclaration","src":"2238:15:5"},{"attributes":{"constant":false,"name":"_datasource","scope":1627,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":1617,"name":"ElementaryTypeName","src":"2255:6:5"}],"id":1618,"name":"VariableDeclaration","src":"2255:18:5"},{"attributes":{"constant":false,"name":"_argN","scope":1627,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":1619,"name":"ElementaryTypeName","src":"2275:5:5"}],"id":1620,"name":"VariableDeclaration","src":"2275:11:5"},{"attributes":{"constant":false,"name":"_gaslimit","scope":1627,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1621,"name":"ElementaryTypeName","src":"2288:4:5"}],"id":1622,"name":"VariableDeclaration","src":"2288:14:5"}],"id":1623,"name":"ParameterList","src":"2237:66:5"},{"children":[{"attributes":{"constant":false,"name":"_id","scope":1627,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":1624,"name":"ElementaryTypeName","src":"2330:7:5"}],"id":1625,"name":"VariableDeclaration","src":"2330:11:5"}],"id":1626,"name":"ParameterList","src":"2329:13:5"}],"id":1627,"name":"FunctionDefinition","src":"2209:134:5"},{"attributes":{"body":null,"constant":false,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"getPrice","payable":false,"scope":1659,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"_datasource","scope":1634,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":1628,"name":"ElementaryTypeName","src":"2366:6:5"}],"id":1629,"name":"VariableDeclaration","src":"2366:18:5"}],"id":1630,"name":"ParameterList","src":"2365:20:5"},{"children":[{"attributes":{"constant":false,"name":"_dsprice","scope":1634,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1631,"name":"ElementaryTypeName","src":"2402:4:5"}],"id":1632,"name":"VariableDeclaration","src":"2402:13:5"}],"id":1633,"name":"ParameterList","src":"2401:15:5"}],"id":1634,"name":"FunctionDefinition","src":"2348:69:5"},{"attributes":{"body":null,"constant":false,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"getPrice","payable":false,"scope":1659,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"_datasource","scope":1643,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":1635,"name":"ElementaryTypeName","src":"2440:6:5"}],"id":1636,"name":"VariableDeclaration","src":"2440:18:5"},{"attributes":{"constant":false,"name":"gaslimit","scope":1643,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1637,"name":"ElementaryTypeName","src":"2460:4:5"}],"id":1638,"name":"VariableDeclaration","src":"2460:13:5"}],"id":1639,"name":"ParameterList","src":"2439:35:5"},{"children":[{"attributes":{"constant":false,"name":"_dsprice","scope":1643,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1640,"name":"ElementaryTypeName","src":"2491:4:5"}],"id":1641,"name":"VariableDeclaration","src":"2491:13:5"}],"id":1642,"name":"ParameterList","src":"2490:15:5"}],"id":1643,"name":"FunctionDefinition","src":"2422:84:5"},{"attributes":{"body":null,"constant":false,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"setProofType","payable":false,"scope":1659,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_proofType","scope":1648,"stateVariable":false,"storageLocation":"default","type":"bytes1","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"byte","type":"bytes1"},"id":1644,"name":"ElementaryTypeName","src":"2533:4:5"}],"id":1645,"name":"VariableDeclaration","src":"2533:15:5"}],"id":1646,"name":"ParameterList","src":"2532:17:5"},{"attributes":{"parameters":[null]},"children":[],"id":1647,"name":"ParameterList","src":"2558:0:5"}],"id":1648,"name":"FunctionDefinition","src":"2511:48:5"},{"attributes":{"body":null,"constant":false,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"setCustomGasPrice","payable":false,"scope":1659,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_gasPrice","scope":1653,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1649,"name":"ElementaryTypeName","src":"2591:4:5"}],"id":1650,"name":"VariableDeclaration","src":"2591:14:5"}],"id":1651,"name":"ParameterList","src":"2590:16:5"},{"attributes":{"parameters":[null]},"children":[],"id":1652,"name":"ParameterList","src":"2615:0:5"}],"id":1653,"name":"FunctionDefinition","src":"2564:52:5"},{"attributes":{"body":null,"constant":true,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"randomDS_getSessionPubKeyHash","payable":false,"scope":1659,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":1654,"name":"ParameterList","src":"2659:2:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":1658,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":1655,"name":"ElementaryTypeName","src":"2688:7:5"}],"id":1656,"name":"VariableDeclaration","src":"2688:7:5"}],"id":1657,"name":"ParameterList","src":"2687:9:5"}],"id":1658,"name":"FunctionDefinition","src":"2621:76:5"}],"id":1659,"name":"ContractDefinition","src":"1522:1177:5"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"contract","documentation":null,"fullyImplemented":false,"linearizedBaseContracts":[1665],"name":"OraclizeAddrResolverI","scope":7574},"children":[{"attributes":{"body":null,"constant":false,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"getAddress","payable":false,"scope":1665,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":1660,"name":"ParameterList","src":"2757:2:5"},{"children":[{"attributes":{"constant":false,"name":"_addr","scope":1664,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":1661,"name":"ElementaryTypeName","src":"2776:7:5"}],"id":1662,"name":"VariableDeclaration","src":"2776:13:5"}],"id":1663,"name":"ParameterList","src":"2775:15:5"}],"id":1664,"name":"FunctionDefinition","src":"2738:53:5"}],"id":1665,"name":"ContractDefinition","src":"2701:92:5"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"library","documentation":null,"fullyImplemented":true,"linearizedBaseContracts":[1895],"name":"Buffer","scope":7574},"children":[{"attributes":{"canonicalName":"Buffer.buffer","name":"buffer","scope":1895,"visibility":"public"},"children":[{"attributes":{"constant":false,"name":"buf","scope":1670,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":1666,"name":"ElementaryTypeName","src":"4016:5:5"}],"id":1667,"name":"VariableDeclaration","src":"4016:9:5"},{"attributes":{"constant":false,"name":"capacity","scope":1670,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1668,"name":"ElementaryTypeName","src":"4035:4:5"}],"id":1669,"name":"VariableDeclaration","src":"4035:13:5"}],"id":1670,"name":"StructDefinition","src":"3992:63:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"init","payable":false,"scope":1895,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"buf","scope":1704,"stateVariable":false,"storageLocation":"memory","type":"struct Buffer.buffer","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"buffer","referencedDeclaration":1670,"type":"struct Buffer.buffer"},"id":1671,"name":"UserDefinedTypeName","src":"4075:6:5"}],"id":1672,"name":"VariableDeclaration","src":"4075:17:5"},{"attributes":{"constant":false,"name":"_capacity","scope":1704,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1673,"name":"ElementaryTypeName","src":"4094:4:5"}],"id":1674,"name":"VariableDeclaration","src":"4094:14:5"}],"id":1675,"name":"ParameterList","src":"4074:35:5"},{"attributes":{"parameters":[null]},"children":[],"id":1676,"name":"ParameterList","src":"4124:0:5"},{"children":[{"attributes":{"assignments":[1678]},"children":[{"attributes":{"constant":false,"name":"capacity","scope":1704,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1677,"name":"ElementaryTypeName","src":"4134:4:5"}],"id":1678,"name":"VariableDeclaration","src":"4134:13:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1674,"type":"uint256","value":"_capacity"},"id":1679,"name":"Identifier","src":"4150:9:5"}],"id":1680,"name":"VariableDeclarationStatement","src":"4134:25:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"%","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1678,"type":"uint256","value":"capacity"},"id":1681,"name":"Identifier","src":"4172:8:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":1682,"name":"Literal","src":"4183:2:5"}],"id":1683,"name":"BinaryOperation","src":"4172:13:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1684,"name":"Literal","src":"4189:1:5"}],"id":1685,"name":"BinaryOperation","src":"4172:18:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1678,"type":"uint256","value":"capacity"},"id":1686,"name":"Identifier","src":"4192:8:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":1687,"name":"Literal","src":"4204:2:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"%","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1678,"type":"uint256","value":"capacity"},"id":1688,"name":"Identifier","src":"4210:8:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":1689,"name":"Literal","src":"4221:2:5"}],"id":1690,"name":"BinaryOperation","src":"4210:13:5"}],"id":1691,"name":"TupleExpression","src":"4209:15:5"}],"id":1692,"name":"BinaryOperation","src":"4204:20:5"}],"id":1693,"name":"Assignment","src":"4192:32:5"}],"id":1694,"name":"ExpressionStatement","src":"4192:32:5"}],"id":1695,"name":"IfStatement","src":"4169:55:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"capacity","referencedDeclaration":1669,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1672,"type":"struct Buffer.buffer memory","value":"buf"},"id":1696,"name":"Identifier","src":"4280:3:5"}],"id":1698,"name":"MemberAccess","src":"4280:12:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1678,"type":"uint256","value":"capacity"},"id":1699,"name":"Identifier","src":"4295:8:5"}],"id":1700,"name":"Assignment","src":"4280:23:5"}],"id":1701,"name":"ExpressionStatement","src":"4280:23:5"},{"attributes":{"externalReferences":[{"buf":{"declaration":1672,"isOffset":false,"isSlot":false,"src":"4378:3:5","valueSize":1}},{"capacity":{"declaration":1678,"isOffset":false,"isSlot":false,"src":"4449:8:5","valueSize":1}}],"operations":"{\n let ptr := mload(0x40)\n mstore(buf, ptr)\n mstore(ptr, 0)\n mstore(0x40, add(ptr, capacity))\n}"},"children":[],"id":1702,"name":"InlineAssembly","src":"4313:162:5"}],"id":1703,"name":"Block","src":"4124:351:5"}],"id":1704,"name":"FunctionDefinition","src":"4061:414:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"resize","payable":false,"scope":1895,"stateMutability":"pure","superFunction":null,"visibility":"private"},"children":[{"children":[{"attributes":{"constant":false,"name":"buf","scope":1727,"stateVariable":false,"storageLocation":"memory","type":"struct Buffer.buffer","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"buffer","referencedDeclaration":1670,"type":"struct Buffer.buffer"},"id":1705,"name":"UserDefinedTypeName","src":"4497:6:5"}],"id":1706,"name":"VariableDeclaration","src":"4497:17:5"},{"attributes":{"constant":false,"name":"capacity","scope":1727,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1707,"name":"ElementaryTypeName","src":"4516:4:5"}],"id":1708,"name":"VariableDeclaration","src":"4516:13:5"}],"id":1709,"name":"ParameterList","src":"4496:34:5"},{"attributes":{"parameters":[null]},"children":[],"id":1710,"name":"ParameterList","src":"4544:0:5"},{"children":[{"attributes":{"assignments":[1712]},"children":[{"attributes":{"constant":false,"name":"oldbuf","scope":1727,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":1711,"name":"ElementaryTypeName","src":"4554:5:5"}],"id":1712,"name":"VariableDeclaration","src":"4554:19:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"buf","referencedDeclaration":1667,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1706,"type":"struct Buffer.buffer memory","value":"buf"},"id":1713,"name":"Identifier","src":"4576:3:5"}],"id":1714,"name":"MemberAccess","src":"4576:7:5"}],"id":1715,"name":"VariableDeclarationStatement","src":"4554:29:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1670_memory_ptr","typeString":"struct Buffer.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":1704,"type":"function (struct Buffer.buffer memory,uint256) pure","value":"init"},"id":1716,"name":"Identifier","src":"4593:4:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1706,"type":"struct Buffer.buffer memory","value":"buf"},"id":1717,"name":"Identifier","src":"4598:3:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1708,"type":"uint256","value":"capacity"},"id":1718,"name":"Identifier","src":"4603:8:5"}],"id":1719,"name":"FunctionCall","src":"4593:19:5"}],"id":1720,"name":"ExpressionStatement","src":"4593:19:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"struct Buffer.buffer memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1670_memory_ptr","typeString":"struct Buffer.buffer memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"overloadedDeclarations":[1823,1850],"referencedDeclaration":1823,"type":"function (struct Buffer.buffer memory,bytes memory) pure returns (struct Buffer.buffer memory)","value":"append"},"id":1721,"name":"Identifier","src":"4622:6:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1706,"type":"struct Buffer.buffer memory","value":"buf"},"id":1722,"name":"Identifier","src":"4629:3:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1712,"type":"bytes memory","value":"oldbuf"},"id":1723,"name":"Identifier","src":"4634:6:5"}],"id":1724,"name":"FunctionCall","src":"4622:19:5"}],"id":1725,"name":"ExpressionStatement","src":"4622:19:5"}],"id":1726,"name":"Block","src":"4544:104:5"}],"id":1727,"name":"FunctionDefinition","src":"4481:167:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"max","payable":false,"scope":1895,"stateMutability":"pure","superFunction":null,"visibility":"private"},"children":[{"children":[{"attributes":{"constant":false,"name":"a","scope":1746,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1728,"name":"ElementaryTypeName","src":"4667:4:5"}],"id":1729,"name":"VariableDeclaration","src":"4667:6:5"},{"attributes":{"constant":false,"name":"b","scope":1746,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1730,"name":"ElementaryTypeName","src":"4675:4:5"}],"id":1731,"name":"VariableDeclaration","src":"4675:6:5"}],"id":1732,"name":"ParameterList","src":"4666:16:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":1746,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1733,"name":"ElementaryTypeName","src":"4704:4:5"}],"id":1734,"name":"VariableDeclaration","src":"4704:4:5"}],"id":1735,"name":"ParameterList","src":"4703:6:5"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1729,"type":"uint256","value":"a"},"id":1736,"name":"Identifier","src":"4723:1:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1731,"type":"uint256","value":"b"},"id":1737,"name":"Identifier","src":"4727:1:5"}],"id":1738,"name":"BinaryOperation","src":"4723:5:5"},{"children":[{"attributes":{"functionReturnParameters":1735},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1729,"type":"uint256","value":"a"},"id":1739,"name":"Identifier","src":"4751:1:5"}],"id":1740,"name":"Return","src":"4744:8:5"}],"id":1741,"name":"Block","src":"4730:33:5"}],"id":1742,"name":"IfStatement","src":"4720:43:5"},{"attributes":{"functionReturnParameters":1735},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1731,"type":"uint256","value":"b"},"id":1743,"name":"Identifier","src":"4779:1:5"}],"id":1744,"name":"Return","src":"4772:8:5"}],"id":1745,"name":"Block","src":"4710:77:5"}],"id":1746,"name":"FunctionDefinition","src":"4654:133:5"},{"attributes":{"constant":true,"documentation":"@dev Appends a byte array to the end of the buffer. Resizes if doing so\n would exceed the capacity of the buffer.\n@param buf The buffer to append to.\n@param data The data to append.\n@return The original buffer.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"append","payable":false,"scope":1895,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"buf","scope":1823,"stateVariable":false,"storageLocation":"memory","type":"struct Buffer.buffer","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"buffer","referencedDeclaration":1670,"type":"struct Buffer.buffer"},"id":1747,"name":"UserDefinedTypeName","src":"5075:6:5"}],"id":1748,"name":"VariableDeclaration","src":"5075:17:5"},{"attributes":{"constant":false,"name":"data","scope":1823,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":1749,"name":"ElementaryTypeName","src":"5094:5:5"}],"id":1750,"name":"VariableDeclaration","src":"5094:10:5"}],"id":1751,"name":"ParameterList","src":"5074:31:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":1823,"stateVariable":false,"storageLocation":"memory","type":"struct Buffer.buffer","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"buffer","referencedDeclaration":1670,"type":"struct Buffer.buffer"},"id":1752,"name":"UserDefinedTypeName","src":"5128:6:5"}],"id":1753,"name":"VariableDeclaration","src":"5128:6:5"}],"id":1754,"name":"ParameterList","src":"5127:15:5"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1750,"type":"bytes memory","value":"data"},"id":1755,"name":"Identifier","src":"5156:4:5"}],"id":1756,"name":"MemberAccess","src":"5156:11:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"buf","referencedDeclaration":1667,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1748,"type":"struct Buffer.buffer memory","value":"buf"},"id":1757,"name":"Identifier","src":"5170:3:5"}],"id":1758,"name":"MemberAccess","src":"5170:7:5"}],"id":1759,"name":"MemberAccess","src":"5170:14:5"}],"id":1760,"name":"BinaryOperation","src":"5156:28:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"capacity","referencedDeclaration":1669,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1748,"type":"struct Buffer.buffer memory","value":"buf"},"id":1761,"name":"Identifier","src":"5187:3:5"}],"id":1762,"name":"MemberAccess","src":"5187:12:5"}],"id":1763,"name":"BinaryOperation","src":"5156:43:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1670_memory_ptr","typeString":"struct Buffer.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":1727,"type":"function (struct Buffer.buffer memory,uint256) pure","value":"resize"},"id":1764,"name":"Identifier","src":"5215:6:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1748,"type":"struct Buffer.buffer memory","value":"buf"},"id":1765,"name":"Identifier","src":"5222:3:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":1746,"type":"function (uint256,uint256) pure returns (uint256)","value":"max"},"id":1766,"name":"Identifier","src":"5227:3:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"capacity","referencedDeclaration":1669,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1748,"type":"struct Buffer.buffer memory","value":"buf"},"id":1767,"name":"Identifier","src":"5231:3:5"}],"id":1768,"name":"MemberAccess","src":"5231:12:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1750,"type":"bytes memory","value":"data"},"id":1769,"name":"Identifier","src":"5245:4:5"}],"id":1770,"name":"MemberAccess","src":"5245:11:5"}],"id":1771,"name":"FunctionCall","src":"5227:30:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":1772,"name":"Literal","src":"5260:1:5"}],"id":1773,"name":"BinaryOperation","src":"5227:34:5"}],"id":1774,"name":"FunctionCall","src":"5215:47:5"}],"id":1775,"name":"ExpressionStatement","src":"5215:47:5"}],"id":1776,"name":"Block","src":"5201:72:5"}],"id":1777,"name":"IfStatement","src":"5153:120:5"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"dest","scope":1823,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1778,"name":"ElementaryTypeName","src":"5283:4:5"}],"id":1779,"name":"VariableDeclaration","src":"5283:9:5"}],"id":1780,"name":"VariableDeclarationStatement","src":"5283:9:5"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"src","scope":1823,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1781,"name":"ElementaryTypeName","src":"5302:4:5"}],"id":1782,"name":"VariableDeclaration","src":"5302:8:5"}],"id":1783,"name":"VariableDeclarationStatement","src":"5302:8:5"},{"attributes":{"assignments":[1785]},"children":[{"attributes":{"constant":false,"name":"len","scope":1823,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1784,"name":"ElementaryTypeName","src":"5320:4:5"}],"id":1785,"name":"VariableDeclaration","src":"5320:8:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1750,"type":"bytes memory","value":"data"},"id":1786,"name":"Identifier","src":"5331:4:5"}],"id":1787,"name":"MemberAccess","src":"5331:11:5"}],"id":1788,"name":"VariableDeclarationStatement","src":"5320:22:5"},{"attributes":{"externalReferences":[{"buf":{"declaration":1748,"isOffset":false,"isSlot":false,"src":"5444:3:5","valueSize":1}},{"data":{"declaration":1750,"isOffset":false,"isSlot":false,"src":"5751:4:5","valueSize":1}},{"dest":{"declaration":1779,"isOffset":false,"isSlot":false,"src":"5633:4:5","valueSize":1}},{"src":{"declaration":1782,"isOffset":false,"isSlot":false,"src":"5771:3:5","valueSize":1}},{"data":{"declaration":1750,"isOffset":false,"isSlot":false,"src":"5782:4:5","valueSize":1}}],"operations":"{\n let bufptr := mload(buf)\n let buflen := mload(bufptr)\n dest := add(add(bufptr, buflen), 32)\n mstore(bufptr, add(buflen, mload(data)))\n src := add(data, 32)\n}"},"children":[],"id":1789,"name":"InlineAssembly","src":"5352:512:5"},{"attributes":{"initializationExpression":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1785,"type":"uint256","value":"len"},"id":1790,"name":"Identifier","src":"5867:3:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":1791,"name":"Literal","src":"5874:2:5"}],"id":1792,"name":"BinaryOperation","src":"5867:9:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1785,"type":"uint256","value":"len"},"id":1793,"name":"Identifier","src":"5878:3:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":1794,"name":"Literal","src":"5885:2:5"}],"id":1795,"name":"Assignment","src":"5878:9:5"}],"id":1796,"name":"ExpressionStatement","src":"5878:9:5"},{"children":[{"attributes":{"externalReferences":[{"dest":{"declaration":1779,"isOffset":false,"isSlot":false,"src":"5937:4:5","valueSize":1}},{"src":{"declaration":1782,"isOffset":false,"isSlot":false,"src":"5949:3:5","valueSize":1}}],"operations":"{\n mstore(dest, mload(src))\n}"},"children":[],"id":1797,"name":"InlineAssembly","src":"5903:82:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1779,"type":"uint256","value":"dest"},"id":1798,"name":"Identifier","src":"5981:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":1799,"name":"Literal","src":"5989:2:5"}],"id":1800,"name":"Assignment","src":"5981:10:5"}],"id":1801,"name":"ExpressionStatement","src":"5981:10:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1782,"type":"uint256","value":"src"},"id":1802,"name":"Identifier","src":"6005:3:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":1803,"name":"Literal","src":"6012:2:5"}],"id":1804,"name":"Assignment","src":"6005:9:5"}],"id":1805,"name":"ExpressionStatement","src":"6005:9:5"}],"id":1806,"name":"Block","src":"5889:136:5"}],"id":1807,"name":"ForStatement","src":"5861:164:5"},{"attributes":{"assignments":[1809]},"children":[{"attributes":{"constant":false,"name":"mask","scope":1823,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1808,"name":"ElementaryTypeName","src":"6067:4:5"}],"id":1809,"name":"VariableDeclaration","src":"6067:9:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"**","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"323536","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 256","value":"256"},"id":1810,"name":"Literal","src":"6079:3:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":1811,"name":"Literal","src":"6087:2:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1785,"type":"uint256","value":"len"},"id":1812,"name":"Identifier","src":"6092:3:5"}],"id":1813,"name":"BinaryOperation","src":"6087:8:5"}],"id":1814,"name":"TupleExpression","src":"6086:10:5"}],"id":1815,"name":"BinaryOperation","src":"6079:17:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":1816,"name":"Literal","src":"6099:1:5"}],"id":1817,"name":"BinaryOperation","src":"6079:21:5"}],"id":1818,"name":"VariableDeclarationStatement","src":"6067:33:5"},{"attributes":{"externalReferences":[{"mask":{"declaration":1809,"isOffset":false,"isSlot":false,"src":"6168:4:5","valueSize":1}},{"src":{"declaration":1782,"isOffset":false,"isSlot":false,"src":"6158:3:5","valueSize":1}},{"dest":{"declaration":1779,"isOffset":false,"isSlot":false,"src":"6213:4:5","valueSize":1}},{"mask":{"declaration":1809,"isOffset":false,"isSlot":false,"src":"6220:4:5","valueSize":1}},{"dest":{"declaration":1779,"isOffset":false,"isSlot":false,"src":"6245:4:5","valueSize":1}}],"operations":"{\n let srcpart := and(mload(src), not(mask))\n let destpart := and(mload(dest), mask)\n mstore(dest, or(destpart, srcpart))\n}"},"children":[],"id":1819,"name":"InlineAssembly","src":"6110:189:5"},{"attributes":{"functionReturnParameters":1754},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1748,"type":"struct Buffer.buffer memory","value":"buf"},"id":1820,"name":"Identifier","src":"6300:3:5"}],"id":1821,"name":"Return","src":"6293:10:5"}],"id":1822,"name":"Block","src":"5143:1167:5"}],"id":1823,"name":"FunctionDefinition","src":"5059:1251:5"},{"attributes":{"constant":true,"documentation":"@dev Appends a byte to the end of the buffer. Resizes if doing so would\nexceed the capacity of the buffer.\n@param buf The buffer to append to.\n@param data The data to append.\n@return The original buffer.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"append","payable":false,"scope":1895,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"buf","scope":1850,"stateVariable":false,"storageLocation":"memory","type":"struct Buffer.buffer","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"buffer","referencedDeclaration":1670,"type":"struct Buffer.buffer"},"id":1824,"name":"UserDefinedTypeName","src":"6587:6:5"}],"id":1825,"name":"VariableDeclaration","src":"6587:17:5"},{"attributes":{"constant":false,"name":"data","scope":1850,"stateVariable":false,"storageLocation":"default","type":"uint8","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint8","type":"uint8"},"id":1826,"name":"ElementaryTypeName","src":"6606:5:5"}],"id":1827,"name":"VariableDeclaration","src":"6606:10:5"}],"id":1828,"name":"ParameterList","src":"6586:31:5"},{"attributes":{"parameters":[null]},"children":[],"id":1829,"name":"ParameterList","src":"6632:0:5"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"buf","referencedDeclaration":1667,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1825,"type":"struct Buffer.buffer memory","value":"buf"},"id":1830,"name":"Identifier","src":"6645:3:5"}],"id":1831,"name":"MemberAccess","src":"6645:7:5"}],"id":1832,"name":"MemberAccess","src":"6645:14:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":1833,"name":"Literal","src":"6662:1:5"}],"id":1834,"name":"BinaryOperation","src":"6645:18:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"capacity","referencedDeclaration":1669,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1825,"type":"struct Buffer.buffer memory","value":"buf"},"id":1835,"name":"Identifier","src":"6666:3:5"}],"id":1836,"name":"MemberAccess","src":"6666:12:5"}],"id":1837,"name":"BinaryOperation","src":"6645:33:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1670_memory_ptr","typeString":"struct Buffer.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":1727,"type":"function (struct Buffer.buffer memory,uint256) pure","value":"resize"},"id":1838,"name":"Identifier","src":"6694:6:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1825,"type":"struct Buffer.buffer memory","value":"buf"},"id":1839,"name":"Identifier","src":"6701:3:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"capacity","referencedDeclaration":1669,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1825,"type":"struct Buffer.buffer memory","value":"buf"},"id":1840,"name":"Identifier","src":"6706:3:5"}],"id":1841,"name":"MemberAccess","src":"6706:12:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":1842,"name":"Literal","src":"6721:1:5"}],"id":1843,"name":"BinaryOperation","src":"6706:16:5"}],"id":1844,"name":"FunctionCall","src":"6694:29:5"}],"id":1845,"name":"ExpressionStatement","src":"6694:29:5"}],"id":1846,"name":"Block","src":"6680:54:5"}],"id":1847,"name":"IfStatement","src":"6642:92:5"},{"attributes":{"externalReferences":[{"buf":{"declaration":1825,"isOffset":false,"isSlot":false,"src":"6836:3:5","valueSize":1}},{"data":{"declaration":1827,"isOffset":false,"isSlot":false,"src":"7086:4:5","valueSize":1}}],"operations":"{\n let bufptr := mload(buf)\n let buflen := mload(bufptr)\n let dest := add(add(bufptr, buflen), 32)\n mstore8(dest, data)\n mstore(bufptr, add(buflen, 1))\n}"},"children":[],"id":1848,"name":"InlineAssembly","src":"6744:442:5"}],"id":1849,"name":"Block","src":"6632:554:5"}],"id":1850,"name":"FunctionDefinition","src":"6571:615:5"},{"attributes":{"constant":true,"documentation":"@dev Appends a byte to the end of the buffer. Resizes if doing so would\nexceed the capacity of the buffer.\n@param buf The buffer to append to.\n@param data The data to append.\n@return The original buffer.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"appendInt","payable":false,"scope":1895,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"buf","scope":1894,"stateVariable":false,"storageLocation":"memory","type":"struct Buffer.buffer","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"buffer","referencedDeclaration":1670,"type":"struct Buffer.buffer"},"id":1851,"name":"UserDefinedTypeName","src":"7466:6:5"}],"id":1852,"name":"VariableDeclaration","src":"7466:17:5"},{"attributes":{"constant":false,"name":"data","scope":1894,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1853,"name":"ElementaryTypeName","src":"7485:4:5"}],"id":1854,"name":"VariableDeclaration","src":"7485:9:5"},{"attributes":{"constant":false,"name":"len","scope":1894,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1855,"name":"ElementaryTypeName","src":"7496:4:5"}],"id":1856,"name":"VariableDeclaration","src":"7496:8:5"}],"id":1857,"name":"ParameterList","src":"7465:40:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":1894,"stateVariable":false,"storageLocation":"memory","type":"struct Buffer.buffer","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"buffer","referencedDeclaration":1670,"type":"struct Buffer.buffer"},"id":1858,"name":"UserDefinedTypeName","src":"7528:6:5"}],"id":1859,"name":"VariableDeclaration","src":"7528:6:5"}],"id":1860,"name":"ParameterList","src":"7527:15:5"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1856,"type":"uint256","value":"len"},"id":1861,"name":"Identifier","src":"7556:3:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"buf","referencedDeclaration":1667,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1852,"type":"struct Buffer.buffer memory","value":"buf"},"id":1862,"name":"Identifier","src":"7562:3:5"}],"id":1863,"name":"MemberAccess","src":"7562:7:5"}],"id":1864,"name":"MemberAccess","src":"7562:14:5"}],"id":1865,"name":"BinaryOperation","src":"7556:20:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"capacity","referencedDeclaration":1669,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1852,"type":"struct Buffer.buffer memory","value":"buf"},"id":1866,"name":"Identifier","src":"7579:3:5"}],"id":1867,"name":"MemberAccess","src":"7579:12:5"}],"id":1868,"name":"BinaryOperation","src":"7556:35:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1670_memory_ptr","typeString":"struct Buffer.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":1727,"type":"function (struct Buffer.buffer memory,uint256) pure","value":"resize"},"id":1869,"name":"Identifier","src":"7607:6:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1852,"type":"struct Buffer.buffer memory","value":"buf"},"id":1870,"name":"Identifier","src":"7614:3:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":1746,"type":"function (uint256,uint256) pure returns (uint256)","value":"max"},"id":1871,"name":"Identifier","src":"7619:3:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"capacity","referencedDeclaration":1669,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1852,"type":"struct Buffer.buffer memory","value":"buf"},"id":1872,"name":"Identifier","src":"7623:3:5"}],"id":1873,"name":"MemberAccess","src":"7623:12:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1856,"type":"uint256","value":"len"},"id":1874,"name":"Identifier","src":"7637:3:5"}],"id":1875,"name":"FunctionCall","src":"7619:22:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":1876,"name":"Literal","src":"7644:1:5"}],"id":1877,"name":"BinaryOperation","src":"7619:26:5"}],"id":1878,"name":"FunctionCall","src":"7607:39:5"}],"id":1879,"name":"ExpressionStatement","src":"7607:39:5"}],"id":1880,"name":"Block","src":"7593:64:5"}],"id":1881,"name":"IfStatement","src":"7553:104:5"},{"attributes":{"assignments":[1883]},"children":[{"attributes":{"constant":false,"name":"mask","scope":1894,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1882,"name":"ElementaryTypeName","src":"7667:4:5"}],"id":1883,"name":"VariableDeclaration","src":"7667:9:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"**","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"323536","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 256","value":"256"},"id":1884,"name":"Literal","src":"7679:3:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1856,"type":"uint256","value":"len"},"id":1885,"name":"Identifier","src":"7686:3:5"}],"id":1886,"name":"BinaryOperation","src":"7679:10:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":1887,"name":"Literal","src":"7692:1:5"}],"id":1888,"name":"BinaryOperation","src":"7679:14:5"}],"id":1889,"name":"VariableDeclarationStatement","src":"7667:26:5"},{"attributes":{"externalReferences":[{"buf":{"declaration":1852,"isOffset":false,"isSlot":false,"src":"7795:3:5","valueSize":1}},{"len":{"declaration":1856,"isOffset":false,"isSlot":false,"src":"8165:3:5","valueSize":1}},{"len":{"declaration":1856,"isOffset":false,"isSlot":false,"src":"8021:3:5","valueSize":1}},{"data":{"declaration":1854,"isOffset":false,"isSlot":false,"src":"8083:4:5","valueSize":1}},{"mask":{"declaration":1883,"isOffset":false,"isSlot":false,"src":"8075:4:5","valueSize":1}}],"operations":"{\n let bufptr := mload(buf)\n let buflen := mload(bufptr)\n let dest := add(add(bufptr, buflen), len)\n mstore(dest, or(and(mload(dest), not(mask)), data))\n mstore(bufptr, add(buflen, len))\n}"},"children":[],"id":1890,"name":"InlineAssembly","src":"7703:492:5"},{"attributes":{"functionReturnParameters":1860},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1852,"type":"struct Buffer.buffer memory","value":"buf"},"id":1891,"name":"Identifier","src":"8196:3:5"}],"id":1892,"name":"Return","src":"8189:10:5"}],"id":1893,"name":"Block","src":"7543:663:5"}],"id":1894,"name":"FunctionDefinition","src":"7447:759:5"}],"id":1895,"name":"ContractDefinition","src":"3971:4237:5"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"library","documentation":null,"fullyImplemented":true,"linearizedBaseContracts":[2195],"name":"CBOR","scope":7574},"children":[{"children":[{"attributes":{"contractScope":null,"name":"Buffer","referencedDeclaration":1895,"type":"library Buffer"},"id":1896,"name":"UserDefinedTypeName","src":"8235:6:5"},{"attributes":{"contractScope":null,"name":"Buffer.buffer","referencedDeclaration":1670,"type":"struct Buffer.buffer"},"id":1897,"name":"UserDefinedTypeName","src":"8246:13:5"}],"id":1898,"name":"UsingForDirective","src":"8229:31:5"},{"attributes":{"constant":true,"name":"MAJOR_TYPE_INT","scope":2195,"stateVariable":true,"storageLocation":"default","type":"uint8","visibility":"private"},"children":[{"attributes":{"name":"uint8","type":"uint8"},"id":1899,"name":"ElementaryTypeName","src":"8266:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1900,"name":"Literal","src":"8306:1:5"}],"id":1901,"name":"VariableDeclaration","src":"8266:41:5"},{"attributes":{"constant":true,"name":"MAJOR_TYPE_NEGATIVE_INT","scope":2195,"stateVariable":true,"storageLocation":"default","type":"uint8","visibility":"private"},"children":[{"attributes":{"name":"uint8","type":"uint8"},"id":1902,"name":"ElementaryTypeName","src":"8313:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":1903,"name":"Literal","src":"8362:1:5"}],"id":1904,"name":"VariableDeclaration","src":"8313:50:5"},{"attributes":{"constant":true,"name":"MAJOR_TYPE_BYTES","scope":2195,"stateVariable":true,"storageLocation":"default","type":"uint8","visibility":"private"},"children":[{"attributes":{"name":"uint8","type":"uint8"},"id":1905,"name":"ElementaryTypeName","src":"8369:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":1906,"name":"Literal","src":"8411:1:5"}],"id":1907,"name":"VariableDeclaration","src":"8369:43:5"},{"attributes":{"constant":true,"name":"MAJOR_TYPE_STRING","scope":2195,"stateVariable":true,"storageLocation":"default","type":"uint8","visibility":"private"},"children":[{"attributes":{"name":"uint8","type":"uint8"},"id":1908,"name":"ElementaryTypeName","src":"8418:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":1909,"name":"Literal","src":"8461:1:5"}],"id":1910,"name":"VariableDeclaration","src":"8418:44:5"},{"attributes":{"constant":true,"name":"MAJOR_TYPE_ARRAY","scope":2195,"stateVariable":true,"storageLocation":"default","type":"uint8","visibility":"private"},"children":[{"attributes":{"name":"uint8","type":"uint8"},"id":1911,"name":"ElementaryTypeName","src":"8468:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":1912,"name":"Literal","src":"8510:1:5"}],"id":1913,"name":"VariableDeclaration","src":"8468:43:5"},{"attributes":{"constant":true,"name":"MAJOR_TYPE_MAP","scope":2195,"stateVariable":true,"storageLocation":"default","type":"uint8","visibility":"private"},"children":[{"attributes":{"name":"uint8","type":"uint8"},"id":1914,"name":"ElementaryTypeName","src":"8517:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"35","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 5","value":"5"},"id":1915,"name":"Literal","src":"8557:1:5"}],"id":1916,"name":"VariableDeclaration","src":"8517:41:5"},{"attributes":{"constant":true,"name":"MAJOR_TYPE_CONTENT_FREE","scope":2195,"stateVariable":true,"storageLocation":"default","type":"uint8","visibility":"private"},"children":[{"attributes":{"name":"uint8","type":"uint8"},"id":1917,"name":"ElementaryTypeName","src":"8564:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"37","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 7","value":"7"},"id":1918,"name":"Literal","src":"8613:1:5"}],"id":1919,"name":"VariableDeclaration","src":"8564:50:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"encodeType","payable":false,"scope":2195,"stateMutability":"pure","superFunction":null,"visibility":"private"},"children":[{"children":[{"attributes":{"constant":false,"name":"buf","scope":2047,"stateVariable":false,"storageLocation":"memory","type":"struct Buffer.buffer","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"Buffer.buffer","referencedDeclaration":1670,"type":"struct Buffer.buffer"},"id":1920,"name":"UserDefinedTypeName","src":"8641:13:5"}],"id":1921,"name":"VariableDeclaration","src":"8641:24:5"},{"attributes":{"constant":false,"name":"major","scope":2047,"stateVariable":false,"storageLocation":"default","type":"uint8","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint8","type":"uint8"},"id":1922,"name":"ElementaryTypeName","src":"8667:5:5"}],"id":1923,"name":"VariableDeclaration","src":"8667:11:5"},{"attributes":{"constant":false,"name":"value","scope":2047,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1924,"name":"ElementaryTypeName","src":"8680:4:5"}],"id":1925,"name":"VariableDeclaration","src":"8680:10:5"}],"id":1926,"name":"ParameterList","src":"8640:51:5"},{"attributes":{"parameters":[null]},"children":[],"id":1927,"name":"ParameterList","src":"8705:0:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1925,"type":"uint256","value":"value"},"id":1928,"name":"Identifier","src":"8718:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3233","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 23","value":"23"},"id":1929,"name":"Literal","src":"8727:2:5"}],"id":1930,"name":"BinaryOperation","src":"8718:11:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"append","referencedDeclaration":1850,"type":"function (struct Buffer.buffer memory,uint8) pure"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1921,"type":"struct Buffer.buffer memory","value":"buf"},"id":1931,"name":"Identifier","src":"8745:3:5"}],"id":1933,"name":"MemberAccess","src":"8745:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint8","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint8)","value":"uint8"},"id":1934,"name":"ElementaryTypeNameExpression","src":"8756:5:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"|","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint8"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<<","type":"uint8"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1923,"type":"uint8","value":"major"},"id":1935,"name":"Identifier","src":"8763:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"35","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 5","value":"5"},"id":1936,"name":"Literal","src":"8772:1:5"}],"id":1937,"name":"BinaryOperation","src":"8763:10:5"}],"id":1938,"name":"TupleExpression","src":"8762:12:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1925,"type":"uint256","value":"value"},"id":1939,"name":"Identifier","src":"8777:5:5"}],"id":1940,"name":"BinaryOperation","src":"8762:20:5"}],"id":1941,"name":"FunctionCall","src":"8756:27:5"}],"id":1942,"name":"FunctionCall","src":"8745:39:5"}],"id":1943,"name":"ExpressionStatement","src":"8745:39:5"}],"id":1944,"name":"Block","src":"8731:64:5"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1925,"type":"uint256","value":"value"},"id":1945,"name":"Identifier","src":"8804:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30784646","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 255","value":"0xFF"},"id":1946,"name":"Literal","src":"8813:4:5"}],"id":1947,"name":"BinaryOperation","src":"8804:13:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"append","referencedDeclaration":1850,"type":"function (struct Buffer.buffer memory,uint8) pure"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1921,"type":"struct Buffer.buffer memory","value":"buf"},"id":1948,"name":"Identifier","src":"8833:3:5"}],"id":1950,"name":"MemberAccess","src":"8833:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint8","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint8)","value":"uint8"},"id":1951,"name":"ElementaryTypeNameExpression","src":"8844:5:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"|","type":"uint8"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint8"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<<","type":"uint8"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1923,"type":"uint8","value":"major"},"id":1952,"name":"Identifier","src":"8851:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"35","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 5","value":"5"},"id":1953,"name":"Literal","src":"8860:1:5"}],"id":1954,"name":"BinaryOperation","src":"8851:10:5"}],"id":1955,"name":"TupleExpression","src":"8850:12:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3234","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 24","value":"24"},"id":1956,"name":"Literal","src":"8865:2:5"}],"id":1957,"name":"BinaryOperation","src":"8850:17:5"}],"id":1958,"name":"FunctionCall","src":"8844:24:5"}],"id":1959,"name":"FunctionCall","src":"8833:36:5"}],"id":1960,"name":"ExpressionStatement","src":"8833:36:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"struct Buffer.buffer memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"appendInt","referencedDeclaration":1894,"type":"function (struct Buffer.buffer memory,uint256,uint256) pure returns (struct Buffer.buffer memory)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1921,"type":"struct Buffer.buffer memory","value":"buf"},"id":1961,"name":"Identifier","src":"8883:3:5"}],"id":1963,"name":"MemberAccess","src":"8883:13:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1925,"type":"uint256","value":"value"},"id":1964,"name":"Identifier","src":"8897:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":1965,"name":"Literal","src":"8904:1:5"}],"id":1966,"name":"FunctionCall","src":"8883:23:5"}],"id":1967,"name":"ExpressionStatement","src":"8883:23:5"}],"id":1968,"name":"Block","src":"8819:98:5"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1925,"type":"uint256","value":"value"},"id":1969,"name":"Identifier","src":"8926:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"307846464646","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 65535","value":"0xFFFF"},"id":1970,"name":"Literal","src":"8935:6:5"}],"id":1971,"name":"BinaryOperation","src":"8926:15:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"append","referencedDeclaration":1850,"type":"function (struct Buffer.buffer memory,uint8) pure"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1921,"type":"struct Buffer.buffer memory","value":"buf"},"id":1972,"name":"Identifier","src":"8957:3:5"}],"id":1974,"name":"MemberAccess","src":"8957:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint8","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint8)","value":"uint8"},"id":1975,"name":"ElementaryTypeNameExpression","src":"8968:5:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"|","type":"uint8"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint8"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<<","type":"uint8"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1923,"type":"uint8","value":"major"},"id":1976,"name":"Identifier","src":"8975:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"35","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 5","value":"5"},"id":1977,"name":"Literal","src":"8984:1:5"}],"id":1978,"name":"BinaryOperation","src":"8975:10:5"}],"id":1979,"name":"TupleExpression","src":"8974:12:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3235","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 25","value":"25"},"id":1980,"name":"Literal","src":"8989:2:5"}],"id":1981,"name":"BinaryOperation","src":"8974:17:5"}],"id":1982,"name":"FunctionCall","src":"8968:24:5"}],"id":1983,"name":"FunctionCall","src":"8957:36:5"}],"id":1984,"name":"ExpressionStatement","src":"8957:36:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"struct Buffer.buffer memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"appendInt","referencedDeclaration":1894,"type":"function (struct Buffer.buffer memory,uint256,uint256) pure returns (struct Buffer.buffer memory)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1921,"type":"struct Buffer.buffer memory","value":"buf"},"id":1985,"name":"Identifier","src":"9007:3:5"}],"id":1987,"name":"MemberAccess","src":"9007:13:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1925,"type":"uint256","value":"value"},"id":1988,"name":"Identifier","src":"9021:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":1989,"name":"Literal","src":"9028:1:5"}],"id":1990,"name":"FunctionCall","src":"9007:23:5"}],"id":1991,"name":"ExpressionStatement","src":"9007:23:5"}],"id":1992,"name":"Block","src":"8943:98:5"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1925,"type":"uint256","value":"value"},"id":1993,"name":"Identifier","src":"9050:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30784646464646464646","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4294967295","value":"0xFFFFFFFF"},"id":1994,"name":"Literal","src":"9059:10:5"}],"id":1995,"name":"BinaryOperation","src":"9050:19:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"append","referencedDeclaration":1850,"type":"function (struct Buffer.buffer memory,uint8) pure"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1921,"type":"struct Buffer.buffer memory","value":"buf"},"id":1996,"name":"Identifier","src":"9085:3:5"}],"id":1998,"name":"MemberAccess","src":"9085:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint8","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint8)","value":"uint8"},"id":1999,"name":"ElementaryTypeNameExpression","src":"9096:5:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"|","type":"uint8"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint8"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<<","type":"uint8"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1923,"type":"uint8","value":"major"},"id":2000,"name":"Identifier","src":"9103:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"35","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 5","value":"5"},"id":2001,"name":"Literal","src":"9112:1:5"}],"id":2002,"name":"BinaryOperation","src":"9103:10:5"}],"id":2003,"name":"TupleExpression","src":"9102:12:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3236","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 26","value":"26"},"id":2004,"name":"Literal","src":"9117:2:5"}],"id":2005,"name":"BinaryOperation","src":"9102:17:5"}],"id":2006,"name":"FunctionCall","src":"9096:24:5"}],"id":2007,"name":"FunctionCall","src":"9085:36:5"}],"id":2008,"name":"ExpressionStatement","src":"9085:36:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"struct Buffer.buffer memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"appendInt","referencedDeclaration":1894,"type":"function (struct Buffer.buffer memory,uint256,uint256) pure returns (struct Buffer.buffer memory)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1921,"type":"struct Buffer.buffer memory","value":"buf"},"id":2009,"name":"Identifier","src":"9135:3:5"}],"id":2011,"name":"MemberAccess","src":"9135:13:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1925,"type":"uint256","value":"value"},"id":2012,"name":"Identifier","src":"9149:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":2013,"name":"Literal","src":"9156:1:5"}],"id":2014,"name":"FunctionCall","src":"9135:23:5"}],"id":2015,"name":"ExpressionStatement","src":"9135:23:5"}],"id":2016,"name":"Block","src":"9071:98:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1925,"type":"uint256","value":"value"},"id":2017,"name":"Identifier","src":"9178:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"307846464646464646464646464646464646","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 18446744073709551615","value":"0xFFFFFFFFFFFFFFFF"},"id":2018,"name":"Literal","src":"9187:18:5"}],"id":2019,"name":"BinaryOperation","src":"9178:27:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"append","referencedDeclaration":1850,"type":"function (struct Buffer.buffer memory,uint8) pure"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1921,"type":"struct Buffer.buffer memory","value":"buf"},"id":2020,"name":"Identifier","src":"9221:3:5"}],"id":2022,"name":"MemberAccess","src":"9221:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint8","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint8)","value":"uint8"},"id":2023,"name":"ElementaryTypeNameExpression","src":"9232:5:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"|","type":"uint8"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint8"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<<","type":"uint8"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1923,"type":"uint8","value":"major"},"id":2024,"name":"Identifier","src":"9239:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"35","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 5","value":"5"},"id":2025,"name":"Literal","src":"9248:1:5"}],"id":2026,"name":"BinaryOperation","src":"9239:10:5"}],"id":2027,"name":"TupleExpression","src":"9238:12:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3237","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 27","value":"27"},"id":2028,"name":"Literal","src":"9253:2:5"}],"id":2029,"name":"BinaryOperation","src":"9238:17:5"}],"id":2030,"name":"FunctionCall","src":"9232:24:5"}],"id":2031,"name":"FunctionCall","src":"9221:36:5"}],"id":2032,"name":"ExpressionStatement","src":"9221:36:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"struct Buffer.buffer memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"}],"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"appendInt","referencedDeclaration":1894,"type":"function (struct Buffer.buffer memory,uint256,uint256) pure returns (struct Buffer.buffer memory)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1921,"type":"struct Buffer.buffer memory","value":"buf"},"id":2033,"name":"Identifier","src":"9271:3:5"}],"id":2035,"name":"MemberAccess","src":"9271:13:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1925,"type":"uint256","value":"value"},"id":2036,"name":"Identifier","src":"9285:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"38","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 8","value":"8"},"id":2037,"name":"Literal","src":"9292:1:5"}],"id":2038,"name":"FunctionCall","src":"9271:23:5"}],"id":2039,"name":"ExpressionStatement","src":"9271:23:5"}],"id":2040,"name":"Block","src":"9207:98:5"}],"id":2041,"name":"IfStatement","src":"9175:130:5"}],"id":2042,"name":"IfStatement","src":"9047:258:5"}],"id":2043,"name":"IfStatement","src":"8923:382:5"}],"id":2044,"name":"IfStatement","src":"8801:504:5"}],"id":2045,"name":"IfStatement","src":"8715:590:5"}],"id":2046,"name":"Block","src":"8705:606:5"}],"id":2047,"name":"FunctionDefinition","src":"8621:690:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"encodeIndefiniteLengthType","payable":false,"scope":2195,"stateMutability":"pure","superFunction":null,"visibility":"private"},"children":[{"children":[{"attributes":{"constant":false,"name":"buf","scope":2068,"stateVariable":false,"storageLocation":"memory","type":"struct Buffer.buffer","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"Buffer.buffer","referencedDeclaration":1670,"type":"struct Buffer.buffer"},"id":2048,"name":"UserDefinedTypeName","src":"9353:13:5"}],"id":2049,"name":"VariableDeclaration","src":"9353:24:5"},{"attributes":{"constant":false,"name":"major","scope":2068,"stateVariable":false,"storageLocation":"default","type":"uint8","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint8","type":"uint8"},"id":2050,"name":"ElementaryTypeName","src":"9379:5:5"}],"id":2051,"name":"VariableDeclaration","src":"9379:11:5"}],"id":2052,"name":"ParameterList","src":"9352:39:5"},{"attributes":{"parameters":[null]},"children":[],"id":2053,"name":"ParameterList","src":"9405:0:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"append","referencedDeclaration":1850,"type":"function (struct Buffer.buffer memory,uint8) pure"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2049,"type":"struct Buffer.buffer memory","value":"buf"},"id":2054,"name":"Identifier","src":"9415:3:5"}],"id":2056,"name":"MemberAccess","src":"9415:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint8","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint8)","value":"uint8"},"id":2057,"name":"ElementaryTypeNameExpression","src":"9426:5:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"|","type":"uint8"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint8"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<<","type":"uint8"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2051,"type":"uint8","value":"major"},"id":2058,"name":"Identifier","src":"9433:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"35","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 5","value":"5"},"id":2059,"name":"Literal","src":"9442:1:5"}],"id":2060,"name":"BinaryOperation","src":"9433:10:5"}],"id":2061,"name":"TupleExpression","src":"9432:12:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3331","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 31","value":"31"},"id":2062,"name":"Literal","src":"9447:2:5"}],"id":2063,"name":"BinaryOperation","src":"9432:17:5"}],"id":2064,"name":"FunctionCall","src":"9426:24:5"}],"id":2065,"name":"FunctionCall","src":"9415:36:5"}],"id":2066,"name":"ExpressionStatement","src":"9415:36:5"}],"id":2067,"name":"Block","src":"9405:53:5"}],"id":2068,"name":"FunctionDefinition","src":"9317:141:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"encodeUInt","payable":false,"scope":2195,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"buf","scope":2082,"stateVariable":false,"storageLocation":"memory","type":"struct Buffer.buffer","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"Buffer.buffer","referencedDeclaration":1670,"type":"struct Buffer.buffer"},"id":2069,"name":"UserDefinedTypeName","src":"9484:13:5"}],"id":2070,"name":"VariableDeclaration","src":"9484:24:5"},{"attributes":{"constant":false,"name":"value","scope":2082,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2071,"name":"ElementaryTypeName","src":"9510:4:5"}],"id":2072,"name":"VariableDeclaration","src":"9510:10:5"}],"id":2073,"name":"ParameterList","src":"9483:38:5"},{"attributes":{"parameters":[null]},"children":[],"id":2074,"name":"ParameterList","src":"9536:0:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1670_memory_ptr","typeString":"struct Buffer.buffer memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":2047,"type":"function (struct Buffer.buffer memory,uint8,uint256) pure","value":"encodeType"},"id":2075,"name":"Identifier","src":"9546:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2070,"type":"struct Buffer.buffer memory","value":"buf"},"id":2076,"name":"Identifier","src":"9557:3:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1901,"type":"uint8","value":"MAJOR_TYPE_INT"},"id":2077,"name":"Identifier","src":"9562:14:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2072,"type":"uint256","value":"value"},"id":2078,"name":"Identifier","src":"9578:5:5"}],"id":2079,"name":"FunctionCall","src":"9546:38:5"}],"id":2080,"name":"ExpressionStatement","src":"9546:38:5"}],"id":2081,"name":"Block","src":"9536:55:5"}],"id":2082,"name":"FunctionDefinition","src":"9464:127:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"encodeInt","payable":false,"scope":2195,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"buf","scope":2115,"stateVariable":false,"storageLocation":"memory","type":"struct Buffer.buffer","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"Buffer.buffer","referencedDeclaration":1670,"type":"struct Buffer.buffer"},"id":2083,"name":"UserDefinedTypeName","src":"9616:13:5"}],"id":2084,"name":"VariableDeclaration","src":"9616:24:5"},{"attributes":{"constant":false,"name":"value","scope":2115,"stateVariable":false,"storageLocation":"default","type":"int256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"int","type":"int256"},"id":2085,"name":"ElementaryTypeName","src":"9642:3:5"}],"id":2086,"name":"VariableDeclaration","src":"9642:9:5"}],"id":2087,"name":"ParameterList","src":"9615:37:5"},{"attributes":{"parameters":[null]},"children":[],"id":2088,"name":"ParameterList","src":"9667:0:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2086,"type":"int256","value":"value"},"id":2089,"name":"Identifier","src":"9680:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2090,"name":"Literal","src":"9689:1:5"}],"id":2091,"name":"BinaryOperation","src":"9680:10:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1670_memory_ptr","typeString":"struct Buffer.buffer memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":2047,"type":"function (struct Buffer.buffer memory,uint8,uint256) pure","value":"encodeType"},"id":2092,"name":"Identifier","src":"9706:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2084,"type":"struct Buffer.buffer memory","value":"buf"},"id":2093,"name":"Identifier","src":"9717:3:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1901,"type":"uint8","value":"MAJOR_TYPE_INT"},"id":2094,"name":"Identifier","src":"9722:14:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint"},"id":2095,"name":"ElementaryTypeNameExpression","src":"9738:4:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2086,"type":"int256","value":"value"},"id":2096,"name":"Identifier","src":"9743:5:5"}],"id":2097,"name":"FunctionCall","src":"9738:11:5"}],"id":2098,"name":"FunctionCall","src":"9706:44:5"}],"id":2099,"name":"ExpressionStatement","src":"9706:44:5"}],"id":2100,"name":"Block","src":"9692:69:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1670_memory_ptr","typeString":"struct Buffer.buffer memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":2047,"type":"function (struct Buffer.buffer memory,uint8,uint256) pure","value":"encodeType"},"id":2101,"name":"Identifier","src":"9781:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2084,"type":"struct Buffer.buffer memory","value":"buf"},"id":2102,"name":"Identifier","src":"9792:3:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1904,"type":"uint8","value":"MAJOR_TYPE_NEGATIVE_INT"},"id":2103,"name":"Identifier","src":"9797:23:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint"},"id":2104,"name":"ElementaryTypeNameExpression","src":"9822:4:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"int256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"-","prefix":true,"type":"int_const -1"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":2105,"name":"Literal","src":"9828:1:5"}],"id":2106,"name":"UnaryOperation","src":"9827:2:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2086,"type":"int256","value":"value"},"id":2107,"name":"Identifier","src":"9832:5:5"}],"id":2108,"name":"BinaryOperation","src":"9827:10:5"}],"id":2109,"name":"FunctionCall","src":"9822:16:5"}],"id":2110,"name":"FunctionCall","src":"9781:58:5"}],"id":2111,"name":"ExpressionStatement","src":"9781:58:5"}],"id":2112,"name":"Block","src":"9767:83:5"}],"id":2113,"name":"IfStatement","src":"9677:173:5"}],"id":2114,"name":"Block","src":"9667:189:5"}],"id":2115,"name":"FunctionDefinition","src":"9597:259:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"encodeBytes","payable":false,"scope":2195,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"buf","scope":2136,"stateVariable":false,"storageLocation":"memory","type":"struct Buffer.buffer","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"Buffer.buffer","referencedDeclaration":1670,"type":"struct Buffer.buffer"},"id":2116,"name":"UserDefinedTypeName","src":"9883:13:5"}],"id":2117,"name":"VariableDeclaration","src":"9883:24:5"},{"attributes":{"constant":false,"name":"value","scope":2136,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":2118,"name":"ElementaryTypeName","src":"9909:5:5"}],"id":2119,"name":"VariableDeclaration","src":"9909:11:5"}],"id":2120,"name":"ParameterList","src":"9882:39:5"},{"attributes":{"parameters":[null]},"children":[],"id":2121,"name":"ParameterList","src":"9936:0:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1670_memory_ptr","typeString":"struct Buffer.buffer memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":2047,"type":"function (struct Buffer.buffer memory,uint8,uint256) pure","value":"encodeType"},"id":2122,"name":"Identifier","src":"9946:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2117,"type":"struct Buffer.buffer memory","value":"buf"},"id":2123,"name":"Identifier","src":"9957:3:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1907,"type":"uint8","value":"MAJOR_TYPE_BYTES"},"id":2124,"name":"Identifier","src":"9962:16:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2119,"type":"bytes memory","value":"value"},"id":2125,"name":"Identifier","src":"9980:5:5"}],"id":2126,"name":"MemberAccess","src":"9980:12:5"}],"id":2127,"name":"FunctionCall","src":"9946:47:5"}],"id":2128,"name":"ExpressionStatement","src":"9946:47:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"struct Buffer.buffer memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"append","referencedDeclaration":1823,"type":"function (struct Buffer.buffer memory,bytes memory) pure returns (struct Buffer.buffer memory)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2117,"type":"struct Buffer.buffer memory","value":"buf"},"id":2129,"name":"Identifier","src":"10003:3:5"}],"id":2131,"name":"MemberAccess","src":"10003:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2119,"type":"bytes memory","value":"value"},"id":2132,"name":"Identifier","src":"10014:5:5"}],"id":2133,"name":"FunctionCall","src":"10003:17:5"}],"id":2134,"name":"ExpressionStatement","src":"10003:17:5"}],"id":2135,"name":"Block","src":"9936:91:5"}],"id":2136,"name":"FunctionDefinition","src":"9862:165:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"encodeString","payable":false,"scope":2195,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"buf","scope":2161,"stateVariable":false,"storageLocation":"memory","type":"struct Buffer.buffer","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"Buffer.buffer","referencedDeclaration":1670,"type":"struct Buffer.buffer"},"id":2137,"name":"UserDefinedTypeName","src":"10055:13:5"}],"id":2138,"name":"VariableDeclaration","src":"10055:24:5"},{"attributes":{"constant":false,"name":"value","scope":2161,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":2139,"name":"ElementaryTypeName","src":"10081:6:5"}],"id":2140,"name":"VariableDeclaration","src":"10081:12:5"}],"id":2141,"name":"ParameterList","src":"10054:40:5"},{"attributes":{"parameters":[null]},"children":[],"id":2142,"name":"ParameterList","src":"10109:0:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1670_memory_ptr","typeString":"struct Buffer.buffer memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":2047,"type":"function (struct Buffer.buffer memory,uint8,uint256) pure","value":"encodeType"},"id":2143,"name":"Identifier","src":"10119:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2138,"type":"struct Buffer.buffer memory","value":"buf"},"id":2144,"name":"Identifier","src":"10130:3:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1910,"type":"uint8","value":"MAJOR_TYPE_STRING"},"id":2145,"name":"Identifier","src":"10135:17:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes storage pointer)","value":"bytes"},"id":2146,"name":"ElementaryTypeNameExpression","src":"10154:5:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2140,"type":"string memory","value":"value"},"id":2147,"name":"Identifier","src":"10160:5:5"}],"id":2148,"name":"FunctionCall","src":"10154:12:5"}],"id":2149,"name":"MemberAccess","src":"10154:19:5"}],"id":2150,"name":"FunctionCall","src":"10119:55:5"}],"id":2151,"name":"ExpressionStatement","src":"10119:55:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"struct Buffer.buffer memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory","typeString":"bytes memory"}],"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"append","referencedDeclaration":1823,"type":"function (struct Buffer.buffer memory,bytes memory) pure returns (struct Buffer.buffer memory)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2138,"type":"struct Buffer.buffer memory","value":"buf"},"id":2152,"name":"Identifier","src":"10184:3:5"}],"id":2154,"name":"MemberAccess","src":"10184:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes storage pointer)","value":"bytes"},"id":2155,"name":"ElementaryTypeNameExpression","src":"10195:5:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2140,"type":"string memory","value":"value"},"id":2156,"name":"Identifier","src":"10201:5:5"}],"id":2157,"name":"FunctionCall","src":"10195:12:5"}],"id":2158,"name":"FunctionCall","src":"10184:24:5"}],"id":2159,"name":"ExpressionStatement","src":"10184:24:5"}],"id":2160,"name":"Block","src":"10109:106:5"}],"id":2161,"name":"FunctionDefinition","src":"10033:182:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"startArray","payable":false,"scope":2195,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"buf","scope":2172,"stateVariable":false,"storageLocation":"memory","type":"struct Buffer.buffer","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"Buffer.buffer","referencedDeclaration":1670,"type":"struct Buffer.buffer"},"id":2162,"name":"UserDefinedTypeName","src":"10241:13:5"}],"id":2163,"name":"VariableDeclaration","src":"10241:24:5"}],"id":2164,"name":"ParameterList","src":"10240:26:5"},{"attributes":{"parameters":[null]},"children":[],"id":2165,"name":"ParameterList","src":"10281:0:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1670_memory_ptr","typeString":"struct Buffer.buffer memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"overloadedDeclarations":[null],"referencedDeclaration":2068,"type":"function (struct Buffer.buffer memory,uint8) pure","value":"encodeIndefiniteLengthType"},"id":2166,"name":"Identifier","src":"10291:26:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2163,"type":"struct Buffer.buffer memory","value":"buf"},"id":2167,"name":"Identifier","src":"10318:3:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1913,"type":"uint8","value":"MAJOR_TYPE_ARRAY"},"id":2168,"name":"Identifier","src":"10323:16:5"}],"id":2169,"name":"FunctionCall","src":"10291:49:5"}],"id":2170,"name":"ExpressionStatement","src":"10291:49:5"}],"id":2171,"name":"Block","src":"10281:66:5"}],"id":2172,"name":"FunctionDefinition","src":"10221:126:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"startMap","payable":false,"scope":2195,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"buf","scope":2183,"stateVariable":false,"storageLocation":"memory","type":"struct Buffer.buffer","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"Buffer.buffer","referencedDeclaration":1670,"type":"struct Buffer.buffer"},"id":2173,"name":"UserDefinedTypeName","src":"10371:13:5"}],"id":2174,"name":"VariableDeclaration","src":"10371:24:5"}],"id":2175,"name":"ParameterList","src":"10370:26:5"},{"attributes":{"parameters":[null]},"children":[],"id":2176,"name":"ParameterList","src":"10411:0:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1670_memory_ptr","typeString":"struct Buffer.buffer memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"overloadedDeclarations":[null],"referencedDeclaration":2068,"type":"function (struct Buffer.buffer memory,uint8) pure","value":"encodeIndefiniteLengthType"},"id":2177,"name":"Identifier","src":"10421:26:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2174,"type":"struct Buffer.buffer memory","value":"buf"},"id":2178,"name":"Identifier","src":"10448:3:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1916,"type":"uint8","value":"MAJOR_TYPE_MAP"},"id":2179,"name":"Identifier","src":"10453:14:5"}],"id":2180,"name":"FunctionCall","src":"10421:47:5"}],"id":2181,"name":"ExpressionStatement","src":"10421:47:5"}],"id":2182,"name":"Block","src":"10411:64:5"}],"id":2183,"name":"FunctionDefinition","src":"10353:122:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"endSequence","payable":false,"scope":2195,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"buf","scope":2194,"stateVariable":false,"storageLocation":"memory","type":"struct Buffer.buffer","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"Buffer.buffer","referencedDeclaration":1670,"type":"struct Buffer.buffer"},"id":2184,"name":"UserDefinedTypeName","src":"10502:13:5"}],"id":2185,"name":"VariableDeclaration","src":"10502:24:5"}],"id":2186,"name":"ParameterList","src":"10501:26:5"},{"attributes":{"parameters":[null]},"children":[],"id":2187,"name":"ParameterList","src":"10542:0:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1670_memory_ptr","typeString":"struct Buffer.buffer memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"overloadedDeclarations":[null],"referencedDeclaration":2068,"type":"function (struct Buffer.buffer memory,uint8) pure","value":"encodeIndefiniteLengthType"},"id":2188,"name":"Identifier","src":"10552:26:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2185,"type":"struct Buffer.buffer memory","value":"buf"},"id":2189,"name":"Identifier","src":"10579:3:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1919,"type":"uint8","value":"MAJOR_TYPE_CONTENT_FREE"},"id":2190,"name":"Identifier","src":"10584:23:5"}],"id":2191,"name":"FunctionCall","src":"10552:56:5"}],"id":2192,"name":"ExpressionStatement","src":"10552:56:5"}],"id":2193,"name":"Block","src":"10542:73:5"}],"id":2194,"name":"FunctionDefinition","src":"10481:134:5"}],"id":2195,"name":"ContractDefinition","src":"8210:2407:5"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"contract","documentation":null,"fullyImplemented":true,"linearizedBaseContracts":[7573],"name":"usingOraclize","scope":7574},"children":[{"attributes":{"constant":true,"name":"day","scope":7573,"stateVariable":true,"storageLocation":"default","type":"uint256","visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2196,"name":"ElementaryTypeName","src":"10679:4:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_86400_by_1","typeString":"int_const 86400"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"*","type":"int_const 86400"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_3600_by_1","typeString":"int_const 3600"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"*","type":"int_const 3600"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3630","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 60","value":"60"},"id":2197,"name":"Literal","src":"10699:2:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3630","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 60","value":"60"},"id":2198,"name":"Literal","src":"10702:2:5"}],"id":2199,"name":"BinaryOperation","src":"10699:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3234","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 24","value":"24"},"id":2200,"name":"Literal","src":"10705:2:5"}],"id":2201,"name":"BinaryOperation","src":"10699:8:5"}],"id":2202,"name":"VariableDeclaration","src":"10679:28:5"},{"attributes":{"constant":true,"name":"week","scope":7573,"stateVariable":true,"storageLocation":"default","type":"uint256","visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2203,"name":"ElementaryTypeName","src":"10713:4:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_604800_by_1","typeString":"int_const 604800"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"*","type":"int_const 604800"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_86400_by_1","typeString":"int_const 86400"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"*","type":"int_const 86400"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_3600_by_1","typeString":"int_const 3600"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"*","type":"int_const 3600"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3630","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 60","value":"60"},"id":2204,"name":"Literal","src":"10734:2:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3630","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 60","value":"60"},"id":2205,"name":"Literal","src":"10737:2:5"}],"id":2206,"name":"BinaryOperation","src":"10734:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3234","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 24","value":"24"},"id":2207,"name":"Literal","src":"10740:2:5"}],"id":2208,"name":"BinaryOperation","src":"10734:8:5"},{"attributes":{"argumentTypes":null,"hexvalue":"37","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 7","value":"7"},"id":2209,"name":"Literal","src":"10743:1:5"}],"id":2210,"name":"BinaryOperation","src":"10734:10:5"}],"id":2211,"name":"VariableDeclaration","src":"10713:31:5"},{"attributes":{"constant":true,"name":"month","scope":7573,"stateVariable":true,"storageLocation":"default","type":"uint256","visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2212,"name":"ElementaryTypeName","src":"10750:4:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_2592000_by_1","typeString":"int_const 2592000"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"*","type":"int_const 2592000"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_86400_by_1","typeString":"int_const 86400"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"*","type":"int_const 86400"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_3600_by_1","typeString":"int_const 3600"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"*","type":"int_const 3600"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3630","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 60","value":"60"},"id":2213,"name":"Literal","src":"10772:2:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3630","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 60","value":"60"},"id":2214,"name":"Literal","src":"10775:2:5"}],"id":2215,"name":"BinaryOperation","src":"10772:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3234","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 24","value":"24"},"id":2216,"name":"Literal","src":"10778:2:5"}],"id":2217,"name":"BinaryOperation","src":"10772:8:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3330","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 30","value":"30"},"id":2218,"name":"Literal","src":"10781:2:5"}],"id":2219,"name":"BinaryOperation","src":"10772:11:5"}],"id":2220,"name":"VariableDeclaration","src":"10750:33:5"},{"attributes":{"constant":true,"name":"proofType_NONE","scope":7573,"stateVariable":true,"storageLocation":"default","type":"bytes1","visibility":"internal"},"children":[{"attributes":{"name":"byte","type":"bytes1"},"id":2221,"name":"ElementaryTypeName","src":"10789:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30783030","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0x00"},"id":2222,"name":"Literal","src":"10820:4:5"}],"id":2223,"name":"VariableDeclaration","src":"10789:35:5"},{"attributes":{"constant":true,"name":"proofType_TLSNotary","scope":7573,"stateVariable":true,"storageLocation":"default","type":"bytes1","visibility":"internal"},"children":[{"attributes":{"name":"byte","type":"bytes1"},"id":2224,"name":"ElementaryTypeName","src":"10830:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30783130","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 16","value":"0x10"},"id":2225,"name":"Literal","src":"10866:4:5"}],"id":2226,"name":"VariableDeclaration","src":"10830:40:5"},{"attributes":{"constant":true,"name":"proofType_Ledger","scope":7573,"stateVariable":true,"storageLocation":"default","type":"bytes1","visibility":"internal"},"children":[{"attributes":{"name":"byte","type":"bytes1"},"id":2227,"name":"ElementaryTypeName","src":"10876:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30783330","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 48","value":"0x30"},"id":2228,"name":"Literal","src":"10909:4:5"}],"id":2229,"name":"VariableDeclaration","src":"10876:37:5"},{"attributes":{"constant":true,"name":"proofType_Android","scope":7573,"stateVariable":true,"storageLocation":"default","type":"bytes1","visibility":"internal"},"children":[{"attributes":{"name":"byte","type":"bytes1"},"id":2230,"name":"ElementaryTypeName","src":"10919:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30783430","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 64","value":"0x40"},"id":2231,"name":"Literal","src":"10953:4:5"}],"id":2232,"name":"VariableDeclaration","src":"10919:38:5"},{"attributes":{"constant":true,"name":"proofType_Native","scope":7573,"stateVariable":true,"storageLocation":"default","type":"bytes1","visibility":"internal"},"children":[{"attributes":{"name":"byte","type":"bytes1"},"id":2233,"name":"ElementaryTypeName","src":"10963:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30784630","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 240","value":"0xF0"},"id":2234,"name":"Literal","src":"10996:4:5"}],"id":2235,"name":"VariableDeclaration","src":"10963:37:5"},{"attributes":{"constant":true,"name":"proofStorage_IPFS","scope":7573,"stateVariable":true,"storageLocation":"default","type":"bytes1","visibility":"internal"},"children":[{"attributes":{"name":"byte","type":"bytes1"},"id":2236,"name":"ElementaryTypeName","src":"11006:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30783031","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"0x01"},"id":2237,"name":"Literal","src":"11040:4:5"}],"id":2238,"name":"VariableDeclaration","src":"11006:38:5"},{"attributes":{"constant":true,"name":"networkID_auto","scope":7573,"stateVariable":true,"storageLocation":"default","type":"uint8","visibility":"internal"},"children":[{"attributes":{"name":"uint8","type":"uint8"},"id":2239,"name":"ElementaryTypeName","src":"11050:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2240,"name":"Literal","src":"11082:1:5"}],"id":2241,"name":"VariableDeclaration","src":"11050:33:5"},{"attributes":{"constant":true,"name":"networkID_mainnet","scope":7573,"stateVariable":true,"storageLocation":"default","type":"uint8","visibility":"internal"},"children":[{"attributes":{"name":"uint8","type":"uint8"},"id":2242,"name":"ElementaryTypeName","src":"11089:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":2243,"name":"Literal","src":"11124:1:5"}],"id":2244,"name":"VariableDeclaration","src":"11089:36:5"},{"attributes":{"constant":true,"name":"networkID_testnet","scope":7573,"stateVariable":true,"storageLocation":"default","type":"uint8","visibility":"internal"},"children":[{"attributes":{"name":"uint8","type":"uint8"},"id":2245,"name":"ElementaryTypeName","src":"11131:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":2246,"name":"Literal","src":"11166:1:5"}],"id":2247,"name":"VariableDeclaration","src":"11131:36:5"},{"attributes":{"constant":true,"name":"networkID_morden","scope":7573,"stateVariable":true,"storageLocation":"default","type":"uint8","visibility":"internal"},"children":[{"attributes":{"name":"uint8","type":"uint8"},"id":2248,"name":"ElementaryTypeName","src":"11173:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":2249,"name":"Literal","src":"11207:1:5"}],"id":2250,"name":"VariableDeclaration","src":"11173:35:5"},{"attributes":{"constant":true,"name":"networkID_consensys","scope":7573,"stateVariable":true,"storageLocation":"default","type":"uint8","visibility":"internal"},"children":[{"attributes":{"name":"uint8","type":"uint8"},"id":2251,"name":"ElementaryTypeName","src":"11214:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"313631","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 161","value":"161"},"id":2252,"name":"Literal","src":"11251:3:5"}],"id":2253,"name":"VariableDeclaration","src":"11214:40:5"},{"attributes":{"constant":false,"name":"OAR","scope":7573,"stateVariable":true,"storageLocation":"default","type":"contract OraclizeAddrResolverI","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"OraclizeAddrResolverI","referencedDeclaration":1665,"type":"contract OraclizeAddrResolverI"},"id":2254,"name":"UserDefinedTypeName","src":"11261:21:5"}],"id":2255,"name":"VariableDeclaration","src":"11261:25:5"},{"attributes":{"constant":false,"name":"oraclize","scope":7573,"stateVariable":true,"storageLocation":"default","type":"contract OraclizeI","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"OraclizeI","referencedDeclaration":1659,"type":"contract OraclizeI"},"id":2256,"name":"UserDefinedTypeName","src":"11293:9:5"}],"id":2257,"name":"VariableDeclaration","src":"11293:18:5"},{"attributes":{"documentation":null,"name":"oraclizeAPI","visibility":"internal"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":2258,"name":"ParameterList","src":"11338:0:5"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"||","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_contract$_OraclizeAddrResolverI_$1665","typeString":"contract OraclizeAddrResolverI"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":2259,"name":"ElementaryTypeNameExpression","src":"11352:7:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2255,"type":"contract OraclizeAddrResolverI","value":"OAR"},"id":2260,"name":"Identifier","src":"11360:3:5"}],"id":2261,"name":"FunctionCall","src":"11352:12:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2262,"name":"Literal","src":"11366:1:5"}],"id":2263,"name":"BinaryOperation","src":"11352:15:5"}],"id":2264,"name":"TupleExpression","src":"11351:17:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":5581,"type":"function (address) view returns (uint256)","value":"getCodeSize"},"id":2265,"name":"Identifier","src":"11371:11:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_contract$_OraclizeAddrResolverI_$1665","typeString":"contract OraclizeAddrResolverI"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":2266,"name":"ElementaryTypeNameExpression","src":"11383:7:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2255,"type":"contract OraclizeAddrResolverI","value":"OAR"},"id":2267,"name":"Identifier","src":"11391:3:5"}],"id":2268,"name":"FunctionCall","src":"11383:12:5"}],"id":2269,"name":"FunctionCall","src":"11371:25:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2270,"name":"Literal","src":"11398:1:5"}],"id":2271,"name":"BinaryOperation","src":"11371:28:5"}],"id":2272,"name":"TupleExpression","src":"11370:30:5"}],"id":2273,"name":"BinaryOperation","src":"11351:49:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"overloadedDeclarations":[2324,2453],"referencedDeclaration":2324,"type":"function (uint8) returns (bool)","value":"oraclize_setNetwork"},"id":2274,"name":"Identifier","src":"11414:19:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2241,"type":"uint8","value":"networkID_auto"},"id":2275,"name":"Identifier","src":"11434:14:5"}],"id":2276,"name":"FunctionCall","src":"11414:35:5"}],"id":2277,"name":"ExpressionStatement","src":"11414:35:5"}],"id":2278,"name":"IfStatement","src":"11348:101:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_contract$_OraclizeI_$1659","typeString":"contract OraclizeI"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":2279,"name":"ElementaryTypeNameExpression","src":"11463:7:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2257,"type":"contract OraclizeI","value":"oraclize"},"id":2280,"name":"Identifier","src":"11471:8:5"}],"id":2281,"name":"FunctionCall","src":"11463:17:5"},{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"getAddress","referencedDeclaration":1664,"type":"function () external returns (address)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2255,"type":"contract OraclizeAddrResolverI","value":"OAR"},"id":2282,"name":"Identifier","src":"11484:3:5"}],"id":2283,"name":"MemberAccess","src":"11484:14:5"}],"id":2284,"name":"FunctionCall","src":"11484:16:5"}],"id":2285,"name":"BinaryOperation","src":"11463:37:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"contract OraclizeI"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2257,"type":"contract OraclizeI","value":"oraclize"},"id":2286,"name":"Identifier","src":"11514:8:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract OraclizeI","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":1659,"type":"type(contract OraclizeI)","value":"OraclizeI"},"id":2287,"name":"Identifier","src":"11525:9:5"},{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"getAddress","referencedDeclaration":1664,"type":"function () external returns (address)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2255,"type":"contract OraclizeAddrResolverI","value":"OAR"},"id":2288,"name":"Identifier","src":"11535:3:5"}],"id":2289,"name":"MemberAccess","src":"11535:14:5"}],"id":2290,"name":"FunctionCall","src":"11535:16:5"}],"id":2291,"name":"FunctionCall","src":"11525:27:5"}],"id":2292,"name":"Assignment","src":"11514:38:5"}],"id":2293,"name":"ExpressionStatement","src":"11514:38:5"}],"id":2294,"name":"IfStatement","src":"11460:92:5"},{"id":2295,"name":"PlaceholderStatement","src":"11563:1:5"}],"id":2296,"name":"Block","src":"11338:233:5"}],"id":2297,"name":"ModifierDefinition","src":"11317:254:5"},{"attributes":{"documentation":null,"name":"coupon","visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"code","scope":2311,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":2298,"name":"ElementaryTypeName","src":"11592:6:5"}],"id":2299,"name":"VariableDeclaration","src":"11592:11:5"}],"id":2300,"name":"ParameterList","src":"11591:13:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"contract OraclizeI"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2257,"type":"contract OraclizeI","value":"oraclize"},"id":2301,"name":"Identifier","src":"11614:8:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract OraclizeI","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":1659,"type":"type(contract OraclizeI)","value":"OraclizeI"},"id":2302,"name":"Identifier","src":"11625:9:5"},{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"getAddress","referencedDeclaration":1664,"type":"function () external returns (address)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2255,"type":"contract OraclizeAddrResolverI","value":"OAR"},"id":2303,"name":"Identifier","src":"11635:3:5"}],"id":2304,"name":"MemberAccess","src":"11635:14:5"}],"id":2305,"name":"FunctionCall","src":"11635:16:5"}],"id":2306,"name":"FunctionCall","src":"11625:27:5"}],"id":2307,"name":"Assignment","src":"11614:38:5"}],"id":2308,"name":"ExpressionStatement","src":"11614:38:5"},{"id":2309,"name":"PlaceholderStatement","src":"11662:1:5"}],"id":2310,"name":"Block","src":"11604:66:5"}],"id":2311,"name":"ModifierDefinition","src":"11576:94:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"oraclize_setNetwork","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"networkID","scope":2324,"stateVariable":false,"storageLocation":"default","type":"uint8","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint8","type":"uint8"},"id":2312,"name":"ElementaryTypeName","src":"11705:5:5"}],"id":2313,"name":"VariableDeclaration","src":"11705:15:5"}],"id":2314,"name":"ParameterList","src":"11704:17:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":2324,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2315,"name":"ElementaryTypeName","src":"11739:4:5"}],"id":2316,"name":"VariableDeclaration","src":"11739:4:5"}],"id":2317,"name":"ParameterList","src":"11738:6:5"},{"children":[{"attributes":{"functionReturnParameters":2317},"children":[{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"overloadedDeclarations":[2324,2453],"referencedDeclaration":2453,"type":"function () returns (bool)","value":"oraclize_setNetwork"},"id":2318,"name":"Identifier","src":"11759:19:5"}],"id":2319,"name":"FunctionCall","src":"11759:21:5"}],"id":2320,"name":"Return","src":"11752:28:5"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2313,"type":"uint8","value":"networkID"},"id":2321,"name":"Identifier","src":"11788:9:5"}],"id":2322,"name":"ExpressionStatement","src":"11788:9:5"}],"id":2323,"name":"Block","src":"11744:115:5"}],"id":2324,"name":"FunctionDefinition","src":"11676:183:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"oraclize_setNetwork","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":2325,"name":"ParameterList","src":"11892:2:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":2453,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2326,"name":"ElementaryTypeName","src":"11912:4:5"}],"id":2327,"name":"VariableDeclaration","src":"11912:4:5"}],"id":2328,"name":"ParameterList","src":"11911:6:5"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":5581,"type":"function (address) view returns (uint256)","value":"getCodeSize"},"id":2329,"name":"Identifier","src":"11931:11:5"},{"attributes":{"argumentTypes":null,"hexvalue":"307831643342323633386137634339663243423344323938413344413761393042363745353530366564","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"address","value":"0x1d3B2638a7cC9f2CB3D298A3DA7a90B67E5506ed"},"id":2330,"name":"Literal","src":"11943:42:5"}],"id":2331,"name":"FunctionCall","src":"11931:55:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2332,"name":"Literal","src":"11987:1:5"}],"id":2333,"name":"BinaryOperation","src":"11931:57:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"contract OraclizeAddrResolverI"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2255,"type":"contract OraclizeAddrResolverI","value":"OAR"},"id":2334,"name":"Identifier","src":"12013:3:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract OraclizeAddrResolverI","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":1665,"type":"type(contract OraclizeAddrResolverI)","value":"OraclizeAddrResolverI"},"id":2335,"name":"Identifier","src":"12019:21:5"},{"attributes":{"argumentTypes":null,"hexvalue":"307831643342323633386137634339663243423344323938413344413761393042363745353530366564","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"address","value":"0x1d3B2638a7cC9f2CB3D298A3DA7a90B67E5506ed"},"id":2336,"name":"Literal","src":"12041:42:5"}],"id":2337,"name":"FunctionCall","src":"12019:65:5"}],"id":2338,"name":"Assignment","src":"12013:71:5"}],"id":2339,"name":"ExpressionStatement","src":"12013:71:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_166a8b14211a981f35b8c1a0ccd1793ab8b02990816168f2e07c026e3cec6dbb","typeString":"literal_string \"eth_mainnet\""}],"overloadedDeclarations":[null],"referencedDeclaration":6514,"type":"function (string memory)","value":"oraclize_setNetworkName"},"id":2340,"name":"Identifier","src":"12098:23:5"},{"attributes":{"argumentTypes":null,"hexvalue":"6574685f6d61696e6e6574","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"eth_mainnet\"","value":"eth_mainnet"},"id":2341,"name":"Literal","src":"12122:13:5"}],"id":2342,"name":"FunctionCall","src":"12098:38:5"}],"id":2343,"name":"ExpressionStatement","src":"12098:38:5"},{"attributes":{"functionReturnParameters":2328},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":2344,"name":"Literal","src":"12157:4:5"}],"id":2345,"name":"Return","src":"12150:11:5"}],"id":2346,"name":"Block","src":"11989:183:5"}],"id":2347,"name":"IfStatement","src":"11927:245:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":5581,"type":"function (address) view returns (uint256)","value":"getCodeSize"},"id":2348,"name":"Identifier","src":"12185:11:5"},{"attributes":{"argumentTypes":null,"hexvalue":"307863303341323631354435656661663546343946363042374242363538336561656332313266646631","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"address","value":"0xc03A2615D5efaf5F49F60B7BB6583eaec212fdf1"},"id":2349,"name":"Literal","src":"12197:42:5"}],"id":2350,"name":"FunctionCall","src":"12185:55:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2351,"name":"Literal","src":"12241:1:5"}],"id":2352,"name":"BinaryOperation","src":"12185:57:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"contract OraclizeAddrResolverI"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2255,"type":"contract OraclizeAddrResolverI","value":"OAR"},"id":2353,"name":"Identifier","src":"12275:3:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract OraclizeAddrResolverI","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":1665,"type":"type(contract OraclizeAddrResolverI)","value":"OraclizeAddrResolverI"},"id":2354,"name":"Identifier","src":"12281:21:5"},{"attributes":{"argumentTypes":null,"hexvalue":"307863303341323631354435656661663546343946363042374242363538336561656332313266646631","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"address","value":"0xc03A2615D5efaf5F49F60B7BB6583eaec212fdf1"},"id":2355,"name":"Literal","src":"12303:42:5"}],"id":2356,"name":"FunctionCall","src":"12281:65:5"}],"id":2357,"name":"Assignment","src":"12275:71:5"}],"id":2358,"name":"ExpressionStatement","src":"12275:71:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e6d7ad12f793704da2b0e6be7ff3ba552c838441702c3dfed0dc46fdcc6223f3","typeString":"literal_string \"eth_ropsten3\""}],"overloadedDeclarations":[null],"referencedDeclaration":6514,"type":"function (string memory)","value":"oraclize_setNetworkName"},"id":2359,"name":"Identifier","src":"12360:23:5"},{"attributes":{"argumentTypes":null,"hexvalue":"6574685f726f707374656e33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"eth_ropsten3\"","value":"eth_ropsten3"},"id":2360,"name":"Literal","src":"12384:14:5"}],"id":2361,"name":"FunctionCall","src":"12360:39:5"}],"id":2362,"name":"ExpressionStatement","src":"12360:39:5"},{"attributes":{"functionReturnParameters":2328},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":2363,"name":"Literal","src":"12420:4:5"}],"id":2364,"name":"Return","src":"12413:11:5"}],"id":2365,"name":"Block","src":"12243:192:5"}],"id":2366,"name":"IfStatement","src":"12181:254:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":5581,"type":"function (address) view returns (uint256)","value":"getCodeSize"},"id":2367,"name":"Identifier","src":"12448:11:5"},{"attributes":{"argumentTypes":null,"hexvalue":"307842374130374263463242613266323730336232344330363931623532373839393943353941433765","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"address","value":"0xB7A07BcF2Ba2f2703b24C0691b5278999C59AC7e"},"id":2368,"name":"Literal","src":"12460:42:5"}],"id":2369,"name":"FunctionCall","src":"12448:55:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2370,"name":"Literal","src":"12504:1:5"}],"id":2371,"name":"BinaryOperation","src":"12448:57:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"contract OraclizeAddrResolverI"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2255,"type":"contract OraclizeAddrResolverI","value":"OAR"},"id":2372,"name":"Identifier","src":"12536:3:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract OraclizeAddrResolverI","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":1665,"type":"type(contract OraclizeAddrResolverI)","value":"OraclizeAddrResolverI"},"id":2373,"name":"Identifier","src":"12542:21:5"},{"attributes":{"argumentTypes":null,"hexvalue":"307842374130374263463242613266323730336232344330363931623532373839393943353941433765","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"address","value":"0xB7A07BcF2Ba2f2703b24C0691b5278999C59AC7e"},"id":2374,"name":"Literal","src":"12564:42:5"}],"id":2375,"name":"FunctionCall","src":"12542:65:5"}],"id":2376,"name":"Assignment","src":"12536:71:5"}],"id":2377,"name":"ExpressionStatement","src":"12536:71:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_da5c31bc586f77b6347024034556b408f03b750ee3f96529679e30db70e2e90d","typeString":"literal_string \"eth_kovan\""}],"overloadedDeclarations":[null],"referencedDeclaration":6514,"type":"function (string memory)","value":"oraclize_setNetworkName"},"id":2378,"name":"Identifier","src":"12621:23:5"},{"attributes":{"argumentTypes":null,"hexvalue":"6574685f6b6f76616e","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"eth_kovan\"","value":"eth_kovan"},"id":2379,"name":"Literal","src":"12645:11:5"}],"id":2380,"name":"FunctionCall","src":"12621:36:5"}],"id":2381,"name":"ExpressionStatement","src":"12621:36:5"},{"attributes":{"functionReturnParameters":2328},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":2382,"name":"Literal","src":"12678:4:5"}],"id":2383,"name":"Return","src":"12671:11:5"}],"id":2384,"name":"Block","src":"12506:187:5"}],"id":2385,"name":"IfStatement","src":"12444:249:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":5581,"type":"function (address) view returns (uint256)","value":"getCodeSize"},"id":2386,"name":"Identifier","src":"12706:11:5"},{"attributes":{"argumentTypes":null,"hexvalue":"307831343635303063666433354232324534413339324665306144633036446531613133363845643438","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"address","value":"0x146500cfd35B22E4A392Fe0aDc06De1a1368Ed48"},"id":2387,"name":"Literal","src":"12718:42:5"}],"id":2388,"name":"FunctionCall","src":"12706:55:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2389,"name":"Literal","src":"12762:1:5"}],"id":2390,"name":"BinaryOperation","src":"12706:57:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"contract OraclizeAddrResolverI"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2255,"type":"contract OraclizeAddrResolverI","value":"OAR"},"id":2391,"name":"Identifier","src":"12796:3:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract OraclizeAddrResolverI","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":1665,"type":"type(contract OraclizeAddrResolverI)","value":"OraclizeAddrResolverI"},"id":2392,"name":"Identifier","src":"12802:21:5"},{"attributes":{"argumentTypes":null,"hexvalue":"307831343635303063666433354232324534413339324665306144633036446531613133363845643438","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"address","value":"0x146500cfd35B22E4A392Fe0aDc06De1a1368Ed48"},"id":2393,"name":"Literal","src":"12824:42:5"}],"id":2394,"name":"FunctionCall","src":"12802:65:5"}],"id":2395,"name":"Assignment","src":"12796:71:5"}],"id":2396,"name":"ExpressionStatement","src":"12796:71:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_bcbda94ce7fd7b64b15e0074dc94e1f7d42828b0ba2b4a4854abb35899f64a25","typeString":"literal_string \"eth_rinkeby\""}],"overloadedDeclarations":[null],"referencedDeclaration":6514,"type":"function (string memory)","value":"oraclize_setNetworkName"},"id":2397,"name":"Identifier","src":"12881:23:5"},{"attributes":{"argumentTypes":null,"hexvalue":"6574685f72696e6b656279","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"eth_rinkeby\"","value":"eth_rinkeby"},"id":2398,"name":"Literal","src":"12905:13:5"}],"id":2399,"name":"FunctionCall","src":"12881:38:5"}],"id":2400,"name":"ExpressionStatement","src":"12881:38:5"},{"attributes":{"functionReturnParameters":2328},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":2401,"name":"Literal","src":"12940:4:5"}],"id":2402,"name":"Return","src":"12933:11:5"}],"id":2403,"name":"Block","src":"12764:191:5"}],"id":2404,"name":"IfStatement","src":"12702:253:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":5581,"type":"function (address) view returns (uint256)","value":"getCodeSize"},"id":2405,"name":"Identifier","src":"12968:11:5"},{"attributes":{"argumentTypes":null,"hexvalue":"307836663438354338424636666334336541323132453933424246386365303436433766316362343735","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"address","value":"0x6f485C8BF6fc43eA212E93BBF8ce046C7f1cb475"},"id":2406,"name":"Literal","src":"12980:42:5"}],"id":2407,"name":"FunctionCall","src":"12968:55:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2408,"name":"Literal","src":"13024:1:5"}],"id":2409,"name":"BinaryOperation","src":"12968:57:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"contract OraclizeAddrResolverI"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2255,"type":"contract OraclizeAddrResolverI","value":"OAR"},"id":2410,"name":"Identifier","src":"13058:3:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract OraclizeAddrResolverI","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":1665,"type":"type(contract OraclizeAddrResolverI)","value":"OraclizeAddrResolverI"},"id":2411,"name":"Identifier","src":"13064:21:5"},{"attributes":{"argumentTypes":null,"hexvalue":"307836663438354338424636666334336541323132453933424246386365303436433766316362343735","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"address","value":"0x6f485C8BF6fc43eA212E93BBF8ce046C7f1cb475"},"id":2412,"name":"Literal","src":"13086:42:5"}],"id":2413,"name":"FunctionCall","src":"13064:65:5"}],"id":2414,"name":"Assignment","src":"13058:71:5"}],"id":2415,"name":"ExpressionStatement","src":"13058:71:5"},{"attributes":{"functionReturnParameters":2328},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":2416,"name":"Literal","src":"13150:4:5"}],"id":2417,"name":"Return","src":"13143:11:5"}],"id":2418,"name":"Block","src":"13026:139:5"}],"id":2419,"name":"IfStatement","src":"12964:201:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":5581,"type":"function (address) view returns (uint256)","value":"getCodeSize"},"id":2420,"name":"Identifier","src":"13178:11:5"},{"attributes":{"argumentTypes":null,"hexvalue":"307832306531324131463835394233466561453546623241304133324331384635613635353535624246","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"address","value":"0x20e12A1F859B3FeaE5Fb2A0A32C18F5a65555bBF"},"id":2421,"name":"Literal","src":"13190:42:5"}],"id":2422,"name":"FunctionCall","src":"13178:55:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2423,"name":"Literal","src":"13234:1:5"}],"id":2424,"name":"BinaryOperation","src":"13178:57:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"contract OraclizeAddrResolverI"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2255,"type":"contract OraclizeAddrResolverI","value":"OAR"},"id":2425,"name":"Identifier","src":"13267:3:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract OraclizeAddrResolverI","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":1665,"type":"type(contract OraclizeAddrResolverI)","value":"OraclizeAddrResolverI"},"id":2426,"name":"Identifier","src":"13273:21:5"},{"attributes":{"argumentTypes":null,"hexvalue":"307832306531324131463835394233466561453546623241304133324331384635613635353535624246","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"address","value":"0x20e12A1F859B3FeaE5Fb2A0A32C18F5a65555bBF"},"id":2427,"name":"Literal","src":"13295:42:5"}],"id":2428,"name":"FunctionCall","src":"13273:65:5"}],"id":2429,"name":"Assignment","src":"13267:71:5"}],"id":2430,"name":"ExpressionStatement","src":"13267:71:5"},{"attributes":{"functionReturnParameters":2328},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":2431,"name":"Literal","src":"13359:4:5"}],"id":2432,"name":"Return","src":"13352:11:5"}],"id":2433,"name":"Block","src":"13236:138:5"}],"id":2434,"name":"IfStatement","src":"13174:200:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":5581,"type":"function (address) view returns (uint256)","value":"getCodeSize"},"id":2435,"name":"Identifier","src":"13387:11:5"},{"attributes":{"argumentTypes":null,"hexvalue":"307835316566614634633842334339416642443561423946346262433832373834416236656638664141","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"address","value":"0x51efaF4c8B3C9AfBD5aB9F4bbC82784Ab6ef8fAA"},"id":2436,"name":"Literal","src":"13399:42:5"}],"id":2437,"name":"FunctionCall","src":"13387:55:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2438,"name":"Literal","src":"13443:1:5"}],"id":2439,"name":"BinaryOperation","src":"13387:57:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"contract OraclizeAddrResolverI"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2255,"type":"contract OraclizeAddrResolverI","value":"OAR"},"id":2440,"name":"Identifier","src":"13478:3:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract OraclizeAddrResolverI","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":1665,"type":"type(contract OraclizeAddrResolverI)","value":"OraclizeAddrResolverI"},"id":2441,"name":"Identifier","src":"13484:21:5"},{"attributes":{"argumentTypes":null,"hexvalue":"307835316566614634633842334339416642443561423946346262433832373834416236656638664141","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"address","value":"0x51efaF4c8B3C9AfBD5aB9F4bbC82784Ab6ef8fAA"},"id":2442,"name":"Literal","src":"13506:42:5"}],"id":2443,"name":"FunctionCall","src":"13484:65:5"}],"id":2444,"name":"Assignment","src":"13478:71:5"}],"id":2445,"name":"ExpressionStatement","src":"13478:71:5"},{"attributes":{"functionReturnParameters":2328},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":2446,"name":"Literal","src":"13570:4:5"}],"id":2447,"name":"Return","src":"13563:11:5"}],"id":2448,"name":"Block","src":"13445:140:5"}],"id":2449,"name":"IfStatement","src":"13383:202:5"},{"attributes":{"functionReturnParameters":2328},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"66616c7365","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"false"},"id":2450,"name":"Literal","src":"13601:5:5"}],"id":2451,"name":"Return","src":"13594:12:5"}],"id":2452,"name":"Block","src":"11917:1696:5"}],"id":2453,"name":"FunctionDefinition","src":"11864:1749:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"__callback","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"myid","scope":2470,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":2454,"name":"ElementaryTypeName","src":"13639:7:5"}],"id":2455,"name":"VariableDeclaration","src":"13639:12:5"},{"attributes":{"constant":false,"name":"result","scope":2470,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":2456,"name":"ElementaryTypeName","src":"13653:6:5"}],"id":2457,"name":"VariableDeclaration","src":"13653:13:5"}],"id":2458,"name":"ParameterList","src":"13638:29:5"},{"attributes":{"parameters":[null]},"children":[],"id":2459,"name":"ParameterList","src":"13675:0:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory","typeString":"bytes memory"}],"overloadedDeclarations":[2470,2493],"referencedDeclaration":2493,"type":"function (bytes32,string memory,bytes memory)","value":"__callback"},"id":2460,"name":"Identifier","src":"13685:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2455,"type":"bytes32","value":"myid"},"id":2461,"name":"Identifier","src":"13696:4:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2457,"type":"string memory","value":"result"},"id":2462,"name":"Identifier","src":"13702:6:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (bytes memory)"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":2463,"name":"ElementaryTypeName","src":"13714:5:5"}],"id":2464,"name":"NewExpression","src":"13710:9:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2465,"name":"Literal","src":"13720:1:5"}],"id":2466,"name":"FunctionCall","src":"13710:12:5"}],"id":2467,"name":"FunctionCall","src":"13685:38:5"}],"id":2468,"name":"ExpressionStatement","src":"13685:38:5"}],"id":2469,"name":"Block","src":"13675:55:5"}],"id":2470,"name":"FunctionDefinition","src":"13619:111:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"__callback","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"myid","scope":2493,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":2471,"name":"ElementaryTypeName","src":"13755:7:5"}],"id":2472,"name":"VariableDeclaration","src":"13755:12:5"},{"attributes":{"constant":false,"name":"result","scope":2493,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":2473,"name":"ElementaryTypeName","src":"13769:6:5"}],"id":2474,"name":"VariableDeclaration","src":"13769:13:5"},{"attributes":{"constant":false,"name":"proof","scope":2493,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":2475,"name":"ElementaryTypeName","src":"13784:5:5"}],"id":2476,"name":"VariableDeclaration","src":"13784:11:5"}],"id":2477,"name":"ParameterList","src":"13754:42:5"},{"attributes":{"parameters":[null]},"children":[],"id":2478,"name":"ParameterList","src":"13804:0:5"},{"children":[{"attributes":{"expression":null,"functionReturnParameters":2478},"id":2479,"name":"Return","src":"13812:7:5"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2472,"type":"bytes32","value":"myid"},"id":2480,"name":"Identifier","src":"14024:4:5"}],"id":2481,"name":"ExpressionStatement","src":"14024:4:5"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2474,"type":"string memory","value":"result"},"id":2482,"name":"Identifier","src":"14030:6:5"}],"id":2483,"name":"ExpressionStatement","src":"14030:6:5"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2476,"type":"bytes memory","value":"proof"},"id":2484,"name":"Identifier","src":"14038:5:5"}],"id":2485,"name":"ExpressionStatement","src":"14038:5:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"contract OraclizeI"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2257,"type":"contract OraclizeI","value":"oraclize"},"id":2486,"name":"Identifier","src":"14080:8:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract OraclizeI","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"overloadedDeclarations":[null],"referencedDeclaration":1659,"type":"type(contract OraclizeI)","value":"OraclizeI"},"id":2487,"name":"Identifier","src":"14091:9:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2488,"name":"Literal","src":"14101:1:5"}],"id":2489,"name":"FunctionCall","src":"14091:12:5"}],"id":2490,"name":"Assignment","src":"14080:23:5"}],"id":2491,"name":"ExpressionStatement","src":"14080:23:5"}],"id":2492,"name":"Block","src":"13804:371:5"}],"id":2493,"name":"FunctionDefinition","src":"13735:440:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_getPrice","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"datasource","scope":2508,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":2494,"name":"ElementaryTypeName","src":"14208:6:5"}],"id":2495,"name":"VariableDeclaration","src":"14208:17:5"}],"id":2496,"name":"ParameterList","src":"14207:19:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":2508,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2499,"name":"ElementaryTypeName","src":"14257:4:5"}],"id":2500,"name":"VariableDeclaration","src":"14257:4:5"}],"id":2501,"name":"ParameterList","src":"14256:6:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":2497,"name":"Identifier","src":"14227:11:5"}],"id":2498,"name":"ModifierInvocation","src":"14227:11:5"},{"children":[{"attributes":{"functionReturnParameters":2501},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"getPrice","referencedDeclaration":1634,"type":"function (string memory) external returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2257,"type":"contract OraclizeI","value":"oraclize"},"id":2502,"name":"Identifier","src":"14279:8:5"}],"id":2503,"name":"MemberAccess","src":"14279:17:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2495,"type":"string memory","value":"datasource"},"id":2504,"name":"Identifier","src":"14297:10:5"}],"id":2505,"name":"FunctionCall","src":"14279:29:5"}],"id":2506,"name":"Return","src":"14272:36:5"}],"id":2507,"name":"Block","src":"14262:53:5"}],"id":2508,"name":"FunctionDefinition","src":"14181:134:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_getPrice","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"datasource","scope":2526,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":2509,"name":"ElementaryTypeName","src":"14348:6:5"}],"id":2510,"name":"VariableDeclaration","src":"14348:17:5"},{"attributes":{"constant":false,"name":"gaslimit","scope":2526,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2511,"name":"ElementaryTypeName","src":"14367:4:5"}],"id":2512,"name":"VariableDeclaration","src":"14367:13:5"}],"id":2513,"name":"ParameterList","src":"14347:34:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":2526,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2516,"name":"ElementaryTypeName","src":"14412:4:5"}],"id":2517,"name":"VariableDeclaration","src":"14412:4:5"}],"id":2518,"name":"ParameterList","src":"14411:6:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":2514,"name":"Identifier","src":"14382:11:5"}],"id":2515,"name":"ModifierInvocation","src":"14382:11:5"},{"children":[{"attributes":{"functionReturnParameters":2518},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"getPrice","referencedDeclaration":1643,"type":"function (string memory,uint256) external returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2257,"type":"contract OraclizeI","value":"oraclize"},"id":2519,"name":"Identifier","src":"14434:8:5"}],"id":2520,"name":"MemberAccess","src":"14434:17:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2510,"type":"string memory","value":"datasource"},"id":2521,"name":"Identifier","src":"14452:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2512,"type":"uint256","value":"gaslimit"},"id":2522,"name":"Identifier","src":"14464:8:5"}],"id":2523,"name":"FunctionCall","src":"14434:39:5"}],"id":2524,"name":"Return","src":"14427:46:5"}],"id":2525,"name":"Block","src":"14417:63:5"}],"id":2526,"name":"FunctionDefinition","src":"14321:159:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"datasource","scope":2566,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":2527,"name":"ElementaryTypeName","src":"14510:6:5"}],"id":2528,"name":"VariableDeclaration","src":"14510:17:5"},{"attributes":{"constant":false,"name":"arg","scope":2566,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":2529,"name":"ElementaryTypeName","src":"14529:6:5"}],"id":2530,"name":"VariableDeclaration","src":"14529:10:5"}],"id":2531,"name":"ParameterList","src":"14509:31:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":2566,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":2534,"name":"ElementaryTypeName","src":"14571:7:5"}],"id":2535,"name":"VariableDeclaration","src":"14571:10:5"}],"id":2536,"name":"ParameterList","src":"14570:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":2532,"name":"Identifier","src":"14541:11:5"}],"id":2533,"name":"ModifierInvocation","src":"14541:11:5"},{"children":[{"attributes":{"assignments":[2538]},"children":[{"attributes":{"constant":false,"name":"price","scope":2566,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2537,"name":"ElementaryTypeName","src":"14592:4:5"}],"id":2538,"name":"VariableDeclaration","src":"14592:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"getPrice","referencedDeclaration":1634,"type":"function (string memory) external returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2257,"type":"contract OraclizeI","value":"oraclize"},"id":2539,"name":"Identifier","src":"14605:8:5"}],"id":2540,"name":"MemberAccess","src":"14605:17:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2528,"type":"string memory","value":"datasource"},"id":2541,"name":"Identifier","src":"14623:10:5"}],"id":2542,"name":"FunctionCall","src":"14605:29:5"}],"id":2543,"name":"VariableDeclarationStatement","src":"14592:42:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2538,"type":"uint256","value":"price"},"id":2544,"name":"Identifier","src":"14648:5:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":"ether","token":"number","type":"int_const 1000000000000000000","value":"1"},"id":2545,"name":"Literal","src":"14656:7:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"gasprice","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":12028,"type":"tx","value":"tx"},"id":2546,"name":"Identifier","src":"14666:2:5"}],"id":2547,"name":"MemberAccess","src":"14666:11:5"},{"attributes":{"argumentTypes":null,"hexvalue":"323030303030","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 200000","value":"200000"},"id":2548,"name":"Literal","src":"14678:6:5"}],"id":2549,"name":"BinaryOperation","src":"14666:18:5"}],"id":2550,"name":"BinaryOperation","src":"14656:28:5"}],"id":2551,"name":"BinaryOperation","src":"14648:36:5"},{"attributes":{"functionReturnParameters":2536},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2552,"name":"Literal","src":"14693:1:5"}],"id":2553,"name":"Return","src":"14686:8:5"}],"id":2554,"name":"IfStatement","src":"14644:50:5"},{"attributes":{"functionReturnParameters":2536},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"function (uint256,string memory,string memory) payable external returns (bytes32)","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"value","referencedDeclaration":null,"type":"function (uint256) returns (function (uint256,string memory,string memory) payable external returns (bytes32))"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"query","referencedDeclaration":1562,"type":"function (uint256,string memory,string memory) payable external returns (bytes32)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2257,"type":"contract OraclizeI","value":"oraclize"},"id":2555,"name":"Identifier","src":"14738:8:5"}],"id":2556,"name":"MemberAccess","src":"14738:14:5"}],"id":2557,"name":"MemberAccess","src":"14738:20:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2538,"type":"uint256","value":"price"},"id":2558,"name":"Identifier","src":"14759:5:5"}],"id":2559,"name":"FunctionCall","src":"14738:27:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2560,"name":"Literal","src":"14766:1:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2528,"type":"string memory","value":"datasource"},"id":2561,"name":"Identifier","src":"14769:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2530,"type":"string memory","value":"arg"},"id":2562,"name":"Identifier","src":"14781:3:5"}],"id":2563,"name":"FunctionCall","src":"14738:47:5"}],"id":2564,"name":"Return","src":"14731:54:5"}],"id":2565,"name":"Block","src":"14582:210:5"}],"id":2566,"name":"FunctionDefinition","src":"14486:306:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"timestamp","scope":2608,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2567,"name":"ElementaryTypeName","src":"14821:4:5"}],"id":2568,"name":"VariableDeclaration","src":"14821:14:5"},{"attributes":{"constant":false,"name":"datasource","scope":2608,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":2569,"name":"ElementaryTypeName","src":"14837:6:5"}],"id":2570,"name":"VariableDeclaration","src":"14837:17:5"},{"attributes":{"constant":false,"name":"arg","scope":2608,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":2571,"name":"ElementaryTypeName","src":"14856:6:5"}],"id":2572,"name":"VariableDeclaration","src":"14856:10:5"}],"id":2573,"name":"ParameterList","src":"14820:47:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":2608,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":2576,"name":"ElementaryTypeName","src":"14898:7:5"}],"id":2577,"name":"VariableDeclaration","src":"14898:10:5"}],"id":2578,"name":"ParameterList","src":"14897:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":2574,"name":"Identifier","src":"14868:11:5"}],"id":2575,"name":"ModifierInvocation","src":"14868:11:5"},{"children":[{"attributes":{"assignments":[2580]},"children":[{"attributes":{"constant":false,"name":"price","scope":2608,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2579,"name":"ElementaryTypeName","src":"14919:4:5"}],"id":2580,"name":"VariableDeclaration","src":"14919:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"getPrice","referencedDeclaration":1634,"type":"function (string memory) external returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2257,"type":"contract OraclizeI","value":"oraclize"},"id":2581,"name":"Identifier","src":"14932:8:5"}],"id":2582,"name":"MemberAccess","src":"14932:17:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2570,"type":"string memory","value":"datasource"},"id":2583,"name":"Identifier","src":"14950:10:5"}],"id":2584,"name":"FunctionCall","src":"14932:29:5"}],"id":2585,"name":"VariableDeclarationStatement","src":"14919:42:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2580,"type":"uint256","value":"price"},"id":2586,"name":"Identifier","src":"14975:5:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":"ether","token":"number","type":"int_const 1000000000000000000","value":"1"},"id":2587,"name":"Literal","src":"14983:7:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"gasprice","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":12028,"type":"tx","value":"tx"},"id":2588,"name":"Identifier","src":"14993:2:5"}],"id":2589,"name":"MemberAccess","src":"14993:11:5"},{"attributes":{"argumentTypes":null,"hexvalue":"323030303030","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 200000","value":"200000"},"id":2590,"name":"Literal","src":"15005:6:5"}],"id":2591,"name":"BinaryOperation","src":"14993:18:5"}],"id":2592,"name":"BinaryOperation","src":"14983:28:5"}],"id":2593,"name":"BinaryOperation","src":"14975:36:5"},{"attributes":{"functionReturnParameters":2578},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2594,"name":"Literal","src":"15020:1:5"}],"id":2595,"name":"Return","src":"15013:8:5"}],"id":2596,"name":"IfStatement","src":"14971:50:5"},{"attributes":{"functionReturnParameters":2578},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"function (uint256,string memory,string memory) payable external returns (bytes32)","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"value","referencedDeclaration":null,"type":"function (uint256) returns (function (uint256,string memory,string memory) payable external returns (bytes32))"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"query","referencedDeclaration":1562,"type":"function (uint256,string memory,string memory) payable external returns (bytes32)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2257,"type":"contract OraclizeI","value":"oraclize"},"id":2597,"name":"Identifier","src":"15065:8:5"}],"id":2598,"name":"MemberAccess","src":"15065:14:5"}],"id":2599,"name":"MemberAccess","src":"15065:20:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2580,"type":"uint256","value":"price"},"id":2600,"name":"Identifier","src":"15086:5:5"}],"id":2601,"name":"FunctionCall","src":"15065:27:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2568,"type":"uint256","value":"timestamp"},"id":2602,"name":"Identifier","src":"15093:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2570,"type":"string memory","value":"datasource"},"id":2603,"name":"Identifier","src":"15104:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2572,"type":"string memory","value":"arg"},"id":2604,"name":"Identifier","src":"15116:3:5"}],"id":2605,"name":"FunctionCall","src":"15065:55:5"}],"id":2606,"name":"Return","src":"15058:62:5"}],"id":2607,"name":"Block","src":"14909:218:5"}],"id":2608,"name":"FunctionDefinition","src":"14797:330:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"timestamp","scope":2654,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2609,"name":"ElementaryTypeName","src":"15156:4:5"}],"id":2610,"name":"VariableDeclaration","src":"15156:14:5"},{"attributes":{"constant":false,"name":"datasource","scope":2654,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":2611,"name":"ElementaryTypeName","src":"15172:6:5"}],"id":2612,"name":"VariableDeclaration","src":"15172:17:5"},{"attributes":{"constant":false,"name":"arg","scope":2654,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":2613,"name":"ElementaryTypeName","src":"15191:6:5"}],"id":2614,"name":"VariableDeclaration","src":"15191:10:5"},{"attributes":{"constant":false,"name":"gaslimit","scope":2654,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2615,"name":"ElementaryTypeName","src":"15203:4:5"}],"id":2616,"name":"VariableDeclaration","src":"15203:13:5"}],"id":2617,"name":"ParameterList","src":"15155:62:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":2654,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":2620,"name":"ElementaryTypeName","src":"15248:7:5"}],"id":2621,"name":"VariableDeclaration","src":"15248:10:5"}],"id":2622,"name":"ParameterList","src":"15247:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":2618,"name":"Identifier","src":"15218:11:5"}],"id":2619,"name":"ModifierInvocation","src":"15218:11:5"},{"children":[{"attributes":{"assignments":[2624]},"children":[{"attributes":{"constant":false,"name":"price","scope":2654,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2623,"name":"ElementaryTypeName","src":"15269:4:5"}],"id":2624,"name":"VariableDeclaration","src":"15269:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"getPrice","referencedDeclaration":1643,"type":"function (string memory,uint256) external returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2257,"type":"contract OraclizeI","value":"oraclize"},"id":2625,"name":"Identifier","src":"15282:8:5"}],"id":2626,"name":"MemberAccess","src":"15282:17:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2612,"type":"string memory","value":"datasource"},"id":2627,"name":"Identifier","src":"15300:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2616,"type":"uint256","value":"gaslimit"},"id":2628,"name":"Identifier","src":"15312:8:5"}],"id":2629,"name":"FunctionCall","src":"15282:39:5"}],"id":2630,"name":"VariableDeclarationStatement","src":"15269:52:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2624,"type":"uint256","value":"price"},"id":2631,"name":"Identifier","src":"15335:5:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":"ether","token":"number","type":"int_const 1000000000000000000","value":"1"},"id":2632,"name":"Literal","src":"15343:7:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"gasprice","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":12028,"type":"tx","value":"tx"},"id":2633,"name":"Identifier","src":"15353:2:5"}],"id":2634,"name":"MemberAccess","src":"15353:11:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2616,"type":"uint256","value":"gaslimit"},"id":2635,"name":"Identifier","src":"15365:8:5"}],"id":2636,"name":"BinaryOperation","src":"15353:20:5"}],"id":2637,"name":"BinaryOperation","src":"15343:30:5"}],"id":2638,"name":"BinaryOperation","src":"15335:38:5"},{"attributes":{"functionReturnParameters":2622},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2639,"name":"Literal","src":"15382:1:5"}],"id":2640,"name":"Return","src":"15375:8:5"}],"id":2641,"name":"IfStatement","src":"15331:52:5"},{"attributes":{"functionReturnParameters":2622},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"function (uint256,string memory,string memory,uint256) payable external returns (bytes32)","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"value","referencedDeclaration":null,"type":"function (uint256) returns (function (uint256,string memory,string memory,uint256) payable external returns (bytes32))"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"query_withGasLimit","referencedDeclaration":1575,"type":"function (uint256,string memory,string memory,uint256) payable external returns (bytes32)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2257,"type":"contract OraclizeI","value":"oraclize"},"id":2642,"name":"Identifier","src":"15427:8:5"}],"id":2643,"name":"MemberAccess","src":"15427:27:5"}],"id":2644,"name":"MemberAccess","src":"15427:33:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2624,"type":"uint256","value":"price"},"id":2645,"name":"Identifier","src":"15461:5:5"}],"id":2646,"name":"FunctionCall","src":"15427:40:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2610,"type":"uint256","value":"timestamp"},"id":2647,"name":"Identifier","src":"15468:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2612,"type":"string memory","value":"datasource"},"id":2648,"name":"Identifier","src":"15479:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2614,"type":"string memory","value":"arg"},"id":2649,"name":"Identifier","src":"15491:3:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2616,"type":"uint256","value":"gaslimit"},"id":2650,"name":"Identifier","src":"15496:8:5"}],"id":2651,"name":"FunctionCall","src":"15427:78:5"}],"id":2652,"name":"Return","src":"15420:85:5"}],"id":2653,"name":"Block","src":"15259:253:5"}],"id":2654,"name":"FunctionDefinition","src":"15132:380:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"datasource","scope":2698,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":2655,"name":"ElementaryTypeName","src":"15541:6:5"}],"id":2656,"name":"VariableDeclaration","src":"15541:17:5"},{"attributes":{"constant":false,"name":"arg","scope":2698,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":2657,"name":"ElementaryTypeName","src":"15560:6:5"}],"id":2658,"name":"VariableDeclaration","src":"15560:10:5"},{"attributes":{"constant":false,"name":"gaslimit","scope":2698,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2659,"name":"ElementaryTypeName","src":"15572:4:5"}],"id":2660,"name":"VariableDeclaration","src":"15572:13:5"}],"id":2661,"name":"ParameterList","src":"15540:46:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":2698,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":2664,"name":"ElementaryTypeName","src":"15617:7:5"}],"id":2665,"name":"VariableDeclaration","src":"15617:10:5"}],"id":2666,"name":"ParameterList","src":"15616:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":2662,"name":"Identifier","src":"15587:11:5"}],"id":2663,"name":"ModifierInvocation","src":"15587:11:5"},{"children":[{"attributes":{"assignments":[2668]},"children":[{"attributes":{"constant":false,"name":"price","scope":2698,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2667,"name":"ElementaryTypeName","src":"15638:4:5"}],"id":2668,"name":"VariableDeclaration","src":"15638:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"getPrice","referencedDeclaration":1643,"type":"function (string memory,uint256) external returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2257,"type":"contract OraclizeI","value":"oraclize"},"id":2669,"name":"Identifier","src":"15651:8:5"}],"id":2670,"name":"MemberAccess","src":"15651:17:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2656,"type":"string memory","value":"datasource"},"id":2671,"name":"Identifier","src":"15669:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2660,"type":"uint256","value":"gaslimit"},"id":2672,"name":"Identifier","src":"15681:8:5"}],"id":2673,"name":"FunctionCall","src":"15651:39:5"}],"id":2674,"name":"VariableDeclarationStatement","src":"15638:52:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2668,"type":"uint256","value":"price"},"id":2675,"name":"Identifier","src":"15704:5:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":"ether","token":"number","type":"int_const 1000000000000000000","value":"1"},"id":2676,"name":"Literal","src":"15712:7:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"gasprice","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":12028,"type":"tx","value":"tx"},"id":2677,"name":"Identifier","src":"15722:2:5"}],"id":2678,"name":"MemberAccess","src":"15722:11:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2660,"type":"uint256","value":"gaslimit"},"id":2679,"name":"Identifier","src":"15734:8:5"}],"id":2680,"name":"BinaryOperation","src":"15722:20:5"}],"id":2681,"name":"BinaryOperation","src":"15712:30:5"}],"id":2682,"name":"BinaryOperation","src":"15704:38:5"},{"attributes":{"functionReturnParameters":2666},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2683,"name":"Literal","src":"15751:1:5"}],"id":2684,"name":"Return","src":"15744:8:5"}],"id":2685,"name":"IfStatement","src":"15700:52:5"},{"attributes":{"functionReturnParameters":2666},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"function (uint256,string memory,string memory,uint256) payable external returns (bytes32)","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"value","referencedDeclaration":null,"type":"function (uint256) returns (function (uint256,string memory,string memory,uint256) payable external returns (bytes32))"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"query_withGasLimit","referencedDeclaration":1575,"type":"function (uint256,string memory,string memory,uint256) payable external returns (bytes32)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2257,"type":"contract OraclizeI","value":"oraclize"},"id":2686,"name":"Identifier","src":"15796:8:5"}],"id":2687,"name":"MemberAccess","src":"15796:27:5"}],"id":2688,"name":"MemberAccess","src":"15796:33:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2668,"type":"uint256","value":"price"},"id":2689,"name":"Identifier","src":"15830:5:5"}],"id":2690,"name":"FunctionCall","src":"15796:40:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2691,"name":"Literal","src":"15837:1:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2656,"type":"string memory","value":"datasource"},"id":2692,"name":"Identifier","src":"15840:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2658,"type":"string memory","value":"arg"},"id":2693,"name":"Identifier","src":"15852:3:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2660,"type":"uint256","value":"gaslimit"},"id":2694,"name":"Identifier","src":"15857:8:5"}],"id":2695,"name":"FunctionCall","src":"15796:70:5"}],"id":2696,"name":"Return","src":"15789:77:5"}],"id":2697,"name":"Block","src":"15628:245:5"}],"id":2698,"name":"FunctionDefinition","src":"15517:356:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"datasource","scope":2741,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":2699,"name":"ElementaryTypeName","src":"15902:6:5"}],"id":2700,"name":"VariableDeclaration","src":"15902:17:5"},{"attributes":{"constant":false,"name":"arg1","scope":2741,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":2701,"name":"ElementaryTypeName","src":"15921:6:5"}],"id":2702,"name":"VariableDeclaration","src":"15921:11:5"},{"attributes":{"constant":false,"name":"arg2","scope":2741,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":2703,"name":"ElementaryTypeName","src":"15934:6:5"}],"id":2704,"name":"VariableDeclaration","src":"15934:11:5"}],"id":2705,"name":"ParameterList","src":"15901:45:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":2741,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":2708,"name":"ElementaryTypeName","src":"15977:7:5"}],"id":2709,"name":"VariableDeclaration","src":"15977:10:5"}],"id":2710,"name":"ParameterList","src":"15976:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":2706,"name":"Identifier","src":"15947:11:5"}],"id":2707,"name":"ModifierInvocation","src":"15947:11:5"},{"children":[{"attributes":{"assignments":[2712]},"children":[{"attributes":{"constant":false,"name":"price","scope":2741,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2711,"name":"ElementaryTypeName","src":"15998:4:5"}],"id":2712,"name":"VariableDeclaration","src":"15998:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"getPrice","referencedDeclaration":1634,"type":"function (string memory) external returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2257,"type":"contract OraclizeI","value":"oraclize"},"id":2713,"name":"Identifier","src":"16011:8:5"}],"id":2714,"name":"MemberAccess","src":"16011:17:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2700,"type":"string memory","value":"datasource"},"id":2715,"name":"Identifier","src":"16029:10:5"}],"id":2716,"name":"FunctionCall","src":"16011:29:5"}],"id":2717,"name":"VariableDeclarationStatement","src":"15998:42:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2712,"type":"uint256","value":"price"},"id":2718,"name":"Identifier","src":"16054:5:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":"ether","token":"number","type":"int_const 1000000000000000000","value":"1"},"id":2719,"name":"Literal","src":"16062:7:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"gasprice","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":12028,"type":"tx","value":"tx"},"id":2720,"name":"Identifier","src":"16072:2:5"}],"id":2721,"name":"MemberAccess","src":"16072:11:5"},{"attributes":{"argumentTypes":null,"hexvalue":"323030303030","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 200000","value":"200000"},"id":2722,"name":"Literal","src":"16084:6:5"}],"id":2723,"name":"BinaryOperation","src":"16072:18:5"}],"id":2724,"name":"BinaryOperation","src":"16062:28:5"}],"id":2725,"name":"BinaryOperation","src":"16054:36:5"},{"attributes":{"functionReturnParameters":2710},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2726,"name":"Literal","src":"16099:1:5"}],"id":2727,"name":"Return","src":"16092:8:5"}],"id":2728,"name":"IfStatement","src":"16050:50:5"},{"attributes":{"functionReturnParameters":2710},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"function (uint256,string memory,string memory,string memory) payable external returns (bytes32)","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"value","referencedDeclaration":null,"type":"function (uint256) returns (function (uint256,string memory,string memory,string memory) payable external returns (bytes32))"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"query2","referencedDeclaration":1588,"type":"function (uint256,string memory,string memory,string memory) payable external returns (bytes32)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2257,"type":"contract OraclizeI","value":"oraclize"},"id":2729,"name":"Identifier","src":"16144:8:5"}],"id":2730,"name":"MemberAccess","src":"16144:15:5"}],"id":2731,"name":"MemberAccess","src":"16144:21:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2712,"type":"uint256","value":"price"},"id":2732,"name":"Identifier","src":"16166:5:5"}],"id":2733,"name":"FunctionCall","src":"16144:28:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2734,"name":"Literal","src":"16173:1:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2700,"type":"string memory","value":"datasource"},"id":2735,"name":"Identifier","src":"16176:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2702,"type":"string memory","value":"arg1"},"id":2736,"name":"Identifier","src":"16188:4:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2704,"type":"string memory","value":"arg2"},"id":2737,"name":"Identifier","src":"16194:4:5"}],"id":2738,"name":"FunctionCall","src":"16144:55:5"}],"id":2739,"name":"Return","src":"16137:62:5"}],"id":2740,"name":"Block","src":"15988:218:5"}],"id":2741,"name":"FunctionDefinition","src":"15878:328:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"timestamp","scope":2786,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2742,"name":"ElementaryTypeName","src":"16235:4:5"}],"id":2743,"name":"VariableDeclaration","src":"16235:14:5"},{"attributes":{"constant":false,"name":"datasource","scope":2786,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":2744,"name":"ElementaryTypeName","src":"16251:6:5"}],"id":2745,"name":"VariableDeclaration","src":"16251:17:5"},{"attributes":{"constant":false,"name":"arg1","scope":2786,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":2746,"name":"ElementaryTypeName","src":"16270:6:5"}],"id":2747,"name":"VariableDeclaration","src":"16270:11:5"},{"attributes":{"constant":false,"name":"arg2","scope":2786,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":2748,"name":"ElementaryTypeName","src":"16283:6:5"}],"id":2749,"name":"VariableDeclaration","src":"16283:11:5"}],"id":2750,"name":"ParameterList","src":"16234:61:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":2786,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":2753,"name":"ElementaryTypeName","src":"16326:7:5"}],"id":2754,"name":"VariableDeclaration","src":"16326:10:5"}],"id":2755,"name":"ParameterList","src":"16325:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":2751,"name":"Identifier","src":"16296:11:5"}],"id":2752,"name":"ModifierInvocation","src":"16296:11:5"},{"children":[{"attributes":{"assignments":[2757]},"children":[{"attributes":{"constant":false,"name":"price","scope":2786,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2756,"name":"ElementaryTypeName","src":"16347:4:5"}],"id":2757,"name":"VariableDeclaration","src":"16347:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"getPrice","referencedDeclaration":1634,"type":"function (string memory) external returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2257,"type":"contract OraclizeI","value":"oraclize"},"id":2758,"name":"Identifier","src":"16360:8:5"}],"id":2759,"name":"MemberAccess","src":"16360:17:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2745,"type":"string memory","value":"datasource"},"id":2760,"name":"Identifier","src":"16378:10:5"}],"id":2761,"name":"FunctionCall","src":"16360:29:5"}],"id":2762,"name":"VariableDeclarationStatement","src":"16347:42:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2757,"type":"uint256","value":"price"},"id":2763,"name":"Identifier","src":"16403:5:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":"ether","token":"number","type":"int_const 1000000000000000000","value":"1"},"id":2764,"name":"Literal","src":"16411:7:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"gasprice","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":12028,"type":"tx","value":"tx"},"id":2765,"name":"Identifier","src":"16421:2:5"}],"id":2766,"name":"MemberAccess","src":"16421:11:5"},{"attributes":{"argumentTypes":null,"hexvalue":"323030303030","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 200000","value":"200000"},"id":2767,"name":"Literal","src":"16433:6:5"}],"id":2768,"name":"BinaryOperation","src":"16421:18:5"}],"id":2769,"name":"BinaryOperation","src":"16411:28:5"}],"id":2770,"name":"BinaryOperation","src":"16403:36:5"},{"attributes":{"functionReturnParameters":2755},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2771,"name":"Literal","src":"16448:1:5"}],"id":2772,"name":"Return","src":"16441:8:5"}],"id":2773,"name":"IfStatement","src":"16399:50:5"},{"attributes":{"functionReturnParameters":2755},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"function (uint256,string memory,string memory,string memory) payable external returns (bytes32)","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"value","referencedDeclaration":null,"type":"function (uint256) returns (function (uint256,string memory,string memory,string memory) payable external returns (bytes32))"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"query2","referencedDeclaration":1588,"type":"function (uint256,string memory,string memory,string memory) payable external returns (bytes32)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2257,"type":"contract OraclizeI","value":"oraclize"},"id":2774,"name":"Identifier","src":"16493:8:5"}],"id":2775,"name":"MemberAccess","src":"16493:15:5"}],"id":2776,"name":"MemberAccess","src":"16493:21:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2757,"type":"uint256","value":"price"},"id":2777,"name":"Identifier","src":"16515:5:5"}],"id":2778,"name":"FunctionCall","src":"16493:28:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2743,"type":"uint256","value":"timestamp"},"id":2779,"name":"Identifier","src":"16522:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2745,"type":"string memory","value":"datasource"},"id":2780,"name":"Identifier","src":"16533:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2747,"type":"string memory","value":"arg1"},"id":2781,"name":"Identifier","src":"16545:4:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2749,"type":"string memory","value":"arg2"},"id":2782,"name":"Identifier","src":"16551:4:5"}],"id":2783,"name":"FunctionCall","src":"16493:63:5"}],"id":2784,"name":"Return","src":"16486:70:5"}],"id":2785,"name":"Block","src":"16337:226:5"}],"id":2786,"name":"FunctionDefinition","src":"16211:352:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"timestamp","scope":2835,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2787,"name":"ElementaryTypeName","src":"16592:4:5"}],"id":2788,"name":"VariableDeclaration","src":"16592:14:5"},{"attributes":{"constant":false,"name":"datasource","scope":2835,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":2789,"name":"ElementaryTypeName","src":"16608:6:5"}],"id":2790,"name":"VariableDeclaration","src":"16608:17:5"},{"attributes":{"constant":false,"name":"arg1","scope":2835,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":2791,"name":"ElementaryTypeName","src":"16627:6:5"}],"id":2792,"name":"VariableDeclaration","src":"16627:11:5"},{"attributes":{"constant":false,"name":"arg2","scope":2835,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":2793,"name":"ElementaryTypeName","src":"16640:6:5"}],"id":2794,"name":"VariableDeclaration","src":"16640:11:5"},{"attributes":{"constant":false,"name":"gaslimit","scope":2835,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2795,"name":"ElementaryTypeName","src":"16653:4:5"}],"id":2796,"name":"VariableDeclaration","src":"16653:13:5"}],"id":2797,"name":"ParameterList","src":"16591:76:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":2835,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":2800,"name":"ElementaryTypeName","src":"16698:7:5"}],"id":2801,"name":"VariableDeclaration","src":"16698:10:5"}],"id":2802,"name":"ParameterList","src":"16697:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":2798,"name":"Identifier","src":"16668:11:5"}],"id":2799,"name":"ModifierInvocation","src":"16668:11:5"},{"children":[{"attributes":{"assignments":[2804]},"children":[{"attributes":{"constant":false,"name":"price","scope":2835,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2803,"name":"ElementaryTypeName","src":"16719:4:5"}],"id":2804,"name":"VariableDeclaration","src":"16719:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"getPrice","referencedDeclaration":1643,"type":"function (string memory,uint256) external returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2257,"type":"contract OraclizeI","value":"oraclize"},"id":2805,"name":"Identifier","src":"16732:8:5"}],"id":2806,"name":"MemberAccess","src":"16732:17:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2790,"type":"string memory","value":"datasource"},"id":2807,"name":"Identifier","src":"16750:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2796,"type":"uint256","value":"gaslimit"},"id":2808,"name":"Identifier","src":"16762:8:5"}],"id":2809,"name":"FunctionCall","src":"16732:39:5"}],"id":2810,"name":"VariableDeclarationStatement","src":"16719:52:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2804,"type":"uint256","value":"price"},"id":2811,"name":"Identifier","src":"16785:5:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":"ether","token":"number","type":"int_const 1000000000000000000","value":"1"},"id":2812,"name":"Literal","src":"16793:7:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"gasprice","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":12028,"type":"tx","value":"tx"},"id":2813,"name":"Identifier","src":"16803:2:5"}],"id":2814,"name":"MemberAccess","src":"16803:11:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2796,"type":"uint256","value":"gaslimit"},"id":2815,"name":"Identifier","src":"16815:8:5"}],"id":2816,"name":"BinaryOperation","src":"16803:20:5"}],"id":2817,"name":"BinaryOperation","src":"16793:30:5"}],"id":2818,"name":"BinaryOperation","src":"16785:38:5"},{"attributes":{"functionReturnParameters":2802},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2819,"name":"Literal","src":"16832:1:5"}],"id":2820,"name":"Return","src":"16825:8:5"}],"id":2821,"name":"IfStatement","src":"16781:52:5"},{"attributes":{"functionReturnParameters":2802},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"function (uint256,string memory,string memory,string memory,uint256) payable external returns (bytes32)","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"value","referencedDeclaration":null,"type":"function (uint256) returns (function (uint256,string memory,string memory,string memory,uint256) payable external returns (bytes32))"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"query2_withGasLimit","referencedDeclaration":1603,"type":"function (uint256,string memory,string memory,string memory,uint256) payable external returns (bytes32)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2257,"type":"contract OraclizeI","value":"oraclize"},"id":2822,"name":"Identifier","src":"16877:8:5"}],"id":2823,"name":"MemberAccess","src":"16877:28:5"}],"id":2824,"name":"MemberAccess","src":"16877:34:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2804,"type":"uint256","value":"price"},"id":2825,"name":"Identifier","src":"16912:5:5"}],"id":2826,"name":"FunctionCall","src":"16877:41:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2788,"type":"uint256","value":"timestamp"},"id":2827,"name":"Identifier","src":"16919:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2790,"type":"string memory","value":"datasource"},"id":2828,"name":"Identifier","src":"16930:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2792,"type":"string memory","value":"arg1"},"id":2829,"name":"Identifier","src":"16942:4:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2794,"type":"string memory","value":"arg2"},"id":2830,"name":"Identifier","src":"16948:4:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2796,"type":"uint256","value":"gaslimit"},"id":2831,"name":"Identifier","src":"16954:8:5"}],"id":2832,"name":"FunctionCall","src":"16877:86:5"}],"id":2833,"name":"Return","src":"16870:93:5"}],"id":2834,"name":"Block","src":"16709:261:5"}],"id":2835,"name":"FunctionDefinition","src":"16568:402:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"datasource","scope":2882,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":2836,"name":"ElementaryTypeName","src":"16999:6:5"}],"id":2837,"name":"VariableDeclaration","src":"16999:17:5"},{"attributes":{"constant":false,"name":"arg1","scope":2882,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":2838,"name":"ElementaryTypeName","src":"17018:6:5"}],"id":2839,"name":"VariableDeclaration","src":"17018:11:5"},{"attributes":{"constant":false,"name":"arg2","scope":2882,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":2840,"name":"ElementaryTypeName","src":"17031:6:5"}],"id":2841,"name":"VariableDeclaration","src":"17031:11:5"},{"attributes":{"constant":false,"name":"gaslimit","scope":2882,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2842,"name":"ElementaryTypeName","src":"17044:4:5"}],"id":2843,"name":"VariableDeclaration","src":"17044:13:5"}],"id":2844,"name":"ParameterList","src":"16998:60:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":2882,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":2847,"name":"ElementaryTypeName","src":"17089:7:5"}],"id":2848,"name":"VariableDeclaration","src":"17089:10:5"}],"id":2849,"name":"ParameterList","src":"17088:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":2845,"name":"Identifier","src":"17059:11:5"}],"id":2846,"name":"ModifierInvocation","src":"17059:11:5"},{"children":[{"attributes":{"assignments":[2851]},"children":[{"attributes":{"constant":false,"name":"price","scope":2882,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2850,"name":"ElementaryTypeName","src":"17110:4:5"}],"id":2851,"name":"VariableDeclaration","src":"17110:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"getPrice","referencedDeclaration":1643,"type":"function (string memory,uint256) external returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2257,"type":"contract OraclizeI","value":"oraclize"},"id":2852,"name":"Identifier","src":"17123:8:5"}],"id":2853,"name":"MemberAccess","src":"17123:17:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2837,"type":"string memory","value":"datasource"},"id":2854,"name":"Identifier","src":"17141:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2843,"type":"uint256","value":"gaslimit"},"id":2855,"name":"Identifier","src":"17153:8:5"}],"id":2856,"name":"FunctionCall","src":"17123:39:5"}],"id":2857,"name":"VariableDeclarationStatement","src":"17110:52:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2851,"type":"uint256","value":"price"},"id":2858,"name":"Identifier","src":"17176:5:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":"ether","token":"number","type":"int_const 1000000000000000000","value":"1"},"id":2859,"name":"Literal","src":"17184:7:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"gasprice","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":12028,"type":"tx","value":"tx"},"id":2860,"name":"Identifier","src":"17194:2:5"}],"id":2861,"name":"MemberAccess","src":"17194:11:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2843,"type":"uint256","value":"gaslimit"},"id":2862,"name":"Identifier","src":"17206:8:5"}],"id":2863,"name":"BinaryOperation","src":"17194:20:5"}],"id":2864,"name":"BinaryOperation","src":"17184:30:5"}],"id":2865,"name":"BinaryOperation","src":"17176:38:5"},{"attributes":{"functionReturnParameters":2849},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2866,"name":"Literal","src":"17223:1:5"}],"id":2867,"name":"Return","src":"17216:8:5"}],"id":2868,"name":"IfStatement","src":"17172:52:5"},{"attributes":{"functionReturnParameters":2849},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"function (uint256,string memory,string memory,string memory,uint256) payable external returns (bytes32)","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"value","referencedDeclaration":null,"type":"function (uint256) returns (function (uint256,string memory,string memory,string memory,uint256) payable external returns (bytes32))"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"query2_withGasLimit","referencedDeclaration":1603,"type":"function (uint256,string memory,string memory,string memory,uint256) payable external returns (bytes32)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2257,"type":"contract OraclizeI","value":"oraclize"},"id":2869,"name":"Identifier","src":"17268:8:5"}],"id":2870,"name":"MemberAccess","src":"17268:28:5"}],"id":2871,"name":"MemberAccess","src":"17268:34:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2851,"type":"uint256","value":"price"},"id":2872,"name":"Identifier","src":"17303:5:5"}],"id":2873,"name":"FunctionCall","src":"17268:41:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2874,"name":"Literal","src":"17310:1:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2837,"type":"string memory","value":"datasource"},"id":2875,"name":"Identifier","src":"17313:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2839,"type":"string memory","value":"arg1"},"id":2876,"name":"Identifier","src":"17325:4:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2841,"type":"string memory","value":"arg2"},"id":2877,"name":"Identifier","src":"17331:4:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2843,"type":"uint256","value":"gaslimit"},"id":2878,"name":"Identifier","src":"17337:8:5"}],"id":2879,"name":"FunctionCall","src":"17268:78:5"}],"id":2880,"name":"Return","src":"17261:85:5"}],"id":2881,"name":"Block","src":"17100:253:5"}],"id":2882,"name":"FunctionDefinition","src":"16975:378:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"datasource","scope":2929,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":2883,"name":"ElementaryTypeName","src":"17382:6:5"}],"id":2884,"name":"VariableDeclaration","src":"17382:17:5"},{"attributes":{"constant":false,"name":"argN","scope":2929,"stateVariable":false,"storageLocation":"default","type":"string[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"string[]"},"children":[{"attributes":{"name":"string","type":"string"},"id":2885,"name":"ElementaryTypeName","src":"17401:6:5"}],"id":2886,"name":"ArrayTypeName","src":"17401:8:5"}],"id":2887,"name":"VariableDeclaration","src":"17401:13:5"}],"id":2888,"name":"ParameterList","src":"17381:34:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":2929,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":2891,"name":"ElementaryTypeName","src":"17446:7:5"}],"id":2892,"name":"VariableDeclaration","src":"17446:10:5"}],"id":2893,"name":"ParameterList","src":"17445:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":2889,"name":"Identifier","src":"17416:11:5"}],"id":2890,"name":"ModifierInvocation","src":"17416:11:5"},{"children":[{"attributes":{"assignments":[2895]},"children":[{"attributes":{"constant":false,"name":"price","scope":2929,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2894,"name":"ElementaryTypeName","src":"17467:4:5"}],"id":2895,"name":"VariableDeclaration","src":"17467:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"getPrice","referencedDeclaration":1634,"type":"function (string memory) external returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2257,"type":"contract OraclizeI","value":"oraclize"},"id":2896,"name":"Identifier","src":"17480:8:5"}],"id":2897,"name":"MemberAccess","src":"17480:17:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2884,"type":"string memory","value":"datasource"},"id":2898,"name":"Identifier","src":"17498:10:5"}],"id":2899,"name":"FunctionCall","src":"17480:29:5"}],"id":2900,"name":"VariableDeclarationStatement","src":"17467:42:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2895,"type":"uint256","value":"price"},"id":2901,"name":"Identifier","src":"17523:5:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":"ether","token":"number","type":"int_const 1000000000000000000","value":"1"},"id":2902,"name":"Literal","src":"17531:7:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"gasprice","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":12028,"type":"tx","value":"tx"},"id":2903,"name":"Identifier","src":"17541:2:5"}],"id":2904,"name":"MemberAccess","src":"17541:11:5"},{"attributes":{"argumentTypes":null,"hexvalue":"323030303030","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 200000","value":"200000"},"id":2905,"name":"Literal","src":"17553:6:5"}],"id":2906,"name":"BinaryOperation","src":"17541:18:5"}],"id":2907,"name":"BinaryOperation","src":"17531:28:5"}],"id":2908,"name":"BinaryOperation","src":"17523:36:5"},{"attributes":{"functionReturnParameters":2893},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2909,"name":"Literal","src":"17568:1:5"}],"id":2910,"name":"Return","src":"17561:8:5"}],"id":2911,"name":"IfStatement","src":"17519:50:5"},{"attributes":{"assignments":[2913]},"children":[{"attributes":{"constant":false,"name":"args","scope":2929,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":2912,"name":"ElementaryTypeName","src":"17606:5:5"}],"id":2913,"name":"VariableDeclaration","src":"17606:17:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_array$_t_string_memory_$dyn_memory_ptr","typeString":"string memory[] memory"}],"overloadedDeclarations":[null],"referencedDeclaration":6444,"type":"function (string memory[] memory) pure returns (bytes memory)","value":"stra2cbor"},"id":2914,"name":"Identifier","src":"17626:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2887,"type":"string memory[] memory","value":"argN"},"id":2915,"name":"Identifier","src":"17636:4:5"}],"id":2916,"name":"FunctionCall","src":"17626:15:5"}],"id":2917,"name":"VariableDeclarationStatement","src":"17606:35:5"},{"attributes":{"functionReturnParameters":2893},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"function (uint256,string memory,bytes memory) payable external returns (bytes32)","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"value","referencedDeclaration":null,"type":"function (uint256) returns (function (uint256,string memory,bytes memory) payable external returns (bytes32))"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"queryN","referencedDeclaration":1614,"type":"function (uint256,string memory,bytes memory) payable external returns (bytes32)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2257,"type":"contract OraclizeI","value":"oraclize"},"id":2918,"name":"Identifier","src":"17658:8:5"}],"id":2919,"name":"MemberAccess","src":"17658:15:5"}],"id":2920,"name":"MemberAccess","src":"17658:21:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2895,"type":"uint256","value":"price"},"id":2921,"name":"Identifier","src":"17680:5:5"}],"id":2922,"name":"FunctionCall","src":"17658:28:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2923,"name":"Literal","src":"17687:1:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2884,"type":"string memory","value":"datasource"},"id":2924,"name":"Identifier","src":"17690:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2913,"type":"bytes memory","value":"args"},"id":2925,"name":"Identifier","src":"17702:4:5"}],"id":2926,"name":"FunctionCall","src":"17658:49:5"}],"id":2927,"name":"Return","src":"17651:56:5"}],"id":2928,"name":"Block","src":"17457:257:5"}],"id":2929,"name":"FunctionDefinition","src":"17358:356:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"timestamp","scope":2978,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2930,"name":"ElementaryTypeName","src":"17743:4:5"}],"id":2931,"name":"VariableDeclaration","src":"17743:14:5"},{"attributes":{"constant":false,"name":"datasource","scope":2978,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":2932,"name":"ElementaryTypeName","src":"17759:6:5"}],"id":2933,"name":"VariableDeclaration","src":"17759:17:5"},{"attributes":{"constant":false,"name":"argN","scope":2978,"stateVariable":false,"storageLocation":"default","type":"string[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"string[]"},"children":[{"attributes":{"name":"string","type":"string"},"id":2934,"name":"ElementaryTypeName","src":"17778:6:5"}],"id":2935,"name":"ArrayTypeName","src":"17778:8:5"}],"id":2936,"name":"VariableDeclaration","src":"17778:13:5"}],"id":2937,"name":"ParameterList","src":"17742:50:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":2978,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":2940,"name":"ElementaryTypeName","src":"17823:7:5"}],"id":2941,"name":"VariableDeclaration","src":"17823:10:5"}],"id":2942,"name":"ParameterList","src":"17822:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":2938,"name":"Identifier","src":"17793:11:5"}],"id":2939,"name":"ModifierInvocation","src":"17793:11:5"},{"children":[{"attributes":{"assignments":[2944]},"children":[{"attributes":{"constant":false,"name":"price","scope":2978,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2943,"name":"ElementaryTypeName","src":"17844:4:5"}],"id":2944,"name":"VariableDeclaration","src":"17844:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"getPrice","referencedDeclaration":1634,"type":"function (string memory) external returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2257,"type":"contract OraclizeI","value":"oraclize"},"id":2945,"name":"Identifier","src":"17857:8:5"}],"id":2946,"name":"MemberAccess","src":"17857:17:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2933,"type":"string memory","value":"datasource"},"id":2947,"name":"Identifier","src":"17875:10:5"}],"id":2948,"name":"FunctionCall","src":"17857:29:5"}],"id":2949,"name":"VariableDeclarationStatement","src":"17844:42:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2944,"type":"uint256","value":"price"},"id":2950,"name":"Identifier","src":"17900:5:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":"ether","token":"number","type":"int_const 1000000000000000000","value":"1"},"id":2951,"name":"Literal","src":"17908:7:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"gasprice","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":12028,"type":"tx","value":"tx"},"id":2952,"name":"Identifier","src":"17918:2:5"}],"id":2953,"name":"MemberAccess","src":"17918:11:5"},{"attributes":{"argumentTypes":null,"hexvalue":"323030303030","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 200000","value":"200000"},"id":2954,"name":"Literal","src":"17930:6:5"}],"id":2955,"name":"BinaryOperation","src":"17918:18:5"}],"id":2956,"name":"BinaryOperation","src":"17908:28:5"}],"id":2957,"name":"BinaryOperation","src":"17900:36:5"},{"attributes":{"functionReturnParameters":2942},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2958,"name":"Literal","src":"17945:1:5"}],"id":2959,"name":"Return","src":"17938:8:5"}],"id":2960,"name":"IfStatement","src":"17896:50:5"},{"attributes":{"assignments":[2962]},"children":[{"attributes":{"constant":false,"name":"args","scope":2978,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":2961,"name":"ElementaryTypeName","src":"17983:5:5"}],"id":2962,"name":"VariableDeclaration","src":"17983:17:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_array$_t_string_memory_$dyn_memory_ptr","typeString":"string memory[] memory"}],"overloadedDeclarations":[null],"referencedDeclaration":6444,"type":"function (string memory[] memory) pure returns (bytes memory)","value":"stra2cbor"},"id":2963,"name":"Identifier","src":"18003:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2936,"type":"string memory[] memory","value":"argN"},"id":2964,"name":"Identifier","src":"18013:4:5"}],"id":2965,"name":"FunctionCall","src":"18003:15:5"}],"id":2966,"name":"VariableDeclarationStatement","src":"17983:35:5"},{"attributes":{"functionReturnParameters":2942},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"function (uint256,string memory,bytes memory) payable external returns (bytes32)","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"value","referencedDeclaration":null,"type":"function (uint256) returns (function (uint256,string memory,bytes memory) payable external returns (bytes32))"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"queryN","referencedDeclaration":1614,"type":"function (uint256,string memory,bytes memory) payable external returns (bytes32)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2257,"type":"contract OraclizeI","value":"oraclize"},"id":2967,"name":"Identifier","src":"18035:8:5"}],"id":2968,"name":"MemberAccess","src":"18035:15:5"}],"id":2969,"name":"MemberAccess","src":"18035:21:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2944,"type":"uint256","value":"price"},"id":2970,"name":"Identifier","src":"18057:5:5"}],"id":2971,"name":"FunctionCall","src":"18035:28:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2931,"type":"uint256","value":"timestamp"},"id":2972,"name":"Identifier","src":"18064:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2933,"type":"string memory","value":"datasource"},"id":2973,"name":"Identifier","src":"18075:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2962,"type":"bytes memory","value":"args"},"id":2974,"name":"Identifier","src":"18087:4:5"}],"id":2975,"name":"FunctionCall","src":"18035:57:5"}],"id":2976,"name":"Return","src":"18028:64:5"}],"id":2977,"name":"Block","src":"17834:265:5"}],"id":2978,"name":"FunctionDefinition","src":"17719:380:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"timestamp","scope":3031,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2979,"name":"ElementaryTypeName","src":"18128:4:5"}],"id":2980,"name":"VariableDeclaration","src":"18128:14:5"},{"attributes":{"constant":false,"name":"datasource","scope":3031,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":2981,"name":"ElementaryTypeName","src":"18144:6:5"}],"id":2982,"name":"VariableDeclaration","src":"18144:17:5"},{"attributes":{"constant":false,"name":"argN","scope":3031,"stateVariable":false,"storageLocation":"default","type":"string[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"string[]"},"children":[{"attributes":{"name":"string","type":"string"},"id":2983,"name":"ElementaryTypeName","src":"18163:6:5"}],"id":2984,"name":"ArrayTypeName","src":"18163:8:5"}],"id":2985,"name":"VariableDeclaration","src":"18163:13:5"},{"attributes":{"constant":false,"name":"gaslimit","scope":3031,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2986,"name":"ElementaryTypeName","src":"18178:4:5"}],"id":2987,"name":"VariableDeclaration","src":"18178:13:5"}],"id":2988,"name":"ParameterList","src":"18127:65:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":3031,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":2991,"name":"ElementaryTypeName","src":"18223:7:5"}],"id":2992,"name":"VariableDeclaration","src":"18223:10:5"}],"id":2993,"name":"ParameterList","src":"18222:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":2989,"name":"Identifier","src":"18193:11:5"}],"id":2990,"name":"ModifierInvocation","src":"18193:11:5"},{"children":[{"attributes":{"assignments":[2995]},"children":[{"attributes":{"constant":false,"name":"price","scope":3031,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2994,"name":"ElementaryTypeName","src":"18244:4:5"}],"id":2995,"name":"VariableDeclaration","src":"18244:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"getPrice","referencedDeclaration":1643,"type":"function (string memory,uint256) external returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2257,"type":"contract OraclizeI","value":"oraclize"},"id":2996,"name":"Identifier","src":"18257:8:5"}],"id":2997,"name":"MemberAccess","src":"18257:17:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2982,"type":"string memory","value":"datasource"},"id":2998,"name":"Identifier","src":"18275:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2987,"type":"uint256","value":"gaslimit"},"id":2999,"name":"Identifier","src":"18287:8:5"}],"id":3000,"name":"FunctionCall","src":"18257:39:5"}],"id":3001,"name":"VariableDeclarationStatement","src":"18244:52:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2995,"type":"uint256","value":"price"},"id":3002,"name":"Identifier","src":"18310:5:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":"ether","token":"number","type":"int_const 1000000000000000000","value":"1"},"id":3003,"name":"Literal","src":"18318:7:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"gasprice","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":12028,"type":"tx","value":"tx"},"id":3004,"name":"Identifier","src":"18328:2:5"}],"id":3005,"name":"MemberAccess","src":"18328:11:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2987,"type":"uint256","value":"gaslimit"},"id":3006,"name":"Identifier","src":"18340:8:5"}],"id":3007,"name":"BinaryOperation","src":"18328:20:5"}],"id":3008,"name":"BinaryOperation","src":"18318:30:5"}],"id":3009,"name":"BinaryOperation","src":"18310:38:5"},{"attributes":{"functionReturnParameters":2993},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3010,"name":"Literal","src":"18357:1:5"}],"id":3011,"name":"Return","src":"18350:8:5"}],"id":3012,"name":"IfStatement","src":"18306:52:5"},{"attributes":{"assignments":[3014]},"children":[{"attributes":{"constant":false,"name":"args","scope":3031,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":3013,"name":"ElementaryTypeName","src":"18395:5:5"}],"id":3014,"name":"VariableDeclaration","src":"18395:17:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_array$_t_string_memory_$dyn_memory_ptr","typeString":"string memory[] memory"}],"overloadedDeclarations":[null],"referencedDeclaration":6444,"type":"function (string memory[] memory) pure returns (bytes memory)","value":"stra2cbor"},"id":3015,"name":"Identifier","src":"18415:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2985,"type":"string memory[] memory","value":"argN"},"id":3016,"name":"Identifier","src":"18425:4:5"}],"id":3017,"name":"FunctionCall","src":"18415:15:5"}],"id":3018,"name":"VariableDeclarationStatement","src":"18395:35:5"},{"attributes":{"functionReturnParameters":2993},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"function (uint256,string memory,bytes memory,uint256) payable external returns (bytes32)","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"value","referencedDeclaration":null,"type":"function (uint256) returns (function (uint256,string memory,bytes memory,uint256) payable external returns (bytes32))"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"queryN_withGasLimit","referencedDeclaration":1627,"type":"function (uint256,string memory,bytes memory,uint256) payable external returns (bytes32)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2257,"type":"contract OraclizeI","value":"oraclize"},"id":3019,"name":"Identifier","src":"18447:8:5"}],"id":3020,"name":"MemberAccess","src":"18447:28:5"}],"id":3021,"name":"MemberAccess","src":"18447:34:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2995,"type":"uint256","value":"price"},"id":3022,"name":"Identifier","src":"18482:5:5"}],"id":3023,"name":"FunctionCall","src":"18447:41:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2980,"type":"uint256","value":"timestamp"},"id":3024,"name":"Identifier","src":"18489:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2982,"type":"string memory","value":"datasource"},"id":3025,"name":"Identifier","src":"18500:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3014,"type":"bytes memory","value":"args"},"id":3026,"name":"Identifier","src":"18512:4:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2987,"type":"uint256","value":"gaslimit"},"id":3027,"name":"Identifier","src":"18518:8:5"}],"id":3028,"name":"FunctionCall","src":"18447:80:5"}],"id":3029,"name":"Return","src":"18440:87:5"}],"id":3030,"name":"Block","src":"18234:300:5"}],"id":3031,"name":"FunctionDefinition","src":"18104:430:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"datasource","scope":3082,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":3032,"name":"ElementaryTypeName","src":"18563:6:5"}],"id":3033,"name":"VariableDeclaration","src":"18563:17:5"},{"attributes":{"constant":false,"name":"argN","scope":3082,"stateVariable":false,"storageLocation":"default","type":"string[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"string[]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3034,"name":"ElementaryTypeName","src":"18582:6:5"}],"id":3035,"name":"ArrayTypeName","src":"18582:8:5"}],"id":3036,"name":"VariableDeclaration","src":"18582:13:5"},{"attributes":{"constant":false,"name":"gaslimit","scope":3082,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":3037,"name":"ElementaryTypeName","src":"18597:4:5"}],"id":3038,"name":"VariableDeclaration","src":"18597:13:5"}],"id":3039,"name":"ParameterList","src":"18562:49:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":3082,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3042,"name":"ElementaryTypeName","src":"18642:7:5"}],"id":3043,"name":"VariableDeclaration","src":"18642:10:5"}],"id":3044,"name":"ParameterList","src":"18641:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":3040,"name":"Identifier","src":"18612:11:5"}],"id":3041,"name":"ModifierInvocation","src":"18612:11:5"},{"children":[{"attributes":{"assignments":[3046]},"children":[{"attributes":{"constant":false,"name":"price","scope":3082,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":3045,"name":"ElementaryTypeName","src":"18663:4:5"}],"id":3046,"name":"VariableDeclaration","src":"18663:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"getPrice","referencedDeclaration":1643,"type":"function (string memory,uint256) external returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2257,"type":"contract OraclizeI","value":"oraclize"},"id":3047,"name":"Identifier","src":"18676:8:5"}],"id":3048,"name":"MemberAccess","src":"18676:17:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3033,"type":"string memory","value":"datasource"},"id":3049,"name":"Identifier","src":"18694:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3038,"type":"uint256","value":"gaslimit"},"id":3050,"name":"Identifier","src":"18706:8:5"}],"id":3051,"name":"FunctionCall","src":"18676:39:5"}],"id":3052,"name":"VariableDeclarationStatement","src":"18663:52:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3046,"type":"uint256","value":"price"},"id":3053,"name":"Identifier","src":"18729:5:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":"ether","token":"number","type":"int_const 1000000000000000000","value":"1"},"id":3054,"name":"Literal","src":"18737:7:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"gasprice","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":12028,"type":"tx","value":"tx"},"id":3055,"name":"Identifier","src":"18747:2:5"}],"id":3056,"name":"MemberAccess","src":"18747:11:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3038,"type":"uint256","value":"gaslimit"},"id":3057,"name":"Identifier","src":"18759:8:5"}],"id":3058,"name":"BinaryOperation","src":"18747:20:5"}],"id":3059,"name":"BinaryOperation","src":"18737:30:5"}],"id":3060,"name":"BinaryOperation","src":"18729:38:5"},{"attributes":{"functionReturnParameters":3044},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3061,"name":"Literal","src":"18776:1:5"}],"id":3062,"name":"Return","src":"18769:8:5"}],"id":3063,"name":"IfStatement","src":"18725:52:5"},{"attributes":{"assignments":[3065]},"children":[{"attributes":{"constant":false,"name":"args","scope":3082,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":3064,"name":"ElementaryTypeName","src":"18814:5:5"}],"id":3065,"name":"VariableDeclaration","src":"18814:17:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_array$_t_string_memory_$dyn_memory_ptr","typeString":"string memory[] memory"}],"overloadedDeclarations":[null],"referencedDeclaration":6444,"type":"function (string memory[] memory) pure returns (bytes memory)","value":"stra2cbor"},"id":3066,"name":"Identifier","src":"18834:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3036,"type":"string memory[] memory","value":"argN"},"id":3067,"name":"Identifier","src":"18844:4:5"}],"id":3068,"name":"FunctionCall","src":"18834:15:5"}],"id":3069,"name":"VariableDeclarationStatement","src":"18814:35:5"},{"attributes":{"functionReturnParameters":3044},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"function (uint256,string memory,bytes memory,uint256) payable external returns (bytes32)","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"value","referencedDeclaration":null,"type":"function (uint256) returns (function (uint256,string memory,bytes memory,uint256) payable external returns (bytes32))"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"queryN_withGasLimit","referencedDeclaration":1627,"type":"function (uint256,string memory,bytes memory,uint256) payable external returns (bytes32)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2257,"type":"contract OraclizeI","value":"oraclize"},"id":3070,"name":"Identifier","src":"18866:8:5"}],"id":3071,"name":"MemberAccess","src":"18866:28:5"}],"id":3072,"name":"MemberAccess","src":"18866:34:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3046,"type":"uint256","value":"price"},"id":3073,"name":"Identifier","src":"18901:5:5"}],"id":3074,"name":"FunctionCall","src":"18866:41:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3075,"name":"Literal","src":"18908:1:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3033,"type":"string memory","value":"datasource"},"id":3076,"name":"Identifier","src":"18911:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3065,"type":"bytes memory","value":"args"},"id":3077,"name":"Identifier","src":"18923:4:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3038,"type":"uint256","value":"gaslimit"},"id":3078,"name":"Identifier","src":"18929:8:5"}],"id":3079,"name":"FunctionCall","src":"18866:72:5"}],"id":3080,"name":"Return","src":"18859:79:5"}],"id":3081,"name":"Block","src":"18653:292:5"}],"id":3082,"name":"FunctionDefinition","src":"18539:406:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"datasource","scope":3119,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":3083,"name":"ElementaryTypeName","src":"18974:6:5"}],"id":3084,"name":"VariableDeclaration","src":"18974:17:5"},{"attributes":{"constant":false,"name":"args","scope":3119,"stateVariable":false,"storageLocation":"default","type":"string[1]","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"string[1]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3085,"name":"ElementaryTypeName","src":"18993:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"subdenomination":null,"token":"number","type":null,"value":"1"},"id":3086,"name":"Literal","src":"19000:1:5"}],"id":3087,"name":"ArrayTypeName","src":"18993:9:5"}],"id":3088,"name":"VariableDeclaration","src":"18993:14:5"}],"id":3089,"name":"ParameterList","src":"18973:35:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":3119,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3092,"name":"ElementaryTypeName","src":"19039:7:5"}],"id":3093,"name":"VariableDeclaration","src":"19039:10:5"}],"id":3094,"name":"ParameterList","src":"19038:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":3090,"name":"Identifier","src":"19009:11:5"}],"id":3091,"name":"ModifierInvocation","src":"19009:11:5"},{"children":[{"attributes":{"assignments":[3098]},"children":[{"attributes":{"constant":false,"name":"dynargs","scope":3119,"stateVariable":false,"storageLocation":"memory","type":"string[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"string[]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3096,"name":"ElementaryTypeName","src":"19061:6:5"}],"id":3097,"name":"ArrayTypeName","src":"19061:8:5"}],"id":3098,"name":"VariableDeclaration","src":"19061:23:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory[] memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (string memory[] memory)"},"children":[{"attributes":{"length":null,"type":"string[]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3099,"name":"ElementaryTypeName","src":"19091:6:5"}],"id":3100,"name":"ArrayTypeName","src":"19091:8:5"}],"id":3101,"name":"NewExpression","src":"19087:12:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":3102,"name":"Literal","src":"19100:1:5"}],"id":3103,"name":"FunctionCall","src":"19087:15:5"}],"id":3104,"name":"VariableDeclarationStatement","src":"19061:41:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3098,"type":"string memory[] memory","value":"dynargs"},"id":3105,"name":"Identifier","src":"19112:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3106,"name":"Literal","src":"19120:1:5"}],"id":3107,"name":"IndexAccess","src":"19112:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3088,"type":"string memory[1] memory","value":"args"},"id":3108,"name":"Identifier","src":"19125:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3109,"name":"Literal","src":"19130:1:5"}],"id":3110,"name":"IndexAccess","src":"19125:7:5"}],"id":3111,"name":"Assignment","src":"19112:20:5"}],"id":3112,"name":"ExpressionStatement","src":"19112:20:5"},{"attributes":{"functionReturnParameters":3094},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_string_memory_$dyn_memory_ptr","typeString":"string memory[] memory"}],"overloadedDeclarations":[2566,2608,2654,2698,2741,2786,2835,2882,2929,2978,3031,3082,3119,3159,3202,3242,3287,3335,3386,3434,3487,3543,3602,3658,3719,3783,3850,3914,3983,4055,4130,4202,4249,4298,4351,4402,4439,4479,4522,4562,4607,4655,4706,4754,4807,4863,4922,4978,5039,5103,5170,5234,5303,5375,5450,5522],"referencedDeclaration":2929,"type":"function (string memory,string memory[] memory) returns (bytes32)","value":"oraclize_query"},"id":3113,"name":"Identifier","src":"19149:14:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3084,"type":"string memory","value":"datasource"},"id":3114,"name":"Identifier","src":"19164:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3098,"type":"string memory[] memory","value":"dynargs"},"id":3115,"name":"Identifier","src":"19176:7:5"}],"id":3116,"name":"FunctionCall","src":"19149:35:5"}],"id":3117,"name":"Return","src":"19142:42:5"}],"id":3118,"name":"Block","src":"19051:140:5"}],"id":3119,"name":"FunctionDefinition","src":"18950:241:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"timestamp","scope":3159,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":3120,"name":"ElementaryTypeName","src":"19220:4:5"}],"id":3121,"name":"VariableDeclaration","src":"19220:14:5"},{"attributes":{"constant":false,"name":"datasource","scope":3159,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":3122,"name":"ElementaryTypeName","src":"19236:6:5"}],"id":3123,"name":"VariableDeclaration","src":"19236:17:5"},{"attributes":{"constant":false,"name":"args","scope":3159,"stateVariable":false,"storageLocation":"default","type":"string[1]","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"string[1]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3124,"name":"ElementaryTypeName","src":"19255:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"subdenomination":null,"token":"number","type":null,"value":"1"},"id":3125,"name":"Literal","src":"19262:1:5"}],"id":3126,"name":"ArrayTypeName","src":"19255:9:5"}],"id":3127,"name":"VariableDeclaration","src":"19255:14:5"}],"id":3128,"name":"ParameterList","src":"19219:51:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":3159,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3131,"name":"ElementaryTypeName","src":"19301:7:5"}],"id":3132,"name":"VariableDeclaration","src":"19301:10:5"}],"id":3133,"name":"ParameterList","src":"19300:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":3129,"name":"Identifier","src":"19271:11:5"}],"id":3130,"name":"ModifierInvocation","src":"19271:11:5"},{"children":[{"attributes":{"assignments":[3137]},"children":[{"attributes":{"constant":false,"name":"dynargs","scope":3159,"stateVariable":false,"storageLocation":"memory","type":"string[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"string[]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3135,"name":"ElementaryTypeName","src":"19323:6:5"}],"id":3136,"name":"ArrayTypeName","src":"19323:8:5"}],"id":3137,"name":"VariableDeclaration","src":"19323:23:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory[] memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (string memory[] memory)"},"children":[{"attributes":{"length":null,"type":"string[]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3138,"name":"ElementaryTypeName","src":"19353:6:5"}],"id":3139,"name":"ArrayTypeName","src":"19353:8:5"}],"id":3140,"name":"NewExpression","src":"19349:12:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":3141,"name":"Literal","src":"19362:1:5"}],"id":3142,"name":"FunctionCall","src":"19349:15:5"}],"id":3143,"name":"VariableDeclarationStatement","src":"19323:41:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3137,"type":"string memory[] memory","value":"dynargs"},"id":3144,"name":"Identifier","src":"19374:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3145,"name":"Literal","src":"19382:1:5"}],"id":3146,"name":"IndexAccess","src":"19374:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3127,"type":"string memory[1] memory","value":"args"},"id":3147,"name":"Identifier","src":"19387:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3148,"name":"Literal","src":"19392:1:5"}],"id":3149,"name":"IndexAccess","src":"19387:7:5"}],"id":3150,"name":"Assignment","src":"19374:20:5"}],"id":3151,"name":"ExpressionStatement","src":"19374:20:5"},{"attributes":{"functionReturnParameters":3133},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_string_memory_$dyn_memory_ptr","typeString":"string memory[] memory"}],"overloadedDeclarations":[2566,2608,2654,2698,2741,2786,2835,2882,2929,2978,3031,3082,3119,3159,3202,3242,3287,3335,3386,3434,3487,3543,3602,3658,3719,3783,3850,3914,3983,4055,4130,4202,4249,4298,4351,4402,4439,4479,4522,4562,4607,4655,4706,4754,4807,4863,4922,4978,5039,5103,5170,5234,5303,5375,5450,5522],"referencedDeclaration":2978,"type":"function (uint256,string memory,string memory[] memory) returns (bytes32)","value":"oraclize_query"},"id":3152,"name":"Identifier","src":"19411:14:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3121,"type":"uint256","value":"timestamp"},"id":3153,"name":"Identifier","src":"19426:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3123,"type":"string memory","value":"datasource"},"id":3154,"name":"Identifier","src":"19437:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3137,"type":"string memory[] memory","value":"dynargs"},"id":3155,"name":"Identifier","src":"19449:7:5"}],"id":3156,"name":"FunctionCall","src":"19411:46:5"}],"id":3157,"name":"Return","src":"19404:53:5"}],"id":3158,"name":"Block","src":"19313:151:5"}],"id":3159,"name":"FunctionDefinition","src":"19196:268:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"timestamp","scope":3202,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":3160,"name":"ElementaryTypeName","src":"19493:4:5"}],"id":3161,"name":"VariableDeclaration","src":"19493:14:5"},{"attributes":{"constant":false,"name":"datasource","scope":3202,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":3162,"name":"ElementaryTypeName","src":"19509:6:5"}],"id":3163,"name":"VariableDeclaration","src":"19509:17:5"},{"attributes":{"constant":false,"name":"args","scope":3202,"stateVariable":false,"storageLocation":"default","type":"string[1]","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"string[1]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3164,"name":"ElementaryTypeName","src":"19528:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"subdenomination":null,"token":"number","type":null,"value":"1"},"id":3165,"name":"Literal","src":"19535:1:5"}],"id":3166,"name":"ArrayTypeName","src":"19528:9:5"}],"id":3167,"name":"VariableDeclaration","src":"19528:14:5"},{"attributes":{"constant":false,"name":"gaslimit","scope":3202,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":3168,"name":"ElementaryTypeName","src":"19544:4:5"}],"id":3169,"name":"VariableDeclaration","src":"19544:13:5"}],"id":3170,"name":"ParameterList","src":"19492:66:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":3202,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3173,"name":"ElementaryTypeName","src":"19589:7:5"}],"id":3174,"name":"VariableDeclaration","src":"19589:10:5"}],"id":3175,"name":"ParameterList","src":"19588:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":3171,"name":"Identifier","src":"19559:11:5"}],"id":3172,"name":"ModifierInvocation","src":"19559:11:5"},{"children":[{"attributes":{"assignments":[3179]},"children":[{"attributes":{"constant":false,"name":"dynargs","scope":3202,"stateVariable":false,"storageLocation":"memory","type":"string[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"string[]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3177,"name":"ElementaryTypeName","src":"19611:6:5"}],"id":3178,"name":"ArrayTypeName","src":"19611:8:5"}],"id":3179,"name":"VariableDeclaration","src":"19611:23:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory[] memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (string memory[] memory)"},"children":[{"attributes":{"length":null,"type":"string[]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3180,"name":"ElementaryTypeName","src":"19641:6:5"}],"id":3181,"name":"ArrayTypeName","src":"19641:8:5"}],"id":3182,"name":"NewExpression","src":"19637:12:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":3183,"name":"Literal","src":"19650:1:5"}],"id":3184,"name":"FunctionCall","src":"19637:15:5"}],"id":3185,"name":"VariableDeclarationStatement","src":"19611:41:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3179,"type":"string memory[] memory","value":"dynargs"},"id":3186,"name":"Identifier","src":"19662:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3187,"name":"Literal","src":"19670:1:5"}],"id":3188,"name":"IndexAccess","src":"19662:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3167,"type":"string memory[1] memory","value":"args"},"id":3189,"name":"Identifier","src":"19675:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3190,"name":"Literal","src":"19680:1:5"}],"id":3191,"name":"IndexAccess","src":"19675:7:5"}],"id":3192,"name":"Assignment","src":"19662:20:5"}],"id":3193,"name":"ExpressionStatement","src":"19662:20:5"},{"attributes":{"functionReturnParameters":3175},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_string_memory_$dyn_memory_ptr","typeString":"string memory[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[2566,2608,2654,2698,2741,2786,2835,2882,2929,2978,3031,3082,3119,3159,3202,3242,3287,3335,3386,3434,3487,3543,3602,3658,3719,3783,3850,3914,3983,4055,4130,4202,4249,4298,4351,4402,4439,4479,4522,4562,4607,4655,4706,4754,4807,4863,4922,4978,5039,5103,5170,5234,5303,5375,5450,5522],"referencedDeclaration":3031,"type":"function (uint256,string memory,string memory[] memory,uint256) returns (bytes32)","value":"oraclize_query"},"id":3194,"name":"Identifier","src":"19699:14:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3161,"type":"uint256","value":"timestamp"},"id":3195,"name":"Identifier","src":"19714:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3163,"type":"string memory","value":"datasource"},"id":3196,"name":"Identifier","src":"19725:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3179,"type":"string memory[] memory","value":"dynargs"},"id":3197,"name":"Identifier","src":"19737:7:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3169,"type":"uint256","value":"gaslimit"},"id":3198,"name":"Identifier","src":"19746:8:5"}],"id":3199,"name":"FunctionCall","src":"19699:56:5"}],"id":3200,"name":"Return","src":"19692:63:5"}],"id":3201,"name":"Block","src":"19601:161:5"}],"id":3202,"name":"FunctionDefinition","src":"19469:293:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"datasource","scope":3242,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":3203,"name":"ElementaryTypeName","src":"19791:6:5"}],"id":3204,"name":"VariableDeclaration","src":"19791:17:5"},{"attributes":{"constant":false,"name":"args","scope":3242,"stateVariable":false,"storageLocation":"default","type":"string[1]","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"string[1]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3205,"name":"ElementaryTypeName","src":"19810:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"subdenomination":null,"token":"number","type":null,"value":"1"},"id":3206,"name":"Literal","src":"19817:1:5"}],"id":3207,"name":"ArrayTypeName","src":"19810:9:5"}],"id":3208,"name":"VariableDeclaration","src":"19810:14:5"},{"attributes":{"constant":false,"name":"gaslimit","scope":3242,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":3209,"name":"ElementaryTypeName","src":"19826:4:5"}],"id":3210,"name":"VariableDeclaration","src":"19826:13:5"}],"id":3211,"name":"ParameterList","src":"19790:50:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":3242,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3214,"name":"ElementaryTypeName","src":"19871:7:5"}],"id":3215,"name":"VariableDeclaration","src":"19871:10:5"}],"id":3216,"name":"ParameterList","src":"19870:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":3212,"name":"Identifier","src":"19841:11:5"}],"id":3213,"name":"ModifierInvocation","src":"19841:11:5"},{"children":[{"attributes":{"assignments":[3220]},"children":[{"attributes":{"constant":false,"name":"dynargs","scope":3242,"stateVariable":false,"storageLocation":"memory","type":"string[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"string[]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3218,"name":"ElementaryTypeName","src":"19893:6:5"}],"id":3219,"name":"ArrayTypeName","src":"19893:8:5"}],"id":3220,"name":"VariableDeclaration","src":"19893:23:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory[] memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (string memory[] memory)"},"children":[{"attributes":{"length":null,"type":"string[]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3221,"name":"ElementaryTypeName","src":"19923:6:5"}],"id":3222,"name":"ArrayTypeName","src":"19923:8:5"}],"id":3223,"name":"NewExpression","src":"19919:12:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":3224,"name":"Literal","src":"19932:1:5"}],"id":3225,"name":"FunctionCall","src":"19919:15:5"}],"id":3226,"name":"VariableDeclarationStatement","src":"19893:41:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3220,"type":"string memory[] memory","value":"dynargs"},"id":3227,"name":"Identifier","src":"19944:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3228,"name":"Literal","src":"19952:1:5"}],"id":3229,"name":"IndexAccess","src":"19944:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3208,"type":"string memory[1] memory","value":"args"},"id":3230,"name":"Identifier","src":"19957:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3231,"name":"Literal","src":"19962:1:5"}],"id":3232,"name":"IndexAccess","src":"19957:7:5"}],"id":3233,"name":"Assignment","src":"19944:20:5"}],"id":3234,"name":"ExpressionStatement","src":"19944:20:5"},{"attributes":{"functionReturnParameters":3216},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_string_memory_$dyn_memory_ptr","typeString":"string memory[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[2566,2608,2654,2698,2741,2786,2835,2882,2929,2978,3031,3082,3119,3159,3202,3242,3287,3335,3386,3434,3487,3543,3602,3658,3719,3783,3850,3914,3983,4055,4130,4202,4249,4298,4351,4402,4439,4479,4522,4562,4607,4655,4706,4754,4807,4863,4922,4978,5039,5103,5170,5234,5303,5375,5450,5522],"referencedDeclaration":3082,"type":"function (string memory,string memory[] memory,uint256) returns (bytes32)","value":"oraclize_query"},"id":3235,"name":"Identifier","src":"19981:14:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3204,"type":"string memory","value":"datasource"},"id":3236,"name":"Identifier","src":"19996:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3220,"type":"string memory[] memory","value":"dynargs"},"id":3237,"name":"Identifier","src":"20008:7:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3210,"type":"uint256","value":"gaslimit"},"id":3238,"name":"Identifier","src":"20017:8:5"}],"id":3239,"name":"FunctionCall","src":"19981:45:5"}],"id":3240,"name":"Return","src":"19974:52:5"}],"id":3241,"name":"Block","src":"19883:150:5"}],"id":3242,"name":"FunctionDefinition","src":"19767:266:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"datasource","scope":3287,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":3243,"name":"ElementaryTypeName","src":"20063:6:5"}],"id":3244,"name":"VariableDeclaration","src":"20063:17:5"},{"attributes":{"constant":false,"name":"args","scope":3287,"stateVariable":false,"storageLocation":"default","type":"string[2]","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"string[2]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3245,"name":"ElementaryTypeName","src":"20082:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"subdenomination":null,"token":"number","type":null,"value":"2"},"id":3246,"name":"Literal","src":"20089:1:5"}],"id":3247,"name":"ArrayTypeName","src":"20082:9:5"}],"id":3248,"name":"VariableDeclaration","src":"20082:14:5"}],"id":3249,"name":"ParameterList","src":"20062:35:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":3287,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3252,"name":"ElementaryTypeName","src":"20128:7:5"}],"id":3253,"name":"VariableDeclaration","src":"20128:10:5"}],"id":3254,"name":"ParameterList","src":"20127:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":3250,"name":"Identifier","src":"20098:11:5"}],"id":3251,"name":"ModifierInvocation","src":"20098:11:5"},{"children":[{"attributes":{"assignments":[3258]},"children":[{"attributes":{"constant":false,"name":"dynargs","scope":3287,"stateVariable":false,"storageLocation":"memory","type":"string[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"string[]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3256,"name":"ElementaryTypeName","src":"20150:6:5"}],"id":3257,"name":"ArrayTypeName","src":"20150:8:5"}],"id":3258,"name":"VariableDeclaration","src":"20150:23:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory[] memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (string memory[] memory)"},"children":[{"attributes":{"length":null,"type":"string[]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3259,"name":"ElementaryTypeName","src":"20180:6:5"}],"id":3260,"name":"ArrayTypeName","src":"20180:8:5"}],"id":3261,"name":"NewExpression","src":"20176:12:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":3262,"name":"Literal","src":"20189:1:5"}],"id":3263,"name":"FunctionCall","src":"20176:15:5"}],"id":3264,"name":"VariableDeclarationStatement","src":"20150:41:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3258,"type":"string memory[] memory","value":"dynargs"},"id":3265,"name":"Identifier","src":"20201:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3266,"name":"Literal","src":"20209:1:5"}],"id":3267,"name":"IndexAccess","src":"20201:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3248,"type":"string memory[2] memory","value":"args"},"id":3268,"name":"Identifier","src":"20214:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3269,"name":"Literal","src":"20219:1:5"}],"id":3270,"name":"IndexAccess","src":"20214:7:5"}],"id":3271,"name":"Assignment","src":"20201:20:5"}],"id":3272,"name":"ExpressionStatement","src":"20201:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3258,"type":"string memory[] memory","value":"dynargs"},"id":3273,"name":"Identifier","src":"20231:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":3274,"name":"Literal","src":"20239:1:5"}],"id":3275,"name":"IndexAccess","src":"20231:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3248,"type":"string memory[2] memory","value":"args"},"id":3276,"name":"Identifier","src":"20244:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":3277,"name":"Literal","src":"20249:1:5"}],"id":3278,"name":"IndexAccess","src":"20244:7:5"}],"id":3279,"name":"Assignment","src":"20231:20:5"}],"id":3280,"name":"ExpressionStatement","src":"20231:20:5"},{"attributes":{"functionReturnParameters":3254},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_string_memory_$dyn_memory_ptr","typeString":"string memory[] memory"}],"overloadedDeclarations":[2566,2608,2654,2698,2741,2786,2835,2882,2929,2978,3031,3082,3119,3159,3202,3242,3287,3335,3386,3434,3487,3543,3602,3658,3719,3783,3850,3914,3983,4055,4130,4202,4249,4298,4351,4402,4439,4479,4522,4562,4607,4655,4706,4754,4807,4863,4922,4978,5039,5103,5170,5234,5303,5375,5450,5522],"referencedDeclaration":2929,"type":"function (string memory,string memory[] memory) returns (bytes32)","value":"oraclize_query"},"id":3281,"name":"Identifier","src":"20268:14:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3244,"type":"string memory","value":"datasource"},"id":3282,"name":"Identifier","src":"20283:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3258,"type":"string memory[] memory","value":"dynargs"},"id":3283,"name":"Identifier","src":"20295:7:5"}],"id":3284,"name":"FunctionCall","src":"20268:35:5"}],"id":3285,"name":"Return","src":"20261:42:5"}],"id":3286,"name":"Block","src":"20140:170:5"}],"id":3287,"name":"FunctionDefinition","src":"20039:271:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"timestamp","scope":3335,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":3288,"name":"ElementaryTypeName","src":"20339:4:5"}],"id":3289,"name":"VariableDeclaration","src":"20339:14:5"},{"attributes":{"constant":false,"name":"datasource","scope":3335,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":3290,"name":"ElementaryTypeName","src":"20355:6:5"}],"id":3291,"name":"VariableDeclaration","src":"20355:17:5"},{"attributes":{"constant":false,"name":"args","scope":3335,"stateVariable":false,"storageLocation":"default","type":"string[2]","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"string[2]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3292,"name":"ElementaryTypeName","src":"20374:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"subdenomination":null,"token":"number","type":null,"value":"2"},"id":3293,"name":"Literal","src":"20381:1:5"}],"id":3294,"name":"ArrayTypeName","src":"20374:9:5"}],"id":3295,"name":"VariableDeclaration","src":"20374:14:5"}],"id":3296,"name":"ParameterList","src":"20338:51:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":3335,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3299,"name":"ElementaryTypeName","src":"20420:7:5"}],"id":3300,"name":"VariableDeclaration","src":"20420:10:5"}],"id":3301,"name":"ParameterList","src":"20419:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":3297,"name":"Identifier","src":"20390:11:5"}],"id":3298,"name":"ModifierInvocation","src":"20390:11:5"},{"children":[{"attributes":{"assignments":[3305]},"children":[{"attributes":{"constant":false,"name":"dynargs","scope":3335,"stateVariable":false,"storageLocation":"memory","type":"string[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"string[]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3303,"name":"ElementaryTypeName","src":"20442:6:5"}],"id":3304,"name":"ArrayTypeName","src":"20442:8:5"}],"id":3305,"name":"VariableDeclaration","src":"20442:23:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory[] memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (string memory[] memory)"},"children":[{"attributes":{"length":null,"type":"string[]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3306,"name":"ElementaryTypeName","src":"20472:6:5"}],"id":3307,"name":"ArrayTypeName","src":"20472:8:5"}],"id":3308,"name":"NewExpression","src":"20468:12:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":3309,"name":"Literal","src":"20481:1:5"}],"id":3310,"name":"FunctionCall","src":"20468:15:5"}],"id":3311,"name":"VariableDeclarationStatement","src":"20442:41:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3305,"type":"string memory[] memory","value":"dynargs"},"id":3312,"name":"Identifier","src":"20493:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3313,"name":"Literal","src":"20501:1:5"}],"id":3314,"name":"IndexAccess","src":"20493:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3295,"type":"string memory[2] memory","value":"args"},"id":3315,"name":"Identifier","src":"20506:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3316,"name":"Literal","src":"20511:1:5"}],"id":3317,"name":"IndexAccess","src":"20506:7:5"}],"id":3318,"name":"Assignment","src":"20493:20:5"}],"id":3319,"name":"ExpressionStatement","src":"20493:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3305,"type":"string memory[] memory","value":"dynargs"},"id":3320,"name":"Identifier","src":"20523:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":3321,"name":"Literal","src":"20531:1:5"}],"id":3322,"name":"IndexAccess","src":"20523:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3295,"type":"string memory[2] memory","value":"args"},"id":3323,"name":"Identifier","src":"20536:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":3324,"name":"Literal","src":"20541:1:5"}],"id":3325,"name":"IndexAccess","src":"20536:7:5"}],"id":3326,"name":"Assignment","src":"20523:20:5"}],"id":3327,"name":"ExpressionStatement","src":"20523:20:5"},{"attributes":{"functionReturnParameters":3301},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_string_memory_$dyn_memory_ptr","typeString":"string memory[] memory"}],"overloadedDeclarations":[2566,2608,2654,2698,2741,2786,2835,2882,2929,2978,3031,3082,3119,3159,3202,3242,3287,3335,3386,3434,3487,3543,3602,3658,3719,3783,3850,3914,3983,4055,4130,4202,4249,4298,4351,4402,4439,4479,4522,4562,4607,4655,4706,4754,4807,4863,4922,4978,5039,5103,5170,5234,5303,5375,5450,5522],"referencedDeclaration":2978,"type":"function (uint256,string memory,string memory[] memory) returns (bytes32)","value":"oraclize_query"},"id":3328,"name":"Identifier","src":"20560:14:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3289,"type":"uint256","value":"timestamp"},"id":3329,"name":"Identifier","src":"20575:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3291,"type":"string memory","value":"datasource"},"id":3330,"name":"Identifier","src":"20586:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3305,"type":"string memory[] memory","value":"dynargs"},"id":3331,"name":"Identifier","src":"20598:7:5"}],"id":3332,"name":"FunctionCall","src":"20560:46:5"}],"id":3333,"name":"Return","src":"20553:53:5"}],"id":3334,"name":"Block","src":"20432:181:5"}],"id":3335,"name":"FunctionDefinition","src":"20315:298:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"timestamp","scope":3386,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":3336,"name":"ElementaryTypeName","src":"20642:4:5"}],"id":3337,"name":"VariableDeclaration","src":"20642:14:5"},{"attributes":{"constant":false,"name":"datasource","scope":3386,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":3338,"name":"ElementaryTypeName","src":"20658:6:5"}],"id":3339,"name":"VariableDeclaration","src":"20658:17:5"},{"attributes":{"constant":false,"name":"args","scope":3386,"stateVariable":false,"storageLocation":"default","type":"string[2]","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"string[2]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3340,"name":"ElementaryTypeName","src":"20677:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"subdenomination":null,"token":"number","type":null,"value":"2"},"id":3341,"name":"Literal","src":"20684:1:5"}],"id":3342,"name":"ArrayTypeName","src":"20677:9:5"}],"id":3343,"name":"VariableDeclaration","src":"20677:14:5"},{"attributes":{"constant":false,"name":"gaslimit","scope":3386,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":3344,"name":"ElementaryTypeName","src":"20693:4:5"}],"id":3345,"name":"VariableDeclaration","src":"20693:13:5"}],"id":3346,"name":"ParameterList","src":"20641:66:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":3386,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3349,"name":"ElementaryTypeName","src":"20738:7:5"}],"id":3350,"name":"VariableDeclaration","src":"20738:10:5"}],"id":3351,"name":"ParameterList","src":"20737:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":3347,"name":"Identifier","src":"20708:11:5"}],"id":3348,"name":"ModifierInvocation","src":"20708:11:5"},{"children":[{"attributes":{"assignments":[3355]},"children":[{"attributes":{"constant":false,"name":"dynargs","scope":3386,"stateVariable":false,"storageLocation":"memory","type":"string[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"string[]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3353,"name":"ElementaryTypeName","src":"20760:6:5"}],"id":3354,"name":"ArrayTypeName","src":"20760:8:5"}],"id":3355,"name":"VariableDeclaration","src":"20760:23:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory[] memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (string memory[] memory)"},"children":[{"attributes":{"length":null,"type":"string[]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3356,"name":"ElementaryTypeName","src":"20790:6:5"}],"id":3357,"name":"ArrayTypeName","src":"20790:8:5"}],"id":3358,"name":"NewExpression","src":"20786:12:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":3359,"name":"Literal","src":"20799:1:5"}],"id":3360,"name":"FunctionCall","src":"20786:15:5"}],"id":3361,"name":"VariableDeclarationStatement","src":"20760:41:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3355,"type":"string memory[] memory","value":"dynargs"},"id":3362,"name":"Identifier","src":"20811:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3363,"name":"Literal","src":"20819:1:5"}],"id":3364,"name":"IndexAccess","src":"20811:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3343,"type":"string memory[2] memory","value":"args"},"id":3365,"name":"Identifier","src":"20824:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3366,"name":"Literal","src":"20829:1:5"}],"id":3367,"name":"IndexAccess","src":"20824:7:5"}],"id":3368,"name":"Assignment","src":"20811:20:5"}],"id":3369,"name":"ExpressionStatement","src":"20811:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3355,"type":"string memory[] memory","value":"dynargs"},"id":3370,"name":"Identifier","src":"20841:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":3371,"name":"Literal","src":"20849:1:5"}],"id":3372,"name":"IndexAccess","src":"20841:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3343,"type":"string memory[2] memory","value":"args"},"id":3373,"name":"Identifier","src":"20854:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":3374,"name":"Literal","src":"20859:1:5"}],"id":3375,"name":"IndexAccess","src":"20854:7:5"}],"id":3376,"name":"Assignment","src":"20841:20:5"}],"id":3377,"name":"ExpressionStatement","src":"20841:20:5"},{"attributes":{"functionReturnParameters":3351},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_string_memory_$dyn_memory_ptr","typeString":"string memory[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[2566,2608,2654,2698,2741,2786,2835,2882,2929,2978,3031,3082,3119,3159,3202,3242,3287,3335,3386,3434,3487,3543,3602,3658,3719,3783,3850,3914,3983,4055,4130,4202,4249,4298,4351,4402,4439,4479,4522,4562,4607,4655,4706,4754,4807,4863,4922,4978,5039,5103,5170,5234,5303,5375,5450,5522],"referencedDeclaration":3031,"type":"function (uint256,string memory,string memory[] memory,uint256) returns (bytes32)","value":"oraclize_query"},"id":3378,"name":"Identifier","src":"20878:14:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3337,"type":"uint256","value":"timestamp"},"id":3379,"name":"Identifier","src":"20893:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3339,"type":"string memory","value":"datasource"},"id":3380,"name":"Identifier","src":"20904:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3355,"type":"string memory[] memory","value":"dynargs"},"id":3381,"name":"Identifier","src":"20916:7:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3345,"type":"uint256","value":"gaslimit"},"id":3382,"name":"Identifier","src":"20925:8:5"}],"id":3383,"name":"FunctionCall","src":"20878:56:5"}],"id":3384,"name":"Return","src":"20871:63:5"}],"id":3385,"name":"Block","src":"20750:191:5"}],"id":3386,"name":"FunctionDefinition","src":"20618:323:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"datasource","scope":3434,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":3387,"name":"ElementaryTypeName","src":"20970:6:5"}],"id":3388,"name":"VariableDeclaration","src":"20970:17:5"},{"attributes":{"constant":false,"name":"args","scope":3434,"stateVariable":false,"storageLocation":"default","type":"string[2]","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"string[2]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3389,"name":"ElementaryTypeName","src":"20989:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"subdenomination":null,"token":"number","type":null,"value":"2"},"id":3390,"name":"Literal","src":"20996:1:5"}],"id":3391,"name":"ArrayTypeName","src":"20989:9:5"}],"id":3392,"name":"VariableDeclaration","src":"20989:14:5"},{"attributes":{"constant":false,"name":"gaslimit","scope":3434,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":3393,"name":"ElementaryTypeName","src":"21005:4:5"}],"id":3394,"name":"VariableDeclaration","src":"21005:13:5"}],"id":3395,"name":"ParameterList","src":"20969:50:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":3434,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3398,"name":"ElementaryTypeName","src":"21050:7:5"}],"id":3399,"name":"VariableDeclaration","src":"21050:10:5"}],"id":3400,"name":"ParameterList","src":"21049:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":3396,"name":"Identifier","src":"21020:11:5"}],"id":3397,"name":"ModifierInvocation","src":"21020:11:5"},{"children":[{"attributes":{"assignments":[3404]},"children":[{"attributes":{"constant":false,"name":"dynargs","scope":3434,"stateVariable":false,"storageLocation":"memory","type":"string[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"string[]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3402,"name":"ElementaryTypeName","src":"21072:6:5"}],"id":3403,"name":"ArrayTypeName","src":"21072:8:5"}],"id":3404,"name":"VariableDeclaration","src":"21072:23:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory[] memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (string memory[] memory)"},"children":[{"attributes":{"length":null,"type":"string[]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3405,"name":"ElementaryTypeName","src":"21102:6:5"}],"id":3406,"name":"ArrayTypeName","src":"21102:8:5"}],"id":3407,"name":"NewExpression","src":"21098:12:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":3408,"name":"Literal","src":"21111:1:5"}],"id":3409,"name":"FunctionCall","src":"21098:15:5"}],"id":3410,"name":"VariableDeclarationStatement","src":"21072:41:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3404,"type":"string memory[] memory","value":"dynargs"},"id":3411,"name":"Identifier","src":"21123:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3412,"name":"Literal","src":"21131:1:5"}],"id":3413,"name":"IndexAccess","src":"21123:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3392,"type":"string memory[2] memory","value":"args"},"id":3414,"name":"Identifier","src":"21136:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3415,"name":"Literal","src":"21141:1:5"}],"id":3416,"name":"IndexAccess","src":"21136:7:5"}],"id":3417,"name":"Assignment","src":"21123:20:5"}],"id":3418,"name":"ExpressionStatement","src":"21123:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3404,"type":"string memory[] memory","value":"dynargs"},"id":3419,"name":"Identifier","src":"21153:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":3420,"name":"Literal","src":"21161:1:5"}],"id":3421,"name":"IndexAccess","src":"21153:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3392,"type":"string memory[2] memory","value":"args"},"id":3422,"name":"Identifier","src":"21166:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":3423,"name":"Literal","src":"21171:1:5"}],"id":3424,"name":"IndexAccess","src":"21166:7:5"}],"id":3425,"name":"Assignment","src":"21153:20:5"}],"id":3426,"name":"ExpressionStatement","src":"21153:20:5"},{"attributes":{"functionReturnParameters":3400},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_string_memory_$dyn_memory_ptr","typeString":"string memory[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[2566,2608,2654,2698,2741,2786,2835,2882,2929,2978,3031,3082,3119,3159,3202,3242,3287,3335,3386,3434,3487,3543,3602,3658,3719,3783,3850,3914,3983,4055,4130,4202,4249,4298,4351,4402,4439,4479,4522,4562,4607,4655,4706,4754,4807,4863,4922,4978,5039,5103,5170,5234,5303,5375,5450,5522],"referencedDeclaration":3082,"type":"function (string memory,string memory[] memory,uint256) returns (bytes32)","value":"oraclize_query"},"id":3427,"name":"Identifier","src":"21190:14:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3388,"type":"string memory","value":"datasource"},"id":3428,"name":"Identifier","src":"21205:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3404,"type":"string memory[] memory","value":"dynargs"},"id":3429,"name":"Identifier","src":"21217:7:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3394,"type":"uint256","value":"gaslimit"},"id":3430,"name":"Identifier","src":"21226:8:5"}],"id":3431,"name":"FunctionCall","src":"21190:45:5"}],"id":3432,"name":"Return","src":"21183:52:5"}],"id":3433,"name":"Block","src":"21062:180:5"}],"id":3434,"name":"FunctionDefinition","src":"20946:296:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"datasource","scope":3487,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":3435,"name":"ElementaryTypeName","src":"21271:6:5"}],"id":3436,"name":"VariableDeclaration","src":"21271:17:5"},{"attributes":{"constant":false,"name":"args","scope":3487,"stateVariable":false,"storageLocation":"default","type":"string[3]","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"string[3]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3437,"name":"ElementaryTypeName","src":"21290:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"subdenomination":null,"token":"number","type":null,"value":"3"},"id":3438,"name":"Literal","src":"21297:1:5"}],"id":3439,"name":"ArrayTypeName","src":"21290:9:5"}],"id":3440,"name":"VariableDeclaration","src":"21290:14:5"}],"id":3441,"name":"ParameterList","src":"21270:35:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":3487,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3444,"name":"ElementaryTypeName","src":"21336:7:5"}],"id":3445,"name":"VariableDeclaration","src":"21336:10:5"}],"id":3446,"name":"ParameterList","src":"21335:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":3442,"name":"Identifier","src":"21306:11:5"}],"id":3443,"name":"ModifierInvocation","src":"21306:11:5"},{"children":[{"attributes":{"assignments":[3450]},"children":[{"attributes":{"constant":false,"name":"dynargs","scope":3487,"stateVariable":false,"storageLocation":"memory","type":"string[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"string[]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3448,"name":"ElementaryTypeName","src":"21358:6:5"}],"id":3449,"name":"ArrayTypeName","src":"21358:8:5"}],"id":3450,"name":"VariableDeclaration","src":"21358:23:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory[] memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (string memory[] memory)"},"children":[{"attributes":{"length":null,"type":"string[]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3451,"name":"ElementaryTypeName","src":"21388:6:5"}],"id":3452,"name":"ArrayTypeName","src":"21388:8:5"}],"id":3453,"name":"NewExpression","src":"21384:12:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":3454,"name":"Literal","src":"21397:1:5"}],"id":3455,"name":"FunctionCall","src":"21384:15:5"}],"id":3456,"name":"VariableDeclarationStatement","src":"21358:41:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3450,"type":"string memory[] memory","value":"dynargs"},"id":3457,"name":"Identifier","src":"21409:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3458,"name":"Literal","src":"21417:1:5"}],"id":3459,"name":"IndexAccess","src":"21409:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3440,"type":"string memory[3] memory","value":"args"},"id":3460,"name":"Identifier","src":"21422:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3461,"name":"Literal","src":"21427:1:5"}],"id":3462,"name":"IndexAccess","src":"21422:7:5"}],"id":3463,"name":"Assignment","src":"21409:20:5"}],"id":3464,"name":"ExpressionStatement","src":"21409:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3450,"type":"string memory[] memory","value":"dynargs"},"id":3465,"name":"Identifier","src":"21439:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":3466,"name":"Literal","src":"21447:1:5"}],"id":3467,"name":"IndexAccess","src":"21439:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3440,"type":"string memory[3] memory","value":"args"},"id":3468,"name":"Identifier","src":"21452:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":3469,"name":"Literal","src":"21457:1:5"}],"id":3470,"name":"IndexAccess","src":"21452:7:5"}],"id":3471,"name":"Assignment","src":"21439:20:5"}],"id":3472,"name":"ExpressionStatement","src":"21439:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3450,"type":"string memory[] memory","value":"dynargs"},"id":3473,"name":"Identifier","src":"21469:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":3474,"name":"Literal","src":"21477:1:5"}],"id":3475,"name":"IndexAccess","src":"21469:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3440,"type":"string memory[3] memory","value":"args"},"id":3476,"name":"Identifier","src":"21482:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":3477,"name":"Literal","src":"21487:1:5"}],"id":3478,"name":"IndexAccess","src":"21482:7:5"}],"id":3479,"name":"Assignment","src":"21469:20:5"}],"id":3480,"name":"ExpressionStatement","src":"21469:20:5"},{"attributes":{"functionReturnParameters":3446},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_string_memory_$dyn_memory_ptr","typeString":"string memory[] memory"}],"overloadedDeclarations":[2566,2608,2654,2698,2741,2786,2835,2882,2929,2978,3031,3082,3119,3159,3202,3242,3287,3335,3386,3434,3487,3543,3602,3658,3719,3783,3850,3914,3983,4055,4130,4202,4249,4298,4351,4402,4439,4479,4522,4562,4607,4655,4706,4754,4807,4863,4922,4978,5039,5103,5170,5234,5303,5375,5450,5522],"referencedDeclaration":2929,"type":"function (string memory,string memory[] memory) returns (bytes32)","value":"oraclize_query"},"id":3481,"name":"Identifier","src":"21506:14:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3436,"type":"string memory","value":"datasource"},"id":3482,"name":"Identifier","src":"21521:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3450,"type":"string memory[] memory","value":"dynargs"},"id":3483,"name":"Identifier","src":"21533:7:5"}],"id":3484,"name":"FunctionCall","src":"21506:35:5"}],"id":3485,"name":"Return","src":"21499:42:5"}],"id":3486,"name":"Block","src":"21348:200:5"}],"id":3487,"name":"FunctionDefinition","src":"21247:301:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"timestamp","scope":3543,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":3488,"name":"ElementaryTypeName","src":"21577:4:5"}],"id":3489,"name":"VariableDeclaration","src":"21577:14:5"},{"attributes":{"constant":false,"name":"datasource","scope":3543,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":3490,"name":"ElementaryTypeName","src":"21593:6:5"}],"id":3491,"name":"VariableDeclaration","src":"21593:17:5"},{"attributes":{"constant":false,"name":"args","scope":3543,"stateVariable":false,"storageLocation":"default","type":"string[3]","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"string[3]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3492,"name":"ElementaryTypeName","src":"21612:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"subdenomination":null,"token":"number","type":null,"value":"3"},"id":3493,"name":"Literal","src":"21619:1:5"}],"id":3494,"name":"ArrayTypeName","src":"21612:9:5"}],"id":3495,"name":"VariableDeclaration","src":"21612:14:5"}],"id":3496,"name":"ParameterList","src":"21576:51:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":3543,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3499,"name":"ElementaryTypeName","src":"21658:7:5"}],"id":3500,"name":"VariableDeclaration","src":"21658:10:5"}],"id":3501,"name":"ParameterList","src":"21657:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":3497,"name":"Identifier","src":"21628:11:5"}],"id":3498,"name":"ModifierInvocation","src":"21628:11:5"},{"children":[{"attributes":{"assignments":[3505]},"children":[{"attributes":{"constant":false,"name":"dynargs","scope":3543,"stateVariable":false,"storageLocation":"memory","type":"string[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"string[]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3503,"name":"ElementaryTypeName","src":"21680:6:5"}],"id":3504,"name":"ArrayTypeName","src":"21680:8:5"}],"id":3505,"name":"VariableDeclaration","src":"21680:23:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory[] memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (string memory[] memory)"},"children":[{"attributes":{"length":null,"type":"string[]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3506,"name":"ElementaryTypeName","src":"21710:6:5"}],"id":3507,"name":"ArrayTypeName","src":"21710:8:5"}],"id":3508,"name":"NewExpression","src":"21706:12:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":3509,"name":"Literal","src":"21719:1:5"}],"id":3510,"name":"FunctionCall","src":"21706:15:5"}],"id":3511,"name":"VariableDeclarationStatement","src":"21680:41:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3505,"type":"string memory[] memory","value":"dynargs"},"id":3512,"name":"Identifier","src":"21731:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3513,"name":"Literal","src":"21739:1:5"}],"id":3514,"name":"IndexAccess","src":"21731:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3495,"type":"string memory[3] memory","value":"args"},"id":3515,"name":"Identifier","src":"21744:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3516,"name":"Literal","src":"21749:1:5"}],"id":3517,"name":"IndexAccess","src":"21744:7:5"}],"id":3518,"name":"Assignment","src":"21731:20:5"}],"id":3519,"name":"ExpressionStatement","src":"21731:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3505,"type":"string memory[] memory","value":"dynargs"},"id":3520,"name":"Identifier","src":"21761:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":3521,"name":"Literal","src":"21769:1:5"}],"id":3522,"name":"IndexAccess","src":"21761:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3495,"type":"string memory[3] memory","value":"args"},"id":3523,"name":"Identifier","src":"21774:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":3524,"name":"Literal","src":"21779:1:5"}],"id":3525,"name":"IndexAccess","src":"21774:7:5"}],"id":3526,"name":"Assignment","src":"21761:20:5"}],"id":3527,"name":"ExpressionStatement","src":"21761:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3505,"type":"string memory[] memory","value":"dynargs"},"id":3528,"name":"Identifier","src":"21791:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":3529,"name":"Literal","src":"21799:1:5"}],"id":3530,"name":"IndexAccess","src":"21791:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3495,"type":"string memory[3] memory","value":"args"},"id":3531,"name":"Identifier","src":"21804:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":3532,"name":"Literal","src":"21809:1:5"}],"id":3533,"name":"IndexAccess","src":"21804:7:5"}],"id":3534,"name":"Assignment","src":"21791:20:5"}],"id":3535,"name":"ExpressionStatement","src":"21791:20:5"},{"attributes":{"functionReturnParameters":3501},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_string_memory_$dyn_memory_ptr","typeString":"string memory[] memory"}],"overloadedDeclarations":[2566,2608,2654,2698,2741,2786,2835,2882,2929,2978,3031,3082,3119,3159,3202,3242,3287,3335,3386,3434,3487,3543,3602,3658,3719,3783,3850,3914,3983,4055,4130,4202,4249,4298,4351,4402,4439,4479,4522,4562,4607,4655,4706,4754,4807,4863,4922,4978,5039,5103,5170,5234,5303,5375,5450,5522],"referencedDeclaration":2978,"type":"function (uint256,string memory,string memory[] memory) returns (bytes32)","value":"oraclize_query"},"id":3536,"name":"Identifier","src":"21828:14:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3489,"type":"uint256","value":"timestamp"},"id":3537,"name":"Identifier","src":"21843:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3491,"type":"string memory","value":"datasource"},"id":3538,"name":"Identifier","src":"21854:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3505,"type":"string memory[] memory","value":"dynargs"},"id":3539,"name":"Identifier","src":"21866:7:5"}],"id":3540,"name":"FunctionCall","src":"21828:46:5"}],"id":3541,"name":"Return","src":"21821:53:5"}],"id":3542,"name":"Block","src":"21670:211:5"}],"id":3543,"name":"FunctionDefinition","src":"21553:328:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"timestamp","scope":3602,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":3544,"name":"ElementaryTypeName","src":"21910:4:5"}],"id":3545,"name":"VariableDeclaration","src":"21910:14:5"},{"attributes":{"constant":false,"name":"datasource","scope":3602,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":3546,"name":"ElementaryTypeName","src":"21926:6:5"}],"id":3547,"name":"VariableDeclaration","src":"21926:17:5"},{"attributes":{"constant":false,"name":"args","scope":3602,"stateVariable":false,"storageLocation":"default","type":"string[3]","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"string[3]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3548,"name":"ElementaryTypeName","src":"21945:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"subdenomination":null,"token":"number","type":null,"value":"3"},"id":3549,"name":"Literal","src":"21952:1:5"}],"id":3550,"name":"ArrayTypeName","src":"21945:9:5"}],"id":3551,"name":"VariableDeclaration","src":"21945:14:5"},{"attributes":{"constant":false,"name":"gaslimit","scope":3602,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":3552,"name":"ElementaryTypeName","src":"21961:4:5"}],"id":3553,"name":"VariableDeclaration","src":"21961:13:5"}],"id":3554,"name":"ParameterList","src":"21909:66:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":3602,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3557,"name":"ElementaryTypeName","src":"22006:7:5"}],"id":3558,"name":"VariableDeclaration","src":"22006:10:5"}],"id":3559,"name":"ParameterList","src":"22005:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":3555,"name":"Identifier","src":"21976:11:5"}],"id":3556,"name":"ModifierInvocation","src":"21976:11:5"},{"children":[{"attributes":{"assignments":[3563]},"children":[{"attributes":{"constant":false,"name":"dynargs","scope":3602,"stateVariable":false,"storageLocation":"memory","type":"string[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"string[]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3561,"name":"ElementaryTypeName","src":"22028:6:5"}],"id":3562,"name":"ArrayTypeName","src":"22028:8:5"}],"id":3563,"name":"VariableDeclaration","src":"22028:23:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory[] memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (string memory[] memory)"},"children":[{"attributes":{"length":null,"type":"string[]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3564,"name":"ElementaryTypeName","src":"22058:6:5"}],"id":3565,"name":"ArrayTypeName","src":"22058:8:5"}],"id":3566,"name":"NewExpression","src":"22054:12:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":3567,"name":"Literal","src":"22067:1:5"}],"id":3568,"name":"FunctionCall","src":"22054:15:5"}],"id":3569,"name":"VariableDeclarationStatement","src":"22028:41:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3563,"type":"string memory[] memory","value":"dynargs"},"id":3570,"name":"Identifier","src":"22079:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3571,"name":"Literal","src":"22087:1:5"}],"id":3572,"name":"IndexAccess","src":"22079:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3551,"type":"string memory[3] memory","value":"args"},"id":3573,"name":"Identifier","src":"22092:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3574,"name":"Literal","src":"22097:1:5"}],"id":3575,"name":"IndexAccess","src":"22092:7:5"}],"id":3576,"name":"Assignment","src":"22079:20:5"}],"id":3577,"name":"ExpressionStatement","src":"22079:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3563,"type":"string memory[] memory","value":"dynargs"},"id":3578,"name":"Identifier","src":"22109:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":3579,"name":"Literal","src":"22117:1:5"}],"id":3580,"name":"IndexAccess","src":"22109:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3551,"type":"string memory[3] memory","value":"args"},"id":3581,"name":"Identifier","src":"22122:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":3582,"name":"Literal","src":"22127:1:5"}],"id":3583,"name":"IndexAccess","src":"22122:7:5"}],"id":3584,"name":"Assignment","src":"22109:20:5"}],"id":3585,"name":"ExpressionStatement","src":"22109:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3563,"type":"string memory[] memory","value":"dynargs"},"id":3586,"name":"Identifier","src":"22139:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":3587,"name":"Literal","src":"22147:1:5"}],"id":3588,"name":"IndexAccess","src":"22139:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3551,"type":"string memory[3] memory","value":"args"},"id":3589,"name":"Identifier","src":"22152:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":3590,"name":"Literal","src":"22157:1:5"}],"id":3591,"name":"IndexAccess","src":"22152:7:5"}],"id":3592,"name":"Assignment","src":"22139:20:5"}],"id":3593,"name":"ExpressionStatement","src":"22139:20:5"},{"attributes":{"functionReturnParameters":3559},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_string_memory_$dyn_memory_ptr","typeString":"string memory[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[2566,2608,2654,2698,2741,2786,2835,2882,2929,2978,3031,3082,3119,3159,3202,3242,3287,3335,3386,3434,3487,3543,3602,3658,3719,3783,3850,3914,3983,4055,4130,4202,4249,4298,4351,4402,4439,4479,4522,4562,4607,4655,4706,4754,4807,4863,4922,4978,5039,5103,5170,5234,5303,5375,5450,5522],"referencedDeclaration":3031,"type":"function (uint256,string memory,string memory[] memory,uint256) returns (bytes32)","value":"oraclize_query"},"id":3594,"name":"Identifier","src":"22176:14:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3545,"type":"uint256","value":"timestamp"},"id":3595,"name":"Identifier","src":"22191:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3547,"type":"string memory","value":"datasource"},"id":3596,"name":"Identifier","src":"22202:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3563,"type":"string memory[] memory","value":"dynargs"},"id":3597,"name":"Identifier","src":"22214:7:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3553,"type":"uint256","value":"gaslimit"},"id":3598,"name":"Identifier","src":"22223:8:5"}],"id":3599,"name":"FunctionCall","src":"22176:56:5"}],"id":3600,"name":"Return","src":"22169:63:5"}],"id":3601,"name":"Block","src":"22018:221:5"}],"id":3602,"name":"FunctionDefinition","src":"21886:353:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"datasource","scope":3658,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":3603,"name":"ElementaryTypeName","src":"22268:6:5"}],"id":3604,"name":"VariableDeclaration","src":"22268:17:5"},{"attributes":{"constant":false,"name":"args","scope":3658,"stateVariable":false,"storageLocation":"default","type":"string[3]","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"string[3]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3605,"name":"ElementaryTypeName","src":"22287:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"subdenomination":null,"token":"number","type":null,"value":"3"},"id":3606,"name":"Literal","src":"22294:1:5"}],"id":3607,"name":"ArrayTypeName","src":"22287:9:5"}],"id":3608,"name":"VariableDeclaration","src":"22287:14:5"},{"attributes":{"constant":false,"name":"gaslimit","scope":3658,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":3609,"name":"ElementaryTypeName","src":"22303:4:5"}],"id":3610,"name":"VariableDeclaration","src":"22303:13:5"}],"id":3611,"name":"ParameterList","src":"22267:50:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":3658,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3614,"name":"ElementaryTypeName","src":"22348:7:5"}],"id":3615,"name":"VariableDeclaration","src":"22348:10:5"}],"id":3616,"name":"ParameterList","src":"22347:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":3612,"name":"Identifier","src":"22318:11:5"}],"id":3613,"name":"ModifierInvocation","src":"22318:11:5"},{"children":[{"attributes":{"assignments":[3620]},"children":[{"attributes":{"constant":false,"name":"dynargs","scope":3658,"stateVariable":false,"storageLocation":"memory","type":"string[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"string[]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3618,"name":"ElementaryTypeName","src":"22370:6:5"}],"id":3619,"name":"ArrayTypeName","src":"22370:8:5"}],"id":3620,"name":"VariableDeclaration","src":"22370:23:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory[] memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (string memory[] memory)"},"children":[{"attributes":{"length":null,"type":"string[]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3621,"name":"ElementaryTypeName","src":"22400:6:5"}],"id":3622,"name":"ArrayTypeName","src":"22400:8:5"}],"id":3623,"name":"NewExpression","src":"22396:12:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":3624,"name":"Literal","src":"22409:1:5"}],"id":3625,"name":"FunctionCall","src":"22396:15:5"}],"id":3626,"name":"VariableDeclarationStatement","src":"22370:41:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3620,"type":"string memory[] memory","value":"dynargs"},"id":3627,"name":"Identifier","src":"22421:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3628,"name":"Literal","src":"22429:1:5"}],"id":3629,"name":"IndexAccess","src":"22421:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3608,"type":"string memory[3] memory","value":"args"},"id":3630,"name":"Identifier","src":"22434:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3631,"name":"Literal","src":"22439:1:5"}],"id":3632,"name":"IndexAccess","src":"22434:7:5"}],"id":3633,"name":"Assignment","src":"22421:20:5"}],"id":3634,"name":"ExpressionStatement","src":"22421:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3620,"type":"string memory[] memory","value":"dynargs"},"id":3635,"name":"Identifier","src":"22451:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":3636,"name":"Literal","src":"22459:1:5"}],"id":3637,"name":"IndexAccess","src":"22451:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3608,"type":"string memory[3] memory","value":"args"},"id":3638,"name":"Identifier","src":"22464:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":3639,"name":"Literal","src":"22469:1:5"}],"id":3640,"name":"IndexAccess","src":"22464:7:5"}],"id":3641,"name":"Assignment","src":"22451:20:5"}],"id":3642,"name":"ExpressionStatement","src":"22451:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3620,"type":"string memory[] memory","value":"dynargs"},"id":3643,"name":"Identifier","src":"22481:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":3644,"name":"Literal","src":"22489:1:5"}],"id":3645,"name":"IndexAccess","src":"22481:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3608,"type":"string memory[3] memory","value":"args"},"id":3646,"name":"Identifier","src":"22494:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":3647,"name":"Literal","src":"22499:1:5"}],"id":3648,"name":"IndexAccess","src":"22494:7:5"}],"id":3649,"name":"Assignment","src":"22481:20:5"}],"id":3650,"name":"ExpressionStatement","src":"22481:20:5"},{"attributes":{"functionReturnParameters":3616},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_string_memory_$dyn_memory_ptr","typeString":"string memory[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[2566,2608,2654,2698,2741,2786,2835,2882,2929,2978,3031,3082,3119,3159,3202,3242,3287,3335,3386,3434,3487,3543,3602,3658,3719,3783,3850,3914,3983,4055,4130,4202,4249,4298,4351,4402,4439,4479,4522,4562,4607,4655,4706,4754,4807,4863,4922,4978,5039,5103,5170,5234,5303,5375,5450,5522],"referencedDeclaration":3082,"type":"function (string memory,string memory[] memory,uint256) returns (bytes32)","value":"oraclize_query"},"id":3651,"name":"Identifier","src":"22518:14:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3604,"type":"string memory","value":"datasource"},"id":3652,"name":"Identifier","src":"22533:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3620,"type":"string memory[] memory","value":"dynargs"},"id":3653,"name":"Identifier","src":"22545:7:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3610,"type":"uint256","value":"gaslimit"},"id":3654,"name":"Identifier","src":"22554:8:5"}],"id":3655,"name":"FunctionCall","src":"22518:45:5"}],"id":3656,"name":"Return","src":"22511:52:5"}],"id":3657,"name":"Block","src":"22360:210:5"}],"id":3658,"name":"FunctionDefinition","src":"22244:326:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"datasource","scope":3719,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":3659,"name":"ElementaryTypeName","src":"22600:6:5"}],"id":3660,"name":"VariableDeclaration","src":"22600:17:5"},{"attributes":{"constant":false,"name":"args","scope":3719,"stateVariable":false,"storageLocation":"default","type":"string[4]","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"string[4]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3661,"name":"ElementaryTypeName","src":"22619:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"subdenomination":null,"token":"number","type":null,"value":"4"},"id":3662,"name":"Literal","src":"22626:1:5"}],"id":3663,"name":"ArrayTypeName","src":"22619:9:5"}],"id":3664,"name":"VariableDeclaration","src":"22619:14:5"}],"id":3665,"name":"ParameterList","src":"22599:35:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":3719,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3668,"name":"ElementaryTypeName","src":"22665:7:5"}],"id":3669,"name":"VariableDeclaration","src":"22665:10:5"}],"id":3670,"name":"ParameterList","src":"22664:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":3666,"name":"Identifier","src":"22635:11:5"}],"id":3667,"name":"ModifierInvocation","src":"22635:11:5"},{"children":[{"attributes":{"assignments":[3674]},"children":[{"attributes":{"constant":false,"name":"dynargs","scope":3719,"stateVariable":false,"storageLocation":"memory","type":"string[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"string[]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3672,"name":"ElementaryTypeName","src":"22687:6:5"}],"id":3673,"name":"ArrayTypeName","src":"22687:8:5"}],"id":3674,"name":"VariableDeclaration","src":"22687:23:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory[] memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (string memory[] memory)"},"children":[{"attributes":{"length":null,"type":"string[]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3675,"name":"ElementaryTypeName","src":"22717:6:5"}],"id":3676,"name":"ArrayTypeName","src":"22717:8:5"}],"id":3677,"name":"NewExpression","src":"22713:12:5"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":3678,"name":"Literal","src":"22726:1:5"}],"id":3679,"name":"FunctionCall","src":"22713:15:5"}],"id":3680,"name":"VariableDeclarationStatement","src":"22687:41:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3674,"type":"string memory[] memory","value":"dynargs"},"id":3681,"name":"Identifier","src":"22738:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3682,"name":"Literal","src":"22746:1:5"}],"id":3683,"name":"IndexAccess","src":"22738:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3664,"type":"string memory[4] memory","value":"args"},"id":3684,"name":"Identifier","src":"22751:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3685,"name":"Literal","src":"22756:1:5"}],"id":3686,"name":"IndexAccess","src":"22751:7:5"}],"id":3687,"name":"Assignment","src":"22738:20:5"}],"id":3688,"name":"ExpressionStatement","src":"22738:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3674,"type":"string memory[] memory","value":"dynargs"},"id":3689,"name":"Identifier","src":"22768:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":3690,"name":"Literal","src":"22776:1:5"}],"id":3691,"name":"IndexAccess","src":"22768:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3664,"type":"string memory[4] memory","value":"args"},"id":3692,"name":"Identifier","src":"22781:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":3693,"name":"Literal","src":"22786:1:5"}],"id":3694,"name":"IndexAccess","src":"22781:7:5"}],"id":3695,"name":"Assignment","src":"22768:20:5"}],"id":3696,"name":"ExpressionStatement","src":"22768:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3674,"type":"string memory[] memory","value":"dynargs"},"id":3697,"name":"Identifier","src":"22798:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":3698,"name":"Literal","src":"22806:1:5"}],"id":3699,"name":"IndexAccess","src":"22798:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3664,"type":"string memory[4] memory","value":"args"},"id":3700,"name":"Identifier","src":"22811:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":3701,"name":"Literal","src":"22816:1:5"}],"id":3702,"name":"IndexAccess","src":"22811:7:5"}],"id":3703,"name":"Assignment","src":"22798:20:5"}],"id":3704,"name":"ExpressionStatement","src":"22798:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3674,"type":"string memory[] memory","value":"dynargs"},"id":3705,"name":"Identifier","src":"22828:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":3706,"name":"Literal","src":"22836:1:5"}],"id":3707,"name":"IndexAccess","src":"22828:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3664,"type":"string memory[4] memory","value":"args"},"id":3708,"name":"Identifier","src":"22841:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":3709,"name":"Literal","src":"22846:1:5"}],"id":3710,"name":"IndexAccess","src":"22841:7:5"}],"id":3711,"name":"Assignment","src":"22828:20:5"}],"id":3712,"name":"ExpressionStatement","src":"22828:20:5"},{"attributes":{"functionReturnParameters":3670},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_string_memory_$dyn_memory_ptr","typeString":"string memory[] memory"}],"overloadedDeclarations":[2566,2608,2654,2698,2741,2786,2835,2882,2929,2978,3031,3082,3119,3159,3202,3242,3287,3335,3386,3434,3487,3543,3602,3658,3719,3783,3850,3914,3983,4055,4130,4202,4249,4298,4351,4402,4439,4479,4522,4562,4607,4655,4706,4754,4807,4863,4922,4978,5039,5103,5170,5234,5303,5375,5450,5522],"referencedDeclaration":2929,"type":"function (string memory,string memory[] memory) returns (bytes32)","value":"oraclize_query"},"id":3713,"name":"Identifier","src":"22865:14:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3660,"type":"string memory","value":"datasource"},"id":3714,"name":"Identifier","src":"22880:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3674,"type":"string memory[] memory","value":"dynargs"},"id":3715,"name":"Identifier","src":"22892:7:5"}],"id":3716,"name":"FunctionCall","src":"22865:35:5"}],"id":3717,"name":"Return","src":"22858:42:5"}],"id":3718,"name":"Block","src":"22677:230:5"}],"id":3719,"name":"FunctionDefinition","src":"22576:331:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"timestamp","scope":3783,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":3720,"name":"ElementaryTypeName","src":"22936:4:5"}],"id":3721,"name":"VariableDeclaration","src":"22936:14:5"},{"attributes":{"constant":false,"name":"datasource","scope":3783,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":3722,"name":"ElementaryTypeName","src":"22952:6:5"}],"id":3723,"name":"VariableDeclaration","src":"22952:17:5"},{"attributes":{"constant":false,"name":"args","scope":3783,"stateVariable":false,"storageLocation":"default","type":"string[4]","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"string[4]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3724,"name":"ElementaryTypeName","src":"22971:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"subdenomination":null,"token":"number","type":null,"value":"4"},"id":3725,"name":"Literal","src":"22978:1:5"}],"id":3726,"name":"ArrayTypeName","src":"22971:9:5"}],"id":3727,"name":"VariableDeclaration","src":"22971:14:5"}],"id":3728,"name":"ParameterList","src":"22935:51:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":3783,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3731,"name":"ElementaryTypeName","src":"23017:7:5"}],"id":3732,"name":"VariableDeclaration","src":"23017:10:5"}],"id":3733,"name":"ParameterList","src":"23016:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":3729,"name":"Identifier","src":"22987:11:5"}],"id":3730,"name":"ModifierInvocation","src":"22987:11:5"},{"children":[{"attributes":{"assignments":[3737]},"children":[{"attributes":{"constant":false,"name":"dynargs","scope":3783,"stateVariable":false,"storageLocation":"memory","type":"string[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"string[]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3735,"name":"ElementaryTypeName","src":"23039:6:5"}],"id":3736,"name":"ArrayTypeName","src":"23039:8:5"}],"id":3737,"name":"VariableDeclaration","src":"23039:23:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory[] memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (string memory[] memory)"},"children":[{"attributes":{"length":null,"type":"string[]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3738,"name":"ElementaryTypeName","src":"23069:6:5"}],"id":3739,"name":"ArrayTypeName","src":"23069:8:5"}],"id":3740,"name":"NewExpression","src":"23065:12:5"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":3741,"name":"Literal","src":"23078:1:5"}],"id":3742,"name":"FunctionCall","src":"23065:15:5"}],"id":3743,"name":"VariableDeclarationStatement","src":"23039:41:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3737,"type":"string memory[] memory","value":"dynargs"},"id":3744,"name":"Identifier","src":"23090:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3745,"name":"Literal","src":"23098:1:5"}],"id":3746,"name":"IndexAccess","src":"23090:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3727,"type":"string memory[4] memory","value":"args"},"id":3747,"name":"Identifier","src":"23103:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3748,"name":"Literal","src":"23108:1:5"}],"id":3749,"name":"IndexAccess","src":"23103:7:5"}],"id":3750,"name":"Assignment","src":"23090:20:5"}],"id":3751,"name":"ExpressionStatement","src":"23090:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3737,"type":"string memory[] memory","value":"dynargs"},"id":3752,"name":"Identifier","src":"23120:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":3753,"name":"Literal","src":"23128:1:5"}],"id":3754,"name":"IndexAccess","src":"23120:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3727,"type":"string memory[4] memory","value":"args"},"id":3755,"name":"Identifier","src":"23133:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":3756,"name":"Literal","src":"23138:1:5"}],"id":3757,"name":"IndexAccess","src":"23133:7:5"}],"id":3758,"name":"Assignment","src":"23120:20:5"}],"id":3759,"name":"ExpressionStatement","src":"23120:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3737,"type":"string memory[] memory","value":"dynargs"},"id":3760,"name":"Identifier","src":"23150:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":3761,"name":"Literal","src":"23158:1:5"}],"id":3762,"name":"IndexAccess","src":"23150:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3727,"type":"string memory[4] memory","value":"args"},"id":3763,"name":"Identifier","src":"23163:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":3764,"name":"Literal","src":"23168:1:5"}],"id":3765,"name":"IndexAccess","src":"23163:7:5"}],"id":3766,"name":"Assignment","src":"23150:20:5"}],"id":3767,"name":"ExpressionStatement","src":"23150:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3737,"type":"string memory[] memory","value":"dynargs"},"id":3768,"name":"Identifier","src":"23180:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":3769,"name":"Literal","src":"23188:1:5"}],"id":3770,"name":"IndexAccess","src":"23180:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3727,"type":"string memory[4] memory","value":"args"},"id":3771,"name":"Identifier","src":"23193:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":3772,"name":"Literal","src":"23198:1:5"}],"id":3773,"name":"IndexAccess","src":"23193:7:5"}],"id":3774,"name":"Assignment","src":"23180:20:5"}],"id":3775,"name":"ExpressionStatement","src":"23180:20:5"},{"attributes":{"functionReturnParameters":3733},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_string_memory_$dyn_memory_ptr","typeString":"string memory[] memory"}],"overloadedDeclarations":[2566,2608,2654,2698,2741,2786,2835,2882,2929,2978,3031,3082,3119,3159,3202,3242,3287,3335,3386,3434,3487,3543,3602,3658,3719,3783,3850,3914,3983,4055,4130,4202,4249,4298,4351,4402,4439,4479,4522,4562,4607,4655,4706,4754,4807,4863,4922,4978,5039,5103,5170,5234,5303,5375,5450,5522],"referencedDeclaration":2978,"type":"function (uint256,string memory,string memory[] memory) returns (bytes32)","value":"oraclize_query"},"id":3776,"name":"Identifier","src":"23217:14:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3721,"type":"uint256","value":"timestamp"},"id":3777,"name":"Identifier","src":"23232:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3723,"type":"string memory","value":"datasource"},"id":3778,"name":"Identifier","src":"23243:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3737,"type":"string memory[] memory","value":"dynargs"},"id":3779,"name":"Identifier","src":"23255:7:5"}],"id":3780,"name":"FunctionCall","src":"23217:46:5"}],"id":3781,"name":"Return","src":"23210:53:5"}],"id":3782,"name":"Block","src":"23029:241:5"}],"id":3783,"name":"FunctionDefinition","src":"22912:358:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"timestamp","scope":3850,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":3784,"name":"ElementaryTypeName","src":"23299:4:5"}],"id":3785,"name":"VariableDeclaration","src":"23299:14:5"},{"attributes":{"constant":false,"name":"datasource","scope":3850,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":3786,"name":"ElementaryTypeName","src":"23315:6:5"}],"id":3787,"name":"VariableDeclaration","src":"23315:17:5"},{"attributes":{"constant":false,"name":"args","scope":3850,"stateVariable":false,"storageLocation":"default","type":"string[4]","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"string[4]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3788,"name":"ElementaryTypeName","src":"23334:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"subdenomination":null,"token":"number","type":null,"value":"4"},"id":3789,"name":"Literal","src":"23341:1:5"}],"id":3790,"name":"ArrayTypeName","src":"23334:9:5"}],"id":3791,"name":"VariableDeclaration","src":"23334:14:5"},{"attributes":{"constant":false,"name":"gaslimit","scope":3850,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":3792,"name":"ElementaryTypeName","src":"23350:4:5"}],"id":3793,"name":"VariableDeclaration","src":"23350:13:5"}],"id":3794,"name":"ParameterList","src":"23298:66:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":3850,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3797,"name":"ElementaryTypeName","src":"23395:7:5"}],"id":3798,"name":"VariableDeclaration","src":"23395:10:5"}],"id":3799,"name":"ParameterList","src":"23394:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":3795,"name":"Identifier","src":"23365:11:5"}],"id":3796,"name":"ModifierInvocation","src":"23365:11:5"},{"children":[{"attributes":{"assignments":[3803]},"children":[{"attributes":{"constant":false,"name":"dynargs","scope":3850,"stateVariable":false,"storageLocation":"memory","type":"string[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"string[]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3801,"name":"ElementaryTypeName","src":"23417:6:5"}],"id":3802,"name":"ArrayTypeName","src":"23417:8:5"}],"id":3803,"name":"VariableDeclaration","src":"23417:23:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory[] memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (string memory[] memory)"},"children":[{"attributes":{"length":null,"type":"string[]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3804,"name":"ElementaryTypeName","src":"23447:6:5"}],"id":3805,"name":"ArrayTypeName","src":"23447:8:5"}],"id":3806,"name":"NewExpression","src":"23443:12:5"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":3807,"name":"Literal","src":"23456:1:5"}],"id":3808,"name":"FunctionCall","src":"23443:15:5"}],"id":3809,"name":"VariableDeclarationStatement","src":"23417:41:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3803,"type":"string memory[] memory","value":"dynargs"},"id":3810,"name":"Identifier","src":"23468:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3811,"name":"Literal","src":"23476:1:5"}],"id":3812,"name":"IndexAccess","src":"23468:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3791,"type":"string memory[4] memory","value":"args"},"id":3813,"name":"Identifier","src":"23481:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3814,"name":"Literal","src":"23486:1:5"}],"id":3815,"name":"IndexAccess","src":"23481:7:5"}],"id":3816,"name":"Assignment","src":"23468:20:5"}],"id":3817,"name":"ExpressionStatement","src":"23468:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3803,"type":"string memory[] memory","value":"dynargs"},"id":3818,"name":"Identifier","src":"23498:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":3819,"name":"Literal","src":"23506:1:5"}],"id":3820,"name":"IndexAccess","src":"23498:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3791,"type":"string memory[4] memory","value":"args"},"id":3821,"name":"Identifier","src":"23511:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":3822,"name":"Literal","src":"23516:1:5"}],"id":3823,"name":"IndexAccess","src":"23511:7:5"}],"id":3824,"name":"Assignment","src":"23498:20:5"}],"id":3825,"name":"ExpressionStatement","src":"23498:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3803,"type":"string memory[] memory","value":"dynargs"},"id":3826,"name":"Identifier","src":"23528:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":3827,"name":"Literal","src":"23536:1:5"}],"id":3828,"name":"IndexAccess","src":"23528:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3791,"type":"string memory[4] memory","value":"args"},"id":3829,"name":"Identifier","src":"23541:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":3830,"name":"Literal","src":"23546:1:5"}],"id":3831,"name":"IndexAccess","src":"23541:7:5"}],"id":3832,"name":"Assignment","src":"23528:20:5"}],"id":3833,"name":"ExpressionStatement","src":"23528:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3803,"type":"string memory[] memory","value":"dynargs"},"id":3834,"name":"Identifier","src":"23558:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":3835,"name":"Literal","src":"23566:1:5"}],"id":3836,"name":"IndexAccess","src":"23558:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3791,"type":"string memory[4] memory","value":"args"},"id":3837,"name":"Identifier","src":"23571:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":3838,"name":"Literal","src":"23576:1:5"}],"id":3839,"name":"IndexAccess","src":"23571:7:5"}],"id":3840,"name":"Assignment","src":"23558:20:5"}],"id":3841,"name":"ExpressionStatement","src":"23558:20:5"},{"attributes":{"functionReturnParameters":3799},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_string_memory_$dyn_memory_ptr","typeString":"string memory[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[2566,2608,2654,2698,2741,2786,2835,2882,2929,2978,3031,3082,3119,3159,3202,3242,3287,3335,3386,3434,3487,3543,3602,3658,3719,3783,3850,3914,3983,4055,4130,4202,4249,4298,4351,4402,4439,4479,4522,4562,4607,4655,4706,4754,4807,4863,4922,4978,5039,5103,5170,5234,5303,5375,5450,5522],"referencedDeclaration":3031,"type":"function (uint256,string memory,string memory[] memory,uint256) returns (bytes32)","value":"oraclize_query"},"id":3842,"name":"Identifier","src":"23595:14:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3785,"type":"uint256","value":"timestamp"},"id":3843,"name":"Identifier","src":"23610:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3787,"type":"string memory","value":"datasource"},"id":3844,"name":"Identifier","src":"23621:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3803,"type":"string memory[] memory","value":"dynargs"},"id":3845,"name":"Identifier","src":"23633:7:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3793,"type":"uint256","value":"gaslimit"},"id":3846,"name":"Identifier","src":"23642:8:5"}],"id":3847,"name":"FunctionCall","src":"23595:56:5"}],"id":3848,"name":"Return","src":"23588:63:5"}],"id":3849,"name":"Block","src":"23407:251:5"}],"id":3850,"name":"FunctionDefinition","src":"23275:383:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"datasource","scope":3914,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":3851,"name":"ElementaryTypeName","src":"23687:6:5"}],"id":3852,"name":"VariableDeclaration","src":"23687:17:5"},{"attributes":{"constant":false,"name":"args","scope":3914,"stateVariable":false,"storageLocation":"default","type":"string[4]","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"string[4]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3853,"name":"ElementaryTypeName","src":"23706:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"subdenomination":null,"token":"number","type":null,"value":"4"},"id":3854,"name":"Literal","src":"23713:1:5"}],"id":3855,"name":"ArrayTypeName","src":"23706:9:5"}],"id":3856,"name":"VariableDeclaration","src":"23706:14:5"},{"attributes":{"constant":false,"name":"gaslimit","scope":3914,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":3857,"name":"ElementaryTypeName","src":"23722:4:5"}],"id":3858,"name":"VariableDeclaration","src":"23722:13:5"}],"id":3859,"name":"ParameterList","src":"23686:50:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":3914,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3862,"name":"ElementaryTypeName","src":"23767:7:5"}],"id":3863,"name":"VariableDeclaration","src":"23767:10:5"}],"id":3864,"name":"ParameterList","src":"23766:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":3860,"name":"Identifier","src":"23737:11:5"}],"id":3861,"name":"ModifierInvocation","src":"23737:11:5"},{"children":[{"attributes":{"assignments":[3868]},"children":[{"attributes":{"constant":false,"name":"dynargs","scope":3914,"stateVariable":false,"storageLocation":"memory","type":"string[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"string[]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3866,"name":"ElementaryTypeName","src":"23789:6:5"}],"id":3867,"name":"ArrayTypeName","src":"23789:8:5"}],"id":3868,"name":"VariableDeclaration","src":"23789:23:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory[] memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (string memory[] memory)"},"children":[{"attributes":{"length":null,"type":"string[]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3869,"name":"ElementaryTypeName","src":"23819:6:5"}],"id":3870,"name":"ArrayTypeName","src":"23819:8:5"}],"id":3871,"name":"NewExpression","src":"23815:12:5"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":3872,"name":"Literal","src":"23828:1:5"}],"id":3873,"name":"FunctionCall","src":"23815:15:5"}],"id":3874,"name":"VariableDeclarationStatement","src":"23789:41:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3868,"type":"string memory[] memory","value":"dynargs"},"id":3875,"name":"Identifier","src":"23840:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3876,"name":"Literal","src":"23848:1:5"}],"id":3877,"name":"IndexAccess","src":"23840:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3856,"type":"string memory[4] memory","value":"args"},"id":3878,"name":"Identifier","src":"23853:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3879,"name":"Literal","src":"23858:1:5"}],"id":3880,"name":"IndexAccess","src":"23853:7:5"}],"id":3881,"name":"Assignment","src":"23840:20:5"}],"id":3882,"name":"ExpressionStatement","src":"23840:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3868,"type":"string memory[] memory","value":"dynargs"},"id":3883,"name":"Identifier","src":"23870:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":3884,"name":"Literal","src":"23878:1:5"}],"id":3885,"name":"IndexAccess","src":"23870:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3856,"type":"string memory[4] memory","value":"args"},"id":3886,"name":"Identifier","src":"23883:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":3887,"name":"Literal","src":"23888:1:5"}],"id":3888,"name":"IndexAccess","src":"23883:7:5"}],"id":3889,"name":"Assignment","src":"23870:20:5"}],"id":3890,"name":"ExpressionStatement","src":"23870:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3868,"type":"string memory[] memory","value":"dynargs"},"id":3891,"name":"Identifier","src":"23900:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":3892,"name":"Literal","src":"23908:1:5"}],"id":3893,"name":"IndexAccess","src":"23900:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3856,"type":"string memory[4] memory","value":"args"},"id":3894,"name":"Identifier","src":"23913:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":3895,"name":"Literal","src":"23918:1:5"}],"id":3896,"name":"IndexAccess","src":"23913:7:5"}],"id":3897,"name":"Assignment","src":"23900:20:5"}],"id":3898,"name":"ExpressionStatement","src":"23900:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3868,"type":"string memory[] memory","value":"dynargs"},"id":3899,"name":"Identifier","src":"23930:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":3900,"name":"Literal","src":"23938:1:5"}],"id":3901,"name":"IndexAccess","src":"23930:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3856,"type":"string memory[4] memory","value":"args"},"id":3902,"name":"Identifier","src":"23943:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":3903,"name":"Literal","src":"23948:1:5"}],"id":3904,"name":"IndexAccess","src":"23943:7:5"}],"id":3905,"name":"Assignment","src":"23930:20:5"}],"id":3906,"name":"ExpressionStatement","src":"23930:20:5"},{"attributes":{"functionReturnParameters":3864},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_string_memory_$dyn_memory_ptr","typeString":"string memory[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[2566,2608,2654,2698,2741,2786,2835,2882,2929,2978,3031,3082,3119,3159,3202,3242,3287,3335,3386,3434,3487,3543,3602,3658,3719,3783,3850,3914,3983,4055,4130,4202,4249,4298,4351,4402,4439,4479,4522,4562,4607,4655,4706,4754,4807,4863,4922,4978,5039,5103,5170,5234,5303,5375,5450,5522],"referencedDeclaration":3082,"type":"function (string memory,string memory[] memory,uint256) returns (bytes32)","value":"oraclize_query"},"id":3907,"name":"Identifier","src":"23967:14:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3852,"type":"string memory","value":"datasource"},"id":3908,"name":"Identifier","src":"23982:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3868,"type":"string memory[] memory","value":"dynargs"},"id":3909,"name":"Identifier","src":"23994:7:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3858,"type":"uint256","value":"gaslimit"},"id":3910,"name":"Identifier","src":"24003:8:5"}],"id":3911,"name":"FunctionCall","src":"23967:45:5"}],"id":3912,"name":"Return","src":"23960:52:5"}],"id":3913,"name":"Block","src":"23779:240:5"}],"id":3914,"name":"FunctionDefinition","src":"23663:356:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"datasource","scope":3983,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":3915,"name":"ElementaryTypeName","src":"24048:6:5"}],"id":3916,"name":"VariableDeclaration","src":"24048:17:5"},{"attributes":{"constant":false,"name":"args","scope":3983,"stateVariable":false,"storageLocation":"default","type":"string[5]","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"string[5]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3917,"name":"ElementaryTypeName","src":"24067:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"35","isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"subdenomination":null,"token":"number","type":null,"value":"5"},"id":3918,"name":"Literal","src":"24074:1:5"}],"id":3919,"name":"ArrayTypeName","src":"24067:9:5"}],"id":3920,"name":"VariableDeclaration","src":"24067:14:5"}],"id":3921,"name":"ParameterList","src":"24047:35:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":3983,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3924,"name":"ElementaryTypeName","src":"24113:7:5"}],"id":3925,"name":"VariableDeclaration","src":"24113:10:5"}],"id":3926,"name":"ParameterList","src":"24112:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":3922,"name":"Identifier","src":"24083:11:5"}],"id":3923,"name":"ModifierInvocation","src":"24083:11:5"},{"children":[{"attributes":{"assignments":[3930]},"children":[{"attributes":{"constant":false,"name":"dynargs","scope":3983,"stateVariable":false,"storageLocation":"memory","type":"string[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"string[]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3928,"name":"ElementaryTypeName","src":"24135:6:5"}],"id":3929,"name":"ArrayTypeName","src":"24135:8:5"}],"id":3930,"name":"VariableDeclaration","src":"24135:23:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory[] memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (string memory[] memory)"},"children":[{"attributes":{"length":null,"type":"string[]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3931,"name":"ElementaryTypeName","src":"24165:6:5"}],"id":3932,"name":"ArrayTypeName","src":"24165:8:5"}],"id":3933,"name":"NewExpression","src":"24161:12:5"},{"attributes":{"argumentTypes":null,"hexvalue":"35","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 5","value":"5"},"id":3934,"name":"Literal","src":"24174:1:5"}],"id":3935,"name":"FunctionCall","src":"24161:15:5"}],"id":3936,"name":"VariableDeclarationStatement","src":"24135:41:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3930,"type":"string memory[] memory","value":"dynargs"},"id":3937,"name":"Identifier","src":"24186:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3938,"name":"Literal","src":"24194:1:5"}],"id":3939,"name":"IndexAccess","src":"24186:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3920,"type":"string memory[5] memory","value":"args"},"id":3940,"name":"Identifier","src":"24199:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3941,"name":"Literal","src":"24204:1:5"}],"id":3942,"name":"IndexAccess","src":"24199:7:5"}],"id":3943,"name":"Assignment","src":"24186:20:5"}],"id":3944,"name":"ExpressionStatement","src":"24186:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3930,"type":"string memory[] memory","value":"dynargs"},"id":3945,"name":"Identifier","src":"24216:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":3946,"name":"Literal","src":"24224:1:5"}],"id":3947,"name":"IndexAccess","src":"24216:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3920,"type":"string memory[5] memory","value":"args"},"id":3948,"name":"Identifier","src":"24229:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":3949,"name":"Literal","src":"24234:1:5"}],"id":3950,"name":"IndexAccess","src":"24229:7:5"}],"id":3951,"name":"Assignment","src":"24216:20:5"}],"id":3952,"name":"ExpressionStatement","src":"24216:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3930,"type":"string memory[] memory","value":"dynargs"},"id":3953,"name":"Identifier","src":"24246:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":3954,"name":"Literal","src":"24254:1:5"}],"id":3955,"name":"IndexAccess","src":"24246:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3920,"type":"string memory[5] memory","value":"args"},"id":3956,"name":"Identifier","src":"24259:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":3957,"name":"Literal","src":"24264:1:5"}],"id":3958,"name":"IndexAccess","src":"24259:7:5"}],"id":3959,"name":"Assignment","src":"24246:20:5"}],"id":3960,"name":"ExpressionStatement","src":"24246:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3930,"type":"string memory[] memory","value":"dynargs"},"id":3961,"name":"Identifier","src":"24276:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":3962,"name":"Literal","src":"24284:1:5"}],"id":3963,"name":"IndexAccess","src":"24276:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3920,"type":"string memory[5] memory","value":"args"},"id":3964,"name":"Identifier","src":"24289:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":3965,"name":"Literal","src":"24294:1:5"}],"id":3966,"name":"IndexAccess","src":"24289:7:5"}],"id":3967,"name":"Assignment","src":"24276:20:5"}],"id":3968,"name":"ExpressionStatement","src":"24276:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3930,"type":"string memory[] memory","value":"dynargs"},"id":3969,"name":"Identifier","src":"24306:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":3970,"name":"Literal","src":"24314:1:5"}],"id":3971,"name":"IndexAccess","src":"24306:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3920,"type":"string memory[5] memory","value":"args"},"id":3972,"name":"Identifier","src":"24319:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":3973,"name":"Literal","src":"24324:1:5"}],"id":3974,"name":"IndexAccess","src":"24319:7:5"}],"id":3975,"name":"Assignment","src":"24306:20:5"}],"id":3976,"name":"ExpressionStatement","src":"24306:20:5"},{"attributes":{"functionReturnParameters":3926},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_string_memory_$dyn_memory_ptr","typeString":"string memory[] memory"}],"overloadedDeclarations":[2566,2608,2654,2698,2741,2786,2835,2882,2929,2978,3031,3082,3119,3159,3202,3242,3287,3335,3386,3434,3487,3543,3602,3658,3719,3783,3850,3914,3983,4055,4130,4202,4249,4298,4351,4402,4439,4479,4522,4562,4607,4655,4706,4754,4807,4863,4922,4978,5039,5103,5170,5234,5303,5375,5450,5522],"referencedDeclaration":2929,"type":"function (string memory,string memory[] memory) returns (bytes32)","value":"oraclize_query"},"id":3977,"name":"Identifier","src":"24343:14:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3916,"type":"string memory","value":"datasource"},"id":3978,"name":"Identifier","src":"24358:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3930,"type":"string memory[] memory","value":"dynargs"},"id":3979,"name":"Identifier","src":"24370:7:5"}],"id":3980,"name":"FunctionCall","src":"24343:35:5"}],"id":3981,"name":"Return","src":"24336:42:5"}],"id":3982,"name":"Block","src":"24125:260:5"}],"id":3983,"name":"FunctionDefinition","src":"24024:361:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"timestamp","scope":4055,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":3984,"name":"ElementaryTypeName","src":"24414:4:5"}],"id":3985,"name":"VariableDeclaration","src":"24414:14:5"},{"attributes":{"constant":false,"name":"datasource","scope":4055,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":3986,"name":"ElementaryTypeName","src":"24430:6:5"}],"id":3987,"name":"VariableDeclaration","src":"24430:17:5"},{"attributes":{"constant":false,"name":"args","scope":4055,"stateVariable":false,"storageLocation":"default","type":"string[5]","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"string[5]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3988,"name":"ElementaryTypeName","src":"24449:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"35","isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"subdenomination":null,"token":"number","type":null,"value":"5"},"id":3989,"name":"Literal","src":"24456:1:5"}],"id":3990,"name":"ArrayTypeName","src":"24449:9:5"}],"id":3991,"name":"VariableDeclaration","src":"24449:14:5"}],"id":3992,"name":"ParameterList","src":"24413:51:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":4055,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3995,"name":"ElementaryTypeName","src":"24495:7:5"}],"id":3996,"name":"VariableDeclaration","src":"24495:10:5"}],"id":3997,"name":"ParameterList","src":"24494:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":3993,"name":"Identifier","src":"24465:11:5"}],"id":3994,"name":"ModifierInvocation","src":"24465:11:5"},{"children":[{"attributes":{"assignments":[4001]},"children":[{"attributes":{"constant":false,"name":"dynargs","scope":4055,"stateVariable":false,"storageLocation":"memory","type":"string[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"string[]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3999,"name":"ElementaryTypeName","src":"24517:6:5"}],"id":4000,"name":"ArrayTypeName","src":"24517:8:5"}],"id":4001,"name":"VariableDeclaration","src":"24517:23:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory[] memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (string memory[] memory)"},"children":[{"attributes":{"length":null,"type":"string[]"},"children":[{"attributes":{"name":"string","type":"string"},"id":4002,"name":"ElementaryTypeName","src":"24547:6:5"}],"id":4003,"name":"ArrayTypeName","src":"24547:8:5"}],"id":4004,"name":"NewExpression","src":"24543:12:5"},{"attributes":{"argumentTypes":null,"hexvalue":"35","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 5","value":"5"},"id":4005,"name":"Literal","src":"24556:1:5"}],"id":4006,"name":"FunctionCall","src":"24543:15:5"}],"id":4007,"name":"VariableDeclarationStatement","src":"24517:41:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4001,"type":"string memory[] memory","value":"dynargs"},"id":4008,"name":"Identifier","src":"24568:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4009,"name":"Literal","src":"24576:1:5"}],"id":4010,"name":"IndexAccess","src":"24568:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3991,"type":"string memory[5] memory","value":"args"},"id":4011,"name":"Identifier","src":"24581:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4012,"name":"Literal","src":"24586:1:5"}],"id":4013,"name":"IndexAccess","src":"24581:7:5"}],"id":4014,"name":"Assignment","src":"24568:20:5"}],"id":4015,"name":"ExpressionStatement","src":"24568:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4001,"type":"string memory[] memory","value":"dynargs"},"id":4016,"name":"Identifier","src":"24598:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":4017,"name":"Literal","src":"24606:1:5"}],"id":4018,"name":"IndexAccess","src":"24598:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3991,"type":"string memory[5] memory","value":"args"},"id":4019,"name":"Identifier","src":"24611:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":4020,"name":"Literal","src":"24616:1:5"}],"id":4021,"name":"IndexAccess","src":"24611:7:5"}],"id":4022,"name":"Assignment","src":"24598:20:5"}],"id":4023,"name":"ExpressionStatement","src":"24598:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4001,"type":"string memory[] memory","value":"dynargs"},"id":4024,"name":"Identifier","src":"24628:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":4025,"name":"Literal","src":"24636:1:5"}],"id":4026,"name":"IndexAccess","src":"24628:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3991,"type":"string memory[5] memory","value":"args"},"id":4027,"name":"Identifier","src":"24641:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":4028,"name":"Literal","src":"24646:1:5"}],"id":4029,"name":"IndexAccess","src":"24641:7:5"}],"id":4030,"name":"Assignment","src":"24628:20:5"}],"id":4031,"name":"ExpressionStatement","src":"24628:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4001,"type":"string memory[] memory","value":"dynargs"},"id":4032,"name":"Identifier","src":"24658:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":4033,"name":"Literal","src":"24666:1:5"}],"id":4034,"name":"IndexAccess","src":"24658:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3991,"type":"string memory[5] memory","value":"args"},"id":4035,"name":"Identifier","src":"24671:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":4036,"name":"Literal","src":"24676:1:5"}],"id":4037,"name":"IndexAccess","src":"24671:7:5"}],"id":4038,"name":"Assignment","src":"24658:20:5"}],"id":4039,"name":"ExpressionStatement","src":"24658:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4001,"type":"string memory[] memory","value":"dynargs"},"id":4040,"name":"Identifier","src":"24688:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":4041,"name":"Literal","src":"24696:1:5"}],"id":4042,"name":"IndexAccess","src":"24688:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3991,"type":"string memory[5] memory","value":"args"},"id":4043,"name":"Identifier","src":"24701:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":4044,"name":"Literal","src":"24706:1:5"}],"id":4045,"name":"IndexAccess","src":"24701:7:5"}],"id":4046,"name":"Assignment","src":"24688:20:5"}],"id":4047,"name":"ExpressionStatement","src":"24688:20:5"},{"attributes":{"functionReturnParameters":3997},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_string_memory_$dyn_memory_ptr","typeString":"string memory[] memory"}],"overloadedDeclarations":[2566,2608,2654,2698,2741,2786,2835,2882,2929,2978,3031,3082,3119,3159,3202,3242,3287,3335,3386,3434,3487,3543,3602,3658,3719,3783,3850,3914,3983,4055,4130,4202,4249,4298,4351,4402,4439,4479,4522,4562,4607,4655,4706,4754,4807,4863,4922,4978,5039,5103,5170,5234,5303,5375,5450,5522],"referencedDeclaration":2978,"type":"function (uint256,string memory,string memory[] memory) returns (bytes32)","value":"oraclize_query"},"id":4048,"name":"Identifier","src":"24725:14:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3985,"type":"uint256","value":"timestamp"},"id":4049,"name":"Identifier","src":"24740:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3987,"type":"string memory","value":"datasource"},"id":4050,"name":"Identifier","src":"24751:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4001,"type":"string memory[] memory","value":"dynargs"},"id":4051,"name":"Identifier","src":"24763:7:5"}],"id":4052,"name":"FunctionCall","src":"24725:46:5"}],"id":4053,"name":"Return","src":"24718:53:5"}],"id":4054,"name":"Block","src":"24507:271:5"}],"id":4055,"name":"FunctionDefinition","src":"24390:388:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"timestamp","scope":4130,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4056,"name":"ElementaryTypeName","src":"24807:4:5"}],"id":4057,"name":"VariableDeclaration","src":"24807:14:5"},{"attributes":{"constant":false,"name":"datasource","scope":4130,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":4058,"name":"ElementaryTypeName","src":"24823:6:5"}],"id":4059,"name":"VariableDeclaration","src":"24823:17:5"},{"attributes":{"constant":false,"name":"args","scope":4130,"stateVariable":false,"storageLocation":"default","type":"string[5]","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"string[5]"},"children":[{"attributes":{"name":"string","type":"string"},"id":4060,"name":"ElementaryTypeName","src":"24842:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"35","isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"subdenomination":null,"token":"number","type":null,"value":"5"},"id":4061,"name":"Literal","src":"24849:1:5"}],"id":4062,"name":"ArrayTypeName","src":"24842:9:5"}],"id":4063,"name":"VariableDeclaration","src":"24842:14:5"},{"attributes":{"constant":false,"name":"gaslimit","scope":4130,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4064,"name":"ElementaryTypeName","src":"24858:4:5"}],"id":4065,"name":"VariableDeclaration","src":"24858:13:5"}],"id":4066,"name":"ParameterList","src":"24806:66:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":4130,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":4069,"name":"ElementaryTypeName","src":"24903:7:5"}],"id":4070,"name":"VariableDeclaration","src":"24903:10:5"}],"id":4071,"name":"ParameterList","src":"24902:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":4067,"name":"Identifier","src":"24873:11:5"}],"id":4068,"name":"ModifierInvocation","src":"24873:11:5"},{"children":[{"attributes":{"assignments":[4075]},"children":[{"attributes":{"constant":false,"name":"dynargs","scope":4130,"stateVariable":false,"storageLocation":"memory","type":"string[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"string[]"},"children":[{"attributes":{"name":"string","type":"string"},"id":4073,"name":"ElementaryTypeName","src":"24925:6:5"}],"id":4074,"name":"ArrayTypeName","src":"24925:8:5"}],"id":4075,"name":"VariableDeclaration","src":"24925:23:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory[] memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (string memory[] memory)"},"children":[{"attributes":{"length":null,"type":"string[]"},"children":[{"attributes":{"name":"string","type":"string"},"id":4076,"name":"ElementaryTypeName","src":"24955:6:5"}],"id":4077,"name":"ArrayTypeName","src":"24955:8:5"}],"id":4078,"name":"NewExpression","src":"24951:12:5"},{"attributes":{"argumentTypes":null,"hexvalue":"35","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 5","value":"5"},"id":4079,"name":"Literal","src":"24964:1:5"}],"id":4080,"name":"FunctionCall","src":"24951:15:5"}],"id":4081,"name":"VariableDeclarationStatement","src":"24925:41:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4075,"type":"string memory[] memory","value":"dynargs"},"id":4082,"name":"Identifier","src":"24976:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4083,"name":"Literal","src":"24984:1:5"}],"id":4084,"name":"IndexAccess","src":"24976:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4063,"type":"string memory[5] memory","value":"args"},"id":4085,"name":"Identifier","src":"24989:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4086,"name":"Literal","src":"24994:1:5"}],"id":4087,"name":"IndexAccess","src":"24989:7:5"}],"id":4088,"name":"Assignment","src":"24976:20:5"}],"id":4089,"name":"ExpressionStatement","src":"24976:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4075,"type":"string memory[] memory","value":"dynargs"},"id":4090,"name":"Identifier","src":"25006:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":4091,"name":"Literal","src":"25014:1:5"}],"id":4092,"name":"IndexAccess","src":"25006:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4063,"type":"string memory[5] memory","value":"args"},"id":4093,"name":"Identifier","src":"25019:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":4094,"name":"Literal","src":"25024:1:5"}],"id":4095,"name":"IndexAccess","src":"25019:7:5"}],"id":4096,"name":"Assignment","src":"25006:20:5"}],"id":4097,"name":"ExpressionStatement","src":"25006:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4075,"type":"string memory[] memory","value":"dynargs"},"id":4098,"name":"Identifier","src":"25036:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":4099,"name":"Literal","src":"25044:1:5"}],"id":4100,"name":"IndexAccess","src":"25036:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4063,"type":"string memory[5] memory","value":"args"},"id":4101,"name":"Identifier","src":"25049:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":4102,"name":"Literal","src":"25054:1:5"}],"id":4103,"name":"IndexAccess","src":"25049:7:5"}],"id":4104,"name":"Assignment","src":"25036:20:5"}],"id":4105,"name":"ExpressionStatement","src":"25036:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4075,"type":"string memory[] memory","value":"dynargs"},"id":4106,"name":"Identifier","src":"25066:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":4107,"name":"Literal","src":"25074:1:5"}],"id":4108,"name":"IndexAccess","src":"25066:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4063,"type":"string memory[5] memory","value":"args"},"id":4109,"name":"Identifier","src":"25079:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":4110,"name":"Literal","src":"25084:1:5"}],"id":4111,"name":"IndexAccess","src":"25079:7:5"}],"id":4112,"name":"Assignment","src":"25066:20:5"}],"id":4113,"name":"ExpressionStatement","src":"25066:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4075,"type":"string memory[] memory","value":"dynargs"},"id":4114,"name":"Identifier","src":"25096:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":4115,"name":"Literal","src":"25104:1:5"}],"id":4116,"name":"IndexAccess","src":"25096:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4063,"type":"string memory[5] memory","value":"args"},"id":4117,"name":"Identifier","src":"25109:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":4118,"name":"Literal","src":"25114:1:5"}],"id":4119,"name":"IndexAccess","src":"25109:7:5"}],"id":4120,"name":"Assignment","src":"25096:20:5"}],"id":4121,"name":"ExpressionStatement","src":"25096:20:5"},{"attributes":{"functionReturnParameters":4071},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_string_memory_$dyn_memory_ptr","typeString":"string memory[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[2566,2608,2654,2698,2741,2786,2835,2882,2929,2978,3031,3082,3119,3159,3202,3242,3287,3335,3386,3434,3487,3543,3602,3658,3719,3783,3850,3914,3983,4055,4130,4202,4249,4298,4351,4402,4439,4479,4522,4562,4607,4655,4706,4754,4807,4863,4922,4978,5039,5103,5170,5234,5303,5375,5450,5522],"referencedDeclaration":3031,"type":"function (uint256,string memory,string memory[] memory,uint256) returns (bytes32)","value":"oraclize_query"},"id":4122,"name":"Identifier","src":"25133:14:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4057,"type":"uint256","value":"timestamp"},"id":4123,"name":"Identifier","src":"25148:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4059,"type":"string memory","value":"datasource"},"id":4124,"name":"Identifier","src":"25159:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4075,"type":"string memory[] memory","value":"dynargs"},"id":4125,"name":"Identifier","src":"25171:7:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4065,"type":"uint256","value":"gaslimit"},"id":4126,"name":"Identifier","src":"25180:8:5"}],"id":4127,"name":"FunctionCall","src":"25133:56:5"}],"id":4128,"name":"Return","src":"25126:63:5"}],"id":4129,"name":"Block","src":"24915:281:5"}],"id":4130,"name":"FunctionDefinition","src":"24783:413:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"datasource","scope":4202,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":4131,"name":"ElementaryTypeName","src":"25225:6:5"}],"id":4132,"name":"VariableDeclaration","src":"25225:17:5"},{"attributes":{"constant":false,"name":"args","scope":4202,"stateVariable":false,"storageLocation":"default","type":"string[5]","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"string[5]"},"children":[{"attributes":{"name":"string","type":"string"},"id":4133,"name":"ElementaryTypeName","src":"25244:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"35","isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"subdenomination":null,"token":"number","type":null,"value":"5"},"id":4134,"name":"Literal","src":"25251:1:5"}],"id":4135,"name":"ArrayTypeName","src":"25244:9:5"}],"id":4136,"name":"VariableDeclaration","src":"25244:14:5"},{"attributes":{"constant":false,"name":"gaslimit","scope":4202,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4137,"name":"ElementaryTypeName","src":"25260:4:5"}],"id":4138,"name":"VariableDeclaration","src":"25260:13:5"}],"id":4139,"name":"ParameterList","src":"25224:50:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":4202,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":4142,"name":"ElementaryTypeName","src":"25305:7:5"}],"id":4143,"name":"VariableDeclaration","src":"25305:10:5"}],"id":4144,"name":"ParameterList","src":"25304:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":4140,"name":"Identifier","src":"25275:11:5"}],"id":4141,"name":"ModifierInvocation","src":"25275:11:5"},{"children":[{"attributes":{"assignments":[4148]},"children":[{"attributes":{"constant":false,"name":"dynargs","scope":4202,"stateVariable":false,"storageLocation":"memory","type":"string[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"string[]"},"children":[{"attributes":{"name":"string","type":"string"},"id":4146,"name":"ElementaryTypeName","src":"25327:6:5"}],"id":4147,"name":"ArrayTypeName","src":"25327:8:5"}],"id":4148,"name":"VariableDeclaration","src":"25327:23:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory[] memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (string memory[] memory)"},"children":[{"attributes":{"length":null,"type":"string[]"},"children":[{"attributes":{"name":"string","type":"string"},"id":4149,"name":"ElementaryTypeName","src":"25357:6:5"}],"id":4150,"name":"ArrayTypeName","src":"25357:8:5"}],"id":4151,"name":"NewExpression","src":"25353:12:5"},{"attributes":{"argumentTypes":null,"hexvalue":"35","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 5","value":"5"},"id":4152,"name":"Literal","src":"25366:1:5"}],"id":4153,"name":"FunctionCall","src":"25353:15:5"}],"id":4154,"name":"VariableDeclarationStatement","src":"25327:41:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4148,"type":"string memory[] memory","value":"dynargs"},"id":4155,"name":"Identifier","src":"25378:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4156,"name":"Literal","src":"25386:1:5"}],"id":4157,"name":"IndexAccess","src":"25378:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4136,"type":"string memory[5] memory","value":"args"},"id":4158,"name":"Identifier","src":"25391:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4159,"name":"Literal","src":"25396:1:5"}],"id":4160,"name":"IndexAccess","src":"25391:7:5"}],"id":4161,"name":"Assignment","src":"25378:20:5"}],"id":4162,"name":"ExpressionStatement","src":"25378:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4148,"type":"string memory[] memory","value":"dynargs"},"id":4163,"name":"Identifier","src":"25408:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":4164,"name":"Literal","src":"25416:1:5"}],"id":4165,"name":"IndexAccess","src":"25408:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4136,"type":"string memory[5] memory","value":"args"},"id":4166,"name":"Identifier","src":"25421:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":4167,"name":"Literal","src":"25426:1:5"}],"id":4168,"name":"IndexAccess","src":"25421:7:5"}],"id":4169,"name":"Assignment","src":"25408:20:5"}],"id":4170,"name":"ExpressionStatement","src":"25408:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4148,"type":"string memory[] memory","value":"dynargs"},"id":4171,"name":"Identifier","src":"25438:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":4172,"name":"Literal","src":"25446:1:5"}],"id":4173,"name":"IndexAccess","src":"25438:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4136,"type":"string memory[5] memory","value":"args"},"id":4174,"name":"Identifier","src":"25451:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":4175,"name":"Literal","src":"25456:1:5"}],"id":4176,"name":"IndexAccess","src":"25451:7:5"}],"id":4177,"name":"Assignment","src":"25438:20:5"}],"id":4178,"name":"ExpressionStatement","src":"25438:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4148,"type":"string memory[] memory","value":"dynargs"},"id":4179,"name":"Identifier","src":"25468:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":4180,"name":"Literal","src":"25476:1:5"}],"id":4181,"name":"IndexAccess","src":"25468:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4136,"type":"string memory[5] memory","value":"args"},"id":4182,"name":"Identifier","src":"25481:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":4183,"name":"Literal","src":"25486:1:5"}],"id":4184,"name":"IndexAccess","src":"25481:7:5"}],"id":4185,"name":"Assignment","src":"25468:20:5"}],"id":4186,"name":"ExpressionStatement","src":"25468:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4148,"type":"string memory[] memory","value":"dynargs"},"id":4187,"name":"Identifier","src":"25498:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":4188,"name":"Literal","src":"25506:1:5"}],"id":4189,"name":"IndexAccess","src":"25498:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4136,"type":"string memory[5] memory","value":"args"},"id":4190,"name":"Identifier","src":"25511:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":4191,"name":"Literal","src":"25516:1:5"}],"id":4192,"name":"IndexAccess","src":"25511:7:5"}],"id":4193,"name":"Assignment","src":"25498:20:5"}],"id":4194,"name":"ExpressionStatement","src":"25498:20:5"},{"attributes":{"functionReturnParameters":4144},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_string_memory_$dyn_memory_ptr","typeString":"string memory[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[2566,2608,2654,2698,2741,2786,2835,2882,2929,2978,3031,3082,3119,3159,3202,3242,3287,3335,3386,3434,3487,3543,3602,3658,3719,3783,3850,3914,3983,4055,4130,4202,4249,4298,4351,4402,4439,4479,4522,4562,4607,4655,4706,4754,4807,4863,4922,4978,5039,5103,5170,5234,5303,5375,5450,5522],"referencedDeclaration":3082,"type":"function (string memory,string memory[] memory,uint256) returns (bytes32)","value":"oraclize_query"},"id":4195,"name":"Identifier","src":"25535:14:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4132,"type":"string memory","value":"datasource"},"id":4196,"name":"Identifier","src":"25550:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4148,"type":"string memory[] memory","value":"dynargs"},"id":4197,"name":"Identifier","src":"25562:7:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4138,"type":"uint256","value":"gaslimit"},"id":4198,"name":"Identifier","src":"25571:8:5"}],"id":4199,"name":"FunctionCall","src":"25535:45:5"}],"id":4200,"name":"Return","src":"25528:52:5"}],"id":4201,"name":"Block","src":"25317:270:5"}],"id":4202,"name":"FunctionDefinition","src":"25201:386:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"datasource","scope":4249,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":4203,"name":"ElementaryTypeName","src":"25616:6:5"}],"id":4204,"name":"VariableDeclaration","src":"25616:17:5"},{"attributes":{"constant":false,"name":"argN","scope":4249,"stateVariable":false,"storageLocation":"default","type":"bytes[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"bytes[]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4205,"name":"ElementaryTypeName","src":"25635:5:5"}],"id":4206,"name":"ArrayTypeName","src":"25635:7:5"}],"id":4207,"name":"VariableDeclaration","src":"25635:12:5"}],"id":4208,"name":"ParameterList","src":"25615:33:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":4249,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":4211,"name":"ElementaryTypeName","src":"25679:7:5"}],"id":4212,"name":"VariableDeclaration","src":"25679:10:5"}],"id":4213,"name":"ParameterList","src":"25678:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":4209,"name":"Identifier","src":"25649:11:5"}],"id":4210,"name":"ModifierInvocation","src":"25649:11:5"},{"children":[{"attributes":{"assignments":[4215]},"children":[{"attributes":{"constant":false,"name":"price","scope":4249,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4214,"name":"ElementaryTypeName","src":"25700:4:5"}],"id":4215,"name":"VariableDeclaration","src":"25700:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"getPrice","referencedDeclaration":1634,"type":"function (string memory) external returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2257,"type":"contract OraclizeI","value":"oraclize"},"id":4216,"name":"Identifier","src":"25713:8:5"}],"id":4217,"name":"MemberAccess","src":"25713:17:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4204,"type":"string memory","value":"datasource"},"id":4218,"name":"Identifier","src":"25731:10:5"}],"id":4219,"name":"FunctionCall","src":"25713:29:5"}],"id":4220,"name":"VariableDeclarationStatement","src":"25700:42:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4215,"type":"uint256","value":"price"},"id":4221,"name":"Identifier","src":"25756:5:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":"ether","token":"number","type":"int_const 1000000000000000000","value":"1"},"id":4222,"name":"Literal","src":"25764:7:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"gasprice","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":12028,"type":"tx","value":"tx"},"id":4223,"name":"Identifier","src":"25774:2:5"}],"id":4224,"name":"MemberAccess","src":"25774:11:5"},{"attributes":{"argumentTypes":null,"hexvalue":"323030303030","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 200000","value":"200000"},"id":4225,"name":"Literal","src":"25786:6:5"}],"id":4226,"name":"BinaryOperation","src":"25774:18:5"}],"id":4227,"name":"BinaryOperation","src":"25764:28:5"}],"id":4228,"name":"BinaryOperation","src":"25756:36:5"},{"attributes":{"functionReturnParameters":4213},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4229,"name":"Literal","src":"25801:1:5"}],"id":4230,"name":"Return","src":"25794:8:5"}],"id":4231,"name":"IfStatement","src":"25752:50:5"},{"attributes":{"assignments":[4233]},"children":[{"attributes":{"constant":false,"name":"args","scope":4249,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4232,"name":"ElementaryTypeName","src":"25839:5:5"}],"id":4233,"name":"VariableDeclaration","src":"25839:17:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes_memory_$dyn_memory_ptr","typeString":"bytes memory[] memory"}],"overloadedDeclarations":[null],"referencedDeclaration":6502,"type":"function (bytes memory[] memory) pure returns (bytes memory)","value":"ba2cbor"},"id":4234,"name":"Identifier","src":"25859:7:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4207,"type":"bytes memory[] memory","value":"argN"},"id":4235,"name":"Identifier","src":"25867:4:5"}],"id":4236,"name":"FunctionCall","src":"25859:13:5"}],"id":4237,"name":"VariableDeclarationStatement","src":"25839:33:5"},{"attributes":{"functionReturnParameters":4213},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"function (uint256,string memory,bytes memory) payable external returns (bytes32)","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"value","referencedDeclaration":null,"type":"function (uint256) returns (function (uint256,string memory,bytes memory) payable external returns (bytes32))"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"queryN","referencedDeclaration":1614,"type":"function (uint256,string memory,bytes memory) payable external returns (bytes32)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2257,"type":"contract OraclizeI","value":"oraclize"},"id":4238,"name":"Identifier","src":"25889:8:5"}],"id":4239,"name":"MemberAccess","src":"25889:15:5"}],"id":4240,"name":"MemberAccess","src":"25889:21:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4215,"type":"uint256","value":"price"},"id":4241,"name":"Identifier","src":"25911:5:5"}],"id":4242,"name":"FunctionCall","src":"25889:28:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4243,"name":"Literal","src":"25918:1:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4204,"type":"string memory","value":"datasource"},"id":4244,"name":"Identifier","src":"25921:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4233,"type":"bytes memory","value":"args"},"id":4245,"name":"Identifier","src":"25933:4:5"}],"id":4246,"name":"FunctionCall","src":"25889:49:5"}],"id":4247,"name":"Return","src":"25882:56:5"}],"id":4248,"name":"Block","src":"25690:255:5"}],"id":4249,"name":"FunctionDefinition","src":"25592:353:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"timestamp","scope":4298,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4250,"name":"ElementaryTypeName","src":"25974:4:5"}],"id":4251,"name":"VariableDeclaration","src":"25974:14:5"},{"attributes":{"constant":false,"name":"datasource","scope":4298,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":4252,"name":"ElementaryTypeName","src":"25990:6:5"}],"id":4253,"name":"VariableDeclaration","src":"25990:17:5"},{"attributes":{"constant":false,"name":"argN","scope":4298,"stateVariable":false,"storageLocation":"default","type":"bytes[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"bytes[]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4254,"name":"ElementaryTypeName","src":"26009:5:5"}],"id":4255,"name":"ArrayTypeName","src":"26009:7:5"}],"id":4256,"name":"VariableDeclaration","src":"26009:12:5"}],"id":4257,"name":"ParameterList","src":"25973:49:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":4298,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":4260,"name":"ElementaryTypeName","src":"26053:7:5"}],"id":4261,"name":"VariableDeclaration","src":"26053:10:5"}],"id":4262,"name":"ParameterList","src":"26052:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":4258,"name":"Identifier","src":"26023:11:5"}],"id":4259,"name":"ModifierInvocation","src":"26023:11:5"},{"children":[{"attributes":{"assignments":[4264]},"children":[{"attributes":{"constant":false,"name":"price","scope":4298,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4263,"name":"ElementaryTypeName","src":"26074:4:5"}],"id":4264,"name":"VariableDeclaration","src":"26074:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"getPrice","referencedDeclaration":1634,"type":"function (string memory) external returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2257,"type":"contract OraclizeI","value":"oraclize"},"id":4265,"name":"Identifier","src":"26087:8:5"}],"id":4266,"name":"MemberAccess","src":"26087:17:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4253,"type":"string memory","value":"datasource"},"id":4267,"name":"Identifier","src":"26105:10:5"}],"id":4268,"name":"FunctionCall","src":"26087:29:5"}],"id":4269,"name":"VariableDeclarationStatement","src":"26074:42:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4264,"type":"uint256","value":"price"},"id":4270,"name":"Identifier","src":"26130:5:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":"ether","token":"number","type":"int_const 1000000000000000000","value":"1"},"id":4271,"name":"Literal","src":"26138:7:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"gasprice","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":12028,"type":"tx","value":"tx"},"id":4272,"name":"Identifier","src":"26148:2:5"}],"id":4273,"name":"MemberAccess","src":"26148:11:5"},{"attributes":{"argumentTypes":null,"hexvalue":"323030303030","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 200000","value":"200000"},"id":4274,"name":"Literal","src":"26160:6:5"}],"id":4275,"name":"BinaryOperation","src":"26148:18:5"}],"id":4276,"name":"BinaryOperation","src":"26138:28:5"}],"id":4277,"name":"BinaryOperation","src":"26130:36:5"},{"attributes":{"functionReturnParameters":4262},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4278,"name":"Literal","src":"26175:1:5"}],"id":4279,"name":"Return","src":"26168:8:5"}],"id":4280,"name":"IfStatement","src":"26126:50:5"},{"attributes":{"assignments":[4282]},"children":[{"attributes":{"constant":false,"name":"args","scope":4298,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4281,"name":"ElementaryTypeName","src":"26213:5:5"}],"id":4282,"name":"VariableDeclaration","src":"26213:17:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes_memory_$dyn_memory_ptr","typeString":"bytes memory[] memory"}],"overloadedDeclarations":[null],"referencedDeclaration":6502,"type":"function (bytes memory[] memory) pure returns (bytes memory)","value":"ba2cbor"},"id":4283,"name":"Identifier","src":"26233:7:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4256,"type":"bytes memory[] memory","value":"argN"},"id":4284,"name":"Identifier","src":"26241:4:5"}],"id":4285,"name":"FunctionCall","src":"26233:13:5"}],"id":4286,"name":"VariableDeclarationStatement","src":"26213:33:5"},{"attributes":{"functionReturnParameters":4262},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"function (uint256,string memory,bytes memory) payable external returns (bytes32)","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"value","referencedDeclaration":null,"type":"function (uint256) returns (function (uint256,string memory,bytes memory) payable external returns (bytes32))"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"queryN","referencedDeclaration":1614,"type":"function (uint256,string memory,bytes memory) payable external returns (bytes32)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2257,"type":"contract OraclizeI","value":"oraclize"},"id":4287,"name":"Identifier","src":"26263:8:5"}],"id":4288,"name":"MemberAccess","src":"26263:15:5"}],"id":4289,"name":"MemberAccess","src":"26263:21:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4264,"type":"uint256","value":"price"},"id":4290,"name":"Identifier","src":"26285:5:5"}],"id":4291,"name":"FunctionCall","src":"26263:28:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4251,"type":"uint256","value":"timestamp"},"id":4292,"name":"Identifier","src":"26292:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4253,"type":"string memory","value":"datasource"},"id":4293,"name":"Identifier","src":"26303:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4282,"type":"bytes memory","value":"args"},"id":4294,"name":"Identifier","src":"26315:4:5"}],"id":4295,"name":"FunctionCall","src":"26263:57:5"}],"id":4296,"name":"Return","src":"26256:64:5"}],"id":4297,"name":"Block","src":"26064:263:5"}],"id":4298,"name":"FunctionDefinition","src":"25950:377:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"timestamp","scope":4351,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4299,"name":"ElementaryTypeName","src":"26356:4:5"}],"id":4300,"name":"VariableDeclaration","src":"26356:14:5"},{"attributes":{"constant":false,"name":"datasource","scope":4351,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":4301,"name":"ElementaryTypeName","src":"26372:6:5"}],"id":4302,"name":"VariableDeclaration","src":"26372:17:5"},{"attributes":{"constant":false,"name":"argN","scope":4351,"stateVariable":false,"storageLocation":"default","type":"bytes[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"bytes[]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4303,"name":"ElementaryTypeName","src":"26391:5:5"}],"id":4304,"name":"ArrayTypeName","src":"26391:7:5"}],"id":4305,"name":"VariableDeclaration","src":"26391:12:5"},{"attributes":{"constant":false,"name":"gaslimit","scope":4351,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4306,"name":"ElementaryTypeName","src":"26405:4:5"}],"id":4307,"name":"VariableDeclaration","src":"26405:13:5"}],"id":4308,"name":"ParameterList","src":"26355:64:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":4351,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":4311,"name":"ElementaryTypeName","src":"26450:7:5"}],"id":4312,"name":"VariableDeclaration","src":"26450:10:5"}],"id":4313,"name":"ParameterList","src":"26449:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":4309,"name":"Identifier","src":"26420:11:5"}],"id":4310,"name":"ModifierInvocation","src":"26420:11:5"},{"children":[{"attributes":{"assignments":[4315]},"children":[{"attributes":{"constant":false,"name":"price","scope":4351,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4314,"name":"ElementaryTypeName","src":"26471:4:5"}],"id":4315,"name":"VariableDeclaration","src":"26471:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"getPrice","referencedDeclaration":1643,"type":"function (string memory,uint256) external returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2257,"type":"contract OraclizeI","value":"oraclize"},"id":4316,"name":"Identifier","src":"26484:8:5"}],"id":4317,"name":"MemberAccess","src":"26484:17:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4302,"type":"string memory","value":"datasource"},"id":4318,"name":"Identifier","src":"26502:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4307,"type":"uint256","value":"gaslimit"},"id":4319,"name":"Identifier","src":"26514:8:5"}],"id":4320,"name":"FunctionCall","src":"26484:39:5"}],"id":4321,"name":"VariableDeclarationStatement","src":"26471:52:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4315,"type":"uint256","value":"price"},"id":4322,"name":"Identifier","src":"26537:5:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":"ether","token":"number","type":"int_const 1000000000000000000","value":"1"},"id":4323,"name":"Literal","src":"26545:7:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"gasprice","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":12028,"type":"tx","value":"tx"},"id":4324,"name":"Identifier","src":"26555:2:5"}],"id":4325,"name":"MemberAccess","src":"26555:11:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4307,"type":"uint256","value":"gaslimit"},"id":4326,"name":"Identifier","src":"26567:8:5"}],"id":4327,"name":"BinaryOperation","src":"26555:20:5"}],"id":4328,"name":"BinaryOperation","src":"26545:30:5"}],"id":4329,"name":"BinaryOperation","src":"26537:38:5"},{"attributes":{"functionReturnParameters":4313},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4330,"name":"Literal","src":"26584:1:5"}],"id":4331,"name":"Return","src":"26577:8:5"}],"id":4332,"name":"IfStatement","src":"26533:52:5"},{"attributes":{"assignments":[4334]},"children":[{"attributes":{"constant":false,"name":"args","scope":4351,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4333,"name":"ElementaryTypeName","src":"26622:5:5"}],"id":4334,"name":"VariableDeclaration","src":"26622:17:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes_memory_$dyn_memory_ptr","typeString":"bytes memory[] memory"}],"overloadedDeclarations":[null],"referencedDeclaration":6502,"type":"function (bytes memory[] memory) pure returns (bytes memory)","value":"ba2cbor"},"id":4335,"name":"Identifier","src":"26642:7:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4305,"type":"bytes memory[] memory","value":"argN"},"id":4336,"name":"Identifier","src":"26650:4:5"}],"id":4337,"name":"FunctionCall","src":"26642:13:5"}],"id":4338,"name":"VariableDeclarationStatement","src":"26622:33:5"},{"attributes":{"functionReturnParameters":4313},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"function (uint256,string memory,bytes memory,uint256) payable external returns (bytes32)","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"value","referencedDeclaration":null,"type":"function (uint256) returns (function (uint256,string memory,bytes memory,uint256) payable external returns (bytes32))"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"queryN_withGasLimit","referencedDeclaration":1627,"type":"function (uint256,string memory,bytes memory,uint256) payable external returns (bytes32)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2257,"type":"contract OraclizeI","value":"oraclize"},"id":4339,"name":"Identifier","src":"26672:8:5"}],"id":4340,"name":"MemberAccess","src":"26672:28:5"}],"id":4341,"name":"MemberAccess","src":"26672:34:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4315,"type":"uint256","value":"price"},"id":4342,"name":"Identifier","src":"26707:5:5"}],"id":4343,"name":"FunctionCall","src":"26672:41:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4300,"type":"uint256","value":"timestamp"},"id":4344,"name":"Identifier","src":"26714:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4302,"type":"string memory","value":"datasource"},"id":4345,"name":"Identifier","src":"26725:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4334,"type":"bytes memory","value":"args"},"id":4346,"name":"Identifier","src":"26737:4:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4307,"type":"uint256","value":"gaslimit"},"id":4347,"name":"Identifier","src":"26743:8:5"}],"id":4348,"name":"FunctionCall","src":"26672:80:5"}],"id":4349,"name":"Return","src":"26665:87:5"}],"id":4350,"name":"Block","src":"26461:298:5"}],"id":4351,"name":"FunctionDefinition","src":"26332:427:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"datasource","scope":4402,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":4352,"name":"ElementaryTypeName","src":"26788:6:5"}],"id":4353,"name":"VariableDeclaration","src":"26788:17:5"},{"attributes":{"constant":false,"name":"argN","scope":4402,"stateVariable":false,"storageLocation":"default","type":"bytes[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"bytes[]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4354,"name":"ElementaryTypeName","src":"26807:5:5"}],"id":4355,"name":"ArrayTypeName","src":"26807:7:5"}],"id":4356,"name":"VariableDeclaration","src":"26807:12:5"},{"attributes":{"constant":false,"name":"gaslimit","scope":4402,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4357,"name":"ElementaryTypeName","src":"26821:4:5"}],"id":4358,"name":"VariableDeclaration","src":"26821:13:5"}],"id":4359,"name":"ParameterList","src":"26787:48:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":4402,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":4362,"name":"ElementaryTypeName","src":"26866:7:5"}],"id":4363,"name":"VariableDeclaration","src":"26866:10:5"}],"id":4364,"name":"ParameterList","src":"26865:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":4360,"name":"Identifier","src":"26836:11:5"}],"id":4361,"name":"ModifierInvocation","src":"26836:11:5"},{"children":[{"attributes":{"assignments":[4366]},"children":[{"attributes":{"constant":false,"name":"price","scope":4402,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4365,"name":"ElementaryTypeName","src":"26887:4:5"}],"id":4366,"name":"VariableDeclaration","src":"26887:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"getPrice","referencedDeclaration":1643,"type":"function (string memory,uint256) external returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2257,"type":"contract OraclizeI","value":"oraclize"},"id":4367,"name":"Identifier","src":"26900:8:5"}],"id":4368,"name":"MemberAccess","src":"26900:17:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4353,"type":"string memory","value":"datasource"},"id":4369,"name":"Identifier","src":"26918:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4358,"type":"uint256","value":"gaslimit"},"id":4370,"name":"Identifier","src":"26930:8:5"}],"id":4371,"name":"FunctionCall","src":"26900:39:5"}],"id":4372,"name":"VariableDeclarationStatement","src":"26887:52:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4366,"type":"uint256","value":"price"},"id":4373,"name":"Identifier","src":"26953:5:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":"ether","token":"number","type":"int_const 1000000000000000000","value":"1"},"id":4374,"name":"Literal","src":"26961:7:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"gasprice","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":12028,"type":"tx","value":"tx"},"id":4375,"name":"Identifier","src":"26971:2:5"}],"id":4376,"name":"MemberAccess","src":"26971:11:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4358,"type":"uint256","value":"gaslimit"},"id":4377,"name":"Identifier","src":"26983:8:5"}],"id":4378,"name":"BinaryOperation","src":"26971:20:5"}],"id":4379,"name":"BinaryOperation","src":"26961:30:5"}],"id":4380,"name":"BinaryOperation","src":"26953:38:5"},{"attributes":{"functionReturnParameters":4364},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4381,"name":"Literal","src":"27000:1:5"}],"id":4382,"name":"Return","src":"26993:8:5"}],"id":4383,"name":"IfStatement","src":"26949:52:5"},{"attributes":{"assignments":[4385]},"children":[{"attributes":{"constant":false,"name":"args","scope":4402,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4384,"name":"ElementaryTypeName","src":"27038:5:5"}],"id":4385,"name":"VariableDeclaration","src":"27038:17:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes_memory_$dyn_memory_ptr","typeString":"bytes memory[] memory"}],"overloadedDeclarations":[null],"referencedDeclaration":6502,"type":"function (bytes memory[] memory) pure returns (bytes memory)","value":"ba2cbor"},"id":4386,"name":"Identifier","src":"27058:7:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4356,"type":"bytes memory[] memory","value":"argN"},"id":4387,"name":"Identifier","src":"27066:4:5"}],"id":4388,"name":"FunctionCall","src":"27058:13:5"}],"id":4389,"name":"VariableDeclarationStatement","src":"27038:33:5"},{"attributes":{"functionReturnParameters":4364},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"function (uint256,string memory,bytes memory,uint256) payable external returns (bytes32)","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"value","referencedDeclaration":null,"type":"function (uint256) returns (function (uint256,string memory,bytes memory,uint256) payable external returns (bytes32))"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"queryN_withGasLimit","referencedDeclaration":1627,"type":"function (uint256,string memory,bytes memory,uint256) payable external returns (bytes32)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2257,"type":"contract OraclizeI","value":"oraclize"},"id":4390,"name":"Identifier","src":"27088:8:5"}],"id":4391,"name":"MemberAccess","src":"27088:28:5"}],"id":4392,"name":"MemberAccess","src":"27088:34:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4366,"type":"uint256","value":"price"},"id":4393,"name":"Identifier","src":"27123:5:5"}],"id":4394,"name":"FunctionCall","src":"27088:41:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4395,"name":"Literal","src":"27130:1:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4353,"type":"string memory","value":"datasource"},"id":4396,"name":"Identifier","src":"27133:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4385,"type":"bytes memory","value":"args"},"id":4397,"name":"Identifier","src":"27145:4:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4358,"type":"uint256","value":"gaslimit"},"id":4398,"name":"Identifier","src":"27151:8:5"}],"id":4399,"name":"FunctionCall","src":"27088:72:5"}],"id":4400,"name":"Return","src":"27081:79:5"}],"id":4401,"name":"Block","src":"26877:290:5"}],"id":4402,"name":"FunctionDefinition","src":"26764:403:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"datasource","scope":4439,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":4403,"name":"ElementaryTypeName","src":"27196:6:5"}],"id":4404,"name":"VariableDeclaration","src":"27196:17:5"},{"attributes":{"constant":false,"name":"args","scope":4439,"stateVariable":false,"storageLocation":"default","type":"bytes[1]","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"bytes[1]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4405,"name":"ElementaryTypeName","src":"27215:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"subdenomination":null,"token":"number","type":null,"value":"1"},"id":4406,"name":"Literal","src":"27221:1:5"}],"id":4407,"name":"ArrayTypeName","src":"27215:8:5"}],"id":4408,"name":"VariableDeclaration","src":"27215:13:5"}],"id":4409,"name":"ParameterList","src":"27195:34:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":4439,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":4412,"name":"ElementaryTypeName","src":"27260:7:5"}],"id":4413,"name":"VariableDeclaration","src":"27260:10:5"}],"id":4414,"name":"ParameterList","src":"27259:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":4410,"name":"Identifier","src":"27230:11:5"}],"id":4411,"name":"ModifierInvocation","src":"27230:11:5"},{"children":[{"attributes":{"assignments":[4418]},"children":[{"attributes":{"constant":false,"name":"dynargs","scope":4439,"stateVariable":false,"storageLocation":"memory","type":"bytes[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"bytes[]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4416,"name":"ElementaryTypeName","src":"27282:5:5"}],"id":4417,"name":"ArrayTypeName","src":"27282:7:5"}],"id":4418,"name":"VariableDeclaration","src":"27282:22:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory[] memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (bytes memory[] memory)"},"children":[{"attributes":{"length":null,"type":"bytes[]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4419,"name":"ElementaryTypeName","src":"27311:5:5"}],"id":4420,"name":"ArrayTypeName","src":"27311:7:5"}],"id":4421,"name":"NewExpression","src":"27307:11:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":4422,"name":"Literal","src":"27319:1:5"}],"id":4423,"name":"FunctionCall","src":"27307:14:5"}],"id":4424,"name":"VariableDeclarationStatement","src":"27282:39:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4418,"type":"bytes memory[] memory","value":"dynargs"},"id":4425,"name":"Identifier","src":"27331:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4426,"name":"Literal","src":"27339:1:5"}],"id":4427,"name":"IndexAccess","src":"27331:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4408,"type":"bytes memory[1] memory","value":"args"},"id":4428,"name":"Identifier","src":"27344:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4429,"name":"Literal","src":"27349:1:5"}],"id":4430,"name":"IndexAccess","src":"27344:7:5"}],"id":4431,"name":"Assignment","src":"27331:20:5"}],"id":4432,"name":"ExpressionStatement","src":"27331:20:5"},{"attributes":{"functionReturnParameters":4414},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_bytes_memory_$dyn_memory_ptr","typeString":"bytes memory[] memory"}],"overloadedDeclarations":[2566,2608,2654,2698,2741,2786,2835,2882,2929,2978,3031,3082,3119,3159,3202,3242,3287,3335,3386,3434,3487,3543,3602,3658,3719,3783,3850,3914,3983,4055,4130,4202,4249,4298,4351,4402,4439,4479,4522,4562,4607,4655,4706,4754,4807,4863,4922,4978,5039,5103,5170,5234,5303,5375,5450,5522],"referencedDeclaration":4249,"type":"function (string memory,bytes memory[] memory) returns (bytes32)","value":"oraclize_query"},"id":4433,"name":"Identifier","src":"27368:14:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4404,"type":"string memory","value":"datasource"},"id":4434,"name":"Identifier","src":"27383:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4418,"type":"bytes memory[] memory","value":"dynargs"},"id":4435,"name":"Identifier","src":"27395:7:5"}],"id":4436,"name":"FunctionCall","src":"27368:35:5"}],"id":4437,"name":"Return","src":"27361:42:5"}],"id":4438,"name":"Block","src":"27272:138:5"}],"id":4439,"name":"FunctionDefinition","src":"27172:238:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"timestamp","scope":4479,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4440,"name":"ElementaryTypeName","src":"27439:4:5"}],"id":4441,"name":"VariableDeclaration","src":"27439:14:5"},{"attributes":{"constant":false,"name":"datasource","scope":4479,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":4442,"name":"ElementaryTypeName","src":"27455:6:5"}],"id":4443,"name":"VariableDeclaration","src":"27455:17:5"},{"attributes":{"constant":false,"name":"args","scope":4479,"stateVariable":false,"storageLocation":"default","type":"bytes[1]","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"bytes[1]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4444,"name":"ElementaryTypeName","src":"27474:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"subdenomination":null,"token":"number","type":null,"value":"1"},"id":4445,"name":"Literal","src":"27480:1:5"}],"id":4446,"name":"ArrayTypeName","src":"27474:8:5"}],"id":4447,"name":"VariableDeclaration","src":"27474:13:5"}],"id":4448,"name":"ParameterList","src":"27438:50:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":4479,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":4451,"name":"ElementaryTypeName","src":"27519:7:5"}],"id":4452,"name":"VariableDeclaration","src":"27519:10:5"}],"id":4453,"name":"ParameterList","src":"27518:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":4449,"name":"Identifier","src":"27489:11:5"}],"id":4450,"name":"ModifierInvocation","src":"27489:11:5"},{"children":[{"attributes":{"assignments":[4457]},"children":[{"attributes":{"constant":false,"name":"dynargs","scope":4479,"stateVariable":false,"storageLocation":"memory","type":"bytes[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"bytes[]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4455,"name":"ElementaryTypeName","src":"27541:5:5"}],"id":4456,"name":"ArrayTypeName","src":"27541:7:5"}],"id":4457,"name":"VariableDeclaration","src":"27541:22:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory[] memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (bytes memory[] memory)"},"children":[{"attributes":{"length":null,"type":"bytes[]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4458,"name":"ElementaryTypeName","src":"27570:5:5"}],"id":4459,"name":"ArrayTypeName","src":"27570:7:5"}],"id":4460,"name":"NewExpression","src":"27566:11:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":4461,"name":"Literal","src":"27578:1:5"}],"id":4462,"name":"FunctionCall","src":"27566:14:5"}],"id":4463,"name":"VariableDeclarationStatement","src":"27541:39:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4457,"type":"bytes memory[] memory","value":"dynargs"},"id":4464,"name":"Identifier","src":"27590:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4465,"name":"Literal","src":"27598:1:5"}],"id":4466,"name":"IndexAccess","src":"27590:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4447,"type":"bytes memory[1] memory","value":"args"},"id":4467,"name":"Identifier","src":"27603:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4468,"name":"Literal","src":"27608:1:5"}],"id":4469,"name":"IndexAccess","src":"27603:7:5"}],"id":4470,"name":"Assignment","src":"27590:20:5"}],"id":4471,"name":"ExpressionStatement","src":"27590:20:5"},{"attributes":{"functionReturnParameters":4453},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_bytes_memory_$dyn_memory_ptr","typeString":"bytes memory[] memory"}],"overloadedDeclarations":[2566,2608,2654,2698,2741,2786,2835,2882,2929,2978,3031,3082,3119,3159,3202,3242,3287,3335,3386,3434,3487,3543,3602,3658,3719,3783,3850,3914,3983,4055,4130,4202,4249,4298,4351,4402,4439,4479,4522,4562,4607,4655,4706,4754,4807,4863,4922,4978,5039,5103,5170,5234,5303,5375,5450,5522],"referencedDeclaration":4298,"type":"function (uint256,string memory,bytes memory[] memory) returns (bytes32)","value":"oraclize_query"},"id":4472,"name":"Identifier","src":"27627:14:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4441,"type":"uint256","value":"timestamp"},"id":4473,"name":"Identifier","src":"27642:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4443,"type":"string memory","value":"datasource"},"id":4474,"name":"Identifier","src":"27653:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4457,"type":"bytes memory[] memory","value":"dynargs"},"id":4475,"name":"Identifier","src":"27665:7:5"}],"id":4476,"name":"FunctionCall","src":"27627:46:5"}],"id":4477,"name":"Return","src":"27620:53:5"}],"id":4478,"name":"Block","src":"27531:149:5"}],"id":4479,"name":"FunctionDefinition","src":"27415:265:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"timestamp","scope":4522,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4480,"name":"ElementaryTypeName","src":"27709:4:5"}],"id":4481,"name":"VariableDeclaration","src":"27709:14:5"},{"attributes":{"constant":false,"name":"datasource","scope":4522,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":4482,"name":"ElementaryTypeName","src":"27725:6:5"}],"id":4483,"name":"VariableDeclaration","src":"27725:17:5"},{"attributes":{"constant":false,"name":"args","scope":4522,"stateVariable":false,"storageLocation":"default","type":"bytes[1]","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"bytes[1]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4484,"name":"ElementaryTypeName","src":"27744:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"subdenomination":null,"token":"number","type":null,"value":"1"},"id":4485,"name":"Literal","src":"27750:1:5"}],"id":4486,"name":"ArrayTypeName","src":"27744:8:5"}],"id":4487,"name":"VariableDeclaration","src":"27744:13:5"},{"attributes":{"constant":false,"name":"gaslimit","scope":4522,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4488,"name":"ElementaryTypeName","src":"27759:4:5"}],"id":4489,"name":"VariableDeclaration","src":"27759:13:5"}],"id":4490,"name":"ParameterList","src":"27708:65:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":4522,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":4493,"name":"ElementaryTypeName","src":"27804:7:5"}],"id":4494,"name":"VariableDeclaration","src":"27804:10:5"}],"id":4495,"name":"ParameterList","src":"27803:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":4491,"name":"Identifier","src":"27774:11:5"}],"id":4492,"name":"ModifierInvocation","src":"27774:11:5"},{"children":[{"attributes":{"assignments":[4499]},"children":[{"attributes":{"constant":false,"name":"dynargs","scope":4522,"stateVariable":false,"storageLocation":"memory","type":"bytes[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"bytes[]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4497,"name":"ElementaryTypeName","src":"27826:5:5"}],"id":4498,"name":"ArrayTypeName","src":"27826:7:5"}],"id":4499,"name":"VariableDeclaration","src":"27826:22:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory[] memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (bytes memory[] memory)"},"children":[{"attributes":{"length":null,"type":"bytes[]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4500,"name":"ElementaryTypeName","src":"27855:5:5"}],"id":4501,"name":"ArrayTypeName","src":"27855:7:5"}],"id":4502,"name":"NewExpression","src":"27851:11:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":4503,"name":"Literal","src":"27863:1:5"}],"id":4504,"name":"FunctionCall","src":"27851:14:5"}],"id":4505,"name":"VariableDeclarationStatement","src":"27826:39:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4499,"type":"bytes memory[] memory","value":"dynargs"},"id":4506,"name":"Identifier","src":"27875:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4507,"name":"Literal","src":"27883:1:5"}],"id":4508,"name":"IndexAccess","src":"27875:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4487,"type":"bytes memory[1] memory","value":"args"},"id":4509,"name":"Identifier","src":"27888:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4510,"name":"Literal","src":"27893:1:5"}],"id":4511,"name":"IndexAccess","src":"27888:7:5"}],"id":4512,"name":"Assignment","src":"27875:20:5"}],"id":4513,"name":"ExpressionStatement","src":"27875:20:5"},{"attributes":{"functionReturnParameters":4495},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_bytes_memory_$dyn_memory_ptr","typeString":"bytes memory[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[2566,2608,2654,2698,2741,2786,2835,2882,2929,2978,3031,3082,3119,3159,3202,3242,3287,3335,3386,3434,3487,3543,3602,3658,3719,3783,3850,3914,3983,4055,4130,4202,4249,4298,4351,4402,4439,4479,4522,4562,4607,4655,4706,4754,4807,4863,4922,4978,5039,5103,5170,5234,5303,5375,5450,5522],"referencedDeclaration":4351,"type":"function (uint256,string memory,bytes memory[] memory,uint256) returns (bytes32)","value":"oraclize_query"},"id":4514,"name":"Identifier","src":"27912:14:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4481,"type":"uint256","value":"timestamp"},"id":4515,"name":"Identifier","src":"27927:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4483,"type":"string memory","value":"datasource"},"id":4516,"name":"Identifier","src":"27938:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4499,"type":"bytes memory[] memory","value":"dynargs"},"id":4517,"name":"Identifier","src":"27950:7:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4489,"type":"uint256","value":"gaslimit"},"id":4518,"name":"Identifier","src":"27959:8:5"}],"id":4519,"name":"FunctionCall","src":"27912:56:5"}],"id":4520,"name":"Return","src":"27905:63:5"}],"id":4521,"name":"Block","src":"27816:159:5"}],"id":4522,"name":"FunctionDefinition","src":"27685:290:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"datasource","scope":4562,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":4523,"name":"ElementaryTypeName","src":"28004:6:5"}],"id":4524,"name":"VariableDeclaration","src":"28004:17:5"},{"attributes":{"constant":false,"name":"args","scope":4562,"stateVariable":false,"storageLocation":"default","type":"bytes[1]","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"bytes[1]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4525,"name":"ElementaryTypeName","src":"28023:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"subdenomination":null,"token":"number","type":null,"value":"1"},"id":4526,"name":"Literal","src":"28029:1:5"}],"id":4527,"name":"ArrayTypeName","src":"28023:8:5"}],"id":4528,"name":"VariableDeclaration","src":"28023:13:5"},{"attributes":{"constant":false,"name":"gaslimit","scope":4562,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4529,"name":"ElementaryTypeName","src":"28038:4:5"}],"id":4530,"name":"VariableDeclaration","src":"28038:13:5"}],"id":4531,"name":"ParameterList","src":"28003:49:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":4562,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":4534,"name":"ElementaryTypeName","src":"28083:7:5"}],"id":4535,"name":"VariableDeclaration","src":"28083:10:5"}],"id":4536,"name":"ParameterList","src":"28082:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":4532,"name":"Identifier","src":"28053:11:5"}],"id":4533,"name":"ModifierInvocation","src":"28053:11:5"},{"children":[{"attributes":{"assignments":[4540]},"children":[{"attributes":{"constant":false,"name":"dynargs","scope":4562,"stateVariable":false,"storageLocation":"memory","type":"bytes[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"bytes[]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4538,"name":"ElementaryTypeName","src":"28105:5:5"}],"id":4539,"name":"ArrayTypeName","src":"28105:7:5"}],"id":4540,"name":"VariableDeclaration","src":"28105:22:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory[] memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (bytes memory[] memory)"},"children":[{"attributes":{"length":null,"type":"bytes[]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4541,"name":"ElementaryTypeName","src":"28134:5:5"}],"id":4542,"name":"ArrayTypeName","src":"28134:7:5"}],"id":4543,"name":"NewExpression","src":"28130:11:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":4544,"name":"Literal","src":"28142:1:5"}],"id":4545,"name":"FunctionCall","src":"28130:14:5"}],"id":4546,"name":"VariableDeclarationStatement","src":"28105:39:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4540,"type":"bytes memory[] memory","value":"dynargs"},"id":4547,"name":"Identifier","src":"28154:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4548,"name":"Literal","src":"28162:1:5"}],"id":4549,"name":"IndexAccess","src":"28154:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4528,"type":"bytes memory[1] memory","value":"args"},"id":4550,"name":"Identifier","src":"28167:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4551,"name":"Literal","src":"28172:1:5"}],"id":4552,"name":"IndexAccess","src":"28167:7:5"}],"id":4553,"name":"Assignment","src":"28154:20:5"}],"id":4554,"name":"ExpressionStatement","src":"28154:20:5"},{"attributes":{"functionReturnParameters":4536},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_bytes_memory_$dyn_memory_ptr","typeString":"bytes memory[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[2566,2608,2654,2698,2741,2786,2835,2882,2929,2978,3031,3082,3119,3159,3202,3242,3287,3335,3386,3434,3487,3543,3602,3658,3719,3783,3850,3914,3983,4055,4130,4202,4249,4298,4351,4402,4439,4479,4522,4562,4607,4655,4706,4754,4807,4863,4922,4978,5039,5103,5170,5234,5303,5375,5450,5522],"referencedDeclaration":4402,"type":"function (string memory,bytes memory[] memory,uint256) returns (bytes32)","value":"oraclize_query"},"id":4555,"name":"Identifier","src":"28191:14:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4524,"type":"string memory","value":"datasource"},"id":4556,"name":"Identifier","src":"28206:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4540,"type":"bytes memory[] memory","value":"dynargs"},"id":4557,"name":"Identifier","src":"28218:7:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4530,"type":"uint256","value":"gaslimit"},"id":4558,"name":"Identifier","src":"28227:8:5"}],"id":4559,"name":"FunctionCall","src":"28191:45:5"}],"id":4560,"name":"Return","src":"28184:52:5"}],"id":4561,"name":"Block","src":"28095:148:5"}],"id":4562,"name":"FunctionDefinition","src":"27980:263:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"datasource","scope":4607,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":4563,"name":"ElementaryTypeName","src":"28273:6:5"}],"id":4564,"name":"VariableDeclaration","src":"28273:17:5"},{"attributes":{"constant":false,"name":"args","scope":4607,"stateVariable":false,"storageLocation":"default","type":"bytes[2]","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"bytes[2]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4565,"name":"ElementaryTypeName","src":"28292:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"subdenomination":null,"token":"number","type":null,"value":"2"},"id":4566,"name":"Literal","src":"28298:1:5"}],"id":4567,"name":"ArrayTypeName","src":"28292:8:5"}],"id":4568,"name":"VariableDeclaration","src":"28292:13:5"}],"id":4569,"name":"ParameterList","src":"28272:34:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":4607,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":4572,"name":"ElementaryTypeName","src":"28337:7:5"}],"id":4573,"name":"VariableDeclaration","src":"28337:10:5"}],"id":4574,"name":"ParameterList","src":"28336:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":4570,"name":"Identifier","src":"28307:11:5"}],"id":4571,"name":"ModifierInvocation","src":"28307:11:5"},{"children":[{"attributes":{"assignments":[4578]},"children":[{"attributes":{"constant":false,"name":"dynargs","scope":4607,"stateVariable":false,"storageLocation":"memory","type":"bytes[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"bytes[]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4576,"name":"ElementaryTypeName","src":"28359:5:5"}],"id":4577,"name":"ArrayTypeName","src":"28359:7:5"}],"id":4578,"name":"VariableDeclaration","src":"28359:22:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory[] memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (bytes memory[] memory)"},"children":[{"attributes":{"length":null,"type":"bytes[]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4579,"name":"ElementaryTypeName","src":"28388:5:5"}],"id":4580,"name":"ArrayTypeName","src":"28388:7:5"}],"id":4581,"name":"NewExpression","src":"28384:11:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":4582,"name":"Literal","src":"28396:1:5"}],"id":4583,"name":"FunctionCall","src":"28384:14:5"}],"id":4584,"name":"VariableDeclarationStatement","src":"28359:39:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4578,"type":"bytes memory[] memory","value":"dynargs"},"id":4585,"name":"Identifier","src":"28408:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4586,"name":"Literal","src":"28416:1:5"}],"id":4587,"name":"IndexAccess","src":"28408:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4568,"type":"bytes memory[2] memory","value":"args"},"id":4588,"name":"Identifier","src":"28421:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4589,"name":"Literal","src":"28426:1:5"}],"id":4590,"name":"IndexAccess","src":"28421:7:5"}],"id":4591,"name":"Assignment","src":"28408:20:5"}],"id":4592,"name":"ExpressionStatement","src":"28408:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4578,"type":"bytes memory[] memory","value":"dynargs"},"id":4593,"name":"Identifier","src":"28438:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":4594,"name":"Literal","src":"28446:1:5"}],"id":4595,"name":"IndexAccess","src":"28438:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4568,"type":"bytes memory[2] memory","value":"args"},"id":4596,"name":"Identifier","src":"28451:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":4597,"name":"Literal","src":"28456:1:5"}],"id":4598,"name":"IndexAccess","src":"28451:7:5"}],"id":4599,"name":"Assignment","src":"28438:20:5"}],"id":4600,"name":"ExpressionStatement","src":"28438:20:5"},{"attributes":{"functionReturnParameters":4574},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_bytes_memory_$dyn_memory_ptr","typeString":"bytes memory[] memory"}],"overloadedDeclarations":[2566,2608,2654,2698,2741,2786,2835,2882,2929,2978,3031,3082,3119,3159,3202,3242,3287,3335,3386,3434,3487,3543,3602,3658,3719,3783,3850,3914,3983,4055,4130,4202,4249,4298,4351,4402,4439,4479,4522,4562,4607,4655,4706,4754,4807,4863,4922,4978,5039,5103,5170,5234,5303,5375,5450,5522],"referencedDeclaration":4249,"type":"function (string memory,bytes memory[] memory) returns (bytes32)","value":"oraclize_query"},"id":4601,"name":"Identifier","src":"28475:14:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4564,"type":"string memory","value":"datasource"},"id":4602,"name":"Identifier","src":"28490:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4578,"type":"bytes memory[] memory","value":"dynargs"},"id":4603,"name":"Identifier","src":"28502:7:5"}],"id":4604,"name":"FunctionCall","src":"28475:35:5"}],"id":4605,"name":"Return","src":"28468:42:5"}],"id":4606,"name":"Block","src":"28349:168:5"}],"id":4607,"name":"FunctionDefinition","src":"28249:268:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"timestamp","scope":4655,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4608,"name":"ElementaryTypeName","src":"28546:4:5"}],"id":4609,"name":"VariableDeclaration","src":"28546:14:5"},{"attributes":{"constant":false,"name":"datasource","scope":4655,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":4610,"name":"ElementaryTypeName","src":"28562:6:5"}],"id":4611,"name":"VariableDeclaration","src":"28562:17:5"},{"attributes":{"constant":false,"name":"args","scope":4655,"stateVariable":false,"storageLocation":"default","type":"bytes[2]","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"bytes[2]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4612,"name":"ElementaryTypeName","src":"28581:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"subdenomination":null,"token":"number","type":null,"value":"2"},"id":4613,"name":"Literal","src":"28587:1:5"}],"id":4614,"name":"ArrayTypeName","src":"28581:8:5"}],"id":4615,"name":"VariableDeclaration","src":"28581:13:5"}],"id":4616,"name":"ParameterList","src":"28545:50:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":4655,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":4619,"name":"ElementaryTypeName","src":"28626:7:5"}],"id":4620,"name":"VariableDeclaration","src":"28626:10:5"}],"id":4621,"name":"ParameterList","src":"28625:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":4617,"name":"Identifier","src":"28596:11:5"}],"id":4618,"name":"ModifierInvocation","src":"28596:11:5"},{"children":[{"attributes":{"assignments":[4625]},"children":[{"attributes":{"constant":false,"name":"dynargs","scope":4655,"stateVariable":false,"storageLocation":"memory","type":"bytes[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"bytes[]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4623,"name":"ElementaryTypeName","src":"28648:5:5"}],"id":4624,"name":"ArrayTypeName","src":"28648:7:5"}],"id":4625,"name":"VariableDeclaration","src":"28648:22:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory[] memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (bytes memory[] memory)"},"children":[{"attributes":{"length":null,"type":"bytes[]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4626,"name":"ElementaryTypeName","src":"28677:5:5"}],"id":4627,"name":"ArrayTypeName","src":"28677:7:5"}],"id":4628,"name":"NewExpression","src":"28673:11:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":4629,"name":"Literal","src":"28685:1:5"}],"id":4630,"name":"FunctionCall","src":"28673:14:5"}],"id":4631,"name":"VariableDeclarationStatement","src":"28648:39:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4625,"type":"bytes memory[] memory","value":"dynargs"},"id":4632,"name":"Identifier","src":"28697:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4633,"name":"Literal","src":"28705:1:5"}],"id":4634,"name":"IndexAccess","src":"28697:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4615,"type":"bytes memory[2] memory","value":"args"},"id":4635,"name":"Identifier","src":"28710:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4636,"name":"Literal","src":"28715:1:5"}],"id":4637,"name":"IndexAccess","src":"28710:7:5"}],"id":4638,"name":"Assignment","src":"28697:20:5"}],"id":4639,"name":"ExpressionStatement","src":"28697:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4625,"type":"bytes memory[] memory","value":"dynargs"},"id":4640,"name":"Identifier","src":"28727:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":4641,"name":"Literal","src":"28735:1:5"}],"id":4642,"name":"IndexAccess","src":"28727:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4615,"type":"bytes memory[2] memory","value":"args"},"id":4643,"name":"Identifier","src":"28740:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":4644,"name":"Literal","src":"28745:1:5"}],"id":4645,"name":"IndexAccess","src":"28740:7:5"}],"id":4646,"name":"Assignment","src":"28727:20:5"}],"id":4647,"name":"ExpressionStatement","src":"28727:20:5"},{"attributes":{"functionReturnParameters":4621},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_bytes_memory_$dyn_memory_ptr","typeString":"bytes memory[] memory"}],"overloadedDeclarations":[2566,2608,2654,2698,2741,2786,2835,2882,2929,2978,3031,3082,3119,3159,3202,3242,3287,3335,3386,3434,3487,3543,3602,3658,3719,3783,3850,3914,3983,4055,4130,4202,4249,4298,4351,4402,4439,4479,4522,4562,4607,4655,4706,4754,4807,4863,4922,4978,5039,5103,5170,5234,5303,5375,5450,5522],"referencedDeclaration":4298,"type":"function (uint256,string memory,bytes memory[] memory) returns (bytes32)","value":"oraclize_query"},"id":4648,"name":"Identifier","src":"28764:14:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4609,"type":"uint256","value":"timestamp"},"id":4649,"name":"Identifier","src":"28779:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4611,"type":"string memory","value":"datasource"},"id":4650,"name":"Identifier","src":"28790:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4625,"type":"bytes memory[] memory","value":"dynargs"},"id":4651,"name":"Identifier","src":"28802:7:5"}],"id":4652,"name":"FunctionCall","src":"28764:46:5"}],"id":4653,"name":"Return","src":"28757:53:5"}],"id":4654,"name":"Block","src":"28638:179:5"}],"id":4655,"name":"FunctionDefinition","src":"28522:295:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"timestamp","scope":4706,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4656,"name":"ElementaryTypeName","src":"28846:4:5"}],"id":4657,"name":"VariableDeclaration","src":"28846:14:5"},{"attributes":{"constant":false,"name":"datasource","scope":4706,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":4658,"name":"ElementaryTypeName","src":"28862:6:5"}],"id":4659,"name":"VariableDeclaration","src":"28862:17:5"},{"attributes":{"constant":false,"name":"args","scope":4706,"stateVariable":false,"storageLocation":"default","type":"bytes[2]","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"bytes[2]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4660,"name":"ElementaryTypeName","src":"28881:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"subdenomination":null,"token":"number","type":null,"value":"2"},"id":4661,"name":"Literal","src":"28887:1:5"}],"id":4662,"name":"ArrayTypeName","src":"28881:8:5"}],"id":4663,"name":"VariableDeclaration","src":"28881:13:5"},{"attributes":{"constant":false,"name":"gaslimit","scope":4706,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4664,"name":"ElementaryTypeName","src":"28896:4:5"}],"id":4665,"name":"VariableDeclaration","src":"28896:13:5"}],"id":4666,"name":"ParameterList","src":"28845:65:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":4706,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":4669,"name":"ElementaryTypeName","src":"28941:7:5"}],"id":4670,"name":"VariableDeclaration","src":"28941:10:5"}],"id":4671,"name":"ParameterList","src":"28940:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":4667,"name":"Identifier","src":"28911:11:5"}],"id":4668,"name":"ModifierInvocation","src":"28911:11:5"},{"children":[{"attributes":{"assignments":[4675]},"children":[{"attributes":{"constant":false,"name":"dynargs","scope":4706,"stateVariable":false,"storageLocation":"memory","type":"bytes[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"bytes[]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4673,"name":"ElementaryTypeName","src":"28963:5:5"}],"id":4674,"name":"ArrayTypeName","src":"28963:7:5"}],"id":4675,"name":"VariableDeclaration","src":"28963:22:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory[] memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (bytes memory[] memory)"},"children":[{"attributes":{"length":null,"type":"bytes[]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4676,"name":"ElementaryTypeName","src":"28992:5:5"}],"id":4677,"name":"ArrayTypeName","src":"28992:7:5"}],"id":4678,"name":"NewExpression","src":"28988:11:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":4679,"name":"Literal","src":"29000:1:5"}],"id":4680,"name":"FunctionCall","src":"28988:14:5"}],"id":4681,"name":"VariableDeclarationStatement","src":"28963:39:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4675,"type":"bytes memory[] memory","value":"dynargs"},"id":4682,"name":"Identifier","src":"29012:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4683,"name":"Literal","src":"29020:1:5"}],"id":4684,"name":"IndexAccess","src":"29012:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4663,"type":"bytes memory[2] memory","value":"args"},"id":4685,"name":"Identifier","src":"29025:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4686,"name":"Literal","src":"29030:1:5"}],"id":4687,"name":"IndexAccess","src":"29025:7:5"}],"id":4688,"name":"Assignment","src":"29012:20:5"}],"id":4689,"name":"ExpressionStatement","src":"29012:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4675,"type":"bytes memory[] memory","value":"dynargs"},"id":4690,"name":"Identifier","src":"29042:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":4691,"name":"Literal","src":"29050:1:5"}],"id":4692,"name":"IndexAccess","src":"29042:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4663,"type":"bytes memory[2] memory","value":"args"},"id":4693,"name":"Identifier","src":"29055:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":4694,"name":"Literal","src":"29060:1:5"}],"id":4695,"name":"IndexAccess","src":"29055:7:5"}],"id":4696,"name":"Assignment","src":"29042:20:5"}],"id":4697,"name":"ExpressionStatement","src":"29042:20:5"},{"attributes":{"functionReturnParameters":4671},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_bytes_memory_$dyn_memory_ptr","typeString":"bytes memory[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[2566,2608,2654,2698,2741,2786,2835,2882,2929,2978,3031,3082,3119,3159,3202,3242,3287,3335,3386,3434,3487,3543,3602,3658,3719,3783,3850,3914,3983,4055,4130,4202,4249,4298,4351,4402,4439,4479,4522,4562,4607,4655,4706,4754,4807,4863,4922,4978,5039,5103,5170,5234,5303,5375,5450,5522],"referencedDeclaration":4351,"type":"function (uint256,string memory,bytes memory[] memory,uint256) returns (bytes32)","value":"oraclize_query"},"id":4698,"name":"Identifier","src":"29079:14:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4657,"type":"uint256","value":"timestamp"},"id":4699,"name":"Identifier","src":"29094:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4659,"type":"string memory","value":"datasource"},"id":4700,"name":"Identifier","src":"29105:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4675,"type":"bytes memory[] memory","value":"dynargs"},"id":4701,"name":"Identifier","src":"29117:7:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4665,"type":"uint256","value":"gaslimit"},"id":4702,"name":"Identifier","src":"29126:8:5"}],"id":4703,"name":"FunctionCall","src":"29079:56:5"}],"id":4704,"name":"Return","src":"29072:63:5"}],"id":4705,"name":"Block","src":"28953:189:5"}],"id":4706,"name":"FunctionDefinition","src":"28822:320:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"datasource","scope":4754,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":4707,"name":"ElementaryTypeName","src":"29171:6:5"}],"id":4708,"name":"VariableDeclaration","src":"29171:17:5"},{"attributes":{"constant":false,"name":"args","scope":4754,"stateVariable":false,"storageLocation":"default","type":"bytes[2]","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"bytes[2]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4709,"name":"ElementaryTypeName","src":"29190:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"subdenomination":null,"token":"number","type":null,"value":"2"},"id":4710,"name":"Literal","src":"29196:1:5"}],"id":4711,"name":"ArrayTypeName","src":"29190:8:5"}],"id":4712,"name":"VariableDeclaration","src":"29190:13:5"},{"attributes":{"constant":false,"name":"gaslimit","scope":4754,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4713,"name":"ElementaryTypeName","src":"29205:4:5"}],"id":4714,"name":"VariableDeclaration","src":"29205:13:5"}],"id":4715,"name":"ParameterList","src":"29170:49:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":4754,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":4718,"name":"ElementaryTypeName","src":"29250:7:5"}],"id":4719,"name":"VariableDeclaration","src":"29250:10:5"}],"id":4720,"name":"ParameterList","src":"29249:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":4716,"name":"Identifier","src":"29220:11:5"}],"id":4717,"name":"ModifierInvocation","src":"29220:11:5"},{"children":[{"attributes":{"assignments":[4724]},"children":[{"attributes":{"constant":false,"name":"dynargs","scope":4754,"stateVariable":false,"storageLocation":"memory","type":"bytes[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"bytes[]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4722,"name":"ElementaryTypeName","src":"29272:5:5"}],"id":4723,"name":"ArrayTypeName","src":"29272:7:5"}],"id":4724,"name":"VariableDeclaration","src":"29272:22:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory[] memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (bytes memory[] memory)"},"children":[{"attributes":{"length":null,"type":"bytes[]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4725,"name":"ElementaryTypeName","src":"29301:5:5"}],"id":4726,"name":"ArrayTypeName","src":"29301:7:5"}],"id":4727,"name":"NewExpression","src":"29297:11:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":4728,"name":"Literal","src":"29309:1:5"}],"id":4729,"name":"FunctionCall","src":"29297:14:5"}],"id":4730,"name":"VariableDeclarationStatement","src":"29272:39:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4724,"type":"bytes memory[] memory","value":"dynargs"},"id":4731,"name":"Identifier","src":"29321:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4732,"name":"Literal","src":"29329:1:5"}],"id":4733,"name":"IndexAccess","src":"29321:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4712,"type":"bytes memory[2] memory","value":"args"},"id":4734,"name":"Identifier","src":"29334:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4735,"name":"Literal","src":"29339:1:5"}],"id":4736,"name":"IndexAccess","src":"29334:7:5"}],"id":4737,"name":"Assignment","src":"29321:20:5"}],"id":4738,"name":"ExpressionStatement","src":"29321:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4724,"type":"bytes memory[] memory","value":"dynargs"},"id":4739,"name":"Identifier","src":"29351:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":4740,"name":"Literal","src":"29359:1:5"}],"id":4741,"name":"IndexAccess","src":"29351:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4712,"type":"bytes memory[2] memory","value":"args"},"id":4742,"name":"Identifier","src":"29364:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":4743,"name":"Literal","src":"29369:1:5"}],"id":4744,"name":"IndexAccess","src":"29364:7:5"}],"id":4745,"name":"Assignment","src":"29351:20:5"}],"id":4746,"name":"ExpressionStatement","src":"29351:20:5"},{"attributes":{"functionReturnParameters":4720},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_bytes_memory_$dyn_memory_ptr","typeString":"bytes memory[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[2566,2608,2654,2698,2741,2786,2835,2882,2929,2978,3031,3082,3119,3159,3202,3242,3287,3335,3386,3434,3487,3543,3602,3658,3719,3783,3850,3914,3983,4055,4130,4202,4249,4298,4351,4402,4439,4479,4522,4562,4607,4655,4706,4754,4807,4863,4922,4978,5039,5103,5170,5234,5303,5375,5450,5522],"referencedDeclaration":4402,"type":"function (string memory,bytes memory[] memory,uint256) returns (bytes32)","value":"oraclize_query"},"id":4747,"name":"Identifier","src":"29388:14:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4708,"type":"string memory","value":"datasource"},"id":4748,"name":"Identifier","src":"29403:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4724,"type":"bytes memory[] memory","value":"dynargs"},"id":4749,"name":"Identifier","src":"29415:7:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4714,"type":"uint256","value":"gaslimit"},"id":4750,"name":"Identifier","src":"29424:8:5"}],"id":4751,"name":"FunctionCall","src":"29388:45:5"}],"id":4752,"name":"Return","src":"29381:52:5"}],"id":4753,"name":"Block","src":"29262:178:5"}],"id":4754,"name":"FunctionDefinition","src":"29147:293:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"datasource","scope":4807,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":4755,"name":"ElementaryTypeName","src":"29469:6:5"}],"id":4756,"name":"VariableDeclaration","src":"29469:17:5"},{"attributes":{"constant":false,"name":"args","scope":4807,"stateVariable":false,"storageLocation":"default","type":"bytes[3]","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"bytes[3]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4757,"name":"ElementaryTypeName","src":"29488:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"subdenomination":null,"token":"number","type":null,"value":"3"},"id":4758,"name":"Literal","src":"29494:1:5"}],"id":4759,"name":"ArrayTypeName","src":"29488:8:5"}],"id":4760,"name":"VariableDeclaration","src":"29488:13:5"}],"id":4761,"name":"ParameterList","src":"29468:34:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":4807,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":4764,"name":"ElementaryTypeName","src":"29533:7:5"}],"id":4765,"name":"VariableDeclaration","src":"29533:10:5"}],"id":4766,"name":"ParameterList","src":"29532:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":4762,"name":"Identifier","src":"29503:11:5"}],"id":4763,"name":"ModifierInvocation","src":"29503:11:5"},{"children":[{"attributes":{"assignments":[4770]},"children":[{"attributes":{"constant":false,"name":"dynargs","scope":4807,"stateVariable":false,"storageLocation":"memory","type":"bytes[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"bytes[]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4768,"name":"ElementaryTypeName","src":"29555:5:5"}],"id":4769,"name":"ArrayTypeName","src":"29555:7:5"}],"id":4770,"name":"VariableDeclaration","src":"29555:22:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory[] memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (bytes memory[] memory)"},"children":[{"attributes":{"length":null,"type":"bytes[]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4771,"name":"ElementaryTypeName","src":"29584:5:5"}],"id":4772,"name":"ArrayTypeName","src":"29584:7:5"}],"id":4773,"name":"NewExpression","src":"29580:11:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":4774,"name":"Literal","src":"29592:1:5"}],"id":4775,"name":"FunctionCall","src":"29580:14:5"}],"id":4776,"name":"VariableDeclarationStatement","src":"29555:39:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4770,"type":"bytes memory[] memory","value":"dynargs"},"id":4777,"name":"Identifier","src":"29604:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4778,"name":"Literal","src":"29612:1:5"}],"id":4779,"name":"IndexAccess","src":"29604:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4760,"type":"bytes memory[3] memory","value":"args"},"id":4780,"name":"Identifier","src":"29617:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4781,"name":"Literal","src":"29622:1:5"}],"id":4782,"name":"IndexAccess","src":"29617:7:5"}],"id":4783,"name":"Assignment","src":"29604:20:5"}],"id":4784,"name":"ExpressionStatement","src":"29604:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4770,"type":"bytes memory[] memory","value":"dynargs"},"id":4785,"name":"Identifier","src":"29634:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":4786,"name":"Literal","src":"29642:1:5"}],"id":4787,"name":"IndexAccess","src":"29634:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4760,"type":"bytes memory[3] memory","value":"args"},"id":4788,"name":"Identifier","src":"29647:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":4789,"name":"Literal","src":"29652:1:5"}],"id":4790,"name":"IndexAccess","src":"29647:7:5"}],"id":4791,"name":"Assignment","src":"29634:20:5"}],"id":4792,"name":"ExpressionStatement","src":"29634:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4770,"type":"bytes memory[] memory","value":"dynargs"},"id":4793,"name":"Identifier","src":"29664:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":4794,"name":"Literal","src":"29672:1:5"}],"id":4795,"name":"IndexAccess","src":"29664:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4760,"type":"bytes memory[3] memory","value":"args"},"id":4796,"name":"Identifier","src":"29677:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":4797,"name":"Literal","src":"29682:1:5"}],"id":4798,"name":"IndexAccess","src":"29677:7:5"}],"id":4799,"name":"Assignment","src":"29664:20:5"}],"id":4800,"name":"ExpressionStatement","src":"29664:20:5"},{"attributes":{"functionReturnParameters":4766},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_bytes_memory_$dyn_memory_ptr","typeString":"bytes memory[] memory"}],"overloadedDeclarations":[2566,2608,2654,2698,2741,2786,2835,2882,2929,2978,3031,3082,3119,3159,3202,3242,3287,3335,3386,3434,3487,3543,3602,3658,3719,3783,3850,3914,3983,4055,4130,4202,4249,4298,4351,4402,4439,4479,4522,4562,4607,4655,4706,4754,4807,4863,4922,4978,5039,5103,5170,5234,5303,5375,5450,5522],"referencedDeclaration":4249,"type":"function (string memory,bytes memory[] memory) returns (bytes32)","value":"oraclize_query"},"id":4801,"name":"Identifier","src":"29701:14:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4756,"type":"string memory","value":"datasource"},"id":4802,"name":"Identifier","src":"29716:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4770,"type":"bytes memory[] memory","value":"dynargs"},"id":4803,"name":"Identifier","src":"29728:7:5"}],"id":4804,"name":"FunctionCall","src":"29701:35:5"}],"id":4805,"name":"Return","src":"29694:42:5"}],"id":4806,"name":"Block","src":"29545:198:5"}],"id":4807,"name":"FunctionDefinition","src":"29445:298:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"timestamp","scope":4863,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4808,"name":"ElementaryTypeName","src":"29772:4:5"}],"id":4809,"name":"VariableDeclaration","src":"29772:14:5"},{"attributes":{"constant":false,"name":"datasource","scope":4863,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":4810,"name":"ElementaryTypeName","src":"29788:6:5"}],"id":4811,"name":"VariableDeclaration","src":"29788:17:5"},{"attributes":{"constant":false,"name":"args","scope":4863,"stateVariable":false,"storageLocation":"default","type":"bytes[3]","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"bytes[3]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4812,"name":"ElementaryTypeName","src":"29807:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"subdenomination":null,"token":"number","type":null,"value":"3"},"id":4813,"name":"Literal","src":"29813:1:5"}],"id":4814,"name":"ArrayTypeName","src":"29807:8:5"}],"id":4815,"name":"VariableDeclaration","src":"29807:13:5"}],"id":4816,"name":"ParameterList","src":"29771:50:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":4863,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":4819,"name":"ElementaryTypeName","src":"29852:7:5"}],"id":4820,"name":"VariableDeclaration","src":"29852:10:5"}],"id":4821,"name":"ParameterList","src":"29851:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":4817,"name":"Identifier","src":"29822:11:5"}],"id":4818,"name":"ModifierInvocation","src":"29822:11:5"},{"children":[{"attributes":{"assignments":[4825]},"children":[{"attributes":{"constant":false,"name":"dynargs","scope":4863,"stateVariable":false,"storageLocation":"memory","type":"bytes[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"bytes[]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4823,"name":"ElementaryTypeName","src":"29874:5:5"}],"id":4824,"name":"ArrayTypeName","src":"29874:7:5"}],"id":4825,"name":"VariableDeclaration","src":"29874:22:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory[] memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (bytes memory[] memory)"},"children":[{"attributes":{"length":null,"type":"bytes[]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4826,"name":"ElementaryTypeName","src":"29903:5:5"}],"id":4827,"name":"ArrayTypeName","src":"29903:7:5"}],"id":4828,"name":"NewExpression","src":"29899:11:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":4829,"name":"Literal","src":"29911:1:5"}],"id":4830,"name":"FunctionCall","src":"29899:14:5"}],"id":4831,"name":"VariableDeclarationStatement","src":"29874:39:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4825,"type":"bytes memory[] memory","value":"dynargs"},"id":4832,"name":"Identifier","src":"29923:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4833,"name":"Literal","src":"29931:1:5"}],"id":4834,"name":"IndexAccess","src":"29923:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4815,"type":"bytes memory[3] memory","value":"args"},"id":4835,"name":"Identifier","src":"29936:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4836,"name":"Literal","src":"29941:1:5"}],"id":4837,"name":"IndexAccess","src":"29936:7:5"}],"id":4838,"name":"Assignment","src":"29923:20:5"}],"id":4839,"name":"ExpressionStatement","src":"29923:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4825,"type":"bytes memory[] memory","value":"dynargs"},"id":4840,"name":"Identifier","src":"29953:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":4841,"name":"Literal","src":"29961:1:5"}],"id":4842,"name":"IndexAccess","src":"29953:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4815,"type":"bytes memory[3] memory","value":"args"},"id":4843,"name":"Identifier","src":"29966:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":4844,"name":"Literal","src":"29971:1:5"}],"id":4845,"name":"IndexAccess","src":"29966:7:5"}],"id":4846,"name":"Assignment","src":"29953:20:5"}],"id":4847,"name":"ExpressionStatement","src":"29953:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4825,"type":"bytes memory[] memory","value":"dynargs"},"id":4848,"name":"Identifier","src":"29983:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":4849,"name":"Literal","src":"29991:1:5"}],"id":4850,"name":"IndexAccess","src":"29983:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4815,"type":"bytes memory[3] memory","value":"args"},"id":4851,"name":"Identifier","src":"29996:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":4852,"name":"Literal","src":"30001:1:5"}],"id":4853,"name":"IndexAccess","src":"29996:7:5"}],"id":4854,"name":"Assignment","src":"29983:20:5"}],"id":4855,"name":"ExpressionStatement","src":"29983:20:5"},{"attributes":{"functionReturnParameters":4821},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_bytes_memory_$dyn_memory_ptr","typeString":"bytes memory[] memory"}],"overloadedDeclarations":[2566,2608,2654,2698,2741,2786,2835,2882,2929,2978,3031,3082,3119,3159,3202,3242,3287,3335,3386,3434,3487,3543,3602,3658,3719,3783,3850,3914,3983,4055,4130,4202,4249,4298,4351,4402,4439,4479,4522,4562,4607,4655,4706,4754,4807,4863,4922,4978,5039,5103,5170,5234,5303,5375,5450,5522],"referencedDeclaration":4298,"type":"function (uint256,string memory,bytes memory[] memory) returns (bytes32)","value":"oraclize_query"},"id":4856,"name":"Identifier","src":"30020:14:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4809,"type":"uint256","value":"timestamp"},"id":4857,"name":"Identifier","src":"30035:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4811,"type":"string memory","value":"datasource"},"id":4858,"name":"Identifier","src":"30046:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4825,"type":"bytes memory[] memory","value":"dynargs"},"id":4859,"name":"Identifier","src":"30058:7:5"}],"id":4860,"name":"FunctionCall","src":"30020:46:5"}],"id":4861,"name":"Return","src":"30013:53:5"}],"id":4862,"name":"Block","src":"29864:209:5"}],"id":4863,"name":"FunctionDefinition","src":"29748:325:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"timestamp","scope":4922,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4864,"name":"ElementaryTypeName","src":"30102:4:5"}],"id":4865,"name":"VariableDeclaration","src":"30102:14:5"},{"attributes":{"constant":false,"name":"datasource","scope":4922,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":4866,"name":"ElementaryTypeName","src":"30118:6:5"}],"id":4867,"name":"VariableDeclaration","src":"30118:17:5"},{"attributes":{"constant":false,"name":"args","scope":4922,"stateVariable":false,"storageLocation":"default","type":"bytes[3]","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"bytes[3]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4868,"name":"ElementaryTypeName","src":"30137:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"subdenomination":null,"token":"number","type":null,"value":"3"},"id":4869,"name":"Literal","src":"30143:1:5"}],"id":4870,"name":"ArrayTypeName","src":"30137:8:5"}],"id":4871,"name":"VariableDeclaration","src":"30137:13:5"},{"attributes":{"constant":false,"name":"gaslimit","scope":4922,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4872,"name":"ElementaryTypeName","src":"30152:4:5"}],"id":4873,"name":"VariableDeclaration","src":"30152:13:5"}],"id":4874,"name":"ParameterList","src":"30101:65:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":4922,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":4877,"name":"ElementaryTypeName","src":"30197:7:5"}],"id":4878,"name":"VariableDeclaration","src":"30197:10:5"}],"id":4879,"name":"ParameterList","src":"30196:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":4875,"name":"Identifier","src":"30167:11:5"}],"id":4876,"name":"ModifierInvocation","src":"30167:11:5"},{"children":[{"attributes":{"assignments":[4883]},"children":[{"attributes":{"constant":false,"name":"dynargs","scope":4922,"stateVariable":false,"storageLocation":"memory","type":"bytes[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"bytes[]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4881,"name":"ElementaryTypeName","src":"30219:5:5"}],"id":4882,"name":"ArrayTypeName","src":"30219:7:5"}],"id":4883,"name":"VariableDeclaration","src":"30219:22:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory[] memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (bytes memory[] memory)"},"children":[{"attributes":{"length":null,"type":"bytes[]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4884,"name":"ElementaryTypeName","src":"30248:5:5"}],"id":4885,"name":"ArrayTypeName","src":"30248:7:5"}],"id":4886,"name":"NewExpression","src":"30244:11:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":4887,"name":"Literal","src":"30256:1:5"}],"id":4888,"name":"FunctionCall","src":"30244:14:5"}],"id":4889,"name":"VariableDeclarationStatement","src":"30219:39:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4883,"type":"bytes memory[] memory","value":"dynargs"},"id":4890,"name":"Identifier","src":"30268:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4891,"name":"Literal","src":"30276:1:5"}],"id":4892,"name":"IndexAccess","src":"30268:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4871,"type":"bytes memory[3] memory","value":"args"},"id":4893,"name":"Identifier","src":"30281:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4894,"name":"Literal","src":"30286:1:5"}],"id":4895,"name":"IndexAccess","src":"30281:7:5"}],"id":4896,"name":"Assignment","src":"30268:20:5"}],"id":4897,"name":"ExpressionStatement","src":"30268:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4883,"type":"bytes memory[] memory","value":"dynargs"},"id":4898,"name":"Identifier","src":"30298:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":4899,"name":"Literal","src":"30306:1:5"}],"id":4900,"name":"IndexAccess","src":"30298:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4871,"type":"bytes memory[3] memory","value":"args"},"id":4901,"name":"Identifier","src":"30311:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":4902,"name":"Literal","src":"30316:1:5"}],"id":4903,"name":"IndexAccess","src":"30311:7:5"}],"id":4904,"name":"Assignment","src":"30298:20:5"}],"id":4905,"name":"ExpressionStatement","src":"30298:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4883,"type":"bytes memory[] memory","value":"dynargs"},"id":4906,"name":"Identifier","src":"30328:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":4907,"name":"Literal","src":"30336:1:5"}],"id":4908,"name":"IndexAccess","src":"30328:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4871,"type":"bytes memory[3] memory","value":"args"},"id":4909,"name":"Identifier","src":"30341:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":4910,"name":"Literal","src":"30346:1:5"}],"id":4911,"name":"IndexAccess","src":"30341:7:5"}],"id":4912,"name":"Assignment","src":"30328:20:5"}],"id":4913,"name":"ExpressionStatement","src":"30328:20:5"},{"attributes":{"functionReturnParameters":4879},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_bytes_memory_$dyn_memory_ptr","typeString":"bytes memory[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[2566,2608,2654,2698,2741,2786,2835,2882,2929,2978,3031,3082,3119,3159,3202,3242,3287,3335,3386,3434,3487,3543,3602,3658,3719,3783,3850,3914,3983,4055,4130,4202,4249,4298,4351,4402,4439,4479,4522,4562,4607,4655,4706,4754,4807,4863,4922,4978,5039,5103,5170,5234,5303,5375,5450,5522],"referencedDeclaration":4351,"type":"function (uint256,string memory,bytes memory[] memory,uint256) returns (bytes32)","value":"oraclize_query"},"id":4914,"name":"Identifier","src":"30365:14:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4865,"type":"uint256","value":"timestamp"},"id":4915,"name":"Identifier","src":"30380:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4867,"type":"string memory","value":"datasource"},"id":4916,"name":"Identifier","src":"30391:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4883,"type":"bytes memory[] memory","value":"dynargs"},"id":4917,"name":"Identifier","src":"30403:7:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4873,"type":"uint256","value":"gaslimit"},"id":4918,"name":"Identifier","src":"30412:8:5"}],"id":4919,"name":"FunctionCall","src":"30365:56:5"}],"id":4920,"name":"Return","src":"30358:63:5"}],"id":4921,"name":"Block","src":"30209:219:5"}],"id":4922,"name":"FunctionDefinition","src":"30078:350:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"datasource","scope":4978,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":4923,"name":"ElementaryTypeName","src":"30457:6:5"}],"id":4924,"name":"VariableDeclaration","src":"30457:17:5"},{"attributes":{"constant":false,"name":"args","scope":4978,"stateVariable":false,"storageLocation":"default","type":"bytes[3]","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"bytes[3]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4925,"name":"ElementaryTypeName","src":"30476:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"subdenomination":null,"token":"number","type":null,"value":"3"},"id":4926,"name":"Literal","src":"30482:1:5"}],"id":4927,"name":"ArrayTypeName","src":"30476:8:5"}],"id":4928,"name":"VariableDeclaration","src":"30476:13:5"},{"attributes":{"constant":false,"name":"gaslimit","scope":4978,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4929,"name":"ElementaryTypeName","src":"30491:4:5"}],"id":4930,"name":"VariableDeclaration","src":"30491:13:5"}],"id":4931,"name":"ParameterList","src":"30456:49:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":4978,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":4934,"name":"ElementaryTypeName","src":"30536:7:5"}],"id":4935,"name":"VariableDeclaration","src":"30536:10:5"}],"id":4936,"name":"ParameterList","src":"30535:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":4932,"name":"Identifier","src":"30506:11:5"}],"id":4933,"name":"ModifierInvocation","src":"30506:11:5"},{"children":[{"attributes":{"assignments":[4940]},"children":[{"attributes":{"constant":false,"name":"dynargs","scope":4978,"stateVariable":false,"storageLocation":"memory","type":"bytes[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"bytes[]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4938,"name":"ElementaryTypeName","src":"30558:5:5"}],"id":4939,"name":"ArrayTypeName","src":"30558:7:5"}],"id":4940,"name":"VariableDeclaration","src":"30558:22:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory[] memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (bytes memory[] memory)"},"children":[{"attributes":{"length":null,"type":"bytes[]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4941,"name":"ElementaryTypeName","src":"30587:5:5"}],"id":4942,"name":"ArrayTypeName","src":"30587:7:5"}],"id":4943,"name":"NewExpression","src":"30583:11:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":4944,"name":"Literal","src":"30595:1:5"}],"id":4945,"name":"FunctionCall","src":"30583:14:5"}],"id":4946,"name":"VariableDeclarationStatement","src":"30558:39:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4940,"type":"bytes memory[] memory","value":"dynargs"},"id":4947,"name":"Identifier","src":"30607:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4948,"name":"Literal","src":"30615:1:5"}],"id":4949,"name":"IndexAccess","src":"30607:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4928,"type":"bytes memory[3] memory","value":"args"},"id":4950,"name":"Identifier","src":"30620:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4951,"name":"Literal","src":"30625:1:5"}],"id":4952,"name":"IndexAccess","src":"30620:7:5"}],"id":4953,"name":"Assignment","src":"30607:20:5"}],"id":4954,"name":"ExpressionStatement","src":"30607:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4940,"type":"bytes memory[] memory","value":"dynargs"},"id":4955,"name":"Identifier","src":"30637:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":4956,"name":"Literal","src":"30645:1:5"}],"id":4957,"name":"IndexAccess","src":"30637:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4928,"type":"bytes memory[3] memory","value":"args"},"id":4958,"name":"Identifier","src":"30650:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":4959,"name":"Literal","src":"30655:1:5"}],"id":4960,"name":"IndexAccess","src":"30650:7:5"}],"id":4961,"name":"Assignment","src":"30637:20:5"}],"id":4962,"name":"ExpressionStatement","src":"30637:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4940,"type":"bytes memory[] memory","value":"dynargs"},"id":4963,"name":"Identifier","src":"30667:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":4964,"name":"Literal","src":"30675:1:5"}],"id":4965,"name":"IndexAccess","src":"30667:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4928,"type":"bytes memory[3] memory","value":"args"},"id":4966,"name":"Identifier","src":"30680:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":4967,"name":"Literal","src":"30685:1:5"}],"id":4968,"name":"IndexAccess","src":"30680:7:5"}],"id":4969,"name":"Assignment","src":"30667:20:5"}],"id":4970,"name":"ExpressionStatement","src":"30667:20:5"},{"attributes":{"functionReturnParameters":4936},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_bytes_memory_$dyn_memory_ptr","typeString":"bytes memory[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[2566,2608,2654,2698,2741,2786,2835,2882,2929,2978,3031,3082,3119,3159,3202,3242,3287,3335,3386,3434,3487,3543,3602,3658,3719,3783,3850,3914,3983,4055,4130,4202,4249,4298,4351,4402,4439,4479,4522,4562,4607,4655,4706,4754,4807,4863,4922,4978,5039,5103,5170,5234,5303,5375,5450,5522],"referencedDeclaration":4402,"type":"function (string memory,bytes memory[] memory,uint256) returns (bytes32)","value":"oraclize_query"},"id":4971,"name":"Identifier","src":"30704:14:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4924,"type":"string memory","value":"datasource"},"id":4972,"name":"Identifier","src":"30719:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4940,"type":"bytes memory[] memory","value":"dynargs"},"id":4973,"name":"Identifier","src":"30731:7:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4930,"type":"uint256","value":"gaslimit"},"id":4974,"name":"Identifier","src":"30740:8:5"}],"id":4975,"name":"FunctionCall","src":"30704:45:5"}],"id":4976,"name":"Return","src":"30697:52:5"}],"id":4977,"name":"Block","src":"30548:208:5"}],"id":4978,"name":"FunctionDefinition","src":"30433:323:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"datasource","scope":5039,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":4979,"name":"ElementaryTypeName","src":"30786:6:5"}],"id":4980,"name":"VariableDeclaration","src":"30786:17:5"},{"attributes":{"constant":false,"name":"args","scope":5039,"stateVariable":false,"storageLocation":"default","type":"bytes[4]","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"bytes[4]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4981,"name":"ElementaryTypeName","src":"30805:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"subdenomination":null,"token":"number","type":null,"value":"4"},"id":4982,"name":"Literal","src":"30811:1:5"}],"id":4983,"name":"ArrayTypeName","src":"30805:8:5"}],"id":4984,"name":"VariableDeclaration","src":"30805:13:5"}],"id":4985,"name":"ParameterList","src":"30785:34:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":5039,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":4988,"name":"ElementaryTypeName","src":"30850:7:5"}],"id":4989,"name":"VariableDeclaration","src":"30850:10:5"}],"id":4990,"name":"ParameterList","src":"30849:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":4986,"name":"Identifier","src":"30820:11:5"}],"id":4987,"name":"ModifierInvocation","src":"30820:11:5"},{"children":[{"attributes":{"assignments":[4994]},"children":[{"attributes":{"constant":false,"name":"dynargs","scope":5039,"stateVariable":false,"storageLocation":"memory","type":"bytes[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"bytes[]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4992,"name":"ElementaryTypeName","src":"30872:5:5"}],"id":4993,"name":"ArrayTypeName","src":"30872:7:5"}],"id":4994,"name":"VariableDeclaration","src":"30872:22:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory[] memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (bytes memory[] memory)"},"children":[{"attributes":{"length":null,"type":"bytes[]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4995,"name":"ElementaryTypeName","src":"30901:5:5"}],"id":4996,"name":"ArrayTypeName","src":"30901:7:5"}],"id":4997,"name":"NewExpression","src":"30897:11:5"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":4998,"name":"Literal","src":"30909:1:5"}],"id":4999,"name":"FunctionCall","src":"30897:14:5"}],"id":5000,"name":"VariableDeclarationStatement","src":"30872:39:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4994,"type":"bytes memory[] memory","value":"dynargs"},"id":5001,"name":"Identifier","src":"30921:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":5002,"name":"Literal","src":"30929:1:5"}],"id":5003,"name":"IndexAccess","src":"30921:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4984,"type":"bytes memory[4] memory","value":"args"},"id":5004,"name":"Identifier","src":"30934:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":5005,"name":"Literal","src":"30939:1:5"}],"id":5006,"name":"IndexAccess","src":"30934:7:5"}],"id":5007,"name":"Assignment","src":"30921:20:5"}],"id":5008,"name":"ExpressionStatement","src":"30921:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4994,"type":"bytes memory[] memory","value":"dynargs"},"id":5009,"name":"Identifier","src":"30951:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":5010,"name":"Literal","src":"30959:1:5"}],"id":5011,"name":"IndexAccess","src":"30951:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4984,"type":"bytes memory[4] memory","value":"args"},"id":5012,"name":"Identifier","src":"30964:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":5013,"name":"Literal","src":"30969:1:5"}],"id":5014,"name":"IndexAccess","src":"30964:7:5"}],"id":5015,"name":"Assignment","src":"30951:20:5"}],"id":5016,"name":"ExpressionStatement","src":"30951:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4994,"type":"bytes memory[] memory","value":"dynargs"},"id":5017,"name":"Identifier","src":"30981:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":5018,"name":"Literal","src":"30989:1:5"}],"id":5019,"name":"IndexAccess","src":"30981:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4984,"type":"bytes memory[4] memory","value":"args"},"id":5020,"name":"Identifier","src":"30994:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":5021,"name":"Literal","src":"30999:1:5"}],"id":5022,"name":"IndexAccess","src":"30994:7:5"}],"id":5023,"name":"Assignment","src":"30981:20:5"}],"id":5024,"name":"ExpressionStatement","src":"30981:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4994,"type":"bytes memory[] memory","value":"dynargs"},"id":5025,"name":"Identifier","src":"31011:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":5026,"name":"Literal","src":"31019:1:5"}],"id":5027,"name":"IndexAccess","src":"31011:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4984,"type":"bytes memory[4] memory","value":"args"},"id":5028,"name":"Identifier","src":"31024:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":5029,"name":"Literal","src":"31029:1:5"}],"id":5030,"name":"IndexAccess","src":"31024:7:5"}],"id":5031,"name":"Assignment","src":"31011:20:5"}],"id":5032,"name":"ExpressionStatement","src":"31011:20:5"},{"attributes":{"functionReturnParameters":4990},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_bytes_memory_$dyn_memory_ptr","typeString":"bytes memory[] memory"}],"overloadedDeclarations":[2566,2608,2654,2698,2741,2786,2835,2882,2929,2978,3031,3082,3119,3159,3202,3242,3287,3335,3386,3434,3487,3543,3602,3658,3719,3783,3850,3914,3983,4055,4130,4202,4249,4298,4351,4402,4439,4479,4522,4562,4607,4655,4706,4754,4807,4863,4922,4978,5039,5103,5170,5234,5303,5375,5450,5522],"referencedDeclaration":4249,"type":"function (string memory,bytes memory[] memory) returns (bytes32)","value":"oraclize_query"},"id":5033,"name":"Identifier","src":"31048:14:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4980,"type":"string memory","value":"datasource"},"id":5034,"name":"Identifier","src":"31063:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4994,"type":"bytes memory[] memory","value":"dynargs"},"id":5035,"name":"Identifier","src":"31075:7:5"}],"id":5036,"name":"FunctionCall","src":"31048:35:5"}],"id":5037,"name":"Return","src":"31041:42:5"}],"id":5038,"name":"Block","src":"30862:228:5"}],"id":5039,"name":"FunctionDefinition","src":"30762:328:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"timestamp","scope":5103,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5040,"name":"ElementaryTypeName","src":"31119:4:5"}],"id":5041,"name":"VariableDeclaration","src":"31119:14:5"},{"attributes":{"constant":false,"name":"datasource","scope":5103,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":5042,"name":"ElementaryTypeName","src":"31135:6:5"}],"id":5043,"name":"VariableDeclaration","src":"31135:17:5"},{"attributes":{"constant":false,"name":"args","scope":5103,"stateVariable":false,"storageLocation":"default","type":"bytes[4]","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"bytes[4]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":5044,"name":"ElementaryTypeName","src":"31154:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"subdenomination":null,"token":"number","type":null,"value":"4"},"id":5045,"name":"Literal","src":"31160:1:5"}],"id":5046,"name":"ArrayTypeName","src":"31154:8:5"}],"id":5047,"name":"VariableDeclaration","src":"31154:13:5"}],"id":5048,"name":"ParameterList","src":"31118:50:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":5103,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":5051,"name":"ElementaryTypeName","src":"31199:7:5"}],"id":5052,"name":"VariableDeclaration","src":"31199:10:5"}],"id":5053,"name":"ParameterList","src":"31198:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":5049,"name":"Identifier","src":"31169:11:5"}],"id":5050,"name":"ModifierInvocation","src":"31169:11:5"},{"children":[{"attributes":{"assignments":[5057]},"children":[{"attributes":{"constant":false,"name":"dynargs","scope":5103,"stateVariable":false,"storageLocation":"memory","type":"bytes[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"bytes[]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":5055,"name":"ElementaryTypeName","src":"31221:5:5"}],"id":5056,"name":"ArrayTypeName","src":"31221:7:5"}],"id":5057,"name":"VariableDeclaration","src":"31221:22:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory[] memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (bytes memory[] memory)"},"children":[{"attributes":{"length":null,"type":"bytes[]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":5058,"name":"ElementaryTypeName","src":"31250:5:5"}],"id":5059,"name":"ArrayTypeName","src":"31250:7:5"}],"id":5060,"name":"NewExpression","src":"31246:11:5"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":5061,"name":"Literal","src":"31258:1:5"}],"id":5062,"name":"FunctionCall","src":"31246:14:5"}],"id":5063,"name":"VariableDeclarationStatement","src":"31221:39:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5057,"type":"bytes memory[] memory","value":"dynargs"},"id":5064,"name":"Identifier","src":"31270:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":5065,"name":"Literal","src":"31278:1:5"}],"id":5066,"name":"IndexAccess","src":"31270:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5047,"type":"bytes memory[4] memory","value":"args"},"id":5067,"name":"Identifier","src":"31283:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":5068,"name":"Literal","src":"31288:1:5"}],"id":5069,"name":"IndexAccess","src":"31283:7:5"}],"id":5070,"name":"Assignment","src":"31270:20:5"}],"id":5071,"name":"ExpressionStatement","src":"31270:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5057,"type":"bytes memory[] memory","value":"dynargs"},"id":5072,"name":"Identifier","src":"31300:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":5073,"name":"Literal","src":"31308:1:5"}],"id":5074,"name":"IndexAccess","src":"31300:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5047,"type":"bytes memory[4] memory","value":"args"},"id":5075,"name":"Identifier","src":"31313:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":5076,"name":"Literal","src":"31318:1:5"}],"id":5077,"name":"IndexAccess","src":"31313:7:5"}],"id":5078,"name":"Assignment","src":"31300:20:5"}],"id":5079,"name":"ExpressionStatement","src":"31300:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5057,"type":"bytes memory[] memory","value":"dynargs"},"id":5080,"name":"Identifier","src":"31330:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":5081,"name":"Literal","src":"31338:1:5"}],"id":5082,"name":"IndexAccess","src":"31330:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5047,"type":"bytes memory[4] memory","value":"args"},"id":5083,"name":"Identifier","src":"31343:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":5084,"name":"Literal","src":"31348:1:5"}],"id":5085,"name":"IndexAccess","src":"31343:7:5"}],"id":5086,"name":"Assignment","src":"31330:20:5"}],"id":5087,"name":"ExpressionStatement","src":"31330:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5057,"type":"bytes memory[] memory","value":"dynargs"},"id":5088,"name":"Identifier","src":"31360:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":5089,"name":"Literal","src":"31368:1:5"}],"id":5090,"name":"IndexAccess","src":"31360:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5047,"type":"bytes memory[4] memory","value":"args"},"id":5091,"name":"Identifier","src":"31373:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":5092,"name":"Literal","src":"31378:1:5"}],"id":5093,"name":"IndexAccess","src":"31373:7:5"}],"id":5094,"name":"Assignment","src":"31360:20:5"}],"id":5095,"name":"ExpressionStatement","src":"31360:20:5"},{"attributes":{"functionReturnParameters":5053},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_bytes_memory_$dyn_memory_ptr","typeString":"bytes memory[] memory"}],"overloadedDeclarations":[2566,2608,2654,2698,2741,2786,2835,2882,2929,2978,3031,3082,3119,3159,3202,3242,3287,3335,3386,3434,3487,3543,3602,3658,3719,3783,3850,3914,3983,4055,4130,4202,4249,4298,4351,4402,4439,4479,4522,4562,4607,4655,4706,4754,4807,4863,4922,4978,5039,5103,5170,5234,5303,5375,5450,5522],"referencedDeclaration":4298,"type":"function (uint256,string memory,bytes memory[] memory) returns (bytes32)","value":"oraclize_query"},"id":5096,"name":"Identifier","src":"31397:14:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5041,"type":"uint256","value":"timestamp"},"id":5097,"name":"Identifier","src":"31412:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5043,"type":"string memory","value":"datasource"},"id":5098,"name":"Identifier","src":"31423:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5057,"type":"bytes memory[] memory","value":"dynargs"},"id":5099,"name":"Identifier","src":"31435:7:5"}],"id":5100,"name":"FunctionCall","src":"31397:46:5"}],"id":5101,"name":"Return","src":"31390:53:5"}],"id":5102,"name":"Block","src":"31211:239:5"}],"id":5103,"name":"FunctionDefinition","src":"31095:355:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"timestamp","scope":5170,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5104,"name":"ElementaryTypeName","src":"31479:4:5"}],"id":5105,"name":"VariableDeclaration","src":"31479:14:5"},{"attributes":{"constant":false,"name":"datasource","scope":5170,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":5106,"name":"ElementaryTypeName","src":"31495:6:5"}],"id":5107,"name":"VariableDeclaration","src":"31495:17:5"},{"attributes":{"constant":false,"name":"args","scope":5170,"stateVariable":false,"storageLocation":"default","type":"bytes[4]","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"bytes[4]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":5108,"name":"ElementaryTypeName","src":"31514:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"subdenomination":null,"token":"number","type":null,"value":"4"},"id":5109,"name":"Literal","src":"31520:1:5"}],"id":5110,"name":"ArrayTypeName","src":"31514:8:5"}],"id":5111,"name":"VariableDeclaration","src":"31514:13:5"},{"attributes":{"constant":false,"name":"gaslimit","scope":5170,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5112,"name":"ElementaryTypeName","src":"31529:4:5"}],"id":5113,"name":"VariableDeclaration","src":"31529:13:5"}],"id":5114,"name":"ParameterList","src":"31478:65:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":5170,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":5117,"name":"ElementaryTypeName","src":"31574:7:5"}],"id":5118,"name":"VariableDeclaration","src":"31574:10:5"}],"id":5119,"name":"ParameterList","src":"31573:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":5115,"name":"Identifier","src":"31544:11:5"}],"id":5116,"name":"ModifierInvocation","src":"31544:11:5"},{"children":[{"attributes":{"assignments":[5123]},"children":[{"attributes":{"constant":false,"name":"dynargs","scope":5170,"stateVariable":false,"storageLocation":"memory","type":"bytes[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"bytes[]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":5121,"name":"ElementaryTypeName","src":"31596:5:5"}],"id":5122,"name":"ArrayTypeName","src":"31596:7:5"}],"id":5123,"name":"VariableDeclaration","src":"31596:22:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory[] memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (bytes memory[] memory)"},"children":[{"attributes":{"length":null,"type":"bytes[]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":5124,"name":"ElementaryTypeName","src":"31625:5:5"}],"id":5125,"name":"ArrayTypeName","src":"31625:7:5"}],"id":5126,"name":"NewExpression","src":"31621:11:5"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":5127,"name":"Literal","src":"31633:1:5"}],"id":5128,"name":"FunctionCall","src":"31621:14:5"}],"id":5129,"name":"VariableDeclarationStatement","src":"31596:39:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5123,"type":"bytes memory[] memory","value":"dynargs"},"id":5130,"name":"Identifier","src":"31645:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":5131,"name":"Literal","src":"31653:1:5"}],"id":5132,"name":"IndexAccess","src":"31645:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5111,"type":"bytes memory[4] memory","value":"args"},"id":5133,"name":"Identifier","src":"31658:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":5134,"name":"Literal","src":"31663:1:5"}],"id":5135,"name":"IndexAccess","src":"31658:7:5"}],"id":5136,"name":"Assignment","src":"31645:20:5"}],"id":5137,"name":"ExpressionStatement","src":"31645:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5123,"type":"bytes memory[] memory","value":"dynargs"},"id":5138,"name":"Identifier","src":"31675:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":5139,"name":"Literal","src":"31683:1:5"}],"id":5140,"name":"IndexAccess","src":"31675:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5111,"type":"bytes memory[4] memory","value":"args"},"id":5141,"name":"Identifier","src":"31688:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":5142,"name":"Literal","src":"31693:1:5"}],"id":5143,"name":"IndexAccess","src":"31688:7:5"}],"id":5144,"name":"Assignment","src":"31675:20:5"}],"id":5145,"name":"ExpressionStatement","src":"31675:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5123,"type":"bytes memory[] memory","value":"dynargs"},"id":5146,"name":"Identifier","src":"31705:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":5147,"name":"Literal","src":"31713:1:5"}],"id":5148,"name":"IndexAccess","src":"31705:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5111,"type":"bytes memory[4] memory","value":"args"},"id":5149,"name":"Identifier","src":"31718:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":5150,"name":"Literal","src":"31723:1:5"}],"id":5151,"name":"IndexAccess","src":"31718:7:5"}],"id":5152,"name":"Assignment","src":"31705:20:5"}],"id":5153,"name":"ExpressionStatement","src":"31705:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5123,"type":"bytes memory[] memory","value":"dynargs"},"id":5154,"name":"Identifier","src":"31735:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":5155,"name":"Literal","src":"31743:1:5"}],"id":5156,"name":"IndexAccess","src":"31735:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5111,"type":"bytes memory[4] memory","value":"args"},"id":5157,"name":"Identifier","src":"31748:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":5158,"name":"Literal","src":"31753:1:5"}],"id":5159,"name":"IndexAccess","src":"31748:7:5"}],"id":5160,"name":"Assignment","src":"31735:20:5"}],"id":5161,"name":"ExpressionStatement","src":"31735:20:5"},{"attributes":{"functionReturnParameters":5119},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_bytes_memory_$dyn_memory_ptr","typeString":"bytes memory[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[2566,2608,2654,2698,2741,2786,2835,2882,2929,2978,3031,3082,3119,3159,3202,3242,3287,3335,3386,3434,3487,3543,3602,3658,3719,3783,3850,3914,3983,4055,4130,4202,4249,4298,4351,4402,4439,4479,4522,4562,4607,4655,4706,4754,4807,4863,4922,4978,5039,5103,5170,5234,5303,5375,5450,5522],"referencedDeclaration":4351,"type":"function (uint256,string memory,bytes memory[] memory,uint256) returns (bytes32)","value":"oraclize_query"},"id":5162,"name":"Identifier","src":"31772:14:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5105,"type":"uint256","value":"timestamp"},"id":5163,"name":"Identifier","src":"31787:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5107,"type":"string memory","value":"datasource"},"id":5164,"name":"Identifier","src":"31798:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5123,"type":"bytes memory[] memory","value":"dynargs"},"id":5165,"name":"Identifier","src":"31810:7:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5113,"type":"uint256","value":"gaslimit"},"id":5166,"name":"Identifier","src":"31819:8:5"}],"id":5167,"name":"FunctionCall","src":"31772:56:5"}],"id":5168,"name":"Return","src":"31765:63:5"}],"id":5169,"name":"Block","src":"31586:249:5"}],"id":5170,"name":"FunctionDefinition","src":"31455:380:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"datasource","scope":5234,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":5171,"name":"ElementaryTypeName","src":"31864:6:5"}],"id":5172,"name":"VariableDeclaration","src":"31864:17:5"},{"attributes":{"constant":false,"name":"args","scope":5234,"stateVariable":false,"storageLocation":"default","type":"bytes[4]","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"bytes[4]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":5173,"name":"ElementaryTypeName","src":"31883:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"subdenomination":null,"token":"number","type":null,"value":"4"},"id":5174,"name":"Literal","src":"31889:1:5"}],"id":5175,"name":"ArrayTypeName","src":"31883:8:5"}],"id":5176,"name":"VariableDeclaration","src":"31883:13:5"},{"attributes":{"constant":false,"name":"gaslimit","scope":5234,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5177,"name":"ElementaryTypeName","src":"31898:4:5"}],"id":5178,"name":"VariableDeclaration","src":"31898:13:5"}],"id":5179,"name":"ParameterList","src":"31863:49:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":5234,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":5182,"name":"ElementaryTypeName","src":"31943:7:5"}],"id":5183,"name":"VariableDeclaration","src":"31943:10:5"}],"id":5184,"name":"ParameterList","src":"31942:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":5180,"name":"Identifier","src":"31913:11:5"}],"id":5181,"name":"ModifierInvocation","src":"31913:11:5"},{"children":[{"attributes":{"assignments":[5188]},"children":[{"attributes":{"constant":false,"name":"dynargs","scope":5234,"stateVariable":false,"storageLocation":"memory","type":"bytes[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"bytes[]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":5186,"name":"ElementaryTypeName","src":"31965:5:5"}],"id":5187,"name":"ArrayTypeName","src":"31965:7:5"}],"id":5188,"name":"VariableDeclaration","src":"31965:22:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory[] memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (bytes memory[] memory)"},"children":[{"attributes":{"length":null,"type":"bytes[]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":5189,"name":"ElementaryTypeName","src":"31994:5:5"}],"id":5190,"name":"ArrayTypeName","src":"31994:7:5"}],"id":5191,"name":"NewExpression","src":"31990:11:5"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":5192,"name":"Literal","src":"32002:1:5"}],"id":5193,"name":"FunctionCall","src":"31990:14:5"}],"id":5194,"name":"VariableDeclarationStatement","src":"31965:39:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5188,"type":"bytes memory[] memory","value":"dynargs"},"id":5195,"name":"Identifier","src":"32014:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":5196,"name":"Literal","src":"32022:1:5"}],"id":5197,"name":"IndexAccess","src":"32014:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5176,"type":"bytes memory[4] memory","value":"args"},"id":5198,"name":"Identifier","src":"32027:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":5199,"name":"Literal","src":"32032:1:5"}],"id":5200,"name":"IndexAccess","src":"32027:7:5"}],"id":5201,"name":"Assignment","src":"32014:20:5"}],"id":5202,"name":"ExpressionStatement","src":"32014:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5188,"type":"bytes memory[] memory","value":"dynargs"},"id":5203,"name":"Identifier","src":"32044:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":5204,"name":"Literal","src":"32052:1:5"}],"id":5205,"name":"IndexAccess","src":"32044:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5176,"type":"bytes memory[4] memory","value":"args"},"id":5206,"name":"Identifier","src":"32057:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":5207,"name":"Literal","src":"32062:1:5"}],"id":5208,"name":"IndexAccess","src":"32057:7:5"}],"id":5209,"name":"Assignment","src":"32044:20:5"}],"id":5210,"name":"ExpressionStatement","src":"32044:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5188,"type":"bytes memory[] memory","value":"dynargs"},"id":5211,"name":"Identifier","src":"32074:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":5212,"name":"Literal","src":"32082:1:5"}],"id":5213,"name":"IndexAccess","src":"32074:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5176,"type":"bytes memory[4] memory","value":"args"},"id":5214,"name":"Identifier","src":"32087:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":5215,"name":"Literal","src":"32092:1:5"}],"id":5216,"name":"IndexAccess","src":"32087:7:5"}],"id":5217,"name":"Assignment","src":"32074:20:5"}],"id":5218,"name":"ExpressionStatement","src":"32074:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5188,"type":"bytes memory[] memory","value":"dynargs"},"id":5219,"name":"Identifier","src":"32104:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":5220,"name":"Literal","src":"32112:1:5"}],"id":5221,"name":"IndexAccess","src":"32104:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5176,"type":"bytes memory[4] memory","value":"args"},"id":5222,"name":"Identifier","src":"32117:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":5223,"name":"Literal","src":"32122:1:5"}],"id":5224,"name":"IndexAccess","src":"32117:7:5"}],"id":5225,"name":"Assignment","src":"32104:20:5"}],"id":5226,"name":"ExpressionStatement","src":"32104:20:5"},{"attributes":{"functionReturnParameters":5184},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_bytes_memory_$dyn_memory_ptr","typeString":"bytes memory[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[2566,2608,2654,2698,2741,2786,2835,2882,2929,2978,3031,3082,3119,3159,3202,3242,3287,3335,3386,3434,3487,3543,3602,3658,3719,3783,3850,3914,3983,4055,4130,4202,4249,4298,4351,4402,4439,4479,4522,4562,4607,4655,4706,4754,4807,4863,4922,4978,5039,5103,5170,5234,5303,5375,5450,5522],"referencedDeclaration":4402,"type":"function (string memory,bytes memory[] memory,uint256) returns (bytes32)","value":"oraclize_query"},"id":5227,"name":"Identifier","src":"32141:14:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5172,"type":"string memory","value":"datasource"},"id":5228,"name":"Identifier","src":"32156:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5188,"type":"bytes memory[] memory","value":"dynargs"},"id":5229,"name":"Identifier","src":"32168:7:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5178,"type":"uint256","value":"gaslimit"},"id":5230,"name":"Identifier","src":"32177:8:5"}],"id":5231,"name":"FunctionCall","src":"32141:45:5"}],"id":5232,"name":"Return","src":"32134:52:5"}],"id":5233,"name":"Block","src":"31955:238:5"}],"id":5234,"name":"FunctionDefinition","src":"31840:353:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"datasource","scope":5303,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":5235,"name":"ElementaryTypeName","src":"32222:6:5"}],"id":5236,"name":"VariableDeclaration","src":"32222:17:5"},{"attributes":{"constant":false,"name":"args","scope":5303,"stateVariable":false,"storageLocation":"default","type":"bytes[5]","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"bytes[5]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":5237,"name":"ElementaryTypeName","src":"32241:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"35","isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"subdenomination":null,"token":"number","type":null,"value":"5"},"id":5238,"name":"Literal","src":"32247:1:5"}],"id":5239,"name":"ArrayTypeName","src":"32241:8:5"}],"id":5240,"name":"VariableDeclaration","src":"32241:13:5"}],"id":5241,"name":"ParameterList","src":"32221:34:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":5303,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":5244,"name":"ElementaryTypeName","src":"32286:7:5"}],"id":5245,"name":"VariableDeclaration","src":"32286:10:5"}],"id":5246,"name":"ParameterList","src":"32285:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":5242,"name":"Identifier","src":"32256:11:5"}],"id":5243,"name":"ModifierInvocation","src":"32256:11:5"},{"children":[{"attributes":{"assignments":[5250]},"children":[{"attributes":{"constant":false,"name":"dynargs","scope":5303,"stateVariable":false,"storageLocation":"memory","type":"bytes[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"bytes[]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":5248,"name":"ElementaryTypeName","src":"32308:5:5"}],"id":5249,"name":"ArrayTypeName","src":"32308:7:5"}],"id":5250,"name":"VariableDeclaration","src":"32308:22:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory[] memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (bytes memory[] memory)"},"children":[{"attributes":{"length":null,"type":"bytes[]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":5251,"name":"ElementaryTypeName","src":"32337:5:5"}],"id":5252,"name":"ArrayTypeName","src":"32337:7:5"}],"id":5253,"name":"NewExpression","src":"32333:11:5"},{"attributes":{"argumentTypes":null,"hexvalue":"35","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 5","value":"5"},"id":5254,"name":"Literal","src":"32345:1:5"}],"id":5255,"name":"FunctionCall","src":"32333:14:5"}],"id":5256,"name":"VariableDeclarationStatement","src":"32308:39:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5250,"type":"bytes memory[] memory","value":"dynargs"},"id":5257,"name":"Identifier","src":"32357:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":5258,"name":"Literal","src":"32365:1:5"}],"id":5259,"name":"IndexAccess","src":"32357:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5240,"type":"bytes memory[5] memory","value":"args"},"id":5260,"name":"Identifier","src":"32370:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":5261,"name":"Literal","src":"32375:1:5"}],"id":5262,"name":"IndexAccess","src":"32370:7:5"}],"id":5263,"name":"Assignment","src":"32357:20:5"}],"id":5264,"name":"ExpressionStatement","src":"32357:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5250,"type":"bytes memory[] memory","value":"dynargs"},"id":5265,"name":"Identifier","src":"32387:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":5266,"name":"Literal","src":"32395:1:5"}],"id":5267,"name":"IndexAccess","src":"32387:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5240,"type":"bytes memory[5] memory","value":"args"},"id":5268,"name":"Identifier","src":"32400:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":5269,"name":"Literal","src":"32405:1:5"}],"id":5270,"name":"IndexAccess","src":"32400:7:5"}],"id":5271,"name":"Assignment","src":"32387:20:5"}],"id":5272,"name":"ExpressionStatement","src":"32387:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5250,"type":"bytes memory[] memory","value":"dynargs"},"id":5273,"name":"Identifier","src":"32417:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":5274,"name":"Literal","src":"32425:1:5"}],"id":5275,"name":"IndexAccess","src":"32417:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5240,"type":"bytes memory[5] memory","value":"args"},"id":5276,"name":"Identifier","src":"32430:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":5277,"name":"Literal","src":"32435:1:5"}],"id":5278,"name":"IndexAccess","src":"32430:7:5"}],"id":5279,"name":"Assignment","src":"32417:20:5"}],"id":5280,"name":"ExpressionStatement","src":"32417:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5250,"type":"bytes memory[] memory","value":"dynargs"},"id":5281,"name":"Identifier","src":"32447:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":5282,"name":"Literal","src":"32455:1:5"}],"id":5283,"name":"IndexAccess","src":"32447:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5240,"type":"bytes memory[5] memory","value":"args"},"id":5284,"name":"Identifier","src":"32460:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":5285,"name":"Literal","src":"32465:1:5"}],"id":5286,"name":"IndexAccess","src":"32460:7:5"}],"id":5287,"name":"Assignment","src":"32447:20:5"}],"id":5288,"name":"ExpressionStatement","src":"32447:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5250,"type":"bytes memory[] memory","value":"dynargs"},"id":5289,"name":"Identifier","src":"32477:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":5290,"name":"Literal","src":"32485:1:5"}],"id":5291,"name":"IndexAccess","src":"32477:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5240,"type":"bytes memory[5] memory","value":"args"},"id":5292,"name":"Identifier","src":"32490:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":5293,"name":"Literal","src":"32495:1:5"}],"id":5294,"name":"IndexAccess","src":"32490:7:5"}],"id":5295,"name":"Assignment","src":"32477:20:5"}],"id":5296,"name":"ExpressionStatement","src":"32477:20:5"},{"attributes":{"functionReturnParameters":5246},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_bytes_memory_$dyn_memory_ptr","typeString":"bytes memory[] memory"}],"overloadedDeclarations":[2566,2608,2654,2698,2741,2786,2835,2882,2929,2978,3031,3082,3119,3159,3202,3242,3287,3335,3386,3434,3487,3543,3602,3658,3719,3783,3850,3914,3983,4055,4130,4202,4249,4298,4351,4402,4439,4479,4522,4562,4607,4655,4706,4754,4807,4863,4922,4978,5039,5103,5170,5234,5303,5375,5450,5522],"referencedDeclaration":4249,"type":"function (string memory,bytes memory[] memory) returns (bytes32)","value":"oraclize_query"},"id":5297,"name":"Identifier","src":"32514:14:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5236,"type":"string memory","value":"datasource"},"id":5298,"name":"Identifier","src":"32529:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5250,"type":"bytes memory[] memory","value":"dynargs"},"id":5299,"name":"Identifier","src":"32541:7:5"}],"id":5300,"name":"FunctionCall","src":"32514:35:5"}],"id":5301,"name":"Return","src":"32507:42:5"}],"id":5302,"name":"Block","src":"32298:258:5"}],"id":5303,"name":"FunctionDefinition","src":"32198:358:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"timestamp","scope":5375,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5304,"name":"ElementaryTypeName","src":"32585:4:5"}],"id":5305,"name":"VariableDeclaration","src":"32585:14:5"},{"attributes":{"constant":false,"name":"datasource","scope":5375,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":5306,"name":"ElementaryTypeName","src":"32601:6:5"}],"id":5307,"name":"VariableDeclaration","src":"32601:17:5"},{"attributes":{"constant":false,"name":"args","scope":5375,"stateVariable":false,"storageLocation":"default","type":"bytes[5]","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"bytes[5]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":5308,"name":"ElementaryTypeName","src":"32620:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"35","isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"subdenomination":null,"token":"number","type":null,"value":"5"},"id":5309,"name":"Literal","src":"32626:1:5"}],"id":5310,"name":"ArrayTypeName","src":"32620:8:5"}],"id":5311,"name":"VariableDeclaration","src":"32620:13:5"}],"id":5312,"name":"ParameterList","src":"32584:50:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":5375,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":5315,"name":"ElementaryTypeName","src":"32665:7:5"}],"id":5316,"name":"VariableDeclaration","src":"32665:10:5"}],"id":5317,"name":"ParameterList","src":"32664:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":5313,"name":"Identifier","src":"32635:11:5"}],"id":5314,"name":"ModifierInvocation","src":"32635:11:5"},{"children":[{"attributes":{"assignments":[5321]},"children":[{"attributes":{"constant":false,"name":"dynargs","scope":5375,"stateVariable":false,"storageLocation":"memory","type":"bytes[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"bytes[]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":5319,"name":"ElementaryTypeName","src":"32687:5:5"}],"id":5320,"name":"ArrayTypeName","src":"32687:7:5"}],"id":5321,"name":"VariableDeclaration","src":"32687:22:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory[] memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (bytes memory[] memory)"},"children":[{"attributes":{"length":null,"type":"bytes[]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":5322,"name":"ElementaryTypeName","src":"32716:5:5"}],"id":5323,"name":"ArrayTypeName","src":"32716:7:5"}],"id":5324,"name":"NewExpression","src":"32712:11:5"},{"attributes":{"argumentTypes":null,"hexvalue":"35","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 5","value":"5"},"id":5325,"name":"Literal","src":"32724:1:5"}],"id":5326,"name":"FunctionCall","src":"32712:14:5"}],"id":5327,"name":"VariableDeclarationStatement","src":"32687:39:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5321,"type":"bytes memory[] memory","value":"dynargs"},"id":5328,"name":"Identifier","src":"32736:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":5329,"name":"Literal","src":"32744:1:5"}],"id":5330,"name":"IndexAccess","src":"32736:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5311,"type":"bytes memory[5] memory","value":"args"},"id":5331,"name":"Identifier","src":"32749:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":5332,"name":"Literal","src":"32754:1:5"}],"id":5333,"name":"IndexAccess","src":"32749:7:5"}],"id":5334,"name":"Assignment","src":"32736:20:5"}],"id":5335,"name":"ExpressionStatement","src":"32736:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5321,"type":"bytes memory[] memory","value":"dynargs"},"id":5336,"name":"Identifier","src":"32766:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":5337,"name":"Literal","src":"32774:1:5"}],"id":5338,"name":"IndexAccess","src":"32766:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5311,"type":"bytes memory[5] memory","value":"args"},"id":5339,"name":"Identifier","src":"32779:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":5340,"name":"Literal","src":"32784:1:5"}],"id":5341,"name":"IndexAccess","src":"32779:7:5"}],"id":5342,"name":"Assignment","src":"32766:20:5"}],"id":5343,"name":"ExpressionStatement","src":"32766:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5321,"type":"bytes memory[] memory","value":"dynargs"},"id":5344,"name":"Identifier","src":"32796:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":5345,"name":"Literal","src":"32804:1:5"}],"id":5346,"name":"IndexAccess","src":"32796:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5311,"type":"bytes memory[5] memory","value":"args"},"id":5347,"name":"Identifier","src":"32809:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":5348,"name":"Literal","src":"32814:1:5"}],"id":5349,"name":"IndexAccess","src":"32809:7:5"}],"id":5350,"name":"Assignment","src":"32796:20:5"}],"id":5351,"name":"ExpressionStatement","src":"32796:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5321,"type":"bytes memory[] memory","value":"dynargs"},"id":5352,"name":"Identifier","src":"32826:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":5353,"name":"Literal","src":"32834:1:5"}],"id":5354,"name":"IndexAccess","src":"32826:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5311,"type":"bytes memory[5] memory","value":"args"},"id":5355,"name":"Identifier","src":"32839:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":5356,"name":"Literal","src":"32844:1:5"}],"id":5357,"name":"IndexAccess","src":"32839:7:5"}],"id":5358,"name":"Assignment","src":"32826:20:5"}],"id":5359,"name":"ExpressionStatement","src":"32826:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5321,"type":"bytes memory[] memory","value":"dynargs"},"id":5360,"name":"Identifier","src":"32856:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":5361,"name":"Literal","src":"32864:1:5"}],"id":5362,"name":"IndexAccess","src":"32856:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5311,"type":"bytes memory[5] memory","value":"args"},"id":5363,"name":"Identifier","src":"32869:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":5364,"name":"Literal","src":"32874:1:5"}],"id":5365,"name":"IndexAccess","src":"32869:7:5"}],"id":5366,"name":"Assignment","src":"32856:20:5"}],"id":5367,"name":"ExpressionStatement","src":"32856:20:5"},{"attributes":{"functionReturnParameters":5317},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_bytes_memory_$dyn_memory_ptr","typeString":"bytes memory[] memory"}],"overloadedDeclarations":[2566,2608,2654,2698,2741,2786,2835,2882,2929,2978,3031,3082,3119,3159,3202,3242,3287,3335,3386,3434,3487,3543,3602,3658,3719,3783,3850,3914,3983,4055,4130,4202,4249,4298,4351,4402,4439,4479,4522,4562,4607,4655,4706,4754,4807,4863,4922,4978,5039,5103,5170,5234,5303,5375,5450,5522],"referencedDeclaration":4298,"type":"function (uint256,string memory,bytes memory[] memory) returns (bytes32)","value":"oraclize_query"},"id":5368,"name":"Identifier","src":"32893:14:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5305,"type":"uint256","value":"timestamp"},"id":5369,"name":"Identifier","src":"32908:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5307,"type":"string memory","value":"datasource"},"id":5370,"name":"Identifier","src":"32919:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5321,"type":"bytes memory[] memory","value":"dynargs"},"id":5371,"name":"Identifier","src":"32931:7:5"}],"id":5372,"name":"FunctionCall","src":"32893:46:5"}],"id":5373,"name":"Return","src":"32886:53:5"}],"id":5374,"name":"Block","src":"32677:269:5"}],"id":5375,"name":"FunctionDefinition","src":"32561:385:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"timestamp","scope":5450,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5376,"name":"ElementaryTypeName","src":"32975:4:5"}],"id":5377,"name":"VariableDeclaration","src":"32975:14:5"},{"attributes":{"constant":false,"name":"datasource","scope":5450,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":5378,"name":"ElementaryTypeName","src":"32991:6:5"}],"id":5379,"name":"VariableDeclaration","src":"32991:17:5"},{"attributes":{"constant":false,"name":"args","scope":5450,"stateVariable":false,"storageLocation":"default","type":"bytes[5]","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"bytes[5]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":5380,"name":"ElementaryTypeName","src":"33010:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"35","isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"subdenomination":null,"token":"number","type":null,"value":"5"},"id":5381,"name":"Literal","src":"33016:1:5"}],"id":5382,"name":"ArrayTypeName","src":"33010:8:5"}],"id":5383,"name":"VariableDeclaration","src":"33010:13:5"},{"attributes":{"constant":false,"name":"gaslimit","scope":5450,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5384,"name":"ElementaryTypeName","src":"33025:4:5"}],"id":5385,"name":"VariableDeclaration","src":"33025:13:5"}],"id":5386,"name":"ParameterList","src":"32974:65:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":5450,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":5389,"name":"ElementaryTypeName","src":"33070:7:5"}],"id":5390,"name":"VariableDeclaration","src":"33070:10:5"}],"id":5391,"name":"ParameterList","src":"33069:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":5387,"name":"Identifier","src":"33040:11:5"}],"id":5388,"name":"ModifierInvocation","src":"33040:11:5"},{"children":[{"attributes":{"assignments":[5395]},"children":[{"attributes":{"constant":false,"name":"dynargs","scope":5450,"stateVariable":false,"storageLocation":"memory","type":"bytes[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"bytes[]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":5393,"name":"ElementaryTypeName","src":"33092:5:5"}],"id":5394,"name":"ArrayTypeName","src":"33092:7:5"}],"id":5395,"name":"VariableDeclaration","src":"33092:22:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory[] memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (bytes memory[] memory)"},"children":[{"attributes":{"length":null,"type":"bytes[]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":5396,"name":"ElementaryTypeName","src":"33121:5:5"}],"id":5397,"name":"ArrayTypeName","src":"33121:7:5"}],"id":5398,"name":"NewExpression","src":"33117:11:5"},{"attributes":{"argumentTypes":null,"hexvalue":"35","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 5","value":"5"},"id":5399,"name":"Literal","src":"33129:1:5"}],"id":5400,"name":"FunctionCall","src":"33117:14:5"}],"id":5401,"name":"VariableDeclarationStatement","src":"33092:39:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5395,"type":"bytes memory[] memory","value":"dynargs"},"id":5402,"name":"Identifier","src":"33141:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":5403,"name":"Literal","src":"33149:1:5"}],"id":5404,"name":"IndexAccess","src":"33141:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5383,"type":"bytes memory[5] memory","value":"args"},"id":5405,"name":"Identifier","src":"33154:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":5406,"name":"Literal","src":"33159:1:5"}],"id":5407,"name":"IndexAccess","src":"33154:7:5"}],"id":5408,"name":"Assignment","src":"33141:20:5"}],"id":5409,"name":"ExpressionStatement","src":"33141:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5395,"type":"bytes memory[] memory","value":"dynargs"},"id":5410,"name":"Identifier","src":"33171:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":5411,"name":"Literal","src":"33179:1:5"}],"id":5412,"name":"IndexAccess","src":"33171:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5383,"type":"bytes memory[5] memory","value":"args"},"id":5413,"name":"Identifier","src":"33184:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":5414,"name":"Literal","src":"33189:1:5"}],"id":5415,"name":"IndexAccess","src":"33184:7:5"}],"id":5416,"name":"Assignment","src":"33171:20:5"}],"id":5417,"name":"ExpressionStatement","src":"33171:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5395,"type":"bytes memory[] memory","value":"dynargs"},"id":5418,"name":"Identifier","src":"33201:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":5419,"name":"Literal","src":"33209:1:5"}],"id":5420,"name":"IndexAccess","src":"33201:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5383,"type":"bytes memory[5] memory","value":"args"},"id":5421,"name":"Identifier","src":"33214:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":5422,"name":"Literal","src":"33219:1:5"}],"id":5423,"name":"IndexAccess","src":"33214:7:5"}],"id":5424,"name":"Assignment","src":"33201:20:5"}],"id":5425,"name":"ExpressionStatement","src":"33201:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5395,"type":"bytes memory[] memory","value":"dynargs"},"id":5426,"name":"Identifier","src":"33231:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":5427,"name":"Literal","src":"33239:1:5"}],"id":5428,"name":"IndexAccess","src":"33231:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5383,"type":"bytes memory[5] memory","value":"args"},"id":5429,"name":"Identifier","src":"33244:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":5430,"name":"Literal","src":"33249:1:5"}],"id":5431,"name":"IndexAccess","src":"33244:7:5"}],"id":5432,"name":"Assignment","src":"33231:20:5"}],"id":5433,"name":"ExpressionStatement","src":"33231:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5395,"type":"bytes memory[] memory","value":"dynargs"},"id":5434,"name":"Identifier","src":"33261:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":5435,"name":"Literal","src":"33269:1:5"}],"id":5436,"name":"IndexAccess","src":"33261:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5383,"type":"bytes memory[5] memory","value":"args"},"id":5437,"name":"Identifier","src":"33274:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":5438,"name":"Literal","src":"33279:1:5"}],"id":5439,"name":"IndexAccess","src":"33274:7:5"}],"id":5440,"name":"Assignment","src":"33261:20:5"}],"id":5441,"name":"ExpressionStatement","src":"33261:20:5"},{"attributes":{"functionReturnParameters":5391},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_bytes_memory_$dyn_memory_ptr","typeString":"bytes memory[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[2566,2608,2654,2698,2741,2786,2835,2882,2929,2978,3031,3082,3119,3159,3202,3242,3287,3335,3386,3434,3487,3543,3602,3658,3719,3783,3850,3914,3983,4055,4130,4202,4249,4298,4351,4402,4439,4479,4522,4562,4607,4655,4706,4754,4807,4863,4922,4978,5039,5103,5170,5234,5303,5375,5450,5522],"referencedDeclaration":4351,"type":"function (uint256,string memory,bytes memory[] memory,uint256) returns (bytes32)","value":"oraclize_query"},"id":5442,"name":"Identifier","src":"33298:14:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5377,"type":"uint256","value":"timestamp"},"id":5443,"name":"Identifier","src":"33313:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5379,"type":"string memory","value":"datasource"},"id":5444,"name":"Identifier","src":"33324:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5395,"type":"bytes memory[] memory","value":"dynargs"},"id":5445,"name":"Identifier","src":"33336:7:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5385,"type":"uint256","value":"gaslimit"},"id":5446,"name":"Identifier","src":"33345:8:5"}],"id":5447,"name":"FunctionCall","src":"33298:56:5"}],"id":5448,"name":"Return","src":"33291:63:5"}],"id":5449,"name":"Block","src":"33082:279:5"}],"id":5450,"name":"FunctionDefinition","src":"32951:410:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"datasource","scope":5522,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":5451,"name":"ElementaryTypeName","src":"33390:6:5"}],"id":5452,"name":"VariableDeclaration","src":"33390:17:5"},{"attributes":{"constant":false,"name":"args","scope":5522,"stateVariable":false,"storageLocation":"default","type":"bytes[5]","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"bytes[5]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":5453,"name":"ElementaryTypeName","src":"33409:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"35","isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"subdenomination":null,"token":"number","type":null,"value":"5"},"id":5454,"name":"Literal","src":"33415:1:5"}],"id":5455,"name":"ArrayTypeName","src":"33409:8:5"}],"id":5456,"name":"VariableDeclaration","src":"33409:13:5"},{"attributes":{"constant":false,"name":"gaslimit","scope":5522,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5457,"name":"ElementaryTypeName","src":"33424:4:5"}],"id":5458,"name":"VariableDeclaration","src":"33424:13:5"}],"id":5459,"name":"ParameterList","src":"33389:49:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":5522,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":5462,"name":"ElementaryTypeName","src":"33469:7:5"}],"id":5463,"name":"VariableDeclaration","src":"33469:10:5"}],"id":5464,"name":"ParameterList","src":"33468:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":5460,"name":"Identifier","src":"33439:11:5"}],"id":5461,"name":"ModifierInvocation","src":"33439:11:5"},{"children":[{"attributes":{"assignments":[5468]},"children":[{"attributes":{"constant":false,"name":"dynargs","scope":5522,"stateVariable":false,"storageLocation":"memory","type":"bytes[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"bytes[]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":5466,"name":"ElementaryTypeName","src":"33491:5:5"}],"id":5467,"name":"ArrayTypeName","src":"33491:7:5"}],"id":5468,"name":"VariableDeclaration","src":"33491:22:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory[] memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (bytes memory[] memory)"},"children":[{"attributes":{"length":null,"type":"bytes[]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":5469,"name":"ElementaryTypeName","src":"33520:5:5"}],"id":5470,"name":"ArrayTypeName","src":"33520:7:5"}],"id":5471,"name":"NewExpression","src":"33516:11:5"},{"attributes":{"argumentTypes":null,"hexvalue":"35","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 5","value":"5"},"id":5472,"name":"Literal","src":"33528:1:5"}],"id":5473,"name":"FunctionCall","src":"33516:14:5"}],"id":5474,"name":"VariableDeclarationStatement","src":"33491:39:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5468,"type":"bytes memory[] memory","value":"dynargs"},"id":5475,"name":"Identifier","src":"33540:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":5476,"name":"Literal","src":"33548:1:5"}],"id":5477,"name":"IndexAccess","src":"33540:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5456,"type":"bytes memory[5] memory","value":"args"},"id":5478,"name":"Identifier","src":"33553:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":5479,"name":"Literal","src":"33558:1:5"}],"id":5480,"name":"IndexAccess","src":"33553:7:5"}],"id":5481,"name":"Assignment","src":"33540:20:5"}],"id":5482,"name":"ExpressionStatement","src":"33540:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5468,"type":"bytes memory[] memory","value":"dynargs"},"id":5483,"name":"Identifier","src":"33570:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":5484,"name":"Literal","src":"33578:1:5"}],"id":5485,"name":"IndexAccess","src":"33570:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5456,"type":"bytes memory[5] memory","value":"args"},"id":5486,"name":"Identifier","src":"33583:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":5487,"name":"Literal","src":"33588:1:5"}],"id":5488,"name":"IndexAccess","src":"33583:7:5"}],"id":5489,"name":"Assignment","src":"33570:20:5"}],"id":5490,"name":"ExpressionStatement","src":"33570:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5468,"type":"bytes memory[] memory","value":"dynargs"},"id":5491,"name":"Identifier","src":"33600:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":5492,"name":"Literal","src":"33608:1:5"}],"id":5493,"name":"IndexAccess","src":"33600:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5456,"type":"bytes memory[5] memory","value":"args"},"id":5494,"name":"Identifier","src":"33613:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":5495,"name":"Literal","src":"33618:1:5"}],"id":5496,"name":"IndexAccess","src":"33613:7:5"}],"id":5497,"name":"Assignment","src":"33600:20:5"}],"id":5498,"name":"ExpressionStatement","src":"33600:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5468,"type":"bytes memory[] memory","value":"dynargs"},"id":5499,"name":"Identifier","src":"33630:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":5500,"name":"Literal","src":"33638:1:5"}],"id":5501,"name":"IndexAccess","src":"33630:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5456,"type":"bytes memory[5] memory","value":"args"},"id":5502,"name":"Identifier","src":"33643:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":5503,"name":"Literal","src":"33648:1:5"}],"id":5504,"name":"IndexAccess","src":"33643:7:5"}],"id":5505,"name":"Assignment","src":"33630:20:5"}],"id":5506,"name":"ExpressionStatement","src":"33630:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5468,"type":"bytes memory[] memory","value":"dynargs"},"id":5507,"name":"Identifier","src":"33660:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":5508,"name":"Literal","src":"33668:1:5"}],"id":5509,"name":"IndexAccess","src":"33660:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5456,"type":"bytes memory[5] memory","value":"args"},"id":5510,"name":"Identifier","src":"33673:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":5511,"name":"Literal","src":"33678:1:5"}],"id":5512,"name":"IndexAccess","src":"33673:7:5"}],"id":5513,"name":"Assignment","src":"33660:20:5"}],"id":5514,"name":"ExpressionStatement","src":"33660:20:5"},{"attributes":{"functionReturnParameters":5464},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_bytes_memory_$dyn_memory_ptr","typeString":"bytes memory[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[2566,2608,2654,2698,2741,2786,2835,2882,2929,2978,3031,3082,3119,3159,3202,3242,3287,3335,3386,3434,3487,3543,3602,3658,3719,3783,3850,3914,3983,4055,4130,4202,4249,4298,4351,4402,4439,4479,4522,4562,4607,4655,4706,4754,4807,4863,4922,4978,5039,5103,5170,5234,5303,5375,5450,5522],"referencedDeclaration":4402,"type":"function (string memory,bytes memory[] memory,uint256) returns (bytes32)","value":"oraclize_query"},"id":5515,"name":"Identifier","src":"33697:14:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5452,"type":"string memory","value":"datasource"},"id":5516,"name":"Identifier","src":"33712:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5468,"type":"bytes memory[] memory","value":"dynargs"},"id":5517,"name":"Identifier","src":"33724:7:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5458,"type":"uint256","value":"gaslimit"},"id":5518,"name":"Identifier","src":"33733:8:5"}],"id":5519,"name":"FunctionCall","src":"33697:45:5"}],"id":5520,"name":"Return","src":"33690:52:5"}],"id":5521,"name":"Block","src":"33481:268:5"}],"id":5522,"name":"FunctionDefinition","src":"33366:383:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_cbAddress","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":5523,"name":"ParameterList","src":"33782:2:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":5534,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":5526,"name":"ElementaryTypeName","src":"33815:7:5"}],"id":5527,"name":"VariableDeclaration","src":"33815:7:5"}],"id":5528,"name":"ParameterList","src":"33814:9:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":5524,"name":"Identifier","src":"33785:11:5"}],"id":5525,"name":"ModifierInvocation","src":"33785:11:5"},{"children":[{"attributes":{"functionReturnParameters":5528},"children":[{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"cbAddress","referencedDeclaration":1551,"type":"function () view external returns (address)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2257,"type":"contract OraclizeI","value":"oraclize"},"id":5529,"name":"Identifier","src":"33840:8:5"}],"id":5530,"name":"MemberAccess","src":"33840:18:5"}],"id":5531,"name":"FunctionCall","src":"33840:20:5"}],"id":5532,"name":"Return","src":"33833:27:5"}],"id":5533,"name":"Block","src":"33823:44:5"}],"id":5534,"name":"FunctionDefinition","src":"33755:112:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_setProof","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"proofP","scope":5547,"stateVariable":false,"storageLocation":"default","type":"bytes1","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"byte","type":"bytes1"},"id":5535,"name":"ElementaryTypeName","src":"33899:4:5"}],"id":5536,"name":"VariableDeclaration","src":"33899:11:5"}],"id":5537,"name":"ParameterList","src":"33898:13:5"},{"attributes":{"parameters":[null]},"children":[],"id":5540,"name":"ParameterList","src":"33933:0:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":5538,"name":"Identifier","src":"33912:11:5"}],"id":5539,"name":"ModifierInvocation","src":"33912:11:5"},{"children":[{"attributes":{"functionReturnParameters":5540},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"setProofType","referencedDeclaration":1648,"type":"function (bytes1) external"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2257,"type":"contract OraclizeI","value":"oraclize"},"id":5541,"name":"Identifier","src":"33950:8:5"}],"id":5542,"name":"MemberAccess","src":"33950:21:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5536,"type":"bytes1","value":"proofP"},"id":5543,"name":"Identifier","src":"33972:6:5"}],"id":5544,"name":"FunctionCall","src":"33950:29:5"}],"id":5545,"name":"Return","src":"33943:36:5"}],"id":5546,"name":"Block","src":"33933:53:5"}],"id":5547,"name":"FunctionDefinition","src":"33872:114:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_setCustomGasPrice","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"gasPrice","scope":5560,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5548,"name":"ElementaryTypeName","src":"34027:4:5"}],"id":5549,"name":"VariableDeclaration","src":"34027:13:5"}],"id":5550,"name":"ParameterList","src":"34026:15:5"},{"attributes":{"parameters":[null]},"children":[],"id":5553,"name":"ParameterList","src":"34063:0:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":5551,"name":"Identifier","src":"34042:11:5"}],"id":5552,"name":"ModifierInvocation","src":"34042:11:5"},{"children":[{"attributes":{"functionReturnParameters":5553},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"setCustomGasPrice","referencedDeclaration":1653,"type":"function (uint256) external"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2257,"type":"contract OraclizeI","value":"oraclize"},"id":5554,"name":"Identifier","src":"34080:8:5"}],"id":5555,"name":"MemberAccess","src":"34080:26:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5549,"type":"uint256","value":"gasPrice"},"id":5556,"name":"Identifier","src":"34107:8:5"}],"id":5557,"name":"FunctionCall","src":"34080:36:5"}],"id":5558,"name":"Return","src":"34073:43:5"}],"id":5559,"name":"Block","src":"34063:60:5"}],"id":5560,"name":"FunctionDefinition","src":"33991:132:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_randomDS_getSessionPubKeyHash","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":5561,"name":"ParameterList","src":"34176:2:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":5572,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":5564,"name":"ElementaryTypeName","src":"34209:7:5"}],"id":5565,"name":"VariableDeclaration","src":"34209:7:5"}],"id":5566,"name":"ParameterList","src":"34208:9:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":5562,"name":"Identifier","src":"34179:11:5"}],"id":5563,"name":"ModifierInvocation","src":"34179:11:5"},{"children":[{"attributes":{"functionReturnParameters":5566},"children":[{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"randomDS_getSessionPubKeyHash","referencedDeclaration":1658,"type":"function () view external returns (bytes32)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2257,"type":"contract OraclizeI","value":"oraclize"},"id":5567,"name":"Identifier","src":"34234:8:5"}],"id":5568,"name":"MemberAccess","src":"34234:38:5"}],"id":5569,"name":"FunctionCall","src":"34234:40:5"}],"id":5570,"name":"Return","src":"34227:47:5"}],"id":5571,"name":"Block","src":"34217:64:5"}],"id":5572,"name":"FunctionDefinition","src":"34129:152:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"getCodeSize","payable":false,"scope":7573,"stateMutability":"view","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_addr","scope":5581,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":5573,"name":"ElementaryTypeName","src":"34308:7:5"}],"id":5574,"name":"VariableDeclaration","src":"34308:13:5"}],"id":5575,"name":"ParameterList","src":"34307:15:5"},{"children":[{"attributes":{"constant":false,"name":"_size","scope":5581,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5576,"name":"ElementaryTypeName","src":"34345:4:5"}],"id":5577,"name":"VariableDeclaration","src":"34345:10:5"}],"id":5578,"name":"ParameterList","src":"34344:12:5"},{"children":[{"attributes":{"externalReferences":[{"_addr":{"declaration":5574,"isOffset":false,"isSlot":false,"src":"34411:5:5","valueSize":1}},{"_size":{"declaration":5577,"isOffset":false,"isSlot":false,"src":"34390:5:5","valueSize":1}}],"operations":"{\n _size := extcodesize(_addr)\n}"},"children":[],"id":5579,"name":"InlineAssembly","src":"34367:66:5"}],"id":5580,"name":"Block","src":"34357:76:5"}],"id":5581,"name":"FunctionDefinition","src":"34287:146:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"parseAddr","payable":false,"scope":7573,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_a","scope":5741,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":5582,"name":"ElementaryTypeName","src":"34458:6:5"}],"id":5583,"name":"VariableDeclaration","src":"34458:9:5"}],"id":5584,"name":"ParameterList","src":"34457:11:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":5741,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":5585,"name":"ElementaryTypeName","src":"34492:7:5"}],"id":5586,"name":"VariableDeclaration","src":"34492:7:5"}],"id":5587,"name":"ParameterList","src":"34491:9:5"},{"children":[{"attributes":{"assignments":[5589]},"children":[{"attributes":{"constant":false,"name":"tmp","scope":5741,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":5588,"name":"ElementaryTypeName","src":"34510:5:5"}],"id":5589,"name":"VariableDeclaration","src":"34510:16:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes storage pointer)","value":"bytes"},"id":5590,"name":"ElementaryTypeNameExpression","src":"34529:5:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5583,"type":"string memory","value":"_a"},"id":5591,"name":"Identifier","src":"34535:2:5"}],"id":5592,"name":"FunctionCall","src":"34529:9:5"}],"id":5593,"name":"VariableDeclarationStatement","src":"34510:28:5"},{"attributes":{"assignments":[5595]},"children":[{"attributes":{"constant":false,"name":"iaddr","scope":5741,"stateVariable":false,"storageLocation":"default","type":"uint160","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint160","type":"uint160"},"id":5594,"name":"ElementaryTypeName","src":"34548:7:5"}],"id":5595,"name":"VariableDeclaration","src":"34548:13:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":5596,"name":"Literal","src":"34564:1:5"}],"id":5597,"name":"VariableDeclarationStatement","src":"34548:17:5"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"b1","scope":5741,"stateVariable":false,"storageLocation":"default","type":"uint160","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint160","type":"uint160"},"id":5598,"name":"ElementaryTypeName","src":"34575:7:5"}],"id":5599,"name":"VariableDeclaration","src":"34575:10:5"}],"id":5600,"name":"VariableDeclarationStatement","src":"34575:10:5"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"b2","scope":5741,"stateVariable":false,"storageLocation":"default","type":"uint160","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint160","type":"uint160"},"id":5601,"name":"ElementaryTypeName","src":"34595:7:5"}],"id":5602,"name":"VariableDeclaration","src":"34595:10:5"}],"id":5603,"name":"VariableDeclarationStatement","src":"34595:10:5"},{"children":[{"attributes":{"assignments":[5605]},"children":[{"attributes":{"constant":false,"name":"i","scope":5741,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5604,"name":"ElementaryTypeName","src":"34620:4:5"}],"id":5605,"name":"VariableDeclaration","src":"34620:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":5606,"name":"Literal","src":"34627:1:5"}],"id":5607,"name":"VariableDeclarationStatement","src":"34620:8:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5605,"type":"uint256","value":"i"},"id":5608,"name":"Identifier","src":"34630:1:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_42_by_1","typeString":"int_const 42"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"+","type":"int_const 42"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":5609,"name":"Literal","src":"34632:1:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_40_by_1","typeString":"int_const 40"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"*","type":"int_const 40"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":5610,"name":"Literal","src":"34634:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3230","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 20","value":"20"},"id":5611,"name":"Literal","src":"34636:2:5"}],"id":5612,"name":"BinaryOperation","src":"34634:4:5"}],"id":5613,"name":"BinaryOperation","src":"34632:6:5"}],"id":5614,"name":"BinaryOperation","src":"34630:8:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5605,"type":"uint256","value":"i"},"id":5615,"name":"Identifier","src":"34640:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":5616,"name":"Literal","src":"34643:1:5"}],"id":5617,"name":"Assignment","src":"34640:4:5"}],"id":5618,"name":"ExpressionStatement","src":"34640:4:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*=","type":"uint160"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5595,"type":"uint160","value":"iaddr"},"id":5619,"name":"Identifier","src":"34659:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"323536","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 256","value":"256"},"id":5620,"name":"Literal","src":"34668:3:5"}],"id":5621,"name":"Assignment","src":"34659:12:5"}],"id":5622,"name":"ExpressionStatement","src":"34659:12:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint160"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5599,"type":"uint160","value":"b1"},"id":5623,"name":"Identifier","src":"34685:2:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint160","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint160)","value":"uint160"},"id":5624,"name":"ElementaryTypeNameExpression","src":"34690:7:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5589,"type":"bytes memory","value":"tmp"},"id":5625,"name":"Identifier","src":"34698:3:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5605,"type":"uint256","value":"i"},"id":5626,"name":"Identifier","src":"34702:1:5"}],"id":5627,"name":"IndexAccess","src":"34698:6:5"}],"id":5628,"name":"FunctionCall","src":"34690:15:5"}],"id":5629,"name":"Assignment","src":"34685:20:5"}],"id":5630,"name":"ExpressionStatement","src":"34685:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint160"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5602,"type":"uint160","value":"b2"},"id":5631,"name":"Identifier","src":"34719:2:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint160","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint160)","value":"uint160"},"id":5632,"name":"ElementaryTypeNameExpression","src":"34724:7:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5589,"type":"bytes memory","value":"tmp"},"id":5633,"name":"Identifier","src":"34732:3:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5605,"type":"uint256","value":"i"},"id":5634,"name":"Identifier","src":"34736:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":5635,"name":"Literal","src":"34738:1:5"}],"id":5636,"name":"BinaryOperation","src":"34736:3:5"}],"id":5637,"name":"IndexAccess","src":"34732:8:5"}],"id":5638,"name":"FunctionCall","src":"34724:17:5"}],"id":5639,"name":"Assignment","src":"34719:22:5"}],"id":5640,"name":"ExpressionStatement","src":"34719:22:5"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&&","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint160","typeString":"uint160"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5599,"type":"uint160","value":"b1"},"id":5641,"name":"Identifier","src":"34760:2:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3937","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 97","value":"97"},"id":5642,"name":"Literal","src":"34766:2:5"}],"id":5643,"name":"BinaryOperation","src":"34760:8:5"}],"id":5644,"name":"TupleExpression","src":"34759:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint160","typeString":"uint160"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5599,"type":"uint160","value":"b1"},"id":5645,"name":"Identifier","src":"34772:2:5"},{"attributes":{"argumentTypes":null,"hexvalue":"313032","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 102","value":"102"},"id":5646,"name":"Literal","src":"34778:3:5"}],"id":5647,"name":"BinaryOperation","src":"34772:9:5"}],"id":5648,"name":"TupleExpression","src":"34771:11:5"}],"id":5649,"name":"BinaryOperation","src":"34759:23:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-=","type":"uint160"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5599,"type":"uint160","value":"b1"},"id":5650,"name":"Identifier","src":"34784:2:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3837","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 87","value":"87"},"id":5651,"name":"Literal","src":"34790:2:5"}],"id":5652,"name":"Assignment","src":"34784:8:5"}],"id":5653,"name":"ExpressionStatement","src":"34784:8:5"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&&","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint160","typeString":"uint160"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5599,"type":"uint160","value":"b1"},"id":5654,"name":"Identifier","src":"34816:2:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3635","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 65","value":"65"},"id":5655,"name":"Literal","src":"34822:2:5"}],"id":5656,"name":"BinaryOperation","src":"34816:8:5"}],"id":5657,"name":"TupleExpression","src":"34815:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint160","typeString":"uint160"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5599,"type":"uint160","value":"b1"},"id":5658,"name":"Identifier","src":"34828:2:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3730","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 70","value":"70"},"id":5659,"name":"Literal","src":"34834:2:5"}],"id":5660,"name":"BinaryOperation","src":"34828:8:5"}],"id":5661,"name":"TupleExpression","src":"34827:10:5"}],"id":5662,"name":"BinaryOperation","src":"34815:22:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-=","type":"uint160"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5599,"type":"uint160","value":"b1"},"id":5663,"name":"Identifier","src":"34839:2:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3535","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 55","value":"55"},"id":5664,"name":"Literal","src":"34845:2:5"}],"id":5665,"name":"Assignment","src":"34839:8:5"}],"id":5666,"name":"ExpressionStatement","src":"34839:8:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&&","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint160","typeString":"uint160"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5599,"type":"uint160","value":"b1"},"id":5667,"name":"Identifier","src":"34871:2:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3438","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 48","value":"48"},"id":5668,"name":"Literal","src":"34877:2:5"}],"id":5669,"name":"BinaryOperation","src":"34871:8:5"}],"id":5670,"name":"TupleExpression","src":"34870:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint160","typeString":"uint160"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5599,"type":"uint160","value":"b1"},"id":5671,"name":"Identifier","src":"34883:2:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3537","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 57","value":"57"},"id":5672,"name":"Literal","src":"34889:2:5"}],"id":5673,"name":"BinaryOperation","src":"34883:8:5"}],"id":5674,"name":"TupleExpression","src":"34882:10:5"}],"id":5675,"name":"BinaryOperation","src":"34870:22:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-=","type":"uint160"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5599,"type":"uint160","value":"b1"},"id":5676,"name":"Identifier","src":"34894:2:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3438","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 48","value":"48"},"id":5677,"name":"Literal","src":"34900:2:5"}],"id":5678,"name":"Assignment","src":"34894:8:5"}],"id":5679,"name":"ExpressionStatement","src":"34894:8:5"}],"id":5680,"name":"IfStatement","src":"34866:36:5"}],"id":5681,"name":"IfStatement","src":"34811:91:5"}],"id":5682,"name":"IfStatement","src":"34755:147:5"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&&","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint160","typeString":"uint160"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5602,"type":"uint160","value":"b2"},"id":5683,"name":"Identifier","src":"34921:2:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3937","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 97","value":"97"},"id":5684,"name":"Literal","src":"34927:2:5"}],"id":5685,"name":"BinaryOperation","src":"34921:8:5"}],"id":5686,"name":"TupleExpression","src":"34920:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint160","typeString":"uint160"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5602,"type":"uint160","value":"b2"},"id":5687,"name":"Identifier","src":"34933:2:5"},{"attributes":{"argumentTypes":null,"hexvalue":"313032","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 102","value":"102"},"id":5688,"name":"Literal","src":"34939:3:5"}],"id":5689,"name":"BinaryOperation","src":"34933:9:5"}],"id":5690,"name":"TupleExpression","src":"34932:11:5"}],"id":5691,"name":"BinaryOperation","src":"34920:23:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-=","type":"uint160"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5602,"type":"uint160","value":"b2"},"id":5692,"name":"Identifier","src":"34945:2:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3837","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 87","value":"87"},"id":5693,"name":"Literal","src":"34951:2:5"}],"id":5694,"name":"Assignment","src":"34945:8:5"}],"id":5695,"name":"ExpressionStatement","src":"34945:8:5"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&&","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint160","typeString":"uint160"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5602,"type":"uint160","value":"b2"},"id":5696,"name":"Identifier","src":"34977:2:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3635","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 65","value":"65"},"id":5697,"name":"Literal","src":"34983:2:5"}],"id":5698,"name":"BinaryOperation","src":"34977:8:5"}],"id":5699,"name":"TupleExpression","src":"34976:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint160","typeString":"uint160"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5602,"type":"uint160","value":"b2"},"id":5700,"name":"Identifier","src":"34989:2:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3730","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 70","value":"70"},"id":5701,"name":"Literal","src":"34995:2:5"}],"id":5702,"name":"BinaryOperation","src":"34989:8:5"}],"id":5703,"name":"TupleExpression","src":"34988:10:5"}],"id":5704,"name":"BinaryOperation","src":"34976:22:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-=","type":"uint160"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5602,"type":"uint160","value":"b2"},"id":5705,"name":"Identifier","src":"35000:2:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3535","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 55","value":"55"},"id":5706,"name":"Literal","src":"35006:2:5"}],"id":5707,"name":"Assignment","src":"35000:8:5"}],"id":5708,"name":"ExpressionStatement","src":"35000:8:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&&","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint160","typeString":"uint160"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5602,"type":"uint160","value":"b2"},"id":5709,"name":"Identifier","src":"35032:2:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3438","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 48","value":"48"},"id":5710,"name":"Literal","src":"35038:2:5"}],"id":5711,"name":"BinaryOperation","src":"35032:8:5"}],"id":5712,"name":"TupleExpression","src":"35031:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint160","typeString":"uint160"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5602,"type":"uint160","value":"b2"},"id":5713,"name":"Identifier","src":"35044:2:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3537","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 57","value":"57"},"id":5714,"name":"Literal","src":"35050:2:5"}],"id":5715,"name":"BinaryOperation","src":"35044:8:5"}],"id":5716,"name":"TupleExpression","src":"35043:10:5"}],"id":5717,"name":"BinaryOperation","src":"35031:22:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-=","type":"uint160"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5602,"type":"uint160","value":"b2"},"id":5718,"name":"Identifier","src":"35055:2:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3438","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 48","value":"48"},"id":5719,"name":"Literal","src":"35061:2:5"}],"id":5720,"name":"Assignment","src":"35055:8:5"}],"id":5721,"name":"ExpressionStatement","src":"35055:8:5"}],"id":5722,"name":"IfStatement","src":"35027:36:5"}],"id":5723,"name":"IfStatement","src":"34972:91:5"}],"id":5724,"name":"IfStatement","src":"34916:147:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint160"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5595,"type":"uint160","value":"iaddr"},"id":5725,"name":"Identifier","src":"35077:5:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint160"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint160","typeString":"uint160"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint160"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint160","typeString":"uint160"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint160"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5599,"type":"uint160","value":"b1"},"id":5726,"name":"Identifier","src":"35087:2:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3136","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 16","value":"16"},"id":5727,"name":"Literal","src":"35090:2:5"}],"id":5728,"name":"BinaryOperation","src":"35087:5:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5602,"type":"uint160","value":"b2"},"id":5729,"name":"Identifier","src":"35093:2:5"}],"id":5730,"name":"BinaryOperation","src":"35087:8:5"}],"id":5731,"name":"TupleExpression","src":"35086:10:5"}],"id":5732,"name":"Assignment","src":"35077:19:5"}],"id":5733,"name":"ExpressionStatement","src":"35077:19:5"}],"id":5734,"name":"Block","src":"34645:462:5"}],"id":5735,"name":"ForStatement","src":"34615:492:5"},{"attributes":{"functionReturnParameters":5587},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":5736,"name":"ElementaryTypeNameExpression","src":"35123:7:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5595,"type":"uint160","value":"iaddr"},"id":5737,"name":"Identifier","src":"35131:5:5"}],"id":5738,"name":"FunctionCall","src":"35123:14:5"}],"id":5739,"name":"Return","src":"35116:21:5"}],"id":5740,"name":"Block","src":"34500:644:5"}],"id":5741,"name":"FunctionDefinition","src":"34439:705:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"strCompare","payable":false,"scope":7573,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_a","scope":5829,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":5742,"name":"ElementaryTypeName","src":"35170:6:5"}],"id":5743,"name":"VariableDeclaration","src":"35170:9:5"},{"attributes":{"constant":false,"name":"_b","scope":5829,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":5744,"name":"ElementaryTypeName","src":"35181:6:5"}],"id":5745,"name":"VariableDeclaration","src":"35181:9:5"}],"id":5746,"name":"ParameterList","src":"35169:22:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":5829,"stateVariable":false,"storageLocation":"default","type":"int256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"int","type":"int256"},"id":5747,"name":"ElementaryTypeName","src":"35215:3:5"}],"id":5748,"name":"VariableDeclaration","src":"35215:3:5"}],"id":5749,"name":"ParameterList","src":"35214:5:5"},{"children":[{"attributes":{"assignments":[5751]},"children":[{"attributes":{"constant":false,"name":"a","scope":5829,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":5750,"name":"ElementaryTypeName","src":"35230:5:5"}],"id":5751,"name":"VariableDeclaration","src":"35230:14:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes storage pointer)","value":"bytes"},"id":5752,"name":"ElementaryTypeNameExpression","src":"35247:5:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5743,"type":"string memory","value":"_a"},"id":5753,"name":"Identifier","src":"35253:2:5"}],"id":5754,"name":"FunctionCall","src":"35247:9:5"}],"id":5755,"name":"VariableDeclarationStatement","src":"35230:26:5"},{"attributes":{"assignments":[5757]},"children":[{"attributes":{"constant":false,"name":"b","scope":5829,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":5756,"name":"ElementaryTypeName","src":"35266:5:5"}],"id":5757,"name":"VariableDeclaration","src":"35266:14:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes storage pointer)","value":"bytes"},"id":5758,"name":"ElementaryTypeNameExpression","src":"35283:5:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5745,"type":"string memory","value":"_b"},"id":5759,"name":"Identifier","src":"35289:2:5"}],"id":5760,"name":"FunctionCall","src":"35283:9:5"}],"id":5761,"name":"VariableDeclarationStatement","src":"35266:26:5"},{"attributes":{"assignments":[5763]},"children":[{"attributes":{"constant":false,"name":"minLength","scope":5829,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5762,"name":"ElementaryTypeName","src":"35302:4:5"}],"id":5763,"name":"VariableDeclaration","src":"35302:14:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5751,"type":"bytes memory","value":"a"},"id":5764,"name":"Identifier","src":"35319:1:5"}],"id":5765,"name":"MemberAccess","src":"35319:8:5"}],"id":5766,"name":"VariableDeclarationStatement","src":"35302:25:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5757,"type":"bytes memory","value":"b"},"id":5767,"name":"Identifier","src":"35341:1:5"}],"id":5768,"name":"MemberAccess","src":"35341:8:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5763,"type":"uint256","value":"minLength"},"id":5769,"name":"Identifier","src":"35352:9:5"}],"id":5770,"name":"BinaryOperation","src":"35341:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5763,"type":"uint256","value":"minLength"},"id":5771,"name":"Identifier","src":"35363:9:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5757,"type":"bytes memory","value":"b"},"id":5772,"name":"Identifier","src":"35375:1:5"}],"id":5773,"name":"MemberAccess","src":"35375:8:5"}],"id":5774,"name":"Assignment","src":"35363:20:5"}],"id":5775,"name":"ExpressionStatement","src":"35363:20:5"}],"id":5776,"name":"IfStatement","src":"35337:46:5"},{"children":[{"attributes":{"assignments":[5778]},"children":[{"attributes":{"constant":false,"name":"i","scope":5829,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5777,"name":"ElementaryTypeName","src":"35398:4:5"}],"id":5778,"name":"VariableDeclaration","src":"35398:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":5779,"name":"Literal","src":"35407:1:5"}],"id":5780,"name":"VariableDeclarationStatement","src":"35398:10:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5778,"type":"uint256","value":"i"},"id":5781,"name":"Identifier","src":"35410:1:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5763,"type":"uint256","value":"minLength"},"id":5782,"name":"Identifier","src":"35414:9:5"}],"id":5783,"name":"BinaryOperation","src":"35410:13:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5778,"type":"uint256","value":"i"},"id":5784,"name":"Identifier","src":"35425:1:5"}],"id":5785,"name":"UnaryOperation","src":"35425:4:5"}],"id":5786,"name":"ExpressionStatement","src":"35425:4:5"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5751,"type":"bytes memory","value":"a"},"id":5787,"name":"Identifier","src":"35447:1:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5778,"type":"uint256","value":"i"},"id":5788,"name":"Identifier","src":"35449:1:5"}],"id":5789,"name":"IndexAccess","src":"35447:4:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5757,"type":"bytes memory","value":"b"},"id":5790,"name":"Identifier","src":"35454:1:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5778,"type":"uint256","value":"i"},"id":5791,"name":"Identifier","src":"35456:1:5"}],"id":5792,"name":"IndexAccess","src":"35454:4:5"}],"id":5793,"name":"BinaryOperation","src":"35447:11:5"},{"attributes":{"functionReturnParameters":5749},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"-","prefix":true,"type":"int_const -1"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":5794,"name":"Literal","src":"35484:1:5"}],"id":5795,"name":"UnaryOperation","src":"35483:2:5"}],"id":5796,"name":"Return","src":"35476:9:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5751,"type":"bytes memory","value":"a"},"id":5797,"name":"Identifier","src":"35508:1:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5778,"type":"uint256","value":"i"},"id":5798,"name":"Identifier","src":"35510:1:5"}],"id":5799,"name":"IndexAccess","src":"35508:4:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5757,"type":"bytes memory","value":"b"},"id":5800,"name":"Identifier","src":"35515:1:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5778,"type":"uint256","value":"i"},"id":5801,"name":"Identifier","src":"35517:1:5"}],"id":5802,"name":"IndexAccess","src":"35515:4:5"}],"id":5803,"name":"BinaryOperation","src":"35508:11:5"},{"attributes":{"functionReturnParameters":5749},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":5804,"name":"Literal","src":"35544:1:5"}],"id":5805,"name":"Return","src":"35537:8:5"}],"id":5806,"name":"IfStatement","src":"35504:41:5"}],"id":5807,"name":"IfStatement","src":"35443:102:5"}],"id":5808,"name":"ForStatement","src":"35393:152:5"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5751,"type":"bytes memory","value":"a"},"id":5809,"name":"Identifier","src":"35559:1:5"}],"id":5810,"name":"MemberAccess","src":"35559:8:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5757,"type":"bytes memory","value":"b"},"id":5811,"name":"Identifier","src":"35570:1:5"}],"id":5812,"name":"MemberAccess","src":"35570:8:5"}],"id":5813,"name":"BinaryOperation","src":"35559:19:5"},{"attributes":{"functionReturnParameters":5749},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"-","prefix":true,"type":"int_const -1"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":5814,"name":"Literal","src":"35600:1:5"}],"id":5815,"name":"UnaryOperation","src":"35599:2:5"}],"id":5816,"name":"Return","src":"35592:9:5"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5751,"type":"bytes memory","value":"a"},"id":5817,"name":"Identifier","src":"35620:1:5"}],"id":5818,"name":"MemberAccess","src":"35620:8:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5757,"type":"bytes memory","value":"b"},"id":5819,"name":"Identifier","src":"35631:1:5"}],"id":5820,"name":"MemberAccess","src":"35631:8:5"}],"id":5821,"name":"BinaryOperation","src":"35620:19:5"},{"attributes":{"functionReturnParameters":5749},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":5822,"name":"Literal","src":"35660:1:5"}],"id":5823,"name":"Return","src":"35653:8:5"},{"attributes":{"functionReturnParameters":5749},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":5824,"name":"Literal","src":"35695:1:5"}],"id":5825,"name":"Return","src":"35688:8:5"}],"id":5826,"name":"IfStatement","src":"35616:80:5"}],"id":5827,"name":"IfStatement","src":"35555:141:5"}],"id":5828,"name":"Block","src":"35220:483:5"}],"id":5829,"name":"FunctionDefinition","src":"35150:553:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"indexOf","payable":false,"scope":7573,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_haystack","scope":5954,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":5830,"name":"ElementaryTypeName","src":"35726:6:5"}],"id":5831,"name":"VariableDeclaration","src":"35726:16:5"},{"attributes":{"constant":false,"name":"_needle","scope":5954,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":5832,"name":"ElementaryTypeName","src":"35744:6:5"}],"id":5833,"name":"VariableDeclaration","src":"35744:14:5"}],"id":5834,"name":"ParameterList","src":"35725:34:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":5954,"stateVariable":false,"storageLocation":"default","type":"int256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"int","type":"int256"},"id":5835,"name":"ElementaryTypeName","src":"35783:3:5"}],"id":5836,"name":"VariableDeclaration","src":"35783:3:5"}],"id":5837,"name":"ParameterList","src":"35782:5:5"},{"children":[{"attributes":{"assignments":[5839]},"children":[{"attributes":{"constant":false,"name":"h","scope":5954,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":5838,"name":"ElementaryTypeName","src":"35798:5:5"}],"id":5839,"name":"VariableDeclaration","src":"35798:14:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes storage pointer)","value":"bytes"},"id":5840,"name":"ElementaryTypeNameExpression","src":"35815:5:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5831,"type":"string memory","value":"_haystack"},"id":5841,"name":"Identifier","src":"35821:9:5"}],"id":5842,"name":"FunctionCall","src":"35815:16:5"}],"id":5843,"name":"VariableDeclarationStatement","src":"35798:33:5"},{"attributes":{"assignments":[5845]},"children":[{"attributes":{"constant":false,"name":"n","scope":5954,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":5844,"name":"ElementaryTypeName","src":"35841:5:5"}],"id":5845,"name":"VariableDeclaration","src":"35841:14:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes storage pointer)","value":"bytes"},"id":5846,"name":"ElementaryTypeNameExpression","src":"35858:5:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5833,"type":"string memory","value":"_needle"},"id":5847,"name":"Identifier","src":"35864:7:5"}],"id":5848,"name":"FunctionCall","src":"35858:14:5"}],"id":5849,"name":"VariableDeclarationStatement","src":"35841:31:5"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"||","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"||","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5839,"type":"bytes memory","value":"h"},"id":5850,"name":"Identifier","src":"35885:1:5"}],"id":5851,"name":"MemberAccess","src":"35885:8:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":5852,"name":"Literal","src":"35896:1:5"}],"id":5853,"name":"BinaryOperation","src":"35885:12:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5845,"type":"bytes memory","value":"n"},"id":5854,"name":"Identifier","src":"35901:1:5"}],"id":5855,"name":"MemberAccess","src":"35901:8:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":5856,"name":"Literal","src":"35912:1:5"}],"id":5857,"name":"BinaryOperation","src":"35901:12:5"}],"id":5858,"name":"BinaryOperation","src":"35885:28:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5845,"type":"bytes memory","value":"n"},"id":5859,"name":"Identifier","src":"35918:1:5"}],"id":5860,"name":"MemberAccess","src":"35918:8:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5839,"type":"bytes memory","value":"h"},"id":5861,"name":"Identifier","src":"35929:1:5"}],"id":5862,"name":"MemberAccess","src":"35929:8:5"}],"id":5863,"name":"BinaryOperation","src":"35918:19:5"}],"id":5864,"name":"TupleExpression","src":"35917:21:5"}],"id":5865,"name":"BinaryOperation","src":"35885:53:5"},{"attributes":{"functionReturnParameters":5837},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"-","prefix":true,"type":"int_const -1"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":5866,"name":"Literal","src":"35960:1:5"}],"id":5867,"name":"UnaryOperation","src":"35959:2:5"}],"id":5868,"name":"Return","src":"35952:9:5"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5839,"type":"bytes memory","value":"h"},"id":5869,"name":"Identifier","src":"35979:1:5"}],"id":5870,"name":"MemberAccess","src":"35979:8:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"int_const 3402...(31 digits omitted)...1455"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_340282366920938463463374607431768211455_by_1","typeString":"int_const 3402...(31 digits omitted)...1455"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"-","type":"int_const 3402...(31 digits omitted)...1455"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"**","type":"int_const 3402...(31 digits omitted)...1456"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":5871,"name":"Literal","src":"35991:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"313238","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 128","value":"128"},"id":5872,"name":"Literal","src":"35994:3:5"}],"id":5873,"name":"BinaryOperation","src":"35991:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":5874,"name":"Literal","src":"35999:1:5"}],"id":5875,"name":"BinaryOperation","src":"35991:9:5"}],"id":5876,"name":"TupleExpression","src":"35990:11:5"}],"id":5877,"name":"BinaryOperation","src":"35979:22:5"},{"attributes":{"functionReturnParameters":5837},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"-","prefix":true,"type":"int_const -1"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":5878,"name":"Literal","src":"36023:1:5"}],"id":5879,"name":"UnaryOperation","src":"36022:2:5"}],"id":5880,"name":"Return","src":"36015:9:5"},{"children":[{"attributes":{"assignments":[5882]},"children":[{"attributes":{"constant":false,"name":"subindex","scope":5954,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5881,"name":"ElementaryTypeName","src":"36061:4:5"}],"id":5882,"name":"VariableDeclaration","src":"36061:13:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":5883,"name":"Literal","src":"36077:1:5"}],"id":5884,"name":"VariableDeclarationStatement","src":"36061:17:5"},{"children":[{"attributes":{"assignments":[5886]},"children":[{"attributes":{"constant":false,"name":"i","scope":5954,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5885,"name":"ElementaryTypeName","src":"36097:4:5"}],"id":5886,"name":"VariableDeclaration","src":"36097:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":5887,"name":"Literal","src":"36106:1:5"}],"id":5888,"name":"VariableDeclarationStatement","src":"36097:10:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5886,"type":"uint256","value":"i"},"id":5889,"name":"Identifier","src":"36109:1:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5839,"type":"bytes memory","value":"h"},"id":5890,"name":"Identifier","src":"36113:1:5"}],"id":5891,"name":"MemberAccess","src":"36113:8:5"}],"id":5892,"name":"BinaryOperation","src":"36109:12:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5886,"type":"uint256","value":"i"},"id":5893,"name":"Identifier","src":"36123:1:5"}],"id":5894,"name":"UnaryOperation","src":"36123:4:5"}],"id":5895,"name":"ExpressionStatement","src":"36123:4:5"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5839,"type":"bytes memory","value":"h"},"id":5896,"name":"Identifier","src":"36163:1:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5886,"type":"uint256","value":"i"},"id":5897,"name":"Identifier","src":"36165:1:5"}],"id":5898,"name":"IndexAccess","src":"36163:4:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5845,"type":"bytes memory","value":"n"},"id":5899,"name":"Identifier","src":"36171:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":5900,"name":"Literal","src":"36173:1:5"}],"id":5901,"name":"IndexAccess","src":"36171:4:5"}],"id":5902,"name":"BinaryOperation","src":"36163:12:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5882,"type":"uint256","value":"subindex"},"id":5903,"name":"Identifier","src":"36215:8:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":5904,"name":"Literal","src":"36226:1:5"}],"id":5905,"name":"Assignment","src":"36215:12:5"}],"id":5906,"name":"ExpressionStatement","src":"36215:12:5"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&&","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&&","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5882,"type":"uint256","value":"subindex"},"id":5907,"name":"Identifier","src":"36255:8:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5845,"type":"bytes memory","value":"n"},"id":5908,"name":"Identifier","src":"36266:1:5"}],"id":5909,"name":"MemberAccess","src":"36266:8:5"}],"id":5910,"name":"BinaryOperation","src":"36255:19:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5886,"type":"uint256","value":"i"},"id":5911,"name":"Identifier","src":"36279:1:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5882,"type":"uint256","value":"subindex"},"id":5912,"name":"Identifier","src":"36283:8:5"}],"id":5913,"name":"BinaryOperation","src":"36279:12:5"}],"id":5914,"name":"TupleExpression","src":"36278:14:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5839,"type":"bytes memory","value":"h"},"id":5915,"name":"Identifier","src":"36295:1:5"}],"id":5916,"name":"MemberAccess","src":"36295:8:5"}],"id":5917,"name":"BinaryOperation","src":"36278:25:5"}],"id":5918,"name":"BinaryOperation","src":"36255:48:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5839,"type":"bytes memory","value":"h"},"id":5919,"name":"Identifier","src":"36307:1:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5886,"type":"uint256","value":"i"},"id":5920,"name":"Identifier","src":"36309:1:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5882,"type":"uint256","value":"subindex"},"id":5921,"name":"Identifier","src":"36313:8:5"}],"id":5922,"name":"BinaryOperation","src":"36309:12:5"}],"id":5923,"name":"IndexAccess","src":"36307:15:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5845,"type":"bytes memory","value":"n"},"id":5924,"name":"Identifier","src":"36326:1:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5882,"type":"uint256","value":"subindex"},"id":5925,"name":"Identifier","src":"36328:8:5"}],"id":5926,"name":"IndexAccess","src":"36326:11:5"}],"id":5927,"name":"BinaryOperation","src":"36307:30:5"}],"id":5928,"name":"BinaryOperation","src":"36255:82:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5882,"type":"uint256","value":"subindex"},"id":5929,"name":"Identifier","src":"36385:8:5"}],"id":5930,"name":"UnaryOperation","src":"36385:10:5"}],"id":5931,"name":"ExpressionStatement","src":"36385:10:5"}],"id":5932,"name":"Block","src":"36359:59:5"}],"id":5933,"name":"WhileStatement","src":"36249:169:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5882,"type":"uint256","value":"subindex"},"id":5934,"name":"Identifier","src":"36442:8:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5845,"type":"bytes memory","value":"n"},"id":5935,"name":"Identifier","src":"36454:1:5"}],"id":5936,"name":"MemberAccess","src":"36454:8:5"}],"id":5937,"name":"BinaryOperation","src":"36442:20:5"},{"attributes":{"functionReturnParameters":5837},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"int256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(int256)","value":"int"},"id":5938,"name":"ElementaryTypeNameExpression","src":"36495:3:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5886,"type":"uint256","value":"i"},"id":5939,"name":"Identifier","src":"36499:1:5"}],"id":5940,"name":"FunctionCall","src":"36495:6:5"}],"id":5941,"name":"Return","src":"36488:13:5"}],"id":5942,"name":"IfStatement","src":"36439:62:5"}],"id":5943,"name":"Block","src":"36193:327:5"}],"id":5944,"name":"IfStatement","src":"36159:361:5"}],"id":5945,"name":"Block","src":"36141:393:5"}],"id":5946,"name":"ForStatement","src":"36092:442:5"},{"attributes":{"functionReturnParameters":5837},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"-","prefix":true,"type":"int_const -1"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":5947,"name":"Literal","src":"36555:1:5"}],"id":5948,"name":"UnaryOperation","src":"36554:2:5"}],"id":5949,"name":"Return","src":"36547:9:5"}],"id":5950,"name":"Block","src":"36047:520:5"}],"id":5951,"name":"IfStatement","src":"35976:591:5"}],"id":5952,"name":"IfStatement","src":"35882:685:5"}],"id":5953,"name":"Block","src":"35788:785:5"}],"id":5954,"name":"FunctionDefinition","src":"35709:864:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"strConcat","payable":false,"scope":7573,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_a","scope":6139,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":5955,"name":"ElementaryTypeName","src":"36598:6:5"}],"id":5956,"name":"VariableDeclaration","src":"36598:9:5"},{"attributes":{"constant":false,"name":"_b","scope":6139,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":5957,"name":"ElementaryTypeName","src":"36609:6:5"}],"id":5958,"name":"VariableDeclaration","src":"36609:9:5"},{"attributes":{"constant":false,"name":"_c","scope":6139,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":5959,"name":"ElementaryTypeName","src":"36620:6:5"}],"id":5960,"name":"VariableDeclaration","src":"36620:9:5"},{"attributes":{"constant":false,"name":"_d","scope":6139,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":5961,"name":"ElementaryTypeName","src":"36631:6:5"}],"id":5962,"name":"VariableDeclaration","src":"36631:9:5"},{"attributes":{"constant":false,"name":"_e","scope":6139,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":5963,"name":"ElementaryTypeName","src":"36642:6:5"}],"id":5964,"name":"VariableDeclaration","src":"36642:9:5"}],"id":5965,"name":"ParameterList","src":"36597:55:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":6139,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":5966,"name":"ElementaryTypeName","src":"36676:6:5"}],"id":5967,"name":"VariableDeclaration","src":"36676:6:5"}],"id":5968,"name":"ParameterList","src":"36675:8:5"},{"children":[{"attributes":{"assignments":[5970]},"children":[{"attributes":{"constant":false,"name":"_ba","scope":6139,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":5969,"name":"ElementaryTypeName","src":"36694:5:5"}],"id":5970,"name":"VariableDeclaration","src":"36694:16:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes storage pointer)","value":"bytes"},"id":5971,"name":"ElementaryTypeNameExpression","src":"36713:5:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5956,"type":"string memory","value":"_a"},"id":5972,"name":"Identifier","src":"36719:2:5"}],"id":5973,"name":"FunctionCall","src":"36713:9:5"}],"id":5974,"name":"VariableDeclarationStatement","src":"36694:28:5"},{"attributes":{"assignments":[5976]},"children":[{"attributes":{"constant":false,"name":"_bb","scope":6139,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":5975,"name":"ElementaryTypeName","src":"36732:5:5"}],"id":5976,"name":"VariableDeclaration","src":"36732:16:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes storage pointer)","value":"bytes"},"id":5977,"name":"ElementaryTypeNameExpression","src":"36751:5:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5958,"type":"string memory","value":"_b"},"id":5978,"name":"Identifier","src":"36757:2:5"}],"id":5979,"name":"FunctionCall","src":"36751:9:5"}],"id":5980,"name":"VariableDeclarationStatement","src":"36732:28:5"},{"attributes":{"assignments":[5982]},"children":[{"attributes":{"constant":false,"name":"_bc","scope":6139,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":5981,"name":"ElementaryTypeName","src":"36770:5:5"}],"id":5982,"name":"VariableDeclaration","src":"36770:16:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes storage pointer)","value":"bytes"},"id":5983,"name":"ElementaryTypeNameExpression","src":"36789:5:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5960,"type":"string memory","value":"_c"},"id":5984,"name":"Identifier","src":"36795:2:5"}],"id":5985,"name":"FunctionCall","src":"36789:9:5"}],"id":5986,"name":"VariableDeclarationStatement","src":"36770:28:5"},{"attributes":{"assignments":[5988]},"children":[{"attributes":{"constant":false,"name":"_bd","scope":6139,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":5987,"name":"ElementaryTypeName","src":"36808:5:5"}],"id":5988,"name":"VariableDeclaration","src":"36808:16:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes storage pointer)","value":"bytes"},"id":5989,"name":"ElementaryTypeNameExpression","src":"36827:5:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5962,"type":"string memory","value":"_d"},"id":5990,"name":"Identifier","src":"36833:2:5"}],"id":5991,"name":"FunctionCall","src":"36827:9:5"}],"id":5992,"name":"VariableDeclarationStatement","src":"36808:28:5"},{"attributes":{"assignments":[5994]},"children":[{"attributes":{"constant":false,"name":"_be","scope":6139,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":5993,"name":"ElementaryTypeName","src":"36846:5:5"}],"id":5994,"name":"VariableDeclaration","src":"36846:16:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes storage pointer)","value":"bytes"},"id":5995,"name":"ElementaryTypeNameExpression","src":"36865:5:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5964,"type":"string memory","value":"_e"},"id":5996,"name":"Identifier","src":"36871:2:5"}],"id":5997,"name":"FunctionCall","src":"36865:9:5"}],"id":5998,"name":"VariableDeclarationStatement","src":"36846:28:5"},{"attributes":{"assignments":[6000]},"children":[{"attributes":{"constant":false,"name":"abcde","scope":6139,"stateVariable":false,"storageLocation":"memory","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":5999,"name":"ElementaryTypeName","src":"36884:6:5"}],"id":6000,"name":"VariableDeclaration","src":"36884:19:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (string memory)"},"children":[{"attributes":{"name":"string","type":"string"},"id":6001,"name":"ElementaryTypeName","src":"36910:6:5"}],"id":6002,"name":"NewExpression","src":"36906:10:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5970,"type":"bytes memory","value":"_ba"},"id":6003,"name":"Identifier","src":"36917:3:5"}],"id":6004,"name":"MemberAccess","src":"36917:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5976,"type":"bytes memory","value":"_bb"},"id":6005,"name":"Identifier","src":"36930:3:5"}],"id":6006,"name":"MemberAccess","src":"36930:10:5"}],"id":6007,"name":"BinaryOperation","src":"36917:23:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5982,"type":"bytes memory","value":"_bc"},"id":6008,"name":"Identifier","src":"36943:3:5"}],"id":6009,"name":"MemberAccess","src":"36943:10:5"}],"id":6010,"name":"BinaryOperation","src":"36917:36:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5988,"type":"bytes memory","value":"_bd"},"id":6011,"name":"Identifier","src":"36956:3:5"}],"id":6012,"name":"MemberAccess","src":"36956:10:5"}],"id":6013,"name":"BinaryOperation","src":"36917:49:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5994,"type":"bytes memory","value":"_be"},"id":6014,"name":"Identifier","src":"36969:3:5"}],"id":6015,"name":"MemberAccess","src":"36969:10:5"}],"id":6016,"name":"BinaryOperation","src":"36917:62:5"}],"id":6017,"name":"FunctionCall","src":"36906:74:5"}],"id":6018,"name":"VariableDeclarationStatement","src":"36884:96:5"},{"attributes":{"assignments":[6020]},"children":[{"attributes":{"constant":false,"name":"babcde","scope":6139,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":6019,"name":"ElementaryTypeName","src":"36990:5:5"}],"id":6020,"name":"VariableDeclaration","src":"36990:19:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes storage pointer)","value":"bytes"},"id":6021,"name":"ElementaryTypeNameExpression","src":"37012:5:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6000,"type":"string memory","value":"abcde"},"id":6022,"name":"Identifier","src":"37018:5:5"}],"id":6023,"name":"FunctionCall","src":"37012:12:5"}],"id":6024,"name":"VariableDeclarationStatement","src":"36990:34:5"},{"attributes":{"assignments":[6026]},"children":[{"attributes":{"constant":false,"name":"k","scope":6139,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":6025,"name":"ElementaryTypeName","src":"37034:4:5"}],"id":6026,"name":"VariableDeclaration","src":"37034:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":6027,"name":"Literal","src":"37043:1:5"}],"id":6028,"name":"VariableDeclarationStatement","src":"37034:10:5"},{"children":[{"attributes":{"assignments":[6030]},"children":[{"attributes":{"constant":false,"name":"i","scope":6139,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":6029,"name":"ElementaryTypeName","src":"37059:4:5"}],"id":6030,"name":"VariableDeclaration","src":"37059:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":6031,"name":"Literal","src":"37068:1:5"}],"id":6032,"name":"VariableDeclarationStatement","src":"37059:10:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6030,"type":"uint256","value":"i"},"id":6033,"name":"Identifier","src":"37071:1:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5970,"type":"bytes memory","value":"_ba"},"id":6034,"name":"Identifier","src":"37075:3:5"}],"id":6035,"name":"MemberAccess","src":"37075:10:5"}],"id":6036,"name":"BinaryOperation","src":"37071:14:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6030,"type":"uint256","value":"i"},"id":6037,"name":"Identifier","src":"37087:1:5"}],"id":6038,"name":"UnaryOperation","src":"37087:3:5"}],"id":6039,"name":"ExpressionStatement","src":"37087:3:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6020,"type":"bytes memory","value":"babcde"},"id":6040,"name":"Identifier","src":"37092:6:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6026,"type":"uint256","value":"k"},"id":6041,"name":"Identifier","src":"37099:1:5"}],"id":6042,"name":"UnaryOperation","src":"37099:3:5"}],"id":6043,"name":"IndexAccess","src":"37092:11:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5970,"type":"bytes memory","value":"_ba"},"id":6044,"name":"Identifier","src":"37106:3:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6030,"type":"uint256","value":"i"},"id":6045,"name":"Identifier","src":"37110:1:5"}],"id":6046,"name":"IndexAccess","src":"37106:6:5"}],"id":6047,"name":"Assignment","src":"37092:20:5"}],"id":6048,"name":"ExpressionStatement","src":"37092:20:5"}],"id":6049,"name":"ForStatement","src":"37054:58:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6030,"type":"uint256","value":"i"},"id":6050,"name":"Identifier","src":"37127:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":6051,"name":"Literal","src":"37131:1:5"}],"id":6052,"name":"Assignment","src":"37127:5:5"}],"id":6053,"name":"ExpressionStatement","src":"37127:5:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6030,"type":"uint256","value":"i"},"id":6054,"name":"Identifier","src":"37134:1:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5976,"type":"bytes memory","value":"_bb"},"id":6055,"name":"Identifier","src":"37138:3:5"}],"id":6056,"name":"MemberAccess","src":"37138:10:5"}],"id":6057,"name":"BinaryOperation","src":"37134:14:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6030,"type":"uint256","value":"i"},"id":6058,"name":"Identifier","src":"37150:1:5"}],"id":6059,"name":"UnaryOperation","src":"37150:3:5"}],"id":6060,"name":"ExpressionStatement","src":"37150:3:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6020,"type":"bytes memory","value":"babcde"},"id":6061,"name":"Identifier","src":"37155:6:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6026,"type":"uint256","value":"k"},"id":6062,"name":"Identifier","src":"37162:1:5"}],"id":6063,"name":"UnaryOperation","src":"37162:3:5"}],"id":6064,"name":"IndexAccess","src":"37155:11:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5976,"type":"bytes memory","value":"_bb"},"id":6065,"name":"Identifier","src":"37169:3:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6030,"type":"uint256","value":"i"},"id":6066,"name":"Identifier","src":"37173:1:5"}],"id":6067,"name":"IndexAccess","src":"37169:6:5"}],"id":6068,"name":"Assignment","src":"37155:20:5"}],"id":6069,"name":"ExpressionStatement","src":"37155:20:5"}],"id":6070,"name":"ForStatement","src":"37122:53:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6030,"type":"uint256","value":"i"},"id":6071,"name":"Identifier","src":"37190:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":6072,"name":"Literal","src":"37194:1:5"}],"id":6073,"name":"Assignment","src":"37190:5:5"}],"id":6074,"name":"ExpressionStatement","src":"37190:5:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6030,"type":"uint256","value":"i"},"id":6075,"name":"Identifier","src":"37197:1:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5982,"type":"bytes memory","value":"_bc"},"id":6076,"name":"Identifier","src":"37201:3:5"}],"id":6077,"name":"MemberAccess","src":"37201:10:5"}],"id":6078,"name":"BinaryOperation","src":"37197:14:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6030,"type":"uint256","value":"i"},"id":6079,"name":"Identifier","src":"37213:1:5"}],"id":6080,"name":"UnaryOperation","src":"37213:3:5"}],"id":6081,"name":"ExpressionStatement","src":"37213:3:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6020,"type":"bytes memory","value":"babcde"},"id":6082,"name":"Identifier","src":"37218:6:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6026,"type":"uint256","value":"k"},"id":6083,"name":"Identifier","src":"37225:1:5"}],"id":6084,"name":"UnaryOperation","src":"37225:3:5"}],"id":6085,"name":"IndexAccess","src":"37218:11:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5982,"type":"bytes memory","value":"_bc"},"id":6086,"name":"Identifier","src":"37232:3:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6030,"type":"uint256","value":"i"},"id":6087,"name":"Identifier","src":"37236:1:5"}],"id":6088,"name":"IndexAccess","src":"37232:6:5"}],"id":6089,"name":"Assignment","src":"37218:20:5"}],"id":6090,"name":"ExpressionStatement","src":"37218:20:5"}],"id":6091,"name":"ForStatement","src":"37185:53:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6030,"type":"uint256","value":"i"},"id":6092,"name":"Identifier","src":"37253:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":6093,"name":"Literal","src":"37257:1:5"}],"id":6094,"name":"Assignment","src":"37253:5:5"}],"id":6095,"name":"ExpressionStatement","src":"37253:5:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6030,"type":"uint256","value":"i"},"id":6096,"name":"Identifier","src":"37260:1:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5988,"type":"bytes memory","value":"_bd"},"id":6097,"name":"Identifier","src":"37264:3:5"}],"id":6098,"name":"MemberAccess","src":"37264:10:5"}],"id":6099,"name":"BinaryOperation","src":"37260:14:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6030,"type":"uint256","value":"i"},"id":6100,"name":"Identifier","src":"37276:1:5"}],"id":6101,"name":"UnaryOperation","src":"37276:3:5"}],"id":6102,"name":"ExpressionStatement","src":"37276:3:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6020,"type":"bytes memory","value":"babcde"},"id":6103,"name":"Identifier","src":"37281:6:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6026,"type":"uint256","value":"k"},"id":6104,"name":"Identifier","src":"37288:1:5"}],"id":6105,"name":"UnaryOperation","src":"37288:3:5"}],"id":6106,"name":"IndexAccess","src":"37281:11:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5988,"type":"bytes memory","value":"_bd"},"id":6107,"name":"Identifier","src":"37295:3:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6030,"type":"uint256","value":"i"},"id":6108,"name":"Identifier","src":"37299:1:5"}],"id":6109,"name":"IndexAccess","src":"37295:6:5"}],"id":6110,"name":"Assignment","src":"37281:20:5"}],"id":6111,"name":"ExpressionStatement","src":"37281:20:5"}],"id":6112,"name":"ForStatement","src":"37248:53:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6030,"type":"uint256","value":"i"},"id":6113,"name":"Identifier","src":"37316:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":6114,"name":"Literal","src":"37320:1:5"}],"id":6115,"name":"Assignment","src":"37316:5:5"}],"id":6116,"name":"ExpressionStatement","src":"37316:5:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6030,"type":"uint256","value":"i"},"id":6117,"name":"Identifier","src":"37323:1:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5994,"type":"bytes memory","value":"_be"},"id":6118,"name":"Identifier","src":"37327:3:5"}],"id":6119,"name":"MemberAccess","src":"37327:10:5"}],"id":6120,"name":"BinaryOperation","src":"37323:14:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6030,"type":"uint256","value":"i"},"id":6121,"name":"Identifier","src":"37339:1:5"}],"id":6122,"name":"UnaryOperation","src":"37339:3:5"}],"id":6123,"name":"ExpressionStatement","src":"37339:3:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6020,"type":"bytes memory","value":"babcde"},"id":6124,"name":"Identifier","src":"37344:6:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6026,"type":"uint256","value":"k"},"id":6125,"name":"Identifier","src":"37351:1:5"}],"id":6126,"name":"UnaryOperation","src":"37351:3:5"}],"id":6127,"name":"IndexAccess","src":"37344:11:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5994,"type":"bytes memory","value":"_be"},"id":6128,"name":"Identifier","src":"37358:3:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6030,"type":"uint256","value":"i"},"id":6129,"name":"Identifier","src":"37362:1:5"}],"id":6130,"name":"IndexAccess","src":"37358:6:5"}],"id":6131,"name":"Assignment","src":"37344:20:5"}],"id":6132,"name":"ExpressionStatement","src":"37344:20:5"}],"id":6133,"name":"ForStatement","src":"37311:53:5"},{"attributes":{"functionReturnParameters":5968},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(string storage pointer)","value":"string"},"id":6134,"name":"ElementaryTypeNameExpression","src":"37381:6:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6020,"type":"bytes memory","value":"babcde"},"id":6135,"name":"Identifier","src":"37388:6:5"}],"id":6136,"name":"FunctionCall","src":"37381:14:5"}],"id":6137,"name":"Return","src":"37374:21:5"}],"id":6138,"name":"Block","src":"36684:718:5"}],"id":6139,"name":"FunctionDefinition","src":"36579:823:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"strConcat","payable":false,"scope":7573,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_a","scope":6161,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":6140,"name":"ElementaryTypeName","src":"37427:6:5"}],"id":6141,"name":"VariableDeclaration","src":"37427:9:5"},{"attributes":{"constant":false,"name":"_b","scope":6161,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":6142,"name":"ElementaryTypeName","src":"37438:6:5"}],"id":6143,"name":"VariableDeclaration","src":"37438:9:5"},{"attributes":{"constant":false,"name":"_c","scope":6161,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":6144,"name":"ElementaryTypeName","src":"37449:6:5"}],"id":6145,"name":"VariableDeclaration","src":"37449:9:5"},{"attributes":{"constant":false,"name":"_d","scope":6161,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":6146,"name":"ElementaryTypeName","src":"37460:6:5"}],"id":6147,"name":"VariableDeclaration","src":"37460:9:5"}],"id":6148,"name":"ParameterList","src":"37426:44:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":6161,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":6149,"name":"ElementaryTypeName","src":"37494:6:5"}],"id":6150,"name":"VariableDeclaration","src":"37494:6:5"}],"id":6151,"name":"ParameterList","src":"37493:8:5"},{"children":[{"attributes":{"functionReturnParameters":6151},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"overloadedDeclarations":[6139,6161,6181,6199],"referencedDeclaration":6139,"type":"function (string memory,string memory,string memory,string memory,string memory) pure returns (string memory)","value":"strConcat"},"id":6152,"name":"Identifier","src":"37519:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6141,"type":"string memory","value":"_a"},"id":6153,"name":"Identifier","src":"37529:2:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6143,"type":"string memory","value":"_b"},"id":6154,"name":"Identifier","src":"37533:2:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6145,"type":"string memory","value":"_c"},"id":6155,"name":"Identifier","src":"37537:2:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6147,"type":"string memory","value":"_d"},"id":6156,"name":"Identifier","src":"37541:2:5"},{"attributes":{"argumentTypes":null,"hexvalue":"","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"\"","value":""},"id":6157,"name":"Literal","src":"37545:2:5"}],"id":6158,"name":"FunctionCall","src":"37519:29:5"}],"id":6159,"name":"Return","src":"37512:36:5"}],"id":6160,"name":"Block","src":"37502:53:5"}],"id":6161,"name":"FunctionDefinition","src":"37408:147:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"strConcat","payable":false,"scope":7573,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_a","scope":6181,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":6162,"name":"ElementaryTypeName","src":"37580:6:5"}],"id":6163,"name":"VariableDeclaration","src":"37580:9:5"},{"attributes":{"constant":false,"name":"_b","scope":6181,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":6164,"name":"ElementaryTypeName","src":"37591:6:5"}],"id":6165,"name":"VariableDeclaration","src":"37591:9:5"},{"attributes":{"constant":false,"name":"_c","scope":6181,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":6166,"name":"ElementaryTypeName","src":"37602:6:5"}],"id":6167,"name":"VariableDeclaration","src":"37602:9:5"}],"id":6168,"name":"ParameterList","src":"37579:33:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":6181,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":6169,"name":"ElementaryTypeName","src":"37636:6:5"}],"id":6170,"name":"VariableDeclaration","src":"37636:6:5"}],"id":6171,"name":"ParameterList","src":"37635:8:5"},{"children":[{"attributes":{"functionReturnParameters":6171},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"overloadedDeclarations":[6139,6161,6181,6199],"referencedDeclaration":6139,"type":"function (string memory,string memory,string memory,string memory,string memory) pure returns (string memory)","value":"strConcat"},"id":6172,"name":"Identifier","src":"37661:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6163,"type":"string memory","value":"_a"},"id":6173,"name":"Identifier","src":"37671:2:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6165,"type":"string memory","value":"_b"},"id":6174,"name":"Identifier","src":"37675:2:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6167,"type":"string memory","value":"_c"},"id":6175,"name":"Identifier","src":"37679:2:5"},{"attributes":{"argumentTypes":null,"hexvalue":"","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"\"","value":""},"id":6176,"name":"Literal","src":"37683:2:5"},{"attributes":{"argumentTypes":null,"hexvalue":"","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"\"","value":""},"id":6177,"name":"Literal","src":"37687:2:5"}],"id":6178,"name":"FunctionCall","src":"37661:29:5"}],"id":6179,"name":"Return","src":"37654:36:5"}],"id":6180,"name":"Block","src":"37644:53:5"}],"id":6181,"name":"FunctionDefinition","src":"37561:136:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"strConcat","payable":false,"scope":7573,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_a","scope":6199,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":6182,"name":"ElementaryTypeName","src":"37722:6:5"}],"id":6183,"name":"VariableDeclaration","src":"37722:9:5"},{"attributes":{"constant":false,"name":"_b","scope":6199,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":6184,"name":"ElementaryTypeName","src":"37733:6:5"}],"id":6185,"name":"VariableDeclaration","src":"37733:9:5"}],"id":6186,"name":"ParameterList","src":"37721:22:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":6199,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":6187,"name":"ElementaryTypeName","src":"37767:6:5"}],"id":6188,"name":"VariableDeclaration","src":"37767:6:5"}],"id":6189,"name":"ParameterList","src":"37766:8:5"},{"children":[{"attributes":{"functionReturnParameters":6189},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"overloadedDeclarations":[6139,6161,6181,6199],"referencedDeclaration":6139,"type":"function (string memory,string memory,string memory,string memory,string memory) pure returns (string memory)","value":"strConcat"},"id":6190,"name":"Identifier","src":"37792:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6183,"type":"string memory","value":"_a"},"id":6191,"name":"Identifier","src":"37802:2:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6185,"type":"string memory","value":"_b"},"id":6192,"name":"Identifier","src":"37806:2:5"},{"attributes":{"argumentTypes":null,"hexvalue":"","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"\"","value":""},"id":6193,"name":"Literal","src":"37810:2:5"},{"attributes":{"argumentTypes":null,"hexvalue":"","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"\"","value":""},"id":6194,"name":"Literal","src":"37814:2:5"},{"attributes":{"argumentTypes":null,"hexvalue":"","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"\"","value":""},"id":6195,"name":"Literal","src":"37818:2:5"}],"id":6196,"name":"FunctionCall","src":"37792:29:5"}],"id":6197,"name":"Return","src":"37785:36:5"}],"id":6198,"name":"Block","src":"37775:53:5"}],"id":6199,"name":"FunctionDefinition","src":"37703:125:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"parseInt","payable":false,"scope":7573,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_a","scope":6212,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":6200,"name":"ElementaryTypeName","src":"37868:6:5"}],"id":6201,"name":"VariableDeclaration","src":"37868:9:5"}],"id":6202,"name":"ParameterList","src":"37867:11:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":6212,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":6203,"name":"ElementaryTypeName","src":"37902:4:5"}],"id":6204,"name":"VariableDeclaration","src":"37902:4:5"}],"id":6205,"name":"ParameterList","src":"37901:6:5"},{"children":[{"attributes":{"functionReturnParameters":6205},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"overloadedDeclarations":[6212,6311],"referencedDeclaration":6311,"type":"function (string memory,uint256) pure returns (uint256)","value":"parseInt"},"id":6206,"name":"Identifier","src":"37925:8:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6201,"type":"string memory","value":"_a"},"id":6207,"name":"Identifier","src":"37934:2:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":6208,"name":"Literal","src":"37938:1:5"}],"id":6209,"name":"FunctionCall","src":"37925:15:5"}],"id":6210,"name":"Return","src":"37918:22:5"}],"id":6211,"name":"Block","src":"37908:39:5"}],"id":6212,"name":"FunctionDefinition","src":"37850:97:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"parseInt","payable":false,"scope":7573,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_a","scope":6311,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":6213,"name":"ElementaryTypeName","src":"38005:6:5"}],"id":6214,"name":"VariableDeclaration","src":"38005:9:5"},{"attributes":{"constant":false,"name":"_b","scope":6311,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":6215,"name":"ElementaryTypeName","src":"38016:4:5"}],"id":6216,"name":"VariableDeclaration","src":"38016:7:5"}],"id":6217,"name":"ParameterList","src":"38004:20:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":6311,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":6218,"name":"ElementaryTypeName","src":"38048:4:5"}],"id":6219,"name":"VariableDeclaration","src":"38048:4:5"}],"id":6220,"name":"ParameterList","src":"38047:6:5"},{"children":[{"attributes":{"assignments":[6222]},"children":[{"attributes":{"constant":false,"name":"bresult","scope":6311,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":6221,"name":"ElementaryTypeName","src":"38064:5:5"}],"id":6222,"name":"VariableDeclaration","src":"38064:20:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes storage pointer)","value":"bytes"},"id":6223,"name":"ElementaryTypeNameExpression","src":"38087:5:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6214,"type":"string memory","value":"_a"},"id":6224,"name":"Identifier","src":"38093:2:5"}],"id":6225,"name":"FunctionCall","src":"38087:9:5"}],"id":6226,"name":"VariableDeclarationStatement","src":"38064:32:5"},{"attributes":{"assignments":[6228]},"children":[{"attributes":{"constant":false,"name":"mint","scope":6311,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":6227,"name":"ElementaryTypeName","src":"38106:4:5"}],"id":6228,"name":"VariableDeclaration","src":"38106:9:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":6229,"name":"Literal","src":"38118:1:5"}],"id":6230,"name":"VariableDeclarationStatement","src":"38106:13:5"},{"attributes":{"assignments":[6232]},"children":[{"attributes":{"constant":false,"name":"decimals","scope":6311,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":6231,"name":"ElementaryTypeName","src":"38129:4:5"}],"id":6232,"name":"VariableDeclaration","src":"38129:13:5"},{"attributes":{"argumentTypes":null,"hexvalue":"66616c7365","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"false"},"id":6233,"name":"Literal","src":"38145:5:5"}],"id":6234,"name":"VariableDeclarationStatement","src":"38129:21:5"},{"children":[{"attributes":{"assignments":[6236]},"children":[{"attributes":{"constant":false,"name":"i","scope":6311,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":6235,"name":"ElementaryTypeName","src":"38165:4:5"}],"id":6236,"name":"VariableDeclaration","src":"38165:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":6237,"name":"Literal","src":"38172:1:5"}],"id":6238,"name":"VariableDeclarationStatement","src":"38165:8:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6236,"type":"uint256","value":"i"},"id":6239,"name":"Identifier","src":"38175:1:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6222,"type":"bytes memory","value":"bresult"},"id":6240,"name":"Identifier","src":"38177:7:5"}],"id":6241,"name":"MemberAccess","src":"38177:14:5"}],"id":6242,"name":"BinaryOperation","src":"38175:16:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6236,"type":"uint256","value":"i"},"id":6243,"name":"Identifier","src":"38193:1:5"}],"id":6244,"name":"UnaryOperation","src":"38193:3:5"}],"id":6245,"name":"ExpressionStatement","src":"38193:3:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&&","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6222,"type":"bytes memory","value":"bresult"},"id":6246,"name":"Identifier","src":"38216:7:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6236,"type":"uint256","value":"i"},"id":6247,"name":"Identifier","src":"38224:1:5"}],"id":6248,"name":"IndexAccess","src":"38216:10:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3438","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 48","value":"48"},"id":6249,"name":"Literal","src":"38230:2:5"}],"id":6250,"name":"BinaryOperation","src":"38216:16:5"}],"id":6251,"name":"TupleExpression","src":"38215:18:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6222,"type":"bytes memory","value":"bresult"},"id":6252,"name":"Identifier","src":"38236:7:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6236,"type":"uint256","value":"i"},"id":6253,"name":"Identifier","src":"38244:1:5"}],"id":6254,"name":"IndexAccess","src":"38236:10:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3537","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 57","value":"57"},"id":6255,"name":"Literal","src":"38250:2:5"}],"id":6256,"name":"BinaryOperation","src":"38236:16:5"}],"id":6257,"name":"TupleExpression","src":"38235:18:5"}],"id":6258,"name":"BinaryOperation","src":"38215:38:5"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6232,"type":"bool","value":"decimals"},"id":6259,"name":"Identifier","src":"38276:8:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6216,"type":"uint256","value":"_b"},"id":6260,"name":"Identifier","src":"38310:2:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":6261,"name":"Literal","src":"38316:1:5"}],"id":6262,"name":"BinaryOperation","src":"38310:7:5"},{"id":6263,"name":"Break","src":"38319:5:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"--","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6216,"type":"uint256","value":"_b"},"id":6264,"name":"Identifier","src":"38351:2:5"}],"id":6265,"name":"UnaryOperation","src":"38351:4:5"}],"id":6266,"name":"ExpressionStatement","src":"38351:4:5"}],"id":6267,"name":"IfStatement","src":"38306:49:5"}],"id":6268,"name":"Block","src":"38285:89:5"}],"id":6269,"name":"IfStatement","src":"38272:102:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6228,"type":"uint256","value":"mint"},"id":6270,"name":"Identifier","src":"38391:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3130","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 10","value":"10"},"id":6271,"name":"Literal","src":"38399:2:5"}],"id":6272,"name":"Assignment","src":"38391:10:5"}],"id":6273,"name":"ExpressionStatement","src":"38391:10:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6228,"type":"uint256","value":"mint"},"id":6274,"name":"Identifier","src":"38419:4:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint"},"id":6275,"name":"ElementaryTypeNameExpression","src":"38427:4:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6222,"type":"bytes memory","value":"bresult"},"id":6276,"name":"Identifier","src":"38432:7:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6236,"type":"uint256","value":"i"},"id":6277,"name":"Identifier","src":"38440:1:5"}],"id":6278,"name":"IndexAccess","src":"38432:10:5"}],"id":6279,"name":"FunctionCall","src":"38427:16:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3438","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 48","value":"48"},"id":6280,"name":"Literal","src":"38446:2:5"}],"id":6281,"name":"BinaryOperation","src":"38427:21:5"}],"id":6282,"name":"Assignment","src":"38419:29:5"}],"id":6283,"name":"ExpressionStatement","src":"38419:29:5"}],"id":6284,"name":"Block","src":"38254:209:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6222,"type":"bytes memory","value":"bresult"},"id":6285,"name":"Identifier","src":"38473:7:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6236,"type":"uint256","value":"i"},"id":6286,"name":"Identifier","src":"38481:1:5"}],"id":6287,"name":"IndexAccess","src":"38473:10:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3436","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 46","value":"46"},"id":6288,"name":"Literal","src":"38487:2:5"}],"id":6289,"name":"BinaryOperation","src":"38473:16:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6232,"type":"bool","value":"decimals"},"id":6290,"name":"Identifier","src":"38491:8:5"},{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":6291,"name":"Literal","src":"38502:4:5"}],"id":6292,"name":"Assignment","src":"38491:15:5"}],"id":6293,"name":"ExpressionStatement","src":"38491:15:5"}],"id":6294,"name":"IfStatement","src":"38469:37:5"}],"id":6295,"name":"IfStatement","src":"38211:295:5"}],"id":6296,"name":"Block","src":"38197:320:5"}],"id":6297,"name":"ForStatement","src":"38160:357:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6216,"type":"uint256","value":"_b"},"id":6298,"name":"Identifier","src":"38530:2:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":6299,"name":"Literal","src":"38535:1:5"}],"id":6300,"name":"BinaryOperation","src":"38530:6:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6228,"type":"uint256","value":"mint"},"id":6301,"name":"Identifier","src":"38538:4:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"**","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3130","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 10","value":"10"},"id":6302,"name":"Literal","src":"38546:2:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6216,"type":"uint256","value":"_b"},"id":6303,"name":"Identifier","src":"38550:2:5"}],"id":6304,"name":"BinaryOperation","src":"38546:6:5"}],"id":6305,"name":"Assignment","src":"38538:14:5"}],"id":6306,"name":"ExpressionStatement","src":"38538:14:5"}],"id":6307,"name":"IfStatement","src":"38526:26:5"},{"attributes":{"functionReturnParameters":6220},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6228,"type":"uint256","value":"mint"},"id":6308,"name":"Identifier","src":"38569:4:5"}],"id":6309,"name":"Return","src":"38562:11:5"}],"id":6310,"name":"Block","src":"38054:526:5"}],"id":6311,"name":"FunctionDefinition","src":"37987:593:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"uint2str","payable":false,"scope":7573,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"i","scope":6383,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":6312,"name":"ElementaryTypeName","src":"38604:4:5"}],"id":6313,"name":"VariableDeclaration","src":"38604:6:5"}],"id":6314,"name":"ParameterList","src":"38603:8:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":6383,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":6315,"name":"ElementaryTypeName","src":"38635:6:5"}],"id":6316,"name":"VariableDeclaration","src":"38635:6:5"}],"id":6317,"name":"ParameterList","src":"38634:8:5"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6313,"type":"uint256","value":"i"},"id":6318,"name":"Identifier","src":"38656:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":6319,"name":"Literal","src":"38661:1:5"}],"id":6320,"name":"BinaryOperation","src":"38656:6:5"},{"attributes":{"functionReturnParameters":6317},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"0\"","value":"0"},"id":6321,"name":"Literal","src":"38671:3:5"}],"id":6322,"name":"Return","src":"38664:10:5"}],"id":6323,"name":"IfStatement","src":"38652:22:5"},{"attributes":{"assignments":[6325]},"children":[{"attributes":{"constant":false,"name":"j","scope":6383,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":6324,"name":"ElementaryTypeName","src":"38684:4:5"}],"id":6325,"name":"VariableDeclaration","src":"38684:6:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6313,"type":"uint256","value":"i"},"id":6326,"name":"Identifier","src":"38693:1:5"}],"id":6327,"name":"VariableDeclarationStatement","src":"38684:10:5"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"len","scope":6383,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":6328,"name":"ElementaryTypeName","src":"38704:4:5"}],"id":6329,"name":"VariableDeclaration","src":"38704:8:5"}],"id":6330,"name":"VariableDeclarationStatement","src":"38704:8:5"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6325,"type":"uint256","value":"j"},"id":6331,"name":"Identifier","src":"38729:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":6332,"name":"Literal","src":"38734:1:5"}],"id":6333,"name":"BinaryOperation","src":"38729:6:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6329,"type":"uint256","value":"len"},"id":6334,"name":"Identifier","src":"38750:3:5"}],"id":6335,"name":"UnaryOperation","src":"38750:5:5"}],"id":6336,"name":"ExpressionStatement","src":"38750:5:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"/=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6325,"type":"uint256","value":"j"},"id":6337,"name":"Identifier","src":"38769:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3130","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 10","value":"10"},"id":6338,"name":"Literal","src":"38774:2:5"}],"id":6339,"name":"Assignment","src":"38769:7:5"}],"id":6340,"name":"ExpressionStatement","src":"38769:7:5"}],"id":6341,"name":"Block","src":"38736:51:5"}],"id":6342,"name":"WhileStatement","src":"38722:65:5"},{"attributes":{"assignments":[6344]},"children":[{"attributes":{"constant":false,"name":"bstr","scope":6383,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":6343,"name":"ElementaryTypeName","src":"38796:5:5"}],"id":6344,"name":"VariableDeclaration","src":"38796:17:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (bytes memory)"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":6345,"name":"ElementaryTypeName","src":"38820:5:5"}],"id":6346,"name":"NewExpression","src":"38816:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6329,"type":"uint256","value":"len"},"id":6347,"name":"Identifier","src":"38826:3:5"}],"id":6348,"name":"FunctionCall","src":"38816:14:5"}],"id":6349,"name":"VariableDeclarationStatement","src":"38796:34:5"},{"attributes":{"assignments":[6351]},"children":[{"attributes":{"constant":false,"name":"k","scope":6383,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":6350,"name":"ElementaryTypeName","src":"38840:4:5"}],"id":6351,"name":"VariableDeclaration","src":"38840:6:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6329,"type":"uint256","value":"len"},"id":6352,"name":"Identifier","src":"38849:3:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":6353,"name":"Literal","src":"38855:1:5"}],"id":6354,"name":"BinaryOperation","src":"38849:7:5"}],"id":6355,"name":"VariableDeclarationStatement","src":"38840:16:5"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6313,"type":"uint256","value":"i"},"id":6356,"name":"Identifier","src":"38873:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":6357,"name":"Literal","src":"38878:1:5"}],"id":6358,"name":"BinaryOperation","src":"38873:6:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6344,"type":"bytes memory","value":"bstr"},"id":6359,"name":"Identifier","src":"38894:4:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"--","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6351,"type":"uint256","value":"k"},"id":6360,"name":"Identifier","src":"38899:1:5"}],"id":6361,"name":"UnaryOperation","src":"38899:3:5"}],"id":6362,"name":"IndexAccess","src":"38894:9:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes1","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes1)","value":"byte"},"id":6363,"name":"ElementaryTypeNameExpression","src":"38906:4:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3438","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 48","value":"48"},"id":6364,"name":"Literal","src":"38911:2:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"%","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6313,"type":"uint256","value":"i"},"id":6365,"name":"Identifier","src":"38916:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3130","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 10","value":"10"},"id":6366,"name":"Literal","src":"38920:2:5"}],"id":6367,"name":"BinaryOperation","src":"38916:6:5"}],"id":6368,"name":"BinaryOperation","src":"38911:11:5"}],"id":6369,"name":"FunctionCall","src":"38906:17:5"}],"id":6370,"name":"Assignment","src":"38894:29:5"}],"id":6371,"name":"ExpressionStatement","src":"38894:29:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"/=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6313,"type":"uint256","value":"i"},"id":6372,"name":"Identifier","src":"38937:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3130","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 10","value":"10"},"id":6373,"name":"Literal","src":"38942:2:5"}],"id":6374,"name":"Assignment","src":"38937:7:5"}],"id":6375,"name":"ExpressionStatement","src":"38937:7:5"}],"id":6376,"name":"Block","src":"38880:75:5"}],"id":6377,"name":"WhileStatement","src":"38866:89:5"},{"attributes":{"functionReturnParameters":6317},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(string storage pointer)","value":"string"},"id":6378,"name":"ElementaryTypeNameExpression","src":"38971:6:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6344,"type":"bytes memory","value":"bstr"},"id":6379,"name":"Identifier","src":"38978:4:5"}],"id":6380,"name":"FunctionCall","src":"38971:12:5"}],"id":6381,"name":"Return","src":"38964:19:5"}],"id":6382,"name":"Block","src":"38642:348:5"}],"id":6383,"name":"FunctionDefinition","src":"38586:404:5"},{"children":[{"attributes":{"contractScope":null,"name":"CBOR","referencedDeclaration":2195,"type":"library CBOR"},"id":6384,"name":"UserDefinedTypeName","src":"39002:4:5"},{"attributes":{"contractScope":null,"name":"Buffer.buffer","referencedDeclaration":1670,"type":"struct Buffer.buffer"},"id":6385,"name":"UserDefinedTypeName","src":"39011:13:5"}],"id":6386,"name":"UsingForDirective","src":"38996:29:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"stra2cbor","payable":false,"scope":7573,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"arr","scope":6444,"stateVariable":false,"storageLocation":"default","type":"string[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"string[]"},"children":[{"attributes":{"name":"string","type":"string"},"id":6387,"name":"ElementaryTypeName","src":"39049:6:5"}],"id":6388,"name":"ArrayTypeName","src":"39049:8:5"}],"id":6389,"name":"VariableDeclaration","src":"39049:12:5"}],"id":6390,"name":"ParameterList","src":"39048:14:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":6444,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":6391,"name":"ElementaryTypeName","src":"39086:5:5"}],"id":6392,"name":"VariableDeclaration","src":"39086:5:5"}],"id":6393,"name":"ParameterList","src":"39085:7:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"overloadedDeclarations":[null],"referencedDeclaration":7572,"type":"function () pure","value":"safeMemoryCleaner"},"id":6394,"name":"Identifier","src":"39103:17:5"}],"id":6395,"name":"FunctionCall","src":"39103:19:5"}],"id":6396,"name":"ExpressionStatement","src":"39103:19:5"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"buf","scope":6444,"stateVariable":false,"storageLocation":"memory","type":"struct Buffer.buffer","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"Buffer.buffer","referencedDeclaration":1670,"type":"struct Buffer.buffer"},"id":6399,"name":"UserDefinedTypeName","src":"39132:13:5"}],"id":6400,"name":"VariableDeclaration","src":"39132:24:5"}],"id":6401,"name":"VariableDeclarationStatement","src":"39132:24:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1670_memory_ptr","typeString":"struct Buffer.buffer memory"},{"typeIdentifier":"t_rational_1024_by_1","typeString":"int_const 1024"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"init","referencedDeclaration":1704,"type":"function (struct Buffer.buffer memory,uint256) pure"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1895,"type":"type(library Buffer)","value":"Buffer"},"id":6402,"name":"Identifier","src":"39166:6:5"}],"id":6404,"name":"MemberAccess","src":"39166:11:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6400,"type":"struct Buffer.buffer memory","value":"buf"},"id":6405,"name":"Identifier","src":"39178:3:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31303234","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1024","value":"1024"},"id":6406,"name":"Literal","src":"39183:4:5"}],"id":6407,"name":"FunctionCall","src":"39166:22:5"}],"id":6408,"name":"ExpressionStatement","src":"39166:22:5"},{"children":[{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"startArray","referencedDeclaration":2172,"type":"function (struct Buffer.buffer memory) pure"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6400,"type":"struct Buffer.buffer memory","value":"buf"},"id":6409,"name":"Identifier","src":"39198:3:5"}],"id":6411,"name":"MemberAccess","src":"39198:14:5"}],"id":6412,"name":"FunctionCall","src":"39198:16:5"}],"id":6413,"name":"ExpressionStatement","src":"39198:16:5"},{"children":[{"attributes":{"assignments":[6415]},"children":[{"attributes":{"constant":false,"name":"i","scope":6444,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":6414,"name":"ElementaryTypeName","src":"39229:4:5"}],"id":6415,"name":"VariableDeclaration","src":"39229:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":6416,"name":"Literal","src":"39238:1:5"}],"id":6417,"name":"VariableDeclarationStatement","src":"39229:10:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6415,"type":"uint256","value":"i"},"id":6418,"name":"Identifier","src":"39241:1:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6389,"type":"string memory[] memory","value":"arr"},"id":6419,"name":"Identifier","src":"39245:3:5"}],"id":6420,"name":"MemberAccess","src":"39245:10:5"}],"id":6421,"name":"BinaryOperation","src":"39241:14:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6415,"type":"uint256","value":"i"},"id":6422,"name":"Identifier","src":"39257:1:5"}],"id":6423,"name":"UnaryOperation","src":"39257:3:5"}],"id":6424,"name":"ExpressionStatement","src":"39257:3:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory","typeString":"string memory"}],"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"encodeString","referencedDeclaration":2161,"type":"function (struct Buffer.buffer memory,string memory) pure"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6400,"type":"struct Buffer.buffer memory","value":"buf"},"id":6425,"name":"Identifier","src":"39276:3:5"}],"id":6427,"name":"MemberAccess","src":"39276:16:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6389,"type":"string memory[] memory","value":"arr"},"id":6428,"name":"Identifier","src":"39293:3:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6415,"type":"uint256","value":"i"},"id":6429,"name":"Identifier","src":"39297:1:5"}],"id":6430,"name":"IndexAccess","src":"39293:6:5"}],"id":6431,"name":"FunctionCall","src":"39276:24:5"}],"id":6432,"name":"ExpressionStatement","src":"39276:24:5"}],"id":6433,"name":"Block","src":"39262:49:5"}],"id":6434,"name":"ForStatement","src":"39224:87:5"},{"children":[{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"endSequence","referencedDeclaration":2194,"type":"function (struct Buffer.buffer memory) pure"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6400,"type":"struct Buffer.buffer memory","value":"buf"},"id":6435,"name":"Identifier","src":"39320:3:5"}],"id":6437,"name":"MemberAccess","src":"39320:15:5"}],"id":6438,"name":"FunctionCall","src":"39320:17:5"}],"id":6439,"name":"ExpressionStatement","src":"39320:17:5"},{"attributes":{"functionReturnParameters":6393},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"buf","referencedDeclaration":1667,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6400,"type":"struct Buffer.buffer memory","value":"buf"},"id":6440,"name":"Identifier","src":"39354:3:5"}],"id":6441,"name":"MemberAccess","src":"39354:7:5"}],"id":6442,"name":"Return","src":"39347:14:5"}],"id":6443,"name":"Block","src":"39093:275:5"}],"id":6444,"name":"FunctionDefinition","src":"39030:338:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"ba2cbor","payable":false,"scope":7573,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"arr","scope":6502,"stateVariable":false,"storageLocation":"default","type":"bytes[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"bytes[]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":6445,"name":"ElementaryTypeName","src":"39391:5:5"}],"id":6446,"name":"ArrayTypeName","src":"39391:7:5"}],"id":6447,"name":"VariableDeclaration","src":"39391:11:5"}],"id":6448,"name":"ParameterList","src":"39390:13:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":6502,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":6449,"name":"ElementaryTypeName","src":"39427:5:5"}],"id":6450,"name":"VariableDeclaration","src":"39427:5:5"}],"id":6451,"name":"ParameterList","src":"39426:7:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"overloadedDeclarations":[null],"referencedDeclaration":7572,"type":"function () pure","value":"safeMemoryCleaner"},"id":6452,"name":"Identifier","src":"39444:17:5"}],"id":6453,"name":"FunctionCall","src":"39444:19:5"}],"id":6454,"name":"ExpressionStatement","src":"39444:19:5"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"buf","scope":6502,"stateVariable":false,"storageLocation":"memory","type":"struct Buffer.buffer","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"Buffer.buffer","referencedDeclaration":1670,"type":"struct Buffer.buffer"},"id":6457,"name":"UserDefinedTypeName","src":"39473:13:5"}],"id":6458,"name":"VariableDeclaration","src":"39473:24:5"}],"id":6459,"name":"VariableDeclarationStatement","src":"39473:24:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1670_memory_ptr","typeString":"struct Buffer.buffer memory"},{"typeIdentifier":"t_rational_1024_by_1","typeString":"int_const 1024"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"init","referencedDeclaration":1704,"type":"function (struct Buffer.buffer memory,uint256) pure"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1895,"type":"type(library Buffer)","value":"Buffer"},"id":6460,"name":"Identifier","src":"39507:6:5"}],"id":6462,"name":"MemberAccess","src":"39507:11:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6458,"type":"struct Buffer.buffer memory","value":"buf"},"id":6463,"name":"Identifier","src":"39519:3:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31303234","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1024","value":"1024"},"id":6464,"name":"Literal","src":"39524:4:5"}],"id":6465,"name":"FunctionCall","src":"39507:22:5"}],"id":6466,"name":"ExpressionStatement","src":"39507:22:5"},{"children":[{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"startArray","referencedDeclaration":2172,"type":"function (struct Buffer.buffer memory) pure"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6458,"type":"struct Buffer.buffer memory","value":"buf"},"id":6467,"name":"Identifier","src":"39539:3:5"}],"id":6469,"name":"MemberAccess","src":"39539:14:5"}],"id":6470,"name":"FunctionCall","src":"39539:16:5"}],"id":6471,"name":"ExpressionStatement","src":"39539:16:5"},{"children":[{"attributes":{"assignments":[6473]},"children":[{"attributes":{"constant":false,"name":"i","scope":6502,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":6472,"name":"ElementaryTypeName","src":"39570:4:5"}],"id":6473,"name":"VariableDeclaration","src":"39570:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":6474,"name":"Literal","src":"39579:1:5"}],"id":6475,"name":"VariableDeclarationStatement","src":"39570:10:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6473,"type":"uint256","value":"i"},"id":6476,"name":"Identifier","src":"39582:1:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6447,"type":"bytes memory[] memory","value":"arr"},"id":6477,"name":"Identifier","src":"39586:3:5"}],"id":6478,"name":"MemberAccess","src":"39586:10:5"}],"id":6479,"name":"BinaryOperation","src":"39582:14:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6473,"type":"uint256","value":"i"},"id":6480,"name":"Identifier","src":"39598:1:5"}],"id":6481,"name":"UnaryOperation","src":"39598:3:5"}],"id":6482,"name":"ExpressionStatement","src":"39598:3:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory","typeString":"bytes memory"}],"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"encodeBytes","referencedDeclaration":2136,"type":"function (struct Buffer.buffer memory,bytes memory) pure"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6458,"type":"struct Buffer.buffer memory","value":"buf"},"id":6483,"name":"Identifier","src":"39617:3:5"}],"id":6485,"name":"MemberAccess","src":"39617:15:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6447,"type":"bytes memory[] memory","value":"arr"},"id":6486,"name":"Identifier","src":"39633:3:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6473,"type":"uint256","value":"i"},"id":6487,"name":"Identifier","src":"39637:1:5"}],"id":6488,"name":"IndexAccess","src":"39633:6:5"}],"id":6489,"name":"FunctionCall","src":"39617:23:5"}],"id":6490,"name":"ExpressionStatement","src":"39617:23:5"}],"id":6491,"name":"Block","src":"39603:48:5"}],"id":6492,"name":"ForStatement","src":"39565:86:5"},{"children":[{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"endSequence","referencedDeclaration":2194,"type":"function (struct Buffer.buffer memory) pure"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6458,"type":"struct Buffer.buffer memory","value":"buf"},"id":6493,"name":"Identifier","src":"39660:3:5"}],"id":6495,"name":"MemberAccess","src":"39660:15:5"}],"id":6496,"name":"FunctionCall","src":"39660:17:5"}],"id":6497,"name":"ExpressionStatement","src":"39660:17:5"},{"attributes":{"functionReturnParameters":6451},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"buf","referencedDeclaration":1667,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6458,"type":"struct Buffer.buffer memory","value":"buf"},"id":6498,"name":"Identifier","src":"39694:3:5"}],"id":6499,"name":"MemberAccess","src":"39694:7:5"}],"id":6500,"name":"Return","src":"39687:14:5"}],"id":6501,"name":"Block","src":"39434:274:5"}],"id":6502,"name":"FunctionDefinition","src":"39374:334:5"},{"attributes":{"constant":false,"name":"oraclize_network_name","scope":7573,"stateVariable":true,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":6503,"name":"ElementaryTypeName","src":"39714:6:5"}],"id":6504,"name":"VariableDeclaration","src":"39714:28:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"oraclize_setNetworkName","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_network_name","scope":6514,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":6505,"name":"ElementaryTypeName","src":"39781:6:5"}],"id":6506,"name":"VariableDeclaration","src":"39781:20:5"}],"id":6507,"name":"ParameterList","src":"39780:22:5"},{"attributes":{"parameters":[null]},"children":[],"id":6508,"name":"ParameterList","src":"39812:0:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6504,"type":"string storage ref","value":"oraclize_network_name"},"id":6509,"name":"Identifier","src":"39822:21:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6506,"type":"string memory","value":"_network_name"},"id":6510,"name":"Identifier","src":"39846:13:5"}],"id":6511,"name":"Assignment","src":"39822:37:5"}],"id":6512,"name":"ExpressionStatement","src":"39822:37:5"}],"id":6513,"name":"Block","src":"39812:54:5"}],"id":6514,"name":"FunctionDefinition","src":"39748:118:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"oraclize_getNetworkName","payable":false,"scope":7573,"stateMutability":"view","superFunction":null,"visibility":"internal"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":6515,"name":"ParameterList","src":"39904:2:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":6522,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":6516,"name":"ElementaryTypeName","src":"39930:6:5"}],"id":6517,"name":"VariableDeclaration","src":"39930:6:5"}],"id":6518,"name":"ParameterList","src":"39929:8:5"},{"children":[{"attributes":{"functionReturnParameters":6518},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6504,"type":"string storage ref","value":"oraclize_network_name"},"id":6519,"name":"Identifier","src":"39955:21:5"}],"id":6520,"name":"Return","src":"39948:28:5"}],"id":6521,"name":"Block","src":"39938:45:5"}],"id":6522,"name":"FunctionDefinition","src":"39872:111:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"oraclize_newRandomDSQuery","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_delay","scope":6658,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":6523,"name":"ElementaryTypeName","src":"40024:4:5"}],"id":6524,"name":"VariableDeclaration","src":"40024:11:5"},{"attributes":{"constant":false,"name":"_nbytes","scope":6658,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":6525,"name":"ElementaryTypeName","src":"40037:4:5"}],"id":6526,"name":"VariableDeclaration","src":"40037:12:5"},{"attributes":{"constant":false,"name":"_customGasLimit","scope":6658,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":6527,"name":"ElementaryTypeName","src":"40051:4:5"}],"id":6528,"name":"VariableDeclaration","src":"40051:20:5"}],"id":6529,"name":"ParameterList","src":"40023:49:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":6658,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":6530,"name":"ElementaryTypeName","src":"40091:7:5"}],"id":6531,"name":"VariableDeclaration","src":"40091:7:5"}],"id":6532,"name":"ParameterList","src":"40090:9:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"overloadedDeclarations":[12019,12020],"referencedDeclaration":12019,"type":"function (bool) pure","value":"require"},"id":6533,"name":"Identifier","src":"40109:7:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&&","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6526,"type":"uint256","value":"_nbytes"},"id":6534,"name":"Identifier","src":"40118:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":6535,"name":"Literal","src":"40128:1:5"}],"id":6536,"name":"BinaryOperation","src":"40118:11:5"}],"id":6537,"name":"TupleExpression","src":"40117:13:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6526,"type":"uint256","value":"_nbytes"},"id":6538,"name":"Identifier","src":"40135:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":6539,"name":"Literal","src":"40146:2:5"}],"id":6540,"name":"BinaryOperation","src":"40135:13:5"}],"id":6541,"name":"TupleExpression","src":"40134:15:5"}],"id":6542,"name":"BinaryOperation","src":"40117:32:5"}],"id":6543,"name":"FunctionCall","src":"40109:41:5"}],"id":6544,"name":"ExpressionStatement","src":"40109:41:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6524,"type":"uint256","value":"_delay"},"id":6545,"name":"Identifier","src":"40214:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3130","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 10","value":"10"},"id":6546,"name":"Literal","src":"40224:2:5"}],"id":6547,"name":"Assignment","src":"40214:12:5"}],"id":6548,"name":"ExpressionStatement","src":"40214:12:5"},{"attributes":{"assignments":[6550]},"children":[{"attributes":{"constant":false,"name":"nbytes","scope":6658,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":6549,"name":"ElementaryTypeName","src":"40236:5:5"}],"id":6550,"name":"VariableDeclaration","src":"40236:19:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (bytes memory)"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":6551,"name":"ElementaryTypeName","src":"40262:5:5"}],"id":6552,"name":"NewExpression","src":"40258:9:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":6553,"name":"Literal","src":"40268:1:5"}],"id":6554,"name":"FunctionCall","src":"40258:12:5"}],"id":6555,"name":"VariableDeclarationStatement","src":"40236:34:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6550,"type":"bytes memory","value":"nbytes"},"id":6556,"name":"Identifier","src":"40280:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":6557,"name":"Literal","src":"40287:1:5"}],"id":6558,"name":"IndexAccess","src":"40280:9:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes1","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes1)","value":"byte"},"id":6559,"name":"ElementaryTypeNameExpression","src":"40292:4:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6526,"type":"uint256","value":"_nbytes"},"id":6560,"name":"Identifier","src":"40297:7:5"}],"id":6561,"name":"FunctionCall","src":"40292:13:5"}],"id":6562,"name":"Assignment","src":"40280:25:5"}],"id":6563,"name":"ExpressionStatement","src":"40280:25:5"},{"attributes":{"assignments":[6565]},"children":[{"attributes":{"constant":false,"name":"unonce","scope":6658,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":6564,"name":"ElementaryTypeName","src":"40315:5:5"}],"id":6565,"name":"VariableDeclaration","src":"40315:19:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (bytes memory)"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":6566,"name":"ElementaryTypeName","src":"40341:5:5"}],"id":6567,"name":"NewExpression","src":"40337:9:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":6568,"name":"Literal","src":"40347:2:5"}],"id":6569,"name":"FunctionCall","src":"40337:13:5"}],"id":6570,"name":"VariableDeclarationStatement","src":"40315:35:5"},{"attributes":{"assignments":[6572]},"children":[{"attributes":{"constant":false,"name":"sessionKeyHash","scope":6658,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":6571,"name":"ElementaryTypeName","src":"40360:5:5"}],"id":6572,"name":"VariableDeclaration","src":"40360:27:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (bytes memory)"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":6573,"name":"ElementaryTypeName","src":"40394:5:5"}],"id":6574,"name":"NewExpression","src":"40390:9:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":6575,"name":"Literal","src":"40400:2:5"}],"id":6576,"name":"FunctionCall","src":"40390:13:5"}],"id":6577,"name":"VariableDeclarationStatement","src":"40360:43:5"},{"attributes":{"assignments":[6579]},"children":[{"attributes":{"constant":false,"name":"sessionKeyHash_bytes32","scope":6658,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":6578,"name":"ElementaryTypeName","src":"40413:7:5"}],"id":6579,"name":"VariableDeclaration","src":"40413:30:5"},{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"overloadedDeclarations":[null],"referencedDeclaration":5572,"type":"function () returns (bytes32)","value":"oraclize_randomDS_getSessionPubKeyHash"},"id":6580,"name":"Identifier","src":"40446:38:5"}],"id":6581,"name":"FunctionCall","src":"40446:40:5"}],"id":6582,"name":"VariableDeclarationStatement","src":"40413:73:5"},{"attributes":{"externalReferences":[{"unonce":{"declaration":6565,"isOffset":false,"isSlot":false,"src":"40526:6:5","valueSize":1}},{"sessionKeyHash":{"declaration":6572,"isOffset":false,"isSlot":false,"src":"40902:14:5","valueSize":1}},{"unonce":{"declaration":6565,"isOffset":false,"isSlot":false,"src":"40765:6:5","valueSize":1}},{"sessionKeyHash_bytes32":{"declaration":6579,"isOffset":false,"isSlot":false,"src":"40925:22:5","valueSize":1}},{"sessionKeyHash":{"declaration":6572,"isOffset":false,"isSlot":false,"src":"40857:14:5","valueSize":1}}],"operations":"{\n mstore(unonce, 0x20)\n mstore(add(unonce, 0x20), xor(blockhash(sub(number(), 1)), xor(coinbase(), timestamp())))\n mstore(sessionKeyHash, 0x20)\n mstore(add(sessionKeyHash, 0x20), sessionKeyHash_bytes32)\n}"},"children":[],"id":6583,"name":"InlineAssembly","src":"40496:476:5"},{"attributes":{"assignments":[6585]},"children":[{"attributes":{"constant":false,"name":"delay","scope":6658,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":6584,"name":"ElementaryTypeName","src":"40967:5:5"}],"id":6585,"name":"VariableDeclaration","src":"40967:18:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (bytes memory)"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":6586,"name":"ElementaryTypeName","src":"40992:5:5"}],"id":6587,"name":"NewExpression","src":"40988:9:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":6588,"name":"Literal","src":"40998:2:5"}],"id":6589,"name":"FunctionCall","src":"40988:13:5"}],"id":6590,"name":"VariableDeclarationStatement","src":"40967:34:5"},{"attributes":{"externalReferences":[{"_delay":{"declaration":6524,"isOffset":false,"isSlot":false,"src":"41059:6:5","valueSize":1}},{"delay":{"declaration":6585,"isOffset":false,"isSlot":false,"src":"41045:5:5","valueSize":1}}],"operations":"{\n mstore(add(delay, 0x20), _delay)\n}"},"children":[],"id":6591,"name":"InlineAssembly","src":"41011:80:5"},{"attributes":{"assignments":[6593]},"children":[{"attributes":{"constant":false,"name":"delay_bytes8","scope":6658,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":6592,"name":"ElementaryTypeName","src":"41086:5:5"}],"id":6593,"name":"VariableDeclaration","src":"41086:25:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (bytes memory)"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":6594,"name":"ElementaryTypeName","src":"41118:5:5"}],"id":6595,"name":"NewExpression","src":"41114:9:5"},{"attributes":{"argumentTypes":null,"hexvalue":"38","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 8","value":"8"},"id":6596,"name":"Literal","src":"41124:1:5"}],"id":6597,"name":"FunctionCall","src":"41114:12:5"}],"id":6598,"name":"VariableDeclarationStatement","src":"41086:40:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_24_by_1","typeString":"int_const 24"},{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"overloadedDeclarations":[null],"referencedDeclaration":7482,"type":"function (bytes memory,uint256,uint256,bytes memory,uint256) pure returns (bytes memory)","value":"copyBytes"},"id":6599,"name":"Identifier","src":"41136:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6585,"type":"bytes memory","value":"delay"},"id":6600,"name":"Identifier","src":"41146:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3234","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 24","value":"24"},"id":6601,"name":"Literal","src":"41153:2:5"},{"attributes":{"argumentTypes":null,"hexvalue":"38","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 8","value":"8"},"id":6602,"name":"Literal","src":"41157:1:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6593,"type":"bytes memory","value":"delay_bytes8"},"id":6603,"name":"Identifier","src":"41160:12:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":6604,"name":"Literal","src":"41174:1:5"}],"id":6605,"name":"FunctionCall","src":"41136:40:5"}],"id":6606,"name":"ExpressionStatement","src":"41136:40:5"},{"attributes":{"assignments":[6611]},"children":[{"attributes":{"constant":false,"name":"args","scope":6658,"stateVariable":false,"storageLocation":"memory","type":"bytes[4]","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"bytes[4]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":6609,"name":"ElementaryTypeName","src":"41187:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"subdenomination":null,"token":"number","type":null,"value":"4"},"id":6608,"name":"Literal","src":"41193:1:5"}],"id":6610,"name":"ArrayTypeName","src":"41187:8:5"}],"id":6611,"name":"VariableDeclaration","src":"41187:20:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":true,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bytes memory[4] memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6565,"type":"bytes memory","value":"unonce"},"id":6612,"name":"Identifier","src":"41211:6:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6550,"type":"bytes memory","value":"nbytes"},"id":6613,"name":"Identifier","src":"41219:6:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6572,"type":"bytes memory","value":"sessionKeyHash"},"id":6614,"name":"Identifier","src":"41227:14:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6585,"type":"bytes memory","value":"delay"},"id":6615,"name":"Identifier","src":"41243:5:5"}],"id":6616,"name":"TupleExpression","src":"41210:39:5"}],"id":6617,"name":"VariableDeclarationStatement","src":"41187:62:5"},{"attributes":{"assignments":[6619]},"children":[{"attributes":{"constant":false,"name":"queryId","scope":6658,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":6618,"name":"ElementaryTypeName","src":"41259:7:5"}],"id":6619,"name":"VariableDeclaration","src":"41259:15:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a4896a3f93bf4bf58378e579f3cf193bb4af1022af7d2089f37d8bae7157b85f","typeString":"literal_string \"random\""},{"typeIdentifier":"t_array$_t_bytes_memory_$4_memory_ptr","typeString":"bytes memory[4] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[2566,2608,2654,2698,2741,2786,2835,2882,2929,2978,3031,3082,3119,3159,3202,3242,3287,3335,3386,3434,3487,3543,3602,3658,3719,3783,3850,3914,3983,4055,4130,4202,4249,4298,4351,4402,4439,4479,4522,4562,4607,4655,4706,4754,4807,4863,4922,4978,5039,5103,5170,5234,5303,5375,5450,5522],"referencedDeclaration":5234,"type":"function (string memory,bytes memory[4] memory,uint256) returns (bytes32)","value":"oraclize_query"},"id":6620,"name":"Identifier","src":"41277:14:5"},{"attributes":{"argumentTypes":null,"hexvalue":"72616e646f6d","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"random\"","value":"random"},"id":6621,"name":"Literal","src":"41292:8:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6611,"type":"bytes memory[4] memory","value":"args"},"id":6622,"name":"Identifier","src":"41302:4:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6528,"type":"uint256","value":"_customGasLimit"},"id":6623,"name":"Identifier","src":"41308:15:5"}],"id":6624,"name":"FunctionCall","src":"41277:47:5"}],"id":6625,"name":"VariableDeclarationStatement","src":"41259:65:5"},{"attributes":{"assignments":[6627]},"children":[{"attributes":{"constant":false,"name":"delay_bytes8_left","scope":6658,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":6626,"name":"ElementaryTypeName","src":"41335:5:5"}],"id":6627,"name":"VariableDeclaration","src":"41335:30:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (bytes memory)"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":6628,"name":"ElementaryTypeName","src":"41372:5:5"}],"id":6629,"name":"NewExpression","src":"41368:9:5"},{"attributes":{"argumentTypes":null,"hexvalue":"38","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 8","value":"8"},"id":6630,"name":"Literal","src":"41378:1:5"}],"id":6631,"name":"FunctionCall","src":"41368:12:5"}],"id":6632,"name":"VariableDeclarationStatement","src":"41335:45:5"},{"attributes":{"externalReferences":[{"delay_bytes8":{"declaration":6593,"isOffset":false,"isSlot":false,"src":"41433:12:5","valueSize":1}},{"delay_bytes8_left":{"declaration":6627,"isOffset":false,"isSlot":false,"src":"41478:17:5","valueSize":1}},{"delay_bytes8_left":{"declaration":6627,"isOffset":false,"isSlot":false,"src":"41603:17:5","valueSize":1}},{"delay_bytes8_left":{"declaration":6627,"isOffset":false,"isSlot":false,"src":"41726:17:5","valueSize":1}},{"delay_bytes8_left":{"declaration":6627,"isOffset":false,"isSlot":false,"src":"41966:17:5","valueSize":1}},{"delay_bytes8_left":{"declaration":6627,"isOffset":false,"isSlot":false,"src":"41847:17:5","valueSize":1}},{"delay_bytes8_left":{"declaration":6627,"isOffset":false,"isSlot":false,"src":"42083:17:5","valueSize":1}},{"delay_bytes8_left":{"declaration":6627,"isOffset":false,"isSlot":false,"src":"42198:17:5","valueSize":1}},{"delay_bytes8_left":{"declaration":6627,"isOffset":false,"isSlot":false,"src":"42311:17:5","valueSize":1}}],"operations":"{\n let x := mload(add(delay_bytes8, 0x20))\n mstore8(add(delay_bytes8_left, 0x27), div(x, 0x100000000000000000000000000000000000000000000000000000000000000))\n mstore8(add(delay_bytes8_left, 0x26), div(x, 0x1000000000000000000000000000000000000000000000000000000000000))\n mstore8(add(delay_bytes8_left, 0x25), div(x, 0x10000000000000000000000000000000000000000000000000000000000))\n mstore8(add(delay_bytes8_left, 0x24), div(x, 0x100000000000000000000000000000000000000000000000000000000))\n mstore8(add(delay_bytes8_left, 0x23), div(x, 0x1000000000000000000000000000000000000000000000000000000))\n mstore8(add(delay_bytes8_left, 0x22), div(x, 0x10000000000000000000000000000000000000000000000000000))\n mstore8(add(delay_bytes8_left, 0x21), div(x, 0x100000000000000000000000000000000000000000000000000))\n mstore8(add(delay_bytes8_left, 0x20), div(x, 0x1000000000000000000000000000000000000000000000000))\n}"},"children":[],"id":6633,"name":"InlineAssembly","src":"41391:1058:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[null],"referencedDeclaration":6672,"type":"function (bytes32,bytes32)","value":"oraclize_randomDS_setCommitment"},"id":6634,"name":"Identifier","src":"42418:31:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6619,"type":"bytes32","value":"queryId"},"id":6635,"name":"Identifier","src":"42450:7:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"overloadedDeclarations":[null],"referencedDeclaration":12010,"type":"function () pure returns (bytes32)","value":"keccak256"},"id":6636,"name":"Identifier","src":"42459:9:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory","typeString":"bytes memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory","typeString":"bytes memory"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"member_name":"encodePacked","referencedDeclaration":null,"type":"function () pure returns (bytes memory)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":12003,"type":"abi","value":"abi"},"id":6637,"name":"Identifier","src":"42469:3:5"}],"id":6638,"name":"MemberAccess","src":"42469:16:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6627,"type":"bytes memory","value":"delay_bytes8_left"},"id":6639,"name":"Identifier","src":"42486:17:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6611,"type":"bytes memory[4] memory","value":"args"},"id":6640,"name":"Identifier","src":"42505:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":6641,"name":"Literal","src":"42510:1:5"}],"id":6642,"name":"IndexAccess","src":"42505:7:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory","typeString":"bytes memory"}],"overloadedDeclarations":[null],"referencedDeclaration":12025,"type":"function () pure returns (bytes32)","value":"sha256"},"id":6643,"name":"Identifier","src":"42514:6:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6611,"type":"bytes memory[4] memory","value":"args"},"id":6644,"name":"Identifier","src":"42521:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":6645,"name":"Literal","src":"42526:1:5"}],"id":6646,"name":"IndexAccess","src":"42521:7:5"}],"id":6647,"name":"FunctionCall","src":"42514:15:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6611,"type":"bytes memory[4] memory","value":"args"},"id":6648,"name":"Identifier","src":"42531:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":6649,"name":"Literal","src":"42536:1:5"}],"id":6650,"name":"IndexAccess","src":"42531:7:5"}],"id":6651,"name":"FunctionCall","src":"42469:70:5"}],"id":6652,"name":"FunctionCall","src":"42459:81:5"}],"id":6653,"name":"FunctionCall","src":"42418:123:5"}],"id":6654,"name":"ExpressionStatement","src":"42418:123:5"},{"attributes":{"functionReturnParameters":6532},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6619,"type":"bytes32","value":"queryId"},"id":6655,"name":"Identifier","src":"42558:7:5"}],"id":6656,"name":"Return","src":"42551:14:5"}],"id":6657,"name":"Block","src":"40099:2473:5"}],"id":6658,"name":"FunctionDefinition","src":"39989:2583:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"oraclize_randomDS_setCommitment","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"queryId","scope":6672,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":6659,"name":"ElementaryTypeName","src":"42619:7:5"}],"id":6660,"name":"VariableDeclaration","src":"42619:15:5"},{"attributes":{"constant":false,"name":"commitment","scope":6672,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":6661,"name":"ElementaryTypeName","src":"42636:7:5"}],"id":6662,"name":"VariableDeclaration","src":"42636:18:5"}],"id":6663,"name":"ParameterList","src":"42618:37:5"},{"attributes":{"parameters":[null]},"children":[],"id":6664,"name":"ParameterList","src":"42665:0:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6676,"type":"mapping(bytes32 => bytes32)","value":"oraclize_randomDS_args"},"id":6665,"name":"Identifier","src":"42675:22:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6660,"type":"bytes32","value":"queryId"},"id":6666,"name":"Identifier","src":"42698:7:5"}],"id":6667,"name":"IndexAccess","src":"42675:31:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6662,"type":"bytes32","value":"commitment"},"id":6668,"name":"Identifier","src":"42709:10:5"}],"id":6669,"name":"Assignment","src":"42675:44:5"}],"id":6670,"name":"ExpressionStatement","src":"42675:44:5"}],"id":6671,"name":"Block","src":"42665:61:5"}],"id":6672,"name":"FunctionDefinition","src":"42578:148:5"},{"attributes":{"constant":false,"name":"oraclize_randomDS_args","scope":7573,"stateVariable":true,"storageLocation":"default","type":"mapping(bytes32 => bytes32)","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"mapping(bytes32 => bytes32)"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":6673,"name":"ElementaryTypeName","src":"42740:7:5"},{"attributes":{"name":"bytes32","type":"bytes32"},"id":6674,"name":"ElementaryTypeName","src":"42749:7:5"}],"id":6675,"name":"Mapping","src":"42732:25:5"}],"id":6676,"name":"VariableDeclaration","src":"42732:48:5"},{"attributes":{"constant":false,"name":"oraclize_randomDS_sessionKeysHashVerified","scope":7573,"stateVariable":true,"storageLocation":"default","type":"mapping(bytes32 => bool)","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"mapping(bytes32 => bool)"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":6677,"name":"ElementaryTypeName","src":"42794:7:5"},{"attributes":{"name":"bool","type":"bool"},"id":6678,"name":"ElementaryTypeName","src":"42803:4:5"}],"id":6679,"name":"Mapping","src":"42786:22:5"}],"id":6680,"name":"VariableDeclaration","src":"42786:64:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"verifySig","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"tosignh","scope":6811,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":6681,"name":"ElementaryTypeName","src":"42876:7:5"}],"id":6682,"name":"VariableDeclaration","src":"42876:15:5"},{"attributes":{"constant":false,"name":"dersig","scope":6811,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":6683,"name":"ElementaryTypeName","src":"42893:5:5"}],"id":6684,"name":"VariableDeclaration","src":"42893:12:5"},{"attributes":{"constant":false,"name":"pubkey","scope":6811,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":6685,"name":"ElementaryTypeName","src":"42907:5:5"}],"id":6686,"name":"VariableDeclaration","src":"42907:12:5"}],"id":6687,"name":"ParameterList","src":"42875:45:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":6811,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":6688,"name":"ElementaryTypeName","src":"42939:4:5"}],"id":6689,"name":"VariableDeclaration","src":"42939:4:5"}],"id":6690,"name":"ParameterList","src":"42938:6:5"},{"children":[{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"sigok","scope":6811,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":6691,"name":"ElementaryTypeName","src":"42954:4:5"}],"id":6692,"name":"VariableDeclaration","src":"42954:10:5"}],"id":6693,"name":"VariableDeclarationStatement","src":"42954:10:5"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"signer","scope":6811,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":6694,"name":"ElementaryTypeName","src":"42974:7:5"}],"id":6695,"name":"VariableDeclaration","src":"42974:14:5"}],"id":6696,"name":"VariableDeclarationStatement","src":"42974:14:5"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"sigr","scope":6811,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":6697,"name":"ElementaryTypeName","src":"42999:7:5"}],"id":6698,"name":"VariableDeclaration","src":"42999:12:5"}],"id":6699,"name":"VariableDeclarationStatement","src":"42999:12:5"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"sigs","scope":6811,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":6700,"name":"ElementaryTypeName","src":"43021:7:5"}],"id":6701,"name":"VariableDeclaration","src":"43021:12:5"}],"id":6702,"name":"VariableDeclarationStatement","src":"43021:12:5"},{"attributes":{"assignments":[6704]},"children":[{"attributes":{"constant":false,"name":"sigr_","scope":6811,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":6703,"name":"ElementaryTypeName","src":"43044:5:5"}],"id":6704,"name":"VariableDeclaration","src":"43044:18:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (bytes memory)"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":6705,"name":"ElementaryTypeName","src":"43069:5:5"}],"id":6706,"name":"NewExpression","src":"43065:9:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":6707,"name":"Literal","src":"43075:2:5"}],"id":6708,"name":"FunctionCall","src":"43065:13:5"}],"id":6709,"name":"VariableDeclarationStatement","src":"43044:34:5"},{"attributes":{"assignments":[6711]},"children":[{"attributes":{"constant":false,"name":"offset","scope":6811,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":6710,"name":"ElementaryTypeName","src":"43088:4:5"}],"id":6711,"name":"VariableDeclaration","src":"43088:11:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":6712,"name":"Literal","src":"43102:1:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint"},"id":6713,"name":"ElementaryTypeNameExpression","src":"43105:4:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6684,"type":"bytes memory","value":"dersig"},"id":6714,"name":"Identifier","src":"43110:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":6715,"name":"Literal","src":"43117:1:5"}],"id":6716,"name":"IndexAccess","src":"43110:9:5"}],"id":6717,"name":"FunctionCall","src":"43105:15:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30783230","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"0x20"},"id":6718,"name":"Literal","src":"43123:4:5"}],"id":6719,"name":"BinaryOperation","src":"43105:22:5"}],"id":6720,"name":"TupleExpression","src":"43104:24:5"}],"id":6721,"name":"BinaryOperation","src":"43102:26:5"}],"id":6722,"name":"VariableDeclarationStatement","src":"43088:40:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6704,"type":"bytes memory","value":"sigr_"},"id":6723,"name":"Identifier","src":"43138:5:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"overloadedDeclarations":[null],"referencedDeclaration":7482,"type":"function (bytes memory,uint256,uint256,bytes memory,uint256) pure returns (bytes memory)","value":"copyBytes"},"id":6724,"name":"Identifier","src":"43146:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6684,"type":"bytes memory","value":"dersig"},"id":6725,"name":"Identifier","src":"43156:6:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6711,"type":"uint256","value":"offset"},"id":6726,"name":"Identifier","src":"43164:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":6727,"name":"Literal","src":"43172:2:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6704,"type":"bytes memory","value":"sigr_"},"id":6728,"name":"Identifier","src":"43176:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":6729,"name":"Literal","src":"43183:1:5"}],"id":6730,"name":"FunctionCall","src":"43146:39:5"}],"id":6731,"name":"Assignment","src":"43138:47:5"}],"id":6732,"name":"ExpressionStatement","src":"43138:47:5"},{"attributes":{"assignments":[6734]},"children":[{"attributes":{"constant":false,"name":"sigs_","scope":6811,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":6733,"name":"ElementaryTypeName","src":"43195:5:5"}],"id":6734,"name":"VariableDeclaration","src":"43195:18:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (bytes memory)"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":6735,"name":"ElementaryTypeName","src":"43220:5:5"}],"id":6736,"name":"NewExpression","src":"43216:9:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":6737,"name":"Literal","src":"43226:2:5"}],"id":6738,"name":"FunctionCall","src":"43216:13:5"}],"id":6739,"name":"VariableDeclarationStatement","src":"43195:34:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6711,"type":"uint256","value":"offset"},"id":6740,"name":"Identifier","src":"43239:6:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_34_by_1","typeString":"int_const 34"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"+","type":"int_const 34"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":6741,"name":"Literal","src":"43249:2:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":6742,"name":"Literal","src":"43254:1:5"}],"id":6743,"name":"BinaryOperation","src":"43249:6:5"}],"id":6744,"name":"Assignment","src":"43239:16:5"}],"id":6745,"name":"ExpressionStatement","src":"43239:16:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6734,"type":"bytes memory","value":"sigs_"},"id":6746,"name":"Identifier","src":"43265:5:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"overloadedDeclarations":[null],"referencedDeclaration":7482,"type":"function (bytes memory,uint256,uint256,bytes memory,uint256) pure returns (bytes memory)","value":"copyBytes"},"id":6747,"name":"Identifier","src":"43273:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6684,"type":"bytes memory","value":"dersig"},"id":6748,"name":"Identifier","src":"43283:6:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6711,"type":"uint256","value":"offset"},"id":6749,"name":"Identifier","src":"43291:6:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint"},"id":6750,"name":"ElementaryTypeNameExpression","src":"43299:4:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6684,"type":"bytes memory","value":"dersig"},"id":6751,"name":"Identifier","src":"43304:6:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6711,"type":"uint256","value":"offset"},"id":6752,"name":"Identifier","src":"43311:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":6753,"name":"Literal","src":"43318:1:5"}],"id":6754,"name":"BinaryOperation","src":"43311:8:5"}],"id":6755,"name":"IndexAccess","src":"43304:16:5"}],"id":6756,"name":"FunctionCall","src":"43299:22:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30783230","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"0x20"},"id":6757,"name":"Literal","src":"43324:4:5"}],"id":6758,"name":"BinaryOperation","src":"43299:29:5"}],"id":6759,"name":"TupleExpression","src":"43298:31:5"}],"id":6760,"name":"BinaryOperation","src":"43291:38:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":6761,"name":"Literal","src":"43331:2:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6734,"type":"bytes memory","value":"sigs_"},"id":6762,"name":"Identifier","src":"43335:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":6763,"name":"Literal","src":"43342:1:5"}],"id":6764,"name":"FunctionCall","src":"43273:71:5"}],"id":6765,"name":"Assignment","src":"43265:79:5"}],"id":6766,"name":"ExpressionStatement","src":"43265:79:5"},{"attributes":{"externalReferences":[{"sigr":{"declaration":6698,"isOffset":false,"isSlot":false,"src":"43378:4:5","valueSize":1}},{"sigr_":{"declaration":6704,"isOffset":false,"isSlot":false,"src":"43396:5:5","valueSize":1}},{"sigs":{"declaration":6701,"isOffset":false,"isSlot":false,"src":"43420:4:5","valueSize":1}},{"sigs_":{"declaration":6734,"isOffset":false,"isSlot":false,"src":"43438:5:5","valueSize":1}}],"operations":"{\n sigr := mload(add(sigr_, 32))\n sigs := mload(add(sigs_, 32))\n}"},"children":[],"id":6767,"name":"InlineAssembly","src":"43355:116:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"tuple()"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"tuple(bool,address)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6692,"type":"bool","value":"sigok"},"id":6768,"name":"Identifier","src":"43471:5:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6695,"type":"address","value":"signer"},"id":6769,"name":"Identifier","src":"43478:6:5"}],"id":6770,"name":"TupleExpression","src":"43470:15:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple(bool,address)","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_rational_27_by_1","typeString":"int_const 27"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[null],"referencedDeclaration":7509,"type":"function (bytes32,uint8,bytes32,bytes32) returns (bool,address)","value":"safer_ecrecover"},"id":6771,"name":"Identifier","src":"43488:15:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6682,"type":"bytes32","value":"tosignh"},"id":6772,"name":"Identifier","src":"43504:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3237","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 27","value":"27"},"id":6773,"name":"Literal","src":"43513:2:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6698,"type":"bytes32","value":"sigr"},"id":6774,"name":"Identifier","src":"43517:4:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6701,"type":"bytes32","value":"sigs"},"id":6775,"name":"Identifier","src":"43523:4:5"}],"id":6776,"name":"FunctionCall","src":"43488:40:5"}],"id":6777,"name":"Assignment","src":"43470:58:5"}],"id":6778,"name":"ExpressionStatement","src":"43470:58:5"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":6779,"name":"ElementaryTypeNameExpression","src":"43542:7:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"overloadedDeclarations":[null],"referencedDeclaration":12010,"type":"function () pure returns (bytes32)","value":"keccak256"},"id":6780,"name":"Identifier","src":"43550:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6686,"type":"bytes memory","value":"pubkey"},"id":6781,"name":"Identifier","src":"43560:6:5"}],"id":6782,"name":"FunctionCall","src":"43550:17:5"}],"id":6783,"name":"FunctionCall","src":"43542:26:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6695,"type":"address","value":"signer"},"id":6784,"name":"Identifier","src":"43572:6:5"}],"id":6785,"name":"BinaryOperation","src":"43542:36:5"},{"attributes":{"functionReturnParameters":6690},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":6786,"name":"Literal","src":"43587:4:5"}],"id":6787,"name":"Return","src":"43580:11:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"tuple()"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"tuple(bool,address)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6692,"type":"bool","value":"sigok"},"id":6788,"name":"Identifier","src":"43621:5:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6695,"type":"address","value":"signer"},"id":6789,"name":"Identifier","src":"43628:6:5"}],"id":6790,"name":"TupleExpression","src":"43620:15:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple(bool,address)","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[null],"referencedDeclaration":7509,"type":"function (bytes32,uint8,bytes32,bytes32) returns (bool,address)","value":"safer_ecrecover"},"id":6791,"name":"Identifier","src":"43638:15:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6682,"type":"bytes32","value":"tosignh"},"id":6792,"name":"Identifier","src":"43654:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3238","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 28","value":"28"},"id":6793,"name":"Literal","src":"43663:2:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6698,"type":"bytes32","value":"sigr"},"id":6794,"name":"Identifier","src":"43667:4:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6701,"type":"bytes32","value":"sigs"},"id":6795,"name":"Identifier","src":"43673:4:5"}],"id":6796,"name":"FunctionCall","src":"43638:40:5"}],"id":6797,"name":"Assignment","src":"43620:58:5"}],"id":6798,"name":"ExpressionStatement","src":"43620:58:5"},{"attributes":{"functionReturnParameters":6690},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":6799,"name":"ElementaryTypeNameExpression","src":"43700:7:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"overloadedDeclarations":[null],"referencedDeclaration":12010,"type":"function () pure returns (bytes32)","value":"keccak256"},"id":6800,"name":"Identifier","src":"43708:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6686,"type":"bytes memory","value":"pubkey"},"id":6801,"name":"Identifier","src":"43718:6:5"}],"id":6802,"name":"FunctionCall","src":"43708:17:5"}],"id":6803,"name":"FunctionCall","src":"43700:26:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6695,"type":"address","value":"signer"},"id":6804,"name":"Identifier","src":"43730:6:5"}],"id":6805,"name":"BinaryOperation","src":"43700:36:5"}],"id":6806,"name":"TupleExpression","src":"43699:38:5"}],"id":6807,"name":"Return","src":"43692:45:5"}],"id":6808,"name":"Block","src":"43606:142:5"}],"id":6809,"name":"IfStatement","src":"43538:210:5"}],"id":6810,"name":"Block","src":"42944:810:5"}],"id":6811,"name":"FunctionDefinition","src":"42857:897:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"oraclize_randomDS_proofVerify__sessionKeyValidity","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"proof","scope":6991,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":6812,"name":"ElementaryTypeName","src":"43819:5:5"}],"id":6813,"name":"VariableDeclaration","src":"43819:11:5"},{"attributes":{"constant":false,"name":"sig2offset","scope":6991,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":6814,"name":"ElementaryTypeName","src":"43832:4:5"}],"id":6815,"name":"VariableDeclaration","src":"43832:15:5"}],"id":6816,"name":"ParameterList","src":"43818:30:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":6991,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":6817,"name":"ElementaryTypeName","src":"43867:4:5"}],"id":6818,"name":"VariableDeclaration","src":"43867:4:5"}],"id":6819,"name":"ParameterList","src":"43866:6:5"},{"children":[{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"sigok","scope":6991,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":6820,"name":"ElementaryTypeName","src":"43883:4:5"}],"id":6821,"name":"VariableDeclaration","src":"43883:10:5"}],"id":6822,"name":"VariableDeclarationStatement","src":"43883:10:5"},{"attributes":{"assignments":[6824]},"children":[{"attributes":{"constant":false,"name":"sig2","scope":6991,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":6823,"name":"ElementaryTypeName","src":"44029:5:5"}],"id":6824,"name":"VariableDeclaration","src":"44029:17:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (bytes memory)"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":6825,"name":"ElementaryTypeName","src":"44053:5:5"}],"id":6826,"name":"NewExpression","src":"44049:9:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint"},"id":6827,"name":"ElementaryTypeNameExpression","src":"44059:4:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6813,"type":"bytes memory","value":"proof"},"id":6828,"name":"Identifier","src":"44064:5:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6815,"type":"uint256","value":"sig2offset"},"id":6829,"name":"Identifier","src":"44070:10:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":6830,"name":"Literal","src":"44081:1:5"}],"id":6831,"name":"BinaryOperation","src":"44070:12:5"}],"id":6832,"name":"IndexAccess","src":"44064:19:5"}],"id":6833,"name":"FunctionCall","src":"44059:25:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":6834,"name":"Literal","src":"44085:1:5"}],"id":6835,"name":"BinaryOperation","src":"44059:27:5"}],"id":6836,"name":"FunctionCall","src":"44049:38:5"}],"id":6837,"name":"VariableDeclarationStatement","src":"44029:58:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"overloadedDeclarations":[null],"referencedDeclaration":7482,"type":"function (bytes memory,uint256,uint256,bytes memory,uint256) pure returns (bytes memory)","value":"copyBytes"},"id":6838,"name":"Identifier","src":"44097:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6813,"type":"bytes memory","value":"proof"},"id":6839,"name":"Identifier","src":"44107:5:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6815,"type":"uint256","value":"sig2offset"},"id":6840,"name":"Identifier","src":"44114:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6824,"type":"bytes memory","value":"sig2"},"id":6841,"name":"Identifier","src":"44126:4:5"}],"id":6842,"name":"MemberAccess","src":"44126:11:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6824,"type":"bytes memory","value":"sig2"},"id":6843,"name":"Identifier","src":"44139:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":6844,"name":"Literal","src":"44145:1:5"}],"id":6845,"name":"FunctionCall","src":"44097:50:5"}],"id":6846,"name":"ExpressionStatement","src":"44097:50:5"},{"attributes":{"assignments":[6848]},"children":[{"attributes":{"constant":false,"name":"appkey1_pubkey","scope":6991,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":6847,"name":"ElementaryTypeName","src":"44158:5:5"}],"id":6848,"name":"VariableDeclaration","src":"44158:27:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (bytes memory)"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":6849,"name":"ElementaryTypeName","src":"44192:5:5"}],"id":6850,"name":"NewExpression","src":"44188:9:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3634","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 64","value":"64"},"id":6851,"name":"Literal","src":"44198:2:5"}],"id":6852,"name":"FunctionCall","src":"44188:13:5"}],"id":6853,"name":"VariableDeclarationStatement","src":"44158:43:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"overloadedDeclarations":[null],"referencedDeclaration":7482,"type":"function (bytes memory,uint256,uint256,bytes memory,uint256) pure returns (bytes memory)","value":"copyBytes"},"id":6854,"name":"Identifier","src":"44211:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6813,"type":"bytes memory","value":"proof"},"id":6855,"name":"Identifier","src":"44221:5:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"+","type":"int_const 4"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":6856,"name":"Literal","src":"44228:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":6857,"name":"Literal","src":"44230:1:5"}],"id":6858,"name":"BinaryOperation","src":"44228:3:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3634","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 64","value":"64"},"id":6859,"name":"Literal","src":"44233:2:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6848,"type":"bytes memory","value":"appkey1_pubkey"},"id":6860,"name":"Identifier","src":"44237:14:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":6861,"name":"Literal","src":"44253:1:5"}],"id":6862,"name":"FunctionCall","src":"44211:44:5"}],"id":6863,"name":"ExpressionStatement","src":"44211:44:5"},{"attributes":{"assignments":[6865]},"children":[{"attributes":{"constant":false,"name":"tosign2","scope":6991,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":6864,"name":"ElementaryTypeName","src":"44266:5:5"}],"id":6865,"name":"VariableDeclaration","src":"44266:20:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_98_by_1","typeString":"int_const 98"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (bytes memory)"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":6866,"name":"ElementaryTypeName","src":"44293:5:5"}],"id":6867,"name":"NewExpression","src":"44289:9:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_98_by_1","typeString":"int_const 98"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"+","type":"int_const 98"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_66_by_1","typeString":"int_const 66"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"+","type":"int_const 66"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":6868,"name":"Literal","src":"44299:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3635","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 65","value":"65"},"id":6869,"name":"Literal","src":"44301:2:5"}],"id":6870,"name":"BinaryOperation","src":"44299:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":6871,"name":"Literal","src":"44304:2:5"}],"id":6872,"name":"BinaryOperation","src":"44299:7:5"}],"id":6873,"name":"FunctionCall","src":"44289:18:5"}],"id":6874,"name":"VariableDeclarationStatement","src":"44266:41:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6865,"type":"bytes memory","value":"tosign2"},"id":6875,"name":"Identifier","src":"44317:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":6876,"name":"Literal","src":"44325:1:5"}],"id":6877,"name":"IndexAccess","src":"44317:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes1","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes1)","value":"byte"},"id":6878,"name":"ElementaryTypeNameExpression","src":"44330:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":6879,"name":"Literal","src":"44335:1:5"}],"id":6880,"name":"FunctionCall","src":"44330:7:5"}],"id":6881,"name":"Assignment","src":"44317:20:5"}],"id":6882,"name":"ExpressionStatement","src":"44317:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_65_by_1","typeString":"int_const 65"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"overloadedDeclarations":[null],"referencedDeclaration":7482,"type":"function (bytes memory,uint256,uint256,bytes memory,uint256) pure returns (bytes memory)","value":"copyBytes"},"id":6883,"name":"Identifier","src":"44354:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6813,"type":"bytes memory","value":"proof"},"id":6884,"name":"Identifier","src":"44364:5:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6815,"type":"uint256","value":"sig2offset"},"id":6885,"name":"Identifier","src":"44371:10:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3635","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 65","value":"65"},"id":6886,"name":"Literal","src":"44382:2:5"}],"id":6887,"name":"BinaryOperation","src":"44371:13:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3635","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 65","value":"65"},"id":6888,"name":"Literal","src":"44386:2:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6865,"type":"bytes memory","value":"tosign2"},"id":6889,"name":"Identifier","src":"44390:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":6890,"name":"Literal","src":"44399:1:5"}],"id":6891,"name":"FunctionCall","src":"44354:47:5"}],"id":6892,"name":"ExpressionStatement","src":"44354:47:5"},{"attributes":{"assignments":[6894]},"children":[{"attributes":{"constant":false,"name":"CODEHASH","scope":6991,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":6893,"name":"ElementaryTypeName","src":"44411:5:5"}],"id":6894,"name":"VariableDeclaration","src":"44411:21:5"},{"attributes":{"argumentTypes":null,"hexvalue":"fd94fa71bc0ba10d39d464d0d8f465efeef0a2764e3887fcc9df41ded20f505c","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string (contains invalid UTF-8 sequence at position 0)","value":null},"id":6895,"name":"Literal","src":"44435:69:5"}],"id":6896,"name":"VariableDeclarationStatement","src":"44411:93:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_66_by_1","typeString":"int_const 66"}],"overloadedDeclarations":[null],"referencedDeclaration":7482,"type":"function (bytes memory,uint256,uint256,bytes memory,uint256) pure returns (bytes memory)","value":"copyBytes"},"id":6897,"name":"Identifier","src":"44514:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6894,"type":"bytes memory","value":"CODEHASH"},"id":6898,"name":"Identifier","src":"44524:8:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":6899,"name":"Literal","src":"44534:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":6900,"name":"Literal","src":"44537:2:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6865,"type":"bytes memory","value":"tosign2"},"id":6901,"name":"Identifier","src":"44541:7:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_66_by_1","typeString":"int_const 66"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"+","type":"int_const 66"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":6902,"name":"Literal","src":"44550:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3635","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 65","value":"65"},"id":6903,"name":"Literal","src":"44552:2:5"}],"id":6904,"name":"BinaryOperation","src":"44550:4:5"}],"id":6905,"name":"FunctionCall","src":"44514:41:5"}],"id":6906,"name":"ExpressionStatement","src":"44514:41:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6821,"type":"bool","value":"sigok"},"id":6907,"name":"Identifier","src":"44565:5:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"overloadedDeclarations":[null],"referencedDeclaration":6811,"type":"function (bytes32,bytes memory,bytes memory) returns (bool)","value":"verifySig"},"id":6908,"name":"Identifier","src":"44573:9:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"overloadedDeclarations":[null],"referencedDeclaration":12025,"type":"function () pure returns (bytes32)","value":"sha256"},"id":6909,"name":"Identifier","src":"44583:6:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6865,"type":"bytes memory","value":"tosign2"},"id":6910,"name":"Identifier","src":"44590:7:5"}],"id":6911,"name":"FunctionCall","src":"44583:15:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6824,"type":"bytes memory","value":"sig2"},"id":6912,"name":"Identifier","src":"44600:4:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6848,"type":"bytes memory","value":"appkey1_pubkey"},"id":6913,"name":"Identifier","src":"44606:14:5"}],"id":6914,"name":"FunctionCall","src":"44573:48:5"}],"id":6915,"name":"Assignment","src":"44565:56:5"}],"id":6916,"name":"ExpressionStatement","src":"44565:56:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6821,"type":"bool","value":"sigok"},"id":6917,"name":"Identifier","src":"44636:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"66616c7365","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"false"},"id":6918,"name":"Literal","src":"44645:5:5"}],"id":6919,"name":"BinaryOperation","src":"44636:14:5"},{"attributes":{"functionReturnParameters":6819},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"66616c7365","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"false"},"id":6920,"name":"Literal","src":"44659:5:5"}],"id":6921,"name":"Return","src":"44652:12:5"}],"id":6922,"name":"IfStatement","src":"44632:32:5"},{"attributes":{"assignments":[6924]},"children":[{"attributes":{"constant":false,"name":"LEDGERKEY","scope":6991,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":6923,"name":"ElementaryTypeName","src":"44752:5:5"}],"id":6924,"name":"VariableDeclaration","src":"44752:22:5"},{"attributes":{"argumentTypes":null,"hexvalue":"7fb956469c5c9b89840d55b43537e66a98dd4811ea0a27224272c2e5622911e8537a2f8e86a46baec82864e98dd01e9ccc2f8bc5dfc9cbe5a91a290498dd96e4","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string (contains invalid UTF-8 sequence at position 1)","value":null},"id":6925,"name":"Literal","src":"44777:133:5"}],"id":6926,"name":"VariableDeclarationStatement","src":"44752:158:5"},{"attributes":{"assignments":[6928]},"children":[{"attributes":{"constant":false,"name":"tosign3","scope":6991,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":6927,"name":"ElementaryTypeName","src":"44921:5:5"}],"id":6928,"name":"VariableDeclaration","src":"44921:20:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_66_by_1","typeString":"int_const 66"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (bytes memory)"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":6929,"name":"ElementaryTypeName","src":"44948:5:5"}],"id":6930,"name":"NewExpression","src":"44944:9:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_66_by_1","typeString":"int_const 66"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"+","type":"int_const 66"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":6931,"name":"Literal","src":"44954:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3635","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 65","value":"65"},"id":6932,"name":"Literal","src":"44956:2:5"}],"id":6933,"name":"BinaryOperation","src":"44954:4:5"}],"id":6934,"name":"FunctionCall","src":"44944:15:5"}],"id":6935,"name":"VariableDeclarationStatement","src":"44921:38:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6928,"type":"bytes memory","value":"tosign3"},"id":6936,"name":"Identifier","src":"44969:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":6937,"name":"Literal","src":"44977:1:5"}],"id":6938,"name":"IndexAccess","src":"44969:10:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30784645","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 254","value":"0xFE"},"id":6939,"name":"Literal","src":"44982:4:5"}],"id":6940,"name":"Assignment","src":"44969:17:5"}],"id":6941,"name":"ExpressionStatement","src":"44969:17:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},{"typeIdentifier":"t_rational_65_by_1","typeString":"int_const 65"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"overloadedDeclarations":[null],"referencedDeclaration":7482,"type":"function (bytes memory,uint256,uint256,bytes memory,uint256) pure returns (bytes memory)","value":"copyBytes"},"id":6942,"name":"Identifier","src":"44996:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6813,"type":"bytes memory","value":"proof"},"id":6943,"name":"Identifier","src":"45006:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":6944,"name":"Literal","src":"45013:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3635","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 65","value":"65"},"id":6945,"name":"Literal","src":"45016:2:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6928,"type":"bytes memory","value":"tosign3"},"id":6946,"name":"Identifier","src":"45020:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":6947,"name":"Literal","src":"45029:1:5"}],"id":6948,"name":"FunctionCall","src":"44996:35:5"}],"id":6949,"name":"ExpressionStatement","src":"44996:35:5"},{"attributes":{"assignments":[6951]},"children":[{"attributes":{"constant":false,"name":"sig3","scope":6991,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":6950,"name":"ElementaryTypeName","src":"45042:5:5"}],"id":6951,"name":"VariableDeclaration","src":"45042:17:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (bytes memory)"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":6952,"name":"ElementaryTypeName","src":"45066:5:5"}],"id":6953,"name":"NewExpression","src":"45062:9:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint"},"id":6954,"name":"ElementaryTypeNameExpression","src":"45072:4:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6813,"type":"bytes memory","value":"proof"},"id":6955,"name":"Identifier","src":"45077:5:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_69_by_1","typeString":"int_const 69"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"+","type":"int_const 69"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_68_by_1","typeString":"int_const 68"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"+","type":"int_const 68"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":6956,"name":"Literal","src":"45083:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3635","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 65","value":"65"},"id":6957,"name":"Literal","src":"45085:2:5"}],"id":6958,"name":"BinaryOperation","src":"45083:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":6959,"name":"Literal","src":"45088:1:5"}],"id":6960,"name":"BinaryOperation","src":"45083:6:5"}],"id":6961,"name":"IndexAccess","src":"45077:13:5"}],"id":6962,"name":"FunctionCall","src":"45072:19:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":6963,"name":"Literal","src":"45092:1:5"}],"id":6964,"name":"BinaryOperation","src":"45072:21:5"}],"id":6965,"name":"FunctionCall","src":"45062:32:5"}],"id":6966,"name":"VariableDeclarationStatement","src":"45042:52:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_68_by_1","typeString":"int_const 68"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"overloadedDeclarations":[null],"referencedDeclaration":7482,"type":"function (bytes memory,uint256,uint256,bytes memory,uint256) pure returns (bytes memory)","value":"copyBytes"},"id":6967,"name":"Identifier","src":"45104:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6813,"type":"bytes memory","value":"proof"},"id":6968,"name":"Identifier","src":"45114:5:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_68_by_1","typeString":"int_const 68"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"+","type":"int_const 68"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":6969,"name":"Literal","src":"45121:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3635","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 65","value":"65"},"id":6970,"name":"Literal","src":"45123:2:5"}],"id":6971,"name":"BinaryOperation","src":"45121:4:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6951,"type":"bytes memory","value":"sig3"},"id":6972,"name":"Identifier","src":"45127:4:5"}],"id":6973,"name":"MemberAccess","src":"45127:11:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6951,"type":"bytes memory","value":"sig3"},"id":6974,"name":"Identifier","src":"45140:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":6975,"name":"Literal","src":"45146:1:5"}],"id":6976,"name":"FunctionCall","src":"45104:44:5"}],"id":6977,"name":"ExpressionStatement","src":"45104:44:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6821,"type":"bool","value":"sigok"},"id":6978,"name":"Identifier","src":"45159:5:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"overloadedDeclarations":[null],"referencedDeclaration":6811,"type":"function (bytes32,bytes memory,bytes memory) returns (bool)","value":"verifySig"},"id":6979,"name":"Identifier","src":"45167:9:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"overloadedDeclarations":[null],"referencedDeclaration":12025,"type":"function () pure returns (bytes32)","value":"sha256"},"id":6980,"name":"Identifier","src":"45177:6:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6928,"type":"bytes memory","value":"tosign3"},"id":6981,"name":"Identifier","src":"45184:7:5"}],"id":6982,"name":"FunctionCall","src":"45177:15:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6951,"type":"bytes memory","value":"sig3"},"id":6983,"name":"Identifier","src":"45194:4:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6924,"type":"bytes memory","value":"LEDGERKEY"},"id":6984,"name":"Identifier","src":"45200:9:5"}],"id":6985,"name":"FunctionCall","src":"45167:43:5"}],"id":6986,"name":"Assignment","src":"45159:51:5"}],"id":6987,"name":"ExpressionStatement","src":"45159:51:5"},{"attributes":{"functionReturnParameters":6819},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6821,"type":"bool","value":"sigok"},"id":6988,"name":"Identifier","src":"45228:5:5"}],"id":6989,"name":"Return","src":"45221:12:5"}],"id":6990,"name":"Block","src":"43873:1367:5"}],"id":6991,"name":"FunctionDefinition","src":"43760:1480:5"},{"attributes":{"documentation":null,"name":"oraclize_randomDS_proofVerify","visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_queryId","scope":7040,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":6992,"name":"ElementaryTypeName","src":"45285:7:5"}],"id":6993,"name":"VariableDeclaration","src":"45285:16:5"},{"attributes":{"constant":false,"name":"_result","scope":7040,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":6994,"name":"ElementaryTypeName","src":"45303:6:5"}],"id":6995,"name":"VariableDeclaration","src":"45303:14:5"},{"attributes":{"constant":false,"name":"_proof","scope":7040,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":6996,"name":"ElementaryTypeName","src":"45319:5:5"}],"id":6997,"name":"VariableDeclaration","src":"45319:12:5"}],"id":6998,"name":"ParameterList","src":"45284:48:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"overloadedDeclarations":[12019,12020],"referencedDeclaration":12019,"type":"function (bool) pure","value":"require"},"id":6999,"name":"Identifier","src":"45420:7:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&&","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&&","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6997,"type":"bytes memory","value":"_proof"},"id":7000,"name":"Identifier","src":"45429:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":7001,"name":"Literal","src":"45436:1:5"}],"id":7002,"name":"IndexAccess","src":"45429:9:5"},{"attributes":{"argumentTypes":null,"hexvalue":"4c","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"L\"","value":"L"},"id":7003,"name":"Literal","src":"45442:3:5"}],"id":7004,"name":"BinaryOperation","src":"45429:16:5"}],"id":7005,"name":"TupleExpression","src":"45428:18:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6997,"type":"bytes memory","value":"_proof"},"id":7006,"name":"Identifier","src":"45451:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":7007,"name":"Literal","src":"45458:1:5"}],"id":7008,"name":"IndexAccess","src":"45451:9:5"},{"attributes":{"argumentTypes":null,"hexvalue":"50","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"P\"","value":"P"},"id":7009,"name":"Literal","src":"45464:3:5"}],"id":7010,"name":"BinaryOperation","src":"45451:16:5"}],"id":7011,"name":"TupleExpression","src":"45450:18:5"}],"id":7012,"name":"BinaryOperation","src":"45428:40:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6997,"type":"bytes memory","value":"_proof"},"id":7013,"name":"Identifier","src":"45473:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":7014,"name":"Literal","src":"45480:1:5"}],"id":7015,"name":"IndexAccess","src":"45473:9:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":7016,"name":"Literal","src":"45486:1:5"}],"id":7017,"name":"BinaryOperation","src":"45473:14:5"}],"id":7018,"name":"TupleExpression","src":"45472:16:5"}],"id":7019,"name":"BinaryOperation","src":"45428:60:5"}],"id":7020,"name":"FunctionCall","src":"45420:69:5"}],"id":7021,"name":"ExpressionStatement","src":"45420:69:5"},{"attributes":{"assignments":[7023]},"children":[{"attributes":{"constant":false,"name":"proofVerified","scope":7040,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":7022,"name":"ElementaryTypeName","src":"45500:4:5"}],"id":7023,"name":"VariableDeclaration","src":"45500:18:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"overloadedDeclarations":[null],"referencedDeclaration":7420,"type":"function (bytes memory,bytes32,bytes memory,string memory) returns (bool)","value":"oraclize_randomDS_proofVerify__main"},"id":7024,"name":"Identifier","src":"45521:35:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6997,"type":"bytes memory","value":"_proof"},"id":7025,"name":"Identifier","src":"45557:6:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6993,"type":"bytes32","value":"_queryId"},"id":7026,"name":"Identifier","src":"45565:8:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes storage pointer)","value":"bytes"},"id":7027,"name":"ElementaryTypeNameExpression","src":"45575:5:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6995,"type":"string memory","value":"_result"},"id":7028,"name":"Identifier","src":"45581:7:5"}],"id":7029,"name":"FunctionCall","src":"45575:14:5"},{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"overloadedDeclarations":[null],"referencedDeclaration":6522,"type":"function () view returns (string memory)","value":"oraclize_getNetworkName"},"id":7030,"name":"Identifier","src":"45591:23:5"}],"id":7031,"name":"FunctionCall","src":"45591:25:5"}],"id":7032,"name":"FunctionCall","src":"45521:96:5"}],"id":7033,"name":"VariableDeclarationStatement","src":"45500:117:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"overloadedDeclarations":[12019,12020],"referencedDeclaration":12019,"type":"function (bool) pure","value":"require"},"id":7034,"name":"Identifier","src":"45627:7:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7023,"type":"bool","value":"proofVerified"},"id":7035,"name":"Identifier","src":"45635:13:5"}],"id":7036,"name":"FunctionCall","src":"45627:22:5"}],"id":7037,"name":"ExpressionStatement","src":"45627:22:5"},{"id":7038,"name":"PlaceholderStatement","src":"45660:1:5"}],"id":7039,"name":"Block","src":"45333:335:5"}],"id":7040,"name":"ModifierDefinition","src":"45246:422:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"oraclize_randomDS_proofVerify__returnCode","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_queryId","scope":7095,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":7041,"name":"ElementaryTypeName","src":"45725:7:5"}],"id":7042,"name":"VariableDeclaration","src":"45725:16:5"},{"attributes":{"constant":false,"name":"_result","scope":7095,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":7043,"name":"ElementaryTypeName","src":"45743:6:5"}],"id":7044,"name":"VariableDeclaration","src":"45743:14:5"},{"attributes":{"constant":false,"name":"_proof","scope":7095,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":7045,"name":"ElementaryTypeName","src":"45759:5:5"}],"id":7046,"name":"VariableDeclaration","src":"45759:12:5"}],"id":7047,"name":"ParameterList","src":"45724:48:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":7095,"stateVariable":false,"storageLocation":"default","type":"uint8","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint8","type":"uint8"},"id":7048,"name":"ElementaryTypeName","src":"45791:5:5"}],"id":7049,"name":"VariableDeclaration","src":"45791:5:5"}],"id":7050,"name":"ParameterList","src":"45790:7:5"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"||","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"||","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7046,"type":"bytes memory","value":"_proof"},"id":7051,"name":"Identifier","src":"45889:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":7052,"name":"Literal","src":"45896:1:5"}],"id":7053,"name":"IndexAccess","src":"45889:9:5"},{"attributes":{"argumentTypes":null,"hexvalue":"4c","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"L\"","value":"L"},"id":7054,"name":"Literal","src":"45902:3:5"}],"id":7055,"name":"BinaryOperation","src":"45889:16:5"}],"id":7056,"name":"TupleExpression","src":"45888:18:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7046,"type":"bytes memory","value":"_proof"},"id":7057,"name":"Identifier","src":"45909:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":7058,"name":"Literal","src":"45916:1:5"}],"id":7059,"name":"IndexAccess","src":"45909:9:5"},{"attributes":{"argumentTypes":null,"hexvalue":"50","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"P\"","value":"P"},"id":7060,"name":"Literal","src":"45922:3:5"}],"id":7061,"name":"BinaryOperation","src":"45909:16:5"}],"id":7062,"name":"TupleExpression","src":"45908:18:5"}],"id":7063,"name":"BinaryOperation","src":"45888:38:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7046,"type":"bytes memory","value":"_proof"},"id":7064,"name":"Identifier","src":"45929:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":7065,"name":"Literal","src":"45936:1:5"}],"id":7066,"name":"IndexAccess","src":"45929:9:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":7067,"name":"Literal","src":"45942:1:5"}],"id":7068,"name":"BinaryOperation","src":"45929:14:5"}],"id":7069,"name":"TupleExpression","src":"45928:16:5"}],"id":7070,"name":"BinaryOperation","src":"45888:56:5"},{"attributes":{"functionReturnParameters":7050},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":7071,"name":"Literal","src":"45953:1:5"}],"id":7072,"name":"Return","src":"45946:8:5"}],"id":7073,"name":"IfStatement","src":"45884:70:5"},{"attributes":{"assignments":[7075]},"children":[{"attributes":{"constant":false,"name":"proofVerified","scope":7095,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":7074,"name":"ElementaryTypeName","src":"45965:4:5"}],"id":7075,"name":"VariableDeclaration","src":"45965:18:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"overloadedDeclarations":[null],"referencedDeclaration":7420,"type":"function (bytes memory,bytes32,bytes memory,string memory) returns (bool)","value":"oraclize_randomDS_proofVerify__main"},"id":7076,"name":"Identifier","src":"45986:35:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7046,"type":"bytes memory","value":"_proof"},"id":7077,"name":"Identifier","src":"46022:6:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7042,"type":"bytes32","value":"_queryId"},"id":7078,"name":"Identifier","src":"46030:8:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes storage pointer)","value":"bytes"},"id":7079,"name":"ElementaryTypeNameExpression","src":"46040:5:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7044,"type":"string memory","value":"_result"},"id":7080,"name":"Identifier","src":"46046:7:5"}],"id":7081,"name":"FunctionCall","src":"46040:14:5"},{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"overloadedDeclarations":[null],"referencedDeclaration":6522,"type":"function () view returns (string memory)","value":"oraclize_getNetworkName"},"id":7082,"name":"Identifier","src":"46056:23:5"}],"id":7083,"name":"FunctionCall","src":"46056:25:5"}],"id":7084,"name":"FunctionCall","src":"45986:96:5"}],"id":7085,"name":"VariableDeclarationStatement","src":"45965:117:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7075,"type":"bool","value":"proofVerified"},"id":7086,"name":"Identifier","src":"46096:13:5"},{"attributes":{"argumentTypes":null,"hexvalue":"66616c7365","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"false"},"id":7087,"name":"Literal","src":"46113:5:5"}],"id":7088,"name":"BinaryOperation","src":"46096:22:5"},{"attributes":{"functionReturnParameters":7050},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":7089,"name":"Literal","src":"46127:1:5"}],"id":7090,"name":"Return","src":"46120:8:5"}],"id":7091,"name":"IfStatement","src":"46092:36:5"},{"attributes":{"functionReturnParameters":7050},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":7092,"name":"Literal","src":"46146:1:5"}],"id":7093,"name":"Return","src":"46139:8:5"}],"id":7094,"name":"Block","src":"45797:357:5"}],"id":7095,"name":"FunctionDefinition","src":"45674:480:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"matchBytes32Prefix","payable":false,"scope":7573,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"content","scope":7144,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":7096,"name":"ElementaryTypeName","src":"46188:7:5"}],"id":7097,"name":"VariableDeclaration","src":"46188:15:5"},{"attributes":{"constant":false,"name":"prefix","scope":7144,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":7098,"name":"ElementaryTypeName","src":"46205:5:5"}],"id":7099,"name":"VariableDeclaration","src":"46205:12:5"},{"attributes":{"constant":false,"name":"n_random_bytes","scope":7144,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":7100,"name":"ElementaryTypeName","src":"46219:4:5"}],"id":7101,"name":"VariableDeclaration","src":"46219:19:5"}],"id":7102,"name":"ParameterList","src":"46187:52:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":7144,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":7103,"name":"ElementaryTypeName","src":"46263:4:5"}],"id":7104,"name":"VariableDeclaration","src":"46263:4:5"}],"id":7105,"name":"ParameterList","src":"46262:6:5"},{"children":[{"attributes":{"assignments":[7107]},"children":[{"attributes":{"constant":false,"name":"match_","scope":7144,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":7106,"name":"ElementaryTypeName","src":"46278:4:5"}],"id":7107,"name":"VariableDeclaration","src":"46278:11:5"},{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":7108,"name":"Literal","src":"46292:4:5"}],"id":7109,"name":"VariableDeclarationStatement","src":"46278:18:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"overloadedDeclarations":[12019,12020],"referencedDeclaration":12019,"type":"function (bool) pure","value":"require"},"id":7110,"name":"Identifier","src":"46307:7:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7099,"type":"bytes memory","value":"prefix"},"id":7111,"name":"Identifier","src":"46315:6:5"}],"id":7112,"name":"MemberAccess","src":"46315:13:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7101,"type":"uint256","value":"n_random_bytes"},"id":7113,"name":"Identifier","src":"46332:14:5"}],"id":7114,"name":"BinaryOperation","src":"46315:31:5"}],"id":7115,"name":"FunctionCall","src":"46307:40:5"}],"id":7116,"name":"ExpressionStatement","src":"46307:40:5"},{"children":[{"attributes":{"assignments":[7118]},"children":[{"attributes":{"constant":false,"name":"i","scope":7144,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":7117,"name":"ElementaryTypeName","src":"46363:7:5"}],"id":7118,"name":"VariableDeclaration","src":"46363:9:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":7119,"name":"Literal","src":"46373:1:5"}],"id":7120,"name":"VariableDeclarationStatement","src":"46363:11:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7118,"type":"uint256","value":"i"},"id":7121,"name":"Identifier","src":"46376:1:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7101,"type":"uint256","value":"n_random_bytes"},"id":7122,"name":"Identifier","src":"46379:14:5"}],"id":7123,"name":"BinaryOperation","src":"46376:17:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7118,"type":"uint256","value":"i"},"id":7124,"name":"Identifier","src":"46395:1:5"}],"id":7125,"name":"UnaryOperation","src":"46395:3:5"}],"id":7126,"name":"ExpressionStatement","src":"46395:3:5"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7097,"type":"bytes32","value":"content"},"id":7127,"name":"Identifier","src":"46418:7:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7118,"type":"uint256","value":"i"},"id":7128,"name":"Identifier","src":"46426:1:5"}],"id":7129,"name":"IndexAccess","src":"46418:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7099,"type":"bytes memory","value":"prefix"},"id":7130,"name":"Identifier","src":"46432:6:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7118,"type":"uint256","value":"i"},"id":7131,"name":"Identifier","src":"46439:1:5"}],"id":7132,"name":"IndexAccess","src":"46432:9:5"}],"id":7133,"name":"BinaryOperation","src":"46418:23:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7107,"type":"bool","value":"match_"},"id":7134,"name":"Identifier","src":"46443:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"66616c7365","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"false"},"id":7135,"name":"Literal","src":"46452:5:5"}],"id":7136,"name":"Assignment","src":"46443:14:5"}],"id":7137,"name":"ExpressionStatement","src":"46443:14:5"}],"id":7138,"name":"IfStatement","src":"46414:43:5"}],"id":7139,"name":"Block","src":"46400:68:5"}],"id":7140,"name":"ForStatement","src":"46358:110:5"},{"attributes":{"functionReturnParameters":7105},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7107,"type":"bool","value":"match_"},"id":7141,"name":"Identifier","src":"46485:6:5"}],"id":7142,"name":"Return","src":"46478:13:5"}],"id":7143,"name":"Block","src":"46268:230:5"}],"id":7144,"name":"FunctionDefinition","src":"46160:338:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"oraclize_randomDS_proofVerify__main","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"proof","scope":7420,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":7145,"name":"ElementaryTypeName","src":"46549:5:5"}],"id":7146,"name":"VariableDeclaration","src":"46549:11:5"},{"attributes":{"constant":false,"name":"queryId","scope":7420,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":7147,"name":"ElementaryTypeName","src":"46562:7:5"}],"id":7148,"name":"VariableDeclaration","src":"46562:15:5"},{"attributes":{"constant":false,"name":"result","scope":7420,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":7149,"name":"ElementaryTypeName","src":"46579:5:5"}],"id":7150,"name":"VariableDeclaration","src":"46579:12:5"},{"attributes":{"constant":false,"name":"context_name","scope":7420,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":7151,"name":"ElementaryTypeName","src":"46593:6:5"}],"id":7152,"name":"VariableDeclaration","src":"46593:19:5"}],"id":7153,"name":"ParameterList","src":"46548:65:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":7420,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":7154,"name":"ElementaryTypeName","src":"46632:4:5"}],"id":7155,"name":"VariableDeclaration","src":"46632:4:5"}],"id":7156,"name":"ParameterList","src":"46631:6:5"},{"children":[{"attributes":{"assignments":[7158]},"children":[{"attributes":{"constant":false,"name":"ledgerProofLength","scope":7420,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":7157,"name":"ElementaryTypeName","src":"46743:4:5"}],"id":7158,"name":"VariableDeclaration","src":"46743:22:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_68_by_1","typeString":"int_const 68"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"+","type":"int_const 68"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":7159,"name":"Literal","src":"46768:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3635","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 65","value":"65"},"id":7160,"name":"Literal","src":"46770:2:5"}],"id":7161,"name":"BinaryOperation","src":"46768:4:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint"},"id":7162,"name":"ElementaryTypeNameExpression","src":"46774:4:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7146,"type":"bytes memory","value":"proof"},"id":7163,"name":"Identifier","src":"46779:5:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_69_by_1","typeString":"int_const 69"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"+","type":"int_const 69"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_68_by_1","typeString":"int_const 68"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"+","type":"int_const 68"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":7164,"name":"Literal","src":"46785:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3635","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 65","value":"65"},"id":7165,"name":"Literal","src":"46787:2:5"}],"id":7166,"name":"BinaryOperation","src":"46785:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":7167,"name":"Literal","src":"46790:1:5"}],"id":7168,"name":"BinaryOperation","src":"46785:6:5"}],"id":7169,"name":"IndexAccess","src":"46779:13:5"}],"id":7170,"name":"FunctionCall","src":"46774:19:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":7171,"name":"Literal","src":"46794:1:5"}],"id":7172,"name":"BinaryOperation","src":"46774:21:5"}],"id":7173,"name":"TupleExpression","src":"46773:23:5"}],"id":7174,"name":"BinaryOperation","src":"46768:28:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":7175,"name":"Literal","src":"46797:2:5"}],"id":7176,"name":"BinaryOperation","src":"46768:31:5"}],"id":7177,"name":"VariableDeclarationStatement","src":"46743:56:5"},{"attributes":{"assignments":[7179]},"children":[{"attributes":{"constant":false,"name":"keyhash","scope":7420,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":7178,"name":"ElementaryTypeName","src":"46809:5:5"}],"id":7179,"name":"VariableDeclaration","src":"46809:20:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (bytes memory)"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":7180,"name":"ElementaryTypeName","src":"46836:5:5"}],"id":7181,"name":"NewExpression","src":"46832:9:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":7182,"name":"Literal","src":"46842:2:5"}],"id":7183,"name":"FunctionCall","src":"46832:13:5"}],"id":7184,"name":"VariableDeclarationStatement","src":"46809:36:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"overloadedDeclarations":[null],"referencedDeclaration":7482,"type":"function (bytes memory,uint256,uint256,bytes memory,uint256) pure returns (bytes memory)","value":"copyBytes"},"id":7185,"name":"Identifier","src":"46855:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7146,"type":"bytes memory","value":"proof"},"id":7186,"name":"Identifier","src":"46865:5:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7158,"type":"uint256","value":"ledgerProofLength"},"id":7187,"name":"Identifier","src":"46872:17:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":7188,"name":"Literal","src":"46891:2:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7179,"type":"bytes memory","value":"keyhash"},"id":7189,"name":"Identifier","src":"46895:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":7190,"name":"Literal","src":"46904:1:5"}],"id":7191,"name":"FunctionCall","src":"46855:51:5"}],"id":7192,"name":"ExpressionStatement","src":"46855:51:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"overloadedDeclarations":[null],"referencedDeclaration":12010,"type":"function () pure returns (bytes32)","value":"keccak256"},"id":7193,"name":"Identifier","src":"46922:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7179,"type":"bytes memory","value":"keyhash"},"id":7194,"name":"Identifier","src":"46932:7:5"}],"id":7195,"name":"FunctionCall","src":"46922:18:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"overloadedDeclarations":[null],"referencedDeclaration":12010,"type":"function () pure returns (bytes32)","value":"keccak256"},"id":7196,"name":"Identifier","src":"46944:9:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"member_name":"encodePacked","referencedDeclaration":null,"type":"function () pure returns (bytes memory)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":12003,"type":"abi","value":"abi"},"id":7197,"name":"Identifier","src":"46954:3:5"}],"id":7198,"name":"MemberAccess","src":"46954:16:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"overloadedDeclarations":[null],"referencedDeclaration":12025,"type":"function () pure returns (bytes32)","value":"sha256"},"id":7199,"name":"Identifier","src":"46971:6:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"member_name":"encodePacked","referencedDeclaration":null,"type":"function () pure returns (bytes memory)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":12003,"type":"abi","value":"abi"},"id":7200,"name":"Identifier","src":"46978:3:5"}],"id":7201,"name":"MemberAccess","src":"46978:16:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7152,"type":"string memory","value":"context_name"},"id":7202,"name":"Identifier","src":"46995:12:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7148,"type":"bytes32","value":"queryId"},"id":7203,"name":"Identifier","src":"47009:7:5"}],"id":7204,"name":"FunctionCall","src":"46978:39:5"}],"id":7205,"name":"FunctionCall","src":"46971:47:5"}],"id":7206,"name":"FunctionCall","src":"46954:65:5"}],"id":7207,"name":"FunctionCall","src":"46944:76:5"}],"id":7208,"name":"BinaryOperation","src":"46922:98:5"}],"id":7209,"name":"TupleExpression","src":"46921:100:5"}],"id":7210,"name":"UnaryOperation","src":"46920:101:5"},{"attributes":{"functionReturnParameters":7156},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"66616c7365","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"false"},"id":7211,"name":"Literal","src":"47030:5:5"}],"id":7212,"name":"Return","src":"47023:12:5"}],"id":7213,"name":"IfStatement","src":"46916:119:5"},{"attributes":{"assignments":[7215]},"children":[{"attributes":{"constant":false,"name":"sig1","scope":7420,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":7214,"name":"ElementaryTypeName","src":"47046:5:5"}],"id":7215,"name":"VariableDeclaration","src":"47046:17:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (bytes memory)"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":7216,"name":"ElementaryTypeName","src":"47070:5:5"}],"id":7217,"name":"NewExpression","src":"47066:9:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint"},"id":7218,"name":"ElementaryTypeNameExpression","src":"47076:4:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7146,"type":"bytes memory","value":"proof"},"id":7219,"name":"Identifier","src":"47081:5:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7158,"type":"uint256","value":"ledgerProofLength"},"id":7220,"name":"Identifier","src":"47087:17:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"int_const 73"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_73_by_1","typeString":"int_const 73"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"+","type":"int_const 73"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_41_by_1","typeString":"int_const 41"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"+","type":"int_const 41"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_40_by_1","typeString":"int_const 40"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"+","type":"int_const 40"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":7221,"name":"Literal","src":"47106:2:5"},{"attributes":{"argumentTypes":null,"hexvalue":"38","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 8","value":"8"},"id":7222,"name":"Literal","src":"47109:1:5"}],"id":7223,"name":"BinaryOperation","src":"47106:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":7224,"name":"Literal","src":"47111:1:5"}],"id":7225,"name":"BinaryOperation","src":"47106:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":7226,"name":"Literal","src":"47113:2:5"}],"id":7227,"name":"BinaryOperation","src":"47106:9:5"}],"id":7228,"name":"TupleExpression","src":"47105:11:5"}],"id":7229,"name":"BinaryOperation","src":"47087:29:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":7230,"name":"Literal","src":"47117:1:5"}],"id":7231,"name":"BinaryOperation","src":"47087:31:5"}],"id":7232,"name":"IndexAccess","src":"47081:38:5"}],"id":7233,"name":"FunctionCall","src":"47076:44:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":7234,"name":"Literal","src":"47121:1:5"}],"id":7235,"name":"BinaryOperation","src":"47076:46:5"}],"id":7236,"name":"FunctionCall","src":"47066:57:5"}],"id":7237,"name":"VariableDeclarationStatement","src":"47046:77:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"overloadedDeclarations":[null],"referencedDeclaration":7482,"type":"function (bytes memory,uint256,uint256,bytes memory,uint256) pure returns (bytes memory)","value":"copyBytes"},"id":7238,"name":"Identifier","src":"47133:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7146,"type":"bytes memory","value":"proof"},"id":7239,"name":"Identifier","src":"47143:5:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7158,"type":"uint256","value":"ledgerProofLength"},"id":7240,"name":"Identifier","src":"47150:17:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"int_const 73"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_73_by_1","typeString":"int_const 73"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"+","type":"int_const 73"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_41_by_1","typeString":"int_const 41"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"+","type":"int_const 41"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_40_by_1","typeString":"int_const 40"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"+","type":"int_const 40"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":7241,"name":"Literal","src":"47169:2:5"},{"attributes":{"argumentTypes":null,"hexvalue":"38","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 8","value":"8"},"id":7242,"name":"Literal","src":"47172:1:5"}],"id":7243,"name":"BinaryOperation","src":"47169:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":7244,"name":"Literal","src":"47174:1:5"}],"id":7245,"name":"BinaryOperation","src":"47169:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":7246,"name":"Literal","src":"47176:2:5"}],"id":7247,"name":"BinaryOperation","src":"47169:9:5"}],"id":7248,"name":"TupleExpression","src":"47168:11:5"}],"id":7249,"name":"BinaryOperation","src":"47150:29:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7215,"type":"bytes memory","value":"sig1"},"id":7250,"name":"Identifier","src":"47181:4:5"}],"id":7251,"name":"MemberAccess","src":"47181:11:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7215,"type":"bytes memory","value":"sig1"},"id":7252,"name":"Identifier","src":"47194:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":7253,"name":"Literal","src":"47200:1:5"}],"id":7254,"name":"FunctionCall","src":"47133:69:5"}],"id":7255,"name":"ExpressionStatement","src":"47133:69:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":7144,"type":"function (bytes32,bytes memory,uint256) pure returns (bool)","value":"matchBytes32Prefix"},"id":7256,"name":"Identifier","src":"47353:18:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"overloadedDeclarations":[null],"referencedDeclaration":12025,"type":"function () pure returns (bytes32)","value":"sha256"},"id":7257,"name":"Identifier","src":"47372:6:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7215,"type":"bytes memory","value":"sig1"},"id":7258,"name":"Identifier","src":"47379:4:5"}],"id":7259,"name":"FunctionCall","src":"47372:12:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7150,"type":"bytes memory","value":"result"},"id":7260,"name":"Identifier","src":"47386:6:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint"},"id":7261,"name":"ElementaryTypeNameExpression","src":"47394:4:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7146,"type":"bytes memory","value":"proof"},"id":7262,"name":"Identifier","src":"47399:5:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7158,"type":"uint256","value":"ledgerProofLength"},"id":7263,"name":"Identifier","src":"47405:17:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":7264,"name":"Literal","src":"47423:2:5"}],"id":7265,"name":"BinaryOperation","src":"47405:20:5"},{"attributes":{"argumentTypes":null,"hexvalue":"38","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 8","value":"8"},"id":7266,"name":"Literal","src":"47426:1:5"}],"id":7267,"name":"BinaryOperation","src":"47405:22:5"}],"id":7268,"name":"IndexAccess","src":"47399:29:5"}],"id":7269,"name":"FunctionCall","src":"47394:35:5"}],"id":7270,"name":"FunctionCall","src":"47353:77:5"}],"id":7271,"name":"UnaryOperation","src":"47352:78:5"},{"attributes":{"functionReturnParameters":7156},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"66616c7365","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"false"},"id":7272,"name":"Literal","src":"47439:5:5"}],"id":7273,"name":"Return","src":"47432:12:5"}],"id":7274,"name":"IfStatement","src":"47348:96:5"},{"attributes":{"assignments":[7276]},"children":[{"attributes":{"constant":false,"name":"commitmentSlice1","scope":7420,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":7275,"name":"ElementaryTypeName","src":"47676:5:5"}],"id":7276,"name":"VariableDeclaration","src":"47676:29:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_41_by_1","typeString":"int_const 41"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (bytes memory)"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":7277,"name":"ElementaryTypeName","src":"47712:5:5"}],"id":7278,"name":"NewExpression","src":"47708:9:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_41_by_1","typeString":"int_const 41"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"+","type":"int_const 41"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_9_by_1","typeString":"int_const 9"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"+","type":"int_const 9"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"38","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 8","value":"8"},"id":7279,"name":"Literal","src":"47718:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":7280,"name":"Literal","src":"47720:1:5"}],"id":7281,"name":"BinaryOperation","src":"47718:3:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":7282,"name":"Literal","src":"47722:2:5"}],"id":7283,"name":"BinaryOperation","src":"47718:6:5"}],"id":7284,"name":"FunctionCall","src":"47708:17:5"}],"id":7285,"name":"VariableDeclarationStatement","src":"47676:49:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_41_by_1","typeString":"int_const 41"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"overloadedDeclarations":[null],"referencedDeclaration":7482,"type":"function (bytes memory,uint256,uint256,bytes memory,uint256) pure returns (bytes memory)","value":"copyBytes"},"id":7286,"name":"Identifier","src":"47735:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7146,"type":"bytes memory","value":"proof"},"id":7287,"name":"Identifier","src":"47745:5:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7158,"type":"uint256","value":"ledgerProofLength"},"id":7288,"name":"Identifier","src":"47752:17:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":7289,"name":"Literal","src":"47770:2:5"}],"id":7290,"name":"BinaryOperation","src":"47752:20:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_41_by_1","typeString":"int_const 41"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"+","type":"int_const 41"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_9_by_1","typeString":"int_const 9"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"+","type":"int_const 9"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"38","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 8","value":"8"},"id":7291,"name":"Literal","src":"47774:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":7292,"name":"Literal","src":"47776:1:5"}],"id":7293,"name":"BinaryOperation","src":"47774:3:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":7294,"name":"Literal","src":"47778:2:5"}],"id":7295,"name":"BinaryOperation","src":"47774:6:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7276,"type":"bytes memory","value":"commitmentSlice1"},"id":7296,"name":"Identifier","src":"47782:16:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":7297,"name":"Literal","src":"47800:1:5"}],"id":7298,"name":"FunctionCall","src":"47735:67:5"}],"id":7299,"name":"ExpressionStatement","src":"47735:67:5"},{"attributes":{"assignments":[7301]},"children":[{"attributes":{"constant":false,"name":"sessionPubkey","scope":7420,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":7300,"name":"ElementaryTypeName","src":"47813:5:5"}],"id":7301,"name":"VariableDeclaration","src":"47813:26:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (bytes memory)"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":7302,"name":"ElementaryTypeName","src":"47846:5:5"}],"id":7303,"name":"NewExpression","src":"47842:9:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3634","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 64","value":"64"},"id":7304,"name":"Literal","src":"47852:2:5"}],"id":7305,"name":"FunctionCall","src":"47842:13:5"}],"id":7306,"name":"VariableDeclarationStatement","src":"47813:42:5"},{"attributes":{"assignments":[7308]},"children":[{"attributes":{"constant":false,"name":"sig2offset","scope":7420,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":7307,"name":"ElementaryTypeName","src":"47865:4:5"}],"id":7308,"name":"VariableDeclaration","src":"47865:15:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7158,"type":"uint256","value":"ledgerProofLength"},"id":7309,"name":"Identifier","src":"47883:17:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":7310,"name":"Literal","src":"47901:2:5"}],"id":7311,"name":"BinaryOperation","src":"47883:20:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"int_const 41"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_41_by_1","typeString":"int_const 41"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"+","type":"int_const 41"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_9_by_1","typeString":"int_const 9"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"+","type":"int_const 9"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"38","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 8","value":"8"},"id":7312,"name":"Literal","src":"47905:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":7313,"name":"Literal","src":"47907:1:5"}],"id":7314,"name":"BinaryOperation","src":"47905:3:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":7315,"name":"Literal","src":"47909:2:5"}],"id":7316,"name":"BinaryOperation","src":"47905:6:5"}],"id":7317,"name":"TupleExpression","src":"47904:8:5"}],"id":7318,"name":"BinaryOperation","src":"47883:29:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7215,"type":"bytes memory","value":"sig1"},"id":7319,"name":"Identifier","src":"47913:4:5"}],"id":7320,"name":"MemberAccess","src":"47913:11:5"}],"id":7321,"name":"BinaryOperation","src":"47883:41:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3635","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 65","value":"65"},"id":7322,"name":"Literal","src":"47925:2:5"}],"id":7323,"name":"BinaryOperation","src":"47883:44:5"}],"id":7324,"name":"VariableDeclarationStatement","src":"47865:62:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"overloadedDeclarations":[null],"referencedDeclaration":7482,"type":"function (bytes memory,uint256,uint256,bytes memory,uint256) pure returns (bytes memory)","value":"copyBytes"},"id":7325,"name":"Identifier","src":"47937:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7146,"type":"bytes memory","value":"proof"},"id":7326,"name":"Identifier","src":"47947:5:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7308,"type":"uint256","value":"sig2offset"},"id":7327,"name":"Identifier","src":"47954:10:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3634","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 64","value":"64"},"id":7328,"name":"Literal","src":"47965:2:5"}],"id":7329,"name":"BinaryOperation","src":"47954:13:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3634","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 64","value":"64"},"id":7330,"name":"Literal","src":"47969:2:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7301,"type":"bytes memory","value":"sessionPubkey"},"id":7331,"name":"Identifier","src":"47973:13:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":7332,"name":"Literal","src":"47988:1:5"}],"id":7333,"name":"FunctionCall","src":"47937:53:5"}],"id":7334,"name":"ExpressionStatement","src":"47937:53:5"},{"attributes":{"assignments":[7336]},"children":[{"attributes":{"constant":false,"name":"sessionPubkeyHash","scope":7420,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":7335,"name":"ElementaryTypeName","src":"48001:7:5"}],"id":7336,"name":"VariableDeclaration","src":"48001:25:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"overloadedDeclarations":[null],"referencedDeclaration":12025,"type":"function () pure returns (bytes32)","value":"sha256"},"id":7337,"name":"Identifier","src":"48029:6:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7301,"type":"bytes memory","value":"sessionPubkey"},"id":7338,"name":"Identifier","src":"48036:13:5"}],"id":7339,"name":"FunctionCall","src":"48029:21:5"}],"id":7340,"name":"VariableDeclarationStatement","src":"48001:49:5"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6676,"type":"mapping(bytes32 => bytes32)","value":"oraclize_randomDS_args"},"id":7341,"name":"Identifier","src":"48064:22:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7148,"type":"bytes32","value":"queryId"},"id":7342,"name":"Identifier","src":"48087:7:5"}],"id":7343,"name":"IndexAccess","src":"48064:31:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"overloadedDeclarations":[null],"referencedDeclaration":12010,"type":"function () pure returns (bytes32)","value":"keccak256"},"id":7344,"name":"Identifier","src":"48099:9:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"member_name":"encodePacked","referencedDeclaration":null,"type":"function () pure returns (bytes memory)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":12003,"type":"abi","value":"abi"},"id":7345,"name":"Identifier","src":"48109:3:5"}],"id":7346,"name":"MemberAccess","src":"48109:16:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7276,"type":"bytes memory","value":"commitmentSlice1"},"id":7347,"name":"Identifier","src":"48126:16:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7336,"type":"bytes32","value":"sessionPubkeyHash"},"id":7348,"name":"Identifier","src":"48144:17:5"}],"id":7349,"name":"FunctionCall","src":"48109:53:5"}],"id":7350,"name":"FunctionCall","src":"48099:64:5"}],"id":7351,"name":"BinaryOperation","src":"48064:99:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"delete","prefix":true,"type":"tuple()"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6676,"type":"mapping(bytes32 => bytes32)","value":"oraclize_randomDS_args"},"id":7352,"name":"Identifier","src":"48227:22:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7148,"type":"bytes32","value":"queryId"},"id":7353,"name":"Identifier","src":"48250:7:5"}],"id":7354,"name":"IndexAccess","src":"48227:31:5"}],"id":7355,"name":"UnaryOperation","src":"48220:38:5"}],"id":7356,"name":"ExpressionStatement","src":"48220:38:5"}],"id":7357,"name":"Block","src":"48164:105:5"},{"attributes":{"functionReturnParameters":7156},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"66616c7365","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"false"},"id":7358,"name":"Literal","src":"48282:5:5"}],"id":7359,"name":"Return","src":"48275:12:5"}],"id":7360,"name":"IfStatement","src":"48060:227:5"},{"attributes":{"assignments":[7362]},"children":[{"attributes":{"constant":false,"name":"tosign1","scope":7420,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":7361,"name":"ElementaryTypeName","src":"48395:5:5"}],"id":7362,"name":"VariableDeclaration","src":"48395:20:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_73_by_1","typeString":"int_const 73"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (bytes memory)"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":7363,"name":"ElementaryTypeName","src":"48422:5:5"}],"id":7364,"name":"NewExpression","src":"48418:9:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_73_by_1","typeString":"int_const 73"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"+","type":"int_const 73"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_41_by_1","typeString":"int_const 41"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"+","type":"int_const 41"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_40_by_1","typeString":"int_const 40"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"+","type":"int_const 40"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":7365,"name":"Literal","src":"48428:2:5"},{"attributes":{"argumentTypes":null,"hexvalue":"38","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 8","value":"8"},"id":7366,"name":"Literal","src":"48431:1:5"}],"id":7367,"name":"BinaryOperation","src":"48428:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":7368,"name":"Literal","src":"48433:1:5"}],"id":7369,"name":"BinaryOperation","src":"48428:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":7370,"name":"Literal","src":"48435:2:5"}],"id":7371,"name":"BinaryOperation","src":"48428:9:5"}],"id":7372,"name":"FunctionCall","src":"48418:20:5"}],"id":7373,"name":"VariableDeclarationStatement","src":"48395:43:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_73_by_1","typeString":"int_const 73"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"overloadedDeclarations":[null],"referencedDeclaration":7482,"type":"function (bytes memory,uint256,uint256,bytes memory,uint256) pure returns (bytes memory)","value":"copyBytes"},"id":7374,"name":"Identifier","src":"48448:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7146,"type":"bytes memory","value":"proof"},"id":7375,"name":"Identifier","src":"48458:5:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7158,"type":"uint256","value":"ledgerProofLength"},"id":7376,"name":"Identifier","src":"48465:17:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_73_by_1","typeString":"int_const 73"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"+","type":"int_const 73"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_41_by_1","typeString":"int_const 41"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"+","type":"int_const 41"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_40_by_1","typeString":"int_const 40"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"+","type":"int_const 40"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":7377,"name":"Literal","src":"48484:2:5"},{"attributes":{"argumentTypes":null,"hexvalue":"38","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 8","value":"8"},"id":7378,"name":"Literal","src":"48487:1:5"}],"id":7379,"name":"BinaryOperation","src":"48484:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":7380,"name":"Literal","src":"48489:1:5"}],"id":7381,"name":"BinaryOperation","src":"48484:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":7382,"name":"Literal","src":"48491:2:5"}],"id":7383,"name":"BinaryOperation","src":"48484:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7362,"type":"bytes memory","value":"tosign1"},"id":7384,"name":"Identifier","src":"48495:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":7385,"name":"Literal","src":"48504:1:5"}],"id":7386,"name":"FunctionCall","src":"48448:58:5"}],"id":7387,"name":"ExpressionStatement","src":"48448:58:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"overloadedDeclarations":[null],"referencedDeclaration":6811,"type":"function (bytes32,bytes memory,bytes memory) returns (bool)","value":"verifySig"},"id":7388,"name":"Identifier","src":"48521:9:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"overloadedDeclarations":[null],"referencedDeclaration":12025,"type":"function () pure returns (bytes32)","value":"sha256"},"id":7389,"name":"Identifier","src":"48531:6:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7362,"type":"bytes memory","value":"tosign1"},"id":7390,"name":"Identifier","src":"48538:7:5"}],"id":7391,"name":"FunctionCall","src":"48531:15:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7215,"type":"bytes memory","value":"sig1"},"id":7392,"name":"Identifier","src":"48548:4:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7301,"type":"bytes memory","value":"sessionPubkey"},"id":7393,"name":"Identifier","src":"48554:13:5"}],"id":7394,"name":"FunctionCall","src":"48521:47:5"}],"id":7395,"name":"UnaryOperation","src":"48520:48:5"},{"attributes":{"functionReturnParameters":7156},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"66616c7365","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"false"},"id":7396,"name":"Literal","src":"48577:5:5"}],"id":7397,"name":"Return","src":"48570:12:5"}],"id":7398,"name":"IfStatement","src":"48516:66:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6680,"type":"mapping(bytes32 => bool)","value":"oraclize_randomDS_sessionKeysHashVerified"},"id":7399,"name":"Identifier","src":"48680:41:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7336,"type":"bytes32","value":"sessionPubkeyHash"},"id":7400,"name":"Identifier","src":"48722:17:5"}],"id":7401,"name":"IndexAccess","src":"48680:60:5"},{"attributes":{"argumentTypes":null,"hexvalue":"66616c7365","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"false"},"id":7402,"name":"Literal","src":"48744:5:5"}],"id":7403,"name":"BinaryOperation","src":"48680:69:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6680,"type":"mapping(bytes32 => bool)","value":"oraclize_randomDS_sessionKeysHashVerified"},"id":7404,"name":"Identifier","src":"48764:41:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7336,"type":"bytes32","value":"sessionPubkeyHash"},"id":7405,"name":"Identifier","src":"48806:17:5"}],"id":7406,"name":"IndexAccess","src":"48764:60:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":6991,"type":"function (bytes memory,uint256) returns (bool)","value":"oraclize_randomDS_proofVerify__sessionKeyValidity"},"id":7407,"name":"Identifier","src":"48827:49:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7146,"type":"bytes memory","value":"proof"},"id":7408,"name":"Identifier","src":"48877:5:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7308,"type":"uint256","value":"sig2offset"},"id":7409,"name":"Identifier","src":"48884:10:5"}],"id":7410,"name":"FunctionCall","src":"48827:68:5"}],"id":7411,"name":"Assignment","src":"48764:131:5"}],"id":7412,"name":"ExpressionStatement","src":"48764:131:5"}],"id":7413,"name":"Block","src":"48750:156:5"}],"id":7414,"name":"IfStatement","src":"48676:230:5"},{"attributes":{"functionReturnParameters":7156},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6680,"type":"mapping(bytes32 => bool)","value":"oraclize_randomDS_sessionKeysHashVerified"},"id":7415,"name":"Identifier","src":"48923:41:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7336,"type":"bytes32","value":"sessionPubkeyHash"},"id":7416,"name":"Identifier","src":"48965:17:5"}],"id":7417,"name":"IndexAccess","src":"48923:60:5"}],"id":7418,"name":"Return","src":"48916:67:5"}],"id":7419,"name":"Block","src":"46637:2353:5"}],"id":7420,"name":"FunctionDefinition","src":"46504:2486:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"copyBytes","payable":false,"scope":7573,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"from","scope":7482,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":7421,"name":"ElementaryTypeName","src":"49133:5:5"}],"id":7422,"name":"VariableDeclaration","src":"49133:10:5"},{"attributes":{"constant":false,"name":"fromOffset","scope":7482,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":7423,"name":"ElementaryTypeName","src":"49145:4:5"}],"id":7424,"name":"VariableDeclaration","src":"49145:15:5"},{"attributes":{"constant":false,"name":"length","scope":7482,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":7425,"name":"ElementaryTypeName","src":"49162:4:5"}],"id":7426,"name":"VariableDeclaration","src":"49162:11:5"},{"attributes":{"constant":false,"name":"to","scope":7482,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":7427,"name":"ElementaryTypeName","src":"49175:5:5"}],"id":7428,"name":"VariableDeclaration","src":"49175:8:5"},{"attributes":{"constant":false,"name":"toOffset","scope":7482,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":7429,"name":"ElementaryTypeName","src":"49185:4:5"}],"id":7430,"name":"VariableDeclaration","src":"49185:13:5"}],"id":7431,"name":"ParameterList","src":"49132:67:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":7482,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":7432,"name":"ElementaryTypeName","src":"49223:5:5"}],"id":7433,"name":"VariableDeclaration","src":"49223:5:5"}],"id":7434,"name":"ParameterList","src":"49222:7:5"},{"children":[{"attributes":{"assignments":[7436]},"children":[{"attributes":{"constant":false,"name":"minLength","scope":7482,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":7435,"name":"ElementaryTypeName","src":"49240:4:5"}],"id":7436,"name":"VariableDeclaration","src":"49240:14:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7426,"type":"uint256","value":"length"},"id":7437,"name":"Identifier","src":"49257:6:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7430,"type":"uint256","value":"toOffset"},"id":7438,"name":"Identifier","src":"49266:8:5"}],"id":7439,"name":"BinaryOperation","src":"49257:17:5"}],"id":7440,"name":"VariableDeclarationStatement","src":"49240:34:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"overloadedDeclarations":[12019,12020],"referencedDeclaration":12019,"type":"function (bool) pure","value":"require"},"id":7441,"name":"Identifier","src":"49313:7:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7428,"type":"bytes memory","value":"to"},"id":7442,"name":"Identifier","src":"49321:2:5"}],"id":7443,"name":"MemberAccess","src":"49321:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7436,"type":"uint256","value":"minLength"},"id":7444,"name":"Identifier","src":"49334:9:5"}],"id":7445,"name":"BinaryOperation","src":"49321:22:5"}],"id":7446,"name":"FunctionCall","src":"49313:31:5"}],"id":7447,"name":"ExpressionStatement","src":"49313:31:5"},{"attributes":{"assignments":[7449]},"children":[{"attributes":{"constant":false,"name":"i","scope":7482,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":7448,"name":"ElementaryTypeName","src":"49471:4:5"}],"id":7449,"name":"VariableDeclaration","src":"49471:6:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":7450,"name":"Literal","src":"49480:2:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7424,"type":"uint256","value":"fromOffset"},"id":7451,"name":"Identifier","src":"49485:10:5"}],"id":7452,"name":"BinaryOperation","src":"49480:15:5"}],"id":7453,"name":"VariableDeclarationStatement","src":"49471:24:5"},{"attributes":{"assignments":[7455]},"children":[{"attributes":{"constant":false,"name":"j","scope":7482,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":7454,"name":"ElementaryTypeName","src":"49505:4:5"}],"id":7455,"name":"VariableDeclaration","src":"49505:6:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":7456,"name":"Literal","src":"49514:2:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7430,"type":"uint256","value":"toOffset"},"id":7457,"name":"Identifier","src":"49519:8:5"}],"id":7458,"name":"BinaryOperation","src":"49514:13:5"}],"id":7459,"name":"VariableDeclarationStatement","src":"49505:22:5"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7449,"type":"uint256","value":"i"},"id":7460,"name":"Identifier","src":"49545:1:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":7461,"name":"Literal","src":"49550:2:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7424,"type":"uint256","value":"fromOffset"},"id":7462,"name":"Identifier","src":"49555:10:5"}],"id":7463,"name":"BinaryOperation","src":"49550:15:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7426,"type":"uint256","value":"length"},"id":7464,"name":"Identifier","src":"49568:6:5"}],"id":7465,"name":"BinaryOperation","src":"49550:24:5"}],"id":7466,"name":"TupleExpression","src":"49549:26:5"}],"id":7467,"name":"BinaryOperation","src":"49545:30:5"},{"children":[{"attributes":{"externalReferences":[{"from":{"declaration":7422,"isOffset":false,"isSlot":false,"src":"49639:4:5","valueSize":1}},{"i":{"declaration":7449,"isOffset":false,"isSlot":false,"src":"49645:1:5","valueSize":1}},{"to":{"declaration":7428,"isOffset":false,"isSlot":false,"src":"49676:2:5","valueSize":1}},{"j":{"declaration":7455,"isOffset":false,"isSlot":false,"src":"49680:1:5","valueSize":1}}],"operations":"{\n let tmp := mload(add(from, i))\n mstore(add(to, j), tmp)\n}"},"children":[],"id":7468,"name":"InlineAssembly","src":"49591:125:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7449,"type":"uint256","value":"i"},"id":7469,"name":"Identifier","src":"49715:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":7470,"name":"Literal","src":"49720:2:5"}],"id":7471,"name":"Assignment","src":"49715:7:5"}],"id":7472,"name":"ExpressionStatement","src":"49715:7:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7455,"type":"uint256","value":"j"},"id":7473,"name":"Identifier","src":"49736:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":7474,"name":"Literal","src":"49741:2:5"}],"id":7475,"name":"Assignment","src":"49736:7:5"}],"id":7476,"name":"ExpressionStatement","src":"49736:7:5"}],"id":7477,"name":"Block","src":"49577:177:5"}],"id":7478,"name":"WhileStatement","src":"49538:216:5"},{"attributes":{"functionReturnParameters":7434},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7428,"type":"bytes memory","value":"to"},"id":7479,"name":"Identifier","src":"49771:2:5"}],"id":7480,"name":"Return","src":"49764:9:5"}],"id":7481,"name":"Block","src":"49230:550:5"}],"id":7482,"name":"FunctionDefinition","src":"49114:666:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"safer_ecrecover","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"hash","scope":7509,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":7483,"name":"ElementaryTypeName","src":"50003:7:5"}],"id":7484,"name":"VariableDeclaration","src":"50003:12:5"},{"attributes":{"constant":false,"name":"v","scope":7509,"stateVariable":false,"storageLocation":"default","type":"uint8","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint8","type":"uint8"},"id":7485,"name":"ElementaryTypeName","src":"50017:5:5"}],"id":7486,"name":"VariableDeclaration","src":"50017:7:5"},{"attributes":{"constant":false,"name":"r","scope":7509,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":7487,"name":"ElementaryTypeName","src":"50026:7:5"}],"id":7488,"name":"VariableDeclaration","src":"50026:9:5"},{"attributes":{"constant":false,"name":"s","scope":7509,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":7489,"name":"ElementaryTypeName","src":"50037:7:5"}],"id":7490,"name":"VariableDeclaration","src":"50037:9:5"}],"id":7491,"name":"ParameterList","src":"50002:45:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":7509,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":7492,"name":"ElementaryTypeName","src":"50066:4:5"}],"id":7493,"name":"VariableDeclaration","src":"50066:4:5"},{"attributes":{"constant":false,"name":"","scope":7509,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":7494,"name":"ElementaryTypeName","src":"50072:7:5"}],"id":7495,"name":"VariableDeclaration","src":"50072:7:5"}],"id":7496,"name":"ParameterList","src":"50065:15:5"},{"children":[{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"ret","scope":7509,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":7497,"name":"ElementaryTypeName","src":"50476:4:5"}],"id":7498,"name":"VariableDeclaration","src":"50476:8:5"}],"id":7499,"name":"VariableDeclarationStatement","src":"50476:8:5"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"addr","scope":7509,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":7500,"name":"ElementaryTypeName","src":"50494:7:5"}],"id":7501,"name":"VariableDeclaration","src":"50494:12:5"}],"id":7502,"name":"VariableDeclarationStatement","src":"50494:12:5"},{"attributes":{"externalReferences":[{"ret":{"declaration":7498,"isOffset":false,"isSlot":false,"src":"50830:3:5","valueSize":1}},{"hash":{"declaration":7484,"isOffset":false,"isSlot":false,"src":"50589:4:5","valueSize":1}},{"v":{"declaration":7486,"isOffset":false,"isSlot":false,"src":"50629:1:5","valueSize":1}},{"r":{"declaration":7488,"isOffset":false,"isSlot":false,"src":"50666:1:5","valueSize":1}},{"s":{"declaration":7490,"isOffset":false,"isSlot":false,"src":"50703:1:5","valueSize":1}},{"addr":{"declaration":7501,"isOffset":false,"isSlot":false,"src":"50887:4:5","valueSize":1}}],"operations":"{\n let size := mload(0x40)\n mstore(size, hash)\n mstore(add(size, 32), v)\n mstore(add(size, 64), r)\n mstore(add(size, 96), s)\n ret := call(3000, 1, 0, size, 128, size, 32)\n addr := mload(size)\n}"},"children":[],"id":7503,"name":"InlineAssembly","src":"50517:415:5"},{"attributes":{"functionReturnParameters":7496},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"tuple(bool,address)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7498,"type":"bool","value":"ret"},"id":7504,"name":"Identifier","src":"50934:3:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7501,"type":"address","value":"addr"},"id":7505,"name":"Identifier","src":"50939:4:5"}],"id":7506,"name":"TupleExpression","src":"50933:11:5"}],"id":7507,"name":"Return","src":"50926:18:5"}],"id":7508,"name":"Block","src":"50081:870:5"}],"id":7509,"name":"FunctionDefinition","src":"49978:973:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"ecrecovery","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"hash","scope":7567,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":7510,"name":"ElementaryTypeName","src":"51095:7:5"}],"id":7511,"name":"VariableDeclaration","src":"51095:12:5"},{"attributes":{"constant":false,"name":"sig","scope":7567,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":7512,"name":"ElementaryTypeName","src":"51109:5:5"}],"id":7513,"name":"VariableDeclaration","src":"51109:9:5"}],"id":7514,"name":"ParameterList","src":"51094:25:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":7567,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":7515,"name":"ElementaryTypeName","src":"51138:4:5"}],"id":7516,"name":"VariableDeclaration","src":"51138:4:5"},{"attributes":{"constant":false,"name":"","scope":7567,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":7517,"name":"ElementaryTypeName","src":"51144:7:5"}],"id":7518,"name":"VariableDeclaration","src":"51144:7:5"}],"id":7519,"name":"ParameterList","src":"51137:15:5"},{"children":[{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"r","scope":7567,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":7520,"name":"ElementaryTypeName","src":"51163:7:5"}],"id":7521,"name":"VariableDeclaration","src":"51163:9:5"}],"id":7522,"name":"VariableDeclarationStatement","src":"51163:9:5"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"s","scope":7567,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":7523,"name":"ElementaryTypeName","src":"51182:7:5"}],"id":7524,"name":"VariableDeclaration","src":"51182:9:5"}],"id":7525,"name":"VariableDeclarationStatement","src":"51182:9:5"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"v","scope":7567,"stateVariable":false,"storageLocation":"default","type":"uint8","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint8","type":"uint8"},"id":7526,"name":"ElementaryTypeName","src":"51201:5:5"}],"id":7527,"name":"VariableDeclaration","src":"51201:7:5"}],"id":7528,"name":"VariableDeclarationStatement","src":"51201:7:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7513,"type":"bytes memory","value":"sig"},"id":7529,"name":"Identifier","src":"51223:3:5"}],"id":7530,"name":"MemberAccess","src":"51223:10:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3635","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 65","value":"65"},"id":7531,"name":"Literal","src":"51237:2:5"}],"id":7532,"name":"BinaryOperation","src":"51223:16:5"},{"attributes":{"functionReturnParameters":7519},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"tuple(bool,int_const 0)"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"66616c7365","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"false"},"id":7533,"name":"Literal","src":"51259:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":7534,"name":"Literal","src":"51266:1:5"}],"id":7535,"name":"TupleExpression","src":"51258:10:5"}],"id":7536,"name":"Return","src":"51251:17:5"}],"id":7537,"name":"IfStatement","src":"51219:49:5"},{"attributes":{"externalReferences":[{"r":{"declaration":7521,"isOffset":false,"isSlot":false,"src":"51460:1:5","valueSize":1}},{"v":{"declaration":7527,"isOffset":false,"isSlot":false,"src":"51747:1:5","valueSize":1}},{"sig":{"declaration":7513,"isOffset":false,"isSlot":false,"src":"51475:3:5","valueSize":1}},{"s":{"declaration":7524,"isOffset":false,"isSlot":false,"src":"51497:1:5","valueSize":1}},{"sig":{"declaration":7513,"isOffset":false,"isSlot":false,"src":"51512:3:5","valueSize":1}},{"sig":{"declaration":7513,"isOffset":false,"isSlot":false,"src":"51770:3:5","valueSize":1}}],"operations":"{\n r := mload(add(sig, 32))\n s := mload(add(sig, 64))\n v := byte(0, mload(add(sig, 96)))\n}"},"children":[],"id":7538,"name":"InlineAssembly","src":"51437:875:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7527,"type":"uint8","value":"v"},"id":7539,"name":"Identifier","src":"52314:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3237","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 27","value":"27"},"id":7540,"name":"Literal","src":"52318:2:5"}],"id":7541,"name":"BinaryOperation","src":"52314:6:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint8"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7527,"type":"uint8","value":"v"},"id":7542,"name":"Identifier","src":"52332:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3237","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 27","value":"27"},"id":7543,"name":"Literal","src":"52337:2:5"}],"id":7544,"name":"Assignment","src":"52332:7:5"}],"id":7545,"name":"ExpressionStatement","src":"52332:7:5"}],"id":7546,"name":"IfStatement","src":"52310:29:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&&","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7527,"type":"uint8","value":"v"},"id":7547,"name":"Identifier","src":"52354:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3237","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 27","value":"27"},"id":7548,"name":"Literal","src":"52359:2:5"}],"id":7549,"name":"BinaryOperation","src":"52354:7:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7527,"type":"uint8","value":"v"},"id":7550,"name":"Identifier","src":"52365:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3238","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 28","value":"28"},"id":7551,"name":"Literal","src":"52370:2:5"}],"id":7552,"name":"BinaryOperation","src":"52365:7:5"}],"id":7553,"name":"BinaryOperation","src":"52354:18:5"},{"attributes":{"functionReturnParameters":7519},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"tuple(bool,int_const 0)"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"66616c7365","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"false"},"id":7554,"name":"Literal","src":"52394:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":7555,"name":"Literal","src":"52401:1:5"}],"id":7556,"name":"TupleExpression","src":"52393:10:5"}],"id":7557,"name":"Return","src":"52386:17:5"}],"id":7558,"name":"IfStatement","src":"52350:53:5"},{"attributes":{"functionReturnParameters":7519},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple(bool,address)","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[null],"referencedDeclaration":7509,"type":"function (bytes32,uint8,bytes32,bytes32) returns (bool,address)","value":"safer_ecrecover"},"id":7559,"name":"Identifier","src":"52421:15:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7511,"type":"bytes32","value":"hash"},"id":7560,"name":"Identifier","src":"52437:4:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7527,"type":"uint8","value":"v"},"id":7561,"name":"Identifier","src":"52443:1:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7521,"type":"bytes32","value":"r"},"id":7562,"name":"Identifier","src":"52446:1:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7524,"type":"bytes32","value":"s"},"id":7563,"name":"Identifier","src":"52449:1:5"}],"id":7564,"name":"FunctionCall","src":"52421:30:5"}],"id":7565,"name":"Return","src":"52414:37:5"}],"id":7566,"name":"Block","src":"51153:1305:5"}],"id":7567,"name":"FunctionDefinition","src":"51075:1383:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"safeMemoryCleaner","payable":false,"scope":7573,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":7568,"name":"ParameterList","src":"52490:2:5"},{"attributes":{"parameters":[null]},"children":[],"id":7569,"name":"ParameterList","src":"52507:0:5"},{"children":[{"attributes":{"externalReferences":[null],"operations":"{\n let fmem := mload(0x40)\n codecopy(fmem, codesize(), sub(msize(), fmem))\n}"},"children":[],"id":7570,"name":"InlineAssembly","src":"52517:117:5"}],"id":7571,"name":"Block","src":"52507:127:5"}],"id":7572,"name":"FunctionDefinition","src":"52464:170:5"}],"id":7573,"name":"ContractDefinition","src":"10650:41987:5"}],"id":7574,"name":"SourceUnit","src":"1375:51282:5"}},"externals/strings.sol":{"AST":{"attributes":{"absolutePath":"externals/strings.sol","exportedSymbols":{"strings":[12001]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".14"]},"id":10308,"name":"PragmaDirective","src":"2574:24:6"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"library","documentation":null,"fullyImplemented":true,"linearizedBaseContracts":[12001],"name":"strings","scope":12002},"children":[{"attributes":{"canonicalName":"strings.slice","name":"slice","scope":12001,"visibility":"public"},"children":[{"attributes":{"constant":false,"name":"_len","scope":10313,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":10309,"name":"ElementaryTypeName","src":"2645:4:6"}],"id":10310,"name":"VariableDeclaration","src":"2645:9:6"},{"attributes":{"constant":false,"name":"_ptr","scope":10313,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":10311,"name":"ElementaryTypeName","src":"2664:4:6"}],"id":10312,"name":"VariableDeclaration","src":"2664:9:6"}],"id":10313,"name":"StructDefinition","src":"2622:58:6"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"memcpy","payable":false,"scope":12001,"stateMutability":"pure","superFunction":null,"visibility":"private"},"children":[{"children":[{"attributes":{"constant":false,"name":"dest","scope":10353,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":10314,"name":"ElementaryTypeName","src":"2702:4:6"}],"id":10315,"name":"VariableDeclaration","src":"2702:9:6"},{"attributes":{"constant":false,"name":"src","scope":10353,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":10316,"name":"ElementaryTypeName","src":"2713:4:6"}],"id":10317,"name":"VariableDeclaration","src":"2713:8:6"},{"attributes":{"constant":false,"name":"len","scope":10353,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":10318,"name":"ElementaryTypeName","src":"2723:4:6"}],"id":10319,"name":"VariableDeclaration","src":"2723:8:6"}],"id":10320,"name":"ParameterList","src":"2701:31:6"},{"attributes":{"parameters":[null]},"children":[],"id":10321,"name":"ParameterList","src":"2746:0:6"},{"children":[{"attributes":{"initializationExpression":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10319,"type":"uint256","value":"len"},"id":10322,"name":"Identifier","src":"2812:3:6"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":10323,"name":"Literal","src":"2819:2:6"}],"id":10324,"name":"BinaryOperation","src":"2812:9:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10319,"type":"uint256","value":"len"},"id":10325,"name":"Identifier","src":"2823:3:6"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":10326,"name":"Literal","src":"2830:2:6"}],"id":10327,"name":"Assignment","src":"2823:9:6"}],"id":10328,"name":"ExpressionStatement","src":"2823:9:6"},{"children":[{"attributes":{"externalReferences":[{"dest":{"declaration":10315,"isOffset":false,"isSlot":false,"src":"2882:4:6","valueSize":1}},{"src":{"declaration":10317,"isOffset":false,"isSlot":false,"src":"2894:3:6","valueSize":1}}],"operations":"{\n mstore(dest, mload(src))\n}"},"children":[],"id":10329,"name":"InlineAssembly","src":"2848:82:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10315,"type":"uint256","value":"dest"},"id":10330,"name":"Identifier","src":"2926:4:6"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":10331,"name":"Literal","src":"2934:2:6"}],"id":10332,"name":"Assignment","src":"2926:10:6"}],"id":10333,"name":"ExpressionStatement","src":"2926:10:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10317,"type":"uint256","value":"src"},"id":10334,"name":"Identifier","src":"2950:3:6"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":10335,"name":"Literal","src":"2957:2:6"}],"id":10336,"name":"Assignment","src":"2950:9:6"}],"id":10337,"name":"ExpressionStatement","src":"2950:9:6"}],"id":10338,"name":"Block","src":"2834:136:6"}],"id":10339,"name":"ForStatement","src":"2806:164:6"},{"attributes":{"assignments":[10341]},"children":[{"attributes":{"constant":false,"name":"mask","scope":10353,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":10340,"name":"ElementaryTypeName","src":"3012:4:6"}],"id":10341,"name":"VariableDeclaration","src":"3012:9:6"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"**","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"323536","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 256","value":"256"},"id":10342,"name":"Literal","src":"3024:3:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":10343,"name":"Literal","src":"3032:2:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10319,"type":"uint256","value":"len"},"id":10344,"name":"Identifier","src":"3037:3:6"}],"id":10345,"name":"BinaryOperation","src":"3032:8:6"}],"id":10346,"name":"TupleExpression","src":"3031:10:6"}],"id":10347,"name":"BinaryOperation","src":"3024:17:6"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":10348,"name":"Literal","src":"3044:1:6"}],"id":10349,"name":"BinaryOperation","src":"3024:21:6"}],"id":10350,"name":"VariableDeclarationStatement","src":"3012:33:6"},{"attributes":{"externalReferences":[{"mask":{"declaration":10341,"isOffset":false,"isSlot":false,"src":"3113:4:6","valueSize":1}},{"src":{"declaration":10317,"isOffset":false,"isSlot":false,"src":"3103:3:6","valueSize":1}},{"dest":{"declaration":10315,"isOffset":false,"isSlot":false,"src":"3158:4:6","valueSize":1}},{"mask":{"declaration":10341,"isOffset":false,"isSlot":false,"src":"3165:4:6","valueSize":1}},{"dest":{"declaration":10315,"isOffset":false,"isSlot":false,"src":"3190:4:6","valueSize":1}}],"operations":"{\n let srcpart := and(mload(src), not(mask))\n let destpart := and(mload(dest), mask)\n mstore(dest, or(destpart, srcpart))\n}"},"children":[],"id":10351,"name":"InlineAssembly","src":"3055:179:6"}],"id":10352,"name":"Block","src":"2746:488:6"}],"id":10353,"name":"FunctionDefinition","src":"2686:548:6"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"toSlice","payable":false,"scope":12001,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":10373,"stateVariable":false,"storageLocation":"memory","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":10354,"name":"ElementaryTypeName","src":"3451:6:6"}],"id":10355,"name":"VariableDeclaration","src":"3451:18:6"}],"id":10356,"name":"ParameterList","src":"3450:20:6"},{"children":[{"attributes":{"constant":false,"name":"","scope":10373,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10313,"type":"struct strings.slice"},"id":10357,"name":"UserDefinedTypeName","src":"3494:5:6"}],"id":10358,"name":"VariableDeclaration","src":"3494:5:6"}],"id":10359,"name":"ParameterList","src":"3493:14:6"},{"children":[{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"ptr","scope":10373,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":10360,"name":"ElementaryTypeName","src":"3518:4:6"}],"id":10361,"name":"VariableDeclaration","src":"3518:8:6"}],"id":10362,"name":"VariableDeclarationStatement","src":"3518:8:6"},{"attributes":{"externalReferences":[{"ptr":{"declaration":10361,"isOffset":false,"isSlot":false,"src":"3559:3:6","valueSize":1}},{"self":{"declaration":10355,"isOffset":false,"isSlot":false,"src":"3570:4:6","valueSize":1}}],"operations":"{\n ptr := add(self, 0x20)\n}"},"children":[],"id":10363,"name":"InlineAssembly","src":"3536:70:6"},{"attributes":{"functionReturnParameters":10359},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":true,"lValueRequested":false,"names":[null],"type":"struct strings.slice memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":10313,"type":"type(struct strings.slice storage pointer)","value":"slice"},"id":10364,"name":"Identifier","src":"3607:5:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes storage pointer)","value":"bytes"},"id":10365,"name":"ElementaryTypeNameExpression","src":"3613:5:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10355,"type":"string memory","value":"self"},"id":10366,"name":"Identifier","src":"3619:4:6"}],"id":10367,"name":"FunctionCall","src":"3613:11:6"}],"id":10368,"name":"MemberAccess","src":"3613:18:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10361,"type":"uint256","value":"ptr"},"id":10369,"name":"Identifier","src":"3633:3:6"}],"id":10370,"name":"FunctionCall","src":"3607:30:6"}],"id":10371,"name":"Return","src":"3600:37:6"}],"id":10372,"name":"Block","src":"3508:136:6"}],"id":10373,"name":"FunctionDefinition","src":"3434:210:6"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"len","payable":false,"scope":12001,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":10489,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":10374,"name":"ElementaryTypeName","src":"3853:7:6"}],"id":10375,"name":"VariableDeclaration","src":"3853:12:6"}],"id":10376,"name":"ParameterList","src":"3852:14:6"},{"children":[{"attributes":{"constant":false,"name":"","scope":10489,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":10377,"name":"ElementaryTypeName","src":"3890:4:6"}],"id":10378,"name":"VariableDeclaration","src":"3890:4:6"}],"id":10379,"name":"ParameterList","src":"3889:6:6"},{"children":[{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"ret","scope":10489,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":10380,"name":"ElementaryTypeName","src":"3906:4:6"}],"id":10381,"name":"VariableDeclaration","src":"3906:8:6"}],"id":10382,"name":"VariableDeclarationStatement","src":"3906:8:6"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10375,"type":"bytes32","value":"self"},"id":10383,"name":"Identifier","src":"3928:4:6"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":10384,"name":"Literal","src":"3936:1:6"}],"id":10385,"name":"BinaryOperation","src":"3928:9:6"},{"attributes":{"functionReturnParameters":10379},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":10386,"name":"Literal","src":"3958:1:6"}],"id":10387,"name":"Return","src":"3951:8:6"}],"id":10388,"name":"IfStatement","src":"3924:35:6"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10375,"type":"bytes32","value":"self"},"id":10389,"name":"Identifier","src":"3973:4:6"},{"attributes":{"argumentTypes":null,"hexvalue":"30786666666666666666666666666666666666666666666666666666666666666666","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3402...(31 digits omitted)...1455","value":"0xffffffffffffffffffffffffffffffff"},"id":10390,"name":"Literal","src":"3980:34:6"}],"id":10391,"name":"BinaryOperation","src":"3973:41:6"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":10392,"name":"Literal","src":"4018:1:6"}],"id":10393,"name":"BinaryOperation","src":"3973:46:6"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10381,"type":"uint256","value":"ret"},"id":10394,"name":"Identifier","src":"4035:3:6"},{"attributes":{"argumentTypes":null,"hexvalue":"3136","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 16","value":"16"},"id":10395,"name":"Literal","src":"4042:2:6"}],"id":10396,"name":"Assignment","src":"4035:9:6"}],"id":10397,"name":"ExpressionStatement","src":"4035:9:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10375,"type":"bytes32","value":"self"},"id":10398,"name":"Identifier","src":"4058:4:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes32)","value":"bytes32"},"id":10399,"name":"ElementaryTypeNameExpression","src":"4065:7:6"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"/","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint"},"id":10400,"name":"ElementaryTypeNameExpression","src":"4073:4:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10375,"type":"bytes32","value":"self"},"id":10401,"name":"Identifier","src":"4078:4:6"}],"id":10402,"name":"FunctionCall","src":"4073:10:6"},{"attributes":{"argumentTypes":null,"hexvalue":"3078313030303030303030303030303030303030303030303030303030303030303030","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3402...(31 digits omitted)...1456","value":"0x100000000000000000000000000000000"},"id":10403,"name":"Literal","src":"4086:35:6"}],"id":10404,"name":"BinaryOperation","src":"4073:48:6"}],"id":10405,"name":"FunctionCall","src":"4065:57:6"}],"id":10406,"name":"Assignment","src":"4058:64:6"}],"id":10407,"name":"ExpressionStatement","src":"4058:64:6"}],"id":10408,"name":"Block","src":"4021:112:6"}],"id":10409,"name":"IfStatement","src":"3969:164:6"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10375,"type":"bytes32","value":"self"},"id":10410,"name":"Identifier","src":"4146:4:6"},{"attributes":{"argumentTypes":null,"hexvalue":"307866666666666666666666666666666666","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 18446744073709551615","value":"0xffffffffffffffff"},"id":10411,"name":"Literal","src":"4153:18:6"}],"id":10412,"name":"BinaryOperation","src":"4146:25:6"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":10413,"name":"Literal","src":"4175:1:6"}],"id":10414,"name":"BinaryOperation","src":"4146:30:6"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10381,"type":"uint256","value":"ret"},"id":10415,"name":"Identifier","src":"4192:3:6"},{"attributes":{"argumentTypes":null,"hexvalue":"38","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 8","value":"8"},"id":10416,"name":"Literal","src":"4199:1:6"}],"id":10417,"name":"Assignment","src":"4192:8:6"}],"id":10418,"name":"ExpressionStatement","src":"4192:8:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10375,"type":"bytes32","value":"self"},"id":10419,"name":"Identifier","src":"4214:4:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes32)","value":"bytes32"},"id":10420,"name":"ElementaryTypeNameExpression","src":"4221:7:6"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"/","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint"},"id":10421,"name":"ElementaryTypeNameExpression","src":"4229:4:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10375,"type":"bytes32","value":"self"},"id":10422,"name":"Identifier","src":"4234:4:6"}],"id":10423,"name":"FunctionCall","src":"4229:10:6"},{"attributes":{"argumentTypes":null,"hexvalue":"30783130303030303030303030303030303030","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 18446744073709551616","value":"0x10000000000000000"},"id":10424,"name":"Literal","src":"4242:19:6"}],"id":10425,"name":"BinaryOperation","src":"4229:32:6"}],"id":10426,"name":"FunctionCall","src":"4221:41:6"}],"id":10427,"name":"Assignment","src":"4214:48:6"}],"id":10428,"name":"ExpressionStatement","src":"4214:48:6"}],"id":10429,"name":"Block","src":"4178:95:6"}],"id":10430,"name":"IfStatement","src":"4142:131:6"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10375,"type":"bytes32","value":"self"},"id":10431,"name":"Identifier","src":"4286:4:6"},{"attributes":{"argumentTypes":null,"hexvalue":"30786666666666666666","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4294967295","value":"0xffffffff"},"id":10432,"name":"Literal","src":"4293:10:6"}],"id":10433,"name":"BinaryOperation","src":"4286:17:6"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":10434,"name":"Literal","src":"4307:1:6"}],"id":10435,"name":"BinaryOperation","src":"4286:22:6"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10381,"type":"uint256","value":"ret"},"id":10436,"name":"Identifier","src":"4324:3:6"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":10437,"name":"Literal","src":"4331:1:6"}],"id":10438,"name":"Assignment","src":"4324:8:6"}],"id":10439,"name":"ExpressionStatement","src":"4324:8:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10375,"type":"bytes32","value":"self"},"id":10440,"name":"Identifier","src":"4346:4:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes32)","value":"bytes32"},"id":10441,"name":"ElementaryTypeNameExpression","src":"4353:7:6"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"/","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint"},"id":10442,"name":"ElementaryTypeNameExpression","src":"4361:4:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10375,"type":"bytes32","value":"self"},"id":10443,"name":"Identifier","src":"4366:4:6"}],"id":10444,"name":"FunctionCall","src":"4361:10:6"},{"attributes":{"argumentTypes":null,"hexvalue":"3078313030303030303030","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4294967296","value":"0x100000000"},"id":10445,"name":"Literal","src":"4374:11:6"}],"id":10446,"name":"BinaryOperation","src":"4361:24:6"}],"id":10447,"name":"FunctionCall","src":"4353:33:6"}],"id":10448,"name":"Assignment","src":"4346:40:6"}],"id":10449,"name":"ExpressionStatement","src":"4346:40:6"}],"id":10450,"name":"Block","src":"4310:87:6"}],"id":10451,"name":"IfStatement","src":"4282:115:6"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10375,"type":"bytes32","value":"self"},"id":10452,"name":"Identifier","src":"4410:4:6"},{"attributes":{"argumentTypes":null,"hexvalue":"307866666666","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 65535","value":"0xffff"},"id":10453,"name":"Literal","src":"4417:6:6"}],"id":10454,"name":"BinaryOperation","src":"4410:13:6"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":10455,"name":"Literal","src":"4427:1:6"}],"id":10456,"name":"BinaryOperation","src":"4410:18:6"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10381,"type":"uint256","value":"ret"},"id":10457,"name":"Identifier","src":"4444:3:6"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":10458,"name":"Literal","src":"4451:1:6"}],"id":10459,"name":"Assignment","src":"4444:8:6"}],"id":10460,"name":"ExpressionStatement","src":"4444:8:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10375,"type":"bytes32","value":"self"},"id":10461,"name":"Identifier","src":"4466:4:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes32)","value":"bytes32"},"id":10462,"name":"ElementaryTypeNameExpression","src":"4473:7:6"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"/","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint"},"id":10463,"name":"ElementaryTypeNameExpression","src":"4481:4:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10375,"type":"bytes32","value":"self"},"id":10464,"name":"Identifier","src":"4486:4:6"}],"id":10465,"name":"FunctionCall","src":"4481:10:6"},{"attributes":{"argumentTypes":null,"hexvalue":"30783130303030","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 65536","value":"0x10000"},"id":10466,"name":"Literal","src":"4494:7:6"}],"id":10467,"name":"BinaryOperation","src":"4481:20:6"}],"id":10468,"name":"FunctionCall","src":"4473:29:6"}],"id":10469,"name":"Assignment","src":"4466:36:6"}],"id":10470,"name":"ExpressionStatement","src":"4466:36:6"}],"id":10471,"name":"Block","src":"4430:83:6"}],"id":10472,"name":"IfStatement","src":"4406:107:6"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10375,"type":"bytes32","value":"self"},"id":10473,"name":"Identifier","src":"4526:4:6"},{"attributes":{"argumentTypes":null,"hexvalue":"30786666","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 255","value":"0xff"},"id":10474,"name":"Literal","src":"4533:4:6"}],"id":10475,"name":"BinaryOperation","src":"4526:11:6"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":10476,"name":"Literal","src":"4541:1:6"}],"id":10477,"name":"BinaryOperation","src":"4526:16:6"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10381,"type":"uint256","value":"ret"},"id":10478,"name":"Identifier","src":"4558:3:6"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":10479,"name":"Literal","src":"4565:1:6"}],"id":10480,"name":"Assignment","src":"4558:8:6"}],"id":10481,"name":"ExpressionStatement","src":"4558:8:6"}],"id":10482,"name":"Block","src":"4544:33:6"}],"id":10483,"name":"IfStatement","src":"4522:55:6"},{"attributes":{"functionReturnParameters":10379},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":10484,"name":"Literal","src":"4593:2:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10381,"type":"uint256","value":"ret"},"id":10485,"name":"Identifier","src":"4598:3:6"}],"id":10486,"name":"BinaryOperation","src":"4593:8:6"}],"id":10487,"name":"Return","src":"4586:15:6"}],"id":10488,"name":"Block","src":"3896:712:6"}],"id":10489,"name":"FunctionDefinition","src":"3840:768:6"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"toSliceB32","payable":false,"scope":12001,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":10506,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":10490,"name":"ElementaryTypeName","src":"4934:7:6"}],"id":10491,"name":"VariableDeclaration","src":"4934:12:6"}],"id":10492,"name":"ParameterList","src":"4933:14:6"},{"children":[{"attributes":{"constant":false,"name":"ret","scope":10506,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10313,"type":"struct strings.slice"},"id":10493,"name":"UserDefinedTypeName","src":"4971:5:6"}],"id":10494,"name":"VariableDeclaration","src":"4971:16:6"}],"id":10495,"name":"ParameterList","src":"4970:18:6"},{"children":[{"attributes":{"externalReferences":[{"ret":{"declaration":10494,"isOffset":false,"isSlot":false,"src":"5222:3:6","valueSize":1}},{"self":{"declaration":10491,"isOffset":false,"isSlot":false,"src":"5193:4:6","valueSize":1}}],"operations":"{\n let ptr := mload(0x40)\n mstore(0x40, add(ptr, 0x20))\n mstore(ptr, self)\n mstore(add(ret, 0x20), ptr)\n}"},"children":[],"id":10496,"name":"InlineAssembly","src":"5082:178:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":10310,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10494,"type":"struct strings.slice memory","value":"ret"},"id":10497,"name":"Identifier","src":"5257:3:6"}],"id":10499,"name":"MemberAccess","src":"5257:8:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[10489,10639],"referencedDeclaration":10489,"type":"function (bytes32) pure returns (uint256)","value":"len"},"id":10500,"name":"Identifier","src":"5268:3:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10491,"type":"bytes32","value":"self"},"id":10501,"name":"Identifier","src":"5272:4:6"}],"id":10502,"name":"FunctionCall","src":"5268:9:6"}],"id":10503,"name":"Assignment","src":"5257:20:6"}],"id":10504,"name":"ExpressionStatement","src":"5257:20:6"}],"id":10505,"name":"Block","src":"4989:295:6"}],"id":10506,"name":"FunctionDefinition","src":"4914:370:6"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"copy","payable":false,"scope":12001,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":10521,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10313,"type":"struct strings.slice"},"id":10507,"name":"UserDefinedTypeName","src":"5499:5:6"}],"id":10508,"name":"VariableDeclaration","src":"5499:17:6"}],"id":10509,"name":"ParameterList","src":"5498:19:6"},{"children":[{"attributes":{"constant":false,"name":"","scope":10521,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10313,"type":"struct strings.slice"},"id":10510,"name":"UserDefinedTypeName","src":"5541:5:6"}],"id":10511,"name":"VariableDeclaration","src":"5541:5:6"}],"id":10512,"name":"ParameterList","src":"5540:14:6"},{"children":[{"attributes":{"functionReturnParameters":10512},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":true,"lValueRequested":false,"names":[null],"type":"struct strings.slice memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":10313,"type":"type(struct strings.slice storage pointer)","value":"slice"},"id":10513,"name":"Identifier","src":"5572:5:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10310,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10508,"type":"struct strings.slice memory","value":"self"},"id":10514,"name":"Identifier","src":"5578:4:6"}],"id":10515,"name":"MemberAccess","src":"5578:9:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":10312,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10508,"type":"struct strings.slice memory","value":"self"},"id":10516,"name":"Identifier","src":"5589:4:6"}],"id":10517,"name":"MemberAccess","src":"5589:9:6"}],"id":10518,"name":"FunctionCall","src":"5572:27:6"}],"id":10519,"name":"Return","src":"5565:34:6"}],"id":10520,"name":"Block","src":"5555:51:6"}],"id":10521,"name":"FunctionDefinition","src":"5485:121:6"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"toString","payable":false,"scope":12001,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":10551,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10313,"type":"struct strings.slice"},"id":10522,"name":"UserDefinedTypeName","src":"5796:5:6"}],"id":10523,"name":"VariableDeclaration","src":"5796:17:6"}],"id":10524,"name":"ParameterList","src":"5795:19:6"},{"children":[{"attributes":{"constant":false,"name":"","scope":10551,"stateVariable":false,"storageLocation":"memory","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":10525,"name":"ElementaryTypeName","src":"5838:6:6"}],"id":10526,"name":"VariableDeclaration","src":"5838:6:6"}],"id":10527,"name":"ParameterList","src":"5837:15:6"},{"children":[{"attributes":{"assignments":[10529]},"children":[{"attributes":{"constant":false,"name":"ret","scope":10551,"stateVariable":false,"storageLocation":"memory","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":10528,"name":"ElementaryTypeName","src":"5863:6:6"}],"id":10529,"name":"VariableDeclaration","src":"5863:17:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (string memory)"},"children":[{"attributes":{"name":"string","type":"string"},"id":10530,"name":"ElementaryTypeName","src":"5887:6:6"}],"id":10531,"name":"NewExpression","src":"5883:10:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10310,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10523,"type":"struct strings.slice memory","value":"self"},"id":10532,"name":"Identifier","src":"5894:4:6"}],"id":10533,"name":"MemberAccess","src":"5894:9:6"}],"id":10534,"name":"FunctionCall","src":"5883:21:6"}],"id":10535,"name":"VariableDeclarationStatement","src":"5863:41:6"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"retptr","scope":10551,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":10536,"name":"ElementaryTypeName","src":"5914:4:6"}],"id":10537,"name":"VariableDeclaration","src":"5914:11:6"}],"id":10538,"name":"VariableDeclarationStatement","src":"5914:11:6"},{"attributes":{"externalReferences":[{"retptr":{"declaration":10537,"isOffset":false,"isSlot":false,"src":"5946:6:6","valueSize":1}},{"ret":{"declaration":10529,"isOffset":false,"isSlot":false,"src":"5960:3:6","valueSize":1}}],"operations":"{\n retptr := add(ret, 32)\n}"},"children":[],"id":10539,"name":"InlineAssembly","src":"5935:51:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":10353,"type":"function (uint256,uint256,uint256) pure","value":"memcpy"},"id":10540,"name":"Identifier","src":"5980:6:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10537,"type":"uint256","value":"retptr"},"id":10541,"name":"Identifier","src":"5987:6:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":10312,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10523,"type":"struct strings.slice memory","value":"self"},"id":10542,"name":"Identifier","src":"5995:4:6"}],"id":10543,"name":"MemberAccess","src":"5995:9:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10310,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10523,"type":"struct strings.slice memory","value":"self"},"id":10544,"name":"Identifier","src":"6006:4:6"}],"id":10545,"name":"MemberAccess","src":"6006:9:6"}],"id":10546,"name":"FunctionCall","src":"5980:36:6"}],"id":10547,"name":"ExpressionStatement","src":"5980:36:6"},{"attributes":{"functionReturnParameters":10527},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10529,"type":"string memory","value":"ret"},"id":10548,"name":"Identifier","src":"6033:3:6"}],"id":10549,"name":"Return","src":"6026:10:6"}],"id":10550,"name":"Block","src":"5853:190:6"}],"id":10551,"name":"FunctionDefinition","src":"5778:265:6"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"len","payable":false,"scope":12001,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":10639,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10313,"type":"struct strings.slice"},"id":10552,"name":"UserDefinedTypeName","src":"6447:5:6"}],"id":10553,"name":"VariableDeclaration","src":"6447:17:6"}],"id":10554,"name":"ParameterList","src":"6446:19:6"},{"children":[{"attributes":{"constant":false,"name":"l","scope":10639,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":10555,"name":"ElementaryTypeName","src":"6489:4:6"}],"id":10556,"name":"VariableDeclaration","src":"6489:6:6"}],"id":10557,"name":"ParameterList","src":"6488:8:6"},{"children":[{"attributes":{"assignments":[10559]},"children":[{"attributes":{"constant":false,"name":"ptr","scope":10639,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":10558,"name":"ElementaryTypeName","src":"6582:4:6"}],"id":10559,"name":"VariableDeclaration","src":"6582:8:6"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":10312,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10553,"type":"struct strings.slice memory","value":"self"},"id":10560,"name":"Identifier","src":"6593:4:6"}],"id":10561,"name":"MemberAccess","src":"6593:9:6"},{"attributes":{"argumentTypes":null,"hexvalue":"3331","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 31","value":"31"},"id":10562,"name":"Literal","src":"6605:2:6"}],"id":10563,"name":"BinaryOperation","src":"6593:14:6"}],"id":10564,"name":"VariableDeclarationStatement","src":"6582:25:6"},{"attributes":{"assignments":[10566]},"children":[{"attributes":{"constant":false,"name":"end","scope":10639,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":10565,"name":"ElementaryTypeName","src":"6617:4:6"}],"id":10566,"name":"VariableDeclaration","src":"6617:8:6"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10559,"type":"uint256","value":"ptr"},"id":10567,"name":"Identifier","src":"6628:3:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10310,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10553,"type":"struct strings.slice memory","value":"self"},"id":10568,"name":"Identifier","src":"6634:4:6"}],"id":10569,"name":"MemberAccess","src":"6634:9:6"}],"id":10570,"name":"BinaryOperation","src":"6628:15:6"}],"id":10571,"name":"VariableDeclarationStatement","src":"6617:26:6"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10556,"type":"uint256","value":"l"},"id":10572,"name":"Identifier","src":"6658:1:6"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":10573,"name":"Literal","src":"6662:1:6"}],"id":10574,"name":"Assignment","src":"6658:5:6"}],"id":10575,"name":"ExpressionStatement","src":"6658:5:6"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10559,"type":"uint256","value":"ptr"},"id":10576,"name":"Identifier","src":"6665:3:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10566,"type":"uint256","value":"end"},"id":10577,"name":"Identifier","src":"6671:3:6"}],"id":10578,"name":"BinaryOperation","src":"6665:9:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10556,"type":"uint256","value":"l"},"id":10579,"name":"Identifier","src":"6676:1:6"}],"id":10580,"name":"UnaryOperation","src":"6676:3:6"}],"id":10581,"name":"ExpressionStatement","src":"6676:3:6"},{"children":[{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"b","scope":10639,"stateVariable":false,"storageLocation":"default","type":"uint8","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint8","type":"uint8"},"id":10582,"name":"ElementaryTypeName","src":"6695:5:6"}],"id":10583,"name":"VariableDeclaration","src":"6695:7:6"}],"id":10584,"name":"VariableDeclarationStatement","src":"6695:7:6"},{"attributes":{"externalReferences":[{"ptr":{"declaration":10559,"isOffset":false,"isSlot":false,"src":"6742:3:6","valueSize":1}},{"b":{"declaration":10583,"isOffset":false,"isSlot":false,"src":"6727:1:6","valueSize":1}}],"operations":"{\n b := and(mload(ptr), 0xFF)\n}"},"children":[],"id":10585,"name":"InlineAssembly","src":"6716:54:6"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10583,"type":"uint8","value":"b"},"id":10586,"name":"Identifier","src":"6772:1:6"},{"attributes":{"argumentTypes":null,"hexvalue":"30783830","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 128","value":"0x80"},"id":10587,"name":"Literal","src":"6776:4:6"}],"id":10588,"name":"BinaryOperation","src":"6772:8:6"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10559,"type":"uint256","value":"ptr"},"id":10589,"name":"Identifier","src":"6800:3:6"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":10590,"name":"Literal","src":"6807:1:6"}],"id":10591,"name":"Assignment","src":"6800:8:6"}],"id":10592,"name":"ExpressionStatement","src":"6800:8:6"}],"id":10593,"name":"Block","src":"6782:41:6"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10583,"type":"uint8","value":"b"},"id":10594,"name":"Identifier","src":"6832:1:6"},{"attributes":{"argumentTypes":null,"hexvalue":"30784530","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 224","value":"0xE0"},"id":10595,"name":"Literal","src":"6836:4:6"}],"id":10596,"name":"BinaryOperation","src":"6832:8:6"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10559,"type":"uint256","value":"ptr"},"id":10597,"name":"Identifier","src":"6860:3:6"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":10598,"name":"Literal","src":"6867:1:6"}],"id":10599,"name":"Assignment","src":"6860:8:6"}],"id":10600,"name":"ExpressionStatement","src":"6860:8:6"}],"id":10601,"name":"Block","src":"6842:41:6"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10583,"type":"uint8","value":"b"},"id":10602,"name":"Identifier","src":"6892:1:6"},{"attributes":{"argumentTypes":null,"hexvalue":"30784630","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 240","value":"0xF0"},"id":10603,"name":"Literal","src":"6896:4:6"}],"id":10604,"name":"BinaryOperation","src":"6892:8:6"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10559,"type":"uint256","value":"ptr"},"id":10605,"name":"Identifier","src":"6920:3:6"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":10606,"name":"Literal","src":"6927:1:6"}],"id":10607,"name":"Assignment","src":"6920:8:6"}],"id":10608,"name":"ExpressionStatement","src":"6920:8:6"}],"id":10609,"name":"Block","src":"6902:41:6"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10583,"type":"uint8","value":"b"},"id":10610,"name":"Identifier","src":"6952:1:6"},{"attributes":{"argumentTypes":null,"hexvalue":"30784638","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 248","value":"0xF8"},"id":10611,"name":"Literal","src":"6956:4:6"}],"id":10612,"name":"BinaryOperation","src":"6952:8:6"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10559,"type":"uint256","value":"ptr"},"id":10613,"name":"Identifier","src":"6980:3:6"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":10614,"name":"Literal","src":"6987:1:6"}],"id":10615,"name":"Assignment","src":"6980:8:6"}],"id":10616,"name":"ExpressionStatement","src":"6980:8:6"}],"id":10617,"name":"Block","src":"6962:41:6"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10583,"type":"uint8","value":"b"},"id":10618,"name":"Identifier","src":"7012:1:6"},{"attributes":{"argumentTypes":null,"hexvalue":"30784643","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 252","value":"0xFC"},"id":10619,"name":"Literal","src":"7016:4:6"}],"id":10620,"name":"BinaryOperation","src":"7012:8:6"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10559,"type":"uint256","value":"ptr"},"id":10621,"name":"Identifier","src":"7040:3:6"},{"attributes":{"argumentTypes":null,"hexvalue":"35","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 5","value":"5"},"id":10622,"name":"Literal","src":"7047:1:6"}],"id":10623,"name":"Assignment","src":"7040:8:6"}],"id":10624,"name":"ExpressionStatement","src":"7040:8:6"}],"id":10625,"name":"Block","src":"7022:41:6"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10559,"type":"uint256","value":"ptr"},"id":10626,"name":"Identifier","src":"7087:3:6"},{"attributes":{"argumentTypes":null,"hexvalue":"36","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 6","value":"6"},"id":10627,"name":"Literal","src":"7094:1:6"}],"id":10628,"name":"Assignment","src":"7087:8:6"}],"id":10629,"name":"ExpressionStatement","src":"7087:8:6"}],"id":10630,"name":"Block","src":"7069:41:6"}],"id":10631,"name":"IfStatement","src":"7009:101:6"}],"id":10632,"name":"IfStatement","src":"6949:161:6"}],"id":10633,"name":"IfStatement","src":"6889:221:6"}],"id":10634,"name":"IfStatement","src":"6829:281:6"}],"id":10635,"name":"IfStatement","src":"6768:342:6"}],"id":10636,"name":"Block","src":"6681:439:6"}],"id":10637,"name":"ForStatement","src":"6653:467:6"}],"id":10638,"name":"Block","src":"6497:629:6"}],"id":10639,"name":"FunctionDefinition","src":"6434:692:6"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"empty","payable":false,"scope":12001,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":10652,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10313,"type":"struct strings.slice"},"id":10640,"name":"UserDefinedTypeName","src":"7334:5:6"}],"id":10641,"name":"VariableDeclaration","src":"7334:17:6"}],"id":10642,"name":"ParameterList","src":"7333:19:6"},{"children":[{"attributes":{"constant":false,"name":"","scope":10652,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":10643,"name":"ElementaryTypeName","src":"7376:4:6"}],"id":10644,"name":"VariableDeclaration","src":"7376:4:6"}],"id":10645,"name":"ParameterList","src":"7375:6:6"},{"children":[{"attributes":{"functionReturnParameters":10645},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10310,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10641,"type":"struct strings.slice memory","value":"self"},"id":10646,"name":"Identifier","src":"7399:4:6"}],"id":10647,"name":"MemberAccess","src":"7399:9:6"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":10648,"name":"Literal","src":"7412:1:6"}],"id":10649,"name":"BinaryOperation","src":"7399:14:6"}],"id":10650,"name":"Return","src":"7392:21:6"}],"id":10651,"name":"Block","src":"7382:38:6"}],"id":10652,"name":"FunctionDefinition","src":"7319:101:6"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"compare","payable":false,"scope":12001,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":10781,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10313,"type":"struct strings.slice"},"id":10653,"name":"UserDefinedTypeName","src":"7865:5:6"}],"id":10654,"name":"VariableDeclaration","src":"7865:17:6"},{"attributes":{"constant":false,"name":"other","scope":10781,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10313,"type":"struct strings.slice"},"id":10655,"name":"UserDefinedTypeName","src":"7884:5:6"}],"id":10656,"name":"VariableDeclaration","src":"7884:18:6"}],"id":10657,"name":"ParameterList","src":"7864:39:6"},{"children":[{"attributes":{"constant":false,"name":"","scope":10781,"stateVariable":false,"storageLocation":"default","type":"int256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"int","type":"int256"},"id":10658,"name":"ElementaryTypeName","src":"7927:3:6"}],"id":10659,"name":"VariableDeclaration","src":"7927:3:6"}],"id":10660,"name":"ParameterList","src":"7926:5:6"},{"children":[{"attributes":{"assignments":[10662]},"children":[{"attributes":{"constant":false,"name":"shortest","scope":10781,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":10661,"name":"ElementaryTypeName","src":"7942:4:6"}],"id":10662,"name":"VariableDeclaration","src":"7942:13:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10310,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10654,"type":"struct strings.slice memory","value":"self"},"id":10663,"name":"Identifier","src":"7958:4:6"}],"id":10664,"name":"MemberAccess","src":"7958:9:6"}],"id":10665,"name":"VariableDeclarationStatement","src":"7942:25:6"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10310,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10656,"type":"struct strings.slice memory","value":"other"},"id":10666,"name":"Identifier","src":"7981:5:6"}],"id":10667,"name":"MemberAccess","src":"7981:10:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10310,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10654,"type":"struct strings.slice memory","value":"self"},"id":10668,"name":"Identifier","src":"7994:4:6"}],"id":10669,"name":"MemberAccess","src":"7994:9:6"}],"id":10670,"name":"BinaryOperation","src":"7981:22:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10662,"type":"uint256","value":"shortest"},"id":10671,"name":"Identifier","src":"8017:8:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10310,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10656,"type":"struct strings.slice memory","value":"other"},"id":10672,"name":"Identifier","src":"8028:5:6"}],"id":10673,"name":"MemberAccess","src":"8028:10:6"}],"id":10674,"name":"Assignment","src":"8017:21:6"}],"id":10675,"name":"ExpressionStatement","src":"8017:21:6"}],"id":10676,"name":"IfStatement","src":"7977:61:6"},{"attributes":{"assignments":[10678]},"children":[{"attributes":{"constant":false,"name":"selfptr","scope":10781,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":10677,"name":"ElementaryTypeName","src":"8049:4:6"}],"id":10678,"name":"VariableDeclaration","src":"8049:12:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":10312,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10654,"type":"struct strings.slice memory","value":"self"},"id":10679,"name":"Identifier","src":"8064:4:6"}],"id":10680,"name":"MemberAccess","src":"8064:9:6"}],"id":10681,"name":"VariableDeclarationStatement","src":"8049:24:6"},{"attributes":{"assignments":[10683]},"children":[{"attributes":{"constant":false,"name":"otherptr","scope":10781,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":10682,"name":"ElementaryTypeName","src":"8083:4:6"}],"id":10683,"name":"VariableDeclaration","src":"8083:13:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":10312,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10656,"type":"struct strings.slice memory","value":"other"},"id":10684,"name":"Identifier","src":"8099:5:6"}],"id":10685,"name":"MemberAccess","src":"8099:10:6"}],"id":10686,"name":"VariableDeclarationStatement","src":"8083:26:6"},{"children":[{"attributes":{"assignments":[10688]},"children":[{"attributes":{"constant":false,"name":"idx","scope":10781,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":10687,"name":"ElementaryTypeName","src":"8124:4:6"}],"id":10688,"name":"VariableDeclaration","src":"8124:8:6"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":10689,"name":"Literal","src":"8135:1:6"}],"id":10690,"name":"VariableDeclarationStatement","src":"8124:12:6"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10688,"type":"uint256","value":"idx"},"id":10691,"name":"Identifier","src":"8138:3:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10662,"type":"uint256","value":"shortest"},"id":10692,"name":"Identifier","src":"8144:8:6"}],"id":10693,"name":"BinaryOperation","src":"8138:14:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10688,"type":"uint256","value":"idx"},"id":10694,"name":"Identifier","src":"8154:3:6"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":10695,"name":"Literal","src":"8161:2:6"}],"id":10696,"name":"Assignment","src":"8154:9:6"}],"id":10697,"name":"ExpressionStatement","src":"8154:9:6"},{"children":[{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"a","scope":10781,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":10698,"name":"ElementaryTypeName","src":"8179:4:6"}],"id":10699,"name":"VariableDeclaration","src":"8179:6:6"}],"id":10700,"name":"VariableDeclarationStatement","src":"8179:6:6"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"b","scope":10781,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":10701,"name":"ElementaryTypeName","src":"8199:4:6"}],"id":10702,"name":"VariableDeclaration","src":"8199:6:6"}],"id":10703,"name":"VariableDeclarationStatement","src":"8199:6:6"},{"attributes":{"externalReferences":[{"selfptr":{"declaration":10678,"isOffset":false,"isSlot":false,"src":"8257:7:6","valueSize":1}},{"a":{"declaration":10699,"isOffset":false,"isSlot":false,"src":"8246:1:6","valueSize":1}},{"b":{"declaration":10702,"isOffset":false,"isSlot":false,"src":"8282:1:6","valueSize":1}},{"otherptr":{"declaration":10683,"isOffset":false,"isSlot":false,"src":"8293:8:6","valueSize":1}}],"operations":"{\n a := mload(selfptr)\n b := mload(otherptr)\n}"},"children":[],"id":10704,"name":"InlineAssembly","src":"8219:112:6"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10699,"type":"uint256","value":"a"},"id":10705,"name":"Identifier","src":"8333:1:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10702,"type":"uint256","value":"b"},"id":10706,"name":"Identifier","src":"8338:1:6"}],"id":10707,"name":"BinaryOperation","src":"8333:6:6"},{"children":[{"attributes":{"assignments":[10709]},"children":[{"attributes":{"constant":false,"name":"mask","scope":10781,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":10708,"name":"ElementaryTypeName","src":"8420:7:6"}],"id":10709,"name":"VariableDeclaration","src":"8420:12:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_-1_by_1","typeString":"int_const -1"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint256"},"id":10710,"name":"ElementaryTypeNameExpression","src":"8435:7:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"-","prefix":true,"type":"int_const -1"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":10711,"name":"Literal","src":"8444:1:6"}],"id":10712,"name":"UnaryOperation","src":"8443:2:6"}],"id":10713,"name":"FunctionCall","src":"8435:11:6"}],"id":10714,"name":"VariableDeclarationStatement","src":"8420:26:6"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10662,"type":"uint256","value":"shortest"},"id":10715,"name":"Identifier","src":"8480:8:6"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":10716,"name":"Literal","src":"8491:2:6"}],"id":10717,"name":"BinaryOperation","src":"8480:13:6"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10709,"type":"uint256","value":"mask"},"id":10718,"name":"Identifier","src":"8515:4:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"~","prefix":true,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"**","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":10719,"name":"Literal","src":"8524:1:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"38","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 8","value":"8"},"id":10720,"name":"Literal","src":"8530:1:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":10721,"name":"Literal","src":"8535:2:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10662,"type":"uint256","value":"shortest"},"id":10722,"name":"Identifier","src":"8540:8:6"}],"id":10723,"name":"BinaryOperation","src":"8535:13:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10688,"type":"uint256","value":"idx"},"id":10724,"name":"Identifier","src":"8551:3:6"}],"id":10725,"name":"BinaryOperation","src":"8535:19:6"}],"id":10726,"name":"TupleExpression","src":"8534:21:6"}],"id":10727,"name":"BinaryOperation","src":"8530:25:6"}],"id":10728,"name":"TupleExpression","src":"8529:27:6"}],"id":10729,"name":"BinaryOperation","src":"8524:32:6"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":10730,"name":"Literal","src":"8559:1:6"}],"id":10731,"name":"BinaryOperation","src":"8524:36:6"}],"id":10732,"name":"TupleExpression","src":"8523:38:6"}],"id":10733,"name":"UnaryOperation","src":"8522:39:6"}],"id":10734,"name":"Assignment","src":"8515:46:6"}],"id":10735,"name":"ExpressionStatement","src":"8515:46:6"}],"id":10736,"name":"Block","src":"8495:85:6"}],"id":10737,"name":"IfStatement","src":"8477:103:6"},{"attributes":{"assignments":[10739]},"children":[{"attributes":{"constant":false,"name":"diff","scope":10781,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":10738,"name":"ElementaryTypeName","src":"8597:7:6"}],"id":10739,"name":"VariableDeclaration","src":"8597:12:6"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10699,"type":"uint256","value":"a"},"id":10740,"name":"Identifier","src":"8613:1:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10709,"type":"uint256","value":"mask"},"id":10741,"name":"Identifier","src":"8617:4:6"}],"id":10742,"name":"BinaryOperation","src":"8613:8:6"}],"id":10743,"name":"TupleExpression","src":"8612:10:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10702,"type":"uint256","value":"b"},"id":10744,"name":"Identifier","src":"8626:1:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10709,"type":"uint256","value":"mask"},"id":10745,"name":"Identifier","src":"8630:4:6"}],"id":10746,"name":"BinaryOperation","src":"8626:8:6"}],"id":10747,"name":"TupleExpression","src":"8625:10:6"}],"id":10748,"name":"BinaryOperation","src":"8612:23:6"}],"id":10749,"name":"VariableDeclarationStatement","src":"8597:38:6"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10739,"type":"uint256","value":"diff"},"id":10750,"name":"Identifier","src":"8657:4:6"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":10751,"name":"Literal","src":"8665:1:6"}],"id":10752,"name":"BinaryOperation","src":"8657:9:6"},{"attributes":{"functionReturnParameters":10660},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"int256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(int256)","value":"int"},"id":10753,"name":"ElementaryTypeNameExpression","src":"8695:3:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10739,"type":"uint256","value":"diff"},"id":10754,"name":"Identifier","src":"8699:4:6"}],"id":10755,"name":"FunctionCall","src":"8695:9:6"}],"id":10756,"name":"Return","src":"8688:16:6"}],"id":10757,"name":"IfStatement","src":"8653:51:6"}],"id":10758,"name":"Block","src":"8341:378:6"}],"id":10759,"name":"IfStatement","src":"8329:390:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10678,"type":"uint256","value":"selfptr"},"id":10760,"name":"Identifier","src":"8732:7:6"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":10761,"name":"Literal","src":"8743:2:6"}],"id":10762,"name":"Assignment","src":"8732:13:6"}],"id":10763,"name":"ExpressionStatement","src":"8732:13:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10683,"type":"uint256","value":"otherptr"},"id":10764,"name":"Identifier","src":"8759:8:6"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":10765,"name":"Literal","src":"8771:2:6"}],"id":10766,"name":"Assignment","src":"8759:14:6"}],"id":10767,"name":"ExpressionStatement","src":"8759:14:6"}],"id":10768,"name":"Block","src":"8165:619:6"}],"id":10769,"name":"ForStatement","src":"8119:665:6"},{"attributes":{"functionReturnParameters":10660},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"int256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"int256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(int256)","value":"int"},"id":10770,"name":"ElementaryTypeNameExpression","src":"8800:3:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10310,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10654,"type":"struct strings.slice memory","value":"self"},"id":10771,"name":"Identifier","src":"8804:4:6"}],"id":10772,"name":"MemberAccess","src":"8804:9:6"}],"id":10773,"name":"FunctionCall","src":"8800:14:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"int256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(int256)","value":"int"},"id":10774,"name":"ElementaryTypeNameExpression","src":"8817:3:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10310,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10656,"type":"struct strings.slice memory","value":"other"},"id":10775,"name":"Identifier","src":"8821:5:6"}],"id":10776,"name":"MemberAccess","src":"8821:10:6"}],"id":10777,"name":"FunctionCall","src":"8817:15:6"}],"id":10778,"name":"BinaryOperation","src":"8800:32:6"}],"id":10779,"name":"Return","src":"8793:39:6"}],"id":10780,"name":"Block","src":"7932:907:6"}],"id":10781,"name":"FunctionDefinition","src":"7848:991:6"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"equals","payable":false,"scope":12001,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":10798,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10313,"type":"struct strings.slice"},"id":10782,"name":"UserDefinedTypeName","src":"9099:5:6"}],"id":10783,"name":"VariableDeclaration","src":"9099:17:6"},{"attributes":{"constant":false,"name":"other","scope":10798,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10313,"type":"struct strings.slice"},"id":10784,"name":"UserDefinedTypeName","src":"9118:5:6"}],"id":10785,"name":"VariableDeclaration","src":"9118:18:6"}],"id":10786,"name":"ParameterList","src":"9098:39:6"},{"children":[{"attributes":{"constant":false,"name":"","scope":10798,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":10787,"name":"ElementaryTypeName","src":"9161:4:6"}],"id":10788,"name":"VariableDeclaration","src":"9161:4:6"}],"id":10789,"name":"ParameterList","src":"9160:6:6"},{"children":[{"attributes":{"functionReturnParameters":10789},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"int256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$10313_memory_ptr","typeString":"struct strings.slice memory"},{"typeIdentifier":"t_struct$_slice_$10313_memory_ptr","typeString":"struct strings.slice memory"}],"overloadedDeclarations":[null],"referencedDeclaration":10781,"type":"function (struct strings.slice memory,struct strings.slice memory) pure returns (int256)","value":"compare"},"id":10790,"name":"Identifier","src":"9184:7:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10783,"type":"struct strings.slice memory","value":"self"},"id":10791,"name":"Identifier","src":"9192:4:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10785,"type":"struct strings.slice memory","value":"other"},"id":10792,"name":"Identifier","src":"9198:5:6"}],"id":10793,"name":"FunctionCall","src":"9184:20:6"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":10794,"name":"Literal","src":"9208:1:6"}],"id":10795,"name":"BinaryOperation","src":"9184:25:6"}],"id":10796,"name":"Return","src":"9177:32:6"}],"id":10797,"name":"Block","src":"9167:49:6"}],"id":10798,"name":"FunctionDefinition","src":"9083:133:6"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"nextRune","payable":false,"scope":12001,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":10916,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10313,"type":"struct strings.slice"},"id":10799,"name":"UserDefinedTypeName","src":"9527:5:6"}],"id":10800,"name":"VariableDeclaration","src":"9527:17:6"},{"attributes":{"constant":false,"name":"rune","scope":10916,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10313,"type":"struct strings.slice"},"id":10801,"name":"UserDefinedTypeName","src":"9546:5:6"}],"id":10802,"name":"VariableDeclaration","src":"9546:17:6"}],"id":10803,"name":"ParameterList","src":"9526:38:6"},{"children":[{"attributes":{"constant":false,"name":"","scope":10916,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10313,"type":"struct strings.slice"},"id":10804,"name":"UserDefinedTypeName","src":"9588:5:6"}],"id":10805,"name":"VariableDeclaration","src":"9588:5:6"}],"id":10806,"name":"ParameterList","src":"9587:14:6"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_ptr","referencedDeclaration":10312,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10802,"type":"struct strings.slice memory","value":"rune"},"id":10807,"name":"Identifier","src":"9612:4:6"}],"id":10809,"name":"MemberAccess","src":"9612:9:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":10312,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10800,"type":"struct strings.slice memory","value":"self"},"id":10810,"name":"Identifier","src":"9624:4:6"}],"id":10811,"name":"MemberAccess","src":"9624:9:6"}],"id":10812,"name":"Assignment","src":"9612:21:6"}],"id":10813,"name":"ExpressionStatement","src":"9612:21:6"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10310,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10800,"type":"struct strings.slice memory","value":"self"},"id":10814,"name":"Identifier","src":"9648:4:6"}],"id":10815,"name":"MemberAccess","src":"9648:9:6"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":10816,"name":"Literal","src":"9661:1:6"}],"id":10817,"name":"BinaryOperation","src":"9648:14:6"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":10310,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10802,"type":"struct strings.slice memory","value":"rune"},"id":10818,"name":"Identifier","src":"9678:4:6"}],"id":10820,"name":"MemberAccess","src":"9678:9:6"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":10821,"name":"Literal","src":"9690:1:6"}],"id":10822,"name":"Assignment","src":"9678:13:6"}],"id":10823,"name":"ExpressionStatement","src":"9678:13:6"},{"attributes":{"functionReturnParameters":10806},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10802,"type":"struct strings.slice memory","value":"rune"},"id":10824,"name":"Identifier","src":"9712:4:6"}],"id":10825,"name":"Return","src":"9705:11:6"}],"id":10826,"name":"Block","src":"9664:63:6"}],"id":10827,"name":"IfStatement","src":"9644:83:6"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"l","scope":10916,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":10828,"name":"ElementaryTypeName","src":"9737:4:6"}],"id":10829,"name":"VariableDeclaration","src":"9737:6:6"}],"id":10830,"name":"VariableDeclarationStatement","src":"9737:6:6"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"b","scope":10916,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":10831,"name":"ElementaryTypeName","src":"9753:4:6"}],"id":10832,"name":"VariableDeclaration","src":"9753:6:6"}],"id":10833,"name":"VariableDeclarationStatement","src":"9753:6:6"},{"attributes":{"externalReferences":[{"b":{"declaration":10832,"isOffset":false,"isSlot":false,"src":"9842:1:6","valueSize":1}},{"self":{"declaration":10800,"isOffset":false,"isSlot":false,"src":"9871:4:6","valueSize":1}}],"operations":"{\n b := and(mload(sub(mload(add(self, 32)), 31)), 0xFF)\n}"},"children":[],"id":10834,"name":"InlineAssembly","src":"9831:76:6"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10832,"type":"uint256","value":"b"},"id":10835,"name":"Identifier","src":"9909:1:6"},{"attributes":{"argumentTypes":null,"hexvalue":"30783830","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 128","value":"0x80"},"id":10836,"name":"Literal","src":"9913:4:6"}],"id":10837,"name":"BinaryOperation","src":"9909:8:6"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10829,"type":"uint256","value":"l"},"id":10838,"name":"Identifier","src":"9933:1:6"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":10839,"name":"Literal","src":"9937:1:6"}],"id":10840,"name":"Assignment","src":"9933:5:6"}],"id":10841,"name":"ExpressionStatement","src":"9933:5:6"}],"id":10842,"name":"Block","src":"9919:30:6"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10832,"type":"uint256","value":"b"},"id":10843,"name":"Identifier","src":"9958:1:6"},{"attributes":{"argumentTypes":null,"hexvalue":"30784530","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 224","value":"0xE0"},"id":10844,"name":"Literal","src":"9962:4:6"}],"id":10845,"name":"BinaryOperation","src":"9958:8:6"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10829,"type":"uint256","value":"l"},"id":10846,"name":"Identifier","src":"9982:1:6"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":10847,"name":"Literal","src":"9986:1:6"}],"id":10848,"name":"Assignment","src":"9982:5:6"}],"id":10849,"name":"ExpressionStatement","src":"9982:5:6"}],"id":10850,"name":"Block","src":"9968:30:6"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10832,"type":"uint256","value":"b"},"id":10851,"name":"Identifier","src":"10007:1:6"},{"attributes":{"argumentTypes":null,"hexvalue":"30784630","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 240","value":"0xF0"},"id":10852,"name":"Literal","src":"10011:4:6"}],"id":10853,"name":"BinaryOperation","src":"10007:8:6"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10829,"type":"uint256","value":"l"},"id":10854,"name":"Identifier","src":"10031:1:6"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":10855,"name":"Literal","src":"10035:1:6"}],"id":10856,"name":"Assignment","src":"10031:5:6"}],"id":10857,"name":"ExpressionStatement","src":"10031:5:6"}],"id":10858,"name":"Block","src":"10017:30:6"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10829,"type":"uint256","value":"l"},"id":10859,"name":"Identifier","src":"10067:1:6"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":10860,"name":"Literal","src":"10071:1:6"}],"id":10861,"name":"Assignment","src":"10067:5:6"}],"id":10862,"name":"ExpressionStatement","src":"10067:5:6"}],"id":10863,"name":"Block","src":"10053:30:6"}],"id":10864,"name":"IfStatement","src":"10004:79:6"}],"id":10865,"name":"IfStatement","src":"9955:128:6"}],"id":10866,"name":"IfStatement","src":"9905:178:6"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10829,"type":"uint256","value":"l"},"id":10867,"name":"Identifier","src":"10139:1:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10310,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10800,"type":"struct strings.slice memory","value":"self"},"id":10868,"name":"Identifier","src":"10143:4:6"}],"id":10869,"name":"MemberAccess","src":"10143:9:6"}],"id":10870,"name":"BinaryOperation","src":"10139:13:6"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":10310,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10802,"type":"struct strings.slice memory","value":"rune"},"id":10871,"name":"Identifier","src":"10168:4:6"}],"id":10873,"name":"MemberAccess","src":"10168:9:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10310,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10800,"type":"struct strings.slice memory","value":"self"},"id":10874,"name":"Identifier","src":"10180:4:6"}],"id":10875,"name":"MemberAccess","src":"10180:9:6"}],"id":10876,"name":"Assignment","src":"10168:21:6"}],"id":10877,"name":"ExpressionStatement","src":"10168:21:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_ptr","referencedDeclaration":10312,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10800,"type":"struct strings.slice memory","value":"self"},"id":10878,"name":"Identifier","src":"10203:4:6"}],"id":10880,"name":"MemberAccess","src":"10203:9:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10310,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10800,"type":"struct strings.slice memory","value":"self"},"id":10881,"name":"Identifier","src":"10216:4:6"}],"id":10882,"name":"MemberAccess","src":"10216:9:6"}],"id":10883,"name":"Assignment","src":"10203:22:6"}],"id":10884,"name":"ExpressionStatement","src":"10203:22:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":10310,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10800,"type":"struct strings.slice memory","value":"self"},"id":10885,"name":"Identifier","src":"10239:4:6"}],"id":10887,"name":"MemberAccess","src":"10239:9:6"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":10888,"name":"Literal","src":"10251:1:6"}],"id":10889,"name":"Assignment","src":"10239:13:6"}],"id":10890,"name":"ExpressionStatement","src":"10239:13:6"},{"attributes":{"functionReturnParameters":10806},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10802,"type":"struct strings.slice memory","value":"rune"},"id":10891,"name":"Identifier","src":"10273:4:6"}],"id":10892,"name":"Return","src":"10266:11:6"}],"id":10893,"name":"Block","src":"10154:134:6"}],"id":10894,"name":"IfStatement","src":"10135:153:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_ptr","referencedDeclaration":10312,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10800,"type":"struct strings.slice memory","value":"self"},"id":10895,"name":"Identifier","src":"10298:4:6"}],"id":10897,"name":"MemberAccess","src":"10298:9:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10829,"type":"uint256","value":"l"},"id":10898,"name":"Identifier","src":"10311:1:6"}],"id":10899,"name":"Assignment","src":"10298:14:6"}],"id":10900,"name":"ExpressionStatement","src":"10298:14:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":10310,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10800,"type":"struct strings.slice memory","value":"self"},"id":10901,"name":"Identifier","src":"10322:4:6"}],"id":10903,"name":"MemberAccess","src":"10322:9:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10829,"type":"uint256","value":"l"},"id":10904,"name":"Identifier","src":"10335:1:6"}],"id":10905,"name":"Assignment","src":"10322:14:6"}],"id":10906,"name":"ExpressionStatement","src":"10322:14:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":10310,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10802,"type":"struct strings.slice memory","value":"rune"},"id":10907,"name":"Identifier","src":"10346:4:6"}],"id":10909,"name":"MemberAccess","src":"10346:9:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10829,"type":"uint256","value":"l"},"id":10910,"name":"Identifier","src":"10358:1:6"}],"id":10911,"name":"Assignment","src":"10346:13:6"}],"id":10912,"name":"ExpressionStatement","src":"10346:13:6"},{"attributes":{"functionReturnParameters":10806},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10802,"type":"struct strings.slice memory","value":"rune"},"id":10913,"name":"Identifier","src":"10376:4:6"}],"id":10914,"name":"Return","src":"10369:11:6"}],"id":10915,"name":"Block","src":"9602:785:6"}],"id":10916,"name":"FunctionDefinition","src":"9509:878:6"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"nextRune","payable":false,"scope":12001,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":10929,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10313,"type":"struct strings.slice"},"id":10917,"name":"UserDefinedTypeName","src":"10645:5:6"}],"id":10918,"name":"VariableDeclaration","src":"10645:17:6"}],"id":10919,"name":"ParameterList","src":"10644:19:6"},{"children":[{"attributes":{"constant":false,"name":"ret","scope":10929,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10313,"type":"struct strings.slice"},"id":10920,"name":"UserDefinedTypeName","src":"10687:5:6"}],"id":10921,"name":"VariableDeclaration","src":"10687:16:6"}],"id":10922,"name":"ParameterList","src":"10686:18:6"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"struct strings.slice memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$10313_memory_ptr","typeString":"struct strings.slice memory"},{"typeIdentifier":"t_struct$_slice_$10313_memory_ptr","typeString":"struct strings.slice memory"}],"overloadedDeclarations":[10916,10929],"referencedDeclaration":10916,"type":"function (struct strings.slice memory,struct strings.slice memory) pure returns (struct strings.slice memory)","value":"nextRune"},"id":10923,"name":"Identifier","src":"10715:8:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10918,"type":"struct strings.slice memory","value":"self"},"id":10924,"name":"Identifier","src":"10724:4:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10921,"type":"struct strings.slice memory","value":"ret"},"id":10925,"name":"Identifier","src":"10730:3:6"}],"id":10926,"name":"FunctionCall","src":"10715:19:6"}],"id":10927,"name":"ExpressionStatement","src":"10715:19:6"}],"id":10928,"name":"Block","src":"10705:36:6"}],"id":10929,"name":"FunctionDefinition","src":"10627:114:6"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"ord","payable":false,"scope":12001,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":11076,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10313,"type":"struct strings.slice"},"id":10930,"name":"UserDefinedTypeName","src":"10950:5:6"}],"id":10931,"name":"VariableDeclaration","src":"10950:17:6"}],"id":10932,"name":"ParameterList","src":"10949:19:6"},{"children":[{"attributes":{"constant":false,"name":"ret","scope":11076,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":10933,"name":"ElementaryTypeName","src":"10992:4:6"}],"id":10934,"name":"VariableDeclaration","src":"10992:8:6"}],"id":10935,"name":"ParameterList","src":"10991:10:6"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10310,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10931,"type":"struct strings.slice memory","value":"self"},"id":10936,"name":"Identifier","src":"11016:4:6"}],"id":10937,"name":"MemberAccess","src":"11016:9:6"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":10938,"name":"Literal","src":"11029:1:6"}],"id":10939,"name":"BinaryOperation","src":"11016:14:6"},{"children":[{"attributes":{"functionReturnParameters":10935},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":10940,"name":"Literal","src":"11053:1:6"}],"id":10941,"name":"Return","src":"11046:8:6"}],"id":10942,"name":"Block","src":"11032:33:6"}],"id":10943,"name":"IfStatement","src":"11012:53:6"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"word","scope":11076,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":10944,"name":"ElementaryTypeName","src":"11075:4:6"}],"id":10945,"name":"VariableDeclaration","src":"11075:9:6"}],"id":10946,"name":"VariableDeclarationStatement","src":"11075:9:6"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"length","scope":11076,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":10947,"name":"ElementaryTypeName","src":"11094:4:6"}],"id":10948,"name":"VariableDeclaration","src":"11094:11:6"}],"id":10949,"name":"VariableDeclarationStatement","src":"11094:11:6"},{"attributes":{"assignments":[10951]},"children":[{"attributes":{"constant":false,"name":"divisor","scope":11076,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":10950,"name":"ElementaryTypeName","src":"11115:4:6"}],"id":10951,"name":"VariableDeclaration","src":"11115:12:6"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_452312848583266388373324160190187140051835877600158453279131187530910662656_by_1","typeString":"int_const 4523...(67 digits omitted)...2656"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"**","type":"int_const 4523...(67 digits omitted)...2656"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":10952,"name":"Literal","src":"11130:1:6"},{"attributes":{"argumentTypes":null,"hexvalue":"323438","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 248","value":"248"},"id":10953,"name":"Literal","src":"11135:3:6"}],"id":10954,"name":"BinaryOperation","src":"11130:8:6"}],"id":10955,"name":"VariableDeclarationStatement","src":"11115:23:6"},{"attributes":{"externalReferences":[{"word":{"declaration":10945,"isOffset":false,"isSlot":false,"src":"11204:4:6","valueSize":1}},{"self":{"declaration":10931,"isOffset":false,"isSlot":false,"src":"11227:4:6","valueSize":1}}],"operations":"{\n word := mload(mload(add(self, 32)))\n}"},"children":[],"id":10956,"name":"InlineAssembly","src":"11193:60:6"},{"attributes":{"assignments":[10958]},"children":[{"attributes":{"constant":false,"name":"b","scope":11076,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":10957,"name":"ElementaryTypeName","src":"11249:4:6"}],"id":10958,"name":"VariableDeclaration","src":"11249:6:6"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"/","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10945,"type":"uint256","value":"word"},"id":10959,"name":"Identifier","src":"11258:4:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10951,"type":"uint256","value":"divisor"},"id":10960,"name":"Identifier","src":"11265:7:6"}],"id":10961,"name":"BinaryOperation","src":"11258:14:6"}],"id":10962,"name":"VariableDeclarationStatement","src":"11249:23:6"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10958,"type":"uint256","value":"b"},"id":10963,"name":"Identifier","src":"11286:1:6"},{"attributes":{"argumentTypes":null,"hexvalue":"30783830","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 128","value":"0x80"},"id":10964,"name":"Literal","src":"11290:4:6"}],"id":10965,"name":"BinaryOperation","src":"11286:8:6"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10934,"type":"uint256","value":"ret"},"id":10966,"name":"Identifier","src":"11310:3:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10958,"type":"uint256","value":"b"},"id":10967,"name":"Identifier","src":"11316:1:6"}],"id":10968,"name":"Assignment","src":"11310:7:6"}],"id":10969,"name":"ExpressionStatement","src":"11310:7:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10948,"type":"uint256","value":"length"},"id":10970,"name":"Identifier","src":"11331:6:6"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":10971,"name":"Literal","src":"11340:1:6"}],"id":10972,"name":"Assignment","src":"11331:10:6"}],"id":10973,"name":"ExpressionStatement","src":"11331:10:6"}],"id":10974,"name":"Block","src":"11296:56:6"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10958,"type":"uint256","value":"b"},"id":10975,"name":"Identifier","src":"11361:1:6"},{"attributes":{"argumentTypes":null,"hexvalue":"30784530","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 224","value":"0xE0"},"id":10976,"name":"Literal","src":"11365:4:6"}],"id":10977,"name":"BinaryOperation","src":"11361:8:6"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10934,"type":"uint256","value":"ret"},"id":10978,"name":"Identifier","src":"11385:3:6"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10958,"type":"uint256","value":"b"},"id":10979,"name":"Identifier","src":"11391:1:6"},{"attributes":{"argumentTypes":null,"hexvalue":"30783146","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 31","value":"0x1F"},"id":10980,"name":"Literal","src":"11395:4:6"}],"id":10981,"name":"BinaryOperation","src":"11391:8:6"}],"id":10982,"name":"Assignment","src":"11385:14:6"}],"id":10983,"name":"ExpressionStatement","src":"11385:14:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10948,"type":"uint256","value":"length"},"id":10984,"name":"Identifier","src":"11413:6:6"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":10985,"name":"Literal","src":"11422:1:6"}],"id":10986,"name":"Assignment","src":"11413:10:6"}],"id":10987,"name":"ExpressionStatement","src":"11413:10:6"}],"id":10988,"name":"Block","src":"11371:63:6"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10958,"type":"uint256","value":"b"},"id":10989,"name":"Identifier","src":"11443:1:6"},{"attributes":{"argumentTypes":null,"hexvalue":"30784630","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 240","value":"0xF0"},"id":10990,"name":"Literal","src":"11447:4:6"}],"id":10991,"name":"BinaryOperation","src":"11443:8:6"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10934,"type":"uint256","value":"ret"},"id":10992,"name":"Identifier","src":"11467:3:6"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10958,"type":"uint256","value":"b"},"id":10993,"name":"Identifier","src":"11473:1:6"},{"attributes":{"argumentTypes":null,"hexvalue":"30783046","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 15","value":"0x0F"},"id":10994,"name":"Literal","src":"11477:4:6"}],"id":10995,"name":"BinaryOperation","src":"11473:8:6"}],"id":10996,"name":"Assignment","src":"11467:14:6"}],"id":10997,"name":"ExpressionStatement","src":"11467:14:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10948,"type":"uint256","value":"length"},"id":10998,"name":"Identifier","src":"11495:6:6"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":10999,"name":"Literal","src":"11504:1:6"}],"id":11000,"name":"Assignment","src":"11495:10:6"}],"id":11001,"name":"ExpressionStatement","src":"11495:10:6"}],"id":11002,"name":"Block","src":"11453:63:6"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10934,"type":"uint256","value":"ret"},"id":11003,"name":"Identifier","src":"11536:3:6"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10958,"type":"uint256","value":"b"},"id":11004,"name":"Identifier","src":"11542:1:6"},{"attributes":{"argumentTypes":null,"hexvalue":"30783037","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 7","value":"0x07"},"id":11005,"name":"Literal","src":"11546:4:6"}],"id":11006,"name":"BinaryOperation","src":"11542:8:6"}],"id":11007,"name":"Assignment","src":"11536:14:6"}],"id":11008,"name":"ExpressionStatement","src":"11536:14:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10948,"type":"uint256","value":"length"},"id":11009,"name":"Identifier","src":"11564:6:6"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":11010,"name":"Literal","src":"11573:1:6"}],"id":11011,"name":"Assignment","src":"11564:10:6"}],"id":11012,"name":"ExpressionStatement","src":"11564:10:6"}],"id":11013,"name":"Block","src":"11522:63:6"}],"id":11014,"name":"IfStatement","src":"11440:145:6"}],"id":11015,"name":"IfStatement","src":"11358:227:6"}],"id":11016,"name":"IfStatement","src":"11282:303:6"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10948,"type":"uint256","value":"length"},"id":11017,"name":"Identifier","src":"11641:6:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10310,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10931,"type":"struct strings.slice memory","value":"self"},"id":11018,"name":"Identifier","src":"11650:4:6"}],"id":11019,"name":"MemberAccess","src":"11650:9:6"}],"id":11020,"name":"BinaryOperation","src":"11641:18:6"},{"children":[{"attributes":{"functionReturnParameters":10935},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":11021,"name":"Literal","src":"11682:1:6"}],"id":11022,"name":"Return","src":"11675:8:6"}],"id":11023,"name":"Block","src":"11661:33:6"}],"id":11024,"name":"IfStatement","src":"11637:57:6"},{"children":[{"attributes":{"assignments":[11026]},"children":[{"attributes":{"constant":false,"name":"i","scope":11076,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":11025,"name":"ElementaryTypeName","src":"11709:4:6"}],"id":11026,"name":"VariableDeclaration","src":"11709:6:6"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":11027,"name":"Literal","src":"11718:1:6"}],"id":11028,"name":"VariableDeclarationStatement","src":"11709:10:6"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11026,"type":"uint256","value":"i"},"id":11029,"name":"Identifier","src":"11721:1:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10948,"type":"uint256","value":"length"},"id":11030,"name":"Identifier","src":"11725:6:6"}],"id":11031,"name":"BinaryOperation","src":"11721:10:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11026,"type":"uint256","value":"i"},"id":11032,"name":"Identifier","src":"11733:1:6"}],"id":11033,"name":"UnaryOperation","src":"11733:3:6"}],"id":11034,"name":"ExpressionStatement","src":"11733:3:6"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10951,"type":"uint256","value":"divisor"},"id":11035,"name":"Identifier","src":"11752:7:6"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"/","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10951,"type":"uint256","value":"divisor"},"id":11036,"name":"Identifier","src":"11762:7:6"},{"attributes":{"argumentTypes":null,"hexvalue":"323536","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 256","value":"256"},"id":11037,"name":"Literal","src":"11772:3:6"}],"id":11038,"name":"BinaryOperation","src":"11762:13:6"}],"id":11039,"name":"Assignment","src":"11752:23:6"}],"id":11040,"name":"ExpressionStatement","src":"11752:23:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10958,"type":"uint256","value":"b"},"id":11041,"name":"Identifier","src":"11789:1:6"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"/","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10945,"type":"uint256","value":"word"},"id":11042,"name":"Identifier","src":"11794:4:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10951,"type":"uint256","value":"divisor"},"id":11043,"name":"Identifier","src":"11801:7:6"}],"id":11044,"name":"BinaryOperation","src":"11794:14:6"}],"id":11045,"name":"TupleExpression","src":"11793:16:6"},{"attributes":{"argumentTypes":null,"hexvalue":"30784646","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 255","value":"0xFF"},"id":11046,"name":"Literal","src":"11812:4:6"}],"id":11047,"name":"BinaryOperation","src":"11793:23:6"}],"id":11048,"name":"Assignment","src":"11789:27:6"}],"id":11049,"name":"ExpressionStatement","src":"11789:27:6"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10958,"type":"uint256","value":"b"},"id":11050,"name":"Identifier","src":"11834:1:6"},{"attributes":{"argumentTypes":null,"hexvalue":"30784330","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 192","value":"0xC0"},"id":11051,"name":"Literal","src":"11838:4:6"}],"id":11052,"name":"BinaryOperation","src":"11834:8:6"},{"attributes":{"argumentTypes":null,"hexvalue":"30783830","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 128","value":"0x80"},"id":11053,"name":"Literal","src":"11846:4:6"}],"id":11054,"name":"BinaryOperation","src":"11834:16:6"},{"children":[{"attributes":{"functionReturnParameters":10935},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":11055,"name":"Literal","src":"11919:1:6"}],"id":11056,"name":"Return","src":"11912:8:6"}],"id":11057,"name":"Block","src":"11852:83:6"}],"id":11058,"name":"IfStatement","src":"11830:105:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10934,"type":"uint256","value":"ret"},"id":11059,"name":"Identifier","src":"11948:3:6"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"|","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10934,"type":"uint256","value":"ret"},"id":11060,"name":"Identifier","src":"11955:3:6"},{"attributes":{"argumentTypes":null,"hexvalue":"3634","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 64","value":"64"},"id":11061,"name":"Literal","src":"11961:2:6"}],"id":11062,"name":"BinaryOperation","src":"11955:8:6"}],"id":11063,"name":"TupleExpression","src":"11954:10:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10958,"type":"uint256","value":"b"},"id":11064,"name":"Identifier","src":"11968:1:6"},{"attributes":{"argumentTypes":null,"hexvalue":"30783346","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 63","value":"0x3F"},"id":11065,"name":"Literal","src":"11972:4:6"}],"id":11066,"name":"BinaryOperation","src":"11968:8:6"}],"id":11067,"name":"TupleExpression","src":"11967:10:6"}],"id":11068,"name":"BinaryOperation","src":"11954:23:6"}],"id":11069,"name":"Assignment","src":"11948:29:6"}],"id":11070,"name":"ExpressionStatement","src":"11948:29:6"}],"id":11071,"name":"Block","src":"11738:250:6"}],"id":11072,"name":"ForStatement","src":"11704:284:6"},{"attributes":{"functionReturnParameters":10935},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10934,"type":"uint256","value":"ret"},"id":11073,"name":"Identifier","src":"12005:3:6"}],"id":11074,"name":"Return","src":"11998:10:6"}],"id":11075,"name":"Block","src":"11002:1013:6"}],"id":11076,"name":"FunctionDefinition","src":"10937:1078:6"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"keccak","payable":false,"scope":12001,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":11085,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10313,"type":"struct strings.slice"},"id":11077,"name":"UserDefinedTypeName","src":"12182:5:6"}],"id":11078,"name":"VariableDeclaration","src":"12182:17:6"}],"id":11079,"name":"ParameterList","src":"12181:19:6"},{"children":[{"attributes":{"constant":false,"name":"ret","scope":11085,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":11080,"name":"ElementaryTypeName","src":"12224:7:6"}],"id":11081,"name":"VariableDeclaration","src":"12224:11:6"}],"id":11082,"name":"ParameterList","src":"12223:13:6"},{"children":[{"attributes":{"externalReferences":[{"ret":{"declaration":11081,"isOffset":false,"isSlot":false,"src":"12270:3:6","valueSize":1}},{"self":{"declaration":11078,"isOffset":false,"isSlot":false,"src":"12315:4:6","valueSize":1}},{"self":{"declaration":11078,"isOffset":false,"isSlot":false,"src":"12297:4:6","valueSize":1}}],"operations":"{\n ret := keccak256(mload(add(self, 32)), mload(self))\n}"},"children":[],"id":11083,"name":"InlineAssembly","src":"12247:90:6"}],"id":11084,"name":"Block","src":"12237:100:6"}],"id":11085,"name":"FunctionDefinition","src":"12166:171:6"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"startsWith","payable":false,"scope":12001,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":11119,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10313,"type":"struct strings.slice"},"id":11086,"name":"UserDefinedTypeName","src":"12606:5:6"}],"id":11087,"name":"VariableDeclaration","src":"12606:17:6"},{"attributes":{"constant":false,"name":"needle","scope":11119,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10313,"type":"struct strings.slice"},"id":11088,"name":"UserDefinedTypeName","src":"12625:5:6"}],"id":11089,"name":"VariableDeclaration","src":"12625:19:6"}],"id":11090,"name":"ParameterList","src":"12605:40:6"},{"children":[{"attributes":{"constant":false,"name":"","scope":11119,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":11091,"name":"ElementaryTypeName","src":"12669:4:6"}],"id":11092,"name":"VariableDeclaration","src":"12669:4:6"}],"id":11093,"name":"ParameterList","src":"12668:6:6"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10310,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11087,"type":"struct strings.slice memory","value":"self"},"id":11094,"name":"Identifier","src":"12689:4:6"}],"id":11095,"name":"MemberAccess","src":"12689:9:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10310,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11089,"type":"struct strings.slice memory","value":"needle"},"id":11096,"name":"Identifier","src":"12701:6:6"}],"id":11097,"name":"MemberAccess","src":"12701:11:6"}],"id":11098,"name":"BinaryOperation","src":"12689:23:6"},{"children":[{"attributes":{"functionReturnParameters":11093},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"66616c7365","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"false"},"id":11099,"name":"Literal","src":"12735:5:6"}],"id":11100,"name":"Return","src":"12728:12:6"}],"id":11101,"name":"Block","src":"12714:37:6"}],"id":11102,"name":"IfStatement","src":"12685:66:6"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":10312,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11087,"type":"struct strings.slice memory","value":"self"},"id":11103,"name":"Identifier","src":"12765:4:6"}],"id":11104,"name":"MemberAccess","src":"12765:9:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":10312,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11089,"type":"struct strings.slice memory","value":"needle"},"id":11105,"name":"Identifier","src":"12778:6:6"}],"id":11106,"name":"MemberAccess","src":"12778:11:6"}],"id":11107,"name":"BinaryOperation","src":"12765:24:6"},{"children":[{"attributes":{"functionReturnParameters":11093},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":11108,"name":"Literal","src":"12812:4:6"}],"id":11109,"name":"Return","src":"12805:11:6"}],"id":11110,"name":"Block","src":"12791:36:6"}],"id":11111,"name":"IfStatement","src":"12761:66:6"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"equal","scope":11119,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":11112,"name":"ElementaryTypeName","src":"12837:4:6"}],"id":11113,"name":"VariableDeclaration","src":"12837:10:6"}],"id":11114,"name":"VariableDeclarationStatement","src":"12837:10:6"},{"attributes":{"externalReferences":[{"needle":{"declaration":11089,"isOffset":false,"isSlot":false,"src":"12900:6:6","valueSize":1}},{"self":{"declaration":11087,"isOffset":false,"isSlot":false,"src":"12945:4:6","valueSize":1}},{"needle":{"declaration":11089,"isOffset":false,"isSlot":false,"src":"12997:6:6","valueSize":1}},{"equal":{"declaration":11113,"isOffset":false,"isSlot":false,"src":"13024:5:6","valueSize":1}}],"operations":"{\n let length := mload(needle)\n let selfptr := mload(add(self, 0x20))\n let needleptr := mload(add(needle, 0x20))\n equal := eq(keccak256(selfptr, length), keccak256(needleptr, length))\n}"},"children":[],"id":11115,"name":"InlineAssembly","src":"12857:261:6"},{"attributes":{"functionReturnParameters":11093},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11113,"type":"bool","value":"equal"},"id":11116,"name":"Identifier","src":"13119:5:6"}],"id":11117,"name":"Return","src":"13112:12:6"}],"id":11118,"name":"Block","src":"12675:456:6"}],"id":11119,"name":"FunctionDefinition","src":"12586:545:6"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"beyond","payable":false,"scope":12001,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":11169,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10313,"type":"struct strings.slice"},"id":11120,"name":"UserDefinedTypeName","src":"13419:5:6"}],"id":11121,"name":"VariableDeclaration","src":"13419:17:6"},{"attributes":{"constant":false,"name":"needle","scope":11169,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10313,"type":"struct strings.slice"},"id":11122,"name":"UserDefinedTypeName","src":"13438:5:6"}],"id":11123,"name":"VariableDeclaration","src":"13438:19:6"}],"id":11124,"name":"ParameterList","src":"13418:40:6"},{"children":[{"attributes":{"constant":false,"name":"","scope":11169,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10313,"type":"struct strings.slice"},"id":11125,"name":"UserDefinedTypeName","src":"13482:5:6"}],"id":11126,"name":"VariableDeclaration","src":"13482:5:6"}],"id":11127,"name":"ParameterList","src":"13481:14:6"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10310,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11121,"type":"struct strings.slice memory","value":"self"},"id":11128,"name":"Identifier","src":"13510:4:6"}],"id":11129,"name":"MemberAccess","src":"13510:9:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10310,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11123,"type":"struct strings.slice memory","value":"needle"},"id":11130,"name":"Identifier","src":"13522:6:6"}],"id":11131,"name":"MemberAccess","src":"13522:11:6"}],"id":11132,"name":"BinaryOperation","src":"13510:23:6"},{"children":[{"attributes":{"functionReturnParameters":11127},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11121,"type":"struct strings.slice memory","value":"self"},"id":11133,"name":"Identifier","src":"13556:4:6"}],"id":11134,"name":"Return","src":"13549:11:6"}],"id":11135,"name":"Block","src":"13535:36:6"}],"id":11136,"name":"IfStatement","src":"13506:65:6"},{"attributes":{"assignments":[11138]},"children":[{"attributes":{"constant":false,"name":"equal","scope":11169,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":11137,"name":"ElementaryTypeName","src":"13581:4:6"}],"id":11138,"name":"VariableDeclaration","src":"13581:10:6"},{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":11139,"name":"Literal","src":"13594:4:6"}],"id":11140,"name":"VariableDeclarationStatement","src":"13581:17:6"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":10312,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11121,"type":"struct strings.slice memory","value":"self"},"id":11141,"name":"Identifier","src":"13612:4:6"}],"id":11142,"name":"MemberAccess","src":"13612:9:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":10312,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11123,"type":"struct strings.slice memory","value":"needle"},"id":11143,"name":"Identifier","src":"13625:6:6"}],"id":11144,"name":"MemberAccess","src":"13625:11:6"}],"id":11145,"name":"BinaryOperation","src":"13612:24:6"},{"children":[{"attributes":{"externalReferences":[{"needle":{"declaration":11123,"isOffset":false,"isSlot":false,"src":"13699:6:6","valueSize":1}},{"self":{"declaration":11121,"isOffset":false,"isSlot":false,"src":"13748:4:6","valueSize":1}},{"needle":{"declaration":11123,"isOffset":false,"isSlot":false,"src":"13804:6:6","valueSize":1}},{"equal":{"declaration":11138,"isOffset":false,"isSlot":false,"src":"13835:5:6","valueSize":1}}],"operations":"{\n let length := mload(needle)\n let selfptr := mload(add(self, 0x20))\n let needleptr := mload(add(needle, 0x20))\n equal := eq(keccak256(selfptr, length), keccak256(needleptr, length))\n}"},"children":[],"id":11146,"name":"InlineAssembly","src":"13652:276:6"}],"id":11147,"name":"Block","src":"13638:290:6"}],"id":11148,"name":"IfStatement","src":"13608:320:6"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11138,"type":"bool","value":"equal"},"id":11149,"name":"Identifier","src":"13942:5:6"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":10310,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11121,"type":"struct strings.slice memory","value":"self"},"id":11150,"name":"Identifier","src":"13963:4:6"}],"id":11152,"name":"MemberAccess","src":"13963:9:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10310,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11123,"type":"struct strings.slice memory","value":"needle"},"id":11153,"name":"Identifier","src":"13976:6:6"}],"id":11154,"name":"MemberAccess","src":"13976:11:6"}],"id":11155,"name":"Assignment","src":"13963:24:6"}],"id":11156,"name":"ExpressionStatement","src":"13963:24:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_ptr","referencedDeclaration":10312,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11121,"type":"struct strings.slice memory","value":"self"},"id":11157,"name":"Identifier","src":"14001:4:6"}],"id":11159,"name":"MemberAccess","src":"14001:9:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10310,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11123,"type":"struct strings.slice memory","value":"needle"},"id":11160,"name":"Identifier","src":"14014:6:6"}],"id":11161,"name":"MemberAccess","src":"14014:11:6"}],"id":11162,"name":"Assignment","src":"14001:24:6"}],"id":11163,"name":"ExpressionStatement","src":"14001:24:6"}],"id":11164,"name":"Block","src":"13949:87:6"}],"id":11165,"name":"IfStatement","src":"13938:98:6"},{"attributes":{"functionReturnParameters":11127},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11121,"type":"struct strings.slice memory","value":"self"},"id":11166,"name":"Identifier","src":"14053:4:6"}],"id":11167,"name":"Return","src":"14046:11:6"}],"id":11168,"name":"Block","src":"13496:568:6"}],"id":11169,"name":"FunctionDefinition","src":"13403:661:6"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"endsWith","payable":false,"scope":12001,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":11213,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10313,"type":"struct strings.slice"},"id":11170,"name":"UserDefinedTypeName","src":"14332:5:6"}],"id":11171,"name":"VariableDeclaration","src":"14332:17:6"},{"attributes":{"constant":false,"name":"needle","scope":11213,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10313,"type":"struct strings.slice"},"id":11172,"name":"UserDefinedTypeName","src":"14351:5:6"}],"id":11173,"name":"VariableDeclaration","src":"14351:19:6"}],"id":11174,"name":"ParameterList","src":"14331:40:6"},{"children":[{"attributes":{"constant":false,"name":"","scope":11213,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":11175,"name":"ElementaryTypeName","src":"14395:4:6"}],"id":11176,"name":"VariableDeclaration","src":"14395:4:6"}],"id":11177,"name":"ParameterList","src":"14394:6:6"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10310,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11171,"type":"struct strings.slice memory","value":"self"},"id":11178,"name":"Identifier","src":"14415:4:6"}],"id":11179,"name":"MemberAccess","src":"14415:9:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10310,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11173,"type":"struct strings.slice memory","value":"needle"},"id":11180,"name":"Identifier","src":"14427:6:6"}],"id":11181,"name":"MemberAccess","src":"14427:11:6"}],"id":11182,"name":"BinaryOperation","src":"14415:23:6"},{"children":[{"attributes":{"functionReturnParameters":11177},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"66616c7365","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"false"},"id":11183,"name":"Literal","src":"14461:5:6"}],"id":11184,"name":"Return","src":"14454:12:6"}],"id":11185,"name":"Block","src":"14440:37:6"}],"id":11186,"name":"IfStatement","src":"14411:66:6"},{"attributes":{"assignments":[11188]},"children":[{"attributes":{"constant":false,"name":"selfptr","scope":11213,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":11187,"name":"ElementaryTypeName","src":"14487:4:6"}],"id":11188,"name":"VariableDeclaration","src":"14487:12:6"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":10312,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11171,"type":"struct strings.slice memory","value":"self"},"id":11189,"name":"Identifier","src":"14502:4:6"}],"id":11190,"name":"MemberAccess","src":"14502:9:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10310,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11171,"type":"struct strings.slice memory","value":"self"},"id":11191,"name":"Identifier","src":"14514:4:6"}],"id":11192,"name":"MemberAccess","src":"14514:9:6"}],"id":11193,"name":"BinaryOperation","src":"14502:21:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10310,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11173,"type":"struct strings.slice memory","value":"needle"},"id":11194,"name":"Identifier","src":"14526:6:6"}],"id":11195,"name":"MemberAccess","src":"14526:11:6"}],"id":11196,"name":"BinaryOperation","src":"14502:35:6"}],"id":11197,"name":"VariableDeclarationStatement","src":"14487:50:6"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11188,"type":"uint256","value":"selfptr"},"id":11198,"name":"Identifier","src":"14552:7:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":10312,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11173,"type":"struct strings.slice memory","value":"needle"},"id":11199,"name":"Identifier","src":"14563:6:6"}],"id":11200,"name":"MemberAccess","src":"14563:11:6"}],"id":11201,"name":"BinaryOperation","src":"14552:22:6"},{"children":[{"attributes":{"functionReturnParameters":11177},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":11202,"name":"Literal","src":"14597:4:6"}],"id":11203,"name":"Return","src":"14590:11:6"}],"id":11204,"name":"Block","src":"14576:36:6"}],"id":11205,"name":"IfStatement","src":"14548:64:6"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"equal","scope":11213,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":11206,"name":"ElementaryTypeName","src":"14622:4:6"}],"id":11207,"name":"VariableDeclaration","src":"14622:10:6"}],"id":11208,"name":"VariableDeclarationStatement","src":"14622:10:6"},{"attributes":{"externalReferences":[{"needle":{"declaration":11173,"isOffset":false,"isSlot":false,"src":"14685:6:6","valueSize":1}},{"equal":{"declaration":11207,"isOffset":false,"isSlot":false,"src":"14759:5:6","valueSize":1}},{"needle":{"declaration":11173,"isOffset":false,"isSlot":false,"src":"14732:6:6","valueSize":1}},{"selfptr":{"declaration":11188,"isOffset":false,"isSlot":false,"src":"14781:7:6","valueSize":1}}],"operations":"{\n let length := mload(needle)\n let needleptr := mload(add(needle, 0x20))\n equal := eq(keccak256(selfptr, length), keccak256(needleptr, length))\n}"},"children":[],"id":11209,"name":"InlineAssembly","src":"14642:212:6"},{"attributes":{"functionReturnParameters":11177},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11207,"type":"bool","value":"equal"},"id":11210,"name":"Identifier","src":"14855:5:6"}],"id":11211,"name":"Return","src":"14848:12:6"}],"id":11212,"name":"Block","src":"14401:466:6"}],"id":11213,"name":"FunctionDefinition","src":"14314:553:6"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"until","payable":false,"scope":12001,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":11266,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10313,"type":"struct strings.slice"},"id":11214,"name":"UserDefinedTypeName","src":"15146:5:6"}],"id":11215,"name":"VariableDeclaration","src":"15146:17:6"},{"attributes":{"constant":false,"name":"needle","scope":11266,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10313,"type":"struct strings.slice"},"id":11216,"name":"UserDefinedTypeName","src":"15165:5:6"}],"id":11217,"name":"VariableDeclaration","src":"15165:19:6"}],"id":11218,"name":"ParameterList","src":"15145:40:6"},{"children":[{"attributes":{"constant":false,"name":"","scope":11266,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10313,"type":"struct strings.slice"},"id":11219,"name":"UserDefinedTypeName","src":"15209:5:6"}],"id":11220,"name":"VariableDeclaration","src":"15209:5:6"}],"id":11221,"name":"ParameterList","src":"15208:14:6"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10310,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11215,"type":"struct strings.slice memory","value":"self"},"id":11222,"name":"Identifier","src":"15237:4:6"}],"id":11223,"name":"MemberAccess","src":"15237:9:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10310,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11217,"type":"struct strings.slice memory","value":"needle"},"id":11224,"name":"Identifier","src":"15249:6:6"}],"id":11225,"name":"MemberAccess","src":"15249:11:6"}],"id":11226,"name":"BinaryOperation","src":"15237:23:6"},{"children":[{"attributes":{"functionReturnParameters":11221},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11215,"type":"struct strings.slice memory","value":"self"},"id":11227,"name":"Identifier","src":"15283:4:6"}],"id":11228,"name":"Return","src":"15276:11:6"}],"id":11229,"name":"Block","src":"15262:36:6"}],"id":11230,"name":"IfStatement","src":"15233:65:6"},{"attributes":{"assignments":[11232]},"children":[{"attributes":{"constant":false,"name":"selfptr","scope":11266,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":11231,"name":"ElementaryTypeName","src":"15308:4:6"}],"id":11232,"name":"VariableDeclaration","src":"15308:12:6"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":10312,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11215,"type":"struct strings.slice memory","value":"self"},"id":11233,"name":"Identifier","src":"15323:4:6"}],"id":11234,"name":"MemberAccess","src":"15323:9:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10310,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11215,"type":"struct strings.slice memory","value":"self"},"id":11235,"name":"Identifier","src":"15335:4:6"}],"id":11236,"name":"MemberAccess","src":"15335:9:6"}],"id":11237,"name":"BinaryOperation","src":"15323:21:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10310,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11217,"type":"struct strings.slice memory","value":"needle"},"id":11238,"name":"Identifier","src":"15347:6:6"}],"id":11239,"name":"MemberAccess","src":"15347:11:6"}],"id":11240,"name":"BinaryOperation","src":"15323:35:6"}],"id":11241,"name":"VariableDeclarationStatement","src":"15308:50:6"},{"attributes":{"assignments":[11243]},"children":[{"attributes":{"constant":false,"name":"equal","scope":11266,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":11242,"name":"ElementaryTypeName","src":"15368:4:6"}],"id":11243,"name":"VariableDeclaration","src":"15368:10:6"},{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":11244,"name":"Literal","src":"15381:4:6"}],"id":11245,"name":"VariableDeclarationStatement","src":"15368:17:6"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11232,"type":"uint256","value":"selfptr"},"id":11246,"name":"Identifier","src":"15399:7:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":10312,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11217,"type":"struct strings.slice memory","value":"needle"},"id":11247,"name":"Identifier","src":"15410:6:6"}],"id":11248,"name":"MemberAccess","src":"15410:11:6"}],"id":11249,"name":"BinaryOperation","src":"15399:22:6"},{"children":[{"attributes":{"externalReferences":[{"needle":{"declaration":11217,"isOffset":false,"isSlot":false,"src":"15484:6:6","valueSize":1}},{"equal":{"declaration":11243,"isOffset":false,"isSlot":false,"src":"15566:5:6","valueSize":1}},{"needle":{"declaration":11217,"isOffset":false,"isSlot":false,"src":"15535:6:6","valueSize":1}},{"selfptr":{"declaration":11232,"isOffset":false,"isSlot":false,"src":"15588:7:6","valueSize":1}}],"operations":"{\n let length := mload(needle)\n let needleptr := mload(add(needle, 0x20))\n equal := eq(keccak256(selfptr, length), keccak256(needleptr, length))\n}"},"children":[],"id":11250,"name":"InlineAssembly","src":"15437:222:6"}],"id":11251,"name":"Block","src":"15423:236:6"}],"id":11252,"name":"IfStatement","src":"15395:264:6"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11243,"type":"bool","value":"equal"},"id":11253,"name":"Identifier","src":"15673:5:6"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":10310,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11215,"type":"struct strings.slice memory","value":"self"},"id":11254,"name":"Identifier","src":"15694:4:6"}],"id":11256,"name":"MemberAccess","src":"15694:9:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10310,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11217,"type":"struct strings.slice memory","value":"needle"},"id":11257,"name":"Identifier","src":"15707:6:6"}],"id":11258,"name":"MemberAccess","src":"15707:11:6"}],"id":11259,"name":"Assignment","src":"15694:24:6"}],"id":11260,"name":"ExpressionStatement","src":"15694:24:6"}],"id":11261,"name":"Block","src":"15680:49:6"}],"id":11262,"name":"IfStatement","src":"15669:60:6"},{"attributes":{"functionReturnParameters":11221},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11215,"type":"struct strings.slice memory","value":"self"},"id":11263,"name":"Identifier","src":"15746:4:6"}],"id":11264,"name":"Return","src":"15739:11:6"}],"id":11265,"name":"Block","src":"15223:534:6"}],"id":11266,"name":"FunctionDefinition","src":"15131:626:6"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"findPtr","payable":false,"scope":12001,"stateMutability":"pure","superFunction":null,"visibility":"private"},"children":[{"children":[{"attributes":{"constant":false,"name":"selflen","scope":11387,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":11267,"name":"ElementaryTypeName","src":"15931:4:6"}],"id":11268,"name":"VariableDeclaration","src":"15931:12:6"},{"attributes":{"constant":false,"name":"selfptr","scope":11387,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":11269,"name":"ElementaryTypeName","src":"15945:4:6"}],"id":11270,"name":"VariableDeclaration","src":"15945:12:6"},{"attributes":{"constant":false,"name":"needlelen","scope":11387,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":11271,"name":"ElementaryTypeName","src":"15959:4:6"}],"id":11272,"name":"VariableDeclaration","src":"15959:14:6"},{"attributes":{"constant":false,"name":"needleptr","scope":11387,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":11273,"name":"ElementaryTypeName","src":"15975:4:6"}],"id":11274,"name":"VariableDeclaration","src":"15975:14:6"}],"id":11275,"name":"ParameterList","src":"15930:60:6"},{"children":[{"attributes":{"constant":false,"name":"","scope":11387,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":11276,"name":"ElementaryTypeName","src":"16013:4:6"}],"id":11277,"name":"VariableDeclaration","src":"16013:4:6"}],"id":11278,"name":"ParameterList","src":"16012:6:6"},{"children":[{"attributes":{"assignments":[11280]},"children":[{"attributes":{"constant":false,"name":"ptr","scope":11387,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":11279,"name":"ElementaryTypeName","src":"16029:4:6"}],"id":11280,"name":"VariableDeclaration","src":"16029:8:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11270,"type":"uint256","value":"selfptr"},"id":11281,"name":"Identifier","src":"16040:7:6"}],"id":11282,"name":"VariableDeclarationStatement","src":"16029:18:6"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"idx","scope":11387,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":11283,"name":"ElementaryTypeName","src":"16057:4:6"}],"id":11284,"name":"VariableDeclaration","src":"16057:8:6"}],"id":11285,"name":"VariableDeclarationStatement","src":"16057:8:6"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11272,"type":"uint256","value":"needlelen"},"id":11286,"name":"Identifier","src":"16080:9:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11268,"type":"uint256","value":"selflen"},"id":11287,"name":"Identifier","src":"16093:7:6"}],"id":11288,"name":"BinaryOperation","src":"16080:20:6"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11272,"type":"uint256","value":"needlelen"},"id":11289,"name":"Identifier","src":"16120:9:6"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":11290,"name":"Literal","src":"16133:2:6"}],"id":11291,"name":"BinaryOperation","src":"16120:15:6"},{"children":[{"attributes":{"assignments":[11293]},"children":[{"attributes":{"constant":false,"name":"mask","scope":11387,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":11292,"name":"ElementaryTypeName","src":"16155:7:6"}],"id":11293,"name":"VariableDeclaration","src":"16155:12:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes32)","value":"bytes32"},"id":11294,"name":"ElementaryTypeNameExpression","src":"16170:7:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"~","prefix":true,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"**","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":11295,"name":"Literal","src":"16180:1:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"38","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 8","value":"8"},"id":11296,"name":"Literal","src":"16186:1:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":11297,"name":"Literal","src":"16191:2:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11272,"type":"uint256","value":"needlelen"},"id":11298,"name":"Identifier","src":"16196:9:6"}],"id":11299,"name":"BinaryOperation","src":"16191:14:6"}],"id":11300,"name":"TupleExpression","src":"16190:16:6"}],"id":11301,"name":"BinaryOperation","src":"16186:20:6"}],"id":11302,"name":"TupleExpression","src":"16185:22:6"}],"id":11303,"name":"BinaryOperation","src":"16180:27:6"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":11304,"name":"Literal","src":"16210:1:6"}],"id":11305,"name":"BinaryOperation","src":"16180:31:6"}],"id":11306,"name":"TupleExpression","src":"16179:33:6"}],"id":11307,"name":"UnaryOperation","src":"16178:34:6"}],"id":11308,"name":"FunctionCall","src":"16170:43:6"}],"id":11309,"name":"VariableDeclarationStatement","src":"16155:58:6"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"needledata","scope":11387,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":11310,"name":"ElementaryTypeName","src":"16232:7:6"}],"id":11311,"name":"VariableDeclaration","src":"16232:18:6"}],"id":11312,"name":"VariableDeclarationStatement","src":"16232:18:6"},{"attributes":{"externalReferences":[{"needleptr":{"declaration":11274,"isOffset":false,"isSlot":false,"src":"16303:9:6","valueSize":1}},{"needledata":{"declaration":11311,"isOffset":false,"isSlot":false,"src":"16279:10:6","valueSize":1}},{"mask":{"declaration":11293,"isOffset":false,"isSlot":false,"src":"16315:4:6","valueSize":1}}],"operations":"{\n needledata := and(mload(needleptr), mask)\n}"},"children":[],"id":11313,"name":"InlineAssembly","src":"16268:76:6"},{"attributes":{"assignments":[11315]},"children":[{"attributes":{"constant":false,"name":"end","scope":11387,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":11314,"name":"ElementaryTypeName","src":"16340:4:6"}],"id":11315,"name":"VariableDeclaration","src":"16340:8:6"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11270,"type":"uint256","value":"selfptr"},"id":11316,"name":"Identifier","src":"16351:7:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11268,"type":"uint256","value":"selflen"},"id":11317,"name":"Identifier","src":"16361:7:6"}],"id":11318,"name":"BinaryOperation","src":"16351:17:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11272,"type":"uint256","value":"needlelen"},"id":11319,"name":"Identifier","src":"16371:9:6"}],"id":11320,"name":"BinaryOperation","src":"16351:29:6"}],"id":11321,"name":"VariableDeclarationStatement","src":"16340:40:6"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"ptrdata","scope":11387,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":11322,"name":"ElementaryTypeName","src":"16398:7:6"}],"id":11323,"name":"VariableDeclaration","src":"16398:15:6"}],"id":11324,"name":"VariableDeclarationStatement","src":"16398:15:6"},{"attributes":{"externalReferences":[{"ptr":{"declaration":11280,"isOffset":false,"isSlot":false,"src":"16463:3:6","valueSize":1}},{"mask":{"declaration":11293,"isOffset":false,"isSlot":false,"src":"16469:4:6","valueSize":1}},{"ptrdata":{"declaration":11323,"isOffset":false,"isSlot":false,"src":"16442:7:6","valueSize":1}}],"operations":"{\n ptrdata := and(mload(ptr), mask)\n}"},"children":[],"id":11325,"name":"InlineAssembly","src":"16431:68:6"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11323,"type":"bytes32","value":"ptrdata"},"id":11326,"name":"Identifier","src":"16501:7:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11311,"type":"bytes32","value":"needledata"},"id":11327,"name":"Identifier","src":"16512:10:6"}],"id":11328,"name":"BinaryOperation","src":"16501:21:6"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11280,"type":"uint256","value":"ptr"},"id":11329,"name":"Identifier","src":"16550:3:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11315,"type":"uint256","value":"end"},"id":11330,"name":"Identifier","src":"16557:3:6"}],"id":11331,"name":"BinaryOperation","src":"16550:10:6"},{"attributes":{"functionReturnParameters":11278},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11270,"type":"uint256","value":"selfptr"},"id":11332,"name":"Identifier","src":"16593:7:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11268,"type":"uint256","value":"selflen"},"id":11333,"name":"Identifier","src":"16603:7:6"}],"id":11334,"name":"BinaryOperation","src":"16593:17:6"}],"id":11335,"name":"Return","src":"16586:24:6"}],"id":11336,"name":"IfStatement","src":"16546:64:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11280,"type":"uint256","value":"ptr"},"id":11337,"name":"Identifier","src":"16632:3:6"}],"id":11338,"name":"UnaryOperation","src":"16632:5:6"}],"id":11339,"name":"ExpressionStatement","src":"16632:5:6"},{"attributes":{"externalReferences":[{"ptr":{"declaration":11280,"isOffset":false,"isSlot":false,"src":"16691:3:6","valueSize":1}},{"ptrdata":{"declaration":11323,"isOffset":false,"isSlot":false,"src":"16670:7:6","valueSize":1}},{"mask":{"declaration":11293,"isOffset":false,"isSlot":false,"src":"16697:4:6","valueSize":1}}],"operations":"{\n ptrdata := and(mload(ptr), mask)\n}"},"children":[],"id":11340,"name":"InlineAssembly","src":"16659:63:6"}],"id":11341,"name":"Block","src":"16524:198:6"}],"id":11342,"name":"WhileStatement","src":"16494:228:6"},{"attributes":{"functionReturnParameters":11278},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11280,"type":"uint256","value":"ptr"},"id":11343,"name":"Identifier","src":"16746:3:6"}],"id":11344,"name":"Return","src":"16739:10:6"}],"id":11345,"name":"Block","src":"16137:627:6"},{"children":[{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"hash","scope":11387,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":11346,"name":"ElementaryTypeName","src":"16837:7:6"}],"id":11347,"name":"VariableDeclaration","src":"16837:12:6"}],"id":11348,"name":"VariableDeclarationStatement","src":"16837:12:6"},{"attributes":{"externalReferences":[{"hash":{"declaration":11347,"isOffset":false,"isSlot":false,"src":"16878:4:6","valueSize":1}},{"needleptr":{"declaration":11274,"isOffset":false,"isSlot":false,"src":"16896:9:6","valueSize":1}},{"needlelen":{"declaration":11272,"isOffset":false,"isSlot":false,"src":"16907:9:6","valueSize":1}}],"operations":"{\n hash := keccak256(needleptr, needlelen)\n}"},"children":[],"id":11349,"name":"InlineAssembly","src":"16867:73:6"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11284,"type":"uint256","value":"idx"},"id":11350,"name":"Identifier","src":"16942:3:6"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":11351,"name":"Literal","src":"16948:1:6"}],"id":11352,"name":"Assignment","src":"16942:7:6"}],"id":11353,"name":"ExpressionStatement","src":"16942:7:6"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11284,"type":"uint256","value":"idx"},"id":11354,"name":"Identifier","src":"16951:3:6"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11268,"type":"uint256","value":"selflen"},"id":11355,"name":"Identifier","src":"16958:7:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11272,"type":"uint256","value":"needlelen"},"id":11356,"name":"Identifier","src":"16968:9:6"}],"id":11357,"name":"BinaryOperation","src":"16958:19:6"}],"id":11358,"name":"BinaryOperation","src":"16951:26:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11284,"type":"uint256","value":"idx"},"id":11359,"name":"Identifier","src":"16979:3:6"}],"id":11360,"name":"UnaryOperation","src":"16979:5:6"}],"id":11361,"name":"ExpressionStatement","src":"16979:5:6"},{"children":[{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"testHash","scope":11387,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":11362,"name":"ElementaryTypeName","src":"17008:7:6"}],"id":11363,"name":"VariableDeclaration","src":"17008:16:6"}],"id":11364,"name":"VariableDeclarationStatement","src":"17008:16:6"},{"attributes":{"externalReferences":[{"testHash":{"declaration":11363,"isOffset":false,"isSlot":false,"src":"17057:8:6","valueSize":1}},{"ptr":{"declaration":11280,"isOffset":false,"isSlot":false,"src":"17079:3:6","valueSize":1}},{"needlelen":{"declaration":11272,"isOffset":false,"isSlot":false,"src":"17084:9:6","valueSize":1}}],"operations":"{\n testHash := keccak256(ptr, needlelen)\n}"},"children":[],"id":11365,"name":"InlineAssembly","src":"17046:73:6"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11347,"type":"bytes32","value":"hash"},"id":11366,"name":"Identifier","src":"17121:4:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11363,"type":"bytes32","value":"testHash"},"id":11367,"name":"Identifier","src":"17129:8:6"}],"id":11368,"name":"BinaryOperation","src":"17121:16:6"},{"attributes":{"functionReturnParameters":11278},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11280,"type":"uint256","value":"ptr"},"id":11369,"name":"Identifier","src":"17170:3:6"}],"id":11370,"name":"Return","src":"17163:10:6"}],"id":11371,"name":"IfStatement","src":"17117:56:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11280,"type":"uint256","value":"ptr"},"id":11372,"name":"Identifier","src":"17195:3:6"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":11373,"name":"Literal","src":"17202:1:6"}],"id":11374,"name":"Assignment","src":"17195:8:6"}],"id":11375,"name":"ExpressionStatement","src":"17195:8:6"}],"id":11376,"name":"Block","src":"16986:236:6"}],"id":11377,"name":"ForStatement","src":"16937:285:6"}],"id":11378,"name":"Block","src":"16770:466:6"}],"id":11379,"name":"IfStatement","src":"16116:1120:6"}],"id":11380,"name":"Block","src":"16102:1144:6"}],"id":11381,"name":"IfStatement","src":"16076:1170:6"},{"attributes":{"functionReturnParameters":11278},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11270,"type":"uint256","value":"selfptr"},"id":11382,"name":"Identifier","src":"17262:7:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11268,"type":"uint256","value":"selflen"},"id":11383,"name":"Identifier","src":"17272:7:6"}],"id":11384,"name":"BinaryOperation","src":"17262:17:6"}],"id":11385,"name":"Return","src":"17255:24:6"}],"id":11386,"name":"Block","src":"16019:1267:6"}],"id":11387,"name":"FunctionDefinition","src":"15914:1372:6"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"rfindPtr","payable":false,"scope":12001,"stateMutability":"pure","superFunction":null,"visibility":"private"},"children":[{"children":[{"attributes":{"constant":false,"name":"selflen","scope":11504,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":11388,"name":"ElementaryTypeName","src":"17457:4:6"}],"id":11389,"name":"VariableDeclaration","src":"17457:12:6"},{"attributes":{"constant":false,"name":"selfptr","scope":11504,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":11390,"name":"ElementaryTypeName","src":"17471:4:6"}],"id":11391,"name":"VariableDeclaration","src":"17471:12:6"},{"attributes":{"constant":false,"name":"needlelen","scope":11504,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":11392,"name":"ElementaryTypeName","src":"17485:4:6"}],"id":11393,"name":"VariableDeclaration","src":"17485:14:6"},{"attributes":{"constant":false,"name":"needleptr","scope":11504,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":11394,"name":"ElementaryTypeName","src":"17501:4:6"}],"id":11395,"name":"VariableDeclaration","src":"17501:14:6"}],"id":11396,"name":"ParameterList","src":"17456:60:6"},{"children":[{"attributes":{"constant":false,"name":"","scope":11504,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":11397,"name":"ElementaryTypeName","src":"17539:4:6"}],"id":11398,"name":"VariableDeclaration","src":"17539:4:6"}],"id":11399,"name":"ParameterList","src":"17538:6:6"},{"children":[{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"ptr","scope":11504,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":11400,"name":"ElementaryTypeName","src":"17555:4:6"}],"id":11401,"name":"VariableDeclaration","src":"17555:8:6"}],"id":11402,"name":"VariableDeclarationStatement","src":"17555:8:6"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11393,"type":"uint256","value":"needlelen"},"id":11403,"name":"Identifier","src":"17578:9:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11389,"type":"uint256","value":"selflen"},"id":11404,"name":"Identifier","src":"17591:7:6"}],"id":11405,"name":"BinaryOperation","src":"17578:20:6"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11393,"type":"uint256","value":"needlelen"},"id":11406,"name":"Identifier","src":"17618:9:6"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":11407,"name":"Literal","src":"17631:2:6"}],"id":11408,"name":"BinaryOperation","src":"17618:15:6"},{"children":[{"attributes":{"assignments":[11410]},"children":[{"attributes":{"constant":false,"name":"mask","scope":11504,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":11409,"name":"ElementaryTypeName","src":"17653:7:6"}],"id":11410,"name":"VariableDeclaration","src":"17653:12:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes32)","value":"bytes32"},"id":11411,"name":"ElementaryTypeNameExpression","src":"17668:7:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"~","prefix":true,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"**","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":11412,"name":"Literal","src":"17678:1:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"38","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 8","value":"8"},"id":11413,"name":"Literal","src":"17684:1:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":11414,"name":"Literal","src":"17689:2:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11393,"type":"uint256","value":"needlelen"},"id":11415,"name":"Identifier","src":"17694:9:6"}],"id":11416,"name":"BinaryOperation","src":"17689:14:6"}],"id":11417,"name":"TupleExpression","src":"17688:16:6"}],"id":11418,"name":"BinaryOperation","src":"17684:20:6"}],"id":11419,"name":"TupleExpression","src":"17683:22:6"}],"id":11420,"name":"BinaryOperation","src":"17678:27:6"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":11421,"name":"Literal","src":"17708:1:6"}],"id":11422,"name":"BinaryOperation","src":"17678:31:6"}],"id":11423,"name":"TupleExpression","src":"17677:33:6"}],"id":11424,"name":"UnaryOperation","src":"17676:34:6"}],"id":11425,"name":"FunctionCall","src":"17668:43:6"}],"id":11426,"name":"VariableDeclarationStatement","src":"17653:58:6"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"needledata","scope":11504,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":11427,"name":"ElementaryTypeName","src":"17730:7:6"}],"id":11428,"name":"VariableDeclaration","src":"17730:18:6"}],"id":11429,"name":"VariableDeclarationStatement","src":"17730:18:6"},{"attributes":{"externalReferences":[{"needleptr":{"declaration":11395,"isOffset":false,"isSlot":false,"src":"17801:9:6","valueSize":1}},{"needledata":{"declaration":11428,"isOffset":false,"isSlot":false,"src":"17777:10:6","valueSize":1}},{"mask":{"declaration":11410,"isOffset":false,"isSlot":false,"src":"17813:4:6","valueSize":1}}],"operations":"{\n needledata := and(mload(needleptr), mask)\n}"},"children":[],"id":11430,"name":"InlineAssembly","src":"17766:75:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11401,"type":"uint256","value":"ptr"},"id":11431,"name":"Identifier","src":"17838:3:6"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11391,"type":"uint256","value":"selfptr"},"id":11432,"name":"Identifier","src":"17844:7:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11389,"type":"uint256","value":"selflen"},"id":11433,"name":"Identifier","src":"17854:7:6"}],"id":11434,"name":"BinaryOperation","src":"17844:17:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11393,"type":"uint256","value":"needlelen"},"id":11435,"name":"Identifier","src":"17864:9:6"}],"id":11436,"name":"BinaryOperation","src":"17844:29:6"}],"id":11437,"name":"Assignment","src":"17838:35:6"}],"id":11438,"name":"ExpressionStatement","src":"17838:35:6"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"ptrdata","scope":11504,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":11439,"name":"ElementaryTypeName","src":"17891:7:6"}],"id":11440,"name":"VariableDeclaration","src":"17891:15:6"}],"id":11441,"name":"VariableDeclarationStatement","src":"17891:15:6"},{"attributes":{"externalReferences":[{"ptr":{"declaration":11401,"isOffset":false,"isSlot":false,"src":"17956:3:6","valueSize":1}},{"ptrdata":{"declaration":11440,"isOffset":false,"isSlot":false,"src":"17935:7:6","valueSize":1}},{"mask":{"declaration":11410,"isOffset":false,"isSlot":false,"src":"17962:4:6","valueSize":1}}],"operations":"{\n ptrdata := and(mload(ptr), mask)\n}"},"children":[],"id":11442,"name":"InlineAssembly","src":"17924:68:6"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11440,"type":"bytes32","value":"ptrdata"},"id":11443,"name":"Identifier","src":"17994:7:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11428,"type":"bytes32","value":"needledata"},"id":11444,"name":"Identifier","src":"18005:10:6"}],"id":11445,"name":"BinaryOperation","src":"17994:21:6"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11401,"type":"uint256","value":"ptr"},"id":11446,"name":"Identifier","src":"18043:3:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11391,"type":"uint256","value":"selfptr"},"id":11447,"name":"Identifier","src":"18050:7:6"}],"id":11448,"name":"BinaryOperation","src":"18043:14:6"},{"attributes":{"functionReturnParameters":11399},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11391,"type":"uint256","value":"selfptr"},"id":11449,"name":"Identifier","src":"18090:7:6"}],"id":11450,"name":"Return","src":"18083:14:6"}],"id":11451,"name":"IfStatement","src":"18039:58:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"--","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11401,"type":"uint256","value":"ptr"},"id":11452,"name":"Identifier","src":"18119:3:6"}],"id":11453,"name":"UnaryOperation","src":"18119:5:6"}],"id":11454,"name":"ExpressionStatement","src":"18119:5:6"},{"attributes":{"externalReferences":[{"ptr":{"declaration":11401,"isOffset":false,"isSlot":false,"src":"18178:3:6","valueSize":1}},{"ptrdata":{"declaration":11440,"isOffset":false,"isSlot":false,"src":"18157:7:6","valueSize":1}},{"mask":{"declaration":11410,"isOffset":false,"isSlot":false,"src":"18184:4:6","valueSize":1}}],"operations":"{\n ptrdata := and(mload(ptr), mask)\n}"},"children":[],"id":11455,"name":"InlineAssembly","src":"18146:63:6"}],"id":11456,"name":"Block","src":"18017:192:6"}],"id":11457,"name":"WhileStatement","src":"17987:222:6"},{"attributes":{"functionReturnParameters":11399},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11401,"type":"uint256","value":"ptr"},"id":11458,"name":"Identifier","src":"18233:3:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11393,"type":"uint256","value":"needlelen"},"id":11459,"name":"Identifier","src":"18239:9:6"}],"id":11460,"name":"BinaryOperation","src":"18233:15:6"}],"id":11461,"name":"Return","src":"18226:22:6"}],"id":11462,"name":"Block","src":"17635:628:6"},{"children":[{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"hash","scope":11504,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":11463,"name":"ElementaryTypeName","src":"18336:7:6"}],"id":11464,"name":"VariableDeclaration","src":"18336:12:6"}],"id":11465,"name":"VariableDeclarationStatement","src":"18336:12:6"},{"attributes":{"externalReferences":[{"hash":{"declaration":11464,"isOffset":false,"isSlot":false,"src":"18377:4:6","valueSize":1}},{"needleptr":{"declaration":11395,"isOffset":false,"isSlot":false,"src":"18395:9:6","valueSize":1}},{"needlelen":{"declaration":11393,"isOffset":false,"isSlot":false,"src":"18406:9:6","valueSize":1}}],"operations":"{\n hash := keccak256(needleptr, needlelen)\n}"},"children":[],"id":11466,"name":"InlineAssembly","src":"18366:72:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11401,"type":"uint256","value":"ptr"},"id":11467,"name":"Identifier","src":"18435:3:6"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11391,"type":"uint256","value":"selfptr"},"id":11468,"name":"Identifier","src":"18441:7:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11389,"type":"uint256","value":"selflen"},"id":11469,"name":"Identifier","src":"18452:7:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11393,"type":"uint256","value":"needlelen"},"id":11470,"name":"Identifier","src":"18462:9:6"}],"id":11471,"name":"BinaryOperation","src":"18452:19:6"}],"id":11472,"name":"TupleExpression","src":"18451:21:6"}],"id":11473,"name":"BinaryOperation","src":"18441:31:6"}],"id":11474,"name":"Assignment","src":"18435:37:6"}],"id":11475,"name":"ExpressionStatement","src":"18435:37:6"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11401,"type":"uint256","value":"ptr"},"id":11476,"name":"Identifier","src":"18497:3:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11391,"type":"uint256","value":"selfptr"},"id":11477,"name":"Identifier","src":"18504:7:6"}],"id":11478,"name":"BinaryOperation","src":"18497:14:6"},{"children":[{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"testHash","scope":11504,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":11479,"name":"ElementaryTypeName","src":"18535:7:6"}],"id":11480,"name":"VariableDeclaration","src":"18535:16:6"}],"id":11481,"name":"VariableDeclarationStatement","src":"18535:16:6"},{"attributes":{"externalReferences":[{"testHash":{"declaration":11480,"isOffset":false,"isSlot":false,"src":"18584:8:6","valueSize":1}},{"ptr":{"declaration":11401,"isOffset":false,"isSlot":false,"src":"18606:3:6","valueSize":1}},{"needlelen":{"declaration":11393,"isOffset":false,"isSlot":false,"src":"18611:9:6","valueSize":1}}],"operations":"{\n testHash := keccak256(ptr, needlelen)\n}"},"children":[],"id":11482,"name":"InlineAssembly","src":"18573:73:6"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11464,"type":"bytes32","value":"hash"},"id":11483,"name":"Identifier","src":"18648:4:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11480,"type":"bytes32","value":"testHash"},"id":11484,"name":"Identifier","src":"18656:8:6"}],"id":11485,"name":"BinaryOperation","src":"18648:16:6"},{"attributes":{"functionReturnParameters":11399},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11401,"type":"uint256","value":"ptr"},"id":11486,"name":"Identifier","src":"18697:3:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11393,"type":"uint256","value":"needlelen"},"id":11487,"name":"Identifier","src":"18703:9:6"}],"id":11488,"name":"BinaryOperation","src":"18697:15:6"}],"id":11489,"name":"Return","src":"18690:22:6"}],"id":11490,"name":"IfStatement","src":"18644:68:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11401,"type":"uint256","value":"ptr"},"id":11491,"name":"Identifier","src":"18734:3:6"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":11492,"name":"Literal","src":"18741:1:6"}],"id":11493,"name":"Assignment","src":"18734:8:6"}],"id":11494,"name":"ExpressionStatement","src":"18734:8:6"}],"id":11495,"name":"Block","src":"18513:248:6"}],"id":11496,"name":"WhileStatement","src":"18490:271:6"}],"id":11497,"name":"Block","src":"18269:506:6"}],"id":11498,"name":"IfStatement","src":"17614:1161:6"}],"id":11499,"name":"Block","src":"17600:1185:6"}],"id":11500,"name":"IfStatement","src":"17574:1211:6"},{"attributes":{"functionReturnParameters":11399},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11391,"type":"uint256","value":"selfptr"},"id":11501,"name":"Identifier","src":"18801:7:6"}],"id":11502,"name":"Return","src":"18794:14:6"}],"id":11503,"name":"Block","src":"17545:1270:6"}],"id":11504,"name":"FunctionDefinition","src":"17439:1376:6"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"find","payable":false,"scope":12001,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":11544,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10313,"type":"struct strings.slice"},"id":11505,"name":"UserDefinedTypeName","src":"19165:5:6"}],"id":11506,"name":"VariableDeclaration","src":"19165:17:6"},{"attributes":{"constant":false,"name":"needle","scope":11544,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10313,"type":"struct strings.slice"},"id":11507,"name":"UserDefinedTypeName","src":"19184:5:6"}],"id":11508,"name":"VariableDeclaration","src":"19184:19:6"}],"id":11509,"name":"ParameterList","src":"19164:40:6"},{"children":[{"attributes":{"constant":false,"name":"","scope":11544,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10313,"type":"struct strings.slice"},"id":11510,"name":"UserDefinedTypeName","src":"19228:5:6"}],"id":11511,"name":"VariableDeclaration","src":"19228:5:6"}],"id":11512,"name":"ParameterList","src":"19227:14:6"},{"children":[{"attributes":{"assignments":[11514]},"children":[{"attributes":{"constant":false,"name":"ptr","scope":11544,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":11513,"name":"ElementaryTypeName","src":"19252:4:6"}],"id":11514,"name":"VariableDeclaration","src":"19252:8:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":11387,"type":"function (uint256,uint256,uint256,uint256) pure returns (uint256)","value":"findPtr"},"id":11515,"name":"Identifier","src":"19263:7:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10310,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11506,"type":"struct strings.slice memory","value":"self"},"id":11516,"name":"Identifier","src":"19271:4:6"}],"id":11517,"name":"MemberAccess","src":"19271:9:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":10312,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11506,"type":"struct strings.slice memory","value":"self"},"id":11518,"name":"Identifier","src":"19282:4:6"}],"id":11519,"name":"MemberAccess","src":"19282:9:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10310,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11508,"type":"struct strings.slice memory","value":"needle"},"id":11520,"name":"Identifier","src":"19293:6:6"}],"id":11521,"name":"MemberAccess","src":"19293:11:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":10312,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11508,"type":"struct strings.slice memory","value":"needle"},"id":11522,"name":"Identifier","src":"19306:6:6"}],"id":11523,"name":"MemberAccess","src":"19306:11:6"}],"id":11524,"name":"FunctionCall","src":"19263:55:6"}],"id":11525,"name":"VariableDeclarationStatement","src":"19252:66:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":10310,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11506,"type":"struct strings.slice memory","value":"self"},"id":11526,"name":"Identifier","src":"19328:4:6"}],"id":11528,"name":"MemberAccess","src":"19328:9:6"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11514,"type":"uint256","value":"ptr"},"id":11529,"name":"Identifier","src":"19341:3:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":10312,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11506,"type":"struct strings.slice memory","value":"self"},"id":11530,"name":"Identifier","src":"19347:4:6"}],"id":11531,"name":"MemberAccess","src":"19347:9:6"}],"id":11532,"name":"BinaryOperation","src":"19341:15:6"}],"id":11533,"name":"Assignment","src":"19328:28:6"}],"id":11534,"name":"ExpressionStatement","src":"19328:28:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_ptr","referencedDeclaration":10312,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11506,"type":"struct strings.slice memory","value":"self"},"id":11535,"name":"Identifier","src":"19366:4:6"}],"id":11537,"name":"MemberAccess","src":"19366:9:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11514,"type":"uint256","value":"ptr"},"id":11538,"name":"Identifier","src":"19378:3:6"}],"id":11539,"name":"Assignment","src":"19366:15:6"}],"id":11540,"name":"ExpressionStatement","src":"19366:15:6"},{"attributes":{"functionReturnParameters":11512},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11506,"type":"struct strings.slice memory","value":"self"},"id":11541,"name":"Identifier","src":"19398:4:6"}],"id":11542,"name":"Return","src":"19391:11:6"}],"id":11543,"name":"Block","src":"19242:167:6"}],"id":11544,"name":"FunctionDefinition","src":"19151:258:6"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"rfind","payable":false,"scope":12001,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":11578,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10313,"type":"struct strings.slice"},"id":11545,"name":"UserDefinedTypeName","src":"19783:5:6"}],"id":11546,"name":"VariableDeclaration","src":"19783:17:6"},{"attributes":{"constant":false,"name":"needle","scope":11578,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10313,"type":"struct strings.slice"},"id":11547,"name":"UserDefinedTypeName","src":"19802:5:6"}],"id":11548,"name":"VariableDeclaration","src":"19802:19:6"}],"id":11549,"name":"ParameterList","src":"19782:40:6"},{"children":[{"attributes":{"constant":false,"name":"","scope":11578,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10313,"type":"struct strings.slice"},"id":11550,"name":"UserDefinedTypeName","src":"19846:5:6"}],"id":11551,"name":"VariableDeclaration","src":"19846:5:6"}],"id":11552,"name":"ParameterList","src":"19845:14:6"},{"children":[{"attributes":{"assignments":[11554]},"children":[{"attributes":{"constant":false,"name":"ptr","scope":11578,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":11553,"name":"ElementaryTypeName","src":"19870:4:6"}],"id":11554,"name":"VariableDeclaration","src":"19870:8:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":11504,"type":"function (uint256,uint256,uint256,uint256) pure returns (uint256)","value":"rfindPtr"},"id":11555,"name":"Identifier","src":"19881:8:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10310,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11546,"type":"struct strings.slice memory","value":"self"},"id":11556,"name":"Identifier","src":"19890:4:6"}],"id":11557,"name":"MemberAccess","src":"19890:9:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":10312,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11546,"type":"struct strings.slice memory","value":"self"},"id":11558,"name":"Identifier","src":"19901:4:6"}],"id":11559,"name":"MemberAccess","src":"19901:9:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10310,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11548,"type":"struct strings.slice memory","value":"needle"},"id":11560,"name":"Identifier","src":"19912:6:6"}],"id":11561,"name":"MemberAccess","src":"19912:11:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":10312,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11548,"type":"struct strings.slice memory","value":"needle"},"id":11562,"name":"Identifier","src":"19925:6:6"}],"id":11563,"name":"MemberAccess","src":"19925:11:6"}],"id":11564,"name":"FunctionCall","src":"19881:56:6"}],"id":11565,"name":"VariableDeclarationStatement","src":"19870:67:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":10310,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11546,"type":"struct strings.slice memory","value":"self"},"id":11566,"name":"Identifier","src":"19947:4:6"}],"id":11568,"name":"MemberAccess","src":"19947:9:6"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11554,"type":"uint256","value":"ptr"},"id":11569,"name":"Identifier","src":"19959:3:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":10312,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11546,"type":"struct strings.slice memory","value":"self"},"id":11570,"name":"Identifier","src":"19965:4:6"}],"id":11571,"name":"MemberAccess","src":"19965:9:6"}],"id":11572,"name":"BinaryOperation","src":"19959:15:6"}],"id":11573,"name":"Assignment","src":"19947:27:6"}],"id":11574,"name":"ExpressionStatement","src":"19947:27:6"},{"attributes":{"functionReturnParameters":11552},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11546,"type":"struct strings.slice memory","value":"self"},"id":11575,"name":"Identifier","src":"19991:4:6"}],"id":11576,"name":"Return","src":"19984:11:6"}],"id":11577,"name":"Block","src":"19860:142:6"}],"id":11578,"name":"FunctionDefinition","src":"19768:234:6"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"split","payable":false,"scope":12001,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":11656,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10313,"type":"struct strings.slice"},"id":11579,"name":"UserDefinedTypeName","src":"20523:5:6"}],"id":11580,"name":"VariableDeclaration","src":"20523:17:6"},{"attributes":{"constant":false,"name":"needle","scope":11656,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10313,"type":"struct strings.slice"},"id":11581,"name":"UserDefinedTypeName","src":"20542:5:6"}],"id":11582,"name":"VariableDeclaration","src":"20542:19:6"},{"attributes":{"constant":false,"name":"token","scope":11656,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10313,"type":"struct strings.slice"},"id":11583,"name":"UserDefinedTypeName","src":"20563:5:6"}],"id":11584,"name":"VariableDeclaration","src":"20563:18:6"}],"id":11585,"name":"ParameterList","src":"20522:60:6"},{"children":[{"attributes":{"constant":false,"name":"","scope":11656,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10313,"type":"struct strings.slice"},"id":11586,"name":"UserDefinedTypeName","src":"20606:5:6"}],"id":11587,"name":"VariableDeclaration","src":"20606:5:6"}],"id":11588,"name":"ParameterList","src":"20605:14:6"},{"children":[{"attributes":{"assignments":[11590]},"children":[{"attributes":{"constant":false,"name":"ptr","scope":11656,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":11589,"name":"ElementaryTypeName","src":"20630:4:6"}],"id":11590,"name":"VariableDeclaration","src":"20630:8:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":11387,"type":"function (uint256,uint256,uint256,uint256) pure returns (uint256)","value":"findPtr"},"id":11591,"name":"Identifier","src":"20641:7:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10310,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11580,"type":"struct strings.slice memory","value":"self"},"id":11592,"name":"Identifier","src":"20649:4:6"}],"id":11593,"name":"MemberAccess","src":"20649:9:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":10312,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11580,"type":"struct strings.slice memory","value":"self"},"id":11594,"name":"Identifier","src":"20660:4:6"}],"id":11595,"name":"MemberAccess","src":"20660:9:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10310,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11582,"type":"struct strings.slice memory","value":"needle"},"id":11596,"name":"Identifier","src":"20671:6:6"}],"id":11597,"name":"MemberAccess","src":"20671:11:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":10312,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11582,"type":"struct strings.slice memory","value":"needle"},"id":11598,"name":"Identifier","src":"20684:6:6"}],"id":11599,"name":"MemberAccess","src":"20684:11:6"}],"id":11600,"name":"FunctionCall","src":"20641:55:6"}],"id":11601,"name":"VariableDeclarationStatement","src":"20630:66:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_ptr","referencedDeclaration":10312,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11584,"type":"struct strings.slice memory","value":"token"},"id":11602,"name":"Identifier","src":"20706:5:6"}],"id":11604,"name":"MemberAccess","src":"20706:10:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":10312,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11580,"type":"struct strings.slice memory","value":"self"},"id":11605,"name":"Identifier","src":"20719:4:6"}],"id":11606,"name":"MemberAccess","src":"20719:9:6"}],"id":11607,"name":"Assignment","src":"20706:22:6"}],"id":11608,"name":"ExpressionStatement","src":"20706:22:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":10310,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11584,"type":"struct strings.slice memory","value":"token"},"id":11609,"name":"Identifier","src":"20738:5:6"}],"id":11611,"name":"MemberAccess","src":"20738:10:6"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11590,"type":"uint256","value":"ptr"},"id":11612,"name":"Identifier","src":"20751:3:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":10312,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11580,"type":"struct strings.slice memory","value":"self"},"id":11613,"name":"Identifier","src":"20757:4:6"}],"id":11614,"name":"MemberAccess","src":"20757:9:6"}],"id":11615,"name":"BinaryOperation","src":"20751:15:6"}],"id":11616,"name":"Assignment","src":"20738:28:6"}],"id":11617,"name":"ExpressionStatement","src":"20738:28:6"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11590,"type":"uint256","value":"ptr"},"id":11618,"name":"Identifier","src":"20780:3:6"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":10312,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11580,"type":"struct strings.slice memory","value":"self"},"id":11619,"name":"Identifier","src":"20787:4:6"}],"id":11620,"name":"MemberAccess","src":"20787:9:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10310,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11580,"type":"struct strings.slice memory","value":"self"},"id":11621,"name":"Identifier","src":"20799:4:6"}],"id":11622,"name":"MemberAccess","src":"20799:9:6"}],"id":11623,"name":"BinaryOperation","src":"20787:21:6"}],"id":11624,"name":"BinaryOperation","src":"20780:28:6"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":10310,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11580,"type":"struct strings.slice memory","value":"self"},"id":11625,"name":"Identifier","src":"20849:4:6"}],"id":11627,"name":"MemberAccess","src":"20849:9:6"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":11628,"name":"Literal","src":"20861:1:6"}],"id":11629,"name":"Assignment","src":"20849:13:6"}],"id":11630,"name":"ExpressionStatement","src":"20849:13:6"}],"id":11631,"name":"Block","src":"20810:63:6"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":10310,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11580,"type":"struct strings.slice memory","value":"self"},"id":11632,"name":"Identifier","src":"20893:4:6"}],"id":11634,"name":"MemberAccess","src":"20893:9:6"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10310,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11584,"type":"struct strings.slice memory","value":"token"},"id":11635,"name":"Identifier","src":"20906:5:6"}],"id":11636,"name":"MemberAccess","src":"20906:10:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10310,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11582,"type":"struct strings.slice memory","value":"needle"},"id":11637,"name":"Identifier","src":"20919:6:6"}],"id":11638,"name":"MemberAccess","src":"20919:11:6"}],"id":11639,"name":"BinaryOperation","src":"20906:24:6"}],"id":11640,"name":"Assignment","src":"20893:37:6"}],"id":11641,"name":"ExpressionStatement","src":"20893:37:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_ptr","referencedDeclaration":10312,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11580,"type":"struct strings.slice memory","value":"self"},"id":11642,"name":"Identifier","src":"20944:4:6"}],"id":11644,"name":"MemberAccess","src":"20944:9:6"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11590,"type":"uint256","value":"ptr"},"id":11645,"name":"Identifier","src":"20956:3:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10310,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11582,"type":"struct strings.slice memory","value":"needle"},"id":11646,"name":"Identifier","src":"20962:6:6"}],"id":11647,"name":"MemberAccess","src":"20962:11:6"}],"id":11648,"name":"BinaryOperation","src":"20956:17:6"}],"id":11649,"name":"Assignment","src":"20944:29:6"}],"id":11650,"name":"ExpressionStatement","src":"20944:29:6"}],"id":11651,"name":"Block","src":"20879:105:6"}],"id":11652,"name":"IfStatement","src":"20776:208:6"},{"attributes":{"functionReturnParameters":11588},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11584,"type":"struct strings.slice memory","value":"token"},"id":11653,"name":"Identifier","src":"21000:5:6"}],"id":11654,"name":"Return","src":"20993:12:6"}],"id":11655,"name":"Block","src":"20620:392:6"}],"id":11656,"name":"FunctionDefinition","src":"20508:504:6"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"split","payable":false,"scope":12001,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":11672,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10313,"type":"struct strings.slice"},"id":11657,"name":"UserDefinedTypeName","src":"21498:5:6"}],"id":11658,"name":"VariableDeclaration","src":"21498:17:6"},{"attributes":{"constant":false,"name":"needle","scope":11672,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10313,"type":"struct strings.slice"},"id":11659,"name":"UserDefinedTypeName","src":"21517:5:6"}],"id":11660,"name":"VariableDeclaration","src":"21517:19:6"}],"id":11661,"name":"ParameterList","src":"21497:40:6"},{"children":[{"attributes":{"constant":false,"name":"token","scope":11672,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10313,"type":"struct strings.slice"},"id":11662,"name":"UserDefinedTypeName","src":"21561:5:6"}],"id":11663,"name":"VariableDeclaration","src":"21561:18:6"}],"id":11664,"name":"ParameterList","src":"21560:20:6"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"struct strings.slice memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$10313_memory_ptr","typeString":"struct strings.slice memory"},{"typeIdentifier":"t_struct$_slice_$10313_memory_ptr","typeString":"struct strings.slice memory"},{"typeIdentifier":"t_struct$_slice_$10313_memory_ptr","typeString":"struct strings.slice memory"}],"overloadedDeclarations":[11656,11672],"referencedDeclaration":11656,"type":"function (struct strings.slice memory,struct strings.slice memory,struct strings.slice memory) pure returns (struct strings.slice memory)","value":"split"},"id":11665,"name":"Identifier","src":"21591:5:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11658,"type":"struct strings.slice memory","value":"self"},"id":11666,"name":"Identifier","src":"21597:4:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11660,"type":"struct strings.slice memory","value":"needle"},"id":11667,"name":"Identifier","src":"21603:6:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11663,"type":"struct strings.slice memory","value":"token"},"id":11668,"name":"Identifier","src":"21611:5:6"}],"id":11669,"name":"FunctionCall","src":"21591:26:6"}],"id":11670,"name":"ExpressionStatement","src":"21591:26:6"}],"id":11671,"name":"Block","src":"21581:43:6"}],"id":11672,"name":"FunctionDefinition","src":"21483:141:6"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"rsplit","payable":false,"scope":12001,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":11741,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10313,"type":"struct strings.slice"},"id":11673,"name":"UserDefinedTypeName","src":"22145:5:6"}],"id":11674,"name":"VariableDeclaration","src":"22145:17:6"},{"attributes":{"constant":false,"name":"needle","scope":11741,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10313,"type":"struct strings.slice"},"id":11675,"name":"UserDefinedTypeName","src":"22164:5:6"}],"id":11676,"name":"VariableDeclaration","src":"22164:19:6"},{"attributes":{"constant":false,"name":"token","scope":11741,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10313,"type":"struct strings.slice"},"id":11677,"name":"UserDefinedTypeName","src":"22185:5:6"}],"id":11678,"name":"VariableDeclaration","src":"22185:18:6"}],"id":11679,"name":"ParameterList","src":"22144:60:6"},{"children":[{"attributes":{"constant":false,"name":"","scope":11741,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10313,"type":"struct strings.slice"},"id":11680,"name":"UserDefinedTypeName","src":"22228:5:6"}],"id":11681,"name":"VariableDeclaration","src":"22228:5:6"}],"id":11682,"name":"ParameterList","src":"22227:14:6"},{"children":[{"attributes":{"assignments":[11684]},"children":[{"attributes":{"constant":false,"name":"ptr","scope":11741,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":11683,"name":"ElementaryTypeName","src":"22252:4:6"}],"id":11684,"name":"VariableDeclaration","src":"22252:8:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":11504,"type":"function (uint256,uint256,uint256,uint256) pure returns (uint256)","value":"rfindPtr"},"id":11685,"name":"Identifier","src":"22263:8:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10310,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11674,"type":"struct strings.slice memory","value":"self"},"id":11686,"name":"Identifier","src":"22272:4:6"}],"id":11687,"name":"MemberAccess","src":"22272:9:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":10312,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11674,"type":"struct strings.slice memory","value":"self"},"id":11688,"name":"Identifier","src":"22283:4:6"}],"id":11689,"name":"MemberAccess","src":"22283:9:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10310,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11676,"type":"struct strings.slice memory","value":"needle"},"id":11690,"name":"Identifier","src":"22294:6:6"}],"id":11691,"name":"MemberAccess","src":"22294:11:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":10312,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11676,"type":"struct strings.slice memory","value":"needle"},"id":11692,"name":"Identifier","src":"22307:6:6"}],"id":11693,"name":"MemberAccess","src":"22307:11:6"}],"id":11694,"name":"FunctionCall","src":"22263:56:6"}],"id":11695,"name":"VariableDeclarationStatement","src":"22252:67:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_ptr","referencedDeclaration":10312,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11678,"type":"struct strings.slice memory","value":"token"},"id":11696,"name":"Identifier","src":"22329:5:6"}],"id":11698,"name":"MemberAccess","src":"22329:10:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11684,"type":"uint256","value":"ptr"},"id":11699,"name":"Identifier","src":"22342:3:6"}],"id":11700,"name":"Assignment","src":"22329:16:6"}],"id":11701,"name":"ExpressionStatement","src":"22329:16:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":10310,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11678,"type":"struct strings.slice memory","value":"token"},"id":11702,"name":"Identifier","src":"22355:5:6"}],"id":11704,"name":"MemberAccess","src":"22355:10:6"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10310,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11674,"type":"struct strings.slice memory","value":"self"},"id":11705,"name":"Identifier","src":"22368:4:6"}],"id":11706,"name":"MemberAccess","src":"22368:9:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11684,"type":"uint256","value":"ptr"},"id":11707,"name":"Identifier","src":"22381:3:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":10312,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11674,"type":"struct strings.slice memory","value":"self"},"id":11708,"name":"Identifier","src":"22387:4:6"}],"id":11709,"name":"MemberAccess","src":"22387:9:6"}],"id":11710,"name":"BinaryOperation","src":"22381:15:6"}],"id":11711,"name":"TupleExpression","src":"22380:17:6"}],"id":11712,"name":"BinaryOperation","src":"22368:29:6"}],"id":11713,"name":"Assignment","src":"22355:42:6"}],"id":11714,"name":"ExpressionStatement","src":"22355:42:6"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11684,"type":"uint256","value":"ptr"},"id":11715,"name":"Identifier","src":"22411:3:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":10312,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11674,"type":"struct strings.slice memory","value":"self"},"id":11716,"name":"Identifier","src":"22418:4:6"}],"id":11717,"name":"MemberAccess","src":"22418:9:6"}],"id":11718,"name":"BinaryOperation","src":"22411:16:6"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":10310,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11674,"type":"struct strings.slice memory","value":"self"},"id":11719,"name":"Identifier","src":"22468:4:6"}],"id":11721,"name":"MemberAccess","src":"22468:9:6"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":11722,"name":"Literal","src":"22480:1:6"}],"id":11723,"name":"Assignment","src":"22468:13:6"}],"id":11724,"name":"ExpressionStatement","src":"22468:13:6"}],"id":11725,"name":"Block","src":"22429:63:6"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":10310,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11674,"type":"struct strings.slice memory","value":"self"},"id":11726,"name":"Identifier","src":"22512:4:6"}],"id":11728,"name":"MemberAccess","src":"22512:9:6"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10310,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11678,"type":"struct strings.slice memory","value":"token"},"id":11729,"name":"Identifier","src":"22525:5:6"}],"id":11730,"name":"MemberAccess","src":"22525:10:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10310,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11676,"type":"struct strings.slice memory","value":"needle"},"id":11731,"name":"Identifier","src":"22538:6:6"}],"id":11732,"name":"MemberAccess","src":"22538:11:6"}],"id":11733,"name":"BinaryOperation","src":"22525:24:6"}],"id":11734,"name":"Assignment","src":"22512:37:6"}],"id":11735,"name":"ExpressionStatement","src":"22512:37:6"}],"id":11736,"name":"Block","src":"22498:62:6"}],"id":11737,"name":"IfStatement","src":"22407:153:6"},{"attributes":{"functionReturnParameters":11682},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11678,"type":"struct strings.slice memory","value":"token"},"id":11738,"name":"Identifier","src":"22576:5:6"}],"id":11739,"name":"Return","src":"22569:12:6"}],"id":11740,"name":"Block","src":"22242:346:6"}],"id":11741,"name":"FunctionDefinition","src":"22129:459:6"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"rsplit","payable":false,"scope":12001,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":11757,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10313,"type":"struct strings.slice"},"id":11742,"name":"UserDefinedTypeName","src":"23073:5:6"}],"id":11743,"name":"VariableDeclaration","src":"23073:17:6"},{"attributes":{"constant":false,"name":"needle","scope":11757,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10313,"type":"struct strings.slice"},"id":11744,"name":"UserDefinedTypeName","src":"23092:5:6"}],"id":11745,"name":"VariableDeclaration","src":"23092:19:6"}],"id":11746,"name":"ParameterList","src":"23072:40:6"},{"children":[{"attributes":{"constant":false,"name":"token","scope":11757,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10313,"type":"struct strings.slice"},"id":11747,"name":"UserDefinedTypeName","src":"23136:5:6"}],"id":11748,"name":"VariableDeclaration","src":"23136:18:6"}],"id":11749,"name":"ParameterList","src":"23135:20:6"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"struct strings.slice memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$10313_memory_ptr","typeString":"struct strings.slice memory"},{"typeIdentifier":"t_struct$_slice_$10313_memory_ptr","typeString":"struct strings.slice memory"},{"typeIdentifier":"t_struct$_slice_$10313_memory_ptr","typeString":"struct strings.slice memory"}],"overloadedDeclarations":[11741,11757],"referencedDeclaration":11741,"type":"function (struct strings.slice memory,struct strings.slice memory,struct strings.slice memory) pure returns (struct strings.slice memory)","value":"rsplit"},"id":11750,"name":"Identifier","src":"23166:6:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11743,"type":"struct strings.slice memory","value":"self"},"id":11751,"name":"Identifier","src":"23173:4:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11745,"type":"struct strings.slice memory","value":"needle"},"id":11752,"name":"Identifier","src":"23179:6:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11748,"type":"struct strings.slice memory","value":"token"},"id":11753,"name":"Identifier","src":"23187:5:6"}],"id":11754,"name":"FunctionCall","src":"23166:27:6"}],"id":11755,"name":"ExpressionStatement","src":"23166:27:6"}],"id":11756,"name":"Block","src":"23156:44:6"}],"id":11757,"name":"FunctionDefinition","src":"23057:143:6"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"count","payable":false,"scope":12001,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":11816,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10313,"type":"struct strings.slice"},"id":11758,"name":"UserDefinedTypeName","src":"23484:5:6"}],"id":11759,"name":"VariableDeclaration","src":"23484:17:6"},{"attributes":{"constant":false,"name":"needle","scope":11816,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10313,"type":"struct strings.slice"},"id":11760,"name":"UserDefinedTypeName","src":"23503:5:6"}],"id":11761,"name":"VariableDeclaration","src":"23503:19:6"}],"id":11762,"name":"ParameterList","src":"23483:40:6"},{"children":[{"attributes":{"constant":false,"name":"cnt","scope":11816,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":11763,"name":"ElementaryTypeName","src":"23547:4:6"}],"id":11764,"name":"VariableDeclaration","src":"23547:8:6"}],"id":11765,"name":"ParameterList","src":"23546:10:6"},{"children":[{"attributes":{"assignments":[11767]},"children":[{"attributes":{"constant":false,"name":"ptr","scope":11816,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":11766,"name":"ElementaryTypeName","src":"23567:4:6"}],"id":11767,"name":"VariableDeclaration","src":"23567:8:6"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":11387,"type":"function (uint256,uint256,uint256,uint256) pure returns (uint256)","value":"findPtr"},"id":11768,"name":"Identifier","src":"23578:7:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10310,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11759,"type":"struct strings.slice memory","value":"self"},"id":11769,"name":"Identifier","src":"23586:4:6"}],"id":11770,"name":"MemberAccess","src":"23586:9:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":10312,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11759,"type":"struct strings.slice memory","value":"self"},"id":11771,"name":"Identifier","src":"23597:4:6"}],"id":11772,"name":"MemberAccess","src":"23597:9:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10310,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11761,"type":"struct strings.slice memory","value":"needle"},"id":11773,"name":"Identifier","src":"23608:6:6"}],"id":11774,"name":"MemberAccess","src":"23608:11:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":10312,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11761,"type":"struct strings.slice memory","value":"needle"},"id":11775,"name":"Identifier","src":"23621:6:6"}],"id":11776,"name":"MemberAccess","src":"23621:11:6"}],"id":11777,"name":"FunctionCall","src":"23578:55:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10310,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11761,"type":"struct strings.slice memory","value":"needle"},"id":11778,"name":"Identifier","src":"23636:6:6"}],"id":11779,"name":"MemberAccess","src":"23636:11:6"}],"id":11780,"name":"BinaryOperation","src":"23578:69:6"}],"id":11781,"name":"VariableDeclarationStatement","src":"23567:80:6"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11767,"type":"uint256","value":"ptr"},"id":11782,"name":"Identifier","src":"23664:3:6"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":10312,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11759,"type":"struct strings.slice memory","value":"self"},"id":11783,"name":"Identifier","src":"23671:4:6"}],"id":11784,"name":"MemberAccess","src":"23671:9:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10310,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11759,"type":"struct strings.slice memory","value":"self"},"id":11785,"name":"Identifier","src":"23683:4:6"}],"id":11786,"name":"MemberAccess","src":"23683:9:6"}],"id":11787,"name":"BinaryOperation","src":"23671:21:6"}],"id":11788,"name":"BinaryOperation","src":"23664:28:6"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11764,"type":"uint256","value":"cnt"},"id":11789,"name":"Identifier","src":"23708:3:6"}],"id":11790,"name":"UnaryOperation","src":"23708:5:6"}],"id":11791,"name":"ExpressionStatement","src":"23708:5:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11767,"type":"uint256","value":"ptr"},"id":11792,"name":"Identifier","src":"23727:3:6"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":11387,"type":"function (uint256,uint256,uint256,uint256) pure returns (uint256)","value":"findPtr"},"id":11793,"name":"Identifier","src":"23733:7:6"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10310,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11759,"type":"struct strings.slice memory","value":"self"},"id":11794,"name":"Identifier","src":"23741:4:6"}],"id":11795,"name":"MemberAccess","src":"23741:9:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11767,"type":"uint256","value":"ptr"},"id":11796,"name":"Identifier","src":"23754:3:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":10312,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11759,"type":"struct strings.slice memory","value":"self"},"id":11797,"name":"Identifier","src":"23760:4:6"}],"id":11798,"name":"MemberAccess","src":"23760:9:6"}],"id":11799,"name":"BinaryOperation","src":"23754:15:6"}],"id":11800,"name":"TupleExpression","src":"23753:17:6"}],"id":11801,"name":"BinaryOperation","src":"23741:29:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11767,"type":"uint256","value":"ptr"},"id":11802,"name":"Identifier","src":"23772:3:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10310,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11761,"type":"struct strings.slice memory","value":"needle"},"id":11803,"name":"Identifier","src":"23777:6:6"}],"id":11804,"name":"MemberAccess","src":"23777:11:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":10312,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11761,"type":"struct strings.slice memory","value":"needle"},"id":11805,"name":"Identifier","src":"23790:6:6"}],"id":11806,"name":"MemberAccess","src":"23790:11:6"}],"id":11807,"name":"FunctionCall","src":"23733:69:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10310,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11761,"type":"struct strings.slice memory","value":"needle"},"id":11808,"name":"Identifier","src":"23805:6:6"}],"id":11809,"name":"MemberAccess","src":"23805:11:6"}],"id":11810,"name":"BinaryOperation","src":"23733:83:6"}],"id":11811,"name":"Assignment","src":"23727:89:6"}],"id":11812,"name":"ExpressionStatement","src":"23727:89:6"}],"id":11813,"name":"Block","src":"23694:133:6"}],"id":11814,"name":"WhileStatement","src":"23657:170:6"}],"id":11815,"name":"Block","src":"23557:276:6"}],"id":11816,"name":"FunctionDefinition","src":"23469:364:6"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"contains","payable":false,"scope":12001,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":11840,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10313,"type":"struct strings.slice"},"id":11817,"name":"UserDefinedTypeName","src":"24090:5:6"}],"id":11818,"name":"VariableDeclaration","src":"24090:17:6"},{"attributes":{"constant":false,"name":"needle","scope":11840,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10313,"type":"struct strings.slice"},"id":11819,"name":"UserDefinedTypeName","src":"24109:5:6"}],"id":11820,"name":"VariableDeclaration","src":"24109:19:6"}],"id":11821,"name":"ParameterList","src":"24089:40:6"},{"children":[{"attributes":{"constant":false,"name":"","scope":11840,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":11822,"name":"ElementaryTypeName","src":"24153:4:6"}],"id":11823,"name":"VariableDeclaration","src":"24153:4:6"}],"id":11824,"name":"ParameterList","src":"24152:6:6"},{"children":[{"attributes":{"functionReturnParameters":11824},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":11504,"type":"function (uint256,uint256,uint256,uint256) pure returns (uint256)","value":"rfindPtr"},"id":11825,"name":"Identifier","src":"24176:8:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10310,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11818,"type":"struct strings.slice memory","value":"self"},"id":11826,"name":"Identifier","src":"24185:4:6"}],"id":11827,"name":"MemberAccess","src":"24185:9:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":10312,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11818,"type":"struct strings.slice memory","value":"self"},"id":11828,"name":"Identifier","src":"24196:4:6"}],"id":11829,"name":"MemberAccess","src":"24196:9:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10310,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11820,"type":"struct strings.slice memory","value":"needle"},"id":11830,"name":"Identifier","src":"24207:6:6"}],"id":11831,"name":"MemberAccess","src":"24207:11:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":10312,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11820,"type":"struct strings.slice memory","value":"needle"},"id":11832,"name":"Identifier","src":"24220:6:6"}],"id":11833,"name":"MemberAccess","src":"24220:11:6"}],"id":11834,"name":"FunctionCall","src":"24176:56:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":10312,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11818,"type":"struct strings.slice memory","value":"self"},"id":11835,"name":"Identifier","src":"24236:4:6"}],"id":11836,"name":"MemberAccess","src":"24236:9:6"}],"id":11837,"name":"BinaryOperation","src":"24176:69:6"}],"id":11838,"name":"Return","src":"24169:76:6"}],"id":11839,"name":"Block","src":"24159:93:6"}],"id":11840,"name":"FunctionDefinition","src":"24072:180:6"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"concat","payable":false,"scope":12001,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":11886,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10313,"type":"struct strings.slice"},"id":11841,"name":"UserDefinedTypeName","src":"24555:5:6"}],"id":11842,"name":"VariableDeclaration","src":"24555:17:6"},{"attributes":{"constant":false,"name":"other","scope":11886,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10313,"type":"struct strings.slice"},"id":11843,"name":"UserDefinedTypeName","src":"24574:5:6"}],"id":11844,"name":"VariableDeclaration","src":"24574:18:6"}],"id":11845,"name":"ParameterList","src":"24554:39:6"},{"children":[{"attributes":{"constant":false,"name":"","scope":11886,"stateVariable":false,"storageLocation":"memory","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":11846,"name":"ElementaryTypeName","src":"24617:6:6"}],"id":11847,"name":"VariableDeclaration","src":"24617:6:6"}],"id":11848,"name":"ParameterList","src":"24616:15:6"},{"children":[{"attributes":{"assignments":[11850]},"children":[{"attributes":{"constant":false,"name":"ret","scope":11886,"stateVariable":false,"storageLocation":"memory","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":11849,"name":"ElementaryTypeName","src":"24642:6:6"}],"id":11850,"name":"VariableDeclaration","src":"24642:17:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (string memory)"},"children":[{"attributes":{"name":"string","type":"string"},"id":11851,"name":"ElementaryTypeName","src":"24666:6:6"}],"id":11852,"name":"NewExpression","src":"24662:10:6"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10310,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11842,"type":"struct strings.slice memory","value":"self"},"id":11853,"name":"Identifier","src":"24673:4:6"}],"id":11854,"name":"MemberAccess","src":"24673:9:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10310,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11844,"type":"struct strings.slice memory","value":"other"},"id":11855,"name":"Identifier","src":"24685:5:6"}],"id":11856,"name":"MemberAccess","src":"24685:10:6"}],"id":11857,"name":"BinaryOperation","src":"24673:22:6"}],"id":11858,"name":"FunctionCall","src":"24662:34:6"}],"id":11859,"name":"VariableDeclarationStatement","src":"24642:54:6"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"retptr","scope":11886,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":11860,"name":"ElementaryTypeName","src":"24706:4:6"}],"id":11861,"name":"VariableDeclaration","src":"24706:11:6"}],"id":11862,"name":"VariableDeclarationStatement","src":"24706:11:6"},{"attributes":{"externalReferences":[{"retptr":{"declaration":11861,"isOffset":false,"isSlot":false,"src":"24738:6:6","valueSize":1}},{"ret":{"declaration":11850,"isOffset":false,"isSlot":false,"src":"24752:3:6","valueSize":1}}],"operations":"{\n retptr := add(ret, 32)\n}"},"children":[],"id":11863,"name":"InlineAssembly","src":"24727:50:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":10353,"type":"function (uint256,uint256,uint256) pure","value":"memcpy"},"id":11864,"name":"Identifier","src":"24771:6:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11861,"type":"uint256","value":"retptr"},"id":11865,"name":"Identifier","src":"24778:6:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":10312,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11842,"type":"struct strings.slice memory","value":"self"},"id":11866,"name":"Identifier","src":"24786:4:6"}],"id":11867,"name":"MemberAccess","src":"24786:9:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10310,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11842,"type":"struct strings.slice memory","value":"self"},"id":11868,"name":"Identifier","src":"24797:4:6"}],"id":11869,"name":"MemberAccess","src":"24797:9:6"}],"id":11870,"name":"FunctionCall","src":"24771:36:6"}],"id":11871,"name":"ExpressionStatement","src":"24771:36:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":10353,"type":"function (uint256,uint256,uint256) pure","value":"memcpy"},"id":11872,"name":"Identifier","src":"24817:6:6"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11861,"type":"uint256","value":"retptr"},"id":11873,"name":"Identifier","src":"24824:6:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10310,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11842,"type":"struct strings.slice memory","value":"self"},"id":11874,"name":"Identifier","src":"24833:4:6"}],"id":11875,"name":"MemberAccess","src":"24833:9:6"}],"id":11876,"name":"BinaryOperation","src":"24824:18:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":10312,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11844,"type":"struct strings.slice memory","value":"other"},"id":11877,"name":"Identifier","src":"24844:5:6"}],"id":11878,"name":"MemberAccess","src":"24844:10:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10310,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11844,"type":"struct strings.slice memory","value":"other"},"id":11879,"name":"Identifier","src":"24856:5:6"}],"id":11880,"name":"MemberAccess","src":"24856:10:6"}],"id":11881,"name":"FunctionCall","src":"24817:50:6"}],"id":11882,"name":"ExpressionStatement","src":"24817:50:6"},{"attributes":{"functionReturnParameters":11848},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11850,"type":"string memory","value":"ret"},"id":11883,"name":"Identifier","src":"24884:3:6"}],"id":11884,"name":"Return","src":"24877:10:6"}],"id":11885,"name":"Block","src":"24632:262:6"}],"id":11886,"name":"FunctionDefinition","src":"24539:355:6"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"join","payable":false,"scope":12001,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":12000,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10313,"type":"struct strings.slice"},"id":11887,"name":"UserDefinedTypeName","src":"25244:5:6"}],"id":11888,"name":"VariableDeclaration","src":"25244:17:6"},{"attributes":{"constant":false,"name":"parts","scope":12000,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"struct strings.slice[]"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10313,"type":"struct strings.slice"},"id":11889,"name":"UserDefinedTypeName","src":"25263:5:6"}],"id":11890,"name":"ArrayTypeName","src":"25263:7:6"}],"id":11891,"name":"VariableDeclaration","src":"25263:20:6"}],"id":11892,"name":"ParameterList","src":"25243:41:6"},{"children":[{"attributes":{"constant":false,"name":"","scope":12000,"stateVariable":false,"storageLocation":"memory","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":11893,"name":"ElementaryTypeName","src":"25308:6:6"}],"id":11894,"name":"VariableDeclaration","src":"25308:6:6"}],"id":11895,"name":"ParameterList","src":"25307:15:6"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11891,"type":"struct strings.slice memory[] memory","value":"parts"},"id":11896,"name":"Identifier","src":"25337:5:6"}],"id":11897,"name":"MemberAccess","src":"25337:12:6"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":11898,"name":"Literal","src":"25353:1:6"}],"id":11899,"name":"BinaryOperation","src":"25337:17:6"},{"attributes":{"functionReturnParameters":11895},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"\"","value":""},"id":11900,"name":"Literal","src":"25375:2:6"}],"id":11901,"name":"Return","src":"25368:9:6"}],"id":11902,"name":"IfStatement","src":"25333:44:6"},{"attributes":{"assignments":[11904]},"children":[{"attributes":{"constant":false,"name":"length","scope":12000,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":11903,"name":"ElementaryTypeName","src":"25388:4:6"}],"id":11904,"name":"VariableDeclaration","src":"25388:11:6"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10310,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11888,"type":"struct strings.slice memory","value":"self"},"id":11905,"name":"Identifier","src":"25402:4:6"}],"id":11906,"name":"MemberAccess","src":"25402:9:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11891,"type":"struct strings.slice memory[] memory","value":"parts"},"id":11907,"name":"Identifier","src":"25415:5:6"}],"id":11908,"name":"MemberAccess","src":"25415:12:6"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":11909,"name":"Literal","src":"25430:1:6"}],"id":11910,"name":"BinaryOperation","src":"25415:16:6"}],"id":11911,"name":"TupleExpression","src":"25414:18:6"}],"id":11912,"name":"BinaryOperation","src":"25402:30:6"}],"id":11913,"name":"VariableDeclarationStatement","src":"25388:44:6"},{"children":[{"attributes":{"assignments":[11915]},"children":[{"attributes":{"constant":false,"name":"i","scope":12000,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":11914,"name":"ElementaryTypeName","src":"25446:4:6"}],"id":11915,"name":"VariableDeclaration","src":"25446:6:6"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":11916,"name":"Literal","src":"25455:1:6"}],"id":11917,"name":"VariableDeclarationStatement","src":"25446:10:6"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11915,"type":"uint256","value":"i"},"id":11918,"name":"Identifier","src":"25458:1:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11891,"type":"struct strings.slice memory[] memory","value":"parts"},"id":11919,"name":"Identifier","src":"25462:5:6"}],"id":11920,"name":"MemberAccess","src":"25462:12:6"}],"id":11921,"name":"BinaryOperation","src":"25458:16:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11915,"type":"uint256","value":"i"},"id":11922,"name":"Identifier","src":"25476:1:6"}],"id":11923,"name":"UnaryOperation","src":"25476:3:6"}],"id":11924,"name":"ExpressionStatement","src":"25476:3:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11904,"type":"uint256","value":"length"},"id":11925,"name":"Identifier","src":"25493:6:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10310,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct strings.slice memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11891,"type":"struct strings.slice memory[] memory","value":"parts"},"id":11926,"name":"Identifier","src":"25503:5:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11915,"type":"uint256","value":"i"},"id":11927,"name":"Identifier","src":"25509:1:6"}],"id":11928,"name":"IndexAccess","src":"25503:8:6"}],"id":11929,"name":"MemberAccess","src":"25503:13:6"}],"id":11930,"name":"Assignment","src":"25493:23:6"}],"id":11931,"name":"ExpressionStatement","src":"25493:23:6"}],"id":11932,"name":"ForStatement","src":"25442:74:6"},{"attributes":{"assignments":[11934]},"children":[{"attributes":{"constant":false,"name":"ret","scope":12000,"stateVariable":false,"storageLocation":"memory","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":11933,"name":"ElementaryTypeName","src":"25527:6:6"}],"id":11934,"name":"VariableDeclaration","src":"25527:17:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (string memory)"},"children":[{"attributes":{"name":"string","type":"string"},"id":11935,"name":"ElementaryTypeName","src":"25551:6:6"}],"id":11936,"name":"NewExpression","src":"25547:10:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11904,"type":"uint256","value":"length"},"id":11937,"name":"Identifier","src":"25558:6:6"}],"id":11938,"name":"FunctionCall","src":"25547:18:6"}],"id":11939,"name":"VariableDeclarationStatement","src":"25527:38:6"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"retptr","scope":12000,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":11940,"name":"ElementaryTypeName","src":"25575:4:6"}],"id":11941,"name":"VariableDeclaration","src":"25575:11:6"}],"id":11942,"name":"VariableDeclarationStatement","src":"25575:11:6"},{"attributes":{"externalReferences":[{"retptr":{"declaration":11941,"isOffset":false,"isSlot":false,"src":"25607:6:6","valueSize":1}},{"ret":{"declaration":11934,"isOffset":false,"isSlot":false,"src":"25621:3:6","valueSize":1}}],"operations":"{\n retptr := add(ret, 32)\n}"},"children":[],"id":11943,"name":"InlineAssembly","src":"25596:48:6"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11915,"type":"uint256","value":"i"},"id":11944,"name":"Identifier","src":"25645:1:6"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":11945,"name":"Literal","src":"25649:1:6"}],"id":11946,"name":"Assignment","src":"25645:5:6"}],"id":11947,"name":"ExpressionStatement","src":"25645:5:6"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11915,"type":"uint256","value":"i"},"id":11948,"name":"Identifier","src":"25652:1:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11891,"type":"struct strings.slice memory[] memory","value":"parts"},"id":11949,"name":"Identifier","src":"25656:5:6"}],"id":11950,"name":"MemberAccess","src":"25656:12:6"}],"id":11951,"name":"BinaryOperation","src":"25652:16:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11915,"type":"uint256","value":"i"},"id":11952,"name":"Identifier","src":"25670:1:6"}],"id":11953,"name":"UnaryOperation","src":"25670:3:6"}],"id":11954,"name":"ExpressionStatement","src":"25670:3:6"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":10353,"type":"function (uint256,uint256,uint256) pure","value":"memcpy"},"id":11955,"name":"Identifier","src":"25689:6:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11941,"type":"uint256","value":"retptr"},"id":11956,"name":"Identifier","src":"25696:6:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":10312,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct strings.slice memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11891,"type":"struct strings.slice memory[] memory","value":"parts"},"id":11957,"name":"Identifier","src":"25704:5:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11915,"type":"uint256","value":"i"},"id":11958,"name":"Identifier","src":"25710:1:6"}],"id":11959,"name":"IndexAccess","src":"25704:8:6"}],"id":11960,"name":"MemberAccess","src":"25704:13:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10310,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct strings.slice memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11891,"type":"struct strings.slice memory[] memory","value":"parts"},"id":11961,"name":"Identifier","src":"25719:5:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11915,"type":"uint256","value":"i"},"id":11962,"name":"Identifier","src":"25725:1:6"}],"id":11963,"name":"IndexAccess","src":"25719:8:6"}],"id":11964,"name":"MemberAccess","src":"25719:13:6"}],"id":11965,"name":"FunctionCall","src":"25689:44:6"}],"id":11966,"name":"ExpressionStatement","src":"25689:44:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11941,"type":"uint256","value":"retptr"},"id":11967,"name":"Identifier","src":"25747:6:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10310,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct strings.slice memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11891,"type":"struct strings.slice memory[] memory","value":"parts"},"id":11968,"name":"Identifier","src":"25757:5:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11915,"type":"uint256","value":"i"},"id":11969,"name":"Identifier","src":"25763:1:6"}],"id":11970,"name":"IndexAccess","src":"25757:8:6"}],"id":11971,"name":"MemberAccess","src":"25757:13:6"}],"id":11972,"name":"Assignment","src":"25747:23:6"}],"id":11973,"name":"ExpressionStatement","src":"25747:23:6"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11915,"type":"uint256","value":"i"},"id":11974,"name":"Identifier","src":"25788:1:6"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11891,"type":"struct strings.slice memory[] memory","value":"parts"},"id":11975,"name":"Identifier","src":"25792:5:6"}],"id":11976,"name":"MemberAccess","src":"25792:12:6"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":11977,"name":"Literal","src":"25807:1:6"}],"id":11978,"name":"BinaryOperation","src":"25792:16:6"}],"id":11979,"name":"BinaryOperation","src":"25788:20:6"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":10353,"type":"function (uint256,uint256,uint256) pure","value":"memcpy"},"id":11980,"name":"Identifier","src":"25828:6:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11941,"type":"uint256","value":"retptr"},"id":11981,"name":"Identifier","src":"25835:6:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":10312,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11888,"type":"struct strings.slice memory","value":"self"},"id":11982,"name":"Identifier","src":"25843:4:6"}],"id":11983,"name":"MemberAccess","src":"25843:9:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10310,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11888,"type":"struct strings.slice memory","value":"self"},"id":11984,"name":"Identifier","src":"25854:4:6"}],"id":11985,"name":"MemberAccess","src":"25854:9:6"}],"id":11986,"name":"FunctionCall","src":"25828:36:6"}],"id":11987,"name":"ExpressionStatement","src":"25828:36:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11941,"type":"uint256","value":"retptr"},"id":11988,"name":"Identifier","src":"25882:6:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10310,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11888,"type":"struct strings.slice memory","value":"self"},"id":11989,"name":"Identifier","src":"25892:4:6"}],"id":11990,"name":"MemberAccess","src":"25892:9:6"}],"id":11991,"name":"Assignment","src":"25882:19:6"}],"id":11992,"name":"ExpressionStatement","src":"25882:19:6"}],"id":11993,"name":"Block","src":"25810:106:6"}],"id":11994,"name":"IfStatement","src":"25784:132:6"}],"id":11995,"name":"Block","src":"25675:251:6"}],"id":11996,"name":"ForStatement","src":"25641:285:6"},{"attributes":{"functionReturnParameters":11895},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11934,"type":"string memory","value":"ret"},"id":11997,"name":"Identifier","src":"25943:3:6"}],"id":11998,"name":"Return","src":"25936:10:6"}],"id":11999,"name":"Block","src":"25323:630:6"}],"id":12000,"name":"FunctionDefinition","src":"25230:723:6"}],"id":12001,"name":"ContractDefinition","src":"2600:23355:6"}],"id":12002,"name":"SourceUnit","src":"2574:23382:6"}},"internals/claimable.sol":{"AST":{"attributes":{"absolutePath":"internals/claimable.sol","exportedSymbols":{"Claimable":[7626]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".25"]},"id":7575,"name":"PragmaDirective","src":"769:24:7"},{"attributes":{"SourceUnit":8666,"absolutePath":"externals/ERC20.sol","file":"../externals/ERC20.sol","scope":7627,"symbolAliases":[null],"unitAlias":""},"id":7576,"name":"ImportDirective","src":"795:32:7"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"contract","documentation":"@title Claimable, allowing contract to withdraw tokens accidentally sent to itself","fullyImplemented":true,"linearizedBaseContracts":[7626],"name":"Claimable","scope":7627},"children":[{"attributes":{"anonymous":false,"documentation":null,"name":"Claimed"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_to","scope":7584,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":7577,"name":"ElementaryTypeName","src":"957:7:7"}],"id":7578,"name":"VariableDeclaration","src":"957:11:7"},{"attributes":{"constant":false,"indexed":false,"name":"_asset","scope":7584,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":7579,"name":"ElementaryTypeName","src":"970:7:7"}],"id":7580,"name":"VariableDeclaration","src":"970:14:7"},{"attributes":{"constant":false,"indexed":false,"name":"_amount","scope":7584,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":7581,"name":"ElementaryTypeName","src":"986:4:7"}],"id":7582,"name":"VariableDeclaration","src":"986:12:7"}],"id":7583,"name":"ParameterList","src":"956:43:7"}],"id":7584,"name":"EventDefinition","src":"943:57:7"},{"attributes":{"constant":false,"documentation":"@dev This function is used to move tokens sent accidentally to this contract method.\n @dev The owner can chose the new destination address\n @param _to is the recipient's address.\n @param _asset is the address of an ERC20 token or 0x0 for ether.\n @param _amount is the amount to be transferred in base units.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_claim","payable":false,"scope":7626,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_to","scope":7625,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":7585,"name":"ElementaryTypeName","src":"1366:7:7"}],"id":7586,"name":"VariableDeclaration","src":"1366:11:7"},{"attributes":{"constant":false,"name":"_asset","scope":7625,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":7587,"name":"ElementaryTypeName","src":"1379:7:7"}],"id":7588,"name":"VariableDeclaration","src":"1379:14:7"},{"attributes":{"constant":false,"name":"_amount","scope":7625,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":7589,"name":"ElementaryTypeName","src":"1395:4:7"}],"id":7590,"name":"VariableDeclaration","src":"1395:12:7"}],"id":7591,"name":"ParameterList","src":"1365:43:7"},{"attributes":{"parameters":[null]},"children":[],"id":7592,"name":"ParameterList","src":"1418:0:7"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7588,"type":"address","value":"_asset"},"id":7593,"name":"Identifier","src":"1476:6:7"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":7594,"name":"ElementaryTypeNameExpression","src":"1486:7:7"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":7595,"name":"Literal","src":"1494:1:7"}],"id":7596,"name":"FunctionCall","src":"1486:10:7"}],"id":7597,"name":"BinaryOperation","src":"1476:20:7"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"transfer","referencedDeclaration":null,"type":"function (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7586,"type":"address","value":"_to"},"id":7598,"name":"Identifier","src":"1512:3:7"}],"id":7600,"name":"MemberAccess","src":"1512:12:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7590,"type":"uint256","value":"_amount"},"id":7601,"name":"Identifier","src":"1525:7:7"}],"id":7602,"name":"FunctionCall","src":"1512:21:7"}],"id":7603,"name":"ExpressionStatement","src":"1512:21:7"}],"id":7604,"name":"Block","src":"1498:46:7"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_bebbba0e3133c903fb13ff92bbd373380a11a38636d3fcb2a56e9eeaa3171b67","typeString":"literal_string \"ERC20 token transfer was unsuccessful\""}],"overloadedDeclarations":[12019,12020],"referencedDeclaration":12020,"type":"function (bool,string memory) pure","value":"require"},"id":7605,"name":"Identifier","src":"1564:7:7"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"transfer","referencedDeclaration":8653,"type":"function (address,uint256) external returns (bool)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract ERC20","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":8665,"type":"type(contract ERC20)","value":"ERC20"},"id":7606,"name":"Identifier","src":"1572:5:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7588,"type":"address","value":"_asset"},"id":7607,"name":"Identifier","src":"1578:6:7"}],"id":7608,"name":"FunctionCall","src":"1572:13:7"}],"id":7609,"name":"MemberAccess","src":"1572:22:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7586,"type":"address","value":"_to"},"id":7610,"name":"Identifier","src":"1595:3:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7590,"type":"uint256","value":"_amount"},"id":7611,"name":"Identifier","src":"1600:7:7"}],"id":7612,"name":"FunctionCall","src":"1572:36:7"},{"attributes":{"argumentTypes":null,"hexvalue":"455243323020746f6b656e207472616e736665722077617320756e7375636365737366756c","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"ERC20 token transfer was unsuccessful\"","value":"ERC20 token transfer was unsuccessful"},"id":7613,"name":"Literal","src":"1610:39:7"}],"id":7614,"name":"FunctionCall","src":"1564:86:7"}],"id":7615,"name":"ExpressionStatement","src":"1564:86:7"}],"id":7616,"name":"Block","src":"1550:111:7"}],"id":7617,"name":"IfStatement","src":"1472:189:7"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":7584,"type":"function (address,address,uint256)","value":"Claimed"},"id":7618,"name":"Identifier","src":"1676:7:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7586,"type":"address","value":"_to"},"id":7619,"name":"Identifier","src":"1684:3:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7588,"type":"address","value":"_asset"},"id":7620,"name":"Identifier","src":"1689:6:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7590,"type":"uint256","value":"_amount"},"id":7621,"name":"Identifier","src":"1697:7:7"}],"id":7622,"name":"FunctionCall","src":"1676:29:7"}],"id":7623,"name":"EmitStatement","src":"1671:34:7"}],"id":7624,"name":"Block","src":"1418:294:7"}],"id":7625,"name":"FunctionDefinition","src":"1350:362:7"}],"id":7626,"name":"ContractDefinition","src":"917:797:7"}],"id":7627,"name":"SourceUnit","src":"769:946:7"}},"internals/controllable.sol":{"AST":{"attributes":{"absolutePath":"internals/controllable.sol","exportedSymbols":{"Controllable":[7682]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".25"]},"id":7628,"name":"PragmaDirective","src":"772:24:8"},{"attributes":{"SourceUnit":9006,"absolutePath":"internals/controller.sol","file":"./controller.sol","scope":7683,"symbolAliases":[null],"unitAlias":""},"id":7629,"name":"ImportDirective","src":"798:26:8"},{"attributes":{"SourceUnit":7903,"absolutePath":"internals/ensResolvable.sol","file":"../internals/ensResolvable.sol","scope":7683,"symbolAliases":[null],"unitAlias":""},"id":7630,"name":"ImportDirective","src":"825:40:8"},{"attributes":{"contractDependencies":[7902],"contractKind":"contract","documentation":"@title Controllable implements access control functionality of the Controller found via ENS.","fullyImplemented":false,"linearizedBaseContracts":[7682,7902],"name":"Controllable","scope":7683},"children":[{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"ENSResolvable","referencedDeclaration":7902,"type":"contract ENSResolvable"},"id":7631,"name":"UserDefinedTypeName","src":"990:13:8"}],"id":7632,"name":"InheritanceSpecifier","src":"990:13:8"},{"attributes":{"constant":false,"name":"_controllerNode","scope":7682,"stateVariable":true,"storageLocation":"default","type":"bytes32","value":null,"visibility":"private"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":7633,"name":"ElementaryTypeName","src":"1087:7:8"}],"id":7634,"name":"VariableDeclaration","src":"1087:31:8"},{"attributes":{"constant":false,"documentation":"@notice Constructor initializes the controller contract object.\n @param _controllerNameHash_ is the ENS name hash of the Controller.","implemented":true,"isConstructor":true,"modifiers":[null],"name":"","payable":false,"scope":7682,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_controllerNameHash_","scope":7644,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":7635,"name":"ElementaryTypeName","src":"1285:7:8"}],"id":7636,"name":"VariableDeclaration","src":"1285:28:8"}],"id":7637,"name":"ParameterList","src":"1284:30:8"},{"attributes":{"parameters":[null]},"children":[],"id":7638,"name":"ParameterList","src":"1324:0:8"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7634,"type":"bytes32","value":"_controllerNode"},"id":7639,"name":"Identifier","src":"1334:15:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7636,"type":"bytes32","value":"_controllerNameHash_"},"id":7640,"name":"Identifier","src":"1352:20:8"}],"id":7641,"name":"Assignment","src":"1334:38:8"}],"id":7642,"name":"ExpressionStatement","src":"1334:38:8"}],"id":7643,"name":"Block","src":"1324:55:8"}],"id":7644,"name":"FunctionDefinition","src":"1273:106:8"},{"attributes":{"documentation":"@notice Checks if message sender is the controller.","name":"onlyController","visibility":"internal"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":7645,"name":"ParameterList","src":"1468:2:8"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_918bc5a096178f6e8c423f958a6008c4b24fd25b7a3ca0123b85463c61a2e566","typeString":"literal_string \"sender is not a controller\""}],"overloadedDeclarations":[12019,12020],"referencedDeclaration":12020,"type":"function (bool,string memory) pure","value":"require"},"id":7646,"name":"Identifier","src":"1481:7:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":7681,"type":"function (address) view returns (bool)","value":"_isController"},"id":7647,"name":"Identifier","src":"1489:13:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":12016,"type":"msg","value":"msg"},"id":7648,"name":"Identifier","src":"1503:3:8"}],"id":7649,"name":"MemberAccess","src":"1503:10:8"}],"id":7650,"name":"FunctionCall","src":"1489:25:8"},{"attributes":{"argumentTypes":null,"hexvalue":"73656e646572206973206e6f74206120636f6e74726f6c6c6572","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"sender is not a controller\"","value":"sender is not a controller"},"id":7651,"name":"Literal","src":"1516:28:8"}],"id":7652,"name":"FunctionCall","src":"1481:64:8"}],"id":7653,"name":"ExpressionStatement","src":"1481:64:8"},{"id":7654,"name":"PlaceholderStatement","src":"1555:1:8"}],"id":7655,"name":"Block","src":"1471:92:8"}],"id":7656,"name":"ModifierDefinition","src":"1445:118:8"},{"attributes":{"constant":true,"documentation":"@return the controller name hash registered in ENS.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"controllerNode","payable":false,"scope":7682,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":7657,"name":"ParameterList","src":"1652:2:8"},{"children":[{"attributes":{"constant":false,"name":"","scope":7664,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":7658,"name":"ElementaryTypeName","src":"1678:7:8"}],"id":7659,"name":"VariableDeclaration","src":"1678:7:8"}],"id":7660,"name":"ParameterList","src":"1677:9:8"},{"children":[{"attributes":{"functionReturnParameters":7660},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7634,"type":"bytes32","value":"_controllerNode"},"id":7661,"name":"Identifier","src":"1704:15:8"}],"id":7662,"name":"Return","src":"1697:22:8"}],"id":7663,"name":"Block","src":"1687:39:8"}],"id":7664,"name":"FunctionDefinition","src":"1629:97:8"},{"attributes":{"constant":true,"documentation":"@return true if the provided account is the controller.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_isController","payable":false,"scope":7682,"stateMutability":"view","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":7681,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":7665,"name":"ElementaryTypeName","src":"1819:7:8"}],"id":7666,"name":"VariableDeclaration","src":"1819:16:8"}],"id":7667,"name":"ParameterList","src":"1818:18:8"},{"children":[{"attributes":{"constant":false,"name":"","scope":7681,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":7668,"name":"ElementaryTypeName","src":"1860:4:8"}],"id":7669,"name":"VariableDeclaration","src":"1860:4:8"}],"id":7670,"name":"ParameterList","src":"1859:6:8"},{"children":[{"attributes":{"functionReturnParameters":7670},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"isController","referencedDeclaration":8675,"type":"function (address) view external returns (bool)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract IController","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":8676,"type":"type(contract IController)","value":"IController"},"id":7671,"name":"Identifier","src":"1883:11:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[null],"referencedDeclaration":7901,"type":"function (bytes32) view returns (address)","value":"_ensResolve"},"id":7672,"name":"Identifier","src":"1895:11:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7634,"type":"bytes32","value":"_controllerNode"},"id":7673,"name":"Identifier","src":"1907:15:8"}],"id":7674,"name":"FunctionCall","src":"1895:28:8"}],"id":7675,"name":"FunctionCall","src":"1883:41:8"}],"id":7676,"name":"MemberAccess","src":"1883:54:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7666,"type":"address","value":"_account"},"id":7677,"name":"Identifier","src":"1938:8:8"}],"id":7678,"name":"FunctionCall","src":"1883:64:8"}],"id":7679,"name":"Return","src":"1876:71:8"}],"id":7680,"name":"Block","src":"1866:88:8"}],"id":7681,"name":"FunctionDefinition","src":"1796:158:8"}],"id":7682,"name":"ContractDefinition","src":"965:992:8"}],"id":7683,"name":"SourceUnit","src":"772:1186:8"}},"internals/controller.sol":{"AST":{"attributes":{"absolutePath":"internals/controller.sol","exportedSymbols":{"Controller":[9005],"IController":[8676]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".25"]},"id":8667,"name":"PragmaDirective","src":"770:24:9"},{"attributes":{"SourceUnit":10307,"absolutePath":"internals/ownable.sol","file":"./ownable.sol","scope":9006,"symbolAliases":[null],"unitAlias":""},"id":8668,"name":"ImportDirective","src":"796:23:9"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"interface","documentation":"@title The IController interface provides access to the isController check.","fullyImplemented":false,"linearizedBaseContracts":[8676],"name":"IController","scope":9006},"children":[{"attributes":{"body":null,"constant":true,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"isController","payable":false,"scope":8676,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"","scope":8675,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":8669,"name":"ElementaryTypeName","src":"951:7:9"}],"id":8670,"name":"VariableDeclaration","src":"951:7:9"}],"id":8671,"name":"ParameterList","src":"950:9:9"},{"children":[{"attributes":{"constant":false,"name":"","scope":8675,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":8672,"name":"ElementaryTypeName","src":"983:4:9"}],"id":8673,"name":"VariableDeclaration","src":"983:4:9"}],"id":8674,"name":"ParameterList","src":"982:6:9"}],"id":8675,"name":"FunctionDefinition","src":"929:60:9"}],"id":8676,"name":"ContractDefinition","src":"901:90:9"},{"attributes":{"contractDependencies":[8676,10306],"contractKind":"contract","documentation":"@title Controller stores a list of controller addresses that can be used for authentication in other contracts.\n @notice The Controller implements a hierarchy of concepts, Owner, Admin, and the Controllers.\n @dev Owner can change the Admins\n @dev Admins and can the Controllers\n @dev Controllers are used by the application.","fullyImplemented":true,"linearizedBaseContracts":[9005,10306,8676],"name":"Controller","scope":9006},"children":[{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"IController","referencedDeclaration":8676,"type":"contract IController"},"id":8677,"name":"UserDefinedTypeName","src":"1358:11:9"}],"id":8678,"name":"InheritanceSpecifier","src":"1358:11:9"},{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"Ownable","referencedDeclaration":10306,"type":"contract Ownable"},"id":8679,"name":"UserDefinedTypeName","src":"1371:7:9"}],"id":8680,"name":"InheritanceSpecifier","src":"1371:7:9"},{"attributes":{"anonymous":false,"documentation":null,"name":"AddedController"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_sender","scope":8686,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":8681,"name":"ElementaryTypeName","src":"1408:7:9"}],"id":8682,"name":"VariableDeclaration","src":"1408:15:9"},{"attributes":{"constant":false,"indexed":false,"name":"_controller","scope":8686,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":8683,"name":"ElementaryTypeName","src":"1425:7:9"}],"id":8684,"name":"VariableDeclaration","src":"1425:19:9"}],"id":8685,"name":"ParameterList","src":"1407:38:9"}],"id":8686,"name":"EventDefinition","src":"1386:60:9"},{"attributes":{"anonymous":false,"documentation":null,"name":"RemovedController"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_sender","scope":8692,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":8687,"name":"ElementaryTypeName","src":"1475:7:9"}],"id":8688,"name":"VariableDeclaration","src":"1475:15:9"},{"attributes":{"constant":false,"indexed":false,"name":"_controller","scope":8692,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":8689,"name":"ElementaryTypeName","src":"1492:7:9"}],"id":8690,"name":"VariableDeclaration","src":"1492:19:9"}],"id":8691,"name":"ParameterList","src":"1474:38:9"}],"id":8692,"name":"EventDefinition","src":"1451:62:9"},{"attributes":{"anonymous":false,"documentation":null,"name":"AddedAdmin"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_sender","scope":8698,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":8693,"name":"ElementaryTypeName","src":"1536:7:9"}],"id":8694,"name":"VariableDeclaration","src":"1536:15:9"},{"attributes":{"constant":false,"indexed":false,"name":"_admin","scope":8698,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":8695,"name":"ElementaryTypeName","src":"1553:7:9"}],"id":8696,"name":"VariableDeclaration","src":"1553:14:9"}],"id":8697,"name":"ParameterList","src":"1535:33:9"}],"id":8698,"name":"EventDefinition","src":"1519:50:9"},{"attributes":{"anonymous":false,"documentation":null,"name":"RemovedAdmin"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_sender","scope":8704,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":8699,"name":"ElementaryTypeName","src":"1593:7:9"}],"id":8700,"name":"VariableDeclaration","src":"1593:15:9"},{"attributes":{"constant":false,"indexed":false,"name":"_admin","scope":8704,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":8701,"name":"ElementaryTypeName","src":"1610:7:9"}],"id":8702,"name":"VariableDeclaration","src":"1610:14:9"}],"id":8703,"name":"ParameterList","src":"1592:33:9"}],"id":8704,"name":"EventDefinition","src":"1574:52:9"},{"attributes":{"constant":false,"name":"_isAdmin","scope":9005,"stateVariable":true,"storageLocation":"default","type":"mapping(address => bool)","value":null,"visibility":"private"},"children":[{"attributes":{"type":"mapping(address => bool)"},"children":[{"attributes":{"name":"address","type":"address"},"id":8705,"name":"ElementaryTypeName","src":"1641:7:9"},{"attributes":{"name":"bool","type":"bool"},"id":8706,"name":"ElementaryTypeName","src":"1652:4:9"}],"id":8707,"name":"Mapping","src":"1632:25:9"}],"id":8708,"name":"VariableDeclaration","src":"1632:42:9"},{"attributes":{"constant":false,"name":"_adminCount","scope":9005,"stateVariable":true,"storageLocation":"default","type":"uint256","value":null,"visibility":"private"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":8709,"name":"ElementaryTypeName","src":"1680:4:9"}],"id":8710,"name":"VariableDeclaration","src":"1680:24:9"},{"attributes":{"constant":false,"name":"_isController","scope":9005,"stateVariable":true,"storageLocation":"default","type":"mapping(address => bool)","value":null,"visibility":"private"},"children":[{"attributes":{"type":"mapping(address => bool)"},"children":[{"attributes":{"name":"address","type":"address"},"id":8711,"name":"ElementaryTypeName","src":"1720:7:9"},{"attributes":{"name":"bool","type":"bool"},"id":8712,"name":"ElementaryTypeName","src":"1731:4:9"}],"id":8713,"name":"Mapping","src":"1711:25:9"}],"id":8714,"name":"VariableDeclaration","src":"1711:47:9"},{"attributes":{"constant":false,"name":"_controllerCount","scope":9005,"stateVariable":true,"storageLocation":"default","type":"uint256","value":null,"visibility":"private"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":8715,"name":"ElementaryTypeName","src":"1764:4:9"}],"id":8716,"name":"VariableDeclaration","src":"1764:29:9"},{"attributes":{"constant":false,"documentation":"@notice Constructor initializes the owner with the provided address.\n @param _ownerAddress_ address of the owner.\n @param _transferable_ indicates whether the contract ownership can be transferred.","implemented":true,"isConstructor":true,"name":"","payable":false,"scope":9005,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"_ownerAddress_","scope":8728,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":8717,"name":"ElementaryTypeName","src":"2032:7:9"}],"id":8718,"name":"VariableDeclaration","src":"2032:22:9"},{"attributes":{"constant":false,"name":"_transferable_","scope":8728,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":8719,"name":"ElementaryTypeName","src":"2056:4:9"}],"id":8720,"name":"VariableDeclaration","src":"2056:19:9"}],"id":8721,"name":"ParameterList","src":"2031:45:9"},{"attributes":{"parameters":[null]},"children":[],"id":8726,"name":"ParameterList","src":"2124:0:9"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10306,"type":"type(contract Ownable)","value":"Ownable"},"id":8722,"name":"Identifier","src":"2077:7:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8718,"type":"address","value":"_ownerAddress_"},"id":8723,"name":"Identifier","src":"2085:14:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8720,"type":"bool","value":"_transferable_"},"id":8724,"name":"Identifier","src":"2101:14:9"}],"id":8725,"name":"ModifierInvocation","src":"2077:39:9"},{"attributes":{"statements":[null]},"children":[],"id":8727,"name":"Block","src":"2124:3:9"}],"id":8728,"name":"FunctionDefinition","src":"2020:107:9"},{"attributes":{"documentation":"@notice Checks if message sender is an admin.","name":"onlyAdmin","visibility":"internal"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":8729,"name":"ParameterList","src":"2205:2:9"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_156cbb05733026f4aa0b363c6a3be5f21b7ab8f248a865cc639a4d928ddeabb8","typeString":"literal_string \"sender is not an admin\""}],"overloadedDeclarations":[12019,12020],"referencedDeclaration":12020,"type":"function (bool,string memory) pure","value":"require"},"id":8730,"name":"Identifier","src":"2218:7:9"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":8828,"type":"function (address) view returns (bool)","value":"isAdmin"},"id":8731,"name":"Identifier","src":"2226:7:9"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":12016,"type":"msg","value":"msg"},"id":8732,"name":"Identifier","src":"2234:3:9"}],"id":8733,"name":"MemberAccess","src":"2234:10:9"}],"id":8734,"name":"FunctionCall","src":"2226:19:9"},{"attributes":{"argumentTypes":null,"hexvalue":"73656e646572206973206e6f7420616e2061646d696e","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"sender is not an admin\"","value":"sender is not an admin"},"id":8735,"name":"Literal","src":"2247:24:9"}],"id":8736,"name":"FunctionCall","src":"2218:54:9"}],"id":8737,"name":"ExpressionStatement","src":"2218:54:9"},{"id":8738,"name":"PlaceholderStatement","src":"2282:1:9"}],"id":8739,"name":"Block","src":"2208:82:9"}],"id":8740,"name":"ModifierDefinition","src":"2187:103:9"},{"attributes":{"documentation":"@notice Checks if message sender is a controller.","name":"onlyController","visibility":"internal"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":8741,"name":"ParameterList","src":"2377:2:9"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_918bc5a096178f6e8c423f958a6008c4b24fd25b7a3ca0123b85463c61a2e566","typeString":"literal_string \"sender is not a controller\""}],"overloadedDeclarations":[12019,12020],"referencedDeclaration":12020,"type":"function (bool,string memory) pure","value":"require"},"id":8742,"name":"Identifier","src":"2390:7:9"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":8840,"type":"function (address) view returns (bool)","value":"isController"},"id":8743,"name":"Identifier","src":"2398:12:9"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":12016,"type":"msg","value":"msg"},"id":8744,"name":"Identifier","src":"2411:3:9"}],"id":8745,"name":"MemberAccess","src":"2411:10:9"}],"id":8746,"name":"FunctionCall","src":"2398:24:9"},{"attributes":{"argumentTypes":null,"hexvalue":"73656e646572206973206e6f74206120636f6e74726f6c6c6572","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"sender is not a controller\"","value":"sender is not a controller"},"id":8747,"name":"Literal","src":"2424:28:9"}],"id":8748,"name":"FunctionCall","src":"2390:63:9"}],"id":8749,"name":"ExpressionStatement","src":"2390:63:9"},{"id":8750,"name":"PlaceholderStatement","src":"2463:1:9"}],"id":8751,"name":"Block","src":"2380:91:9"}],"id":8752,"name":"ModifierDefinition","src":"2354:117:9"},{"attributes":{"constant":false,"documentation":"@notice Add a new admin to the list of admins.\n @param _account address to add to the list of admins.","implemented":true,"isConstructor":false,"name":"addAdmin","payable":false,"scope":9005,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":8764,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":8753,"name":"ElementaryTypeName","src":"2612:7:9"}],"id":8754,"name":"VariableDeclaration","src":"2612:16:9"}],"id":8755,"name":"ParameterList","src":"2611:18:9"},{"attributes":{"parameters":[null]},"children":[],"id":8758,"name":"ParameterList","src":"2649:0:9"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10208,"type":"modifier ()","value":"onlyOwner"},"id":8756,"name":"Identifier","src":"2639:9:9"}],"id":8757,"name":"ModifierInvocation","src":"2639:9:9"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":8894,"type":"function (address)","value":"_addAdmin"},"id":8759,"name":"Identifier","src":"2659:9:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8754,"type":"address","value":"_account"},"id":8760,"name":"Identifier","src":"2669:8:9"}],"id":8761,"name":"FunctionCall","src":"2659:19:9"}],"id":8762,"name":"ExpressionStatement","src":"2659:19:9"}],"id":8763,"name":"Block","src":"2649:36:9"}],"id":8764,"name":"FunctionDefinition","src":"2594:91:9"},{"attributes":{"constant":false,"documentation":"@notice Remove a admin from the list of admins.\n @param _account address to remove from the list of admins.","implemented":true,"isConstructor":false,"name":"removeAdmin","payable":false,"scope":9005,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":8776,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":8765,"name":"ElementaryTypeName","src":"2835:7:9"}],"id":8766,"name":"VariableDeclaration","src":"2835:16:9"}],"id":8767,"name":"ParameterList","src":"2834:18:9"},{"attributes":{"parameters":[null]},"children":[],"id":8770,"name":"ParameterList","src":"2872:0:9"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10208,"type":"modifier ()","value":"onlyOwner"},"id":8768,"name":"Identifier","src":"2862:9:9"}],"id":8769,"name":"ModifierInvocation","src":"2862:9:9"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":8922,"type":"function (address)","value":"_removeAdmin"},"id":8771,"name":"Identifier","src":"2882:12:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8766,"type":"address","value":"_account"},"id":8772,"name":"Identifier","src":"2895:8:9"}],"id":8773,"name":"FunctionCall","src":"2882:22:9"}],"id":8774,"name":"ExpressionStatement","src":"2882:22:9"}],"id":8775,"name":"Block","src":"2872:39:9"}],"id":8776,"name":"FunctionDefinition","src":"2814:97:9"},{"attributes":{"constant":true,"documentation":"@return the current number of admins.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"adminCount","payable":false,"scope":9005,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":8777,"name":"ParameterList","src":"2982:2:9"},{"children":[{"attributes":{"constant":false,"name":"","scope":8784,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":8778,"name":"ElementaryTypeName","src":"3008:4:9"}],"id":8779,"name":"VariableDeclaration","src":"3008:4:9"}],"id":8780,"name":"ParameterList","src":"3007:6:9"},{"children":[{"attributes":{"functionReturnParameters":8780},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8710,"type":"uint256","value":"_adminCount"},"id":8781,"name":"Identifier","src":"3031:11:9"}],"id":8782,"name":"Return","src":"3024:18:9"}],"id":8783,"name":"Block","src":"3014:35:9"}],"id":8784,"name":"FunctionDefinition","src":"2963:86:9"},{"attributes":{"constant":false,"documentation":"@notice Add a new controller to the list of controllers.\n @param _account address to add to the list of controllers.","implemented":true,"isConstructor":false,"name":"addController","payable":false,"scope":9005,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":8796,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":8785,"name":"ElementaryTypeName","src":"3210:7:9"}],"id":8786,"name":"VariableDeclaration","src":"3210:16:9"}],"id":8787,"name":"ParameterList","src":"3209:18:9"},{"attributes":{"parameters":[null]},"children":[],"id":8790,"name":"ParameterList","src":"3247:0:9"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8740,"type":"modifier ()","value":"onlyAdmin"},"id":8788,"name":"Identifier","src":"3237:9:9"}],"id":8789,"name":"ModifierInvocation","src":"3237:9:9"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":8976,"type":"function (address)","value":"_addController"},"id":8791,"name":"Identifier","src":"3257:14:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8786,"type":"address","value":"_account"},"id":8792,"name":"Identifier","src":"3272:8:9"}],"id":8793,"name":"FunctionCall","src":"3257:24:9"}],"id":8794,"name":"ExpressionStatement","src":"3257:24:9"}],"id":8795,"name":"Block","src":"3247:41:9"}],"id":8796,"name":"FunctionDefinition","src":"3187:101:9"},{"attributes":{"constant":false,"documentation":"@notice Remove a controller from the list of controllers.\n @param _account address to remove from the list of controllers.","implemented":true,"isConstructor":false,"name":"removeController","payable":false,"scope":9005,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":8808,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":8797,"name":"ElementaryTypeName","src":"3458:7:9"}],"id":8798,"name":"VariableDeclaration","src":"3458:16:9"}],"id":8799,"name":"ParameterList","src":"3457:18:9"},{"attributes":{"parameters":[null]},"children":[],"id":8802,"name":"ParameterList","src":"3495:0:9"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8740,"type":"modifier ()","value":"onlyAdmin"},"id":8800,"name":"Identifier","src":"3485:9:9"}],"id":8801,"name":"ModifierInvocation","src":"3485:9:9"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":9004,"type":"function (address)","value":"_removeController"},"id":8803,"name":"Identifier","src":"3505:17:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8798,"type":"address","value":"_account"},"id":8804,"name":"Identifier","src":"3523:8:9"}],"id":8805,"name":"FunctionCall","src":"3505:27:9"}],"id":8806,"name":"ExpressionStatement","src":"3505:27:9"}],"id":8807,"name":"Block","src":"3495:44:9"}],"id":8808,"name":"FunctionDefinition","src":"3432:107:9"},{"attributes":{"constant":true,"documentation":"@notice count the Controllers\n @return the current number of controllers.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"controllerCount","payable":false,"scope":9005,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":8809,"name":"ParameterList","src":"3658:2:9"},{"children":[{"attributes":{"constant":false,"name":"","scope":8816,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":8810,"name":"ElementaryTypeName","src":"3684:4:9"}],"id":8811,"name":"VariableDeclaration","src":"3684:4:9"}],"id":8812,"name":"ParameterList","src":"3683:6:9"},{"children":[{"attributes":{"functionReturnParameters":8812},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8716,"type":"uint256","value":"_controllerCount"},"id":8813,"name":"Identifier","src":"3707:16:9"}],"id":8814,"name":"Return","src":"3700:23:9"}],"id":8815,"name":"Block","src":"3690:40:9"}],"id":8816,"name":"FunctionDefinition","src":"3634:96:9"},{"attributes":{"constant":true,"documentation":"@notice is an address an Admin?\n @return true if the provided account is an admin.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"isAdmin","payable":false,"scope":9005,"stateMutability":"view","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":8828,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":8817,"name":"ElementaryTypeName","src":"3851:7:9"}],"id":8818,"name":"VariableDeclaration","src":"3851:16:9"}],"id":8819,"name":"ParameterList","src":"3850:18:9"},{"children":[{"attributes":{"constant":false,"name":"","scope":8828,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":8820,"name":"ElementaryTypeName","src":"3890:4:9"}],"id":8821,"name":"VariableDeclaration","src":"3890:4:9"}],"id":8822,"name":"ParameterList","src":"3889:6:9"},{"children":[{"attributes":{"functionReturnParameters":8822},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8708,"type":"mapping(address => bool)","value":"_isAdmin"},"id":8823,"name":"Identifier","src":"3913:8:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8818,"type":"address","value":"_account"},"id":8824,"name":"Identifier","src":"3922:8:9"}],"id":8825,"name":"IndexAccess","src":"3913:18:9"}],"id":8826,"name":"Return","src":"3906:25:9"}],"id":8827,"name":"Block","src":"3896:42:9"}],"id":8828,"name":"FunctionDefinition","src":"3834:104:9"},{"attributes":{"constant":true,"documentation":"@notice is an address a Controller?\n @return true if the provided account is a controller.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"isController","payable":false,"scope":9005,"stateMutability":"view","superFunction":8675,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":8840,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":8829,"name":"ElementaryTypeName","src":"4072:7:9"}],"id":8830,"name":"VariableDeclaration","src":"4072:16:9"}],"id":8831,"name":"ParameterList","src":"4071:18:9"},{"children":[{"attributes":{"constant":false,"name":"","scope":8840,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":8832,"name":"ElementaryTypeName","src":"4111:4:9"}],"id":8833,"name":"VariableDeclaration","src":"4111:4:9"}],"id":8834,"name":"ParameterList","src":"4110:6:9"},{"children":[{"attributes":{"functionReturnParameters":8834},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8714,"type":"mapping(address => bool)","value":"_isController"},"id":8835,"name":"Identifier","src":"4134:13:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8830,"type":"address","value":"_account"},"id":8836,"name":"Identifier","src":"4148:8:9"}],"id":8837,"name":"IndexAccess","src":"4134:23:9"}],"id":8838,"name":"Return","src":"4127:30:9"}],"id":8839,"name":"Block","src":"4117:47:9"}],"id":8840,"name":"FunctionDefinition","src":"4050:114:9"},{"attributes":{"constant":false,"documentation":"@notice Internal-only function that adds a new admin.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_addAdmin","payable":false,"scope":9005,"stateMutability":"nonpayable","superFunction":null,"visibility":"private"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":8894,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":8841,"name":"ElementaryTypeName","src":"4251:7:9"}],"id":8842,"name":"VariableDeclaration","src":"4251:16:9"}],"id":8843,"name":"ParameterList","src":"4250:18:9"},{"attributes":{"parameters":[null]},"children":[],"id":8844,"name":"ParameterList","src":"4277:0:9"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_491ef411eef1615ecf908753bd22ae846aac933d79b0327335a18e3988db6215","typeString":"literal_string \"provided account is already an admin\""}],"overloadedDeclarations":[12019,12020],"referencedDeclaration":12020,"type":"function (bool,string memory) pure","value":"require"},"id":8845,"name":"Identifier","src":"4287:7:9"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8708,"type":"mapping(address => bool)","value":"_isAdmin"},"id":8846,"name":"Identifier","src":"4296:8:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8842,"type":"address","value":"_account"},"id":8847,"name":"Identifier","src":"4305:8:9"}],"id":8848,"name":"IndexAccess","src":"4296:18:9"}],"id":8849,"name":"UnaryOperation","src":"4295:19:9"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e7420697320616c726561647920616e2061646d696e","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is already an admin\"","value":"provided account is already an admin"},"id":8850,"name":"Literal","src":"4316:38:9"}],"id":8851,"name":"FunctionCall","src":"4287:68:9"}],"id":8852,"name":"ExpressionStatement","src":"4287:68:9"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ea5e43d1c86e3916e6efb6c5ad4a915069293195e26cfb0847e731b480c61b69","typeString":"literal_string \"provided account is already a controller\""}],"overloadedDeclarations":[12019,12020],"referencedDeclaration":12020,"type":"function (bool,string memory) pure","value":"require"},"id":8853,"name":"Identifier","src":"4365:7:9"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8714,"type":"mapping(address => bool)","value":"_isController"},"id":8854,"name":"Identifier","src":"4374:13:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8842,"type":"address","value":"_account"},"id":8855,"name":"Identifier","src":"4388:8:9"}],"id":8856,"name":"IndexAccess","src":"4374:23:9"}],"id":8857,"name":"UnaryOperation","src":"4373:24:9"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e7420697320616c7265616479206120636f6e74726f6c6c6572","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is already a controller\"","value":"provided account is already a controller"},"id":8858,"name":"Literal","src":"4399:42:9"}],"id":8859,"name":"FunctionCall","src":"4365:77:9"}],"id":8860,"name":"ExpressionStatement","src":"4365:77:9"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_28b510b314348cd3eee423698115cd76923e2c39fff2abeefc9606aa1cd4c741","typeString":"literal_string \"provided account is already the owner\""}],"overloadedDeclarations":[12019,12020],"referencedDeclaration":12020,"type":"function (bool,string memory) pure","value":"require"},"id":8861,"name":"Identifier","src":"4452:7:9"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":10305,"type":"function (address) view returns (bool)","value":"_isOwner"},"id":8862,"name":"Identifier","src":"4461:8:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8842,"type":"address","value":"_account"},"id":8863,"name":"Identifier","src":"4470:8:9"}],"id":8864,"name":"FunctionCall","src":"4461:18:9"}],"id":8865,"name":"UnaryOperation","src":"4460:19:9"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e7420697320616c726561647920746865206f776e6572","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is already the owner\"","value":"provided account is already the owner"},"id":8866,"name":"Literal","src":"4481:39:9"}],"id":8867,"name":"FunctionCall","src":"4452:69:9"}],"id":8868,"name":"ExpressionStatement","src":"4452:69:9"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_da72d12cc1dab77bb87826430977e9a5d381ba54a70ad14cb2761e202f01ff3b","typeString":"literal_string \"provided account is the zero address\""}],"overloadedDeclarations":[12019,12020],"referencedDeclaration":12020,"type":"function (bool,string memory) pure","value":"require"},"id":8869,"name":"Identifier","src":"4531:7:9"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8842,"type":"address","value":"_account"},"id":8870,"name":"Identifier","src":"4539:8:9"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":8871,"name":"ElementaryTypeNameExpression","src":"4551:7:9"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":8872,"name":"Literal","src":"4559:1:9"}],"id":8873,"name":"FunctionCall","src":"4551:10:9"}],"id":8874,"name":"BinaryOperation","src":"4539:22:9"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e7420697320746865207a65726f2061646472657373","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is the zero address\"","value":"provided account is the zero address"},"id":8875,"name":"Literal","src":"4563:38:9"}],"id":8876,"name":"FunctionCall","src":"4531:71:9"}],"id":8877,"name":"ExpressionStatement","src":"4531:71:9"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8708,"type":"mapping(address => bool)","value":"_isAdmin"},"id":8878,"name":"Identifier","src":"4612:8:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8842,"type":"address","value":"_account"},"id":8879,"name":"Identifier","src":"4621:8:9"}],"id":8880,"name":"IndexAccess","src":"4612:18:9"},{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":8881,"name":"Literal","src":"4633:4:9"}],"id":8882,"name":"Assignment","src":"4612:25:9"}],"id":8883,"name":"ExpressionStatement","src":"4612:25:9"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8710,"type":"uint256","value":"_adminCount"},"id":8884,"name":"Identifier","src":"4647:11:9"}],"id":8885,"name":"UnaryOperation","src":"4647:13:9"}],"id":8886,"name":"ExpressionStatement","src":"4647:13:9"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":8698,"type":"function (address,address)","value":"AddedAdmin"},"id":8887,"name":"Identifier","src":"4675:10:9"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":12016,"type":"msg","value":"msg"},"id":8888,"name":"Identifier","src":"4686:3:9"}],"id":8889,"name":"MemberAccess","src":"4686:10:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8842,"type":"address","value":"_account"},"id":8890,"name":"Identifier","src":"4698:8:9"}],"id":8891,"name":"FunctionCall","src":"4675:32:9"}],"id":8892,"name":"EmitStatement","src":"4670:37:9"}],"id":8893,"name":"Block","src":"4277:437:9"}],"id":8894,"name":"FunctionDefinition","src":"4232:482:9"},{"attributes":{"constant":false,"documentation":"@notice Internal-only function that removes an existing admin.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_removeAdmin","payable":false,"scope":9005,"stateMutability":"nonpayable","superFunction":null,"visibility":"private"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":8922,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":8895,"name":"ElementaryTypeName","src":"4813:7:9"}],"id":8896,"name":"VariableDeclaration","src":"4813:16:9"}],"id":8897,"name":"ParameterList","src":"4812:18:9"},{"attributes":{"parameters":[null]},"children":[],"id":8898,"name":"ParameterList","src":"4839:0:9"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1c739c60677de73f71e20970ace8544e82a98bdcd16e21df5754e7a2756cbedc","typeString":"literal_string \"provided account is not an admin\""}],"overloadedDeclarations":[12019,12020],"referencedDeclaration":12020,"type":"function (bool,string memory) pure","value":"require"},"id":8899,"name":"Identifier","src":"4849:7:9"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8708,"type":"mapping(address => bool)","value":"_isAdmin"},"id":8900,"name":"Identifier","src":"4857:8:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8896,"type":"address","value":"_account"},"id":8901,"name":"Identifier","src":"4866:8:9"}],"id":8902,"name":"IndexAccess","src":"4857:18:9"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e74206973206e6f7420616e2061646d696e","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is not an admin\"","value":"provided account is not an admin"},"id":8903,"name":"Literal","src":"4877:34:9"}],"id":8904,"name":"FunctionCall","src":"4849:63:9"}],"id":8905,"name":"ExpressionStatement","src":"4849:63:9"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8708,"type":"mapping(address => bool)","value":"_isAdmin"},"id":8906,"name":"Identifier","src":"4922:8:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8896,"type":"address","value":"_account"},"id":8907,"name":"Identifier","src":"4931:8:9"}],"id":8908,"name":"IndexAccess","src":"4922:18:9"},{"attributes":{"argumentTypes":null,"hexvalue":"66616c7365","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"false"},"id":8909,"name":"Literal","src":"4943:5:9"}],"id":8910,"name":"Assignment","src":"4922:26:9"}],"id":8911,"name":"ExpressionStatement","src":"4922:26:9"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"--","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8710,"type":"uint256","value":"_adminCount"},"id":8912,"name":"Identifier","src":"4958:11:9"}],"id":8913,"name":"UnaryOperation","src":"4958:13:9"}],"id":8914,"name":"ExpressionStatement","src":"4958:13:9"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":8704,"type":"function (address,address)","value":"RemovedAdmin"},"id":8915,"name":"Identifier","src":"4986:12:9"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":12016,"type":"msg","value":"msg"},"id":8916,"name":"Identifier","src":"4999:3:9"}],"id":8917,"name":"MemberAccess","src":"4999:10:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8896,"type":"address","value":"_account"},"id":8918,"name":"Identifier","src":"5011:8:9"}],"id":8919,"name":"FunctionCall","src":"4986:34:9"}],"id":8920,"name":"EmitStatement","src":"4981:39:9"}],"id":8921,"name":"Block","src":"4839:188:9"}],"id":8922,"name":"FunctionDefinition","src":"4791:236:9"},{"attributes":{"constant":false,"documentation":"@notice Internal-only function that adds a new controller.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_addController","payable":false,"scope":9005,"stateMutability":"nonpayable","superFunction":null,"visibility":"private"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":8976,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":8923,"name":"ElementaryTypeName","src":"5124:7:9"}],"id":8924,"name":"VariableDeclaration","src":"5124:16:9"}],"id":8925,"name":"ParameterList","src":"5123:18:9"},{"attributes":{"parameters":[null]},"children":[],"id":8926,"name":"ParameterList","src":"5150:0:9"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_491ef411eef1615ecf908753bd22ae846aac933d79b0327335a18e3988db6215","typeString":"literal_string \"provided account is already an admin\""}],"overloadedDeclarations":[12019,12020],"referencedDeclaration":12020,"type":"function (bool,string memory) pure","value":"require"},"id":8927,"name":"Identifier","src":"5160:7:9"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8708,"type":"mapping(address => bool)","value":"_isAdmin"},"id":8928,"name":"Identifier","src":"5169:8:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8924,"type":"address","value":"_account"},"id":8929,"name":"Identifier","src":"5178:8:9"}],"id":8930,"name":"IndexAccess","src":"5169:18:9"}],"id":8931,"name":"UnaryOperation","src":"5168:19:9"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e7420697320616c726561647920616e2061646d696e","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is already an admin\"","value":"provided account is already an admin"},"id":8932,"name":"Literal","src":"5189:38:9"}],"id":8933,"name":"FunctionCall","src":"5160:68:9"}],"id":8934,"name":"ExpressionStatement","src":"5160:68:9"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ea5e43d1c86e3916e6efb6c5ad4a915069293195e26cfb0847e731b480c61b69","typeString":"literal_string \"provided account is already a controller\""}],"overloadedDeclarations":[12019,12020],"referencedDeclaration":12020,"type":"function (bool,string memory) pure","value":"require"},"id":8935,"name":"Identifier","src":"5238:7:9"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8714,"type":"mapping(address => bool)","value":"_isController"},"id":8936,"name":"Identifier","src":"5247:13:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8924,"type":"address","value":"_account"},"id":8937,"name":"Identifier","src":"5261:8:9"}],"id":8938,"name":"IndexAccess","src":"5247:23:9"}],"id":8939,"name":"UnaryOperation","src":"5246:24:9"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e7420697320616c7265616479206120636f6e74726f6c6c6572","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is already a controller\"","value":"provided account is already a controller"},"id":8940,"name":"Literal","src":"5272:42:9"}],"id":8941,"name":"FunctionCall","src":"5238:77:9"}],"id":8942,"name":"ExpressionStatement","src":"5238:77:9"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_28b510b314348cd3eee423698115cd76923e2c39fff2abeefc9606aa1cd4c741","typeString":"literal_string \"provided account is already the owner\""}],"overloadedDeclarations":[12019,12020],"referencedDeclaration":12020,"type":"function (bool,string memory) pure","value":"require"},"id":8943,"name":"Identifier","src":"5325:7:9"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":10305,"type":"function (address) view returns (bool)","value":"_isOwner"},"id":8944,"name":"Identifier","src":"5334:8:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8924,"type":"address","value":"_account"},"id":8945,"name":"Identifier","src":"5343:8:9"}],"id":8946,"name":"FunctionCall","src":"5334:18:9"}],"id":8947,"name":"UnaryOperation","src":"5333:19:9"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e7420697320616c726561647920746865206f776e6572","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is already the owner\"","value":"provided account is already the owner"},"id":8948,"name":"Literal","src":"5354:39:9"}],"id":8949,"name":"FunctionCall","src":"5325:69:9"}],"id":8950,"name":"ExpressionStatement","src":"5325:69:9"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_da72d12cc1dab77bb87826430977e9a5d381ba54a70ad14cb2761e202f01ff3b","typeString":"literal_string \"provided account is the zero address\""}],"overloadedDeclarations":[12019,12020],"referencedDeclaration":12020,"type":"function (bool,string memory) pure","value":"require"},"id":8951,"name":"Identifier","src":"5404:7:9"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8924,"type":"address","value":"_account"},"id":8952,"name":"Identifier","src":"5412:8:9"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":8953,"name":"ElementaryTypeNameExpression","src":"5424:7:9"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":8954,"name":"Literal","src":"5432:1:9"}],"id":8955,"name":"FunctionCall","src":"5424:10:9"}],"id":8956,"name":"BinaryOperation","src":"5412:22:9"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e7420697320746865207a65726f2061646472657373","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is the zero address\"","value":"provided account is the zero address"},"id":8957,"name":"Literal","src":"5436:38:9"}],"id":8958,"name":"FunctionCall","src":"5404:71:9"}],"id":8959,"name":"ExpressionStatement","src":"5404:71:9"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8714,"type":"mapping(address => bool)","value":"_isController"},"id":8960,"name":"Identifier","src":"5485:13:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8924,"type":"address","value":"_account"},"id":8961,"name":"Identifier","src":"5499:8:9"}],"id":8962,"name":"IndexAccess","src":"5485:23:9"},{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":8963,"name":"Literal","src":"5511:4:9"}],"id":8964,"name":"Assignment","src":"5485:30:9"}],"id":8965,"name":"ExpressionStatement","src":"5485:30:9"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8716,"type":"uint256","value":"_controllerCount"},"id":8966,"name":"Identifier","src":"5525:16:9"}],"id":8967,"name":"UnaryOperation","src":"5525:18:9"}],"id":8968,"name":"ExpressionStatement","src":"5525:18:9"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":8686,"type":"function (address,address)","value":"AddedController"},"id":8969,"name":"Identifier","src":"5558:15:9"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":12016,"type":"msg","value":"msg"},"id":8970,"name":"Identifier","src":"5574:3:9"}],"id":8971,"name":"MemberAccess","src":"5574:10:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8924,"type":"address","value":"_account"},"id":8972,"name":"Identifier","src":"5586:8:9"}],"id":8973,"name":"FunctionCall","src":"5558:37:9"}],"id":8974,"name":"EmitStatement","src":"5553:42:9"}],"id":8975,"name":"Block","src":"5150:452:9"}],"id":8976,"name":"FunctionDefinition","src":"5100:502:9"},{"attributes":{"constant":false,"documentation":"@notice Internal-only function that removes an existing controller.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_removeController","payable":false,"scope":9005,"stateMutability":"nonpayable","superFunction":null,"visibility":"private"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":9004,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":8977,"name":"ElementaryTypeName","src":"5711:7:9"}],"id":8978,"name":"VariableDeclaration","src":"5711:16:9"}],"id":8979,"name":"ParameterList","src":"5710:18:9"},{"attributes":{"parameters":[null]},"children":[],"id":8980,"name":"ParameterList","src":"5737:0:9"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_61b6700985eb6a295850095b1dc6d25862c09fd9ea7ce39c0e5f303dfe8ed582","typeString":"literal_string \"provided account is not a controller\""}],"overloadedDeclarations":[12019,12020],"referencedDeclaration":12020,"type":"function (bool,string memory) pure","value":"require"},"id":8981,"name":"Identifier","src":"5747:7:9"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8714,"type":"mapping(address => bool)","value":"_isController"},"id":8982,"name":"Identifier","src":"5755:13:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8978,"type":"address","value":"_account"},"id":8983,"name":"Identifier","src":"5769:8:9"}],"id":8984,"name":"IndexAccess","src":"5755:23:9"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e74206973206e6f74206120636f6e74726f6c6c6572","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is not a controller\"","value":"provided account is not a controller"},"id":8985,"name":"Literal","src":"5780:38:9"}],"id":8986,"name":"FunctionCall","src":"5747:72:9"}],"id":8987,"name":"ExpressionStatement","src":"5747:72:9"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8714,"type":"mapping(address => bool)","value":"_isController"},"id":8988,"name":"Identifier","src":"5829:13:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8978,"type":"address","value":"_account"},"id":8989,"name":"Identifier","src":"5843:8:9"}],"id":8990,"name":"IndexAccess","src":"5829:23:9"},{"attributes":{"argumentTypes":null,"hexvalue":"66616c7365","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"false"},"id":8991,"name":"Literal","src":"5855:5:9"}],"id":8992,"name":"Assignment","src":"5829:31:9"}],"id":8993,"name":"ExpressionStatement","src":"5829:31:9"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"--","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8716,"type":"uint256","value":"_controllerCount"},"id":8994,"name":"Identifier","src":"5870:16:9"}],"id":8995,"name":"UnaryOperation","src":"5870:18:9"}],"id":8996,"name":"ExpressionStatement","src":"5870:18:9"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":8692,"type":"function (address,address)","value":"RemovedController"},"id":8997,"name":"Identifier","src":"5903:17:9"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":12016,"type":"msg","value":"msg"},"id":8998,"name":"Identifier","src":"5921:3:9"}],"id":8999,"name":"MemberAccess","src":"5921:10:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8978,"type":"address","value":"_account"},"id":9000,"name":"Identifier","src":"5933:8:9"}],"id":9001,"name":"FunctionCall","src":"5903:39:9"}],"id":9002,"name":"EmitStatement","src":"5898:44:9"}],"id":9003,"name":"Block","src":"5737:212:9"}],"id":9004,"name":"FunctionDefinition","src":"5684:265:9"}],"id":9005,"name":"ContractDefinition","src":"1335:4616:9"}],"id":9006,"name":"SourceUnit","src":"770:5182:9"}},"internals/date.sol":{"AST":{"attributes":{"absolutePath":"internals/date.sol","exportedSymbols":{"Date":[7851]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".25"]},"id":7684,"name":"PragmaDirective","src":"764:24:10"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"contract","documentation":"@title Date provides redimentary date parsing functionality.\n @notice This method parses months found in an ISO date to a number","fullyImplemented":true,"linearizedBaseContracts":[7851],"name":"Date","scope":7852},"children":[{"attributes":{"constant":true,"name":"_JANUARY","scope":7851,"stateVariable":true,"storageLocation":"default","type":"bytes32","visibility":"private"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":7685,"name":"ElementaryTypeName","src":"948:7:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4a18c9083b936e0757952a5d9d34b5575d427661506fbe9908c2a1da3f3e80d9","typeString":"literal_string \"Jan\""}],"overloadedDeclarations":[null],"referencedDeclaration":12010,"type":"function () pure returns (bytes32)","value":"keccak256"},"id":7686,"name":"Identifier","src":"984:9:10"},{"attributes":{"argumentTypes":null,"hexvalue":"4a616e","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"Jan\"","value":"Jan"},"id":7687,"name":"Literal","src":"994:5:10"}],"id":7688,"name":"FunctionCall","src":"984:16:10"}],"id":7689,"name":"VariableDeclaration","src":"948:52:10"},{"attributes":{"constant":true,"name":"_FEBRUARY","scope":7851,"stateVariable":true,"storageLocation":"default","type":"bytes32","visibility":"private"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":7690,"name":"ElementaryTypeName","src":"1006:7:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_78ec83563b948f0ac242d7eaefd592adf65964e11cc27f11ae41faa99a1e990a","typeString":"literal_string \"Feb\""}],"overloadedDeclarations":[null],"referencedDeclaration":12010,"type":"function () pure returns (bytes32)","value":"keccak256"},"id":7691,"name":"Identifier","src":"1043:9:10"},{"attributes":{"argumentTypes":null,"hexvalue":"466562","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"Feb\"","value":"Feb"},"id":7692,"name":"Literal","src":"1053:5:10"}],"id":7693,"name":"FunctionCall","src":"1043:16:10"}],"id":7694,"name":"VariableDeclaration","src":"1006:53:10"},{"attributes":{"constant":true,"name":"_MARCH","scope":7851,"stateVariable":true,"storageLocation":"default","type":"bytes32","visibility":"private"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":7695,"name":"ElementaryTypeName","src":"1065:7:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2bab7d3f253ae0e3722abcc2571faced288946968116996ffc3de31fb7348ec3","typeString":"literal_string \"Mar\""}],"overloadedDeclarations":[null],"referencedDeclaration":12010,"type":"function () pure returns (bytes32)","value":"keccak256"},"id":7696,"name":"Identifier","src":"1099:9:10"},{"attributes":{"argumentTypes":null,"hexvalue":"4d6172","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"Mar\"","value":"Mar"},"id":7697,"name":"Literal","src":"1109:5:10"}],"id":7698,"name":"FunctionCall","src":"1099:16:10"}],"id":7699,"name":"VariableDeclaration","src":"1065:50:10"},{"attributes":{"constant":true,"name":"_APRIL","scope":7851,"stateVariable":true,"storageLocation":"default","type":"bytes32","visibility":"private"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":7700,"name":"ElementaryTypeName","src":"1121:7:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c6f33aba2381b69f05afc78835e501547a9daffa08d674623068c378423ac188","typeString":"literal_string \"Apr\""}],"overloadedDeclarations":[null],"referencedDeclaration":12010,"type":"function () pure returns (bytes32)","value":"keccak256"},"id":7701,"name":"Identifier","src":"1155:9:10"},{"attributes":{"argumentTypes":null,"hexvalue":"417072","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"Apr\"","value":"Apr"},"id":7702,"name":"Literal","src":"1165:5:10"}],"id":7703,"name":"FunctionCall","src":"1155:16:10"}],"id":7704,"name":"VariableDeclaration","src":"1121:50:10"},{"attributes":{"constant":true,"name":"_MAY","scope":7851,"stateVariable":true,"storageLocation":"default","type":"bytes32","visibility":"private"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":7705,"name":"ElementaryTypeName","src":"1177:7:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_db5ee1006003349b29eda5be5fe34f728659f836a948d4ec595114aebbb159d3","typeString":"literal_string \"May\""}],"overloadedDeclarations":[null],"referencedDeclaration":12010,"type":"function () pure returns (bytes32)","value":"keccak256"},"id":7706,"name":"Identifier","src":"1209:9:10"},{"attributes":{"argumentTypes":null,"hexvalue":"4d6179","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"May\"","value":"May"},"id":7707,"name":"Literal","src":"1219:5:10"}],"id":7708,"name":"FunctionCall","src":"1209:16:10"}],"id":7709,"name":"VariableDeclaration","src":"1177:48:10"},{"attributes":{"constant":true,"name":"_JUNE","scope":7851,"stateVariable":true,"storageLocation":"default","type":"bytes32","visibility":"private"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":7710,"name":"ElementaryTypeName","src":"1231:7:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_44a0046ab54c1458fc3c39dfcadc52509ad809730ec301470d2d747dbe77242d","typeString":"literal_string \"Jun\""}],"overloadedDeclarations":[null],"referencedDeclaration":12010,"type":"function () pure returns (bytes32)","value":"keccak256"},"id":7711,"name":"Identifier","src":"1264:9:10"},{"attributes":{"argumentTypes":null,"hexvalue":"4a756e","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"Jun\"","value":"Jun"},"id":7712,"name":"Literal","src":"1274:5:10"}],"id":7713,"name":"FunctionCall","src":"1264:16:10"}],"id":7714,"name":"VariableDeclaration","src":"1231:49:10"},{"attributes":{"constant":true,"name":"_JULY","scope":7851,"stateVariable":true,"storageLocation":"default","type":"bytes32","visibility":"private"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":7715,"name":"ElementaryTypeName","src":"1286:7:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_74d9e46f10329e61dc333ff1800274be516163110de31961b4e0c61de3e90c5c","typeString":"literal_string \"Jul\""}],"overloadedDeclarations":[null],"referencedDeclaration":12010,"type":"function () pure returns (bytes32)","value":"keccak256"},"id":7716,"name":"Identifier","src":"1319:9:10"},{"attributes":{"argumentTypes":null,"hexvalue":"4a756c","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"Jul\"","value":"Jul"},"id":7717,"name":"Literal","src":"1329:5:10"}],"id":7718,"name":"FunctionCall","src":"1319:16:10"}],"id":7719,"name":"VariableDeclaration","src":"1286:49:10"},{"attributes":{"constant":true,"name":"_AUGUST","scope":7851,"stateVariable":true,"storageLocation":"default","type":"bytes32","visibility":"private"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":7720,"name":"ElementaryTypeName","src":"1341:7:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ed40c08ab6f3d9c5d71155e25b1271d5b9eca8c27bf89e1d2293fcb77c5abf64","typeString":"literal_string \"Aug\""}],"overloadedDeclarations":[null],"referencedDeclaration":12010,"type":"function () pure returns (bytes32)","value":"keccak256"},"id":7721,"name":"Identifier","src":"1376:9:10"},{"attributes":{"argumentTypes":null,"hexvalue":"417567","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"Aug\"","value":"Aug"},"id":7722,"name":"Literal","src":"1386:5:10"}],"id":7723,"name":"FunctionCall","src":"1376:16:10"}],"id":7724,"name":"VariableDeclaration","src":"1341:51:10"},{"attributes":{"constant":true,"name":"_SEPTEMBER","scope":7851,"stateVariable":true,"storageLocation":"default","type":"bytes32","visibility":"private"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":7725,"name":"ElementaryTypeName","src":"1398:7:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7d801199c77197eb9933a633741db90c2c6f3d7d14aca35f5f80a41b4a8863ac","typeString":"literal_string \"Sep\""}],"overloadedDeclarations":[null],"referencedDeclaration":12010,"type":"function () pure returns (bytes32)","value":"keccak256"},"id":7726,"name":"Identifier","src":"1436:9:10"},{"attributes":{"argumentTypes":null,"hexvalue":"536570","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"Sep\"","value":"Sep"},"id":7727,"name":"Literal","src":"1446:5:10"}],"id":7728,"name":"FunctionCall","src":"1436:16:10"}],"id":7729,"name":"VariableDeclaration","src":"1398:54:10"},{"attributes":{"constant":true,"name":"_OCTOBER","scope":7851,"stateVariable":true,"storageLocation":"default","type":"bytes32","visibility":"private"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":7730,"name":"ElementaryTypeName","src":"1458:7:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b7841ed82fc96483f061ddc0b19846855df22558c4aea3b3b058ce0d9f1f5164","typeString":"literal_string \"Oct\""}],"overloadedDeclarations":[null],"referencedDeclaration":12010,"type":"function () pure returns (bytes32)","value":"keccak256"},"id":7731,"name":"Identifier","src":"1494:9:10"},{"attributes":{"argumentTypes":null,"hexvalue":"4f6374","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"Oct\"","value":"Oct"},"id":7732,"name":"Literal","src":"1504:5:10"}],"id":7733,"name":"FunctionCall","src":"1494:16:10"}],"id":7734,"name":"VariableDeclaration","src":"1458:52:10"},{"attributes":{"constant":true,"name":"_NOVEMBER","scope":7851,"stateVariable":true,"storageLocation":"default","type":"bytes32","visibility":"private"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":7735,"name":"ElementaryTypeName","src":"1516:7:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_487851233e540dddea8f904d6802590aead5463b1c44965d68348bb7def25cf4","typeString":"literal_string \"Nov\""}],"overloadedDeclarations":[null],"referencedDeclaration":12010,"type":"function () pure returns (bytes32)","value":"keccak256"},"id":7736,"name":"Identifier","src":"1553:9:10"},{"attributes":{"argumentTypes":null,"hexvalue":"4e6f76","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"Nov\"","value":"Nov"},"id":7737,"name":"Literal","src":"1563:5:10"}],"id":7738,"name":"FunctionCall","src":"1553:16:10"}],"id":7739,"name":"VariableDeclaration","src":"1516:53:10"},{"attributes":{"constant":true,"name":"_DECEMBER","scope":7851,"stateVariable":true,"storageLocation":"default","type":"bytes32","visibility":"private"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":7740,"name":"ElementaryTypeName","src":"1575:7:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3bd971d8758c58fe0c4d635451404450c5edda87d624a89819e0be5a122933dc","typeString":"literal_string \"Dec\""}],"overloadedDeclarations":[null],"referencedDeclaration":12010,"type":"function () pure returns (bytes32)","value":"keccak256"},"id":7741,"name":"Identifier","src":"1612:9:10"},{"attributes":{"argumentTypes":null,"hexvalue":"446563","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"Dec\"","value":"Dec"},"id":7742,"name":"Literal","src":"1622:5:10"}],"id":7743,"name":"FunctionCall","src":"1612:16:10"}],"id":7744,"name":"VariableDeclaration","src":"1575:53:10"},{"attributes":{"constant":true,"documentation":"@return the number of the month based on its name.\n @param _month the first three letters of a month's name e.g. \"Jan\".","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_monthToNumber","payable":false,"scope":7851,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_month","scope":7850,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":7745,"name":"ElementaryTypeName","src":"1794:6:10"}],"id":7746,"name":"VariableDeclaration","src":"1794:13:10"}],"id":7747,"name":"ParameterList","src":"1793:15:10"},{"children":[{"attributes":{"constant":false,"name":"","scope":7850,"stateVariable":false,"storageLocation":"default","type":"uint8","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint8","type":"uint8"},"id":7748,"name":"ElementaryTypeName","src":"1832:5:10"}],"id":7749,"name":"VariableDeclaration","src":"1832:5:10"}],"id":7750,"name":"ParameterList","src":"1831:7:10"},{"children":[{"attributes":{"assignments":[7752]},"children":[{"attributes":{"constant":false,"name":"month","scope":7850,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":7751,"name":"ElementaryTypeName","src":"1849:7:10"}],"id":7752,"name":"VariableDeclaration","src":"1849:13:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"overloadedDeclarations":[null],"referencedDeclaration":12010,"type":"function () pure returns (bytes32)","value":"keccak256"},"id":7753,"name":"Identifier","src":"1865:9:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"member_name":"encodePacked","referencedDeclaration":null,"type":"function () pure returns (bytes memory)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":12003,"type":"abi","value":"abi"},"id":7754,"name":"Identifier","src":"1875:3:10"}],"id":7755,"name":"MemberAccess","src":"1875:16:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7746,"type":"string memory","value":"_month"},"id":7756,"name":"Identifier","src":"1892:6:10"}],"id":7757,"name":"FunctionCall","src":"1875:24:10"}],"id":7758,"name":"FunctionCall","src":"1865:35:10"}],"id":7759,"name":"VariableDeclarationStatement","src":"1849:51:10"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7752,"type":"bytes32","value":"month"},"id":7760,"name":"Identifier","src":"1914:5:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7689,"type":"bytes32","value":"_JANUARY"},"id":7761,"name":"Identifier","src":"1923:8:10"}],"id":7762,"name":"BinaryOperation","src":"1914:17:10"},{"children":[{"attributes":{"functionReturnParameters":7750},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":7763,"name":"Literal","src":"1954:1:10"}],"id":7764,"name":"Return","src":"1947:8:10"}],"id":7765,"name":"Block","src":"1933:33:10"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7752,"type":"bytes32","value":"month"},"id":7766,"name":"Identifier","src":"1976:5:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7694,"type":"bytes32","value":"_FEBRUARY"},"id":7767,"name":"Identifier","src":"1985:9:10"}],"id":7768,"name":"BinaryOperation","src":"1976:18:10"},{"children":[{"attributes":{"functionReturnParameters":7750},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":7769,"name":"Literal","src":"2017:1:10"}],"id":7770,"name":"Return","src":"2010:8:10"}],"id":7771,"name":"Block","src":"1996:33:10"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7752,"type":"bytes32","value":"month"},"id":7772,"name":"Identifier","src":"2039:5:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7699,"type":"bytes32","value":"_MARCH"},"id":7773,"name":"Identifier","src":"2048:6:10"}],"id":7774,"name":"BinaryOperation","src":"2039:15:10"},{"children":[{"attributes":{"functionReturnParameters":7750},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":7775,"name":"Literal","src":"2077:1:10"}],"id":7776,"name":"Return","src":"2070:8:10"}],"id":7777,"name":"Block","src":"2056:33:10"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7752,"type":"bytes32","value":"month"},"id":7778,"name":"Identifier","src":"2099:5:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7704,"type":"bytes32","value":"_APRIL"},"id":7779,"name":"Identifier","src":"2108:6:10"}],"id":7780,"name":"BinaryOperation","src":"2099:15:10"},{"children":[{"attributes":{"functionReturnParameters":7750},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":7781,"name":"Literal","src":"2137:1:10"}],"id":7782,"name":"Return","src":"2130:8:10"}],"id":7783,"name":"Block","src":"2116:33:10"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7752,"type":"bytes32","value":"month"},"id":7784,"name":"Identifier","src":"2159:5:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7709,"type":"bytes32","value":"_MAY"},"id":7785,"name":"Identifier","src":"2168:4:10"}],"id":7786,"name":"BinaryOperation","src":"2159:13:10"},{"children":[{"attributes":{"functionReturnParameters":7750},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"35","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 5","value":"5"},"id":7787,"name":"Literal","src":"2195:1:10"}],"id":7788,"name":"Return","src":"2188:8:10"}],"id":7789,"name":"Block","src":"2174:33:10"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7752,"type":"bytes32","value":"month"},"id":7790,"name":"Identifier","src":"2217:5:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7714,"type":"bytes32","value":"_JUNE"},"id":7791,"name":"Identifier","src":"2226:5:10"}],"id":7792,"name":"BinaryOperation","src":"2217:14:10"},{"children":[{"attributes":{"functionReturnParameters":7750},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"36","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 6","value":"6"},"id":7793,"name":"Literal","src":"2254:1:10"}],"id":7794,"name":"Return","src":"2247:8:10"}],"id":7795,"name":"Block","src":"2233:33:10"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7752,"type":"bytes32","value":"month"},"id":7796,"name":"Identifier","src":"2276:5:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7719,"type":"bytes32","value":"_JULY"},"id":7797,"name":"Identifier","src":"2285:5:10"}],"id":7798,"name":"BinaryOperation","src":"2276:14:10"},{"children":[{"attributes":{"functionReturnParameters":7750},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"37","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 7","value":"7"},"id":7799,"name":"Literal","src":"2313:1:10"}],"id":7800,"name":"Return","src":"2306:8:10"}],"id":7801,"name":"Block","src":"2292:33:10"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7752,"type":"bytes32","value":"month"},"id":7802,"name":"Identifier","src":"2335:5:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7724,"type":"bytes32","value":"_AUGUST"},"id":7803,"name":"Identifier","src":"2344:7:10"}],"id":7804,"name":"BinaryOperation","src":"2335:16:10"},{"children":[{"attributes":{"functionReturnParameters":7750},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"38","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 8","value":"8"},"id":7805,"name":"Literal","src":"2374:1:10"}],"id":7806,"name":"Return","src":"2367:8:10"}],"id":7807,"name":"Block","src":"2353:33:10"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7752,"type":"bytes32","value":"month"},"id":7808,"name":"Identifier","src":"2396:5:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7729,"type":"bytes32","value":"_SEPTEMBER"},"id":7809,"name":"Identifier","src":"2405:10:10"}],"id":7810,"name":"BinaryOperation","src":"2396:19:10"},{"children":[{"attributes":{"functionReturnParameters":7750},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"39","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 9","value":"9"},"id":7811,"name":"Literal","src":"2438:1:10"}],"id":7812,"name":"Return","src":"2431:8:10"}],"id":7813,"name":"Block","src":"2417:33:10"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7752,"type":"bytes32","value":"month"},"id":7814,"name":"Identifier","src":"2460:5:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7734,"type":"bytes32","value":"_OCTOBER"},"id":7815,"name":"Identifier","src":"2469:8:10"}],"id":7816,"name":"BinaryOperation","src":"2460:17:10"},{"children":[{"attributes":{"functionReturnParameters":7750},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3130","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 10","value":"10"},"id":7817,"name":"Literal","src":"2500:2:10"}],"id":7818,"name":"Return","src":"2493:9:10"}],"id":7819,"name":"Block","src":"2479:34:10"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7752,"type":"bytes32","value":"month"},"id":7820,"name":"Identifier","src":"2523:5:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7739,"type":"bytes32","value":"_NOVEMBER"},"id":7821,"name":"Identifier","src":"2532:9:10"}],"id":7822,"name":"BinaryOperation","src":"2523:18:10"},{"children":[{"attributes":{"functionReturnParameters":7750},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3131","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 11","value":"11"},"id":7823,"name":"Literal","src":"2564:2:10"}],"id":7824,"name":"Return","src":"2557:9:10"}],"id":7825,"name":"Block","src":"2543:34:10"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7752,"type":"bytes32","value":"month"},"id":7826,"name":"Identifier","src":"2587:5:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7744,"type":"bytes32","value":"_DECEMBER"},"id":7827,"name":"Identifier","src":"2596:9:10"}],"id":7828,"name":"BinaryOperation","src":"2587:18:10"},{"children":[{"attributes":{"functionReturnParameters":7750},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3132","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 12","value":"12"},"id":7829,"name":"Literal","src":"2628:2:10"}],"id":7830,"name":"Return","src":"2621:9:10"}],"id":7831,"name":"Block","src":"2607:34:10"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4deebb500c9a99d40fa1053d95d4c3a93eaf025d3e960c6684ad76631bfe8f66","typeString":"literal_string \"not a valid month\""}],"overloadedDeclarations":[12021,12022],"referencedDeclaration":12022,"type":"function (string memory) pure","value":"revert"},"id":7832,"name":"Identifier","src":"2661:6:10"},{"attributes":{"argumentTypes":null,"hexvalue":"6e6f7420612076616c6964206d6f6e7468","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"not a valid month\"","value":"not a valid month"},"id":7833,"name":"Literal","src":"2668:19:10"}],"id":7834,"name":"FunctionCall","src":"2661:27:10"}],"id":7835,"name":"ExpressionStatement","src":"2661:27:10"}],"id":7836,"name":"Block","src":"2647:52:10"}],"id":7837,"name":"IfStatement","src":"2583:116:10"}],"id":7838,"name":"IfStatement","src":"2519:180:10"}],"id":7839,"name":"IfStatement","src":"2456:243:10"}],"id":7840,"name":"IfStatement","src":"2392:307:10"}],"id":7841,"name":"IfStatement","src":"2331:368:10"}],"id":7842,"name":"IfStatement","src":"2272:427:10"}],"id":7843,"name":"IfStatement","src":"2213:486:10"}],"id":7844,"name":"IfStatement","src":"2155:544:10"}],"id":7845,"name":"IfStatement","src":"2095:604:10"}],"id":7846,"name":"IfStatement","src":"2035:664:10"}],"id":7847,"name":"IfStatement","src":"1972:727:10"}],"id":7848,"name":"IfStatement","src":"1910:789:10"}],"id":7849,"name":"Block","src":"1839:866:10"}],"id":7850,"name":"FunctionDefinition","src":"1770:935:10"}],"id":7851,"name":"ContractDefinition","src":"927:1780:10"}],"id":7852,"name":"SourceUnit","src":"764:1944:10"}},"internals/ensResolvable.sol":{"AST":{"attributes":{"absolutePath":"internals/ensResolvable.sol","exportedSymbols":{"ENSResolvable":[7902]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".25"]},"id":7853,"name":"PragmaDirective","src":"773:24:11"},{"attributes":{"SourceUnit":9086,"absolutePath":"externals/ens/ENS.sol","file":"../externals/ens/ENS.sol","scope":7903,"symbolAliases":[null],"unitAlias":""},"id":7854,"name":"ImportDirective","src":"799:34:11"},{"attributes":{"SourceUnit":9594,"absolutePath":"externals/ens/PublicResolver.sol","file":"../externals/ens/PublicResolver.sol","scope":7903,"symbolAliases":[null],"unitAlias":""},"id":7855,"name":"ImportDirective","src":"834:45:11"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"contract","documentation":"@title ENSResolvable - Ethereum Name Service Resolver\n@notice contract should be used to get an address for an ENS nodeHash","fullyImplemented":true,"linearizedBaseContracts":[7902],"name":"ENSResolvable","scope":7903},"children":[{"attributes":{"constant":false,"name":"_ens","scope":7902,"stateVariable":true,"storageLocation":"default","type":"contract ENS","value":null,"visibility":"private"},"children":[{"attributes":{"contractScope":null,"name":"ENS","referencedDeclaration":9085,"type":"contract ENS"},"id":7856,"name":"UserDefinedTypeName","src":"1084:3:11"}],"id":7857,"name":"VariableDeclaration","src":"1084:16:11"},{"attributes":{"constant":false,"name":"_ensRegistry","scope":7902,"stateVariable":true,"storageLocation":"default","type":"address","value":null,"visibility":"private"},"children":[{"attributes":{"name":"address","type":"address"},"id":7858,"name":"ElementaryTypeName","src":"1179:7:11"}],"id":7859,"name":"VariableDeclaration","src":"1179:28:11"},{"attributes":{"constant":false,"documentation":"@param _ensReg_ is the ENS registry used","implemented":true,"isConstructor":true,"modifiers":[null],"name":"","payable":false,"scope":7902,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_ensReg_","scope":7875,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":7860,"name":"ElementaryTypeName","src":"1275:7:11"}],"id":7861,"name":"VariableDeclaration","src":"1275:16:11"}],"id":7862,"name":"ParameterList","src":"1274:18:11"},{"attributes":{"parameters":[null]},"children":[],"id":7863,"name":"ParameterList","src":"1302:0:11"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7859,"type":"address","value":"_ensRegistry"},"id":7864,"name":"Identifier","src":"1312:12:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7861,"type":"address","value":"_ensReg_"},"id":7865,"name":"Identifier","src":"1327:8:11"}],"id":7866,"name":"Assignment","src":"1312:23:11"}],"id":7867,"name":"ExpressionStatement","src":"1312:23:11"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"contract ENS"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7857,"type":"contract ENS","value":"_ens"},"id":7868,"name":"Identifier","src":"1345:4:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract ENS","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":9085,"type":"type(contract ENS)","value":"ENS"},"id":7869,"name":"Identifier","src":"1352:3:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7859,"type":"address","value":"_ensRegistry"},"id":7870,"name":"Identifier","src":"1356:12:11"}],"id":7871,"name":"FunctionCall","src":"1352:17:11"}],"id":7872,"name":"Assignment","src":"1345:24:11"}],"id":7873,"name":"ExpressionStatement","src":"1345:24:11"}],"id":7874,"name":"Block","src":"1302:74:11"}],"id":7875,"name":"FunctionDefinition","src":"1263:113:11"},{"attributes":{"constant":true,"documentation":"@notice this is used to that one can observe which ENS registry is being used","implemented":true,"isConstructor":false,"modifiers":[null],"name":"ensRegistry","payable":false,"scope":7902,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":7876,"name":"ParameterList","src":"1488:2:11"},{"children":[{"attributes":{"constant":false,"name":"","scope":7883,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":7877,"name":"ElementaryTypeName","src":"1514:7:11"}],"id":7878,"name":"VariableDeclaration","src":"1514:7:11"}],"id":7879,"name":"ParameterList","src":"1513:9:11"},{"children":[{"attributes":{"functionReturnParameters":7879},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7859,"type":"address","value":"_ensRegistry"},"id":7880,"name":"Identifier","src":"1540:12:11"}],"id":7881,"name":"Return","src":"1533:19:11"}],"id":7882,"name":"Block","src":"1523:36:11"}],"id":7883,"name":"FunctionDefinition","src":"1468:91:11"},{"attributes":{"constant":true,"documentation":"@notice helper function used to get the address of a node Hash\n @param _nodeHash of the ENS entry that needs resolving\n @return the address of the said nodeHash","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_ensResolve","payable":false,"scope":7902,"stateMutability":"view","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_nodeHash","scope":7901,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":7884,"name":"ElementaryTypeName","src":"1769:7:11"}],"id":7885,"name":"VariableDeclaration","src":"1769:17:11"}],"id":7886,"name":"ParameterList","src":"1768:19:11"},{"children":[{"attributes":{"constant":false,"name":"","scope":7901,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":7887,"name":"ElementaryTypeName","src":"1811:7:11"}],"id":7888,"name":"VariableDeclaration","src":"1811:7:11"}],"id":7889,"name":"ParameterList","src":"1810:9:11"},{"children":[{"attributes":{"functionReturnParameters":7889},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"addr","referencedDeclaration":9552,"type":"function (bytes32) view external returns (address)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract PublicResolver","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":9593,"type":"type(contract PublicResolver)","value":"PublicResolver"},"id":7890,"name":"Identifier","src":"1837:14:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"resolver","referencedDeclaration":9077,"type":"function (bytes32) view external returns (address)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7857,"type":"contract ENS","value":"_ens"},"id":7891,"name":"Identifier","src":"1852:4:11"}],"id":7892,"name":"MemberAccess","src":"1852:13:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7885,"type":"bytes32","value":"_nodeHash"},"id":7893,"name":"Identifier","src":"1866:9:11"}],"id":7894,"name":"FunctionCall","src":"1852:24:11"}],"id":7895,"name":"FunctionCall","src":"1837:40:11"}],"id":7896,"name":"MemberAccess","src":"1837:45:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7885,"type":"bytes32","value":"_nodeHash"},"id":7897,"name":"Identifier","src":"1883:9:11"}],"id":7898,"name":"FunctionCall","src":"1837:56:11"}],"id":7899,"name":"Return","src":"1830:63:11"}],"id":7900,"name":"Block","src":"1820:80:11"}],"id":7901,"name":"FunctionDefinition","src":"1748:152:11"}],"id":7902,"name":"ContractDefinition","src":"1012:891:11"}],"id":7903,"name":"SourceUnit","src":"773:1131:11"}},"internals/ownable.sol":{"AST":{"attributes":{"absolutePath":"internals/ownable.sol","exportedSymbols":{"Ownable":[10306]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".25"]},"id":10151,"name":"PragmaDirective","src":"767:24:12"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"contract","documentation":"@title Ownable has an owner address and provides basic authorization control functions.\n This contract is modified version of the MIT OpenZepplin Ownable contract\n This contract allows for the transferOwnership operation to be made impossible\n https://github.com/OpenZeppelin/openzeppelin-solidity/blob/master/contracts/ownership/Ownable.sol","fullyImplemented":true,"linearizedBaseContracts":[10306],"name":"Ownable","scope":10307},"children":[{"attributes":{"anonymous":false,"documentation":null,"name":"TransferredOwnership"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_from","scope":10157,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":10152,"name":"ElementaryTypeName","src":"1199:7:12"}],"id":10153,"name":"VariableDeclaration","src":"1199:13:12"},{"attributes":{"constant":false,"indexed":false,"name":"_to","scope":10157,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":10154,"name":"ElementaryTypeName","src":"1214:7:12"}],"id":10155,"name":"VariableDeclaration","src":"1214:11:12"}],"id":10156,"name":"ParameterList","src":"1198:28:12"}],"id":10157,"name":"EventDefinition","src":"1172:55:12"},{"attributes":{"anonymous":false,"documentation":null,"name":"LockedOwnership"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_locked","scope":10161,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":10158,"name":"ElementaryTypeName","src":"1254:7:12"}],"id":10159,"name":"VariableDeclaration","src":"1254:15:12"}],"id":10160,"name":"ParameterList","src":"1253:17:12"}],"id":10161,"name":"EventDefinition","src":"1232:39:12"},{"attributes":{"constant":false,"name":"_owner","scope":10306,"stateVariable":true,"storageLocation":"default","type":"address","value":null,"visibility":"private"},"children":[{"attributes":{"name":"address","type":"address"},"id":10162,"name":"ElementaryTypeName","src":"1277:7:12"}],"id":10163,"name":"VariableDeclaration","src":"1277:22:12"},{"attributes":{"constant":false,"name":"_isTransferable","scope":10306,"stateVariable":true,"storageLocation":"default","type":"bool","value":null,"visibility":"private"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":10164,"name":"ElementaryTypeName","src":"1305:4:12"}],"id":10165,"name":"VariableDeclaration","src":"1305:28:12"},{"attributes":{"constant":false,"documentation":"@notice Constructor sets the original owner of the contract and whether or not it is one time transferable.","implemented":true,"isConstructor":true,"modifiers":[null],"name":"","payable":false,"scope":10306,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account_","scope":10196,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":10166,"name":"ElementaryTypeName","src":"1468:7:12"}],"id":10167,"name":"VariableDeclaration","src":"1468:17:12"},{"attributes":{"constant":false,"name":"_transferable_","scope":10196,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":10168,"name":"ElementaryTypeName","src":"1487:4:12"}],"id":10169,"name":"VariableDeclaration","src":"1487:19:12"}],"id":10170,"name":"ParameterList","src":"1467:40:12"},{"attributes":{"parameters":[null]},"children":[],"id":10171,"name":"ParameterList","src":"1517:0:12"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10163,"type":"address","value":"_owner"},"id":10172,"name":"Identifier","src":"1527:6:12"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10167,"type":"address","value":"_account_"},"id":10173,"name":"Identifier","src":"1536:9:12"}],"id":10174,"name":"Assignment","src":"1527:18:12"}],"id":10175,"name":"ExpressionStatement","src":"1527:18:12"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10165,"type":"bool","value":"_isTransferable"},"id":10176,"name":"Identifier","src":"1555:15:12"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10169,"type":"bool","value":"_transferable_"},"id":10177,"name":"Identifier","src":"1573:14:12"}],"id":10178,"name":"Assignment","src":"1555:32:12"}],"id":10179,"name":"ExpressionStatement","src":"1555:32:12"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10165,"type":"bool","value":"_isTransferable"},"id":10180,"name":"Identifier","src":"1671:15:12"}],"id":10181,"name":"UnaryOperation","src":"1670:16:12"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":10161,"type":"function (address)","value":"LockedOwnership"},"id":10182,"name":"Identifier","src":"1707:15:12"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10167,"type":"address","value":"_account_"},"id":10183,"name":"Identifier","src":"1723:9:12"}],"id":10184,"name":"FunctionCall","src":"1707:26:12"}],"id":10185,"name":"EmitStatement","src":"1702:31:12"}],"id":10186,"name":"Block","src":"1688:56:12"}],"id":10187,"name":"IfStatement","src":"1666:78:12"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":10157,"type":"function (address,address)","value":"TransferredOwnership"},"id":10188,"name":"Identifier","src":"1758:20:12"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":10189,"name":"ElementaryTypeNameExpression","src":"1779:7:12"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":10190,"name":"Literal","src":"1787:1:12"}],"id":10191,"name":"FunctionCall","src":"1779:10:12"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10167,"type":"address","value":"_account_"},"id":10192,"name":"Identifier","src":"1791:9:12"}],"id":10193,"name":"FunctionCall","src":"1758:43:12"}],"id":10194,"name":"EmitStatement","src":"1753:48:12"}],"id":10195,"name":"Block","src":"1517:291:12"}],"id":10196,"name":"FunctionDefinition","src":"1456:352:12"},{"attributes":{"documentation":"@notice Reverts if called by any account other than the owner.","name":"onlyOwner","visibility":"internal"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":10197,"name":"ParameterList","src":"1903:2:12"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_96d7cc6c06f3d4101b2a14e4ad2906b79dc824ab8a44b63e774a71d2b9c7abd2","typeString":"literal_string \"sender is not an owner\""}],"overloadedDeclarations":[12019,12020],"referencedDeclaration":12020,"type":"function (bool,string memory) pure","value":"require"},"id":10198,"name":"Identifier","src":"1916:7:12"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":10305,"type":"function (address) view returns (bool)","value":"_isOwner"},"id":10199,"name":"Identifier","src":"1924:8:12"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":12016,"type":"msg","value":"msg"},"id":10200,"name":"Identifier","src":"1933:3:12"}],"id":10201,"name":"MemberAccess","src":"1933:10:12"}],"id":10202,"name":"FunctionCall","src":"1924:20:12"},{"attributes":{"argumentTypes":null,"hexvalue":"73656e646572206973206e6f7420616e206f776e6572","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"sender is not an owner\"","value":"sender is not an owner"},"id":10203,"name":"Literal","src":"1946:24:12"}],"id":10204,"name":"FunctionCall","src":"1916:55:12"}],"id":10205,"name":"ExpressionStatement","src":"1916:55:12"},{"id":10206,"name":"PlaceholderStatement","src":"1981:1:12"}],"id":10207,"name":"Block","src":"1906:83:12"}],"id":10208,"name":"ModifierDefinition","src":"1885:104:12"},{"attributes":{"constant":false,"documentation":"@notice Allows the current owner to transfer control of the contract to a new address.\n @param _account address to transfer ownership to.\n @param _transferable indicates whether to keep the ownership transferable.","implemented":true,"isConstructor":false,"name":"transferOwnership","payable":false,"scope":10306,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":10253,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":10209,"name":"ElementaryTypeName","src":"2258:7:12"}],"id":10210,"name":"VariableDeclaration","src":"2258:16:12"},{"attributes":{"constant":false,"name":"_transferable","scope":10253,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":10211,"name":"ElementaryTypeName","src":"2276:4:12"}],"id":10212,"name":"VariableDeclaration","src":"2276:18:12"}],"id":10213,"name":"ParameterList","src":"2257:38:12"},{"attributes":{"parameters":[null]},"children":[],"id":10216,"name":"ParameterList","src":"2315:0:12"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10208,"type":"modifier ()","value":"onlyOwner"},"id":10214,"name":"Identifier","src":"2305:9:12"}],"id":10215,"name":"ModifierInvocation","src":"2305:9:12"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b2967f1eb3e333ead270a5eb332284149554452f916a981f27e70894d40a893f","typeString":"literal_string \"ownership is not transferable\""}],"overloadedDeclarations":[12019,12020],"referencedDeclaration":12020,"type":"function (bool,string memory) pure","value":"require"},"id":10217,"name":"Identifier","src":"2380:7:12"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10165,"type":"bool","value":"_isTransferable"},"id":10218,"name":"Identifier","src":"2388:15:12"},{"attributes":{"argumentTypes":null,"hexvalue":"6f776e657273686970206973206e6f74207472616e7366657261626c65","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"ownership is not transferable\"","value":"ownership is not transferable"},"id":10219,"name":"Literal","src":"2405:31:12"}],"id":10220,"name":"FunctionCall","src":"2380:57:12"}],"id":10221,"name":"ExpressionStatement","src":"2380:57:12"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_be619f073d6b85c603c617050d1729f1cf3b31bf6ae5ae03f35765577d9bb6c8","typeString":"literal_string \"owner cannot be set to zero address\""}],"overloadedDeclarations":[12019,12020],"referencedDeclaration":12020,"type":"function (bool,string memory) pure","value":"require"},"id":10222,"name":"Identifier","src":"2510:7:12"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10210,"type":"address","value":"_account"},"id":10223,"name":"Identifier","src":"2518:8:12"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":10224,"name":"ElementaryTypeNameExpression","src":"2530:7:12"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":10225,"name":"Literal","src":"2538:1:12"}],"id":10226,"name":"FunctionCall","src":"2530:10:12"}],"id":10227,"name":"BinaryOperation","src":"2518:22:12"},{"attributes":{"argumentTypes":null,"hexvalue":"6f776e65722063616e6e6f742062652073657420746f207a65726f2061646472657373","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"owner cannot be set to zero address\"","value":"owner cannot be set to zero address"},"id":10228,"name":"Literal","src":"2542:37:12"}],"id":10229,"name":"FunctionCall","src":"2510:70:12"}],"id":10230,"name":"ExpressionStatement","src":"2510:70:12"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10165,"type":"bool","value":"_isTransferable"},"id":10231,"name":"Identifier","src":"2665:15:12"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10212,"type":"bool","value":"_transferable"},"id":10232,"name":"Identifier","src":"2683:13:12"}],"id":10233,"name":"Assignment","src":"2665:31:12"}],"id":10234,"name":"ExpressionStatement","src":"2665:31:12"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10212,"type":"bool","value":"_transferable"},"id":10235,"name":"Identifier","src":"2780:13:12"}],"id":10236,"name":"UnaryOperation","src":"2779:14:12"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":10161,"type":"function (address)","value":"LockedOwnership"},"id":10237,"name":"Identifier","src":"2814:15:12"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10210,"type":"address","value":"_account"},"id":10238,"name":"Identifier","src":"2830:8:12"}],"id":10239,"name":"FunctionCall","src":"2814:25:12"}],"id":10240,"name":"EmitStatement","src":"2809:30:12"}],"id":10241,"name":"Block","src":"2795:55:12"}],"id":10242,"name":"IfStatement","src":"2775:75:12"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":10157,"type":"function (address,address)","value":"TransferredOwnership"},"id":10243,"name":"Identifier","src":"2910:20:12"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10163,"type":"address","value":"_owner"},"id":10244,"name":"Identifier","src":"2931:6:12"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10210,"type":"address","value":"_account"},"id":10245,"name":"Identifier","src":"2939:8:12"}],"id":10246,"name":"FunctionCall","src":"2910:38:12"}],"id":10247,"name":"EmitStatement","src":"2905:43:12"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10163,"type":"address","value":"_owner"},"id":10248,"name":"Identifier","src":"3008:6:12"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10210,"type":"address","value":"_account"},"id":10249,"name":"Identifier","src":"3017:8:12"}],"id":10250,"name":"Assignment","src":"3008:17:12"}],"id":10251,"name":"ExpressionStatement","src":"3008:17:12"}],"id":10252,"name":"Block","src":"2315:717:12"}],"id":10253,"name":"FunctionDefinition","src":"2231:801:12"},{"attributes":{"constant":true,"documentation":"@notice check if the ownership is transferable.\n @return true if the ownership is transferable.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"isTransferable","payable":false,"scope":10306,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":10254,"name":"ParameterList","src":"3172:2:12"},{"children":[{"attributes":{"constant":false,"name":"","scope":10261,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":10255,"name":"ElementaryTypeName","src":"3198:4:12"}],"id":10256,"name":"VariableDeclaration","src":"3198:4:12"}],"id":10257,"name":"ParameterList","src":"3197:6:12"},{"children":[{"attributes":{"functionReturnParameters":10257},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10165,"type":"bool","value":"_isTransferable"},"id":10258,"name":"Identifier","src":"3221:15:12"}],"id":10259,"name":"Return","src":"3214:22:12"}],"id":10260,"name":"Block","src":"3204:39:12"}],"id":10261,"name":"FunctionDefinition","src":"3149:94:12"},{"attributes":{"constant":false,"documentation":"@notice Allows the current owner to relinquish control of the contract.\n @dev Renouncing to ownership will leave the contract without an owner and unusable.\n @dev It will not be possible to call the functions with the `onlyOwner` modifier anymore.","implemented":true,"isConstructor":false,"name":"renounceOwnership","payable":false,"scope":10306,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":10262,"name":"ParameterList","src":"3545:2:12"},{"attributes":{"parameters":[null]},"children":[],"id":10265,"name":"ParameterList","src":"3567:0:12"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10208,"type":"modifier ()","value":"onlyOwner"},"id":10263,"name":"Identifier","src":"3557:9:12"}],"id":10264,"name":"ModifierInvocation","src":"3557:9:12"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b2967f1eb3e333ead270a5eb332284149554452f916a981f27e70894d40a893f","typeString":"literal_string \"ownership is not transferable\""}],"overloadedDeclarations":[12019,12020],"referencedDeclaration":12020,"type":"function (bool,string memory) pure","value":"require"},"id":10266,"name":"Identifier","src":"3632:7:12"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10165,"type":"bool","value":"_isTransferable"},"id":10267,"name":"Identifier","src":"3640:15:12"},{"attributes":{"argumentTypes":null,"hexvalue":"6f776e657273686970206973206e6f74207472616e7366657261626c65","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"ownership is not transferable\"","value":"ownership is not transferable"},"id":10268,"name":"Literal","src":"3657:31:12"}],"id":10269,"name":"FunctionCall","src":"3632:57:12"}],"id":10270,"name":"ExpressionStatement","src":"3632:57:12"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10163,"type":"address","value":"_owner"},"id":10271,"name":"Identifier","src":"3743:6:12"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":10272,"name":"ElementaryTypeNameExpression","src":"3752:7:12"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":10273,"name":"Literal","src":"3760:1:12"}],"id":10274,"name":"FunctionCall","src":"3752:10:12"}],"id":10275,"name":"Assignment","src":"3743:19:12"}],"id":10276,"name":"ExpressionStatement","src":"3743:19:12"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":10157,"type":"function (address,address)","value":"TransferredOwnership"},"id":10277,"name":"Identifier","src":"3778:20:12"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10163,"type":"address","value":"_owner"},"id":10278,"name":"Identifier","src":"3799:6:12"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":10279,"name":"ElementaryTypeNameExpression","src":"3807:7:12"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":10280,"name":"Literal","src":"3815:1:12"}],"id":10281,"name":"FunctionCall","src":"3807:10:12"}],"id":10282,"name":"FunctionCall","src":"3778:40:12"}],"id":10283,"name":"EmitStatement","src":"3773:45:12"}],"id":10284,"name":"Block","src":"3567:258:12"}],"id":10285,"name":"FunctionDefinition","src":"3519:306:12"},{"attributes":{"constant":true,"documentation":"@notice Find out owner address\n @return address of the owner.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"owner","payable":false,"scope":10306,"stateMutability":"view","superFunction":null,"visibility":"public"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":10286,"name":"ParameterList","src":"3922:2:12"},{"children":[{"attributes":{"constant":false,"name":"","scope":10293,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":10287,"name":"ElementaryTypeName","src":"3946:7:12"}],"id":10288,"name":"VariableDeclaration","src":"3946:7:12"}],"id":10289,"name":"ParameterList","src":"3945:9:12"},{"children":[{"attributes":{"functionReturnParameters":10289},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10163,"type":"address","value":"_owner"},"id":10290,"name":"Identifier","src":"3972:6:12"}],"id":10291,"name":"Return","src":"3965:13:12"}],"id":10292,"name":"Block","src":"3955:30:12"}],"id":10293,"name":"FunctionDefinition","src":"3908:77:12"},{"attributes":{"constant":true,"documentation":"@notice Check if owner address\n @return true if sender is the owner of the contract.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_isOwner","payable":false,"scope":10306,"stateMutability":"view","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_address","scope":10305,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":10294,"name":"ElementaryTypeName","src":"4109:7:12"}],"id":10295,"name":"VariableDeclaration","src":"4109:16:12"}],"id":10296,"name":"ParameterList","src":"4108:18:12"},{"children":[{"attributes":{"constant":false,"name":"","scope":10305,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":10297,"name":"ElementaryTypeName","src":"4150:4:12"}],"id":10298,"name":"VariableDeclaration","src":"4150:4:12"}],"id":10299,"name":"ParameterList","src":"4149:6:12"},{"children":[{"attributes":{"functionReturnParameters":10299},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10295,"type":"address","value":"_address"},"id":10300,"name":"Identifier","src":"4173:8:12"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10163,"type":"address","value":"_owner"},"id":10301,"name":"Identifier","src":"4185:6:12"}],"id":10302,"name":"BinaryOperation","src":"4173:18:12"}],"id":10303,"name":"Return","src":"4166:25:12"}],"id":10304,"name":"Block","src":"4156:42:12"}],"id":10305,"name":"FunctionDefinition","src":"4091:107:12"}],"id":10306,"name":"ContractDefinition","src":"1149:3051:12"}],"id":10307,"name":"SourceUnit","src":"767:3434:12"}},"internals/parseIntScientific.sol":{"AST":{"attributes":{"absolutePath":"internals/parseIntScientific.sol","exportedSymbols":{"ParseIntScientific":[8446]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".25"]},"id":7904,"name":"PragmaDirective","src":"777:24:13"},{"attributes":{"SourceUnit":1227,"absolutePath":"externals/SafeMath.sol","file":"../externals/SafeMath.sol","scope":8447,"symbolAliases":[null],"unitAlias":""},"id":7905,"name":"ImportDirective","src":"803:35:13"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"contract","documentation":"@title ParseIntScientific provides floating point in scientific notation (e.g. e-5) parsing functionality.","fullyImplemented":true,"linearizedBaseContracts":[8446],"name":"ParseIntScientific","scope":8447},"children":[{"children":[{"attributes":{"contractScope":null,"name":"SafeMath","referencedDeclaration":1226,"type":"library SafeMath"},"id":7906,"name":"UserDefinedTypeName","src":"993:8:13"},{"attributes":{"name":"uint256","type":"uint256"},"id":7907,"name":"ElementaryTypeName","src":"1006:7:13"}],"id":7908,"name":"UsingForDirective","src":"987:27:13"},{"attributes":{"constant":true,"name":"_PLUS_ASCII","scope":8446,"stateVariable":true,"storageLocation":"default","type":"bytes1","visibility":"private"},"children":[{"attributes":{"name":"byte","type":"bytes1"},"id":7909,"name":"ElementaryTypeName","src":"1020:4:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes1","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_43_by_1","typeString":"int_const 43"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes1)","value":"byte"},"id":7910,"name":"ElementaryTypeNameExpression","src":"1056:4:13"},{"attributes":{"argumentTypes":null,"hexvalue":"3433","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 43","value":"43"},"id":7911,"name":"Literal","src":"1061:2:13"}],"id":7912,"name":"FunctionCall","src":"1056:8:13"}],"id":7913,"name":"VariableDeclaration","src":"1020:44:13"},{"attributes":{"constant":true,"name":"_DASH_ASCII","scope":8446,"stateVariable":true,"storageLocation":"default","type":"bytes1","visibility":"private"},"children":[{"attributes":{"name":"byte","type":"bytes1"},"id":7914,"name":"ElementaryTypeName","src":"1093:4:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes1","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_45_by_1","typeString":"int_const 45"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes1)","value":"byte"},"id":7915,"name":"ElementaryTypeNameExpression","src":"1129:4:13"},{"attributes":{"argumentTypes":null,"hexvalue":"3435","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 45","value":"45"},"id":7916,"name":"Literal","src":"1134:2:13"}],"id":7917,"name":"FunctionCall","src":"1129:8:13"}],"id":7918,"name":"VariableDeclaration","src":"1093:44:13"},{"attributes":{"constant":true,"name":"_DOT_ASCII","scope":8446,"stateVariable":true,"storageLocation":"default","type":"bytes1","visibility":"private"},"children":[{"attributes":{"name":"byte","type":"bytes1"},"id":7919,"name":"ElementaryTypeName","src":"1166:4:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes1","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_46_by_1","typeString":"int_const 46"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes1)","value":"byte"},"id":7920,"name":"ElementaryTypeNameExpression","src":"1201:4:13"},{"attributes":{"argumentTypes":null,"hexvalue":"3436","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 46","value":"46"},"id":7921,"name":"Literal","src":"1206:2:13"}],"id":7922,"name":"FunctionCall","src":"1201:8:13"}],"id":7923,"name":"VariableDeclaration","src":"1166:43:13"},{"attributes":{"constant":true,"name":"_ZERO_ASCII","scope":8446,"stateVariable":true,"storageLocation":"default","type":"bytes1","visibility":"private"},"children":[{"attributes":{"name":"byte","type":"bytes1"},"id":7924,"name":"ElementaryTypeName","src":"1238:4:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes1","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_48_by_1","typeString":"int_const 48"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes1)","value":"byte"},"id":7925,"name":"ElementaryTypeNameExpression","src":"1274:4:13"},{"attributes":{"argumentTypes":null,"hexvalue":"3438","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 48","value":"48"},"id":7926,"name":"Literal","src":"1279:2:13"}],"id":7927,"name":"FunctionCall","src":"1274:8:13"}],"id":7928,"name":"VariableDeclaration","src":"1238:44:13"},{"attributes":{"constant":true,"name":"_NINE_ASCII","scope":8446,"stateVariable":true,"storageLocation":"default","type":"bytes1","visibility":"private"},"children":[{"attributes":{"name":"byte","type":"bytes1"},"id":7929,"name":"ElementaryTypeName","src":"1311:4:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes1","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_57_by_1","typeString":"int_const 57"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes1)","value":"byte"},"id":7930,"name":"ElementaryTypeNameExpression","src":"1347:4:13"},{"attributes":{"argumentTypes":null,"hexvalue":"3537","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 57","value":"57"},"id":7931,"name":"Literal","src":"1352:2:13"}],"id":7932,"name":"FunctionCall","src":"1347:8:13"}],"id":7933,"name":"VariableDeclaration","src":"1311:44:13"},{"attributes":{"constant":true,"name":"_E_ASCII","scope":8446,"stateVariable":true,"storageLocation":"default","type":"bytes1","visibility":"private"},"children":[{"attributes":{"name":"byte","type":"bytes1"},"id":7934,"name":"ElementaryTypeName","src":"1384:4:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes1","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_69_by_1","typeString":"int_const 69"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes1)","value":"byte"},"id":7935,"name":"ElementaryTypeNameExpression","src":"1417:4:13"},{"attributes":{"argumentTypes":null,"hexvalue":"3639","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 69","value":"69"},"id":7936,"name":"Literal","src":"1422:2:13"}],"id":7937,"name":"FunctionCall","src":"1417:8:13"}],"id":7938,"name":"VariableDeclaration","src":"1384:41:13"},{"attributes":{"constant":true,"name":"_LOWERCASE_E_ASCII","scope":8446,"stateVariable":true,"storageLocation":"default","type":"bytes1","visibility":"private"},"children":[{"attributes":{"name":"byte","type":"bytes1"},"id":7939,"name":"ElementaryTypeName","src":"1454:4:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes1","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_101_by_1","typeString":"int_const 101"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes1)","value":"byte"},"id":7940,"name":"ElementaryTypeNameExpression","src":"1497:4:13"},{"attributes":{"argumentTypes":null,"hexvalue":"313031","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 101","value":"101"},"id":7941,"name":"Literal","src":"1502:3:13"}],"id":7942,"name":"FunctionCall","src":"1497:9:13"}],"id":7943,"name":"VariableDeclaration","src":"1454:52:13"},{"attributes":{"constant":true,"documentation":"@notice ParseIntScientific delegates the call to _parseIntScientific(string, uint) with the 2nd argument being 0.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_parseIntScientific","payable":false,"scope":8446,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_inString","scope":7956,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":7944,"name":"ElementaryTypeName","src":"1687:6:13"}],"id":7945,"name":"VariableDeclaration","src":"1687:16:13"}],"id":7946,"name":"ParameterList","src":"1686:18:13"},{"children":[{"attributes":{"constant":false,"name":"","scope":7956,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":7947,"name":"ElementaryTypeName","src":"1728:4:13"}],"id":7948,"name":"VariableDeclaration","src":"1728:4:13"}],"id":7949,"name":"ParameterList","src":"1727:6:13"},{"children":[{"attributes":{"functionReturnParameters":7949},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"overloadedDeclarations":[7956,8445],"referencedDeclaration":8445,"type":"function (string memory,uint256) pure returns (uint256)","value":"_parseIntScientific"},"id":7950,"name":"Identifier","src":"1751:19:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7945,"type":"string memory","value":"_inString"},"id":7951,"name":"Identifier","src":"1771:9:13"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":7952,"name":"Literal","src":"1782:1:13"}],"id":7953,"name":"FunctionCall","src":"1751:33:13"}],"id":7954,"name":"Return","src":"1744:40:13"}],"id":7955,"name":"Block","src":"1734:57:13"}],"id":7956,"name":"FunctionDefinition","src":"1658:133:13"},{"attributes":{"constant":true,"documentation":"@notice ParseIntScientificWei parses a rate expressed in ETH and returns its wei denomination","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_parseIntScientificWei","payable":false,"scope":8446,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_inString","scope":7969,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":7957,"name":"ElementaryTypeName","src":"1931:6:13"}],"id":7958,"name":"VariableDeclaration","src":"1931:16:13"}],"id":7959,"name":"ParameterList","src":"1930:18:13"},{"children":[{"attributes":{"constant":false,"name":"","scope":7969,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":7960,"name":"ElementaryTypeName","src":"1972:4:13"}],"id":7961,"name":"VariableDeclaration","src":"1972:4:13"}],"id":7962,"name":"ParameterList","src":"1971:6:13"},{"children":[{"attributes":{"functionReturnParameters":7962},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"}],"overloadedDeclarations":[7956,8445],"referencedDeclaration":8445,"type":"function (string memory,uint256) pure returns (uint256)","value":"_parseIntScientific"},"id":7963,"name":"Identifier","src":"1995:19:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7958,"type":"string memory","value":"_inString"},"id":7964,"name":"Identifier","src":"2015:9:13"},{"attributes":{"argumentTypes":null,"hexvalue":"3138","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 18","value":"18"},"id":7965,"name":"Literal","src":"2026:2:13"}],"id":7966,"name":"FunctionCall","src":"1995:34:13"}],"id":7967,"name":"Return","src":"1988:41:13"}],"id":7968,"name":"Block","src":"1978:58:13"}],"id":7969,"name":"FunctionDefinition","src":"1899:137:13"},{"attributes":{"constant":true,"documentation":"@notice ParseIntScientific parses a JSON standard - floating point number.\n @param _inString is input string.\n @param _magnitudeMult multiplies the number with 10^_magnitudeMult.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_parseIntScientific","payable":false,"scope":8446,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_inString","scope":8445,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":7970,"name":"ElementaryTypeName","src":"2272:6:13"}],"id":7971,"name":"VariableDeclaration","src":"2272:16:13"},{"attributes":{"constant":false,"name":"_magnitudeMult","scope":8445,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":7972,"name":"ElementaryTypeName","src":"2290:4:13"}],"id":7973,"name":"VariableDeclaration","src":"2290:19:13"}],"id":7974,"name":"ParameterList","src":"2271:39:13"},{"children":[{"attributes":{"constant":false,"name":"","scope":8445,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":7975,"name":"ElementaryTypeName","src":"2334:4:13"}],"id":7976,"name":"VariableDeclaration","src":"2334:4:13"}],"id":7977,"name":"ParameterList","src":"2333:6:13"},{"children":[{"attributes":{"assignments":[7979]},"children":[{"attributes":{"constant":false,"name":"inBytes","scope":8445,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":7978,"name":"ElementaryTypeName","src":"2351:5:13"}],"id":7979,"name":"VariableDeclaration","src":"2351:20:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes storage pointer)","value":"bytes"},"id":7980,"name":"ElementaryTypeNameExpression","src":"2374:5:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7971,"type":"string memory","value":"_inString"},"id":7981,"name":"Identifier","src":"2380:9:13"}],"id":7982,"name":"FunctionCall","src":"2374:16:13"}],"id":7983,"name":"VariableDeclarationStatement","src":"2351:39:13"},{"attributes":{"assignments":[7985]},"children":[{"attributes":{"constant":false,"name":"mint","scope":8445,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":7984,"name":"ElementaryTypeName","src":"2400:4:13"}],"id":7985,"name":"VariableDeclaration","src":"2400:9:13"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":7986,"name":"Literal","src":"2412:1:13"}],"id":7987,"name":"VariableDeclarationStatement","src":"2400:13:13"},{"attributes":{"assignments":[7989]},"children":[{"attributes":{"constant":false,"name":"mintDec","scope":8445,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":7988,"name":"ElementaryTypeName","src":"2450:4:13"}],"id":7989,"name":"VariableDeclaration","src":"2450:12:13"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":7990,"name":"Literal","src":"2465:1:13"}],"id":7991,"name":"VariableDeclarationStatement","src":"2450:16:13"},{"attributes":{"assignments":[7993]},"children":[{"attributes":{"constant":false,"name":"mintExp","scope":8445,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":7992,"name":"ElementaryTypeName","src":"2516:4:13"}],"id":7993,"name":"VariableDeclaration","src":"2516:12:13"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":7994,"name":"Literal","src":"2531:1:13"}],"id":7995,"name":"VariableDeclarationStatement","src":"2516:16:13"},{"attributes":{"assignments":[7997]},"children":[{"attributes":{"constant":false,"name":"decMinted","scope":8445,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":7996,"name":"ElementaryTypeName","src":"2558:4:13"}],"id":7997,"name":"VariableDeclaration","src":"2558:14:13"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":7998,"name":"Literal","src":"2575:1:13"}],"id":7999,"name":"VariableDeclarationStatement","src":"2558:18:13"},{"attributes":{"assignments":[8001]},"children":[{"attributes":{"constant":false,"name":"expIndex","scope":8445,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":8000,"name":"ElementaryTypeName","src":"2622:4:13"}],"id":8001,"name":"VariableDeclaration","src":"2622:13:13"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":8002,"name":"Literal","src":"2638:1:13"}],"id":8003,"name":"VariableDeclarationStatement","src":"2622:17:13"},{"attributes":{"assignments":[8005]},"children":[{"attributes":{"constant":false,"name":"integral","scope":8445,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":8004,"name":"ElementaryTypeName","src":"2713:4:13"}],"id":8005,"name":"VariableDeclaration","src":"2713:13:13"},{"attributes":{"argumentTypes":null,"hexvalue":"66616c7365","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"false"},"id":8006,"name":"Literal","src":"2729:5:13"}],"id":8007,"name":"VariableDeclarationStatement","src":"2713:21:13"},{"attributes":{"assignments":[8009]},"children":[{"attributes":{"constant":false,"name":"decimals","scope":8445,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":8008,"name":"ElementaryTypeName","src":"2861:4:13"}],"id":8009,"name":"VariableDeclaration","src":"2861:13:13"},{"attributes":{"argumentTypes":null,"hexvalue":"66616c7365","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"false"},"id":8010,"name":"Literal","src":"2877:5:13"}],"id":8011,"name":"VariableDeclarationStatement","src":"2861:21:13"},{"attributes":{"assignments":[8013]},"children":[{"attributes":{"constant":false,"name":"exp","scope":8445,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":8012,"name":"ElementaryTypeName","src":"2951:4:13"}],"id":8013,"name":"VariableDeclaration","src":"2951:8:13"},{"attributes":{"argumentTypes":null,"hexvalue":"66616c7365","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"false"},"id":8014,"name":"Literal","src":"2962:5:13"}],"id":8015,"name":"VariableDeclarationStatement","src":"2951:16:13"},{"attributes":{"assignments":[8017]},"children":[{"attributes":{"constant":false,"name":"minus","scope":8445,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":8016,"name":"ElementaryTypeName","src":"3051:4:13"}],"id":8017,"name":"VariableDeclaration","src":"3051:10:13"},{"attributes":{"argumentTypes":null,"hexvalue":"66616c7365","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"false"},"id":8018,"name":"Literal","src":"3064:5:13"}],"id":8019,"name":"VariableDeclarationStatement","src":"3051:18:13"},{"attributes":{"assignments":[8021]},"children":[{"attributes":{"constant":false,"name":"plus","scope":8445,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":8020,"name":"ElementaryTypeName","src":"3120:4:13"}],"id":8021,"name":"VariableDeclaration","src":"3120:9:13"},{"attributes":{"argumentTypes":null,"hexvalue":"66616c7365","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"false"},"id":8022,"name":"Literal","src":"3132:5:13"}],"id":8023,"name":"VariableDeclarationStatement","src":"3120:17:13"},{"children":[{"attributes":{"assignments":[8025]},"children":[{"attributes":{"constant":false,"name":"i","scope":8445,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":8024,"name":"ElementaryTypeName","src":"3194:4:13"}],"id":8025,"name":"VariableDeclaration","src":"3194:6:13"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":8026,"name":"Literal","src":"3203:1:13"}],"id":8027,"name":"VariableDeclarationStatement","src":"3194:10:13"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8025,"type":"uint256","value":"i"},"id":8028,"name":"Identifier","src":"3206:1:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7979,"type":"bytes memory","value":"inBytes"},"id":8029,"name":"Identifier","src":"3210:7:13"}],"id":8030,"name":"MemberAccess","src":"3210:14:13"}],"id":8031,"name":"BinaryOperation","src":"3206:18:13"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8025,"type":"uint256","value":"i"},"id":8032,"name":"Identifier","src":"3226:1:13"}],"id":8033,"name":"UnaryOperation","src":"3226:3:13"}],"id":8034,"name":"ExpressionStatement","src":"3226:3:13"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&&","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&&","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7979,"type":"bytes memory","value":"inBytes"},"id":8035,"name":"Identifier","src":"3250:7:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8025,"type":"uint256","value":"i"},"id":8036,"name":"Identifier","src":"3258:1:13"}],"id":8037,"name":"IndexAccess","src":"3250:10:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7928,"type":"bytes1","value":"_ZERO_ASCII"},"id":8038,"name":"Identifier","src":"3264:11:13"}],"id":8039,"name":"BinaryOperation","src":"3250:25:13"}],"id":8040,"name":"TupleExpression","src":"3249:27:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7979,"type":"bytes memory","value":"inBytes"},"id":8041,"name":"Identifier","src":"3281:7:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8025,"type":"uint256","value":"i"},"id":8042,"name":"Identifier","src":"3289:1:13"}],"id":8043,"name":"IndexAccess","src":"3281:10:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7933,"type":"bytes1","value":"_NINE_ASCII"},"id":8044,"name":"Identifier","src":"3295:11:13"}],"id":8045,"name":"BinaryOperation","src":"3281:25:13"}],"id":8046,"name":"TupleExpression","src":"3280:27:13"}],"id":8047,"name":"BinaryOperation","src":"3249:58:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8013,"type":"bool","value":"exp"},"id":8048,"name":"Identifier","src":"3313:3:13"}],"id":8049,"name":"UnaryOperation","src":"3312:4:13"}],"id":8050,"name":"TupleExpression","src":"3311:6:13"}],"id":8051,"name":"BinaryOperation","src":"3249:68:13"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8009,"type":"bool","value":"decimals"},"id":8052,"name":"Identifier","src":"3418:8:13"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7989,"type":"uint256","value":"mintDec"},"id":8053,"name":"Identifier","src":"3554:7:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"mul","referencedDeclaration":1133,"type":"function (uint256,uint256) pure returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7989,"type":"uint256","value":"mintDec"},"id":8054,"name":"Identifier","src":"3564:7:13"}],"id":8055,"name":"MemberAccess","src":"3564:11:13"},{"attributes":{"argumentTypes":null,"hexvalue":"3130","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 10","value":"10"},"id":8056,"name":"Literal","src":"3576:2:13"}],"id":8057,"name":"FunctionCall","src":"3564:15:13"}],"id":8058,"name":"Assignment","src":"3554:25:13"}],"id":8059,"name":"ExpressionStatement","src":"3554:25:13"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7989,"type":"uint256","value":"mintDec"},"id":8060,"name":"Identifier","src":"3601:7:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"add","referencedDeclaration":1205,"type":"function (uint256,uint256) pure returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7989,"type":"uint256","value":"mintDec"},"id":8061,"name":"Identifier","src":"3611:7:13"}],"id":8062,"name":"MemberAccess","src":"3611:11:13"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint"},"id":8063,"name":"ElementaryTypeNameExpression","src":"3623:4:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7979,"type":"bytes memory","value":"inBytes"},"id":8064,"name":"Identifier","src":"3628:7:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8025,"type":"uint256","value":"i"},"id":8065,"name":"Identifier","src":"3636:1:13"}],"id":8066,"name":"IndexAccess","src":"3628:10:13"}],"id":8067,"name":"FunctionCall","src":"3623:16:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint"},"id":8068,"name":"ElementaryTypeNameExpression","src":"3642:4:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7928,"type":"bytes1","value":"_ZERO_ASCII"},"id":8069,"name":"Identifier","src":"3647:11:13"}],"id":8070,"name":"FunctionCall","src":"3642:17:13"}],"id":8071,"name":"BinaryOperation","src":"3623:36:13"}],"id":8072,"name":"FunctionCall","src":"3611:49:13"}],"id":8073,"name":"Assignment","src":"3601:59:13"}],"id":8074,"name":"ExpressionStatement","src":"3601:59:13"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7997,"type":"uint256","value":"decMinted"},"id":8075,"name":"Identifier","src":"3682:9:13"}],"id":8076,"name":"UnaryOperation","src":"3682:11:13"}],"id":8077,"name":"ExpressionStatement","src":"3682:11:13"}],"id":8078,"name":"Block","src":"3428:314:13"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8005,"type":"bool","value":"integral"},"id":8079,"name":"Identifier","src":"3820:8:13"},{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":8080,"name":"Literal","src":"3831:4:13"}],"id":8081,"name":"Assignment","src":"3820:15:13"}],"id":8082,"name":"ExpressionStatement","src":"3820:15:13"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7985,"type":"uint256","value":"mint"},"id":8083,"name":"Identifier","src":"3922:4:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"mul","referencedDeclaration":1133,"type":"function (uint256,uint256) pure returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7985,"type":"uint256","value":"mint"},"id":8084,"name":"Identifier","src":"3929:4:13"}],"id":8085,"name":"MemberAccess","src":"3929:8:13"},{"attributes":{"argumentTypes":null,"hexvalue":"3130","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 10","value":"10"},"id":8086,"name":"Literal","src":"3938:2:13"}],"id":8087,"name":"FunctionCall","src":"3929:12:13"}],"id":8088,"name":"Assignment","src":"3922:19:13"}],"id":8089,"name":"ExpressionStatement","src":"3922:19:13"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7985,"type":"uint256","value":"mint"},"id":8090,"name":"Identifier","src":"3963:4:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"add","referencedDeclaration":1205,"type":"function (uint256,uint256) pure returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7985,"type":"uint256","value":"mint"},"id":8091,"name":"Identifier","src":"3970:4:13"}],"id":8092,"name":"MemberAccess","src":"3970:8:13"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint"},"id":8093,"name":"ElementaryTypeNameExpression","src":"3979:4:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7979,"type":"bytes memory","value":"inBytes"},"id":8094,"name":"Identifier","src":"3984:7:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8025,"type":"uint256","value":"i"},"id":8095,"name":"Identifier","src":"3992:1:13"}],"id":8096,"name":"IndexAccess","src":"3984:10:13"}],"id":8097,"name":"FunctionCall","src":"3979:16:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint"},"id":8098,"name":"ElementaryTypeNameExpression","src":"3998:4:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7928,"type":"bytes1","value":"_ZERO_ASCII"},"id":8099,"name":"Identifier","src":"4003:11:13"}],"id":8100,"name":"FunctionCall","src":"3998:17:13"}],"id":8101,"name":"BinaryOperation","src":"3979:36:13"}],"id":8102,"name":"FunctionCall","src":"3970:46:13"}],"id":8103,"name":"Assignment","src":"3963:53:13"}],"id":8104,"name":"ExpressionStatement","src":"3963:53:13"}],"id":8105,"name":"Block","src":"3748:287:13"}],"id":8106,"name":"IfStatement","src":"3414:621:13"}],"id":8107,"name":"Block","src":"3319:730:13"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&&","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&&","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7979,"type":"bytes memory","value":"inBytes"},"id":8108,"name":"Identifier","src":"4060:7:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8025,"type":"uint256","value":"i"},"id":8109,"name":"Identifier","src":"4068:1:13"}],"id":8110,"name":"IndexAccess","src":"4060:10:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7928,"type":"bytes1","value":"_ZERO_ASCII"},"id":8111,"name":"Identifier","src":"4074:11:13"}],"id":8112,"name":"BinaryOperation","src":"4060:25:13"}],"id":8113,"name":"TupleExpression","src":"4059:27:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7979,"type":"bytes memory","value":"inBytes"},"id":8114,"name":"Identifier","src":"4091:7:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8025,"type":"uint256","value":"i"},"id":8115,"name":"Identifier","src":"4099:1:13"}],"id":8116,"name":"IndexAccess","src":"4091:10:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7933,"type":"bytes1","value":"_NINE_ASCII"},"id":8117,"name":"Identifier","src":"4105:11:13"}],"id":8118,"name":"BinaryOperation","src":"4091:25:13"}],"id":8119,"name":"TupleExpression","src":"4090:27:13"}],"id":8120,"name":"BinaryOperation","src":"4059:58:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8013,"type":"bool","value":"exp"},"id":8121,"name":"Identifier","src":"4122:3:13"}],"id":8122,"name":"TupleExpression","src":"4121:5:13"}],"id":8123,"name":"BinaryOperation","src":"4059:67:13"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7993,"type":"uint256","value":"mintExp"},"id":8124,"name":"Identifier","src":"4229:7:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"mul","referencedDeclaration":1133,"type":"function (uint256,uint256) pure returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7993,"type":"uint256","value":"mintExp"},"id":8125,"name":"Identifier","src":"4239:7:13"}],"id":8126,"name":"MemberAccess","src":"4239:11:13"},{"attributes":{"argumentTypes":null,"hexvalue":"3130","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 10","value":"10"},"id":8127,"name":"Literal","src":"4251:2:13"}],"id":8128,"name":"FunctionCall","src":"4239:15:13"}],"id":8129,"name":"Assignment","src":"4229:25:13"}],"id":8130,"name":"ExpressionStatement","src":"4229:25:13"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7993,"type":"uint256","value":"mintExp"},"id":8131,"name":"Identifier","src":"4272:7:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"add","referencedDeclaration":1205,"type":"function (uint256,uint256) pure returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7993,"type":"uint256","value":"mintExp"},"id":8132,"name":"Identifier","src":"4282:7:13"}],"id":8133,"name":"MemberAccess","src":"4282:11:13"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint"},"id":8134,"name":"ElementaryTypeNameExpression","src":"4294:4:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7979,"type":"bytes memory","value":"inBytes"},"id":8135,"name":"Identifier","src":"4299:7:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8025,"type":"uint256","value":"i"},"id":8136,"name":"Identifier","src":"4307:1:13"}],"id":8137,"name":"IndexAccess","src":"4299:10:13"}],"id":8138,"name":"FunctionCall","src":"4294:16:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint"},"id":8139,"name":"ElementaryTypeNameExpression","src":"4313:4:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7928,"type":"bytes1","value":"_ZERO_ASCII"},"id":8140,"name":"Identifier","src":"4318:11:13"}],"id":8141,"name":"FunctionCall","src":"4313:17:13"}],"id":8142,"name":"BinaryOperation","src":"4294:36:13"}],"id":8143,"name":"FunctionCall","src":"4282:49:13"}],"id":8144,"name":"Assignment","src":"4272:59:13"}],"id":8145,"name":"ExpressionStatement","src":"4272:59:13"}],"id":8146,"name":"Block","src":"4128:218:13"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7979,"type":"bytes memory","value":"inBytes"},"id":8147,"name":"Identifier","src":"4356:7:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8025,"type":"uint256","value":"i"},"id":8148,"name":"Identifier","src":"4364:1:13"}],"id":8149,"name":"IndexAccess","src":"4356:10:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7923,"type":"bytes1","value":"_DOT_ASCII"},"id":8150,"name":"Identifier","src":"4370:10:13"}],"id":8151,"name":"BinaryOperation","src":"4356:24:13"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_dc48b10531bbe78174fcd32830f069ab53734b829ba761f546093e1cc82044f9","typeString":"literal_string \"missing integral part\""}],"overloadedDeclarations":[12019,12020],"referencedDeclaration":12020,"type":"function (bool,string memory) pure","value":"require"},"id":8152,"name":"Identifier","src":"4473:7:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8005,"type":"bool","value":"integral"},"id":8153,"name":"Identifier","src":"4481:8:13"},{"attributes":{"argumentTypes":null,"hexvalue":"6d697373696e6720696e74656772616c2070617274","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"missing integral part\"","value":"missing integral part"},"id":8154,"name":"Literal","src":"4491:23:13"}],"id":8155,"name":"FunctionCall","src":"4473:42:13"}],"id":8156,"name":"ExpressionStatement","src":"4473:42:13"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_faa389cc400e7ca78bd15c3a29e23853df4262382ca0cceec80a1c591657d449","typeString":"literal_string \"duplicate decimal point\""}],"overloadedDeclarations":[12019,12020],"referencedDeclaration":12020,"type":"function (bool,string memory) pure","value":"require"},"id":8157,"name":"Identifier","src":"4600:7:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8009,"type":"bool","value":"decimals"},"id":8158,"name":"Identifier","src":"4609:8:13"}],"id":8159,"name":"UnaryOperation","src":"4608:9:13"},{"attributes":{"argumentTypes":null,"hexvalue":"6475706c696361746520646563696d616c20706f696e74","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"duplicate decimal point\"","value":"duplicate decimal point"},"id":8160,"name":"Literal","src":"4619:25:13"}],"id":8161,"name":"FunctionCall","src":"4600:45:13"}],"id":8162,"name":"ExpressionStatement","src":"4600:45:13"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8883756a1c35ace1de2a0992a35b0cd26b81e10ff40d67218af35e2d14d539dd","typeString":"literal_string \"decimal after exponent\""}],"overloadedDeclarations":[12019,12020],"referencedDeclaration":12020,"type":"function (bool,string memory) pure","value":"require"},"id":8163,"name":"Identifier","src":"4736:7:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8013,"type":"bool","value":"exp"},"id":8164,"name":"Identifier","src":"4745:3:13"}],"id":8165,"name":"UnaryOperation","src":"4744:4:13"},{"attributes":{"argumentTypes":null,"hexvalue":"646563696d616c206166746572206578706f6e656e74","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"decimal after exponent\"","value":"decimal after exponent"},"id":8166,"name":"Literal","src":"4750:24:13"}],"id":8167,"name":"FunctionCall","src":"4736:39:13"}],"id":8168,"name":"ExpressionStatement","src":"4736:39:13"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8009,"type":"bool","value":"decimals"},"id":8169,"name":"Identifier","src":"4793:8:13"},{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":8170,"name":"Literal","src":"4804:4:13"}],"id":8171,"name":"Assignment","src":"4793:15:13"}],"id":8172,"name":"ExpressionStatement","src":"4793:15:13"}],"id":8173,"name":"Block","src":"4382:441:13"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7979,"type":"bytes memory","value":"inBytes"},"id":8174,"name":"Identifier","src":"4833:7:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8025,"type":"uint256","value":"i"},"id":8175,"name":"Identifier","src":"4841:1:13"}],"id":8176,"name":"IndexAccess","src":"4833:10:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7918,"type":"bytes1","value":"_DASH_ASCII"},"id":8177,"name":"Identifier","src":"4847:11:13"}],"id":8178,"name":"BinaryOperation","src":"4833:25:13"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_fddc956a222b6104f304a9e26f8b7fd82d48f9d168c32972a3d2f6ffe06e8c4f","typeString":"literal_string \"duplicate -\""}],"overloadedDeclarations":[12019,12020],"referencedDeclaration":12020,"type":"function (bool,string memory) pure","value":"require"},"id":8179,"name":"Identifier","src":"4952:7:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8017,"type":"bool","value":"minus"},"id":8180,"name":"Identifier","src":"4961:5:13"}],"id":8181,"name":"UnaryOperation","src":"4960:6:13"},{"attributes":{"argumentTypes":null,"hexvalue":"6475706c6963617465202d","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"duplicate -\"","value":"duplicate -"},"id":8182,"name":"Literal","src":"4968:13:13"}],"id":8183,"name":"FunctionCall","src":"4952:30:13"}],"id":8184,"name":"ExpressionStatement","src":"4952:30:13"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_bab8ec0ce562a399c5e585804d653b1b054aeb400ff689348a971eba5722aac6","typeString":"literal_string \"extra sign\""}],"overloadedDeclarations":[12019,12020],"referencedDeclaration":12020,"type":"function (bool,string memory) pure","value":"require"},"id":8185,"name":"Identifier","src":"5000:7:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8021,"type":"bool","value":"plus"},"id":8186,"name":"Identifier","src":"5009:4:13"}],"id":8187,"name":"UnaryOperation","src":"5008:5:13"},{"attributes":{"argumentTypes":null,"hexvalue":"6578747261207369676e","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"extra sign\"","value":"extra sign"},"id":8188,"name":"Literal","src":"5015:12:13"}],"id":8189,"name":"FunctionCall","src":"5000:28:13"}],"id":8190,"name":"ExpressionStatement","src":"5000:28:13"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_08b50295d4c3982734373058e6c6cc20446016e7f4adb2988978b0977d838340","typeString":"literal_string \"- sign not immediately after e\""}],"overloadedDeclarations":[12019,12020],"referencedDeclaration":12020,"type":"function (bool,string memory) pure","value":"require"},"id":8191,"name":"Identifier","src":"5046:7:13"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8001,"type":"uint256","value":"expIndex"},"id":8192,"name":"Identifier","src":"5054:8:13"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":8193,"name":"Literal","src":"5065:1:13"}],"id":8194,"name":"BinaryOperation","src":"5054:12:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8025,"type":"uint256","value":"i"},"id":8195,"name":"Identifier","src":"5070:1:13"}],"id":8196,"name":"BinaryOperation","src":"5054:17:13"},{"attributes":{"argumentTypes":null,"hexvalue":"2d207369676e206e6f7420696d6d6564696174656c792061667465722065","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"- sign not immediately after e\"","value":"- sign not immediately after e"},"id":8197,"name":"Literal","src":"5073:32:13"}],"id":8198,"name":"FunctionCall","src":"5046:60:13"}],"id":8199,"name":"ExpressionStatement","src":"5046:60:13"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8017,"type":"bool","value":"minus"},"id":8200,"name":"Identifier","src":"5124:5:13"},{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":8201,"name":"Literal","src":"5132:4:13"}],"id":8202,"name":"Assignment","src":"5124:12:13"}],"id":8203,"name":"ExpressionStatement","src":"5124:12:13"}],"id":8204,"name":"Block","src":"4860:291:13"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7979,"type":"bytes memory","value":"inBytes"},"id":8205,"name":"Identifier","src":"5161:7:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8025,"type":"uint256","value":"i"},"id":8206,"name":"Identifier","src":"5169:1:13"}],"id":8207,"name":"IndexAccess","src":"5161:10:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7913,"type":"bytes1","value":"_PLUS_ASCII"},"id":8208,"name":"Identifier","src":"5175:11:13"}],"id":8209,"name":"BinaryOperation","src":"5161:25:13"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9fb5f98f55e56ac8a60ebdeabdabc0be14716c6a604a48c04783fed56a7e93a9","typeString":"literal_string \"duplicate +\""}],"overloadedDeclarations":[12019,12020],"referencedDeclaration":12020,"type":"function (bool,string memory) pure","value":"require"},"id":8210,"name":"Identifier","src":"5280:7:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8021,"type":"bool","value":"plus"},"id":8211,"name":"Identifier","src":"5289:4:13"}],"id":8212,"name":"UnaryOperation","src":"5288:5:13"},{"attributes":{"argumentTypes":null,"hexvalue":"6475706c6963617465202b","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"duplicate +\"","value":"duplicate +"},"id":8213,"name":"Literal","src":"5295:13:13"}],"id":8214,"name":"FunctionCall","src":"5280:29:13"}],"id":8215,"name":"ExpressionStatement","src":"5280:29:13"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_bab8ec0ce562a399c5e585804d653b1b054aeb400ff689348a971eba5722aac6","typeString":"literal_string \"extra sign\""}],"overloadedDeclarations":[12019,12020],"referencedDeclaration":12020,"type":"function (bool,string memory) pure","value":"require"},"id":8216,"name":"Identifier","src":"5327:7:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8017,"type":"bool","value":"minus"},"id":8217,"name":"Identifier","src":"5336:5:13"}],"id":8218,"name":"UnaryOperation","src":"5335:6:13"},{"attributes":{"argumentTypes":null,"hexvalue":"6578747261207369676e","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"extra sign\"","value":"extra sign"},"id":8219,"name":"Literal","src":"5343:12:13"}],"id":8220,"name":"FunctionCall","src":"5327:29:13"}],"id":8221,"name":"ExpressionStatement","src":"5327:29:13"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0b6894ec12a87b2f0d7040decb56cfcd2617efb2e364cbbbf577d371ad72c6fc","typeString":"literal_string \"+ sign not immediately after e\""}],"overloadedDeclarations":[12019,12020],"referencedDeclaration":12020,"type":"function (bool,string memory) pure","value":"require"},"id":8222,"name":"Identifier","src":"5374:7:13"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8001,"type":"uint256","value":"expIndex"},"id":8223,"name":"Identifier","src":"5382:8:13"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":8224,"name":"Literal","src":"5393:1:13"}],"id":8225,"name":"BinaryOperation","src":"5382:12:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8025,"type":"uint256","value":"i"},"id":8226,"name":"Identifier","src":"5398:1:13"}],"id":8227,"name":"BinaryOperation","src":"5382:17:13"},{"attributes":{"argumentTypes":null,"hexvalue":"2b207369676e206e6f7420696d6d6564696174656c792061667465722065","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"+ sign not immediately after e\"","value":"+ sign not immediately after e"},"id":8228,"name":"Literal","src":"5401:32:13"}],"id":8229,"name":"FunctionCall","src":"5374:60:13"}],"id":8230,"name":"ExpressionStatement","src":"5374:60:13"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8021,"type":"bool","value":"plus"},"id":8231,"name":"Identifier","src":"5452:4:13"},{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":8232,"name":"Literal","src":"5459:4:13"}],"id":8233,"name":"Assignment","src":"5452:11:13"}],"id":8234,"name":"ExpressionStatement","src":"5452:11:13"}],"id":8235,"name":"Block","src":"5188:290:13"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"||","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7979,"type":"bytes memory","value":"inBytes"},"id":8236,"name":"Identifier","src":"5489:7:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8025,"type":"uint256","value":"i"},"id":8237,"name":"Identifier","src":"5497:1:13"}],"id":8238,"name":"IndexAccess","src":"5489:10:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7938,"type":"bytes1","value":"_E_ASCII"},"id":8239,"name":"Identifier","src":"5503:8:13"}],"id":8240,"name":"BinaryOperation","src":"5489:22:13"}],"id":8241,"name":"TupleExpression","src":"5488:24:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7979,"type":"bytes memory","value":"inBytes"},"id":8242,"name":"Identifier","src":"5517:7:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8025,"type":"uint256","value":"i"},"id":8243,"name":"Identifier","src":"5525:1:13"}],"id":8244,"name":"IndexAccess","src":"5517:10:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7943,"type":"bytes1","value":"_LOWERCASE_E_ASCII"},"id":8245,"name":"Identifier","src":"5531:18:13"}],"id":8246,"name":"BinaryOperation","src":"5517:32:13"}],"id":8247,"name":"TupleExpression","src":"5516:34:13"}],"id":8248,"name":"BinaryOperation","src":"5488:62:13"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_dc48b10531bbe78174fcd32830f069ab53734b829ba761f546093e1cc82044f9","typeString":"literal_string \"missing integral part\""}],"overloadedDeclarations":[12019,12020],"referencedDeclaration":12020,"type":"function (bool,string memory) pure","value":"require"},"id":8249,"name":"Identifier","src":"5643:7:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8005,"type":"bool","value":"integral"},"id":8250,"name":"Identifier","src":"5651:8:13"},{"attributes":{"argumentTypes":null,"hexvalue":"6d697373696e6720696e74656772616c2070617274","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"missing integral part\"","value":"missing integral part"},"id":8251,"name":"Literal","src":"5661:23:13"}],"id":8252,"name":"FunctionCall","src":"5643:42:13"}],"id":8253,"name":"ExpressionStatement","src":"5643:42:13"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8221306681a4710f7101aebec1a9ed39a02e65f2053accb8da82a8b8d265178b","typeString":"literal_string \"duplicate exponent symbol\""}],"overloadedDeclarations":[12019,12020],"referencedDeclaration":12020,"type":"function (bool,string memory) pure","value":"require"},"id":8254,"name":"Identifier","src":"5784:7:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8013,"type":"bool","value":"exp"},"id":8255,"name":"Identifier","src":"5793:3:13"}],"id":8256,"name":"UnaryOperation","src":"5792:4:13"},{"attributes":{"argumentTypes":null,"hexvalue":"6475706c6963617465206578706f6e656e742073796d626f6c","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"duplicate exponent symbol\"","value":"duplicate exponent symbol"},"id":8257,"name":"Literal","src":"5798:27:13"}],"id":8258,"name":"FunctionCall","src":"5784:42:13"}],"id":8259,"name":"ExpressionStatement","src":"5784:42:13"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8013,"type":"bool","value":"exp"},"id":8260,"name":"Identifier","src":"5844:3:13"},{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":8261,"name":"Literal","src":"5850:4:13"}],"id":8262,"name":"Assignment","src":"5844:10:13"}],"id":8263,"name":"ExpressionStatement","src":"5844:10:13"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8001,"type":"uint256","value":"expIndex"},"id":8264,"name":"Identifier","src":"5872:8:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8025,"type":"uint256","value":"i"},"id":8265,"name":"Identifier","src":"5883:1:13"}],"id":8266,"name":"Assignment","src":"5872:12:13"}],"id":8267,"name":"ExpressionStatement","src":"5872:12:13"}],"id":8268,"name":"Block","src":"5552:347:13"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_263e499057963449b94813024f498810f3a67efd8a4e3f85263ed86cf4c882d4","typeString":"literal_string \"invalid digit\""}],"overloadedDeclarations":[12021,12022],"referencedDeclaration":12022,"type":"function (string memory) pure","value":"revert"},"id":8269,"name":"Identifier","src":"5923:6:13"},{"attributes":{"argumentTypes":null,"hexvalue":"696e76616c6964206469676974","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"invalid digit\"","value":"invalid digit"},"id":8270,"name":"Literal","src":"5930:15:13"}],"id":8271,"name":"FunctionCall","src":"5923:23:13"}],"id":8272,"name":"ExpressionStatement","src":"5923:23:13"}],"id":8273,"name":"Block","src":"5905:56:13"}],"id":8274,"name":"IfStatement","src":"5484:477:13"}],"id":8275,"name":"IfStatement","src":"5157:804:13"}],"id":8276,"name":"IfStatement","src":"4829:1132:13"}],"id":8277,"name":"IfStatement","src":"4352:1609:13"}],"id":8278,"name":"IfStatement","src":"4055:1906:13"}],"id":8279,"name":"IfStatement","src":"3245:2716:13"}],"id":8280,"name":"Block","src":"3231:2740:13"}],"id":8281,"name":"ForStatement","src":"3189:2782:13"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"||","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8017,"type":"bool","value":"minus"},"id":8282,"name":"Identifier","src":"5985:5:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8021,"type":"bool","value":"plus"},"id":8283,"name":"Identifier","src":"5994:4:13"}],"id":8284,"name":"BinaryOperation","src":"5985:13:13"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"overloadedDeclarations":[12019,12020],"referencedDeclaration":12019,"type":"function (bool) pure","value":"require"},"id":8285,"name":"Identifier","src":"6082:7:13"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8025,"type":"uint256","value":"i"},"id":8286,"name":"Identifier","src":"6090:1:13"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8001,"type":"uint256","value":"expIndex"},"id":8287,"name":"Identifier","src":"6094:8:13"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":8288,"name":"Literal","src":"6105:1:13"}],"id":8289,"name":"BinaryOperation","src":"6094:12:13"}],"id":8290,"name":"BinaryOperation","src":"6090:16:13"}],"id":8291,"name":"FunctionCall","src":"6082:25:13"}],"id":8292,"name":"ExpressionStatement","src":"6082:25:13"}],"id":8293,"name":"Block","src":"6000:118:13"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8013,"type":"bool","value":"exp"},"id":8294,"name":"Identifier","src":"6128:3:13"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"overloadedDeclarations":[12019,12020],"referencedDeclaration":12019,"type":"function (bool) pure","value":"require"},"id":8295,"name":"Identifier","src":"6212:7:13"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8025,"type":"uint256","value":"i"},"id":8296,"name":"Identifier","src":"6220:1:13"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8001,"type":"uint256","value":"expIndex"},"id":8297,"name":"Identifier","src":"6224:8:13"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":8298,"name":"Literal","src":"6235:1:13"}],"id":8299,"name":"BinaryOperation","src":"6224:12:13"}],"id":8300,"name":"BinaryOperation","src":"6220:16:13"}],"id":8301,"name":"FunctionCall","src":"6212:25:13"}],"id":8302,"name":"ExpressionStatement","src":"6212:25:13"}],"id":8303,"name":"Block","src":"6133:115:13"}],"id":8304,"name":"IfStatement","src":"6124:124:13"}],"id":8305,"name":"IfStatement","src":"5981:267:13"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8017,"type":"bool","value":"minus"},"id":8306,"name":"Identifier","src":"6262:5:13"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7993,"type":"uint256","value":"mintExp"},"id":8307,"name":"Identifier","src":"6309:7:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7973,"type":"uint256","value":"_magnitudeMult"},"id":8308,"name":"Identifier","src":"6320:14:13"}],"id":8309,"name":"BinaryOperation","src":"6309:25:13"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f98424152698a23aa5d00b5ca124c02ac74940e78996da7992f427dbf3c7fbaa","typeString":"literal_string \"exponent > 77\""}],"overloadedDeclarations":[12019,12020],"referencedDeclaration":12020,"type":"function (bool,string memory) pure","value":"require"},"id":8310,"name":"Identifier","src":"6518:7:13"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7993,"type":"uint256","value":"mintExp"},"id":8311,"name":"Identifier","src":"6526:7:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7973,"type":"uint256","value":"_magnitudeMult"},"id":8312,"name":"Identifier","src":"6536:14:13"}],"id":8313,"name":"BinaryOperation","src":"6526:24:13"},{"attributes":{"argumentTypes":null,"hexvalue":"3738","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 78","value":"78"},"id":8314,"name":"Literal","src":"6553:2:13"}],"id":8315,"name":"BinaryOperation","src":"6526:29:13"},{"attributes":{"argumentTypes":null,"hexvalue":"6578706f6e656e74203e203737","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"exponent > 77\"","value":"exponent > 77"},"id":8316,"name":"Literal","src":"6557:15:13"}],"id":8317,"name":"FunctionCall","src":"6518:55:13"}],"id":8318,"name":"ExpressionStatement","src":"6518:55:13"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"/=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7985,"type":"uint256","value":"mint"},"id":8319,"name":"Identifier","src":"6594:4:13"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"**","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3130","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 10","value":"10"},"id":8320,"name":"Literal","src":"6602:2:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7993,"type":"uint256","value":"mintExp"},"id":8321,"name":"Identifier","src":"6609:7:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7973,"type":"uint256","value":"_magnitudeMult"},"id":8322,"name":"Identifier","src":"6619:14:13"}],"id":8323,"name":"BinaryOperation","src":"6609:24:13"}],"id":8324,"name":"TupleExpression","src":"6608:26:13"}],"id":8325,"name":"BinaryOperation","src":"6602:32:13"}],"id":8326,"name":"Assignment","src":"6594:40:13"}],"id":8327,"name":"ExpressionStatement","src":"6594:40:13"},{"attributes":{"functionReturnParameters":7977},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7985,"type":"uint256","value":"mint"},"id":8328,"name":"Identifier","src":"6659:4:13"}],"id":8329,"name":"Return","src":"6652:11:13"}],"id":8330,"name":"Block","src":"6336:343:13"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7973,"type":"uint256","value":"_magnitudeMult"},"id":8331,"name":"Identifier","src":"6849:14:13"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7973,"type":"uint256","value":"_magnitudeMult"},"id":8332,"name":"Identifier","src":"6866:14:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7993,"type":"uint256","value":"mintExp"},"id":8333,"name":"Identifier","src":"6883:7:13"}],"id":8334,"name":"BinaryOperation","src":"6866:24:13"}],"id":8335,"name":"Assignment","src":"6849:41:13"}],"id":8336,"name":"ExpressionStatement","src":"6849:41:13"}],"id":8337,"name":"Block","src":"6685:220:13"}],"id":8338,"name":"IfStatement","src":"6305:600:13"}],"id":8339,"name":"Block","src":"6269:646:13"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7973,"type":"uint256","value":"_magnitudeMult"},"id":8340,"name":"Identifier","src":"7089:14:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"add","referencedDeclaration":1205,"type":"function (uint256,uint256) pure returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7973,"type":"uint256","value":"_magnitudeMult"},"id":8341,"name":"Identifier","src":"7106:14:13"}],"id":8342,"name":"MemberAccess","src":"7106:18:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7993,"type":"uint256","value":"mintExp"},"id":8343,"name":"Identifier","src":"7125:7:13"}],"id":8344,"name":"FunctionCall","src":"7106:27:13"}],"id":8345,"name":"Assignment","src":"7089:44:13"}],"id":8346,"name":"ExpressionStatement","src":"7089:44:13"}],"id":8347,"name":"Block","src":"6921:223:13"}],"id":8348,"name":"IfStatement","src":"6258:886:13"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7973,"type":"uint256","value":"_magnitudeMult"},"id":8349,"name":"Identifier","src":"7158:14:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7997,"type":"uint256","value":"decMinted"},"id":8350,"name":"Identifier","src":"7176:9:13"}],"id":8351,"name":"BinaryOperation","src":"7158:27:13"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_545d4fd2fc2d29577ea509f1f1de73a3a1e163ebbff71e310c3e36a13d2fa3fb","typeString":"literal_string \"more than 77 decimal digits parsed\""}],"overloadedDeclarations":[12019,12020],"referencedDeclaration":12020,"type":"function (bool,string memory) pure","value":"require"},"id":8352,"name":"Identifier","src":"7406:7:13"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7997,"type":"uint256","value":"decMinted"},"id":8353,"name":"Identifier","src":"7414:9:13"},{"attributes":{"argumentTypes":null,"hexvalue":"3738","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 78","value":"78"},"id":8354,"name":"Literal","src":"7426:2:13"}],"id":8355,"name":"BinaryOperation","src":"7414:14:13"},{"attributes":{"argumentTypes":null,"hexvalue":"6d6f7265207468616e20373720646563696d616c2064696769747320706172736564","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"more than 77 decimal digits parsed\"","value":"more than 77 decimal digits parsed"},"id":8356,"name":"Literal","src":"7430:36:13"}],"id":8357,"name":"FunctionCall","src":"7406:61:13"}],"id":8358,"name":"ExpressionStatement","src":"7406:61:13"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7985,"type":"uint256","value":"mint"},"id":8359,"name":"Identifier","src":"7484:4:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"mul","referencedDeclaration":1133,"type":"function (uint256,uint256) pure returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7985,"type":"uint256","value":"mint"},"id":8360,"name":"Identifier","src":"7491:4:13"}],"id":8361,"name":"MemberAccess","src":"7491:8:13"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"**","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3130","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 10","value":"10"},"id":8362,"name":"Literal","src":"7500:2:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7997,"type":"uint256","value":"decMinted"},"id":8363,"name":"Identifier","src":"7507:9:13"}],"id":8364,"name":"TupleExpression","src":"7506:11:13"}],"id":8365,"name":"BinaryOperation","src":"7500:17:13"}],"id":8366,"name":"FunctionCall","src":"7491:27:13"}],"id":8367,"name":"Assignment","src":"7484:34:13"}],"id":8368,"name":"ExpressionStatement","src":"7484:34:13"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7985,"type":"uint256","value":"mint"},"id":8369,"name":"Identifier","src":"7532:4:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"add","referencedDeclaration":1205,"type":"function (uint256,uint256) pure returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7985,"type":"uint256","value":"mint"},"id":8370,"name":"Identifier","src":"7539:4:13"}],"id":8371,"name":"MemberAccess","src":"7539:8:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7989,"type":"uint256","value":"mintDec"},"id":8372,"name":"Identifier","src":"7548:7:13"}],"id":8373,"name":"FunctionCall","src":"7539:17:13"}],"id":8374,"name":"Assignment","src":"7532:24:13"}],"id":8375,"name":"ExpressionStatement","src":"7532:24:13"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f98424152698a23aa5d00b5ca124c02ac74940e78996da7992f427dbf3c7fbaa","typeString":"literal_string \"exponent > 77\""}],"overloadedDeclarations":[12019,12020],"referencedDeclaration":12020,"type":"function (bool,string memory) pure","value":"require"},"id":8376,"name":"Identifier","src":"7656:7:13"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7973,"type":"uint256","value":"_magnitudeMult"},"id":8377,"name":"Identifier","src":"7664:14:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7997,"type":"uint256","value":"decMinted"},"id":8378,"name":"Identifier","src":"7681:9:13"}],"id":8379,"name":"BinaryOperation","src":"7664:26:13"},{"attributes":{"argumentTypes":null,"hexvalue":"3738","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 78","value":"78"},"id":8380,"name":"Literal","src":"7693:2:13"}],"id":8381,"name":"BinaryOperation","src":"7664:31:13"},{"attributes":{"argumentTypes":null,"hexvalue":"6578706f6e656e74203e203737","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"exponent > 77\"","value":"exponent > 77"},"id":8382,"name":"Literal","src":"7697:15:13"}],"id":8383,"name":"FunctionCall","src":"7656:57:13"}],"id":8384,"name":"ExpressionStatement","src":"7656:57:13"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7985,"type":"uint256","value":"mint"},"id":8385,"name":"Identifier","src":"7730:4:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"mul","referencedDeclaration":1133,"type":"function (uint256,uint256) pure returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7985,"type":"uint256","value":"mint"},"id":8386,"name":"Identifier","src":"7737:4:13"}],"id":8387,"name":"MemberAccess","src":"7737:8:13"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"**","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3130","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 10","value":"10"},"id":8388,"name":"Literal","src":"7746:2:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7973,"type":"uint256","value":"_magnitudeMult"},"id":8389,"name":"Identifier","src":"7753:14:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7997,"type":"uint256","value":"decMinted"},"id":8390,"name":"Identifier","src":"7770:9:13"}],"id":8391,"name":"BinaryOperation","src":"7753:26:13"}],"id":8392,"name":"TupleExpression","src":"7752:28:13"}],"id":8393,"name":"BinaryOperation","src":"7746:34:13"}],"id":8394,"name":"FunctionCall","src":"7737:44:13"}],"id":8395,"name":"Assignment","src":"7730:51:13"}],"id":8396,"name":"ExpressionStatement","src":"7730:51:13"}],"id":8397,"name":"Block","src":"7187:605:13"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7997,"type":"uint256","value":"decMinted"},"id":8398,"name":"Identifier","src":"7939:9:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7973,"type":"uint256","value":"_magnitudeMult"},"id":8399,"name":"Identifier","src":"7952:14:13"}],"id":8400,"name":"Assignment","src":"7939:27:13"}],"id":8401,"name":"ExpressionStatement","src":"7939:27:13"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_545d4fd2fc2d29577ea509f1f1de73a3a1e163ebbff71e310c3e36a13d2fa3fb","typeString":"literal_string \"more than 77 decimal digits parsed\""}],"overloadedDeclarations":[12019,12020],"referencedDeclaration":12020,"type":"function (bool,string memory) pure","value":"require"},"id":8402,"name":"Identifier","src":"7980:7:13"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7997,"type":"uint256","value":"decMinted"},"id":8403,"name":"Identifier","src":"7988:9:13"},{"attributes":{"argumentTypes":null,"hexvalue":"3738","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 78","value":"78"},"id":8404,"name":"Literal","src":"8000:2:13"}],"id":8405,"name":"BinaryOperation","src":"7988:14:13"},{"attributes":{"argumentTypes":null,"hexvalue":"6d6f7265207468616e20373720646563696d616c2064696769747320706172736564","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"more than 77 decimal digits parsed\"","value":"more than 77 decimal digits parsed"},"id":8406,"name":"Literal","src":"8004:36:13"}],"id":8407,"name":"FunctionCall","src":"7980:61:13"}],"id":8408,"name":"ExpressionStatement","src":"7980:61:13"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"/=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7989,"type":"uint256","value":"mintDec"},"id":8409,"name":"Identifier","src":"8058:7:13"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"**","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3130","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 10","value":"10"},"id":8410,"name":"Literal","src":"8069:2:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7997,"type":"uint256","value":"decMinted"},"id":8411,"name":"Identifier","src":"8076:9:13"}],"id":8412,"name":"TupleExpression","src":"8075:11:13"}],"id":8413,"name":"BinaryOperation","src":"8069:17:13"}],"id":8414,"name":"Assignment","src":"8058:28:13"}],"id":8415,"name":"ExpressionStatement","src":"8058:28:13"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_545d4fd2fc2d29577ea509f1f1de73a3a1e163ebbff71e310c3e36a13d2fa3fb","typeString":"literal_string \"more than 77 decimal digits parsed\""}],"overloadedDeclarations":[12019,12020],"referencedDeclaration":12020,"type":"function (bool,string memory) pure","value":"require"},"id":8416,"name":"Identifier","src":"8160:7:13"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7973,"type":"uint256","value":"_magnitudeMult"},"id":8417,"name":"Identifier","src":"8168:14:13"},{"attributes":{"argumentTypes":null,"hexvalue":"3738","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 78","value":"78"},"id":8418,"name":"Literal","src":"8185:2:13"}],"id":8419,"name":"BinaryOperation","src":"8168:19:13"},{"attributes":{"argumentTypes":null,"hexvalue":"6d6f7265207468616e20373720646563696d616c2064696769747320706172736564","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"more than 77 decimal digits parsed\"","value":"more than 77 decimal digits parsed"},"id":8420,"name":"Literal","src":"8189:36:13"}],"id":8421,"name":"FunctionCall","src":"8160:66:13"}],"id":8422,"name":"ExpressionStatement","src":"8160:66:13"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7985,"type":"uint256","value":"mint"},"id":8423,"name":"Identifier","src":"8243:4:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"mul","referencedDeclaration":1133,"type":"function (uint256,uint256) pure returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7985,"type":"uint256","value":"mint"},"id":8424,"name":"Identifier","src":"8250:4:13"}],"id":8425,"name":"MemberAccess","src":"8250:8:13"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"**","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3130","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 10","value":"10"},"id":8426,"name":"Literal","src":"8259:2:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7973,"type":"uint256","value":"_magnitudeMult"},"id":8427,"name":"Identifier","src":"8266:14:13"}],"id":8428,"name":"TupleExpression","src":"8265:16:13"}],"id":8429,"name":"BinaryOperation","src":"8259:22:13"}],"id":8430,"name":"FunctionCall","src":"8250:32:13"}],"id":8431,"name":"Assignment","src":"8243:39:13"}],"id":8432,"name":"ExpressionStatement","src":"8243:39:13"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7985,"type":"uint256","value":"mint"},"id":8433,"name":"Identifier","src":"8296:4:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"add","referencedDeclaration":1205,"type":"function (uint256,uint256) pure returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7985,"type":"uint256","value":"mint"},"id":8434,"name":"Identifier","src":"8303:4:13"}],"id":8435,"name":"MemberAccess","src":"8303:8:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7989,"type":"uint256","value":"mintDec"},"id":8436,"name":"Identifier","src":"8312:7:13"}],"id":8437,"name":"FunctionCall","src":"8303:17:13"}],"id":8438,"name":"Assignment","src":"8296:24:13"}],"id":8439,"name":"ExpressionStatement","src":"8296:24:13"}],"id":8440,"name":"Block","src":"7798:533:13"}],"id":8441,"name":"IfStatement","src":"7154:1177:13"},{"attributes":{"functionReturnParameters":7977},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7985,"type":"uint256","value":"mint"},"id":8442,"name":"Identifier","src":"8348:4:13"}],"id":8443,"name":"Return","src":"8341:11:13"}],"id":8444,"name":"Block","src":"2340:6019:13"}],"id":8445,"name":"FunctionDefinition","src":"2243:6116:13"}],"id":8446,"name":"ContractDefinition","src":"952:7409:13"}],"id":8447,"name":"SourceUnit","src":"777:7585:13"}},"internals/tokenWhitelist.sol":{"AST":{"attributes":{"absolutePath":"internals/tokenWhitelist.sol","exportedSymbols":{"ITokenWhitelist":[9656],"TokenWhitelist":[10149]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".25"]},"id":9595,"name":"PragmaDirective","src":"774:24:14"},{"attributes":{"SourceUnit":10307,"absolutePath":"internals/ownable.sol","file":"./ownable.sol","scope":10150,"symbolAliases":[null],"unitAlias":""},"id":9596,"name":"ImportDirective","src":"800:23:14"},{"attributes":{"SourceUnit":7683,"absolutePath":"internals/controllable.sol","file":"./controllable.sol","scope":10150,"symbolAliases":[null],"unitAlias":""},"id":9597,"name":"ImportDirective","src":"824:28:14"},{"attributes":{"SourceUnit":12002,"absolutePath":"externals/strings.sol","file":"../externals/strings.sol","scope":10150,"symbolAliases":[null],"unitAlias":""},"id":9598,"name":"ImportDirective","src":"853:34:14"},{"attributes":{"SourceUnit":1227,"absolutePath":"externals/SafeMath.sol","file":"../externals/SafeMath.sol","scope":10150,"symbolAliases":[null],"unitAlias":""},"id":9599,"name":"ImportDirective","src":"888:35:14"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"interface","documentation":"@title The ITokenWhitelist interface provides access to a whitelist of tokens.","fullyImplemented":false,"linearizedBaseContracts":[9656],"name":"ITokenWhitelist","scope":10150},"children":[{"attributes":{"body":null,"constant":true,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"getTokenInfo","payable":false,"scope":9656,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"","scope":9618,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":9600,"name":"ElementaryTypeName","src":"1062:7:14"}],"id":9601,"name":"VariableDeclaration","src":"1062:7:14"}],"id":9602,"name":"ParameterList","src":"1061:9:14"},{"children":[{"attributes":{"constant":false,"name":"","scope":9618,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":9603,"name":"ElementaryTypeName","src":"1094:6:14"}],"id":9604,"name":"VariableDeclaration","src":"1094:6:14"},{"attributes":{"constant":false,"name":"","scope":9618,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":9605,"name":"ElementaryTypeName","src":"1102:7:14"}],"id":9606,"name":"VariableDeclaration","src":"1102:7:14"},{"attributes":{"constant":false,"name":"","scope":9618,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":9607,"name":"ElementaryTypeName","src":"1111:7:14"}],"id":9608,"name":"VariableDeclaration","src":"1111:7:14"},{"attributes":{"constant":false,"name":"","scope":9618,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":9609,"name":"ElementaryTypeName","src":"1120:4:14"}],"id":9610,"name":"VariableDeclaration","src":"1120:4:14"},{"attributes":{"constant":false,"name":"","scope":9618,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":9611,"name":"ElementaryTypeName","src":"1126:4:14"}],"id":9612,"name":"VariableDeclaration","src":"1126:4:14"},{"attributes":{"constant":false,"name":"","scope":9618,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":9613,"name":"ElementaryTypeName","src":"1132:4:14"}],"id":9614,"name":"VariableDeclaration","src":"1132:4:14"},{"attributes":{"constant":false,"name":"","scope":9618,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":9615,"name":"ElementaryTypeName","src":"1138:7:14"}],"id":9616,"name":"VariableDeclaration","src":"1138:7:14"}],"id":9617,"name":"ParameterList","src":"1093:53:14"}],"id":9618,"name":"FunctionDefinition","src":"1040:107:14"},{"attributes":{"body":null,"constant":true,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"getStablecoinInfo","payable":false,"scope":9656,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":9619,"name":"ParameterList","src":"1178:2:14"},{"children":[{"attributes":{"constant":false,"name":"","scope":9635,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":9620,"name":"ElementaryTypeName","src":"1204:6:14"}],"id":9621,"name":"VariableDeclaration","src":"1204:6:14"},{"attributes":{"constant":false,"name":"","scope":9635,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":9622,"name":"ElementaryTypeName","src":"1212:7:14"}],"id":9623,"name":"VariableDeclaration","src":"1212:7:14"},{"attributes":{"constant":false,"name":"","scope":9635,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":9624,"name":"ElementaryTypeName","src":"1221:7:14"}],"id":9625,"name":"VariableDeclaration","src":"1221:7:14"},{"attributes":{"constant":false,"name":"","scope":9635,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":9626,"name":"ElementaryTypeName","src":"1230:4:14"}],"id":9627,"name":"VariableDeclaration","src":"1230:4:14"},{"attributes":{"constant":false,"name":"","scope":9635,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":9628,"name":"ElementaryTypeName","src":"1236:4:14"}],"id":9629,"name":"VariableDeclaration","src":"1236:4:14"},{"attributes":{"constant":false,"name":"","scope":9635,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":9630,"name":"ElementaryTypeName","src":"1242:4:14"}],"id":9631,"name":"VariableDeclaration","src":"1242:4:14"},{"attributes":{"constant":false,"name":"","scope":9635,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":9632,"name":"ElementaryTypeName","src":"1248:7:14"}],"id":9633,"name":"VariableDeclaration","src":"1248:7:14"}],"id":9634,"name":"ParameterList","src":"1203:53:14"}],"id":9635,"name":"FunctionDefinition","src":"1152:105:14"},{"attributes":{"body":null,"constant":true,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"tokenAddressArray","payable":false,"scope":9656,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":9636,"name":"ParameterList","src":"1288:2:14"},{"children":[{"attributes":{"constant":false,"name":"","scope":9641,"stateVariable":false,"storageLocation":"default","type":"address[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"address[]"},"children":[{"attributes":{"name":"address","type":"address"},"id":9637,"name":"ElementaryTypeName","src":"1314:7:14"}],"id":9638,"name":"ArrayTypeName","src":"1314:9:14"}],"id":9639,"name":"VariableDeclaration","src":"1314:9:14"}],"id":9640,"name":"ParameterList","src":"1313:11:14"}],"id":9641,"name":"FunctionDefinition","src":"1262:63:14"},{"attributes":{"body":null,"constant":false,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"updateTokenRate","payable":false,"scope":9656,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"","scope":9650,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":9642,"name":"ElementaryTypeName","src":"1355:7:14"}],"id":9643,"name":"VariableDeclaration","src":"1355:7:14"},{"attributes":{"constant":false,"name":"","scope":9650,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":9644,"name":"ElementaryTypeName","src":"1364:4:14"}],"id":9645,"name":"VariableDeclaration","src":"1364:4:14"},{"attributes":{"constant":false,"name":"","scope":9650,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":9646,"name":"ElementaryTypeName","src":"1370:4:14"}],"id":9647,"name":"VariableDeclaration","src":"1370:4:14"}],"id":9648,"name":"ParameterList","src":"1354:21:14"},{"attributes":{"parameters":[null]},"children":[],"id":9649,"name":"ParameterList","src":"1384:0:14"}],"id":9650,"name":"FunctionDefinition","src":"1330:55:14"},{"attributes":{"body":null,"constant":true,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"stablecoin","payable":false,"scope":9656,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":9651,"name":"ParameterList","src":"1409:2:14"},{"children":[{"attributes":{"constant":false,"name":"","scope":9655,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":9652,"name":"ElementaryTypeName","src":"1435:7:14"}],"id":9653,"name":"VariableDeclaration","src":"1435:7:14"}],"id":9654,"name":"ParameterList","src":"1434:9:14"}],"id":9655,"name":"FunctionDefinition","src":"1390:54:14"}],"id":9656,"name":"ContractDefinition","src":"1008:438:14"},{"attributes":{"contractDependencies":[7682,7902,10306],"contractKind":"contract","documentation":"@title TokenWhitelist stores a list of tokens used by the Consumer Contract Wallet, the Oracle, the TKN Holder and the TKN Licence Contract","fullyImplemented":true,"linearizedBaseContracts":[10149,10306,7682,7902],"name":"TokenWhitelist","scope":10150},"children":[{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"ENSResolvable","referencedDeclaration":7902,"type":"contract ENSResolvable"},"id":9657,"name":"UserDefinedTypeName","src":"1620:13:14"}],"id":9658,"name":"InheritanceSpecifier","src":"1620:13:14"},{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"Controllable","referencedDeclaration":7682,"type":"contract Controllable"},"id":9659,"name":"UserDefinedTypeName","src":"1635:12:14"}],"id":9660,"name":"InheritanceSpecifier","src":"1635:12:14"},{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"Ownable","referencedDeclaration":10306,"type":"contract Ownable"},"id":9661,"name":"UserDefinedTypeName","src":"1649:7:14"}],"id":9662,"name":"InheritanceSpecifier","src":"1649:7:14"},{"attributes":{"typeName":null},"children":[{"attributes":{"contractScope":null,"name":"strings","referencedDeclaration":12001,"type":"library strings"},"id":9663,"name":"UserDefinedTypeName","src":"1669:7:14"}],"id":9664,"name":"UsingForDirective","src":"1663:20:14"},{"children":[{"attributes":{"contractScope":null,"name":"SafeMath","referencedDeclaration":1226,"type":"library SafeMath"},"id":9665,"name":"UserDefinedTypeName","src":"1694:8:14"},{"attributes":{"name":"uint256","type":"uint256"},"id":9666,"name":"ElementaryTypeName","src":"1707:7:14"}],"id":9667,"name":"UsingForDirective","src":"1688:27:14"},{"attributes":{"anonymous":false,"documentation":null,"name":"UpdatedTokenRate"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_sender","scope":9675,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":9668,"name":"ElementaryTypeName","src":"1744:7:14"}],"id":9669,"name":"VariableDeclaration","src":"1744:15:14"},{"attributes":{"constant":false,"indexed":false,"name":"_token","scope":9675,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":9670,"name":"ElementaryTypeName","src":"1761:7:14"}],"id":9671,"name":"VariableDeclaration","src":"1761:14:14"},{"attributes":{"constant":false,"indexed":false,"name":"_rate","scope":9675,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":9672,"name":"ElementaryTypeName","src":"1777:4:14"}],"id":9673,"name":"VariableDeclaration","src":"1777:10:14"}],"id":9674,"name":"ParameterList","src":"1743:45:14"}],"id":9675,"name":"EventDefinition","src":"1721:68:14"},{"attributes":{"anonymous":false,"documentation":null,"name":"AddedToken"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_sender","scope":9689,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":9676,"name":"ElementaryTypeName","src":"1812:7:14"}],"id":9677,"name":"VariableDeclaration","src":"1812:15:14"},{"attributes":{"constant":false,"indexed":false,"name":"_token","scope":9689,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":9678,"name":"ElementaryTypeName","src":"1829:7:14"}],"id":9679,"name":"VariableDeclaration","src":"1829:14:14"},{"attributes":{"constant":false,"indexed":false,"name":"_symbol","scope":9689,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":9680,"name":"ElementaryTypeName","src":"1845:6:14"}],"id":9681,"name":"VariableDeclaration","src":"1845:14:14"},{"attributes":{"constant":false,"indexed":false,"name":"_magnitude","scope":9689,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":9682,"name":"ElementaryTypeName","src":"1861:4:14"}],"id":9683,"name":"VariableDeclaration","src":"1861:15:14"},{"attributes":{"constant":false,"indexed":false,"name":"_loadable","scope":9689,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":9684,"name":"ElementaryTypeName","src":"1878:4:14"}],"id":9685,"name":"VariableDeclaration","src":"1878:14:14"},{"attributes":{"constant":false,"indexed":false,"name":"_burnable","scope":9689,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":9686,"name":"ElementaryTypeName","src":"1894:4:14"}],"id":9687,"name":"VariableDeclaration","src":"1894:14:14"}],"id":9688,"name":"ParameterList","src":"1811:98:14"}],"id":9689,"name":"EventDefinition","src":"1795:115:14"},{"attributes":{"anonymous":false,"documentation":null,"name":"RemovedToken"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_sender","scope":9695,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":9690,"name":"ElementaryTypeName","src":"1934:7:14"}],"id":9691,"name":"VariableDeclaration","src":"1934:15:14"},{"attributes":{"constant":false,"indexed":false,"name":"_token","scope":9695,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":9692,"name":"ElementaryTypeName","src":"1951:7:14"}],"id":9693,"name":"VariableDeclaration","src":"1951:14:14"}],"id":9694,"name":"ParameterList","src":"1933:33:14"}],"id":9695,"name":"EventDefinition","src":"1915:52:14"},{"attributes":{"canonicalName":"TokenWhitelist.Token","name":"Token","scope":10149,"visibility":"public"},"children":[{"attributes":{"constant":false,"name":"symbol","scope":9710,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":9696,"name":"ElementaryTypeName","src":"1996:6:14"}],"id":9697,"name":"VariableDeclaration","src":"1996:13:14"},{"attributes":{"constant":false,"name":"magnitude","scope":9710,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":9698,"name":"ElementaryTypeName","src":"2038:4:14"}],"id":9699,"name":"VariableDeclaration","src":"2038:14:14"},{"attributes":{"constant":false,"name":"rate","scope":9710,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":9700,"name":"ElementaryTypeName","src":"2079:4:14"}],"id":9701,"name":"VariableDeclaration","src":"2079:9:14"},{"attributes":{"constant":false,"name":"available","scope":9710,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":9702,"name":"ElementaryTypeName","src":"2135:4:14"}],"id":9703,"name":"VariableDeclaration","src":"2135:14:14"},{"attributes":{"constant":false,"name":"loadable","scope":9710,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":9704,"name":"ElementaryTypeName","src":"2203:4:14"}],"id":9705,"name":"VariableDeclaration","src":"2203:13:14"},{"attributes":{"constant":false,"name":"burnable","scope":9710,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":9706,"name":"ElementaryTypeName","src":"2276:4:14"}],"id":9707,"name":"VariableDeclaration","src":"2276:13:14"},{"attributes":{"constant":false,"name":"lastUpdate","scope":9710,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":9708,"name":"ElementaryTypeName","src":"2359:4:14"}],"id":9709,"name":"VariableDeclaration","src":"2359:15:14"}],"id":9710,"name":"StructDefinition","src":"1973:441:14"},{"attributes":{"constant":false,"name":"_tokenInfoMap","scope":10149,"stateVariable":true,"storageLocation":"default","type":"mapping(address => struct TokenWhitelist.Token)","value":null,"visibility":"private"},"children":[{"attributes":{"type":"mapping(address => struct TokenWhitelist.Token)"},"children":[{"attributes":{"name":"address","type":"address"},"id":9711,"name":"ElementaryTypeName","src":"2428:7:14"},{"attributes":{"contractScope":null,"name":"Token","referencedDeclaration":9710,"type":"struct TokenWhitelist.Token"},"id":9712,"name":"UserDefinedTypeName","src":"2439:5:14"}],"id":9713,"name":"Mapping","src":"2420:25:14"}],"id":9714,"name":"VariableDeclaration","src":"2420:47:14"},{"attributes":{"constant":false,"name":"_tokenAddressArray","scope":10149,"stateVariable":true,"storageLocation":"default","type":"address[]","value":null,"visibility":"private"},"children":[{"attributes":{"length":null,"type":"address[]"},"children":[{"attributes":{"name":"address","type":"address"},"id":9715,"name":"ElementaryTypeName","src":"2473:7:14"}],"id":9716,"name":"ArrayTypeName","src":"2473:9:14"}],"id":9717,"name":"VariableDeclaration","src":"2473:36:14"},{"attributes":{"documentation":null,"name":"onlyControllerOrOracle","visibility":"internal"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":9718,"name":"ParameterList","src":"2547:2:14"},{"children":[{"attributes":{"assignments":[9720]},"children":[{"attributes":{"constant":false,"name":"oracleAddress","scope":9740,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":9719,"name":"ElementaryTypeName","src":"2560:7:14"}],"id":9720,"name":"VariableDeclaration","src":"2560:21:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[null],"referencedDeclaration":7901,"type":"function (bytes32) view returns (address)","value":"_ensResolve"},"id":9721,"name":"Identifier","src":"2584:11:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9744,"type":"bytes32","value":"_oracleNode"},"id":9722,"name":"Identifier","src":"2596:11:14"}],"id":9723,"name":"FunctionCall","src":"2584:24:14"}],"id":9724,"name":"VariableDeclarationStatement","src":"2560:48:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7f651a1c3852ff2a697b659eaace9616ca61af623afbb095898c910cf89ec35f","typeString":"literal_string \"either oracle or controller\""}],"overloadedDeclarations":[12019,12020],"referencedDeclaration":12020,"type":"function (bool,string memory) pure","value":"require"},"id":9725,"name":"Identifier","src":"2618:7:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"||","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":7681,"type":"function (address) view returns (bool)","value":"_isController"},"id":9726,"name":"Identifier","src":"2627:13:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":12016,"type":"msg","value":"msg"},"id":9727,"name":"Identifier","src":"2641:3:14"}],"id":9728,"name":"MemberAccess","src":"2641:10:14"}],"id":9729,"name":"FunctionCall","src":"2627:25:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":12016,"type":"msg","value":"msg"},"id":9730,"name":"Identifier","src":"2656:3:14"}],"id":9731,"name":"MemberAccess","src":"2656:10:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9720,"type":"address","value":"oracleAddress"},"id":9732,"name":"Identifier","src":"2670:13:14"}],"id":9733,"name":"BinaryOperation","src":"2656:27:14"}],"id":9734,"name":"BinaryOperation","src":"2627:56:14"},{"attributes":{"argumentTypes":null,"hexvalue":"656974686572206f7261636c65206f7220636f6e74726f6c6c6572","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"either oracle or controller\"","value":"either oracle or controller"},"id":9735,"name":"Literal","src":"2685:29:14"}],"id":9736,"name":"FunctionCall","src":"2618:97:14"}],"id":9737,"name":"ExpressionStatement","src":"2618:97:14"},{"id":9738,"name":"PlaceholderStatement","src":"2725:1:14"}],"id":9739,"name":"Block","src":"2550:183:14"}],"id":9740,"name":"ModifierDefinition","src":"2516:217:14"},{"attributes":{"constant":false,"name":"_stablecoin","scope":10149,"stateVariable":true,"storageLocation":"default","type":"address","value":null,"visibility":"private"},"children":[{"attributes":{"name":"address","type":"address"},"id":9741,"name":"ElementaryTypeName","src":"2782:7:14"}],"id":9742,"name":"VariableDeclaration","src":"2782:27:14"},{"attributes":{"constant":false,"name":"_oracleNode","scope":10149,"stateVariable":true,"storageLocation":"default","type":"bytes32","value":null,"visibility":"private"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9743,"name":"ElementaryTypeName","src":"2893:7:14"}],"id":9744,"name":"VariableDeclaration","src":"2893:27:14"},{"attributes":{"constant":false,"documentation":"@notice Constructor initializes ENSResolvable, Controllable, and Ownable\n @param _oracleNameHash_ is the ENS name hash of the Oracle.\n @param _stabelcoinAddress_ is the address of the stablecoint used by the wallet","implemented":true,"isConstructor":true,"name":"","payable":false,"scope":10149,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"_ens_","scope":9778,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":9745,"name":"ElementaryTypeName","src":"3176:7:14"}],"id":9746,"name":"VariableDeclaration","src":"3176:13:14"},{"attributes":{"constant":false,"name":"_oracleNameHash_","scope":9778,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9747,"name":"ElementaryTypeName","src":"3191:7:14"}],"id":9748,"name":"VariableDeclaration","src":"3191:24:14"},{"attributes":{"constant":false,"name":"_controllerNameHash_","scope":9778,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9749,"name":"ElementaryTypeName","src":"3217:7:14"}],"id":9750,"name":"VariableDeclaration","src":"3217:28:14"},{"attributes":{"constant":false,"name":"_owner_","scope":9778,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":9751,"name":"ElementaryTypeName","src":"3247:7:14"}],"id":9752,"name":"VariableDeclaration","src":"3247:15:14"},{"attributes":{"constant":false,"name":"_transferable_","scope":9778,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":9753,"name":"ElementaryTypeName","src":"3264:4:14"}],"id":9754,"name":"VariableDeclaration","src":"3264:19:14"},{"attributes":{"constant":false,"name":"_stabelcoinAddress_","scope":9778,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":9755,"name":"ElementaryTypeName","src":"3285:7:14"}],"id":9756,"name":"VariableDeclaration","src":"3285:27:14"}],"id":9757,"name":"ParameterList","src":"3175:138:14"},{"attributes":{"parameters":[null]},"children":[],"id":9768,"name":"ParameterList","src":"3410:0:14"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7902,"type":"type(contract ENSResolvable)","value":"ENSResolvable"},"id":9758,"name":"Identifier","src":"3314:13:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9746,"type":"address","value":"_ens_"},"id":9759,"name":"Identifier","src":"3328:5:14"}],"id":9760,"name":"ModifierInvocation","src":"3314:20:14"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7682,"type":"type(contract Controllable)","value":"Controllable"},"id":9761,"name":"Identifier","src":"3335:12:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9750,"type":"bytes32","value":"_controllerNameHash_"},"id":9762,"name":"Identifier","src":"3348:20:14"}],"id":9763,"name":"ModifierInvocation","src":"3335:34:14"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10306,"type":"type(contract Ownable)","value":"Ownable"},"id":9764,"name":"Identifier","src":"3370:7:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9752,"type":"address","value":"_owner_"},"id":9765,"name":"Identifier","src":"3378:7:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9754,"type":"bool","value":"_transferable_"},"id":9766,"name":"Identifier","src":"3387:14:14"}],"id":9767,"name":"ModifierInvocation","src":"3370:32:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9744,"type":"bytes32","value":"_oracleNode"},"id":9769,"name":"Identifier","src":"3420:11:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9748,"type":"bytes32","value":"_oracleNameHash_"},"id":9770,"name":"Identifier","src":"3434:16:14"}],"id":9771,"name":"Assignment","src":"3420:30:14"}],"id":9772,"name":"ExpressionStatement","src":"3420:30:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9742,"type":"address","value":"_stablecoin"},"id":9773,"name":"Identifier","src":"3460:11:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9756,"type":"address","value":"_stabelcoinAddress_"},"id":9774,"name":"Identifier","src":"3474:19:14"}],"id":9775,"name":"Assignment","src":"3460:33:14"}],"id":9776,"name":"ExpressionStatement","src":"3460:33:14"}],"id":9777,"name":"Block","src":"3410:90:14"}],"id":9778,"name":"FunctionDefinition","src":"3164:336:14"},{"attributes":{"constant":false,"documentation":"@notice Add ERC20 tokens to the list of whitelisted tokens.\n @param _tokens ERC20 token contract addresses.\n @param _symbols ERC20 token names.\n @param _magnitude 10 to the power of number of decimal places used by each ERC20 token.\n @param _loadable is a bool that states whether or not a token is loadable to the TokenCard.\n @param _burnable is a bool that states whether or not a token is burnable in the TKN Holder Contract.\n @param _lastUpdate is a unit representing an ISO datetime e.g. 20180913153211","implemented":true,"isConstructor":false,"name":"addTokens","payable":false,"scope":10149,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_tokens","scope":9910,"stateVariable":false,"storageLocation":"default","type":"address[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"address[]"},"children":[{"attributes":{"name":"address","type":"address"},"id":9779,"name":"ElementaryTypeName","src":"4083:7:14"}],"id":9780,"name":"ArrayTypeName","src":"4083:9:14"}],"id":9781,"name":"VariableDeclaration","src":"4083:17:14"},{"attributes":{"constant":false,"name":"_symbols","scope":9910,"stateVariable":false,"storageLocation":"default","type":"bytes32[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"bytes32[]"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9782,"name":"ElementaryTypeName","src":"4102:7:14"}],"id":9783,"name":"ArrayTypeName","src":"4102:9:14"}],"id":9784,"name":"VariableDeclaration","src":"4102:18:14"},{"attributes":{"constant":false,"name":"_magnitude","scope":9910,"stateVariable":false,"storageLocation":"default","type":"uint256[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"uint256[]"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":9785,"name":"ElementaryTypeName","src":"4122:4:14"}],"id":9786,"name":"ArrayTypeName","src":"4122:6:14"}],"id":9787,"name":"VariableDeclaration","src":"4122:17:14"},{"attributes":{"constant":false,"name":"_loadable","scope":9910,"stateVariable":false,"storageLocation":"default","type":"bool[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"bool[]"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":9788,"name":"ElementaryTypeName","src":"4141:4:14"}],"id":9789,"name":"ArrayTypeName","src":"4141:6:14"}],"id":9790,"name":"VariableDeclaration","src":"4141:16:14"},{"attributes":{"constant":false,"name":"_burnable","scope":9910,"stateVariable":false,"storageLocation":"default","type":"bool[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"bool[]"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":9791,"name":"ElementaryTypeName","src":"4159:4:14"}],"id":9792,"name":"ArrayTypeName","src":"4159:6:14"}],"id":9793,"name":"VariableDeclaration","src":"4159:16:14"},{"attributes":{"constant":false,"name":"_lastUpdate","scope":9910,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":9794,"name":"ElementaryTypeName","src":"4177:4:14"}],"id":9795,"name":"VariableDeclaration","src":"4177:16:14"}],"id":9796,"name":"ParameterList","src":"4082:112:14"},{"attributes":{"parameters":[null]},"children":[],"id":9799,"name":"ParameterList","src":"4219:0:14"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7656,"type":"modifier ()","value":"onlyController"},"id":9797,"name":"Identifier","src":"4204:14:14"}],"id":9798,"name":"ModifierInvocation","src":"4204:14:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_229d13192b5da189e34c035711b06ef00014d6b1ae3d20f5919a9f7f0dc28e53","typeString":"literal_string \"parameter lengths do not match\""}],"overloadedDeclarations":[12019,12020],"referencedDeclaration":12020,"type":"function (bool,string memory) pure","value":"require"},"id":9800,"name":"Identifier","src":"4290:7:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&&","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&&","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&&","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9781,"type":"address[] calldata","value":"_tokens"},"id":9801,"name":"Identifier","src":"4298:7:14"}],"id":9802,"name":"MemberAccess","src":"4298:14:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9784,"type":"bytes32[] calldata","value":"_symbols"},"id":9803,"name":"Identifier","src":"4316:8:14"}],"id":9804,"name":"MemberAccess","src":"4316:15:14"}],"id":9805,"name":"BinaryOperation","src":"4298:33:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9781,"type":"address[] calldata","value":"_tokens"},"id":9806,"name":"Identifier","src":"4335:7:14"}],"id":9807,"name":"MemberAccess","src":"4335:14:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9787,"type":"uint256[] calldata","value":"_magnitude"},"id":9808,"name":"Identifier","src":"4353:10:14"}],"id":9809,"name":"MemberAccess","src":"4353:17:14"}],"id":9810,"name":"BinaryOperation","src":"4335:35:14"}],"id":9811,"name":"BinaryOperation","src":"4298:72:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9781,"type":"address[] calldata","value":"_tokens"},"id":9812,"name":"Identifier","src":"4374:7:14"}],"id":9813,"name":"MemberAccess","src":"4374:14:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9790,"type":"bool[] calldata","value":"_loadable"},"id":9814,"name":"Identifier","src":"4392:9:14"}],"id":9815,"name":"MemberAccess","src":"4392:16:14"}],"id":9816,"name":"BinaryOperation","src":"4374:34:14"}],"id":9817,"name":"BinaryOperation","src":"4298:110:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9781,"type":"address[] calldata","value":"_tokens"},"id":9818,"name":"Identifier","src":"4412:7:14"}],"id":9819,"name":"MemberAccess","src":"4412:14:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9790,"type":"bool[] calldata","value":"_loadable"},"id":9820,"name":"Identifier","src":"4430:9:14"}],"id":9821,"name":"MemberAccess","src":"4430:16:14"}],"id":9822,"name":"BinaryOperation","src":"4412:34:14"}],"id":9823,"name":"BinaryOperation","src":"4298:148:14"},{"attributes":{"argumentTypes":null,"hexvalue":"706172616d65746572206c656e6774687320646f206e6f74206d61746368","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"parameter lengths do not match\"","value":"parameter lengths do not match"},"id":9824,"name":"Literal","src":"4448:32:14"}],"id":9825,"name":"FunctionCall","src":"4290:191:14"}],"id":9826,"name":"ExpressionStatement","src":"4290:191:14"},{"children":[{"attributes":{"assignments":[9828]},"children":[{"attributes":{"constant":false,"name":"i","scope":9910,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":9827,"name":"ElementaryTypeName","src":"4555:4:14"}],"id":9828,"name":"VariableDeclaration","src":"4555:6:14"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":9829,"name":"Literal","src":"4564:1:14"}],"id":9830,"name":"VariableDeclarationStatement","src":"4555:10:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9828,"type":"uint256","value":"i"},"id":9831,"name":"Identifier","src":"4567:1:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9781,"type":"address[] calldata","value":"_tokens"},"id":9832,"name":"Identifier","src":"4571:7:14"}],"id":9833,"name":"MemberAccess","src":"4571:14:14"}],"id":9834,"name":"BinaryOperation","src":"4567:18:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9828,"type":"uint256","value":"i"},"id":9835,"name":"Identifier","src":"4587:1:14"}],"id":9836,"name":"UnaryOperation","src":"4587:3:14"}],"id":9837,"name":"ExpressionStatement","src":"4587:3:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e7eb3a05df4990307bc322b918e16d072d8c2936ee70a5abacdb05979a5cec23","typeString":"literal_string \"token already available\""}],"overloadedDeclarations":[12019,12020],"referencedDeclaration":12020,"type":"function (bool,string memory) pure","value":"require"},"id":9838,"name":"Identifier","src":"4669:7:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"available","referencedDeclaration":9703,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct TokenWhitelist.Token storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9714,"type":"mapping(address => struct TokenWhitelist.Token storage ref)","value":"_tokenInfoMap"},"id":9839,"name":"Identifier","src":"4678:13:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9781,"type":"address[] calldata","value":"_tokens"},"id":9840,"name":"Identifier","src":"4692:7:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9828,"type":"uint256","value":"i"},"id":9841,"name":"Identifier","src":"4700:1:14"}],"id":9842,"name":"IndexAccess","src":"4692:10:14"}],"id":9843,"name":"IndexAccess","src":"4678:25:14"}],"id":9844,"name":"MemberAccess","src":"4678:35:14"}],"id":9845,"name":"UnaryOperation","src":"4677:36:14"},{"attributes":{"argumentTypes":null,"hexvalue":"746f6b656e20616c726561647920617661696c61626c65","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"token already available\"","value":"token already available"},"id":9846,"name":"Literal","src":"4715:25:14"}],"id":9847,"name":"FunctionCall","src":"4669:72:14"}],"id":9848,"name":"ExpressionStatement","src":"4669:72:14"},{"attributes":{"assignments":[9850]},"children":[{"attributes":{"constant":false,"name":"symbol","scope":9910,"stateVariable":false,"storageLocation":"memory","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":9849,"name":"ElementaryTypeName","src":"4801:6:14"}],"id":9850,"name":"VariableDeclaration","src":"4801:20:14"},{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"toString","referencedDeclaration":10551,"type":"function (struct strings.slice memory) pure returns (string memory)"},"children":[{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"struct strings.slice memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"toSliceB32","referencedDeclaration":10506,"type":"function (bytes32) pure returns (struct strings.slice memory)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9784,"type":"bytes32[] calldata","value":"_symbols"},"id":9851,"name":"Identifier","src":"4824:8:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9828,"type":"uint256","value":"i"},"id":9852,"name":"Identifier","src":"4833:1:14"}],"id":9853,"name":"IndexAccess","src":"4824:11:14"}],"id":9854,"name":"MemberAccess","src":"4824:22:14"}],"id":9855,"name":"FunctionCall","src":"4824:24:14"}],"id":9856,"name":"MemberAccess","src":"4824:33:14"}],"id":9857,"name":"FunctionCall","src":"4824:35:14"}],"id":9858,"name":"VariableDeclarationStatement","src":"4801:58:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"struct TokenWhitelist.Token storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"struct TokenWhitelist.Token storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9714,"type":"mapping(address => struct TokenWhitelist.Token storage ref)","value":"_tokenInfoMap"},"id":9859,"name":"Identifier","src":"4921:13:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9781,"type":"address[] calldata","value":"_tokens"},"id":9860,"name":"Identifier","src":"4935:7:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9828,"type":"uint256","value":"i"},"id":9861,"name":"Identifier","src":"4943:1:14"}],"id":9862,"name":"IndexAccess","src":"4935:10:14"}],"id":9863,"name":"IndexAccess","src":"4921:25:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":true,"lValueRequested":false,"names":["symbol","magnitude","rate","available","loadable","burnable","lastUpdate"],"type":"struct TokenWhitelist.Token memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9710,"type":"type(struct TokenWhitelist.Token storage pointer)","value":"Token"},"id":9864,"name":"Identifier","src":"4949:5:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9850,"type":"string memory","value":"symbol"},"id":9865,"name":"Identifier","src":"4982:6:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9787,"type":"uint256[] calldata","value":"_magnitude"},"id":9866,"name":"Identifier","src":"5018:10:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9828,"type":"uint256","value":"i"},"id":9867,"name":"Identifier","src":"5029:1:14"}],"id":9868,"name":"IndexAccess","src":"5018:13:14"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":9869,"name":"Literal","src":"5056:1:14"},{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":9870,"name":"Literal","src":"5087:4:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9790,"type":"bool[] calldata","value":"_loadable"},"id":9871,"name":"Identifier","src":"5120:9:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9828,"type":"uint256","value":"i"},"id":9872,"name":"Identifier","src":"5130:1:14"}],"id":9873,"name":"IndexAccess","src":"5120:12:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9793,"type":"bool[] calldata","value":"_burnable"},"id":9874,"name":"Identifier","src":"5160:9:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9828,"type":"uint256","value":"i"},"id":9875,"name":"Identifier","src":"5170:1:14"}],"id":9876,"name":"IndexAccess","src":"5160:12:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9795,"type":"uint256","value":"_lastUpdate"},"id":9877,"name":"Identifier","src":"5203:11:14"}],"id":9878,"name":"FunctionCall","src":"4949:284:14"}],"id":9879,"name":"Assignment","src":"4921:312:14"}],"id":9880,"name":"ExpressionStatement","src":"4921:312:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"push","referencedDeclaration":null,"type":"function (address) returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9717,"type":"address[] storage ref","value":"_tokenAddressArray"},"id":9881,"name":"Identifier","src":"5305:18:14"}],"id":9883,"name":"MemberAccess","src":"5305:23:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9781,"type":"address[] calldata","value":"_tokens"},"id":9884,"name":"Identifier","src":"5329:7:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9828,"type":"uint256","value":"i"},"id":9885,"name":"Identifier","src":"5337:1:14"}],"id":9886,"name":"IndexAccess","src":"5329:10:14"}],"id":9887,"name":"FunctionCall","src":"5305:35:14"}],"id":9888,"name":"ExpressionStatement","src":"5305:35:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"overloadedDeclarations":[null],"referencedDeclaration":9689,"type":"function (address,address,string memory,uint256,bool,bool)","value":"AddedToken"},"id":9889,"name":"Identifier","src":"5401:10:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":12016,"type":"msg","value":"msg"},"id":9890,"name":"Identifier","src":"5412:3:14"}],"id":9891,"name":"MemberAccess","src":"5412:10:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9781,"type":"address[] calldata","value":"_tokens"},"id":9892,"name":"Identifier","src":"5424:7:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9828,"type":"uint256","value":"i"},"id":9893,"name":"Identifier","src":"5432:1:14"}],"id":9894,"name":"IndexAccess","src":"5424:10:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9850,"type":"string memory","value":"symbol"},"id":9895,"name":"Identifier","src":"5436:6:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9787,"type":"uint256[] calldata","value":"_magnitude"},"id":9896,"name":"Identifier","src":"5444:10:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9828,"type":"uint256","value":"i"},"id":9897,"name":"Identifier","src":"5455:1:14"}],"id":9898,"name":"IndexAccess","src":"5444:13:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9790,"type":"bool[] calldata","value":"_loadable"},"id":9899,"name":"Identifier","src":"5459:9:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9828,"type":"uint256","value":"i"},"id":9900,"name":"Identifier","src":"5469:1:14"}],"id":9901,"name":"IndexAccess","src":"5459:12:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9793,"type":"bool[] calldata","value":"_burnable"},"id":9902,"name":"Identifier","src":"5473:9:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9828,"type":"uint256","value":"i"},"id":9903,"name":"Identifier","src":"5483:1:14"}],"id":9904,"name":"IndexAccess","src":"5473:12:14"}],"id":9905,"name":"FunctionCall","src":"5401:85:14"}],"id":9906,"name":"EmitStatement","src":"5396:90:14"}],"id":9907,"name":"Block","src":"4592:905:14"}],"id":9908,"name":"ForStatement","src":"4550:947:14"}],"id":9909,"name":"Block","src":"4219:1284:14"}],"id":9910,"name":"FunctionDefinition","src":"4064:1439:14"},{"attributes":{"constant":false,"documentation":"@notice Remove ERC20 tokens from the whitelist of tokens.\n @param _tokens ERC20 token contract addresses.","implemented":true,"isConstructor":false,"name":"removeTokens","payable":false,"scope":10149,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_tokens","scope":10000,"stateVariable":false,"storageLocation":"default","type":"address[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"address[]"},"children":[{"attributes":{"name":"address","type":"address"},"id":9911,"name":"ElementaryTypeName","src":"5652:7:14"}],"id":9912,"name":"ArrayTypeName","src":"5652:9:14"}],"id":9913,"name":"VariableDeclaration","src":"5652:17:14"}],"id":9914,"name":"ParameterList","src":"5651:19:14"},{"attributes":{"parameters":[null]},"children":[],"id":9917,"name":"ParameterList","src":"5695:0:14"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7656,"type":"modifier ()","value":"onlyController"},"id":9915,"name":"Identifier","src":"5680:14:14"}],"id":9916,"name":"ModifierInvocation","src":"5680:14:14"},{"children":[{"children":[{"attributes":{"assignments":[9919]},"children":[{"attributes":{"constant":false,"name":"i","scope":10000,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":9918,"name":"ElementaryTypeName","src":"5813:4:14"}],"id":9919,"name":"VariableDeclaration","src":"5813:6:14"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":9920,"name":"Literal","src":"5822:1:14"}],"id":9921,"name":"VariableDeclarationStatement","src":"5813:10:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9919,"type":"uint256","value":"i"},"id":9922,"name":"Identifier","src":"5825:1:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9913,"type":"address[] calldata","value":"_tokens"},"id":9923,"name":"Identifier","src":"5829:7:14"}],"id":9924,"name":"MemberAccess","src":"5829:14:14"}],"id":9925,"name":"BinaryOperation","src":"5825:18:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9919,"type":"uint256","value":"i"},"id":9926,"name":"Identifier","src":"5845:1:14"}],"id":9927,"name":"UnaryOperation","src":"5845:3:14"}],"id":9928,"name":"ExpressionStatement","src":"5845:3:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d487155ec60125f09758305e6de21696dc3e345a5b0edca0b920691dd5be4852","typeString":"literal_string \"token is not available\""}],"overloadedDeclarations":[12019,12020],"referencedDeclaration":12020,"type":"function (bool,string memory) pure","value":"require"},"id":9929,"name":"Identifier","src":"5933:7:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"available","referencedDeclaration":9703,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct TokenWhitelist.Token storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9714,"type":"mapping(address => struct TokenWhitelist.Token storage ref)","value":"_tokenInfoMap"},"id":9930,"name":"Identifier","src":"5941:13:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9913,"type":"address[] calldata","value":"_tokens"},"id":9931,"name":"Identifier","src":"5955:7:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9919,"type":"uint256","value":"i"},"id":9932,"name":"Identifier","src":"5963:1:14"}],"id":9933,"name":"IndexAccess","src":"5955:10:14"}],"id":9934,"name":"IndexAccess","src":"5941:25:14"}],"id":9935,"name":"MemberAccess","src":"5941:35:14"},{"attributes":{"argumentTypes":null,"hexvalue":"746f6b656e206973206e6f7420617661696c61626c65","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"token is not available\"","value":"token is not available"},"id":9936,"name":"Literal","src":"5978:24:14"}],"id":9937,"name":"FunctionCall","src":"5933:70:14"}],"id":9938,"name":"ExpressionStatement","src":"5933:70:14"},{"attributes":{"assignments":[9940]},"children":[{"attributes":{"constant":false,"name":"token","scope":10000,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":9939,"name":"ElementaryTypeName","src":"6057:7:14"}],"id":9940,"name":"VariableDeclaration","src":"6057:13:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9913,"type":"address[] calldata","value":"_tokens"},"id":9941,"name":"Identifier","src":"6073:7:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9919,"type":"uint256","value":"i"},"id":9942,"name":"Identifier","src":"6081:1:14"}],"id":9943,"name":"IndexAccess","src":"6073:10:14"}],"id":9944,"name":"VariableDeclarationStatement","src":"6057:26:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"delete","prefix":true,"type":"tuple()"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"struct TokenWhitelist.Token storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9714,"type":"mapping(address => struct TokenWhitelist.Token storage ref)","value":"_tokenInfoMap"},"id":9945,"name":"Identifier","src":"6144:13:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9940,"type":"address","value":"token"},"id":9946,"name":"Identifier","src":"6158:5:14"}],"id":9947,"name":"IndexAccess","src":"6144:20:14"}],"id":9948,"name":"UnaryOperation","src":"6137:27:14"}],"id":9949,"name":"ExpressionStatement","src":"6137:27:14"},{"children":[{"attributes":{"assignments":[9951]},"children":[{"attributes":{"constant":false,"name":"j","scope":10000,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":9950,"name":"ElementaryTypeName","src":"6246:4:14"}],"id":9951,"name":"VariableDeclaration","src":"6246:6:14"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":9952,"name":"Literal","src":"6255:1:14"}],"id":9953,"name":"VariableDeclarationStatement","src":"6246:10:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9951,"type":"uint256","value":"j"},"id":9954,"name":"Identifier","src":"6258:1:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sub","referencedDeclaration":1181,"type":"function (uint256,uint256) pure returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9717,"type":"address[] storage ref","value":"_tokenAddressArray"},"id":9955,"name":"Identifier","src":"6262:18:14"}],"id":9956,"name":"MemberAccess","src":"6262:25:14"}],"id":9957,"name":"MemberAccess","src":"6262:29:14"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":9958,"name":"Literal","src":"6292:1:14"}],"id":9959,"name":"FunctionCall","src":"6262:32:14"}],"id":9960,"name":"BinaryOperation","src":"6258:36:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9951,"type":"uint256","value":"j"},"id":9961,"name":"Identifier","src":"6296:1:14"}],"id":9962,"name":"UnaryOperation","src":"6296:3:14"}],"id":9963,"name":"ExpressionStatement","src":"6296:3:14"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9717,"type":"address[] storage ref","value":"_tokenAddressArray"},"id":9964,"name":"Identifier","src":"6323:18:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9951,"type":"uint256","value":"j"},"id":9965,"name":"Identifier","src":"6342:1:14"}],"id":9966,"name":"IndexAccess","src":"6323:21:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9940,"type":"address","value":"token"},"id":9967,"name":"Identifier","src":"6348:5:14"}],"id":9968,"name":"BinaryOperation","src":"6323:30:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"address"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9717,"type":"address[] storage ref","value":"_tokenAddressArray"},"id":9969,"name":"Identifier","src":"6377:18:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9951,"type":"uint256","value":"j"},"id":9970,"name":"Identifier","src":"6396:1:14"}],"id":9971,"name":"IndexAccess","src":"6377:21:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9717,"type":"address[] storage ref","value":"_tokenAddressArray"},"id":9972,"name":"Identifier","src":"6401:18:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sub","referencedDeclaration":1181,"type":"function (uint256,uint256) pure returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9717,"type":"address[] storage ref","value":"_tokenAddressArray"},"id":9973,"name":"Identifier","src":"6420:18:14"}],"id":9974,"name":"MemberAccess","src":"6420:25:14"}],"id":9975,"name":"MemberAccess","src":"6420:29:14"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":9976,"name":"Literal","src":"6450:1:14"}],"id":9977,"name":"FunctionCall","src":"6420:32:14"}],"id":9978,"name":"IndexAccess","src":"6401:52:14"}],"id":9979,"name":"Assignment","src":"6377:76:14"}],"id":9980,"name":"ExpressionStatement","src":"6377:76:14"},{"id":9981,"name":"Break","src":"6475:5:14"}],"id":9982,"name":"Block","src":"6355:144:14"}],"id":9983,"name":"IfStatement","src":"6319:180:14"}],"id":9984,"name":"Block","src":"6301:212:14"}],"id":9985,"name":"ForStatement","src":"6241:272:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"--","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9717,"type":"address[] storage ref","value":"_tokenAddressArray"},"id":9986,"name":"Identifier","src":"6526:18:14"}],"id":9988,"name":"MemberAccess","src":"6526:25:14"}],"id":9989,"name":"UnaryOperation","src":"6526:27:14"}],"id":9990,"name":"ExpressionStatement","src":"6526:27:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":9695,"type":"function (address,address)","value":"RemovedToken"},"id":9991,"name":"Identifier","src":"6613:12:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":12016,"type":"msg","value":"msg"},"id":9992,"name":"Identifier","src":"6626:3:14"}],"id":9993,"name":"MemberAccess","src":"6626:10:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9940,"type":"address","value":"token"},"id":9994,"name":"Identifier","src":"6638:5:14"}],"id":9995,"name":"FunctionCall","src":"6613:31:14"}],"id":9996,"name":"EmitStatement","src":"6608:36:14"}],"id":9997,"name":"Block","src":"5850:805:14"}],"id":9998,"name":"ForStatement","src":"5808:847:14"}],"id":9999,"name":"Block","src":"5695:966:14"}],"id":10000,"name":"FunctionDefinition","src":"5630:1031:14"},{"attributes":{"constant":false,"documentation":"@notice Update ERC20 token exchange rate.\n @param _token ERC20 token contract address.\n @param _rate ERC20 token exchange rate in wei.\n @param _updateDate date for the token updates. This will be compared to when oracle updates are received.","implemented":true,"isConstructor":false,"name":"updateTokenRate","payable":false,"scope":10149,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_token","scope":10041,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":10001,"name":"ElementaryTypeName","src":"6963:7:14"}],"id":10002,"name":"VariableDeclaration","src":"6963:14:14"},{"attributes":{"constant":false,"name":"_rate","scope":10041,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":10003,"name":"ElementaryTypeName","src":"6979:4:14"}],"id":10004,"name":"VariableDeclaration","src":"6979:10:14"},{"attributes":{"constant":false,"name":"_updateDate","scope":10041,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":10005,"name":"ElementaryTypeName","src":"6991:4:14"}],"id":10006,"name":"VariableDeclaration","src":"6991:16:14"}],"id":10007,"name":"ParameterList","src":"6962:46:14"},{"attributes":{"parameters":[null]},"children":[],"id":10010,"name":"ParameterList","src":"7041:0:14"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9740,"type":"modifier ()","value":"onlyControllerOrOracle"},"id":10008,"name":"Identifier","src":"7018:22:14"}],"id":10009,"name":"ModifierInvocation","src":"7018:22:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d487155ec60125f09758305e6de21696dc3e345a5b0edca0b920691dd5be4852","typeString":"literal_string \"token is not available\""}],"overloadedDeclarations":[12019,12020],"referencedDeclaration":12020,"type":"function (bool,string memory) pure","value":"require"},"id":10011,"name":"Identifier","src":"7093:7:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"available","referencedDeclaration":9703,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct TokenWhitelist.Token storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9714,"type":"mapping(address => struct TokenWhitelist.Token storage ref)","value":"_tokenInfoMap"},"id":10012,"name":"Identifier","src":"7101:13:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10002,"type":"address","value":"_token"},"id":10013,"name":"Identifier","src":"7115:6:14"}],"id":10014,"name":"IndexAccess","src":"7101:21:14"}],"id":10015,"name":"MemberAccess","src":"7101:31:14"},{"attributes":{"argumentTypes":null,"hexvalue":"746f6b656e206973206e6f7420617661696c61626c65","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"token is not available\"","value":"token is not available"},"id":10016,"name":"Literal","src":"7134:24:14"}],"id":10017,"name":"FunctionCall","src":"7093:66:14"}],"id":10018,"name":"ExpressionStatement","src":"7093:66:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"rate","referencedDeclaration":9701,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct TokenWhitelist.Token storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9714,"type":"mapping(address => struct TokenWhitelist.Token storage ref)","value":"_tokenInfoMap"},"id":10019,"name":"Identifier","src":"7205:13:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10002,"type":"address","value":"_token"},"id":10020,"name":"Identifier","src":"7219:6:14"}],"id":10021,"name":"IndexAccess","src":"7205:21:14"}],"id":10022,"name":"MemberAccess","src":"7205:26:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10004,"type":"uint256","value":"_rate"},"id":10023,"name":"Identifier","src":"7234:5:14"}],"id":10024,"name":"Assignment","src":"7205:34:14"}],"id":10025,"name":"ExpressionStatement","src":"7205:34:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"lastUpdate","referencedDeclaration":9709,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct TokenWhitelist.Token storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9714,"type":"mapping(address => struct TokenWhitelist.Token storage ref)","value":"_tokenInfoMap"},"id":10026,"name":"Identifier","src":"7302:13:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10002,"type":"address","value":"_token"},"id":10027,"name":"Identifier","src":"7316:6:14"}],"id":10028,"name":"IndexAccess","src":"7302:21:14"}],"id":10029,"name":"MemberAccess","src":"7302:32:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10006,"type":"uint256","value":"_updateDate"},"id":10030,"name":"Identifier","src":"7337:11:14"}],"id":10031,"name":"Assignment","src":"7302:46:14"}],"id":10032,"name":"ExpressionStatement","src":"7302:46:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":9675,"type":"function (address,address,uint256)","value":"UpdatedTokenRate"},"id":10033,"name":"Identifier","src":"7402:16:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":12016,"type":"msg","value":"msg"},"id":10034,"name":"Identifier","src":"7419:3:14"}],"id":10035,"name":"MemberAccess","src":"7419:10:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10002,"type":"address","value":"_token"},"id":10036,"name":"Identifier","src":"7431:6:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10004,"type":"uint256","value":"_rate"},"id":10037,"name":"Identifier","src":"7439:5:14"}],"id":10038,"name":"FunctionCall","src":"7402:43:14"}],"id":10039,"name":"EmitStatement","src":"7397:48:14"}],"id":10040,"name":"Block","src":"7041:411:14"}],"id":10041,"name":"FunctionDefinition","src":"6938:514:14"},{"attributes":{"constant":true,"documentation":"@notice This returns all of the fields for a given token\n @param _a is the address of a given token\n @return string of the token's symbol\n @return uint of the token's magnitude\n @return uint of the token's exchange rate to ETH\n @return bool whether the token is available\n @return bool whether the token is loadable to the TokenCard\n @return bool whether the token is burnable to the TKN Holder Contract\n @return uint of the lastUpdated time of the token's exchange rate","implemented":true,"isConstructor":false,"modifiers":[null],"name":"getTokenInfo","payable":false,"scope":10149,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_a","scope":10083,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":10042,"name":"ElementaryTypeName","src":"8015:7:14"}],"id":10043,"name":"VariableDeclaration","src":"8015:10:14"}],"id":10044,"name":"ParameterList","src":"8014:12:14"},{"children":[{"attributes":{"constant":false,"name":"","scope":10083,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":10045,"name":"ElementaryTypeName","src":"8050:6:14"}],"id":10046,"name":"VariableDeclaration","src":"8050:6:14"},{"attributes":{"constant":false,"name":"","scope":10083,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":10047,"name":"ElementaryTypeName","src":"8058:7:14"}],"id":10048,"name":"VariableDeclaration","src":"8058:7:14"},{"attributes":{"constant":false,"name":"","scope":10083,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":10049,"name":"ElementaryTypeName","src":"8067:7:14"}],"id":10050,"name":"VariableDeclaration","src":"8067:7:14"},{"attributes":{"constant":false,"name":"","scope":10083,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":10051,"name":"ElementaryTypeName","src":"8076:4:14"}],"id":10052,"name":"VariableDeclaration","src":"8076:4:14"},{"attributes":{"constant":false,"name":"","scope":10083,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":10053,"name":"ElementaryTypeName","src":"8082:4:14"}],"id":10054,"name":"VariableDeclaration","src":"8082:4:14"},{"attributes":{"constant":false,"name":"","scope":10083,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":10055,"name":"ElementaryTypeName","src":"8088:4:14"}],"id":10056,"name":"VariableDeclaration","src":"8088:4:14"},{"attributes":{"constant":false,"name":"","scope":10083,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":10057,"name":"ElementaryTypeName","src":"8094:7:14"}],"id":10058,"name":"VariableDeclaration","src":"8094:7:14"}],"id":10059,"name":"ParameterList","src":"8049:53:14"},{"children":[{"attributes":{"assignments":[10061]},"children":[{"attributes":{"constant":false,"name":"tokenInfo","scope":10083,"stateVariable":false,"storageLocation":"storage","type":"struct TokenWhitelist.Token","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"Token","referencedDeclaration":9710,"type":"struct TokenWhitelist.Token"},"id":10060,"name":"UserDefinedTypeName","src":"8113:5:14"}],"id":10061,"name":"VariableDeclaration","src":"8113:23:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct TokenWhitelist.Token storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9714,"type":"mapping(address => struct TokenWhitelist.Token storage ref)","value":"_tokenInfoMap"},"id":10062,"name":"Identifier","src":"8139:13:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10043,"type":"address","value":"_a"},"id":10063,"name":"Identifier","src":"8153:2:14"}],"id":10064,"name":"IndexAccess","src":"8139:17:14"}],"id":10065,"name":"VariableDeclarationStatement","src":"8113:43:14"},{"attributes":{"functionReturnParameters":10059},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"tuple(string storage ref,uint256,uint256,bool,bool,bool,uint256)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"symbol","referencedDeclaration":9697,"type":"string storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10061,"type":"struct TokenWhitelist.Token storage pointer","value":"tokenInfo"},"id":10066,"name":"Identifier","src":"8174:9:14"}],"id":10067,"name":"MemberAccess","src":"8174:16:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"magnitude","referencedDeclaration":9699,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10061,"type":"struct TokenWhitelist.Token storage pointer","value":"tokenInfo"},"id":10068,"name":"Identifier","src":"8192:9:14"}],"id":10069,"name":"MemberAccess","src":"8192:19:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"rate","referencedDeclaration":9701,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10061,"type":"struct TokenWhitelist.Token storage pointer","value":"tokenInfo"},"id":10070,"name":"Identifier","src":"8213:9:14"}],"id":10071,"name":"MemberAccess","src":"8213:14:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"available","referencedDeclaration":9703,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10061,"type":"struct TokenWhitelist.Token storage pointer","value":"tokenInfo"},"id":10072,"name":"Identifier","src":"8229:9:14"}],"id":10073,"name":"MemberAccess","src":"8229:19:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"loadable","referencedDeclaration":9705,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10061,"type":"struct TokenWhitelist.Token storage pointer","value":"tokenInfo"},"id":10074,"name":"Identifier","src":"8250:9:14"}],"id":10075,"name":"MemberAccess","src":"8250:18:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"burnable","referencedDeclaration":9707,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10061,"type":"struct TokenWhitelist.Token storage pointer","value":"tokenInfo"},"id":10076,"name":"Identifier","src":"8270:9:14"}],"id":10077,"name":"MemberAccess","src":"8270:18:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"lastUpdate","referencedDeclaration":9709,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10061,"type":"struct TokenWhitelist.Token storage pointer","value":"tokenInfo"},"id":10078,"name":"Identifier","src":"8290:9:14"}],"id":10079,"name":"MemberAccess","src":"8290:20:14"}],"id":10080,"name":"TupleExpression","src":"8173:138:14"}],"id":10081,"name":"Return","src":"8166:145:14"}],"id":10082,"name":"Block","src":"8103:215:14"}],"id":10083,"name":"FunctionDefinition","src":"7993:325:14"},{"attributes":{"constant":true,"documentation":"@notice This returns all of the fields for our StableCoin\n @return string of the token's symbol\n @return uint of the token's magnitude\n @return uint of the token's exchange rate to ETH\n @return bool whether the token is available\n @return bool whether the token is loadable to the TokenCard\n @return bool whether the token is burnable to the TKN Holder Contract\n @return uint of the lastUpdated time of the token's exchange rate","implemented":true,"isConstructor":false,"modifiers":[null],"name":"getStablecoinInfo","payable":false,"scope":10149,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":10084,"name":"ParameterList","src":"8836:2:14"},{"children":[{"attributes":{"constant":false,"name":"","scope":10123,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":10085,"name":"ElementaryTypeName","src":"8862:6:14"}],"id":10086,"name":"VariableDeclaration","src":"8862:6:14"},{"attributes":{"constant":false,"name":"","scope":10123,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":10087,"name":"ElementaryTypeName","src":"8870:7:14"}],"id":10088,"name":"VariableDeclaration","src":"8870:7:14"},{"attributes":{"constant":false,"name":"","scope":10123,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":10089,"name":"ElementaryTypeName","src":"8879:7:14"}],"id":10090,"name":"VariableDeclaration","src":"8879:7:14"},{"attributes":{"constant":false,"name":"","scope":10123,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":10091,"name":"ElementaryTypeName","src":"8888:4:14"}],"id":10092,"name":"VariableDeclaration","src":"8888:4:14"},{"attributes":{"constant":false,"name":"","scope":10123,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":10093,"name":"ElementaryTypeName","src":"8894:4:14"}],"id":10094,"name":"VariableDeclaration","src":"8894:4:14"},{"attributes":{"constant":false,"name":"","scope":10123,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":10095,"name":"ElementaryTypeName","src":"8900:4:14"}],"id":10096,"name":"VariableDeclaration","src":"8900:4:14"},{"attributes":{"constant":false,"name":"","scope":10123,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":10097,"name":"ElementaryTypeName","src":"8906:7:14"}],"id":10098,"name":"VariableDeclaration","src":"8906:7:14"}],"id":10099,"name":"ParameterList","src":"8861:53:14"},{"children":[{"attributes":{"assignments":[10101]},"children":[{"attributes":{"constant":false,"name":"stablecoinInfo","scope":10123,"stateVariable":false,"storageLocation":"storage","type":"struct TokenWhitelist.Token","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"Token","referencedDeclaration":9710,"type":"struct TokenWhitelist.Token"},"id":10100,"name":"UserDefinedTypeName","src":"8925:5:14"}],"id":10101,"name":"VariableDeclaration","src":"8925:28:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct TokenWhitelist.Token storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9714,"type":"mapping(address => struct TokenWhitelist.Token storage ref)","value":"_tokenInfoMap"},"id":10102,"name":"Identifier","src":"8956:13:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9742,"type":"address","value":"_stablecoin"},"id":10103,"name":"Identifier","src":"8970:11:14"}],"id":10104,"name":"IndexAccess","src":"8956:26:14"}],"id":10105,"name":"VariableDeclarationStatement","src":"8925:57:14"},{"attributes":{"functionReturnParameters":10099},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"tuple(string storage ref,uint256,uint256,bool,bool,bool,uint256)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"symbol","referencedDeclaration":9697,"type":"string storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10101,"type":"struct TokenWhitelist.Token storage pointer","value":"stablecoinInfo"},"id":10106,"name":"Identifier","src":"9000:14:14"}],"id":10107,"name":"MemberAccess","src":"9000:21:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"magnitude","referencedDeclaration":9699,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10101,"type":"struct TokenWhitelist.Token storage pointer","value":"stablecoinInfo"},"id":10108,"name":"Identifier","src":"9023:14:14"}],"id":10109,"name":"MemberAccess","src":"9023:24:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"rate","referencedDeclaration":9701,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10101,"type":"struct TokenWhitelist.Token storage pointer","value":"stablecoinInfo"},"id":10110,"name":"Identifier","src":"9049:14:14"}],"id":10111,"name":"MemberAccess","src":"9049:19:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"available","referencedDeclaration":9703,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10101,"type":"struct TokenWhitelist.Token storage pointer","value":"stablecoinInfo"},"id":10112,"name":"Identifier","src":"9070:14:14"}],"id":10113,"name":"MemberAccess","src":"9070:24:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"loadable","referencedDeclaration":9705,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10101,"type":"struct TokenWhitelist.Token storage pointer","value":"stablecoinInfo"},"id":10114,"name":"Identifier","src":"9096:14:14"}],"id":10115,"name":"MemberAccess","src":"9096:23:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"burnable","referencedDeclaration":9707,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10101,"type":"struct TokenWhitelist.Token storage pointer","value":"stablecoinInfo"},"id":10116,"name":"Identifier","src":"9121:14:14"}],"id":10117,"name":"MemberAccess","src":"9121:23:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"lastUpdate","referencedDeclaration":9709,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10101,"type":"struct TokenWhitelist.Token storage pointer","value":"stablecoinInfo"},"id":10118,"name":"Identifier","src":"9146:14:14"}],"id":10119,"name":"MemberAccess","src":"9146:25:14"}],"id":10120,"name":"TupleExpression","src":"8999:173:14"}],"id":10121,"name":"Return","src":"8992:180:14"}],"id":10122,"name":"Block","src":"8915:264:14"}],"id":10123,"name":"FunctionDefinition","src":"8810:369:14"},{"attributes":{"constant":true,"documentation":"@notice This returns an array of our whitelisted address\n @return address[] of our whitelisted tokens","implemented":true,"isConstructor":false,"modifiers":[null],"name":"tokenAddressArray","payable":false,"scope":10149,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":10124,"name":"ParameterList","src":"9328:2:14"},{"children":[{"attributes":{"constant":false,"name":"","scope":10132,"stateVariable":false,"storageLocation":"default","type":"address[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"address[]"},"children":[{"attributes":{"name":"address","type":"address"},"id":10125,"name":"ElementaryTypeName","src":"9354:7:14"}],"id":10126,"name":"ArrayTypeName","src":"9354:9:14"}],"id":10127,"name":"VariableDeclaration","src":"9354:9:14"}],"id":10128,"name":"ParameterList","src":"9353:11:14"},{"children":[{"attributes":{"functionReturnParameters":10128},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9717,"type":"address[] storage ref","value":"_tokenAddressArray"},"id":10129,"name":"Identifier","src":"9382:18:14"}],"id":10130,"name":"Return","src":"9375:25:14"}],"id":10131,"name":"Block","src":"9365:42:14"}],"id":10132,"name":"FunctionDefinition","src":"9302:105:14"},{"attributes":{"constant":true,"documentation":"@notice This returns the address of our stablecoin of choice\n @return the address of the stablecoin contract.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"stablecoin","payable":false,"scope":10149,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":10133,"name":"ParameterList","src":"9557:2:14"},{"children":[{"attributes":{"constant":false,"name":"","scope":10140,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":10134,"name":"ElementaryTypeName","src":"9583:7:14"}],"id":10135,"name":"VariableDeclaration","src":"9583:7:14"}],"id":10136,"name":"ParameterList","src":"9582:9:14"},{"children":[{"attributes":{"functionReturnParameters":10136},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9742,"type":"address","value":"_stablecoin"},"id":10137,"name":"Identifier","src":"9609:11:14"}],"id":10138,"name":"Return","src":"9602:18:14"}],"id":10139,"name":"Block","src":"9592:35:14"}],"id":10140,"name":"FunctionDefinition","src":"9538:89:14"},{"attributes":{"constant":true,"documentation":"@notice this returns the node hash of our Oracle\n @return the oracle node registered in ENS.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"oracleNode","payable":false,"scope":10149,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":10141,"name":"ParameterList","src":"9760:2:14"},{"children":[{"attributes":{"constant":false,"name":"","scope":10148,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":10142,"name":"ElementaryTypeName","src":"9786:7:14"}],"id":10143,"name":"VariableDeclaration","src":"9786:7:14"}],"id":10144,"name":"ParameterList","src":"9785:9:14"},{"children":[{"attributes":{"functionReturnParameters":10144},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9744,"type":"bytes32","value":"_oracleNode"},"id":10145,"name":"Identifier","src":"9812:11:14"}],"id":10146,"name":"Return","src":"9805:18:14"}],"id":10147,"name":"Block","src":"9795:35:14"}],"id":10148,"name":"FunctionDefinition","src":"9741:89:14"}],"id":10149,"name":"ContractDefinition","src":"1593:8239:14"}],"id":10150,"name":"SourceUnit","src":"774:9059:14"}},"internals/tokenWhitelistable.sol":{"AST":{"attributes":{"absolutePath":"internals/tokenWhitelistable.sol","exportedSymbols":{"TokenWhitelistable":[8626]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".25"]},"id":8448,"name":"PragmaDirective","src":"778:24:15"},{"attributes":{"SourceUnit":10150,"absolutePath":"internals/tokenWhitelist.sol","file":"./tokenWhitelist.sol","scope":8627,"symbolAliases":[null],"unitAlias":""},"id":8449,"name":"ImportDirective","src":"804:30:15"},{"attributes":{"SourceUnit":7903,"absolutePath":"internals/ensResolvable.sol","file":"../internals/ensResolvable.sol","scope":8627,"symbolAliases":[null],"unitAlias":""},"id":8450,"name":"ImportDirective","src":"835:40:15"},{"attributes":{"contractDependencies":[7902],"contractKind":"contract","documentation":"@title TokenWhitelistable implements access to the TokenWhitelist located behind ENS.","fullyImplemented":false,"linearizedBaseContracts":[8626,7902],"name":"TokenWhitelistable","scope":8627},"children":[{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"ENSResolvable","referencedDeclaration":7902,"type":"contract ENSResolvable"},"id":8451,"name":"UserDefinedTypeName","src":"999:13:15"}],"id":8452,"name":"InheritanceSpecifier","src":"999:13:15"},{"attributes":{"constant":false,"name":"_tokenWhitelistNode","scope":8626,"stateVariable":true,"storageLocation":"default","type":"bytes32","value":null,"visibility":"private"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":8453,"name":"ElementaryTypeName","src":"1104:7:15"}],"id":8454,"name":"VariableDeclaration","src":"1104:35:15"},{"attributes":{"constant":false,"documentation":"@notice Constructor initializes the TokenWhitelistable object.\n @param _tokenWhitelistNameHash_ is the ENS name hash of the TokenWhitelist.","implemented":true,"isConstructor":true,"modifiers":[null],"name":"","payable":false,"scope":8626,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_tokenWhitelistNameHash_","scope":8464,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":8455,"name":"ElementaryTypeName","src":"1313:7:15"}],"id":8456,"name":"VariableDeclaration","src":"1313:32:15"}],"id":8457,"name":"ParameterList","src":"1312:34:15"},{"attributes":{"parameters":[null]},"children":[],"id":8458,"name":"ParameterList","src":"1356:0:15"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8454,"type":"bytes32","value":"_tokenWhitelistNode"},"id":8459,"name":"Identifier","src":"1366:19:15"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8456,"type":"bytes32","value":"_tokenWhitelistNameHash_"},"id":8460,"name":"Identifier","src":"1388:24:15"}],"id":8461,"name":"Assignment","src":"1366:46:15"}],"id":8462,"name":"ExpressionStatement","src":"1366:46:15"}],"id":8463,"name":"Block","src":"1356:63:15"}],"id":8464,"name":"FunctionDefinition","src":"1301:118:15"},{"attributes":{"constant":true,"documentation":"@notice This shows what TokenWhitelist is being used\n @return the TokenWhitelist's name hash registered in ENS.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"tokenWhitelistNode","payable":false,"scope":8626,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":8465,"name":"ParameterList","src":"1579:2:15"},{"children":[{"attributes":{"constant":false,"name":"","scope":8472,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":8466,"name":"ElementaryTypeName","src":"1605:7:15"}],"id":8467,"name":"VariableDeclaration","src":"1605:7:15"}],"id":8468,"name":"ParameterList","src":"1604:9:15"},{"children":[{"attributes":{"functionReturnParameters":8468},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8454,"type":"bytes32","value":"_tokenWhitelistNode"},"id":8469,"name":"Identifier","src":"1631:19:15"}],"id":8470,"name":"Return","src":"1624:26:15"}],"id":8471,"name":"Block","src":"1614:43:15"}],"id":8472,"name":"FunctionDefinition","src":"1552:105:15"},{"attributes":{"constant":true,"documentation":"@notice This returns all of the fields for a given token\n @param _a is the address of a given token\n @return string of the token's symbol\n @return uint of the token's magnitude\n @return uint of the token's exchange rate to ETH\n @return bool whether the token is available\n @return bool whether the token is loadable to the TokenCard\n @return bool whether the token is burnable to the TKN Holder Contract\n @return uint of the lastUpdated time of the token's exchange rate","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_getTokenInfo","payable":false,"scope":8626,"stateMutability":"view","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_a","scope":8501,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":8473,"name":"ElementaryTypeName","src":"2221:7:15"}],"id":8474,"name":"VariableDeclaration","src":"2221:10:15"}],"id":8475,"name":"ParameterList","src":"2220:12:15"},{"children":[{"attributes":{"constant":false,"name":"","scope":8501,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":8476,"name":"ElementaryTypeName","src":"2256:6:15"}],"id":8477,"name":"VariableDeclaration","src":"2256:6:15"},{"attributes":{"constant":false,"name":"","scope":8501,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":8478,"name":"ElementaryTypeName","src":"2264:7:15"}],"id":8479,"name":"VariableDeclaration","src":"2264:7:15"},{"attributes":{"constant":false,"name":"","scope":8501,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":8480,"name":"ElementaryTypeName","src":"2273:7:15"}],"id":8481,"name":"VariableDeclaration","src":"2273:7:15"},{"attributes":{"constant":false,"name":"","scope":8501,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":8482,"name":"ElementaryTypeName","src":"2282:4:15"}],"id":8483,"name":"VariableDeclaration","src":"2282:4:15"},{"attributes":{"constant":false,"name":"","scope":8501,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":8484,"name":"ElementaryTypeName","src":"2288:4:15"}],"id":8485,"name":"VariableDeclaration","src":"2288:4:15"},{"attributes":{"constant":false,"name":"","scope":8501,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":8486,"name":"ElementaryTypeName","src":"2294:4:15"}],"id":8487,"name":"VariableDeclaration","src":"2294:4:15"},{"attributes":{"constant":false,"name":"","scope":8501,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":8488,"name":"ElementaryTypeName","src":"2300:7:15"}],"id":8489,"name":"VariableDeclaration","src":"2300:7:15"}],"id":8490,"name":"ParameterList","src":"2255:53:15"},{"children":[{"attributes":{"functionReturnParameters":8490},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple(string memory,uint256,uint256,bool,bool,bool,uint256)","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"getTokenInfo","referencedDeclaration":9618,"type":"function (address) view external returns (string memory,uint256,uint256,bool,bool,bool,uint256)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract ITokenWhitelist","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":9656,"type":"type(contract ITokenWhitelist)","value":"ITokenWhitelist"},"id":8491,"name":"Identifier","src":"2326:15:15"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[null],"referencedDeclaration":7901,"type":"function (bytes32) view returns (address)","value":"_ensResolve"},"id":8492,"name":"Identifier","src":"2342:11:15"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8454,"type":"bytes32","value":"_tokenWhitelistNode"},"id":8493,"name":"Identifier","src":"2354:19:15"}],"id":8494,"name":"FunctionCall","src":"2342:32:15"}],"id":8495,"name":"FunctionCall","src":"2326:49:15"}],"id":8496,"name":"MemberAccess","src":"2326:62:15"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8474,"type":"address","value":"_a"},"id":8497,"name":"Identifier","src":"2389:2:15"}],"id":8498,"name":"FunctionCall","src":"2326:66:15"}],"id":8499,"name":"Return","src":"2319:73:15"}],"id":8500,"name":"Block","src":"2309:90:15"}],"id":8501,"name":"FunctionDefinition","src":"2198:201:15"},{"attributes":{"constant":true,"documentation":"@notice This returns all of the fields for our stablecoin token\n @return string of the token's symbol\n @return uint of the token's magnitude\n @return uint of the token's exchange rate to ETH\n @return bool whether the token is available\n @return bool whether the token is loadable to the TokenCard\n @return bool whether the token is burnable to the TKN Holder Contract\n @return uint of the lastUpdated time of the token's exchange rate","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_getStablecoinInfo","payable":false,"scope":8626,"stateMutability":"view","superFunction":null,"visibility":"internal"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":8502,"name":"ParameterList","src":"2924:2:15"},{"children":[{"attributes":{"constant":false,"name":"","scope":8527,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":8503,"name":"ElementaryTypeName","src":"2950:6:15"}],"id":8504,"name":"VariableDeclaration","src":"2950:6:15"},{"attributes":{"constant":false,"name":"","scope":8527,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":8505,"name":"ElementaryTypeName","src":"2958:7:15"}],"id":8506,"name":"VariableDeclaration","src":"2958:7:15"},{"attributes":{"constant":false,"name":"","scope":8527,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":8507,"name":"ElementaryTypeName","src":"2967:7:15"}],"id":8508,"name":"VariableDeclaration","src":"2967:7:15"},{"attributes":{"constant":false,"name":"","scope":8527,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":8509,"name":"ElementaryTypeName","src":"2976:4:15"}],"id":8510,"name":"VariableDeclaration","src":"2976:4:15"},{"attributes":{"constant":false,"name":"","scope":8527,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":8511,"name":"ElementaryTypeName","src":"2982:4:15"}],"id":8512,"name":"VariableDeclaration","src":"2982:4:15"},{"attributes":{"constant":false,"name":"","scope":8527,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":8513,"name":"ElementaryTypeName","src":"2988:4:15"}],"id":8514,"name":"VariableDeclaration","src":"2988:4:15"},{"attributes":{"constant":false,"name":"","scope":8527,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":8515,"name":"ElementaryTypeName","src":"2994:7:15"}],"id":8516,"name":"VariableDeclaration","src":"2994:7:15"}],"id":8517,"name":"ParameterList","src":"2949:53:15"},{"children":[{"attributes":{"functionReturnParameters":8517},"children":[{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple(string memory,uint256,uint256,bool,bool,bool,uint256)","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"getStablecoinInfo","referencedDeclaration":9635,"type":"function () view external returns (string memory,uint256,uint256,bool,bool,bool,uint256)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract ITokenWhitelist","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":9656,"type":"type(contract ITokenWhitelist)","value":"ITokenWhitelist"},"id":8518,"name":"Identifier","src":"3020:15:15"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[null],"referencedDeclaration":7901,"type":"function (bytes32) view returns (address)","value":"_ensResolve"},"id":8519,"name":"Identifier","src":"3036:11:15"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8454,"type":"bytes32","value":"_tokenWhitelistNode"},"id":8520,"name":"Identifier","src":"3048:19:15"}],"id":8521,"name":"FunctionCall","src":"3036:32:15"}],"id":8522,"name":"FunctionCall","src":"3020:49:15"}],"id":8523,"name":"MemberAccess","src":"3020:67:15"}],"id":8524,"name":"FunctionCall","src":"3020:69:15"}],"id":8525,"name":"Return","src":"3013:76:15"}],"id":8526,"name":"Block","src":"3003:93:15"}],"id":8527,"name":"FunctionDefinition","src":"2897:199:15"},{"attributes":{"constant":true,"documentation":"@notice This returns an array of our whitelisted address\n @return address[] of our whitelisted tokens","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_tokenAddressArray","payable":false,"scope":8626,"stateMutability":"view","superFunction":null,"visibility":"internal"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":8528,"name":"ParameterList","src":"3246:2:15"},{"children":[{"attributes":{"constant":false,"name":"","scope":8542,"stateVariable":false,"storageLocation":"default","type":"address[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"address[]"},"children":[{"attributes":{"name":"address","type":"address"},"id":8529,"name":"ElementaryTypeName","src":"3272:7:15"}],"id":8530,"name":"ArrayTypeName","src":"3272:9:15"}],"id":8531,"name":"VariableDeclaration","src":"3272:9:15"}],"id":8532,"name":"ParameterList","src":"3271:11:15"},{"children":[{"attributes":{"functionReturnParameters":8532},"children":[{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address[] memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"tokenAddressArray","referencedDeclaration":9641,"type":"function () view external returns (address[] memory)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract ITokenWhitelist","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":9656,"type":"type(contract ITokenWhitelist)","value":"ITokenWhitelist"},"id":8533,"name":"Identifier","src":"3300:15:15"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[null],"referencedDeclaration":7901,"type":"function (bytes32) view returns (address)","value":"_ensResolve"},"id":8534,"name":"Identifier","src":"3316:11:15"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8454,"type":"bytes32","value":"_tokenWhitelistNode"},"id":8535,"name":"Identifier","src":"3328:19:15"}],"id":8536,"name":"FunctionCall","src":"3316:32:15"}],"id":8537,"name":"FunctionCall","src":"3300:49:15"}],"id":8538,"name":"MemberAccess","src":"3300:67:15"}],"id":8539,"name":"FunctionCall","src":"3300:69:15"}],"id":8540,"name":"Return","src":"3293:76:15"}],"id":8541,"name":"Block","src":"3283:93:15"}],"id":8542,"name":"FunctionDefinition","src":"3219:157:15"},{"attributes":{"constant":false,"documentation":"@notice Update ERC20 token exchange rate.\n @param _token ERC20 token contract address.\n @param _rate ERC20 token exchange rate in wei.\n @param _updateDate date for the token updates. This will be compared to when oracle updates are received.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_updateTokenRate","payable":false,"scope":8626,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_token","scope":8563,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":8543,"name":"ElementaryTypeName","src":"3679:7:15"}],"id":8544,"name":"VariableDeclaration","src":"3679:14:15"},{"attributes":{"constant":false,"name":"_rate","scope":8563,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":8545,"name":"ElementaryTypeName","src":"3695:4:15"}],"id":8546,"name":"VariableDeclaration","src":"3695:10:15"},{"attributes":{"constant":false,"name":"_updateDate","scope":8563,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":8547,"name":"ElementaryTypeName","src":"3707:4:15"}],"id":8548,"name":"VariableDeclaration","src":"3707:16:15"}],"id":8549,"name":"ParameterList","src":"3678:46:15"},{"attributes":{"parameters":[null]},"children":[],"id":8550,"name":"ParameterList","src":"3734:0:15"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"updateTokenRate","referencedDeclaration":9650,"type":"function (address,uint256,uint256) external"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract ITokenWhitelist","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":9656,"type":"type(contract ITokenWhitelist)","value":"ITokenWhitelist"},"id":8551,"name":"Identifier","src":"3744:15:15"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[null],"referencedDeclaration":7901,"type":"function (bytes32) view returns (address)","value":"_ensResolve"},"id":8552,"name":"Identifier","src":"3760:11:15"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8454,"type":"bytes32","value":"_tokenWhitelistNode"},"id":8553,"name":"Identifier","src":"3772:19:15"}],"id":8554,"name":"FunctionCall","src":"3760:32:15"}],"id":8555,"name":"FunctionCall","src":"3744:49:15"}],"id":8556,"name":"MemberAccess","src":"3744:65:15"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8544,"type":"address","value":"_token"},"id":8557,"name":"Identifier","src":"3810:6:15"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8546,"type":"uint256","value":"_rate"},"id":8558,"name":"Identifier","src":"3818:5:15"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8548,"type":"uint256","value":"_updateDate"},"id":8559,"name":"Identifier","src":"3825:11:15"}],"id":8560,"name":"FunctionCall","src":"3744:93:15"}],"id":8561,"name":"ExpressionStatement","src":"3744:93:15"}],"id":8562,"name":"Block","src":"3734:110:15"}],"id":8563,"name":"FunctionDefinition","src":"3653:191:15"},{"attributes":{"constant":true,"documentation":"@notice Checks whether a token is available\n @return bool available or not","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_isTokenAvailable","payable":false,"scope":8626,"stateMutability":"view","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_a","scope":8579,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":8564,"name":"ElementaryTypeName","src":"3967:7:15"}],"id":8565,"name":"VariableDeclaration","src":"3967:10:15"}],"id":8566,"name":"ParameterList","src":"3966:12:15"},{"children":[{"attributes":{"constant":false,"name":"","scope":8579,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":8567,"name":"ElementaryTypeName","src":"4002:4:15"}],"id":8568,"name":"VariableDeclaration","src":"4002:4:15"}],"id":8569,"name":"ParameterList","src":"4001:6:15"},{"children":[{"attributes":{"assignments":[null,null,null,8571,null,null,null]},"children":[{"attributes":{"constant":false,"name":"available","scope":8579,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":8570,"name":"ElementaryTypeName","src":"4026:4:15"}],"id":8571,"name":"VariableDeclaration","src":"4026:14:15"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple(string memory,uint256,uint256,bool,bool,bool,uint256)","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":8501,"type":"function (address) view returns (string memory,uint256,uint256,bool,bool,bool,uint256)","value":"_getTokenInfo"},"id":8572,"name":"Identifier","src":"4050:13:15"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8565,"type":"address","value":"_a"},"id":8573,"name":"Identifier","src":"4064:2:15"}],"id":8574,"name":"FunctionCall","src":"4050:17:15"}],"id":8575,"name":"VariableDeclarationStatement","src":"4018:49:15"},{"attributes":{"functionReturnParameters":8569},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8571,"type":"bool","value":"available"},"id":8576,"name":"Identifier","src":"4084:9:15"}],"id":8577,"name":"Return","src":"4077:16:15"}],"id":8578,"name":"Block","src":"4008:92:15"}],"id":8579,"name":"FunctionDefinition","src":"3940:160:15"},{"attributes":{"constant":true,"documentation":"@notice Checks whether a token is burnable\n @return bool burnable or not","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_isTokenBurnable","payable":false,"scope":8626,"stateMutability":"view","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_a","scope":8595,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":8580,"name":"ElementaryTypeName","src":"4220:7:15"}],"id":8581,"name":"VariableDeclaration","src":"4220:10:15"}],"id":8582,"name":"ParameterList","src":"4219:12:15"},{"children":[{"attributes":{"constant":false,"name":"","scope":8595,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":8583,"name":"ElementaryTypeName","src":"4255:4:15"}],"id":8584,"name":"VariableDeclaration","src":"4255:4:15"}],"id":8585,"name":"ParameterList","src":"4254:6:15"},{"children":[{"attributes":{"assignments":[null,null,null,null,null,8587,null]},"children":[{"attributes":{"constant":false,"name":"burnable","scope":8595,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":8586,"name":"ElementaryTypeName","src":"4283:4:15"}],"id":8587,"name":"VariableDeclaration","src":"4283:13:15"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple(string memory,uint256,uint256,bool,bool,bool,uint256)","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":8501,"type":"function (address) view returns (string memory,uint256,uint256,bool,bool,bool,uint256)","value":"_getTokenInfo"},"id":8588,"name":"Identifier","src":"4302:13:15"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8581,"type":"address","value":"_a"},"id":8589,"name":"Identifier","src":"4316:2:15"}],"id":8590,"name":"FunctionCall","src":"4302:17:15"}],"id":8591,"name":"VariableDeclarationStatement","src":"4271:48:15"},{"attributes":{"functionReturnParameters":8585},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8587,"type":"bool","value":"burnable"},"id":8592,"name":"Identifier","src":"4336:8:15"}],"id":8593,"name":"Return","src":"4329:15:15"}],"id":8594,"name":"Block","src":"4261:90:15"}],"id":8595,"name":"FunctionDefinition","src":"4194:157:15"},{"attributes":{"constant":true,"documentation":"@notice Checks whether a token is loadable\n @return bool loadable or not","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_isTokenLoadable","payable":false,"scope":8626,"stateMutability":"view","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_a","scope":8611,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":8596,"name":"ElementaryTypeName","src":"4471:7:15"}],"id":8597,"name":"VariableDeclaration","src":"4471:10:15"}],"id":8598,"name":"ParameterList","src":"4470:12:15"},{"children":[{"attributes":{"constant":false,"name":"","scope":8611,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":8599,"name":"ElementaryTypeName","src":"4506:4:15"}],"id":8600,"name":"VariableDeclaration","src":"4506:4:15"}],"id":8601,"name":"ParameterList","src":"4505:6:15"},{"children":[{"attributes":{"assignments":[null,null,null,null,8603,null,null]},"children":[{"attributes":{"constant":false,"name":"loadable","scope":8611,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":8602,"name":"ElementaryTypeName","src":"4532:4:15"}],"id":8603,"name":"VariableDeclaration","src":"4532:13:15"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple(string memory,uint256,uint256,bool,bool,bool,uint256)","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":8501,"type":"function (address) view returns (string memory,uint256,uint256,bool,bool,bool,uint256)","value":"_getTokenInfo"},"id":8604,"name":"Identifier","src":"4553:13:15"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8597,"type":"address","value":"_a"},"id":8605,"name":"Identifier","src":"4567:2:15"}],"id":8606,"name":"FunctionCall","src":"4553:17:15"}],"id":8607,"name":"VariableDeclarationStatement","src":"4522:48:15"},{"attributes":{"functionReturnParameters":8601},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8603,"type":"bool","value":"loadable"},"id":8608,"name":"Identifier","src":"4587:8:15"}],"id":8609,"name":"Return","src":"4580:15:15"}],"id":8610,"name":"Block","src":"4512:90:15"}],"id":8611,"name":"FunctionDefinition","src":"4445:157:15"},{"attributes":{"constant":true,"documentation":"@notice This gets the address of the stablecoin\n @return the address of the stablecoin contract.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_stablecoin","payable":false,"scope":8626,"stateMutability":"view","superFunction":null,"visibility":"internal"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":8612,"name":"ParameterList","src":"4740:2:15"},{"children":[{"attributes":{"constant":false,"name":"","scope":8625,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":8613,"name":"ElementaryTypeName","src":"4766:7:15"}],"id":8614,"name":"VariableDeclaration","src":"4766:7:15"}],"id":8615,"name":"ParameterList","src":"4765:9:15"},{"children":[{"attributes":{"functionReturnParameters":8615},"children":[{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"stablecoin","referencedDeclaration":9655,"type":"function () view external returns (address)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract ITokenWhitelist","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":9656,"type":"type(contract ITokenWhitelist)","value":"ITokenWhitelist"},"id":8616,"name":"Identifier","src":"4792:15:15"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[null],"referencedDeclaration":7901,"type":"function (bytes32) view returns (address)","value":"_ensResolve"},"id":8617,"name":"Identifier","src":"4808:11:15"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8454,"type":"bytes32","value":"_tokenWhitelistNode"},"id":8618,"name":"Identifier","src":"4820:19:15"}],"id":8619,"name":"FunctionCall","src":"4808:32:15"}],"id":8620,"name":"FunctionCall","src":"4792:49:15"}],"id":8621,"name":"MemberAccess","src":"4792:60:15"}],"id":8622,"name":"FunctionCall","src":"4792:62:15"}],"id":8623,"name":"Return","src":"4785:69:15"}],"id":8624,"name":"Block","src":"4775:86:15"}],"id":8625,"name":"FunctionDefinition","src":"4720:141:15"}],"id":8626,"name":"ContractDefinition","src":"968:3896:15"}],"id":8627,"name":"SourceUnit","src":"778:4087:15"}},"oracle.sol":{"AST":{"attributes":{"absolutePath":"oracle.sol","exportedSymbols":{"Oracle":[1098]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".25"]},"id":1,"name":"PragmaDirective","src":"770:24:16"},{"attributes":{"SourceUnit":7683,"absolutePath":"internals/controllable.sol","file":"./internals/controllable.sol","scope":1099,"symbolAliases":[null],"unitAlias":""},"id":2,"name":"ImportDirective","src":"796:38:16"},{"attributes":{"SourceUnit":7627,"absolutePath":"internals/claimable.sol","file":"./internals/claimable.sol","scope":1099,"symbolAliases":[null],"unitAlias":""},"id":3,"name":"ImportDirective","src":"835:35:16"},{"attributes":{"SourceUnit":7903,"absolutePath":"internals/ensResolvable.sol","file":"./internals/ensResolvable.sol","scope":1099,"symbolAliases":[null],"unitAlias":""},"id":4,"name":"ImportDirective","src":"871:39:16"},{"attributes":{"SourceUnit":7852,"absolutePath":"internals/date.sol","file":"./internals/date.sol","scope":1099,"symbolAliases":[null],"unitAlias":""},"id":5,"name":"ImportDirective","src":"911:30:16"},{"attributes":{"SourceUnit":8447,"absolutePath":"internals/parseIntScientific.sol","file":"./internals/parseIntScientific.sol","scope":1099,"symbolAliases":[null],"unitAlias":""},"id":6,"name":"ImportDirective","src":"942:44:16"},{"attributes":{"SourceUnit":8627,"absolutePath":"internals/tokenWhitelistable.sol","file":"./internals/tokenWhitelistable.sol","scope":1099,"symbolAliases":[null],"unitAlias":""},"id":7,"name":"ImportDirective","src":"987:44:16"},{"attributes":{"SourceUnit":1227,"absolutePath":"externals/SafeMath.sol","file":"./externals/SafeMath.sol","scope":1099,"symbolAliases":[null],"unitAlias":""},"id":8,"name":"ImportDirective","src":"1032:34:16"},{"attributes":{"SourceUnit":7574,"absolutePath":"externals/oraclizeAPI_0.4.25.sol","file":"./externals/oraclizeAPI_0.4.25.sol","scope":1099,"symbolAliases":[null],"unitAlias":""},"id":9,"name":"ImportDirective","src":"1067:44:16"},{"attributes":{"SourceUnit":1548,"absolutePath":"externals/base64.sol","file":"./externals/base64.sol","scope":1099,"symbolAliases":[null],"unitAlias":""},"id":10,"name":"ImportDirective","src":"1112:32:16"},{"attributes":{"contractDependencies":[1547,7573,7626,7682,7851,7902,8446,8626],"contractKind":"contract","documentation":"@title Oracle provides asset exchange rates and conversion functionality.","fullyImplemented":true,"linearizedBaseContracts":[1098,8626,8446,7682,7851,1547,7626,7573,7902],"name":"Oracle","scope":1099},"children":[{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"ENSResolvable","referencedDeclaration":7902,"type":"contract ENSResolvable"},"id":11,"name":"UserDefinedTypeName","src":"1244:13:16"}],"id":12,"name":"InheritanceSpecifier","src":"1244:13:16"},{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"usingOraclize","referencedDeclaration":7573,"type":"contract usingOraclize"},"id":13,"name":"UserDefinedTypeName","src":"1259:13:16"}],"id":14,"name":"InheritanceSpecifier","src":"1259:13:16"},{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"Claimable","referencedDeclaration":7626,"type":"contract Claimable"},"id":15,"name":"UserDefinedTypeName","src":"1274:9:16"}],"id":16,"name":"InheritanceSpecifier","src":"1274:9:16"},{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"Base64","referencedDeclaration":1547,"type":"contract Base64"},"id":17,"name":"UserDefinedTypeName","src":"1285:6:16"}],"id":18,"name":"InheritanceSpecifier","src":"1285:6:16"},{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"Date","referencedDeclaration":7851,"type":"contract Date"},"id":19,"name":"UserDefinedTypeName","src":"1293:4:16"}],"id":20,"name":"InheritanceSpecifier","src":"1293:4:16"},{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"Controllable","referencedDeclaration":7682,"type":"contract Controllable"},"id":21,"name":"UserDefinedTypeName","src":"1299:12:16"}],"id":22,"name":"InheritanceSpecifier","src":"1299:12:16"},{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"ParseIntScientific","referencedDeclaration":8446,"type":"contract ParseIntScientific"},"id":23,"name":"UserDefinedTypeName","src":"1313:18:16"}],"id":24,"name":"InheritanceSpecifier","src":"1313:18:16"},{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"TokenWhitelistable","referencedDeclaration":8626,"type":"contract TokenWhitelistable"},"id":25,"name":"UserDefinedTypeName","src":"1333:18:16"}],"id":26,"name":"InheritanceSpecifier","src":"1333:18:16"},{"attributes":{"typeName":null},"children":[{"attributes":{"contractScope":null,"name":"strings","referencedDeclaration":12001,"type":"library strings"},"id":27,"name":"UserDefinedTypeName","src":"1364:7:16"}],"id":28,"name":"UsingForDirective","src":"1358:20:16"},{"children":[{"attributes":{"contractScope":null,"name":"SafeMath","referencedDeclaration":1226,"type":"library SafeMath"},"id":29,"name":"UserDefinedTypeName","src":"1389:8:16"},{"attributes":{"name":"uint256","type":"uint256"},"id":30,"name":"ElementaryTypeName","src":"1402:7:16"}],"id":31,"name":"UsingForDirective","src":"1383:27:16"},{"attributes":{"anonymous":false,"documentation":"**************","name":"SetGasPrice"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_sender","scope":37,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":32,"name":"ElementaryTypeName","src":"1511:7:16"}],"id":33,"name":"VariableDeclaration","src":"1511:15:16"},{"attributes":{"constant":false,"indexed":false,"name":"_gasPrice","scope":37,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":34,"name":"ElementaryTypeName","src":"1528:4:16"}],"id":35,"name":"VariableDeclaration","src":"1528:14:16"}],"id":36,"name":"ParameterList","src":"1510:33:16"}],"id":37,"name":"EventDefinition","src":"1493:51:16"},{"attributes":{"anonymous":false,"documentation":null,"name":"RequestedUpdate"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_symbol","scope":41,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":38,"name":"ElementaryTypeName","src":"1572:6:16"}],"id":39,"name":"VariableDeclaration","src":"1572:14:16"}],"id":40,"name":"ParameterList","src":"1571:16:16"}],"id":41,"name":"EventDefinition","src":"1550:38:16"},{"attributes":{"anonymous":false,"documentation":null,"name":"FailedUpdateRequest"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_reason","scope":45,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":42,"name":"ElementaryTypeName","src":"1619:6:16"}],"id":43,"name":"VariableDeclaration","src":"1619:14:16"}],"id":44,"name":"ParameterList","src":"1618:16:16"}],"id":45,"name":"EventDefinition","src":"1593:42:16"},{"attributes":{"anonymous":false,"documentation":null,"name":"VerifiedProof"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_publicKey","scope":51,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":46,"name":"ElementaryTypeName","src":"1661:5:16"}],"id":47,"name":"VariableDeclaration","src":"1661:16:16"},{"attributes":{"constant":false,"indexed":false,"name":"_result","scope":51,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":48,"name":"ElementaryTypeName","src":"1679:6:16"}],"id":49,"name":"VariableDeclaration","src":"1679:14:16"}],"id":50,"name":"ParameterList","src":"1660:34:16"}],"id":51,"name":"EventDefinition","src":"1641:54:16"},{"attributes":{"anonymous":false,"documentation":null,"name":"SetCryptoComparePublicKey"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_sender","scope":57,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":52,"name":"ElementaryTypeName","src":"1733:7:16"}],"id":53,"name":"VariableDeclaration","src":"1733:15:16"},{"attributes":{"constant":false,"indexed":false,"name":"_publicKey","scope":57,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":54,"name":"ElementaryTypeName","src":"1750:5:16"}],"id":55,"name":"VariableDeclaration","src":"1750:16:16"}],"id":56,"name":"ParameterList","src":"1732:35:16"}],"id":57,"name":"EventDefinition","src":"1701:67:16"},{"attributes":{"constant":true,"name":"_PROOF_LEN","scope":1098,"stateVariable":true,"storageLocation":"default","type":"uint256","visibility":"private"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":58,"name":"ElementaryTypeName","src":"1859:4:16"},{"attributes":{"argumentTypes":null,"hexvalue":"313635","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 165","value":"165"},"id":59,"name":"Literal","src":"1894:3:16"}],"id":60,"name":"VariableDeclaration","src":"1859:38:16"},{"attributes":{"constant":true,"name":"_ECDSA_SIG_LEN","scope":1098,"stateVariable":true,"storageLocation":"default","type":"uint256","visibility":"private"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":61,"name":"ElementaryTypeName","src":"1903:4:16"},{"attributes":{"argumentTypes":null,"hexvalue":"3635","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 65","value":"65"},"id":62,"name":"Literal","src":"1942:2:16"}],"id":63,"name":"VariableDeclaration","src":"1903:41:16"},{"attributes":{"constant":true,"name":"_ENCODING_BYTES","scope":1098,"stateVariable":true,"storageLocation":"default","type":"uint256","visibility":"private"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":64,"name":"ElementaryTypeName","src":"1950:4:16"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":65,"name":"Literal","src":"1990:1:16"}],"id":66,"name":"VariableDeclaration","src":"1950:41:16"},{"attributes":{"constant":true,"name":"_HEADERS_LEN","scope":1098,"stateVariable":true,"storageLocation":"default","type":"uint256","visibility":"private"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":67,"name":"ElementaryTypeName","src":"1997:4:16"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":60,"type":"uint256","value":"_PROOF_LEN"},"id":68,"name":"Identifier","src":"2034:10:16"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":69,"name":"Literal","src":"2047:1:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":66,"type":"uint256","value":"_ENCODING_BYTES"},"id":70,"name":"Identifier","src":"2051:15:16"}],"id":71,"name":"BinaryOperation","src":"2047:19:16"}],"id":72,"name":"BinaryOperation","src":"2034:32:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":63,"type":"uint256","value":"_ECDSA_SIG_LEN"},"id":73,"name":"Identifier","src":"2069:14:16"}],"id":74,"name":"BinaryOperation","src":"2034:49:16"}],"id":75,"name":"VariableDeclaration","src":"1997:86:16"},{"attributes":{"constant":true,"name":"_DIGEST_BASE64_LEN","scope":1098,"stateVariable":true,"storageLocation":"default","type":"uint256","visibility":"private"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":76,"name":"ElementaryTypeName","src":"2143:4:16"},{"attributes":{"argumentTypes":null,"hexvalue":"3434","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 44","value":"44"},"id":77,"name":"Literal","src":"2186:2:16"}],"id":78,"name":"VariableDeclaration","src":"2143:45:16"},{"attributes":{"constant":true,"name":"_DIGEST_OFFSET","scope":1098,"stateVariable":true,"storageLocation":"default","type":"uint256","visibility":"private"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":79,"name":"ElementaryTypeName","src":"2271:4:16"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":75,"type":"uint256","value":"_HEADERS_LEN"},"id":80,"name":"Identifier","src":"2310:12:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":78,"type":"uint256","value":"_DIGEST_BASE64_LEN"},"id":81,"name":"Identifier","src":"2325:18:16"}],"id":82,"name":"BinaryOperation","src":"2310:33:16"}],"id":83,"name":"VariableDeclaration","src":"2271:72:16"},{"attributes":{"constant":true,"name":"_MAX_BYTE_SIZE","scope":1098,"stateVariable":true,"storageLocation":"default","type":"uint256","visibility":"private"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":84,"name":"ElementaryTypeName","src":"2417:4:16"},{"attributes":{"argumentTypes":null,"hexvalue":"323536","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 256","value":"256"},"id":85,"name":"Literal","src":"2456:3:16"}],"id":86,"name":"VariableDeclaration","src":"2417:42:16"},{"attributes":{"constant":true,"name":"_PREFIX_HASH","scope":1098,"stateVariable":true,"storageLocation":"default","type":"bytes32","visibility":"private"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":87,"name":"ElementaryTypeName","src":"2549:7:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7a2d79c44ec25893f1deb7192af566af2e14c179cce8e62e025bd750d6e078e2","typeString":"literal_string \"{\"ETH\":\""}],"overloadedDeclarations":[null],"referencedDeclaration":12010,"type":"function () pure returns (bytes32)","value":"keccak256"},"id":88,"name":"Identifier","src":"2589:9:16"},{"attributes":{"argumentTypes":null,"hexvalue":"7b22455448223a","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"{\"ETH\":\"","value":"{\"ETH\":"},"id":89,"name":"Literal","src":"2599:11:16"}],"id":90,"name":"FunctionCall","src":"2589:22:16"}],"id":91,"name":"VariableDeclaration","src":"2549:62:16"},{"attributes":{"constant":false,"name":"cryptoCompareAPIPublicKey","scope":1098,"stateVariable":true,"storageLocation":"default","type":"bytes","value":null,"visibility":"public"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":92,"name":"ElementaryTypeName","src":"2618:5:16"}],"id":93,"name":"VariableDeclaration","src":"2618:38:16"},{"attributes":{"constant":false,"name":"_queryToToken","scope":1098,"stateVariable":true,"storageLocation":"default","type":"mapping(bytes32 => address)","value":null,"visibility":"private"},"children":[{"attributes":{"type":"mapping(bytes32 => address)"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":94,"name":"ElementaryTypeName","src":"2670:7:16"},{"attributes":{"name":"address","type":"address"},"id":95,"name":"ElementaryTypeName","src":"2681:7:16"}],"id":96,"name":"Mapping","src":"2662:27:16"}],"id":97,"name":"VariableDeclaration","src":"2662:49:16"},{"attributes":{"constant":false,"documentation":"@notice Construct the oracle with multiple controllers, address resolver and custom gas price.\n @param _resolver_ is the address of the oraclize resolver\n @param _ens_ is the address of the ENS.\n @param _controllerNameHash_ is the ENS name hash of the Controller.\n @param _tokenWhitelistNameHash_ is the ENS name hash of the Token Whitelist.","implemented":true,"isConstructor":true,"name":"","payable":false,"scope":1098,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"_resolver_","scope":136,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":98,"name":"ElementaryTypeName","src":"3108:7:16"}],"id":99,"name":"VariableDeclaration","src":"3108:18:16"},{"attributes":{"constant":false,"name":"_ens_","scope":136,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":100,"name":"ElementaryTypeName","src":"3128:7:16"}],"id":101,"name":"VariableDeclaration","src":"3128:13:16"},{"attributes":{"constant":false,"name":"_controllerNameHash_","scope":136,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":102,"name":"ElementaryTypeName","src":"3143:7:16"}],"id":103,"name":"VariableDeclaration","src":"3143:28:16"},{"attributes":{"constant":false,"name":"_tokenWhitelistNameHash_","scope":136,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":104,"name":"ElementaryTypeName","src":"3173:7:16"}],"id":105,"name":"VariableDeclaration","src":"3173:32:16"}],"id":106,"name":"ParameterList","src":"3107:99:16"},{"attributes":{"parameters":[null]},"children":[],"id":116,"name":"ParameterList","src":"3315:0:16"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7902,"type":"type(contract ENSResolvable)","value":"ENSResolvable"},"id":107,"name":"Identifier","src":"3207:13:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":101,"type":"address","value":"_ens_"},"id":108,"name":"Identifier","src":"3221:5:16"}],"id":109,"name":"ModifierInvocation","src":"3207:20:16"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7682,"type":"type(contract Controllable)","value":"Controllable"},"id":110,"name":"Identifier","src":"3228:12:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":103,"type":"bytes32","value":"_controllerNameHash_"},"id":111,"name":"Identifier","src":"3241:20:16"}],"id":112,"name":"ModifierInvocation","src":"3228:34:16"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8626,"type":"type(contract TokenWhitelistable)","value":"TokenWhitelistable"},"id":113,"name":"Identifier","src":"3263:18:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":105,"type":"bytes32","value":"_tokenWhitelistNameHash_"},"id":114,"name":"Identifier","src":"3282:24:16"}],"id":115,"name":"ModifierInvocation","src":"3263:44:16"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":93,"type":"bytes storage ref","value":"cryptoCompareAPIPublicKey"},"id":117,"name":"Identifier","src":"3325:25:16"},{"attributes":{"argumentTypes":null,"hexvalue":"a0f4f688350018ad1b9785991c0bde5f704b005dc79972b114dbed4a615a983710bfc647ebe5a320daa28771dce6a2d104f5efa2e4a85ba3760b76d46f8571ca","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string (contains invalid UTF-8 sequence at position 0)","value":null},"id":118,"name":"Literal","src":"3353:133:16"}],"id":119,"name":"Assignment","src":"3325:161:16"}],"id":120,"name":"ExpressionStatement","src":"3325:161:16"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"contract OraclizeAddrResolverI"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2255,"type":"contract OraclizeAddrResolverI","value":"OAR"},"id":121,"name":"Identifier","src":"3496:3:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract OraclizeAddrResolverI","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":1665,"type":"type(contract OraclizeAddrResolverI)","value":"OraclizeAddrResolverI"},"id":122,"name":"Identifier","src":"3502:21:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":99,"type":"address","value":"_resolver_"},"id":123,"name":"Identifier","src":"3524:10:16"}],"id":124,"name":"FunctionCall","src":"3502:33:16"}],"id":125,"name":"Assignment","src":"3496:39:16"}],"id":126,"name":"ExpressionStatement","src":"3496:39:16"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"}],"overloadedDeclarations":[null],"referencedDeclaration":5560,"type":"function (uint256)","value":"oraclize_setCustomGasPrice"},"id":127,"name":"Identifier","src":"3545:26:16"},{"attributes":{"argumentTypes":null,"hexvalue":"3130303030303030303030","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 10000000000","value":"10000000000"},"id":128,"name":"Literal","src":"3572:11:16"}],"id":129,"name":"FunctionCall","src":"3545:39:16"}],"id":130,"name":"ExpressionStatement","src":"3545:39:16"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"overloadedDeclarations":[null],"referencedDeclaration":5547,"type":"function (bytes1)","value":"oraclize_setProof"},"id":131,"name":"Identifier","src":"3594:17:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2235,"type":"bytes1","value":"proofType_Native"},"id":132,"name":"Identifier","src":"3612:16:16"}],"id":133,"name":"FunctionCall","src":"3594:35:16"}],"id":134,"name":"ExpressionStatement","src":"3594:35:16"}],"id":135,"name":"Block","src":"3315:321:16"}],"id":136,"name":"FunctionDefinition","src":"3096:540:16"},{"attributes":{"constant":false,"documentation":"@notice Updates the Crypto Compare public API key.\n @param _publicKey new Crypto Compare public API key","implemented":true,"isConstructor":false,"name":"updateCryptoCompareAPIPublicKey","payable":false,"scope":1098,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_publicKey","scope":154,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":137,"name":"ElementaryTypeName","src":"3802:5:16"}],"id":138,"name":"VariableDeclaration","src":"3802:16:16"}],"id":139,"name":"ParameterList","src":"3801:18:16"},{"attributes":{"parameters":[null]},"children":[],"id":142,"name":"ParameterList","src":"3844:0:16"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7656,"type":"modifier ()","value":"onlyController"},"id":140,"name":"Identifier","src":"3829:14:16"}],"id":141,"name":"ModifierInvocation","src":"3829:14:16"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":93,"type":"bytes storage ref","value":"cryptoCompareAPIPublicKey"},"id":143,"name":"Identifier","src":"3854:25:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":138,"type":"bytes calldata","value":"_publicKey"},"id":144,"name":"Identifier","src":"3882:10:16"}],"id":145,"name":"Assignment","src":"3854:38:16"}],"id":146,"name":"ExpressionStatement","src":"3854:38:16"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"overloadedDeclarations":[null],"referencedDeclaration":57,"type":"function (address,bytes memory)","value":"SetCryptoComparePublicKey"},"id":147,"name":"Identifier","src":"3907:25:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":12016,"type":"msg","value":"msg"},"id":148,"name":"Identifier","src":"3933:3:16"}],"id":149,"name":"MemberAccess","src":"3933:10:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":138,"type":"bytes calldata","value":"_publicKey"},"id":150,"name":"Identifier","src":"3945:10:16"}],"id":151,"name":"FunctionCall","src":"3907:49:16"}],"id":152,"name":"EmitStatement","src":"3902:54:16"}],"id":153,"name":"Block","src":"3844:119:16"}],"id":154,"name":"FunctionDefinition","src":"3761:202:16"},{"attributes":{"constant":false,"documentation":"@notice Sets the gas price used by Oraclize query.\n @param _gasPrice in wei for Oraclize","implemented":true,"isConstructor":false,"name":"setCustomGasPrice","payable":false,"scope":1098,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_gasPrice","scope":172,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":155,"name":"ElementaryTypeName","src":"4100:4:16"}],"id":156,"name":"VariableDeclaration","src":"4100:14:16"}],"id":157,"name":"ParameterList","src":"4099:16:16"},{"attributes":{"parameters":[null]},"children":[],"id":160,"name":"ParameterList","src":"4140:0:16"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7656,"type":"modifier ()","value":"onlyController"},"id":158,"name":"Identifier","src":"4125:14:16"}],"id":159,"name":"ModifierInvocation","src":"4125:14:16"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":5560,"type":"function (uint256)","value":"oraclize_setCustomGasPrice"},"id":161,"name":"Identifier","src":"4150:26:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":156,"type":"uint256","value":"_gasPrice"},"id":162,"name":"Identifier","src":"4177:9:16"}],"id":163,"name":"FunctionCall","src":"4150:37:16"}],"id":164,"name":"ExpressionStatement","src":"4150:37:16"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":37,"type":"function (address,uint256)","value":"SetGasPrice"},"id":165,"name":"Identifier","src":"4202:11:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":12016,"type":"msg","value":"msg"},"id":166,"name":"Identifier","src":"4214:3:16"}],"id":167,"name":"MemberAccess","src":"4214:10:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":156,"type":"uint256","value":"_gasPrice"},"id":168,"name":"Identifier","src":"4226:9:16"}],"id":169,"name":"FunctionCall","src":"4202:34:16"}],"id":170,"name":"EmitStatement","src":"4197:39:16"}],"id":171,"name":"Block","src":"4140:103:16"}],"id":172,"name":"FunctionDefinition","src":"4073:170:16"},{"attributes":{"constant":false,"documentation":"@notice Update ERC20 token exchange rates for all supported tokens.\n @param _gasLimit the gas limit is passed, this is used for the Oraclize callback","implemented":true,"isConstructor":false,"name":"updateTokenRates","payable":true,"scope":1098,"stateMutability":"payable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_gasLimit","scope":184,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":173,"name":"ElementaryTypeName","src":"4440:4:16"}],"id":174,"name":"VariableDeclaration","src":"4440:14:16"}],"id":175,"name":"ParameterList","src":"4439:16:16"},{"attributes":{"parameters":[null]},"children":[],"id":178,"name":"ParameterList","src":"4488:0:16"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7656,"type":"modifier ()","value":"onlyController"},"id":176,"name":"Identifier","src":"4473:14:16"}],"id":177,"name":"ModifierInvocation","src":"4473:14:16"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":521,"type":"function (uint256)","value":"_updateTokenRates"},"id":179,"name":"Identifier","src":"4498:17:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":174,"type":"uint256","value":"_gasLimit"},"id":180,"name":"Identifier","src":"4516:9:16"}],"id":181,"name":"FunctionCall","src":"4498:28:16"}],"id":182,"name":"ExpressionStatement","src":"4498:28:16"}],"id":183,"name":"Block","src":"4488:45:16"}],"id":184,"name":"FunctionDefinition","src":"4414:119:16"},{"attributes":{"constant":false,"documentation":"@notice Update ERC20 token exchange rates for the list of tokens provided.\n @param _gasLimit the gas limit is passed, this is used for the Oraclize callback\n @param _tokenList the list of tokens that need to be updated","implemented":true,"isConstructor":false,"name":"updateTokenRatesList","payable":true,"scope":1098,"stateMutability":"payable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_gasLimit","scope":200,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":185,"name":"ElementaryTypeName","src":"4810:4:16"}],"id":186,"name":"VariableDeclaration","src":"4810:14:16"},{"attributes":{"constant":false,"name":"_tokenList","scope":200,"stateVariable":false,"storageLocation":"default","type":"address[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"address[]"},"children":[{"attributes":{"name":"address","type":"address"},"id":187,"name":"ElementaryTypeName","src":"4826:7:16"}],"id":188,"name":"ArrayTypeName","src":"4826:9:16"}],"id":189,"name":"VariableDeclaration","src":"4826:20:16"}],"id":190,"name":"ParameterList","src":"4809:38:16"},{"attributes":{"parameters":[null]},"children":[],"id":193,"name":"ParameterList","src":"4880:0:16"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7656,"type":"modifier ()","value":"onlyController"},"id":191,"name":"Identifier","src":"4865:14:16"}],"id":192,"name":"ModifierInvocation","src":"4865:14:16"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}],"overloadedDeclarations":[null],"referencedDeclaration":640,"type":"function (uint256,address[] memory)","value":"_updateTokenRatesList"},"id":194,"name":"Identifier","src":"4890:21:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":186,"type":"uint256","value":"_gasLimit"},"id":195,"name":"Identifier","src":"4912:9:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":189,"type":"address[] calldata","value":"_tokenList"},"id":196,"name":"Identifier","src":"4923:10:16"}],"id":197,"name":"FunctionCall","src":"4890:44:16"}],"id":198,"name":"ExpressionStatement","src":"4890:44:16"}],"id":199,"name":"Block","src":"4880:61:16"}],"id":200,"name":"FunctionDefinition","src":"4780:161:16"},{"attributes":{"constant":false,"documentation":"@notice Withdraw tokens from the smart contract to the specified account.","implemented":true,"isConstructor":false,"name":"claim","payable":false,"scope":1098,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_to","scope":218,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":201,"name":"ElementaryTypeName","src":"5044:7:16"}],"id":202,"name":"VariableDeclaration","src":"5044:11:16"},{"attributes":{"constant":false,"name":"_asset","scope":218,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":203,"name":"ElementaryTypeName","src":"5057:7:16"}],"id":204,"name":"VariableDeclaration","src":"5057:14:16"},{"attributes":{"constant":false,"name":"_amount","scope":218,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":205,"name":"ElementaryTypeName","src":"5073:4:16"}],"id":206,"name":"VariableDeclaration","src":"5073:12:16"}],"id":207,"name":"ParameterList","src":"5043:43:16"},{"attributes":{"parameters":[null]},"children":[],"id":210,"name":"ParameterList","src":"5111:0:16"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7656,"type":"modifier ()","value":"onlyController"},"id":208,"name":"Identifier","src":"5096:14:16"}],"id":209,"name":"ModifierInvocation","src":"5096:14:16"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":7625,"type":"function (address,address,uint256)","value":"_claim"},"id":211,"name":"Identifier","src":"5121:6:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":202,"type":"address","value":"_to"},"id":212,"name":"Identifier","src":"5128:3:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":204,"type":"address","value":"_asset"},"id":213,"name":"Identifier","src":"5133:6:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":206,"type":"uint256","value":"_amount"},"id":214,"name":"Identifier","src":"5141:7:16"}],"id":215,"name":"FunctionCall","src":"5121:28:16"}],"id":216,"name":"ExpressionStatement","src":"5121:28:16"}],"id":217,"name":"Block","src":"5111:45:16"}],"id":218,"name":"FunctionDefinition","src":"5029:127:16"},{"attributes":{"constant":false,"documentation":"@notice Handle Oraclize query callback and verifiy the provided origin proof.\n @param _queryID Oraclize query ID.\n @param _result query result in JSON format.\n @param _proof origin proof from crypto compare.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"__callback","payable":false,"scope":1098,"stateMutability":"nonpayable","superFunction":2493,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"_queryID","scope":308,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":219,"name":"ElementaryTypeName","src":"5461:7:16"}],"id":220,"name":"VariableDeclaration","src":"5461:16:16"},{"attributes":{"constant":false,"name":"_result","scope":308,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":221,"name":"ElementaryTypeName","src":"5479:6:16"}],"id":222,"name":"VariableDeclaration","src":"5479:14:16"},{"attributes":{"constant":false,"name":"_proof","scope":308,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":223,"name":"ElementaryTypeName","src":"5495:5:16"}],"id":224,"name":"VariableDeclaration","src":"5495:12:16"}],"id":225,"name":"ParameterList","src":"5460:48:16"},{"attributes":{"parameters":[null]},"children":[],"id":226,"name":"ParameterList","src":"5516:0:16"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b88758054e44c94be6565c93c4ac5c75fed82853608c6dcd41226b2e31aa5492","typeString":"literal_string \"sender is not oraclize\""}],"overloadedDeclarations":[12019,12020],"referencedDeclaration":12020,"type":"function (bool,string memory) pure","value":"require"},"id":227,"name":"Identifier","src":"5587:7:16"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":12016,"type":"msg","value":"msg"},"id":228,"name":"Identifier","src":"5595:3:16"}],"id":229,"name":"MemberAccess","src":"5595:10:16"},{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"overloadedDeclarations":[null],"referencedDeclaration":5534,"type":"function () returns (address)","value":"oraclize_cbAddress"},"id":230,"name":"Identifier","src":"5609:18:16"}],"id":231,"name":"FunctionCall","src":"5609:20:16"}],"id":232,"name":"BinaryOperation","src":"5595:34:16"},{"attributes":{"argumentTypes":null,"hexvalue":"73656e646572206973206e6f74206f7261636c697a65","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"sender is not oraclize\"","value":"sender is not oraclize"},"id":233,"name":"Literal","src":"5631:24:16"}],"id":234,"name":"FunctionCall","src":"5587:69:16"}],"id":235,"name":"ExpressionStatement","src":"5587:69:16"},{"attributes":{"assignments":[237]},"children":[{"attributes":{"constant":false,"name":"token","scope":308,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":236,"name":"ElementaryTypeName","src":"5730:7:16"}],"id":237,"name":"VariableDeclaration","src":"5730:13:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":97,"type":"mapping(bytes32 => address)","value":"_queryToToken"},"id":238,"name":"Identifier","src":"5746:13:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":220,"type":"bytes32","value":"_queryID"},"id":239,"name":"Identifier","src":"5760:8:16"}],"id":240,"name":"IndexAccess","src":"5746:23:16"}],"id":241,"name":"VariableDeclarationStatement","src":"5730:39:16"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6acb9a973d4692ff92bbe1a7ef94bbdc1ed7d2fabf86e6374ec6edd32e722bd6","typeString":"literal_string \"queryID matches to address 0\""}],"overloadedDeclarations":[12019,12020],"referencedDeclaration":12020,"type":"function (bool,string memory) pure","value":"require"},"id":242,"name":"Identifier","src":"5779:7:16"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":237,"type":"address","value":"token"},"id":243,"name":"Identifier","src":"5787:5:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":244,"name":"ElementaryTypeNameExpression","src":"5796:7:16"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":245,"name":"Literal","src":"5804:1:16"}],"id":246,"name":"FunctionCall","src":"5796:10:16"}],"id":247,"name":"BinaryOperation","src":"5787:19:16"},{"attributes":{"argumentTypes":null,"hexvalue":"71756572794944206d61746368657320746f20616464726573732030","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"queryID matches to address 0\"","value":"queryID matches to address 0"},"id":248,"name":"Literal","src":"5808:30:16"}],"id":249,"name":"FunctionCall","src":"5779:60:16"}],"id":250,"name":"ExpressionStatement","src":"5779:60:16"},{"attributes":{"assignments":[null,null,null,252,null,null,254]},"children":[{"attributes":{"constant":false,"name":"available","scope":308,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":251,"name":"ElementaryTypeName","src":"5904:4:16"}],"id":252,"name":"VariableDeclaration","src":"5904:14:16"},{"attributes":{"constant":false,"name":"lastUpdate","scope":308,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":253,"name":"ElementaryTypeName","src":"5924:7:16"}],"id":254,"name":"VariableDeclaration","src":"5924:18:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple(string memory,uint256,uint256,bool,bool,bool,uint256)","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":8501,"type":"function (address) view returns (string memory,uint256,uint256,bool,bool,bool,uint256)","value":"_getTokenInfo"},"id":255,"name":"Identifier","src":"5946:13:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":237,"type":"address","value":"token"},"id":256,"name":"Identifier","src":"5960:5:16"}],"id":257,"name":"FunctionCall","src":"5946:20:16"}],"id":258,"name":"VariableDeclarationStatement","src":"5896:70:16"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1ece3bb723b90e0cf52e7142c26cd1e8e9aeda26d377c85e0b1b64ab12879ce1","typeString":"literal_string \"token must be available\""}],"overloadedDeclarations":[12019,12020],"referencedDeclaration":12020,"type":"function (bool,string memory) pure","value":"require"},"id":259,"name":"Identifier","src":"5976:7:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":252,"type":"bool","value":"available"},"id":260,"name":"Identifier","src":"5984:9:16"},{"attributes":{"argumentTypes":null,"hexvalue":"746f6b656e206d75737420626520617661696c61626c65","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"token must be available\"","value":"token must be available"},"id":261,"name":"Literal","src":"5995:25:16"}],"id":262,"name":"FunctionCall","src":"5976:45:16"}],"id":263,"name":"ExpressionStatement","src":"5976:45:16"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"valid","scope":308,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":264,"name":"ElementaryTypeName","src":"6032:4:16"}],"id":265,"name":"VariableDeclaration","src":"6032:10:16"}],"id":266,"name":"VariableDeclarationStatement","src":"6032:10:16"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"timestamp","scope":308,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":267,"name":"ElementaryTypeName","src":"6052:4:16"}],"id":268,"name":"VariableDeclaration","src":"6052:14:16"}],"id":269,"name":"VariableDeclarationStatement","src":"6052:14:16"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"tuple()"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"tuple(bool,uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":265,"type":"bool","value":"valid"},"id":270,"name":"Identifier","src":"6077:5:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":268,"type":"uint256","value":"timestamp"},"id":271,"name":"Identifier","src":"6084:9:16"}],"id":272,"name":"TupleExpression","src":"6076:18:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple(bool,uint256)","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":847,"type":"function (string memory,bytes memory,bytes memory,uint256) returns (bool,uint256)","value":"_verifyProof"},"id":273,"name":"Identifier","src":"6097:12:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":222,"type":"string memory","value":"_result"},"id":274,"name":"Identifier","src":"6110:7:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":224,"type":"bytes memory","value":"_proof"},"id":275,"name":"Identifier","src":"6119:6:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":93,"type":"bytes storage ref","value":"cryptoCompareAPIPublicKey"},"id":276,"name":"Identifier","src":"6127:25:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":254,"type":"uint256","value":"lastUpdate"},"id":277,"name":"Identifier","src":"6154:10:16"}],"id":278,"name":"FunctionCall","src":"6097:68:16"}],"id":279,"name":"Assignment","src":"6076:89:16"}],"id":280,"name":"ExpressionStatement","src":"6076:89:16"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":265,"type":"bool","value":"valid"},"id":281,"name":"Identifier","src":"6224:5:16"},{"children":[{"attributes":{"assignments":[283]},"children":[{"attributes":{"constant":false,"name":"parsedRate","scope":308,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":282,"name":"ElementaryTypeName","src":"6306:7:16"}],"id":283,"name":"VariableDeclaration","src":"6306:18:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"overloadedDeclarations":[null],"referencedDeclaration":7969,"type":"function (string memory) pure returns (uint256)","value":"_parseIntScientificWei"},"id":284,"name":"Identifier","src":"6327:22:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"overloadedDeclarations":[null],"referencedDeclaration":405,"type":"function (string memory) pure returns (string memory)","value":"parseRate"},"id":285,"name":"Identifier","src":"6350:9:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":222,"type":"string memory","value":"_result"},"id":286,"name":"Identifier","src":"6360:7:16"}],"id":287,"name":"FunctionCall","src":"6350:18:16"}],"id":288,"name":"FunctionCall","src":"6327:42:16"}],"id":289,"name":"VariableDeclarationStatement","src":"6306:63:16"},{"attributes":{"assignments":[291]},"children":[{"attributes":{"constant":false,"name":"parsedLastUpdate","scope":308,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":290,"name":"ElementaryTypeName","src":"6437:7:16"}],"id":291,"name":"VariableDeclaration","src":"6437:24:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":268,"type":"uint256","value":"timestamp"},"id":292,"name":"Identifier","src":"6464:9:16"}],"id":293,"name":"VariableDeclarationStatement","src":"6437:36:16"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"delete","prefix":true,"type":"tuple()"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":97,"type":"mapping(bytes32 => address)","value":"_queryToToken"},"id":294,"name":"Identifier","src":"6537:13:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":220,"type":"bytes32","value":"_queryID"},"id":295,"name":"Identifier","src":"6551:8:16"}],"id":296,"name":"IndexAccess","src":"6537:23:16"}],"id":297,"name":"UnaryOperation","src":"6530:30:16"}],"id":298,"name":"ExpressionStatement","src":"6530:30:16"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":8563,"type":"function (address,uint256,uint256)","value":"_updateTokenRate"},"id":299,"name":"Identifier","src":"6575:16:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":237,"type":"address","value":"token"},"id":300,"name":"Identifier","src":"6592:5:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":283,"type":"uint256","value":"parsedRate"},"id":301,"name":"Identifier","src":"6599:10:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":291,"type":"uint256","value":"parsedLastUpdate"},"id":302,"name":"Identifier","src":"6611:16:16"}],"id":303,"name":"FunctionCall","src":"6575:53:16"}],"id":304,"name":"ExpressionStatement","src":"6575:53:16"}],"id":305,"name":"Block","src":"6231:408:16"}],"id":306,"name":"IfStatement","src":"6220:419:16"}],"id":307,"name":"Block","src":"5516:1129:16"}],"id":308,"name":"FunctionDefinition","src":"5441:1204:16"},{"attributes":{"constant":true,"documentation":"@notice Extracts JSON rate value from the response object.\n @param _json body of the JSON response from the CryptoCompare API.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"parseRate","payable":false,"scope":1098,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_json","scope":405,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":309,"name":"ElementaryTypeName","src":"6812:6:16"}],"id":310,"name":"VariableDeclaration","src":"6812:12:16"}],"id":311,"name":"ParameterList","src":"6811:14:16"},{"children":[{"attributes":{"constant":false,"name":"","scope":405,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":312,"name":"ElementaryTypeName","src":"6849:6:16"}],"id":313,"name":"VariableDeclaration","src":"6849:6:16"}],"id":314,"name":"ParameterList","src":"6848:8:16"},{"children":[{"attributes":{"assignments":[316]},"children":[{"attributes":{"constant":false,"name":"jsonLen","scope":405,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":315,"name":"ElementaryTypeName","src":"6868:4:16"}],"id":316,"name":"VariableDeclaration","src":"6868:12:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"member_name":"encodePacked","referencedDeclaration":null,"type":"function () pure returns (bytes memory)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":12003,"type":"abi","value":"abi"},"id":317,"name":"Identifier","src":"6883:3:16"}],"id":318,"name":"MemberAccess","src":"6883:16:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":310,"type":"string memory","value":"_json"},"id":319,"name":"Identifier","src":"6900:5:16"}],"id":320,"name":"FunctionCall","src":"6883:23:16"}],"id":321,"name":"MemberAccess","src":"6883:30:16"}],"id":322,"name":"VariableDeclarationStatement","src":"6868:45:16"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5fea2c2e32d1bae3c1f1ea614dd96ac75409f6d3eaf7da12bd0e75406b36d71f","typeString":"literal_string \"misformatted input\""}],"overloadedDeclarations":[12019,12020],"referencedDeclaration":12020,"type":"function (bool,string memory) pure","value":"require"},"id":323,"name":"Identifier","src":"6997:7:16"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&&","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":316,"type":"uint256","value":"jsonLen"},"id":324,"name":"Identifier","src":"7005:7:16"},{"attributes":{"argumentTypes":null,"hexvalue":"38","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 8","value":"8"},"id":325,"name":"Literal","src":"7015:1:16"}],"id":326,"name":"BinaryOperation","src":"7005:11:16"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":316,"type":"uint256","value":"jsonLen"},"id":327,"name":"Identifier","src":"7020:7:16"},{"attributes":{"argumentTypes":null,"hexvalue":"3238","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 28","value":"28"},"id":328,"name":"Literal","src":"7031:2:16"}],"id":329,"name":"BinaryOperation","src":"7020:13:16"}],"id":330,"name":"BinaryOperation","src":"7005:28:16"},{"attributes":{"argumentTypes":null,"hexvalue":"6d6973666f726d617474656420696e707574","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"misformatted input\"","value":"misformatted input"},"id":331,"name":"Literal","src":"7035:20:16"}],"id":332,"name":"FunctionCall","src":"6997:59:16"}],"id":333,"name":"ExpressionStatement","src":"6997:59:16"},{"attributes":{"assignments":[335]},"children":[{"attributes":{"constant":false,"name":"jsonPrefix","scope":405,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":334,"name":"ElementaryTypeName","src":"7067:5:16"}],"id":335,"name":"VariableDeclaration","src":"7067:23:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (bytes memory)"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":336,"name":"ElementaryTypeName","src":"7097:5:16"}],"id":337,"name":"NewExpression","src":"7093:9:16"},{"attributes":{"argumentTypes":null,"hexvalue":"37","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 7","value":"7"},"id":338,"name":"Literal","src":"7103:1:16"}],"id":339,"name":"FunctionCall","src":"7093:12:16"}],"id":340,"name":"VariableDeclarationStatement","src":"7067:38:16"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"overloadedDeclarations":[null],"referencedDeclaration":7482,"type":"function (bytes memory,uint256,uint256,bytes memory,uint256) pure returns (bytes memory)","value":"copyBytes"},"id":341,"name":"Identifier","src":"7115:9:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"member_name":"encodePacked","referencedDeclaration":null,"type":"function () pure returns (bytes memory)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":12003,"type":"abi","value":"abi"},"id":342,"name":"Identifier","src":"7125:3:16"}],"id":343,"name":"MemberAccess","src":"7125:16:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":310,"type":"string memory","value":"_json"},"id":344,"name":"Identifier","src":"7142:5:16"}],"id":345,"name":"FunctionCall","src":"7125:23:16"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":346,"name":"Literal","src":"7150:1:16"},{"attributes":{"argumentTypes":null,"hexvalue":"37","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 7","value":"7"},"id":347,"name":"Literal","src":"7153:1:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":335,"type":"bytes memory","value":"jsonPrefix"},"id":348,"name":"Identifier","src":"7156:10:16"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":349,"name":"Literal","src":"7168:1:16"}],"id":350,"name":"FunctionCall","src":"7115:55:16"}],"id":351,"name":"ExpressionStatement","src":"7115:55:16"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0c157f62a2cfe79594a26ef6a0987a0304469e42f07594a418ffcc08198b710d","typeString":"literal_string \"prefix mismatch\""}],"overloadedDeclarations":[12019,12020],"referencedDeclaration":12020,"type":"function (bool,string memory) pure","value":"require"},"id":352,"name":"Identifier","src":"7180:7:16"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"overloadedDeclarations":[null],"referencedDeclaration":12010,"type":"function () pure returns (bytes32)","value":"keccak256"},"id":353,"name":"Identifier","src":"7188:9:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":335,"type":"bytes memory","value":"jsonPrefix"},"id":354,"name":"Identifier","src":"7198:10:16"}],"id":355,"name":"FunctionCall","src":"7188:21:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":91,"type":"bytes32","value":"_PREFIX_HASH"},"id":356,"name":"Identifier","src":"7213:12:16"}],"id":357,"name":"BinaryOperation","src":"7188:37:16"},{"attributes":{"argumentTypes":null,"hexvalue":"707265666978206d69736d61746368","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"prefix mismatch\"","value":"prefix mismatch"},"id":358,"name":"Literal","src":"7227:17:16"}],"id":359,"name":"FunctionCall","src":"7180:65:16"}],"id":360,"name":"ExpressionStatement","src":"7180:65:16"},{"attributes":{"assignments":[364]},"children":[{"attributes":{"constant":false,"name":"body","scope":405,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"strings.slice","referencedDeclaration":10313,"type":"struct strings.slice"},"id":363,"name":"UserDefinedTypeName","src":"7256:13:16"}],"id":364,"name":"VariableDeclaration","src":"7256:25:16"},{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"struct strings.slice memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"toSlice","referencedDeclaration":10373,"type":"function (string memory) pure returns (struct strings.slice memory)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":310,"type":"string memory","value":"_json"},"id":365,"name":"Identifier","src":"7284:5:16"}],"id":366,"name":"MemberAccess","src":"7284:13:16"}],"id":367,"name":"FunctionCall","src":"7284:15:16"}],"id":368,"name":"VariableDeclarationStatement","src":"7256:43:16"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"struct strings.slice memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$10313_memory_ptr","typeString":"struct strings.slice memory"}],"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"split","referencedDeclaration":11672,"type":"function (struct strings.slice memory,struct strings.slice memory) pure returns (struct strings.slice memory)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":364,"type":"struct strings.slice memory","value":"body"},"id":369,"name":"Identifier","src":"7309:4:16"}],"id":371,"name":"MemberAccess","src":"7309:10:16"},{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"struct strings.slice memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"toSlice","referencedDeclaration":10373,"type":"function (string memory) pure returns (struct strings.slice memory)"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3a","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \":\"","value":":"},"id":372,"name":"Literal","src":"7320:3:16"}],"id":373,"name":"MemberAccess","src":"7320:11:16"}],"id":374,"name":"FunctionCall","src":"7320:13:16"}],"id":375,"name":"FunctionCall","src":"7309:25:16"}],"id":376,"name":"ExpressionStatement","src":"7309:25:16"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":316,"type":"uint256","value":"jsonLen"},"id":377,"name":"Identifier","src":"7433:7:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10310,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":364,"type":"struct strings.slice memory","value":"body"},"id":378,"name":"Identifier","src":"7443:4:16"}],"id":379,"name":"MemberAccess","src":"7443:9:16"}],"id":380,"name":"Assignment","src":"7433:19:16"}],"id":381,"name":"ExpressionStatement","src":"7433:19:16"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"struct strings.slice memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$10313_memory_ptr","typeString":"struct strings.slice memory"}],"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"until","referencedDeclaration":11266,"type":"function (struct strings.slice memory,struct strings.slice memory) pure returns (struct strings.slice memory)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":364,"type":"struct strings.slice memory","value":"body"},"id":382,"name":"Identifier","src":"7462:4:16"}],"id":384,"name":"MemberAccess","src":"7462:10:16"},{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"struct strings.slice memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"toSlice","referencedDeclaration":10373,"type":"function (string memory) pure returns (struct strings.slice memory)"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"7d","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"}\"","value":"}"},"id":385,"name":"Literal","src":"7473:3:16"}],"id":386,"name":"MemberAccess","src":"7473:11:16"}],"id":387,"name":"FunctionCall","src":"7473:13:16"}],"id":388,"name":"FunctionCall","src":"7462:25:16"}],"id":389,"name":"ExpressionStatement","src":"7462:25:16"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d0303ffd8acc80da90323135e4843159389d7ce85817f6f11f7897c9fa282156","typeString":"literal_string \"not json format\""}],"overloadedDeclarations":[12019,12020],"referencedDeclaration":12020,"type":"function (bool,string memory) pure","value":"require"},"id":390,"name":"Identifier","src":"7497:7:16"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10310,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":364,"type":"struct strings.slice memory","value":"body"},"id":391,"name":"Identifier","src":"7505:4:16"}],"id":392,"name":"MemberAccess","src":"7505:9:16"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":316,"type":"uint256","value":"jsonLen"},"id":393,"name":"Identifier","src":"7518:7:16"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":394,"name":"Literal","src":"7528:1:16"}],"id":395,"name":"BinaryOperation","src":"7518:11:16"}],"id":396,"name":"BinaryOperation","src":"7505:24:16"},{"attributes":{"argumentTypes":null,"hexvalue":"6e6f74206a736f6e20666f726d6174","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"not json format\"","value":"not json format"},"id":397,"name":"Literal","src":"7531:17:16"}],"id":398,"name":"FunctionCall","src":"7497:52:16"}],"id":399,"name":"ExpressionStatement","src":"7497:52:16"},{"attributes":{"functionReturnParameters":314},"children":[{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"toString","referencedDeclaration":10551,"type":"function (struct strings.slice memory) pure returns (string memory)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":364,"type":"struct strings.slice memory","value":"body"},"id":400,"name":"Identifier","src":"7631:4:16"}],"id":401,"name":"MemberAccess","src":"7631:13:16"}],"id":402,"name":"FunctionCall","src":"7631:15:16"}],"id":403,"name":"Return","src":"7624:22:16"}],"id":404,"name":"Block","src":"6857:796:16"}],"id":405,"name":"FunctionDefinition","src":"6793:860:16"},{"attributes":{"constant":false,"documentation":"@notice Re-usable helper function that performs the Oraclize Query.\n @param _gasLimit the gas limit is passed, this is used for the Oraclize callback","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_updateTokenRates","payable":false,"scope":1098,"stateMutability":"nonpayable","superFunction":null,"visibility":"private"},"children":[{"children":[{"attributes":{"constant":false,"name":"_gasLimit","scope":521,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":406,"name":"ElementaryTypeName","src":"7851:4:16"}],"id":407,"name":"VariableDeclaration","src":"7851:14:16"}],"id":408,"name":"ParameterList","src":"7850:16:16"},{"attributes":{"parameters":[null]},"children":[],"id":409,"name":"ParameterList","src":"7875:0:16"},{"children":[{"attributes":{"assignments":[413]},"children":[{"attributes":{"constant":false,"name":"tokenAddresses","scope":521,"stateVariable":false,"storageLocation":"memory","type":"address[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"address[]"},"children":[{"attributes":{"name":"address","type":"address"},"id":411,"name":"ElementaryTypeName","src":"7885:7:16"}],"id":412,"name":"ArrayTypeName","src":"7885:9:16"}],"id":413,"name":"VariableDeclaration","src":"7885:31:16"},{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address[] memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"overloadedDeclarations":[null],"referencedDeclaration":8542,"type":"function () view returns (address[] memory)","value":"_tokenAddressArray"},"id":414,"name":"Identifier","src":"7919:18:16"}],"id":415,"name":"FunctionCall","src":"7919:20:16"}],"id":416,"name":"VariableDeclarationStatement","src":"7885:54:16"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":413,"type":"address[] memory","value":"tokenAddresses"},"id":417,"name":"Identifier","src":"8004:14:16"}],"id":418,"name":"MemberAccess","src":"8004:21:16"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":419,"name":"Literal","src":"8029:1:16"}],"id":420,"name":"BinaryOperation","src":"8004:26:16"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a0759e27e9e41d00f291554454ac32d0b694b4e532153623cf6f6e89a0f6bccb","typeString":"literal_string \"no tokens\""}],"overloadedDeclarations":[null],"referencedDeclaration":45,"type":"function (string memory)","value":"FailedUpdateRequest"},"id":421,"name":"Identifier","src":"8094:19:16"},{"attributes":{"argumentTypes":null,"hexvalue":"6e6f20746f6b656e73","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"no tokens\"","value":"no tokens"},"id":422,"name":"Literal","src":"8114:11:16"}],"id":423,"name":"FunctionCall","src":"8094:32:16"}],"id":424,"name":"EmitStatement","src":"8089:37:16"}],"id":425,"name":"Block","src":"8032:181:16"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_96388ed71ebb5d970d8c40d08f33931fc80bd2768fd60f12b78e085d12441b0e","typeString":"literal_string \"URL\""}],"overloadedDeclarations":[2508,2526],"referencedDeclaration":2508,"type":"function (string memory) returns (uint256)","value":"oraclize_getPrice"},"id":426,"name":"Identifier","src":"8223:17:16"},{"attributes":{"argumentTypes":null,"hexvalue":"55524c","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"URL\"","value":"URL"},"id":427,"name":"Literal","src":"8241:5:16"}],"id":428,"name":"FunctionCall","src":"8223:24:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":413,"type":"address[] memory","value":"tokenAddresses"},"id":429,"name":"Identifier","src":"8250:14:16"}],"id":430,"name":"MemberAccess","src":"8250:21:16"}],"id":431,"name":"BinaryOperation","src":"8223:48:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"balance","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_contract$_Oracle_$1098","typeString":"contract Oracle"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":432,"name":"ElementaryTypeNameExpression","src":"8274:7:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":12073,"type":"contract Oracle","value":"this"},"id":433,"name":"Identifier","src":"8282:4:16"}],"id":434,"name":"FunctionCall","src":"8274:13:16"}],"id":435,"name":"MemberAccess","src":"8274:21:16"}],"id":436,"name":"BinaryOperation","src":"8223:72:16"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a6d1ff1db3d0b9b8c60e12ccab5ce7431be9a2cd0518ac362f1c5c1e0b1cefee","typeString":"literal_string \"insufficient balance\""}],"overloadedDeclarations":[null],"referencedDeclaration":45,"type":"function (string memory)","value":"FailedUpdateRequest"},"id":437,"name":"Identifier","src":"8359:19:16"},{"attributes":{"argumentTypes":null,"hexvalue":"696e73756666696369656e742062616c616e6365","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"insufficient balance\"","value":"insufficient balance"},"id":438,"name":"Literal","src":"8379:22:16"}],"id":439,"name":"FunctionCall","src":"8359:43:16"}],"id":440,"name":"EmitStatement","src":"8354:48:16"}],"id":441,"name":"Block","src":"8297:116:16"},{"children":[{"attributes":{"assignments":[445]},"children":[{"attributes":{"constant":false,"name":"apiPrefix","scope":521,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"strings.slice","referencedDeclaration":10313,"type":"struct strings.slice"},"id":444,"name":"UserDefinedTypeName","src":"8492:13:16"}],"id":445,"name":"VariableDeclaration","src":"8492:30:16"},{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"struct strings.slice memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"toSlice","referencedDeclaration":10373,"type":"function (string memory) pure returns (struct strings.slice memory)"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"68747470733a2f2f6d696e2d6170692e63727970746f636f6d706172652e636f6d2f646174612f70726963653f6673796d3d","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"https://min-api.cryptocompare.com/data/price?fsym=\"","value":"https://min-api.cryptocompare.com/data/price?fsym="},"id":446,"name":"Literal","src":"8525:52:16"}],"id":447,"name":"MemberAccess","src":"8525:60:16"}],"id":448,"name":"FunctionCall","src":"8525:62:16"}],"id":449,"name":"VariableDeclarationStatement","src":"8492:95:16"},{"attributes":{"assignments":[453]},"children":[{"attributes":{"constant":false,"name":"apiSuffix","scope":521,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"strings.slice","referencedDeclaration":10313,"type":"struct strings.slice"},"id":452,"name":"UserDefinedTypeName","src":"8601:13:16"}],"id":453,"name":"VariableDeclaration","src":"8601:30:16"},{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"struct strings.slice memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"toSlice","referencedDeclaration":10373,"type":"function (string memory) pure returns (struct strings.slice memory)"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"267473796d733d455448267369676e3d74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"&tsyms=ETH&sign=true\"","value":"&tsyms=ETH&sign=true"},"id":454,"name":"Literal","src":"8634:22:16"}],"id":455,"name":"MemberAccess","src":"8634:30:16"}],"id":456,"name":"FunctionCall","src":"8634:32:16"}],"id":457,"name":"VariableDeclarationStatement","src":"8601:65:16"},{"children":[{"attributes":{"assignments":[459]},"children":[{"attributes":{"constant":false,"name":"i","scope":521,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":458,"name":"ElementaryTypeName","src":"8755:4:16"}],"id":459,"name":"VariableDeclaration","src":"8755:6:16"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":460,"name":"Literal","src":"8764:1:16"}],"id":461,"name":"VariableDeclarationStatement","src":"8755:10:16"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":459,"type":"uint256","value":"i"},"id":462,"name":"Identifier","src":"8767:1:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":413,"type":"address[] memory","value":"tokenAddresses"},"id":463,"name":"Identifier","src":"8771:14:16"}],"id":464,"name":"MemberAccess","src":"8771:21:16"}],"id":465,"name":"BinaryOperation","src":"8767:25:16"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":459,"type":"uint256","value":"i"},"id":466,"name":"Identifier","src":"8794:1:16"}],"id":467,"name":"UnaryOperation","src":"8794:3:16"}],"id":468,"name":"ExpressionStatement","src":"8794:3:16"},{"children":[{"attributes":{"assignments":[470,null,null,null,null,null,null]},"children":[{"attributes":{"constant":false,"name":"symbol","scope":521,"stateVariable":false,"storageLocation":"memory","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":469,"name":"ElementaryTypeName","src":"8879:6:16"}],"id":470,"name":"VariableDeclaration","src":"8879:20:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple(string memory,uint256,uint256,bool,bool,bool,uint256)","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":8501,"type":"function (address) view returns (string memory,uint256,uint256,bool,bool,bool,uint256)","value":"_getTokenInfo"},"id":471,"name":"Identifier","src":"8915:13:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":413,"type":"address[] memory","value":"tokenAddresses"},"id":472,"name":"Identifier","src":"8929:14:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":459,"type":"uint256","value":"i"},"id":473,"name":"Identifier","src":"8944:1:16"}],"id":474,"name":"IndexAccess","src":"8929:17:16"}],"id":475,"name":"FunctionCall","src":"8915:32:16"}],"id":476,"name":"VariableDeclarationStatement","src":"8878:69:16"},{"attributes":{"assignments":[480]},"children":[{"attributes":{"constant":false,"name":"sym","scope":521,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"strings.slice","referencedDeclaration":10313,"type":"struct strings.slice"},"id":479,"name":"UserDefinedTypeName","src":"8966:13:16"}],"id":480,"name":"VariableDeclaration","src":"8966:24:16"},{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"struct strings.slice memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"toSlice","referencedDeclaration":10373,"type":"function (string memory) pure returns (struct strings.slice memory)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":470,"type":"string memory","value":"symbol"},"id":481,"name":"Identifier","src":"8993:6:16"}],"id":482,"name":"MemberAccess","src":"8993:14:16"}],"id":483,"name":"FunctionCall","src":"8993:16:16"}],"id":484,"name":"VariableDeclarationStatement","src":"8966:43:16"},{"attributes":{"assignments":[486]},"children":[{"attributes":{"constant":false,"name":"queryID","scope":521,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":485,"name":"ElementaryTypeName","src":"9102:7:16"}],"id":486,"name":"VariableDeclaration","src":"9102:15:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_96388ed71ebb5d970d8c40d08f33931fc80bd2768fd60f12b78e085d12441b0e","typeString":"literal_string \"URL\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[2566,2608,2654,2698,2741,2786,2835,2882,2929,2978,3031,3082,3119,3159,3202,3242,3287,3335,3386,3434,3487,3543,3602,3658,3719,3783,3850,3914,3983,4055,4130,4202,4249,4298,4351,4402,4439,4479,4522,4562,4607,4655,4706,4754,4807,4863,4922,4978,5039,5103,5170,5234,5303,5375,5450,5522],"referencedDeclaration":2698,"type":"function (string memory,string memory,uint256) returns (bytes32)","value":"oraclize_query"},"id":487,"name":"Identifier","src":"9120:14:16"},{"attributes":{"argumentTypes":null,"hexvalue":"55524c","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"URL\"","value":"URL"},"id":488,"name":"Literal","src":"9135:5:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$10313_memory_ptr","typeString":"struct strings.slice memory"}],"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"concat","referencedDeclaration":11886,"type":"function (struct strings.slice memory,struct strings.slice memory) pure returns (string memory)"},"children":[{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"struct strings.slice memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"toSlice","referencedDeclaration":10373,"type":"function (string memory) pure returns (struct strings.slice memory)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$10313_memory_ptr","typeString":"struct strings.slice memory"}],"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"concat","referencedDeclaration":11886,"type":"function (struct strings.slice memory,struct strings.slice memory) pure returns (string memory)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":445,"type":"struct strings.slice memory","value":"apiPrefix"},"id":489,"name":"Identifier","src":"9142:9:16"}],"id":490,"name":"MemberAccess","src":"9142:16:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":480,"type":"struct strings.slice memory","value":"sym"},"id":491,"name":"Identifier","src":"9159:3:16"}],"id":492,"name":"FunctionCall","src":"9142:21:16"}],"id":493,"name":"MemberAccess","src":"9142:29:16"}],"id":494,"name":"FunctionCall","src":"9142:31:16"}],"id":495,"name":"MemberAccess","src":"9142:38:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":453,"type":"struct strings.slice memory","value":"apiSuffix"},"id":496,"name":"Identifier","src":"9181:9:16"}],"id":497,"name":"FunctionCall","src":"9142:49:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":407,"type":"uint256","value":"_gasLimit"},"id":498,"name":"Identifier","src":"9193:9:16"}],"id":499,"name":"FunctionCall","src":"9120:83:16"}],"id":500,"name":"VariableDeclarationStatement","src":"9102:101:16"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"address"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":97,"type":"mapping(bytes32 => address)","value":"_queryToToken"},"id":501,"name":"Identifier","src":"9303:13:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":486,"type":"bytes32","value":"queryID"},"id":502,"name":"Identifier","src":"9317:7:16"}],"id":503,"name":"IndexAccess","src":"9303:22:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":413,"type":"address[] memory","value":"tokenAddresses"},"id":504,"name":"Identifier","src":"9328:14:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":459,"type":"uint256","value":"i"},"id":505,"name":"Identifier","src":"9343:1:16"}],"id":506,"name":"IndexAccess","src":"9328:17:16"}],"id":507,"name":"Assignment","src":"9303:42:16"}],"id":508,"name":"ExpressionStatement","src":"9303:42:16"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"overloadedDeclarations":[null],"referencedDeclaration":41,"type":"function (string memory)","value":"RequestedUpdate"},"id":509,"name":"Identifier","src":"9417:15:16"},{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"toString","referencedDeclaration":10551,"type":"function (struct strings.slice memory) pure returns (string memory)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":480,"type":"struct strings.slice memory","value":"sym"},"id":510,"name":"Identifier","src":"9433:3:16"}],"id":511,"name":"MemberAccess","src":"9433:12:16"}],"id":512,"name":"FunctionCall","src":"9433:14:16"}],"id":513,"name":"FunctionCall","src":"9417:31:16"}],"id":514,"name":"EmitStatement","src":"9412:36:16"}],"id":515,"name":"Block","src":"8799:664:16"}],"id":516,"name":"ForStatement","src":"8750:713:16"}],"id":517,"name":"Block","src":"8419:1054:16"}],"id":518,"name":"IfStatement","src":"8219:1254:16"}],"id":519,"name":"IfStatement","src":"8000:1473:16"}],"id":520,"name":"Block","src":"7875:1604:16"}],"id":521,"name":"FunctionDefinition","src":"7824:1655:16"},{"attributes":{"constant":false,"documentation":"@notice Re-usable helper function that performs the Oraclize Query for a specific list of tokens.\n @param _gasLimit the gas limit is passed, this is used for the Oraclize callback.\n @param _tokenList the list of tokens that need to be updated.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_updateTokenRatesList","payable":false,"scope":1098,"stateMutability":"nonpayable","superFunction":null,"visibility":"private"},"children":[{"children":[{"attributes":{"constant":false,"name":"_gasLimit","scope":640,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":522,"name":"ElementaryTypeName","src":"9782:4:16"}],"id":523,"name":"VariableDeclaration","src":"9782:14:16"},{"attributes":{"constant":false,"name":"_tokenList","scope":640,"stateVariable":false,"storageLocation":"default","type":"address[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"address[]"},"children":[{"attributes":{"name":"address","type":"address"},"id":524,"name":"ElementaryTypeName","src":"9798:7:16"}],"id":525,"name":"ArrayTypeName","src":"9798:9:16"}],"id":526,"name":"VariableDeclaration","src":"9798:20:16"}],"id":527,"name":"ParameterList","src":"9781:38:16"},{"attributes":{"parameters":[null]},"children":[],"id":528,"name":"ParameterList","src":"9828:0:16"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":526,"type":"address[] memory","value":"_tokenList"},"id":529,"name":"Identifier","src":"9893:10:16"}],"id":530,"name":"MemberAccess","src":"9893:17:16"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":531,"name":"Literal","src":"9914:1:16"}],"id":532,"name":"BinaryOperation","src":"9893:22:16"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_17806a0786c207d6f85c3e1c4ecf5e91edf31bcc8527723223989c983294996b","typeString":"literal_string \"empty token list\""}],"overloadedDeclarations":[null],"referencedDeclaration":45,"type":"function (string memory)","value":"FailedUpdateRequest"},"id":533,"name":"Identifier","src":"9979:19:16"},{"attributes":{"argumentTypes":null,"hexvalue":"656d70747920746f6b656e206c697374","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"empty token list\"","value":"empty token list"},"id":534,"name":"Literal","src":"9999:18:16"}],"id":535,"name":"FunctionCall","src":"9979:39:16"}],"id":536,"name":"EmitStatement","src":"9974:44:16"}],"id":537,"name":"Block","src":"9917:184:16"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_96388ed71ebb5d970d8c40d08f33931fc80bd2768fd60f12b78e085d12441b0e","typeString":"literal_string \"URL\""}],"overloadedDeclarations":[2508,2526],"referencedDeclaration":2508,"type":"function (string memory) returns (uint256)","value":"oraclize_getPrice"},"id":538,"name":"Identifier","src":"10111:17:16"},{"attributes":{"argumentTypes":null,"hexvalue":"55524c","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"URL\"","value":"URL"},"id":539,"name":"Literal","src":"10129:5:16"}],"id":540,"name":"FunctionCall","src":"10111:24:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":526,"type":"address[] memory","value":"_tokenList"},"id":541,"name":"Identifier","src":"10138:10:16"}],"id":542,"name":"MemberAccess","src":"10138:17:16"}],"id":543,"name":"BinaryOperation","src":"10111:44:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"balance","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_contract$_Oracle_$1098","typeString":"contract Oracle"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":544,"name":"ElementaryTypeNameExpression","src":"10158:7:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":12073,"type":"contract Oracle","value":"this"},"id":545,"name":"Identifier","src":"10166:4:16"}],"id":546,"name":"FunctionCall","src":"10158:13:16"}],"id":547,"name":"MemberAccess","src":"10158:21:16"}],"id":548,"name":"BinaryOperation","src":"10111:68:16"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a6d1ff1db3d0b9b8c60e12ccab5ce7431be9a2cd0518ac362f1c5c1e0b1cefee","typeString":"literal_string \"insufficient balance\""}],"overloadedDeclarations":[null],"referencedDeclaration":45,"type":"function (string memory)","value":"FailedUpdateRequest"},"id":549,"name":"Identifier","src":"10243:19:16"},{"attributes":{"argumentTypes":null,"hexvalue":"696e73756666696369656e742062616c616e6365","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"insufficient balance\"","value":"insufficient balance"},"id":550,"name":"Literal","src":"10263:22:16"}],"id":551,"name":"FunctionCall","src":"10243:43:16"}],"id":552,"name":"EmitStatement","src":"10238:48:16"}],"id":553,"name":"Block","src":"10181:116:16"},{"children":[{"attributes":{"assignments":[557]},"children":[{"attributes":{"constant":false,"name":"apiPrefix","scope":640,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"strings.slice","referencedDeclaration":10313,"type":"struct strings.slice"},"id":556,"name":"UserDefinedTypeName","src":"10376:13:16"}],"id":557,"name":"VariableDeclaration","src":"10376:30:16"},{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"struct strings.slice memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"toSlice","referencedDeclaration":10373,"type":"function (string memory) pure returns (struct strings.slice memory)"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"68747470733a2f2f6d696e2d6170692e63727970746f636f6d706172652e636f6d2f646174612f70726963653f6673796d3d","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"https://min-api.cryptocompare.com/data/price?fsym=\"","value":"https://min-api.cryptocompare.com/data/price?fsym="},"id":558,"name":"Literal","src":"10409:52:16"}],"id":559,"name":"MemberAccess","src":"10409:60:16"}],"id":560,"name":"FunctionCall","src":"10409:62:16"}],"id":561,"name":"VariableDeclarationStatement","src":"10376:95:16"},{"attributes":{"assignments":[565]},"children":[{"attributes":{"constant":false,"name":"apiSuffix","scope":640,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"strings.slice","referencedDeclaration":10313,"type":"struct strings.slice"},"id":564,"name":"UserDefinedTypeName","src":"10485:13:16"}],"id":565,"name":"VariableDeclaration","src":"10485:30:16"},{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"struct strings.slice memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"toSlice","referencedDeclaration":10373,"type":"function (string memory) pure returns (struct strings.slice memory)"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"267473796d733d455448267369676e3d74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"&tsyms=ETH&sign=true\"","value":"&tsyms=ETH&sign=true"},"id":566,"name":"Literal","src":"10518:22:16"}],"id":567,"name":"MemberAccess","src":"10518:30:16"}],"id":568,"name":"FunctionCall","src":"10518:32:16"}],"id":569,"name":"VariableDeclarationStatement","src":"10485:65:16"},{"children":[{"attributes":{"assignments":[571]},"children":[{"attributes":{"constant":false,"name":"i","scope":640,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":570,"name":"ElementaryTypeName","src":"10639:4:16"}],"id":571,"name":"VariableDeclaration","src":"10639:6:16"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":572,"name":"Literal","src":"10648:1:16"}],"id":573,"name":"VariableDeclarationStatement","src":"10639:10:16"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":571,"type":"uint256","value":"i"},"id":574,"name":"Identifier","src":"10651:1:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":526,"type":"address[] memory","value":"_tokenList"},"id":575,"name":"Identifier","src":"10655:10:16"}],"id":576,"name":"MemberAccess","src":"10655:17:16"}],"id":577,"name":"BinaryOperation","src":"10651:21:16"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":571,"type":"uint256","value":"i"},"id":578,"name":"Identifier","src":"10674:1:16"}],"id":579,"name":"UnaryOperation","src":"10674:3:16"}],"id":580,"name":"ExpressionStatement","src":"10674:3:16"},{"children":[{"attributes":{"assignments":[582,null,null,584,null,null,null]},"children":[{"attributes":{"constant":false,"name":"tokenSymbol","scope":640,"stateVariable":false,"storageLocation":"memory","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":581,"name":"ElementaryTypeName","src":"10755:6:16"}],"id":582,"name":"VariableDeclaration","src":"10755:25:16"},{"attributes":{"constant":false,"name":"available","scope":640,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":583,"name":"ElementaryTypeName","src":"10786:4:16"}],"id":584,"name":"VariableDeclaration","src":"10786:14:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple(string memory,uint256,uint256,bool,bool,bool,uint256)","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":8501,"type":"function (address) view returns (string memory,uint256,uint256,bool,bool,bool,uint256)","value":"_getTokenInfo"},"id":585,"name":"Identifier","src":"10811:13:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":526,"type":"address[] memory","value":"_tokenList"},"id":586,"name":"Identifier","src":"10825:10:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":571,"type":"uint256","value":"i"},"id":587,"name":"Identifier","src":"10836:1:16"}],"id":588,"name":"IndexAccess","src":"10825:13:16"}],"id":589,"name":"FunctionCall","src":"10811:28:16"}],"id":590,"name":"VariableDeclarationStatement","src":"10754:85:16"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1ece3bb723b90e0cf52e7142c26cd1e8e9aeda26d377c85e0b1b64ab12879ce1","typeString":"literal_string \"token must be available\""}],"overloadedDeclarations":[12019,12020],"referencedDeclaration":12020,"type":"function (bool,string memory) pure","value":"require"},"id":591,"name":"Identifier","src":"10857:7:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":584,"type":"bool","value":"available"},"id":592,"name":"Identifier","src":"10865:9:16"},{"attributes":{"argumentTypes":null,"hexvalue":"746f6b656e206d75737420626520617661696c61626c65","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"token must be available\"","value":"token must be available"},"id":593,"name":"Literal","src":"10876:25:16"}],"id":594,"name":"FunctionCall","src":"10857:45:16"}],"id":595,"name":"ExpressionStatement","src":"10857:45:16"},{"attributes":{"assignments":[599]},"children":[{"attributes":{"constant":false,"name":"symbol","scope":640,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"strings.slice","referencedDeclaration":10313,"type":"struct strings.slice"},"id":598,"name":"UserDefinedTypeName","src":"10981:13:16"}],"id":599,"name":"VariableDeclaration","src":"10981:27:16"},{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"struct strings.slice memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"toSlice","referencedDeclaration":10373,"type":"function (string memory) pure returns (struct strings.slice memory)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":582,"type":"string memory","value":"tokenSymbol"},"id":600,"name":"Identifier","src":"11011:11:16"}],"id":601,"name":"MemberAccess","src":"11011:19:16"}],"id":602,"name":"FunctionCall","src":"11011:21:16"}],"id":603,"name":"VariableDeclarationStatement","src":"10981:51:16"},{"attributes":{"assignments":[605]},"children":[{"attributes":{"constant":false,"name":"queryID","scope":640,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":604,"name":"ElementaryTypeName","src":"11125:7:16"}],"id":605,"name":"VariableDeclaration","src":"11125:15:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_96388ed71ebb5d970d8c40d08f33931fc80bd2768fd60f12b78e085d12441b0e","typeString":"literal_string \"URL\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[2566,2608,2654,2698,2741,2786,2835,2882,2929,2978,3031,3082,3119,3159,3202,3242,3287,3335,3386,3434,3487,3543,3602,3658,3719,3783,3850,3914,3983,4055,4130,4202,4249,4298,4351,4402,4439,4479,4522,4562,4607,4655,4706,4754,4807,4863,4922,4978,5039,5103,5170,5234,5303,5375,5450,5522],"referencedDeclaration":2698,"type":"function (string memory,string memory,uint256) returns (bytes32)","value":"oraclize_query"},"id":606,"name":"Identifier","src":"11143:14:16"},{"attributes":{"argumentTypes":null,"hexvalue":"55524c","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"URL\"","value":"URL"},"id":607,"name":"Literal","src":"11158:5:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$10313_memory_ptr","typeString":"struct strings.slice memory"}],"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"concat","referencedDeclaration":11886,"type":"function (struct strings.slice memory,struct strings.slice memory) pure returns (string memory)"},"children":[{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"struct strings.slice memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"toSlice","referencedDeclaration":10373,"type":"function (string memory) pure returns (struct strings.slice memory)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$10313_memory_ptr","typeString":"struct strings.slice memory"}],"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"concat","referencedDeclaration":11886,"type":"function (struct strings.slice memory,struct strings.slice memory) pure returns (string memory)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":557,"type":"struct strings.slice memory","value":"apiPrefix"},"id":608,"name":"Identifier","src":"11165:9:16"}],"id":609,"name":"MemberAccess","src":"11165:16:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":599,"type":"struct strings.slice memory","value":"symbol"},"id":610,"name":"Identifier","src":"11182:6:16"}],"id":611,"name":"FunctionCall","src":"11165:24:16"}],"id":612,"name":"MemberAccess","src":"11165:32:16"}],"id":613,"name":"FunctionCall","src":"11165:34:16"}],"id":614,"name":"MemberAccess","src":"11165:41:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":565,"type":"struct strings.slice memory","value":"apiSuffix"},"id":615,"name":"Identifier","src":"11207:9:16"}],"id":616,"name":"FunctionCall","src":"11165:52:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":523,"type":"uint256","value":"_gasLimit"},"id":617,"name":"Identifier","src":"11219:9:16"}],"id":618,"name":"FunctionCall","src":"11143:86:16"}],"id":619,"name":"VariableDeclarationStatement","src":"11125:104:16"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"address"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":97,"type":"mapping(bytes32 => address)","value":"_queryToToken"},"id":620,"name":"Identifier","src":"11329:13:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":605,"type":"bytes32","value":"queryID"},"id":621,"name":"Identifier","src":"11343:7:16"}],"id":622,"name":"IndexAccess","src":"11329:22:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":526,"type":"address[] memory","value":"_tokenList"},"id":623,"name":"Identifier","src":"11354:10:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":571,"type":"uint256","value":"i"},"id":624,"name":"Identifier","src":"11365:1:16"}],"id":625,"name":"IndexAccess","src":"11354:13:16"}],"id":626,"name":"Assignment","src":"11329:38:16"}],"id":627,"name":"ExpressionStatement","src":"11329:38:16"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"overloadedDeclarations":[null],"referencedDeclaration":41,"type":"function (string memory)","value":"RequestedUpdate"},"id":628,"name":"Identifier","src":"11439:15:16"},{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"toString","referencedDeclaration":10551,"type":"function (struct strings.slice memory) pure returns (string memory)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":599,"type":"struct strings.slice memory","value":"symbol"},"id":629,"name":"Identifier","src":"11455:6:16"}],"id":630,"name":"MemberAccess","src":"11455:15:16"}],"id":631,"name":"FunctionCall","src":"11455:17:16"}],"id":632,"name":"FunctionCall","src":"11439:34:16"}],"id":633,"name":"EmitStatement","src":"11434:39:16"}],"id":634,"name":"Block","src":"10679:809:16"}],"id":635,"name":"ForStatement","src":"10634:854:16"}],"id":636,"name":"Block","src":"10303:1195:16"}],"id":637,"name":"IfStatement","src":"10107:1391:16"}],"id":638,"name":"IfStatement","src":"9889:1609:16"}],"id":639,"name":"Block","src":"9828:1676:16"}],"id":640,"name":"FunctionDefinition","src":"9751:1753:16"},{"attributes":{"constant":false,"documentation":"@notice Verify the origin proof returned by the cryptocompare API.\n @param _result query result in JSON format.\n @param _proof origin proof from cryptocompare.\n @param _publicKey cryptocompare public key.\n @param _lastUpdate timestamp of the last time the requested token was updated.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_verifyProof","payable":false,"scope":1098,"stateMutability":"nonpayable","superFunction":null,"visibility":"private"},"children":[{"children":[{"attributes":{"constant":false,"name":"_result","scope":847,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":641,"name":"ElementaryTypeName","src":"11853:6:16"}],"id":642,"name":"VariableDeclaration","src":"11853:14:16"},{"attributes":{"constant":false,"name":"_proof","scope":847,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":643,"name":"ElementaryTypeName","src":"11869:5:16"}],"id":644,"name":"VariableDeclaration","src":"11869:12:16"},{"attributes":{"constant":false,"name":"_publicKey","scope":847,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":645,"name":"ElementaryTypeName","src":"11883:5:16"}],"id":646,"name":"VariableDeclaration","src":"11883:16:16"},{"attributes":{"constant":false,"name":"_lastUpdate","scope":847,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":647,"name":"ElementaryTypeName","src":"11901:4:16"}],"id":648,"name":"VariableDeclaration","src":"11901:16:16"}],"id":649,"name":"ParameterList","src":"11852:66:16"},{"children":[{"attributes":{"constant":false,"name":"","scope":847,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":650,"name":"ElementaryTypeName","src":"11936:4:16"}],"id":651,"name":"VariableDeclaration","src":"11936:4:16"},{"attributes":{"constant":false,"name":"","scope":847,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":652,"name":"ElementaryTypeName","src":"11942:4:16"}],"id":653,"name":"VariableDeclaration","src":"11942:4:16"}],"id":654,"name":"ParameterList","src":"11935:12:16"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":644,"type":"bytes memory","value":"_proof"},"id":655,"name":"Identifier","src":"12004:6:16"}],"id":656,"name":"MemberAccess","src":"12004:13:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":60,"type":"uint256","value":"_PROOF_LEN"},"id":657,"name":"Identifier","src":"12021:10:16"}],"id":658,"name":"BinaryOperation","src":"12004:27:16"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_802b2e61d020a57797e2091a5d618cce14acf3620b9a166bf7a7136b69cb78fb","typeString":"literal_string \"invalid proof length\""}],"overloadedDeclarations":[12021,12022],"referencedDeclaration":12022,"type":"function (string memory) pure","value":"revert"},"id":659,"name":"Identifier","src":"12047:6:16"},{"attributes":{"argumentTypes":null,"hexvalue":"696e76616c69642070726f6f66206c656e677468","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"invalid proof length\"","value":"invalid proof length"},"id":660,"name":"Literal","src":"12054:22:16"}],"id":661,"name":"FunctionCall","src":"12047:30:16"}],"id":662,"name":"ExpressionStatement","src":"12047:30:16"}],"id":663,"name":"Block","src":"12033:55:16"}],"id":664,"name":"IfStatement","src":"12000:88:16"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint"},"id":665,"name":"ElementaryTypeNameExpression","src":"12185:4:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":644,"type":"bytes memory","value":"_proof"},"id":666,"name":"Identifier","src":"12190:6:16"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":667,"name":"Literal","src":"12197:1:16"}],"id":668,"name":"IndexAccess","src":"12190:9:16"}],"id":669,"name":"FunctionCall","src":"12185:15:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":63,"type":"uint256","value":"_ECDSA_SIG_LEN"},"id":670,"name":"Identifier","src":"12204:14:16"}],"id":671,"name":"BinaryOperation","src":"12185:33:16"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e0060b83051574ba40ded2ef248b0d17cb210e5fa4f776d436805ab1ebb12b87","typeString":"literal_string \"invalid signature length\""}],"overloadedDeclarations":[12021,12022],"referencedDeclaration":12022,"type":"function (string memory) pure","value":"revert"},"id":672,"name":"Identifier","src":"12234:6:16"},{"attributes":{"argumentTypes":null,"hexvalue":"696e76616c6964207369676e6174757265206c656e677468","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"invalid signature length\"","value":"invalid signature length"},"id":673,"name":"Literal","src":"12241:26:16"}],"id":674,"name":"FunctionCall","src":"12234:34:16"}],"id":675,"name":"ExpressionStatement","src":"12234:34:16"}],"id":676,"name":"Block","src":"12220:59:16"}],"id":677,"name":"IfStatement","src":"12181:98:16"},{"attributes":{"assignments":[679]},"children":[{"attributes":{"constant":false,"name":"signature","scope":847,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":678,"name":"ElementaryTypeName","src":"12289:5:16"}],"id":679,"name":"VariableDeclaration","src":"12289:22:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (bytes memory)"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":680,"name":"ElementaryTypeName","src":"12318:5:16"}],"id":681,"name":"NewExpression","src":"12314:9:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":63,"type":"uint256","value":"_ECDSA_SIG_LEN"},"id":682,"name":"Identifier","src":"12324:14:16"}],"id":683,"name":"FunctionCall","src":"12314:25:16"}],"id":684,"name":"VariableDeclarationStatement","src":"12289:50:16"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":679,"type":"bytes memory","value":"signature"},"id":685,"name":"Identifier","src":"12350:9:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"overloadedDeclarations":[null],"referencedDeclaration":7482,"type":"function (bytes memory,uint256,uint256,bytes memory,uint256) pure returns (bytes memory)","value":"copyBytes"},"id":686,"name":"Identifier","src":"12362:9:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":644,"type":"bytes memory","value":"_proof"},"id":687,"name":"Identifier","src":"12372:6:16"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":688,"name":"Literal","src":"12380:1:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":63,"type":"uint256","value":"_ECDSA_SIG_LEN"},"id":689,"name":"Identifier","src":"12383:14:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":679,"type":"bytes memory","value":"signature"},"id":690,"name":"Identifier","src":"12399:9:16"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":691,"name":"Literal","src":"12410:1:16"}],"id":692,"name":"FunctionCall","src":"12362:50:16"}],"id":693,"name":"Assignment","src":"12350:62:16"}],"id":694,"name":"ExpressionStatement","src":"12350:62:16"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint"},"id":695,"name":"ElementaryTypeNameExpression","src":"12497:4:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":644,"type":"bytes memory","value":"_proof"},"id":696,"name":"Identifier","src":"12502:6:16"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":66,"type":"uint256","value":"_ENCODING_BYTES"},"id":697,"name":"Identifier","src":"12509:15:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":63,"type":"uint256","value":"_ECDSA_SIG_LEN"},"id":698,"name":"Identifier","src":"12527:14:16"}],"id":699,"name":"BinaryOperation","src":"12509:32:16"}],"id":700,"name":"IndexAccess","src":"12502:40:16"}],"id":701,"name":"FunctionCall","src":"12497:46:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":86,"type":"uint256","value":"_MAX_BYTE_SIZE"},"id":702,"name":"Identifier","src":"12546:14:16"}],"id":703,"name":"BinaryOperation","src":"12497:63:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint"},"id":704,"name":"ElementaryTypeNameExpression","src":"12563:4:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":644,"type":"bytes memory","value":"_proof"},"id":705,"name":"Identifier","src":"12568:6:16"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":66,"type":"uint256","value":"_ENCODING_BYTES"},"id":706,"name":"Identifier","src":"12575:15:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":63,"type":"uint256","value":"_ECDSA_SIG_LEN"},"id":707,"name":"Identifier","src":"12593:14:16"}],"id":708,"name":"BinaryOperation","src":"12575:32:16"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":709,"name":"Literal","src":"12610:1:16"}],"id":710,"name":"BinaryOperation","src":"12575:36:16"}],"id":711,"name":"IndexAccess","src":"12568:44:16"}],"id":712,"name":"FunctionCall","src":"12563:50:16"}],"id":713,"name":"BinaryOperation","src":"12497:116:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":75,"type":"uint256","value":"_HEADERS_LEN"},"id":714,"name":"Identifier","src":"12617:12:16"}],"id":715,"name":"BinaryOperation","src":"12497:132:16"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5d328c796053a338c6354f22dd94fc5d8cc4893b6480e6cdfcce0560436e01ab","typeString":"literal_string \"invalid headers length\""}],"overloadedDeclarations":[12021,12022],"referencedDeclaration":12022,"type":"function (string memory) pure","value":"revert"},"id":716,"name":"Identifier","src":"12645:6:16"},{"attributes":{"argumentTypes":null,"hexvalue":"696e76616c69642068656164657273206c656e677468","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"invalid headers length\"","value":"invalid headers length"},"id":717,"name":"Literal","src":"12652:24:16"}],"id":718,"name":"FunctionCall","src":"12645:32:16"}],"id":719,"name":"ExpressionStatement","src":"12645:32:16"}],"id":720,"name":"Block","src":"12631:57:16"}],"id":721,"name":"IfStatement","src":"12493:195:16"},{"attributes":{"assignments":[723]},"children":[{"attributes":{"constant":false,"name":"headers","scope":847,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":722,"name":"ElementaryTypeName","src":"12698:5:16"}],"id":723,"name":"VariableDeclaration","src":"12698:20:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (bytes memory)"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":724,"name":"ElementaryTypeName","src":"12725:5:16"}],"id":725,"name":"NewExpression","src":"12721:9:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":75,"type":"uint256","value":"_HEADERS_LEN"},"id":726,"name":"Identifier","src":"12731:12:16"}],"id":727,"name":"FunctionCall","src":"12721:23:16"}],"id":728,"name":"VariableDeclarationStatement","src":"12698:46:16"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":723,"type":"bytes memory","value":"headers"},"id":729,"name":"Identifier","src":"12754:7:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"overloadedDeclarations":[null],"referencedDeclaration":7482,"type":"function (bytes memory,uint256,uint256,bytes memory,uint256) pure returns (bytes memory)","value":"copyBytes"},"id":730,"name":"Identifier","src":"12764:9:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":644,"type":"bytes memory","value":"_proof"},"id":731,"name":"Identifier","src":"12774:6:16"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":732,"name":"Literal","src":"12782:1:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":66,"type":"uint256","value":"_ENCODING_BYTES"},"id":733,"name":"Identifier","src":"12786:15:16"}],"id":734,"name":"BinaryOperation","src":"12782:19:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":63,"type":"uint256","value":"_ECDSA_SIG_LEN"},"id":735,"name":"Identifier","src":"12804:14:16"}],"id":736,"name":"BinaryOperation","src":"12782:36:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":75,"type":"uint256","value":"_HEADERS_LEN"},"id":737,"name":"Identifier","src":"12820:12:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":723,"type":"bytes memory","value":"headers"},"id":738,"name":"Identifier","src":"12834:7:16"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":739,"name":"Literal","src":"12843:1:16"}],"id":740,"name":"FunctionCall","src":"12764:81:16"}],"id":741,"name":"Assignment","src":"12754:91:16"}],"id":742,"name":"ExpressionStatement","src":"12754:91:16"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"overloadedDeclarations":[null],"referencedDeclaration":886,"type":"function (bytes memory,bytes memory,bytes memory) returns (bool)","value":"_verifySignature"},"id":743,"name":"Identifier","src":"12943:16:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":723,"type":"bytes memory","value":"headers"},"id":744,"name":"Identifier","src":"12960:7:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":679,"type":"bytes memory","value":"signature"},"id":745,"name":"Identifier","src":"12969:9:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":646,"type":"bytes memory","value":"_publicKey"},"id":746,"name":"Identifier","src":"12980:10:16"}],"id":747,"name":"FunctionCall","src":"12943:48:16"}],"id":748,"name":"UnaryOperation","src":"12942:49:16"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_12a179e1a73f41ef8e1ba2f259a99bc53b6ace3abb110ac2ea058e42c6104e1a","typeString":"literal_string \"invalid signature\""}],"overloadedDeclarations":[12021,12022],"referencedDeclaration":12022,"type":"function (string memory) pure","value":"revert"},"id":749,"name":"Identifier","src":"13007:6:16"},{"attributes":{"argumentTypes":null,"hexvalue":"696e76616c6964207369676e6174757265","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"invalid signature\"","value":"invalid signature"},"id":750,"name":"Literal","src":"13014:19:16"}],"id":751,"name":"FunctionCall","src":"13007:27:16"}],"id":752,"name":"ExpressionStatement","src":"13007:27:16"}],"id":753,"name":"Block","src":"12993:52:16"}],"id":754,"name":"IfStatement","src":"12938:107:16"},{"attributes":{"assignments":[756]},"children":[{"attributes":{"constant":false,"name":"dateHeader","scope":847,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":755,"name":"ElementaryTypeName","src":"13094:5:16"}],"id":756,"name":"VariableDeclaration","src":"13094:23:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (bytes memory)"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":757,"name":"ElementaryTypeName","src":"13124:5:16"}],"id":758,"name":"NewExpression","src":"13120:9:16"},{"attributes":{"argumentTypes":null,"hexvalue":"3230","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 20","value":"20"},"id":759,"name":"Literal","src":"13130:2:16"}],"id":760,"name":"FunctionCall","src":"13120:13:16"}],"id":761,"name":"VariableDeclarationStatement","src":"13094:39:16"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":756,"type":"bytes memory","value":"dateHeader"},"id":762,"name":"Identifier","src":"13213:10:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_11_by_1","typeString":"int_const 11"},{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"overloadedDeclarations":[null],"referencedDeclaration":7482,"type":"function (bytes memory,uint256,uint256,bytes memory,uint256) pure returns (bytes memory)","value":"copyBytes"},"id":763,"name":"Identifier","src":"13226:9:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":723,"type":"bytes memory","value":"headers"},"id":764,"name":"Identifier","src":"13236:7:16"},{"attributes":{"argumentTypes":null,"hexvalue":"3131","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 11","value":"11"},"id":765,"name":"Literal","src":"13245:2:16"},{"attributes":{"argumentTypes":null,"hexvalue":"3230","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 20","value":"20"},"id":766,"name":"Literal","src":"13249:2:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":756,"type":"bytes memory","value":"dateHeader"},"id":767,"name":"Identifier","src":"13253:10:16"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":768,"name":"Literal","src":"13265:1:16"}],"id":769,"name":"FunctionCall","src":"13226:41:16"}],"id":770,"name":"Assignment","src":"13213:54:16"}],"id":771,"name":"ExpressionStatement","src":"13213:54:16"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"dateValid","scope":847,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":772,"name":"ElementaryTypeName","src":"13278:4:16"}],"id":773,"name":"VariableDeclaration","src":"13278:14:16"}],"id":774,"name":"VariableDeclarationStatement","src":"13278:14:16"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"timestamp","scope":847,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":775,"name":"ElementaryTypeName","src":"13302:4:16"}],"id":776,"name":"VariableDeclaration","src":"13302:14:16"}],"id":777,"name":"VariableDeclarationStatement","src":"13302:14:16"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"tuple()"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"tuple(bool,uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":773,"type":"bool","value":"dateValid"},"id":778,"name":"Identifier","src":"13327:9:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":776,"type":"uint256","value":"timestamp"},"id":779,"name":"Identifier","src":"13338:9:16"}],"id":780,"name":"TupleExpression","src":"13326:22:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple(bool,uint256)","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":1097,"type":"function (string memory,uint256) pure returns (bool,uint256)","value":"_verifyDate"},"id":781,"name":"Identifier","src":"13351:11:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(string storage pointer)","value":"string"},"id":782,"name":"ElementaryTypeNameExpression","src":"13363:6:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":756,"type":"bytes memory","value":"dateHeader"},"id":783,"name":"Identifier","src":"13370:10:16"}],"id":784,"name":"FunctionCall","src":"13363:18:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":648,"type":"uint256","value":"_lastUpdate"},"id":785,"name":"Identifier","src":"13383:11:16"}],"id":786,"name":"FunctionCall","src":"13351:44:16"}],"id":787,"name":"Assignment","src":"13326:69:16"}],"id":788,"name":"ExpressionStatement","src":"13326:69:16"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":773,"type":"bool","value":"dateValid"},"id":789,"name":"Identifier","src":"13470:9:16"}],"id":790,"name":"UnaryOperation","src":"13469:10:16"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_bbecc4126e30eacd995bb0f9e9f3dc427c7af6aec4ece5c4f5310382377491ce","typeString":"literal_string \"invalid date\""}],"overloadedDeclarations":[12021,12022],"referencedDeclaration":12022,"type":"function (string memory) pure","value":"revert"},"id":791,"name":"Identifier","src":"13495:6:16"},{"attributes":{"argumentTypes":null,"hexvalue":"696e76616c69642064617465","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"invalid date\"","value":"invalid date"},"id":792,"name":"Literal","src":"13502:14:16"}],"id":793,"name":"FunctionCall","src":"13495:22:16"}],"id":794,"name":"ExpressionStatement","src":"13495:22:16"}],"id":795,"name":"Block","src":"13481:47:16"}],"id":796,"name":"IfStatement","src":"13465:63:16"},{"attributes":{"assignments":[798]},"children":[{"attributes":{"constant":false,"name":"digest","scope":847,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":797,"name":"ElementaryTypeName","src":"13606:5:16"}],"id":798,"name":"VariableDeclaration","src":"13606:19:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (bytes memory)"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":799,"name":"ElementaryTypeName","src":"13632:5:16"}],"id":800,"name":"NewExpression","src":"13628:9:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":78,"type":"uint256","value":"_DIGEST_BASE64_LEN"},"id":801,"name":"Identifier","src":"13638:18:16"}],"id":802,"name":"FunctionCall","src":"13628:29:16"}],"id":803,"name":"VariableDeclarationStatement","src":"13606:51:16"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":798,"type":"bytes memory","value":"digest"},"id":804,"name":"Identifier","src":"13667:6:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"overloadedDeclarations":[null],"referencedDeclaration":7482,"type":"function (bytes memory,uint256,uint256,bytes memory,uint256) pure returns (bytes memory)","value":"copyBytes"},"id":805,"name":"Identifier","src":"13676:9:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":723,"type":"bytes memory","value":"headers"},"id":806,"name":"Identifier","src":"13686:7:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":83,"type":"uint256","value":"_DIGEST_OFFSET"},"id":807,"name":"Identifier","src":"13695:14:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":78,"type":"uint256","value":"_DIGEST_BASE64_LEN"},"id":808,"name":"Identifier","src":"13711:18:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":798,"type":"bytes memory","value":"digest"},"id":809,"name":"Identifier","src":"13731:6:16"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":810,"name":"Literal","src":"13739:1:16"}],"id":811,"name":"FunctionCall","src":"13676:65:16"}],"id":812,"name":"Assignment","src":"13667:74:16"}],"id":813,"name":"ExpressionStatement","src":"13667:74:16"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"overloadedDeclarations":[null],"referencedDeclaration":12010,"type":"function () pure returns (bytes32)","value":"keccak256"},"id":814,"name":"Identifier","src":"13756:9:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"member_name":"encodePacked","referencedDeclaration":null,"type":"function () pure returns (bytes memory)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":12003,"type":"abi","value":"abi"},"id":815,"name":"Identifier","src":"13766:3:16"}],"id":816,"name":"MemberAccess","src":"13766:16:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"overloadedDeclarations":[null],"referencedDeclaration":12025,"type":"function () pure returns (bytes32)","value":"sha256"},"id":817,"name":"Identifier","src":"13783:6:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"member_name":"encodePacked","referencedDeclaration":null,"type":"function () pure returns (bytes memory)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":12003,"type":"abi","value":"abi"},"id":818,"name":"Identifier","src":"13790:3:16"}],"id":819,"name":"MemberAccess","src":"13790:16:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":642,"type":"string memory","value":"_result"},"id":820,"name":"Identifier","src":"13807:7:16"}],"id":821,"name":"FunctionCall","src":"13790:25:16"}],"id":822,"name":"FunctionCall","src":"13783:33:16"}],"id":823,"name":"FunctionCall","src":"13766:51:16"}],"id":824,"name":"FunctionCall","src":"13756:62:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"overloadedDeclarations":[null],"referencedDeclaration":12010,"type":"function () pure returns (bytes32)","value":"keccak256"},"id":825,"name":"Identifier","src":"13822:9:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"overloadedDeclarations":[null],"referencedDeclaration":1546,"type":"function (bytes memory) pure returns (bytes memory)","value":"_base64decode"},"id":826,"name":"Identifier","src":"13832:13:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":798,"type":"bytes memory","value":"digest"},"id":827,"name":"Identifier","src":"13846:6:16"}],"id":828,"name":"FunctionCall","src":"13832:21:16"}],"id":829,"name":"FunctionCall","src":"13822:32:16"}],"id":830,"name":"BinaryOperation","src":"13756:98:16"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d892d676e319d50e68a733eb2b14dc19c2350f0f2f1e2e0011eedd93c8ff152f","typeString":"literal_string \"result hash not matching\""}],"overloadedDeclarations":[12021,12022],"referencedDeclaration":12022,"type":"function (string memory) pure","value":"revert"},"id":831,"name":"Identifier","src":"13870:6:16"},{"attributes":{"argumentTypes":null,"hexvalue":"726573756c742068617368206e6f74206d61746368696e67","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"result hash not matching\"","value":"result hash not matching"},"id":832,"name":"Literal","src":"13877:26:16"}],"id":833,"name":"FunctionCall","src":"13870:34:16"}],"id":834,"name":"ExpressionStatement","src":"13870:34:16"}],"id":835,"name":"Block","src":"13856:59:16"}],"id":836,"name":"IfStatement","src":"13752:163:16"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"overloadedDeclarations":[null],"referencedDeclaration":51,"type":"function (bytes memory,string memory)","value":"VerifiedProof"},"id":837,"name":"Identifier","src":"13930:13:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":646,"type":"bytes memory","value":"_publicKey"},"id":838,"name":"Identifier","src":"13944:10:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":642,"type":"string memory","value":"_result"},"id":839,"name":"Identifier","src":"13956:7:16"}],"id":840,"name":"FunctionCall","src":"13930:34:16"}],"id":841,"name":"EmitStatement","src":"13925:39:16"},{"attributes":{"functionReturnParameters":654},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"tuple(bool,uint256)"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":842,"name":"Literal","src":"13982:4:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":776,"type":"uint256","value":"timestamp"},"id":843,"name":"Identifier","src":"13988:9:16"}],"id":844,"name":"TupleExpression","src":"13981:17:16"}],"id":845,"name":"Return","src":"13974:24:16"}],"id":846,"name":"Block","src":"11948:2057:16"}],"id":847,"name":"FunctionDefinition","src":"11831:2174:16"},{"attributes":{"constant":false,"documentation":"@notice Verify the HTTP headers and the signature\n @param _headers HTTP headers provided by the cryptocompare api\n @param _signature signature provided by the cryptocompare api\n @param _publicKey cryptocompare public key.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_verifySignature","payable":false,"scope":1098,"stateMutability":"nonpayable","superFunction":null,"visibility":"private"},"children":[{"children":[{"attributes":{"constant":false,"name":"_headers","scope":886,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":848,"name":"ElementaryTypeName","src":"14288:5:16"}],"id":849,"name":"VariableDeclaration","src":"14288:14:16"},{"attributes":{"constant":false,"name":"_signature","scope":886,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":850,"name":"ElementaryTypeName","src":"14304:5:16"}],"id":851,"name":"VariableDeclaration","src":"14304:16:16"},{"attributes":{"constant":false,"name":"_publicKey","scope":886,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":852,"name":"ElementaryTypeName","src":"14322:5:16"}],"id":853,"name":"VariableDeclaration","src":"14322:16:16"}],"id":854,"name":"ParameterList","src":"14287:52:16"},{"children":[{"attributes":{"constant":false,"name":"","scope":886,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":855,"name":"ElementaryTypeName","src":"14357:4:16"}],"id":856,"name":"VariableDeclaration","src":"14357:4:16"}],"id":857,"name":"ParameterList","src":"14356:6:16"},{"children":[{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"signer","scope":886,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":858,"name":"ElementaryTypeName","src":"14373:7:16"}],"id":859,"name":"VariableDeclaration","src":"14373:14:16"}],"id":860,"name":"VariableDeclarationStatement","src":"14373:14:16"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"signatureOK","scope":886,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":861,"name":"ElementaryTypeName","src":"14397:4:16"}],"id":862,"name":"VariableDeclaration","src":"14397:16:16"}],"id":863,"name":"VariableDeclarationStatement","src":"14397:16:16"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"tuple()"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"tuple(bool,address)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":862,"type":"bool","value":"signatureOK"},"id":864,"name":"Identifier","src":"14492:11:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":859,"type":"address","value":"signer"},"id":865,"name":"Identifier","src":"14505:6:16"}],"id":866,"name":"TupleExpression","src":"14491:21:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple(bool,address)","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"overloadedDeclarations":[null],"referencedDeclaration":7567,"type":"function (bytes32,bytes memory) returns (bool,address)","value":"ecrecovery"},"id":867,"name":"Identifier","src":"14515:10:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"overloadedDeclarations":[null],"referencedDeclaration":12025,"type":"function () pure returns (bytes32)","value":"sha256"},"id":868,"name":"Identifier","src":"14526:6:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":849,"type":"bytes memory","value":"_headers"},"id":869,"name":"Identifier","src":"14533:8:16"}],"id":870,"name":"FunctionCall","src":"14526:16:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":851,"type":"bytes memory","value":"_signature"},"id":871,"name":"Identifier","src":"14544:10:16"}],"id":872,"name":"FunctionCall","src":"14515:40:16"}],"id":873,"name":"Assignment","src":"14491:64:16"}],"id":874,"name":"ExpressionStatement","src":"14491:64:16"},{"attributes":{"functionReturnParameters":857},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&&","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":862,"type":"bool","value":"signatureOK"},"id":875,"name":"Identifier","src":"14572:11:16"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":859,"type":"address","value":"signer"},"id":876,"name":"Identifier","src":"14587:6:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":877,"name":"ElementaryTypeNameExpression","src":"14597:7:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"overloadedDeclarations":[null],"referencedDeclaration":12010,"type":"function () pure returns (bytes32)","value":"keccak256"},"id":878,"name":"Identifier","src":"14605:9:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":853,"type":"bytes memory","value":"_publicKey"},"id":879,"name":"Identifier","src":"14615:10:16"}],"id":880,"name":"FunctionCall","src":"14605:21:16"}],"id":881,"name":"FunctionCall","src":"14597:30:16"}],"id":882,"name":"BinaryOperation","src":"14587:40:16"}],"id":883,"name":"BinaryOperation","src":"14572:55:16"}],"id":884,"name":"Return","src":"14565:62:16"}],"id":885,"name":"Block","src":"14363:271:16"}],"id":886,"name":"FunctionDefinition","src":"14262:372:16"},{"attributes":{"constant":true,"documentation":"@notice Verify the signed HTTP date header.\n @param _dateHeader extracted date string e.g. Wed, 12 Sep 2018 15:18:14 GMT.\n @param _lastUpdate timestamp of the last time the requested token was updated.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_verifyDate","payable":false,"scope":1098,"stateMutability":"pure","superFunction":null,"visibility":"private"},"children":[{"children":[{"attributes":{"constant":false,"name":"_dateHeader","scope":1097,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":887,"name":"ElementaryTypeName","src":"14885:6:16"}],"id":888,"name":"VariableDeclaration","src":"14885:18:16"},{"attributes":{"constant":false,"name":"_lastUpdate","scope":1097,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":889,"name":"ElementaryTypeName","src":"14905:4:16"}],"id":890,"name":"VariableDeclaration","src":"14905:16:16"}],"id":891,"name":"ParameterList","src":"14884:38:16"},{"children":[{"attributes":{"constant":false,"name":"","scope":1097,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":892,"name":"ElementaryTypeName","src":"14945:4:16"}],"id":893,"name":"VariableDeclaration","src":"14945:4:16"},{"attributes":{"constant":false,"name":"","scope":1097,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":894,"name":"ElementaryTypeName","src":"14951:4:16"}],"id":895,"name":"VariableDeclaration","src":"14951:4:16"}],"id":896,"name":"ParameterList","src":"14944:12:16"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"overloadedDeclarations":[null],"referencedDeclaration":12005,"type":"function (bool) pure","value":"assert"},"id":897,"name":"Identifier","src":"15050:6:16"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"member_name":"encodePacked","referencedDeclaration":null,"type":"function () pure returns (bytes memory)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":12003,"type":"abi","value":"abi"},"id":898,"name":"Identifier","src":"15057:3:16"}],"id":899,"name":"MemberAccess","src":"15057:16:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":888,"type":"string memory","value":"_dateHeader"},"id":900,"name":"Identifier","src":"15074:11:16"}],"id":901,"name":"FunctionCall","src":"15057:29:16"}],"id":902,"name":"MemberAccess","src":"15057:36:16"},{"attributes":{"argumentTypes":null,"hexvalue":"3230","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 20","value":"20"},"id":903,"name":"Literal","src":"15097:2:16"}],"id":904,"name":"BinaryOperation","src":"15057:42:16"}],"id":905,"name":"FunctionCall","src":"15050:50:16"}],"id":906,"name":"ExpressionStatement","src":"15050:50:16"},{"attributes":{"assignments":[910]},"children":[{"attributes":{"constant":false,"name":"date","scope":1097,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"strings.slice","referencedDeclaration":10313,"type":"struct strings.slice"},"id":909,"name":"UserDefinedTypeName","src":"15180:13:16"}],"id":910,"name":"VariableDeclaration","src":"15180:25:16"},{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"struct strings.slice memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"toSlice","referencedDeclaration":10373,"type":"function (string memory) pure returns (struct strings.slice memory)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":888,"type":"string memory","value":"_dateHeader"},"id":911,"name":"Identifier","src":"15208:11:16"}],"id":912,"name":"MemberAccess","src":"15208:19:16"}],"id":913,"name":"FunctionCall","src":"15208:21:16"}],"id":914,"name":"VariableDeclarationStatement","src":"15180:49:16"},{"attributes":{"assignments":[918]},"children":[{"attributes":{"constant":false,"name":"timeDelimiter","scope":1097,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"strings.slice","referencedDeclaration":10313,"type":"struct strings.slice"},"id":917,"name":"UserDefinedTypeName","src":"15239:13:16"}],"id":918,"name":"VariableDeclaration","src":"15239:34:16"},{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"struct strings.slice memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"toSlice","referencedDeclaration":10373,"type":"function (string memory) pure returns (struct strings.slice memory)"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3a","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \":\"","value":":"},"id":919,"name":"Literal","src":"15276:3:16"}],"id":920,"name":"MemberAccess","src":"15276:11:16"}],"id":921,"name":"FunctionCall","src":"15276:13:16"}],"id":922,"name":"VariableDeclarationStatement","src":"15239:50:16"},{"attributes":{"assignments":[926]},"children":[{"attributes":{"constant":false,"name":"dateDelimiter","scope":1097,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"strings.slice","referencedDeclaration":10313,"type":"struct strings.slice"},"id":925,"name":"UserDefinedTypeName","src":"15299:13:16"}],"id":926,"name":"VariableDeclaration","src":"15299:34:16"},{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"struct strings.slice memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"toSlice","referencedDeclaration":10373,"type":"function (string memory) pure returns (struct strings.slice memory)"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"20","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \" \"","value":" "},"id":927,"name":"Literal","src":"15336:3:16"}],"id":928,"name":"MemberAccess","src":"15336:11:16"}],"id":929,"name":"FunctionCall","src":"15336:13:16"}],"id":930,"name":"VariableDeclarationStatement","src":"15299:50:16"},{"attributes":{"assignments":[932]},"children":[{"attributes":{"constant":false,"name":"day","scope":1097,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":931,"name":"ElementaryTypeName","src":"15360:4:16"}],"id":932,"name":"VariableDeclaration","src":"15360:8:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"overloadedDeclarations":[7956,8445],"referencedDeclaration":7956,"type":"function (string memory) pure returns (uint256)","value":"_parseIntScientific"},"id":933,"name":"Identifier","src":"15371:19:16"},{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"toString","referencedDeclaration":10551,"type":"function (struct strings.slice memory) pure returns (string memory)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"struct strings.slice memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$10313_memory_ptr","typeString":"struct strings.slice memory"}],"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"split","referencedDeclaration":11672,"type":"function (struct strings.slice memory,struct strings.slice memory) pure returns (struct strings.slice memory)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":910,"type":"struct strings.slice memory","value":"date"},"id":934,"name":"Identifier","src":"15391:4:16"}],"id":935,"name":"MemberAccess","src":"15391:10:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":926,"type":"struct strings.slice memory","value":"dateDelimiter"},"id":936,"name":"Identifier","src":"15402:13:16"}],"id":937,"name":"FunctionCall","src":"15391:25:16"}],"id":938,"name":"MemberAccess","src":"15391:34:16"}],"id":939,"name":"FunctionCall","src":"15391:36:16"}],"id":940,"name":"FunctionCall","src":"15371:57:16"}],"id":941,"name":"VariableDeclarationStatement","src":"15360:68:16"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_95a75b02e57058f7bbef7ee70d3873b2804ff7df40eb4e37bbf8661373f3d1ba","typeString":"literal_string \"day error\""}],"overloadedDeclarations":[12019,12020],"referencedDeclaration":12020,"type":"function (bool,string memory) pure","value":"require"},"id":942,"name":"Identifier","src":"15438:7:16"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&&","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":932,"type":"uint256","value":"day"},"id":943,"name":"Identifier","src":"15446:3:16"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":944,"name":"Literal","src":"15452:1:16"}],"id":945,"name":"BinaryOperation","src":"15446:7:16"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":932,"type":"uint256","value":"day"},"id":946,"name":"Identifier","src":"15457:3:16"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":947,"name":"Literal","src":"15463:2:16"}],"id":948,"name":"BinaryOperation","src":"15457:8:16"}],"id":949,"name":"BinaryOperation","src":"15446:19:16"},{"attributes":{"argumentTypes":null,"hexvalue":"646179206572726f72","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"day error\"","value":"day error"},"id":950,"name":"Literal","src":"15467:11:16"}],"id":951,"name":"FunctionCall","src":"15438:41:16"}],"id":952,"name":"ExpressionStatement","src":"15438:41:16"},{"attributes":{"assignments":[954]},"children":[{"attributes":{"constant":false,"name":"month","scope":1097,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":953,"name":"ElementaryTypeName","src":"15490:4:16"}],"id":954,"name":"VariableDeclaration","src":"15490:10:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint8","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"overloadedDeclarations":[null],"referencedDeclaration":7850,"type":"function (string memory) pure returns (uint8)","value":"_monthToNumber"},"id":955,"name":"Identifier","src":"15503:14:16"},{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"toString","referencedDeclaration":10551,"type":"function (struct strings.slice memory) pure returns (string memory)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"struct strings.slice memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$10313_memory_ptr","typeString":"struct strings.slice memory"}],"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"split","referencedDeclaration":11672,"type":"function (struct strings.slice memory,struct strings.slice memory) pure returns (struct strings.slice memory)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":910,"type":"struct strings.slice memory","value":"date"},"id":956,"name":"Identifier","src":"15518:4:16"}],"id":957,"name":"MemberAccess","src":"15518:10:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":926,"type":"struct strings.slice memory","value":"dateDelimiter"},"id":958,"name":"Identifier","src":"15529:13:16"}],"id":959,"name":"FunctionCall","src":"15518:25:16"}],"id":960,"name":"MemberAccess","src":"15518:34:16"}],"id":961,"name":"FunctionCall","src":"15518:36:16"}],"id":962,"name":"FunctionCall","src":"15503:52:16"}],"id":963,"name":"VariableDeclarationStatement","src":"15490:65:16"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a1177fbd3d9cf5cca68d736867c5e28749fe8032db444d9fa5da3d2ddd8f3f73","typeString":"literal_string \"month error\""}],"overloadedDeclarations":[12019,12020],"referencedDeclaration":12020,"type":"function (bool,string memory) pure","value":"require"},"id":964,"name":"Identifier","src":"15565:7:16"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&&","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":954,"type":"uint256","value":"month"},"id":965,"name":"Identifier","src":"15573:5:16"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":966,"name":"Literal","src":"15581:1:16"}],"id":967,"name":"BinaryOperation","src":"15573:9:16"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":954,"type":"uint256","value":"month"},"id":968,"name":"Identifier","src":"15586:5:16"},{"attributes":{"argumentTypes":null,"hexvalue":"3133","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 13","value":"13"},"id":969,"name":"Literal","src":"15594:2:16"}],"id":970,"name":"BinaryOperation","src":"15586:10:16"}],"id":971,"name":"BinaryOperation","src":"15573:23:16"},{"attributes":{"argumentTypes":null,"hexvalue":"6d6f6e7468206572726f72","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"month error\"","value":"month error"},"id":972,"name":"Literal","src":"15598:13:16"}],"id":973,"name":"FunctionCall","src":"15565:47:16"}],"id":974,"name":"ExpressionStatement","src":"15565:47:16"},{"attributes":{"assignments":[976]},"children":[{"attributes":{"constant":false,"name":"year","scope":1097,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":975,"name":"ElementaryTypeName","src":"15623:4:16"}],"id":976,"name":"VariableDeclaration","src":"15623:9:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"overloadedDeclarations":[7956,8445],"referencedDeclaration":7956,"type":"function (string memory) pure returns (uint256)","value":"_parseIntScientific"},"id":977,"name":"Identifier","src":"15635:19:16"},{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"toString","referencedDeclaration":10551,"type":"function (struct strings.slice memory) pure returns (string memory)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"struct strings.slice memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$10313_memory_ptr","typeString":"struct strings.slice memory"}],"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"split","referencedDeclaration":11672,"type":"function (struct strings.slice memory,struct strings.slice memory) pure returns (struct strings.slice memory)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":910,"type":"struct strings.slice memory","value":"date"},"id":978,"name":"Identifier","src":"15655:4:16"}],"id":979,"name":"MemberAccess","src":"15655:10:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":926,"type":"struct strings.slice memory","value":"dateDelimiter"},"id":980,"name":"Identifier","src":"15666:13:16"}],"id":981,"name":"FunctionCall","src":"15655:25:16"}],"id":982,"name":"MemberAccess","src":"15655:34:16"}],"id":983,"name":"FunctionCall","src":"15655:36:16"}],"id":984,"name":"FunctionCall","src":"15635:57:16"}],"id":985,"name":"VariableDeclarationStatement","src":"15623:69:16"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9d839699d3e7666d9e399390bf4d043a50156c35b49e48b95ba932560f4dddcd","typeString":"literal_string \"year error\""}],"overloadedDeclarations":[12019,12020],"referencedDeclaration":12020,"type":"function (bool,string memory) pure","value":"require"},"id":986,"name":"Identifier","src":"15702:7:16"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&&","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":976,"type":"uint256","value":"year"},"id":987,"name":"Identifier","src":"15710:4:16"},{"attributes":{"argumentTypes":null,"hexvalue":"32303137","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2017","value":"2017"},"id":988,"name":"Literal","src":"15717:4:16"}],"id":989,"name":"BinaryOperation","src":"15710:11:16"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":976,"type":"uint256","value":"year"},"id":990,"name":"Identifier","src":"15725:4:16"},{"attributes":{"argumentTypes":null,"hexvalue":"33303030","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3000","value":"3000"},"id":991,"name":"Literal","src":"15732:4:16"}],"id":992,"name":"BinaryOperation","src":"15725:11:16"}],"id":993,"name":"BinaryOperation","src":"15710:26:16"},{"attributes":{"argumentTypes":null,"hexvalue":"79656172206572726f72","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"year error\"","value":"year error"},"id":994,"name":"Literal","src":"15738:12:16"}],"id":995,"name":"FunctionCall","src":"15702:49:16"}],"id":996,"name":"ExpressionStatement","src":"15702:49:16"},{"attributes":{"assignments":[998]},"children":[{"attributes":{"constant":false,"name":"hour","scope":1097,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":997,"name":"ElementaryTypeName","src":"15762:4:16"}],"id":998,"name":"VariableDeclaration","src":"15762:9:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"overloadedDeclarations":[7956,8445],"referencedDeclaration":7956,"type":"function (string memory) pure returns (uint256)","value":"_parseIntScientific"},"id":999,"name":"Identifier","src":"15774:19:16"},{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"toString","referencedDeclaration":10551,"type":"function (struct strings.slice memory) pure returns (string memory)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"struct strings.slice memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$10313_memory_ptr","typeString":"struct strings.slice memory"}],"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"split","referencedDeclaration":11672,"type":"function (struct strings.slice memory,struct strings.slice memory) pure returns (struct strings.slice memory)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":910,"type":"struct strings.slice memory","value":"date"},"id":1000,"name":"Identifier","src":"15794:4:16"}],"id":1001,"name":"MemberAccess","src":"15794:10:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":918,"type":"struct strings.slice memory","value":"timeDelimiter"},"id":1002,"name":"Identifier","src":"15805:13:16"}],"id":1003,"name":"FunctionCall","src":"15794:25:16"}],"id":1004,"name":"MemberAccess","src":"15794:34:16"}],"id":1005,"name":"FunctionCall","src":"15794:36:16"}],"id":1006,"name":"FunctionCall","src":"15774:57:16"}],"id":1007,"name":"VariableDeclarationStatement","src":"15762:69:16"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ab056418919ffee98f625728a16422f4a36f7aa321eeee0b9e5360560378b27c","typeString":"literal_string \"hour error\""}],"overloadedDeclarations":[12019,12020],"referencedDeclaration":12020,"type":"function (bool,string memory) pure","value":"require"},"id":1008,"name":"Identifier","src":"15841:7:16"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":998,"type":"uint256","value":"hour"},"id":1009,"name":"Identifier","src":"15849:4:16"},{"attributes":{"argumentTypes":null,"hexvalue":"3235","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 25","value":"25"},"id":1010,"name":"Literal","src":"15856:2:16"}],"id":1011,"name":"BinaryOperation","src":"15849:9:16"},{"attributes":{"argumentTypes":null,"hexvalue":"686f7572206572726f72","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"hour error\"","value":"hour error"},"id":1012,"name":"Literal","src":"15860:12:16"}],"id":1013,"name":"FunctionCall","src":"15841:32:16"}],"id":1014,"name":"ExpressionStatement","src":"15841:32:16"},{"attributes":{"assignments":[1016]},"children":[{"attributes":{"constant":false,"name":"minute","scope":1097,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1015,"name":"ElementaryTypeName","src":"15884:4:16"}],"id":1016,"name":"VariableDeclaration","src":"15884:11:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"overloadedDeclarations":[7956,8445],"referencedDeclaration":7956,"type":"function (string memory) pure returns (uint256)","value":"_parseIntScientific"},"id":1017,"name":"Identifier","src":"15898:19:16"},{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"toString","referencedDeclaration":10551,"type":"function (struct strings.slice memory) pure returns (string memory)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"struct strings.slice memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$10313_memory_ptr","typeString":"struct strings.slice memory"}],"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"split","referencedDeclaration":11672,"type":"function (struct strings.slice memory,struct strings.slice memory) pure returns (struct strings.slice memory)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":910,"type":"struct strings.slice memory","value":"date"},"id":1018,"name":"Identifier","src":"15918:4:16"}],"id":1019,"name":"MemberAccess","src":"15918:10:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":918,"type":"struct strings.slice memory","value":"timeDelimiter"},"id":1020,"name":"Identifier","src":"15929:13:16"}],"id":1021,"name":"FunctionCall","src":"15918:25:16"}],"id":1022,"name":"MemberAccess","src":"15918:34:16"}],"id":1023,"name":"FunctionCall","src":"15918:36:16"}],"id":1024,"name":"FunctionCall","src":"15898:57:16"}],"id":1025,"name":"VariableDeclarationStatement","src":"15884:71:16"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c3c1ccf9a2b7bd2832b9ffd4cd2f682d3e60d7b053050a16568916bf28585299","typeString":"literal_string \"minute error\""}],"overloadedDeclarations":[12019,12020],"referencedDeclaration":12020,"type":"function (bool,string memory) pure","value":"require"},"id":1026,"name":"Identifier","src":"15965:7:16"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1016,"type":"uint256","value":"minute"},"id":1027,"name":"Identifier","src":"15973:6:16"},{"attributes":{"argumentTypes":null,"hexvalue":"3630","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 60","value":"60"},"id":1028,"name":"Literal","src":"15982:2:16"}],"id":1029,"name":"BinaryOperation","src":"15973:11:16"},{"attributes":{"argumentTypes":null,"hexvalue":"6d696e757465206572726f72","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"minute error\"","value":"minute error"},"id":1030,"name":"Literal","src":"15986:14:16"}],"id":1031,"name":"FunctionCall","src":"15965:36:16"}],"id":1032,"name":"ExpressionStatement","src":"15965:36:16"},{"attributes":{"assignments":[1034]},"children":[{"attributes":{"constant":false,"name":"second","scope":1097,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1033,"name":"ElementaryTypeName","src":"16012:4:16"}],"id":1034,"name":"VariableDeclaration","src":"16012:11:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"overloadedDeclarations":[7956,8445],"referencedDeclaration":7956,"type":"function (string memory) pure returns (uint256)","value":"_parseIntScientific"},"id":1035,"name":"Identifier","src":"16026:19:16"},{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"toString","referencedDeclaration":10551,"type":"function (struct strings.slice memory) pure returns (string memory)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"struct strings.slice memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$10313_memory_ptr","typeString":"struct strings.slice memory"}],"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"split","referencedDeclaration":11672,"type":"function (struct strings.slice memory,struct strings.slice memory) pure returns (struct strings.slice memory)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":910,"type":"struct strings.slice memory","value":"date"},"id":1036,"name":"Identifier","src":"16046:4:16"}],"id":1037,"name":"MemberAccess","src":"16046:10:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":918,"type":"struct strings.slice memory","value":"timeDelimiter"},"id":1038,"name":"Identifier","src":"16057:13:16"}],"id":1039,"name":"FunctionCall","src":"16046:25:16"}],"id":1040,"name":"MemberAccess","src":"16046:34:16"}],"id":1041,"name":"FunctionCall","src":"16046:36:16"}],"id":1042,"name":"FunctionCall","src":"16026:57:16"}],"id":1043,"name":"VariableDeclarationStatement","src":"16012:71:16"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_30566e2365c40c39b8cff6f6328671d3f74806dbf5a804b36e8ac7217a4f034c","typeString":"literal_string \"second error\""}],"overloadedDeclarations":[12019,12020],"referencedDeclaration":12020,"type":"function (bool,string memory) pure","value":"require"},"id":1044,"name":"Identifier","src":"16093:7:16"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1034,"type":"uint256","value":"second"},"id":1045,"name":"Identifier","src":"16101:6:16"},{"attributes":{"argumentTypes":null,"hexvalue":"3630","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 60","value":"60"},"id":1046,"name":"Literal","src":"16110:2:16"}],"id":1047,"name":"BinaryOperation","src":"16101:11:16"},{"attributes":{"argumentTypes":null,"hexvalue":"7365636f6e64206572726f72","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"second error\"","value":"second error"},"id":1048,"name":"Literal","src":"16114:14:16"}],"id":1049,"name":"FunctionCall","src":"16093:36:16"}],"id":1050,"name":"ExpressionStatement","src":"16093:36:16"},{"attributes":{"assignments":[1052]},"children":[{"attributes":{"constant":false,"name":"timestamp","scope":1097,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1051,"name":"ElementaryTypeName","src":"16140:4:16"}],"id":1052,"name":"VariableDeclaration","src":"16140:14:16"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":976,"type":"uint256","value":"year"},"id":1053,"name":"Identifier","src":"16157:4:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"int_const 10000000000"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"**","type":"int_const 10000000000"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3130","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 10","value":"10"},"id":1054,"name":"Literal","src":"16165:2:16"},{"attributes":{"argumentTypes":null,"hexvalue":"3130","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 10","value":"10"},"id":1055,"name":"Literal","src":"16171:2:16"}],"id":1056,"name":"BinaryOperation","src":"16165:8:16"}],"id":1057,"name":"TupleExpression","src":"16164:10:16"}],"id":1058,"name":"BinaryOperation","src":"16157:17:16"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":954,"type":"uint256","value":"month"},"id":1059,"name":"Identifier","src":"16177:5:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"int_const 100000000"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"**","type":"int_const 100000000"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3130","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 10","value":"10"},"id":1060,"name":"Literal","src":"16186:2:16"},{"attributes":{"argumentTypes":null,"hexvalue":"38","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 8","value":"8"},"id":1061,"name":"Literal","src":"16192:1:16"}],"id":1062,"name":"BinaryOperation","src":"16186:7:16"}],"id":1063,"name":"TupleExpression","src":"16185:9:16"}],"id":1064,"name":"BinaryOperation","src":"16177:17:16"}],"id":1065,"name":"BinaryOperation","src":"16157:37:16"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":932,"type":"uint256","value":"day"},"id":1066,"name":"Identifier","src":"16197:3:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"int_const 1000000"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_1000000_by_1","typeString":"int_const 1000000"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"**","type":"int_const 1000000"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3130","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 10","value":"10"},"id":1067,"name":"Literal","src":"16204:2:16"},{"attributes":{"argumentTypes":null,"hexvalue":"36","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 6","value":"6"},"id":1068,"name":"Literal","src":"16210:1:16"}],"id":1069,"name":"BinaryOperation","src":"16204:7:16"}],"id":1070,"name":"TupleExpression","src":"16203:9:16"}],"id":1071,"name":"BinaryOperation","src":"16197:15:16"}],"id":1072,"name":"BinaryOperation","src":"16157:55:16"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":998,"type":"uint256","value":"hour"},"id":1073,"name":"Identifier","src":"16215:4:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"int_const 10000"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"**","type":"int_const 10000"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3130","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 10","value":"10"},"id":1074,"name":"Literal","src":"16223:2:16"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":1075,"name":"Literal","src":"16229:1:16"}],"id":1076,"name":"BinaryOperation","src":"16223:7:16"}],"id":1077,"name":"TupleExpression","src":"16222:9:16"}],"id":1078,"name":"BinaryOperation","src":"16215:16:16"}],"id":1079,"name":"BinaryOperation","src":"16157:74:16"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1016,"type":"uint256","value":"minute"},"id":1080,"name":"Identifier","src":"16234:6:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"int_const 100"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"**","type":"int_const 100"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3130","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 10","value":"10"},"id":1081,"name":"Literal","src":"16244:2:16"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":1082,"name":"Literal","src":"16250:1:16"}],"id":1083,"name":"BinaryOperation","src":"16244:7:16"}],"id":1084,"name":"TupleExpression","src":"16243:9:16"}],"id":1085,"name":"BinaryOperation","src":"16234:18:16"}],"id":1086,"name":"BinaryOperation","src":"16157:95:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1034,"type":"uint256","value":"second"},"id":1087,"name":"Identifier","src":"16255:6:16"}],"id":1088,"name":"BinaryOperation","src":"16157:104:16"}],"id":1089,"name":"VariableDeclarationStatement","src":"16140:121:16"},{"attributes":{"functionReturnParameters":896},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"tuple(bool,uint256)"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1052,"type":"uint256","value":"timestamp"},"id":1090,"name":"Identifier","src":"16280:9:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":890,"type":"uint256","value":"_lastUpdate"},"id":1091,"name":"Identifier","src":"16292:11:16"}],"id":1092,"name":"BinaryOperation","src":"16280:23:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1052,"type":"uint256","value":"timestamp"},"id":1093,"name":"Identifier","src":"16305:9:16"}],"id":1094,"name":"TupleExpression","src":"16279:36:16"}],"id":1095,"name":"Return","src":"16272:43:16"}],"id":1096,"name":"Block","src":"14957:1365:16"}],"id":1097,"name":"FunctionDefinition","src":"14864:1458:16"}],"id":1098,"name":"ContractDefinition","src":"1225:15100:16"}],"id":1099,"name":"SourceUnit","src":"770:15556:16"}}},"version":"0.4.25+commit.59dbf8f1.Linux.g++"} \ No newline at end of file +{"contracts":{"externals/ERC20.sol:ERC20":{"bin":"","bin-runtime":"","srcmap":"","srcmap-runtime":""},"externals/SafeMath.sol:SafeMath":{"bin":"604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820564cf9c59188bb4d206d867a51ebdc48341c3b90a16491599b74ecfe95674b940029","bin-runtime":"73000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820564cf9c59188bb4d206d867a51ebdc48341c3b90a16491599b74ecfe95674b940029","srcmap":"1289:1531:1:-;;132:2:-1;166:7;155:9;146:7;137:37;252:7;246:14;243:1;238:23;232:4;229:33;270:1;265:20;;;;222:63;;265:20;274:9;222:63;;298:9;295:1;288:20;328:4;319:7;311:22;352:7;343;336:24","srcmap-runtime":"1289:1531:1:-;;;;;;;;"},"externals/base64.sol:Base64":{"bin":"6080604052348015600f57600080fd5b50603580601d6000396000f3006080604052600080fd00a165627a7a72305820b1f79b0565dbd3d980444054ec606a2513c871ed44b9a16baa8e2e14dcd3a8850029","bin-runtime":"6080604052600080fd00a165627a7a72305820b1f79b0565dbd3d980444054ec606a2513c871ed44b9a16baa8e2e14dcd3a8850029","srcmap":"264:2270:2:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;264:2270:2;;;;;;;","srcmap-runtime":"264:2270:2:-;;;;;"},"externals/ens/ENS.sol:ENS":{"bin":"","bin-runtime":"","srcmap":"","srcmap-runtime":""},"externals/ens/PublicResolver.sol:PublicResolver":{"bin":"608060405234801561001057600080fd5b50604051602080611400833981016040525160008054600160a060020a03909216600160a060020a03199092169190911790556113ae806100526000396000f3006080604052600436106100da5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166301ffc9a781146100df57806310f13a8c146101155780632203ab56146101b357806329cd62ea1461024d5780632dff69411461026b5780633b3b57de1461029557806359d1d43c146102c9578063623195b01461039c578063691f3431146103fc5780637737221314610414578063aa4cb54714610472578063c3d014d6146104d0578063c8690233146104eb578063d5fa2b001461051c578063e89401a114610540575b600080fd5b3480156100eb57600080fd5b50610101600160e060020a031960043516610558565b604080519115158252519081900360200190f35b34801561012157600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526101b195833595369560449491939091019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437509497506106f99650505050505050565b005b3480156101bf57600080fd5b506101ce60043560243561091f565b6040518083815260200180602001828103825283818151815260200191508051906020019080838360005b838110156102115781810151838201526020016101f9565b50505050905090810190601f16801561023e5780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b34801561025957600080fd5b506101b1600435602435604435610a2b565b34801561027757600080fd5b50610283600435610b2b565b60408051918252519081900360200190f35b3480156102a157600080fd5b506102ad600435610b41565b60408051600160a060020a039092168252519081900360200190f35b3480156102d557600080fd5b5060408051602060046024803582810135601f8101859004850286018501909652858552610327958335953695604494919390910191908190840183828082843750949750610b5c9650505050505050565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610361578181015183820152602001610349565b50505050905090810190601f16801561038e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103a857600080fd5b50604080516020600460443581810135601f81018490048402850184019095528484526101b1948235946024803595369594606494920191908190840183828082843750949750610c659650505050505050565b34801561040857600080fd5b50610327600435610d66565b34801561042057600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526101b1958335953695604494919390910191908190840183828082843750949750610e0a9650505050505050565b34801561047e57600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526101b1958335953695604494919390910191908190840183828082843750949750610f609650505050505050565b3480156104dc57600080fd5b506101b1600435602435611076565b3480156104f757600080fd5b50610503600435611157565b6040805192835260208301919091528051918290030190f35b34801561052857600080fd5b506101b1600435600160a060020a0360243516611174565b34801561054c57600080fd5b50610327600435611278565b6000600160e060020a031982167f3b3b57de0000000000000000000000000000000000000000000000000000000014806105bb5750600160e060020a031982167fd8389dc500000000000000000000000000000000000000000000000000000000145b806105ef5750600160e060020a031982167f691f343100000000000000000000000000000000000000000000000000000000145b806106235750600160e060020a031982167f2203ab5600000000000000000000000000000000000000000000000000000000145b806106575750600160e060020a031982167fc869023300000000000000000000000000000000000000000000000000000000145b8061068b5750600160e060020a031982167f59d1d43c00000000000000000000000000000000000000000000000000000000145b806106bf5750600160e060020a031982167fe89401a100000000000000000000000000000000000000000000000000000000145b806106f35750600160e060020a031982167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b600080546040805160e060020a6302571be302815260048101879052905186933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b15801561074c57600080fd5b505af1158015610760573d6000803e3d6000fd5b505050506040513d602081101561077657600080fd5b5051600160a060020a03161461078b57600080fd5b6000848152600160209081526040918290209151855185936005019287929182918401908083835b602083106107d25780518252601f1990920191602091820191016107b3565b51815160209384036101000a6000190180199092169116179052920194855250604051938490038101909320845161081395919491909101925090506112e7565b5083600019167fd8c9334b1a9c2f9da342a0a2b32629c1a229b6445dad78947f674b44444a75508485604051808060200180602001838103835285818151815260200191508051906020019080838360005b8381101561087d578181015183820152602001610865565b50505050905090810190601f1680156108aa5780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b838110156108dd5781810151838201526020016108c5565b50505050905090810190601f16801561090a5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a250505050565b60008281526001602081905260409091206060905b838311610a1e578284161580159061096d5750600083815260068201602052604081205460026000196101006001841615020190911604115b15610a1357600083815260068201602090815260409182902080548351601f600260001961010060018616150201909316929092049182018490048402810184019094528084529091830182828015610a075780601f106109dc57610100808354040283529160200191610a07565b820191906000526020600020905b8154815290600101906020018083116109ea57829003601f168201915b50505050509150610a23565b600290920291610934565b600092505b509250929050565b600080546040805160e060020a6302571be302815260048101879052905186933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b158015610a7e57600080fd5b505af1158015610a92573d6000803e3d6000fd5b505050506040513d6020811015610aa857600080fd5b5051600160a060020a031614610abd57600080fd5b604080518082018252848152602080820185815260008881526001835284902092516003840155516004909201919091558151858152908101849052815186927f1d6f5e03d3f63eb58751986629a5439baee5079ff04f345becb66e23eb154e46928290030190a250505050565b6000908152600160208190526040909120015490565b600090815260016020526040902054600160a060020a031690565b600082815260016020908152604091829020915183516060936005019285929182918401908083835b60208310610ba45780518252601f199092019160209182019101610b85565b518151600019602094850361010090810a820192831692199390931691909117909252949092019687526040805197889003820188208054601f6002600183161590980290950116959095049283018290048202880182019052818752929450925050830182828015610c585780601f10610c2d57610100808354040283529160200191610c58565b820191906000526020600020905b815481529060010190602001808311610c3b57829003601f168201915b5050505050905092915050565b600080546040805160e060020a6302571be302815260048101879052905186933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b158015610cb857600080fd5b505af1158015610ccc573d6000803e3d6000fd5b505050506040513d6020811015610ce257600080fd5b5051600160a060020a031614610cf757600080fd5b6000198301831615610d0857600080fd5b600084815260016020908152604080832086845260060182529091208351610d32928501906112e7565b50604051839085907faa121bbeef5f32f5961a2a28966e769023910fc9479059ee3495d4c1a696efe390600090a350505050565b6000818152600160208181526040928390206002908101805485516000199582161561010002959095011691909104601f81018390048302840183019094528383526060939091830182828015610dfe5780601f10610dd357610100808354040283529160200191610dfe565b820191906000526020600020905b815481529060010190602001808311610de157829003601f168201915b50505050509050919050565b600080546040805160e060020a6302571be302815260048101869052905185933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b158015610e5d57600080fd5b505af1158015610e71573d6000803e3d6000fd5b505050506040513d6020811015610e8757600080fd5b5051600160a060020a031614610e9c57600080fd5b60008381526001602090815260409091208351610ec1926002909201918501906112e7565b50604080516020808252845181830152845186937fb7d29e911041e8d9b843369e890bcb72c9388692ba48b65ac54e7214c4c348f79387939092839283019185019080838360005b83811015610f21578181015183820152602001610f09565b50505050905090810190601f168015610f4e5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505050565b600080546040805160e060020a6302571be302815260048101869052905185933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b158015610fb357600080fd5b505af1158015610fc7573d6000803e3d6000fd5b505050506040513d6020811015610fdd57600080fd5b5051600160a060020a031614610ff257600080fd5b60008381526001602090815260409091208351611017926007909201918501906112e7565b50604080516020808252845181830152845186937fc0b0fc07269fc2749adada3221c095a1d2187b2d075b51c915857b520f3a502193879390928392830191850190808383600083811015610f21578181015183820152602001610f09565b600080546040805160e060020a6302571be302815260048101869052905185933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b1580156110c957600080fd5b505af11580156110dd573d6000803e3d6000fd5b505050506040513d60208110156110f357600080fd5b5051600160a060020a03161461110857600080fd5b6000838152600160208181526040928390209091018490558151848152915185927f0424b6fe0d9c3bdbece0e7879dc241bb0c22e900be8b6c168b4ee08bd9bf83bc92908290030190a2505050565b600090815260016020526040902060038101546004909101549091565b600080546040805160e060020a6302571be302815260048101869052905185933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b1580156111c757600080fd5b505af11580156111db573d6000803e3d6000fd5b505050506040513d60208110156111f157600080fd5b5051600160a060020a03161461120657600080fd5b600083815260016020908152604091829020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386169081179091558251908152915185927f52d7d861f09ab3d26239d492e8968629f95e9e318cf0b73bfddc441522a15fd292908290030190a2505050565b60008181526001602081815260409283902060070180548451600260001995831615610100029590950190911693909304601f81018390048302840183019094528383526060939091830182828015610dfe5780601f10610dd357610100808354040283529160200191610dfe565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061132857805160ff1916838001178555611355565b82800160010185558215611355579182015b8281111561135557825182559160200191906001019061133a565b50611361929150611365565b5090565b61137f91905b80821115611361576000815560010161136b565b905600a165627a7a72305820bf76237672851602565e309e20eddff44fc668000bb45495e385fdd9e24f4e310029","bin-runtime":"6080604052600436106100da5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166301ffc9a781146100df57806310f13a8c146101155780632203ab56146101b357806329cd62ea1461024d5780632dff69411461026b5780633b3b57de1461029557806359d1d43c146102c9578063623195b01461039c578063691f3431146103fc5780637737221314610414578063aa4cb54714610472578063c3d014d6146104d0578063c8690233146104eb578063d5fa2b001461051c578063e89401a114610540575b600080fd5b3480156100eb57600080fd5b50610101600160e060020a031960043516610558565b604080519115158252519081900360200190f35b34801561012157600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526101b195833595369560449491939091019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437509497506106f99650505050505050565b005b3480156101bf57600080fd5b506101ce60043560243561091f565b6040518083815260200180602001828103825283818151815260200191508051906020019080838360005b838110156102115781810151838201526020016101f9565b50505050905090810190601f16801561023e5780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b34801561025957600080fd5b506101b1600435602435604435610a2b565b34801561027757600080fd5b50610283600435610b2b565b60408051918252519081900360200190f35b3480156102a157600080fd5b506102ad600435610b41565b60408051600160a060020a039092168252519081900360200190f35b3480156102d557600080fd5b5060408051602060046024803582810135601f8101859004850286018501909652858552610327958335953695604494919390910191908190840183828082843750949750610b5c9650505050505050565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610361578181015183820152602001610349565b50505050905090810190601f16801561038e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103a857600080fd5b50604080516020600460443581810135601f81018490048402850184019095528484526101b1948235946024803595369594606494920191908190840183828082843750949750610c659650505050505050565b34801561040857600080fd5b50610327600435610d66565b34801561042057600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526101b1958335953695604494919390910191908190840183828082843750949750610e0a9650505050505050565b34801561047e57600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526101b1958335953695604494919390910191908190840183828082843750949750610f609650505050505050565b3480156104dc57600080fd5b506101b1600435602435611076565b3480156104f757600080fd5b50610503600435611157565b6040805192835260208301919091528051918290030190f35b34801561052857600080fd5b506101b1600435600160a060020a0360243516611174565b34801561054c57600080fd5b50610327600435611278565b6000600160e060020a031982167f3b3b57de0000000000000000000000000000000000000000000000000000000014806105bb5750600160e060020a031982167fd8389dc500000000000000000000000000000000000000000000000000000000145b806105ef5750600160e060020a031982167f691f343100000000000000000000000000000000000000000000000000000000145b806106235750600160e060020a031982167f2203ab5600000000000000000000000000000000000000000000000000000000145b806106575750600160e060020a031982167fc869023300000000000000000000000000000000000000000000000000000000145b8061068b5750600160e060020a031982167f59d1d43c00000000000000000000000000000000000000000000000000000000145b806106bf5750600160e060020a031982167fe89401a100000000000000000000000000000000000000000000000000000000145b806106f35750600160e060020a031982167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b600080546040805160e060020a6302571be302815260048101879052905186933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b15801561074c57600080fd5b505af1158015610760573d6000803e3d6000fd5b505050506040513d602081101561077657600080fd5b5051600160a060020a03161461078b57600080fd5b6000848152600160209081526040918290209151855185936005019287929182918401908083835b602083106107d25780518252601f1990920191602091820191016107b3565b51815160209384036101000a6000190180199092169116179052920194855250604051938490038101909320845161081395919491909101925090506112e7565b5083600019167fd8c9334b1a9c2f9da342a0a2b32629c1a229b6445dad78947f674b44444a75508485604051808060200180602001838103835285818151815260200191508051906020019080838360005b8381101561087d578181015183820152602001610865565b50505050905090810190601f1680156108aa5780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b838110156108dd5781810151838201526020016108c5565b50505050905090810190601f16801561090a5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a250505050565b60008281526001602081905260409091206060905b838311610a1e578284161580159061096d5750600083815260068201602052604081205460026000196101006001841615020190911604115b15610a1357600083815260068201602090815260409182902080548351601f600260001961010060018616150201909316929092049182018490048402810184019094528084529091830182828015610a075780601f106109dc57610100808354040283529160200191610a07565b820191906000526020600020905b8154815290600101906020018083116109ea57829003601f168201915b50505050509150610a23565b600290920291610934565b600092505b509250929050565b600080546040805160e060020a6302571be302815260048101879052905186933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b158015610a7e57600080fd5b505af1158015610a92573d6000803e3d6000fd5b505050506040513d6020811015610aa857600080fd5b5051600160a060020a031614610abd57600080fd5b604080518082018252848152602080820185815260008881526001835284902092516003840155516004909201919091558151858152908101849052815186927f1d6f5e03d3f63eb58751986629a5439baee5079ff04f345becb66e23eb154e46928290030190a250505050565b6000908152600160208190526040909120015490565b600090815260016020526040902054600160a060020a031690565b600082815260016020908152604091829020915183516060936005019285929182918401908083835b60208310610ba45780518252601f199092019160209182019101610b85565b518151600019602094850361010090810a820192831692199390931691909117909252949092019687526040805197889003820188208054601f6002600183161590980290950116959095049283018290048202880182019052818752929450925050830182828015610c585780601f10610c2d57610100808354040283529160200191610c58565b820191906000526020600020905b815481529060010190602001808311610c3b57829003601f168201915b5050505050905092915050565b600080546040805160e060020a6302571be302815260048101879052905186933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b158015610cb857600080fd5b505af1158015610ccc573d6000803e3d6000fd5b505050506040513d6020811015610ce257600080fd5b5051600160a060020a031614610cf757600080fd5b6000198301831615610d0857600080fd5b600084815260016020908152604080832086845260060182529091208351610d32928501906112e7565b50604051839085907faa121bbeef5f32f5961a2a28966e769023910fc9479059ee3495d4c1a696efe390600090a350505050565b6000818152600160208181526040928390206002908101805485516000199582161561010002959095011691909104601f81018390048302840183019094528383526060939091830182828015610dfe5780601f10610dd357610100808354040283529160200191610dfe565b820191906000526020600020905b815481529060010190602001808311610de157829003601f168201915b50505050509050919050565b600080546040805160e060020a6302571be302815260048101869052905185933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b158015610e5d57600080fd5b505af1158015610e71573d6000803e3d6000fd5b505050506040513d6020811015610e8757600080fd5b5051600160a060020a031614610e9c57600080fd5b60008381526001602090815260409091208351610ec1926002909201918501906112e7565b50604080516020808252845181830152845186937fb7d29e911041e8d9b843369e890bcb72c9388692ba48b65ac54e7214c4c348f79387939092839283019185019080838360005b83811015610f21578181015183820152602001610f09565b50505050905090810190601f168015610f4e5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505050565b600080546040805160e060020a6302571be302815260048101869052905185933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b158015610fb357600080fd5b505af1158015610fc7573d6000803e3d6000fd5b505050506040513d6020811015610fdd57600080fd5b5051600160a060020a031614610ff257600080fd5b60008381526001602090815260409091208351611017926007909201918501906112e7565b50604080516020808252845181830152845186937fc0b0fc07269fc2749adada3221c095a1d2187b2d075b51c915857b520f3a502193879390928392830191850190808383600083811015610f21578181015183820152602001610f09565b600080546040805160e060020a6302571be302815260048101869052905185933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b1580156110c957600080fd5b505af11580156110dd573d6000803e3d6000fd5b505050506040513d60208110156110f357600080fd5b5051600160a060020a03161461110857600080fd5b6000838152600160208181526040928390209091018490558151848152915185927f0424b6fe0d9c3bdbece0e7879dc241bb0c22e900be8b6c168b4ee08bd9bf83bc92908290030190a2505050565b600090815260016020526040902060038101546004909101549091565b600080546040805160e060020a6302571be302815260048101869052905185933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b1580156111c757600080fd5b505af11580156111db573d6000803e3d6000fd5b505050506040513d60208110156111f157600080fd5b5051600160a060020a03161461120657600080fd5b600083815260016020908152604091829020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386169081179091558251908152915185927f52d7d861f09ab3d26239d492e8968629f95e9e318cf0b73bfddc441522a15fd292908290030190a2505050565b60008181526001602081815260409283902060070180548451600260001995831615610100029590950190911693909304601f81018390048302840183019094528383526060939091830182828015610dfe5780601f10610dd357610100808354040283529160200191610dfe565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061132857805160ff1916838001178555611355565b82800160010185558215611355579182015b8281111561135557825182559160200191906001019061133a565b50611361929150611365565b5090565b61137f91905b80821115611361576000815560010161136b565b905600a165627a7a72305820bf76237672851602565e309e20eddff44fc668000bb45495e385fdd9e24f4e310029","srcmap":"1553:8134:4:-;;;3005:62;8:9:-1;5:2;;;30:1;27;20:12;5:2;3005:62:4;;;;;;;;;;;;;3047:3;:13;;-1:-1:-1;;;;;3047:13:4;;;-1:-1:-1;;;;;;3047:13:4;;;;;;;;;1553:8134;;;;;;","srcmap-runtime":"1553:8134:4:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9238:447;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9238:447:4;-1:-1:-1;;;;;;9238:447:4;;;;;;;;;;;;;;;;;;;;;;;6084:171;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6084:171:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6084:171:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6084:171:4;;;;-1:-1:-1;6084:171:4;-1:-1:-1;6084:171:4;;-1:-1:-1;6084:171:4;;;;;;;;-1:-1:-1;6084:171:4;;-1:-1:-1;6084:171:4;;-1:-1:-1;;;;;;;6084:171:4;;;7296:451;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7296:451:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;7296:451:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5631:174;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5631:174:4;;;;;;;;;8351:106;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8351:106:4;;;;;;;;;;;;;;;;;;;;;8887:100;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8887:100:4;;;;;;;;;-1:-1:-1;;;;;8887:100:4;;;;;;;;;;;;;;6472:116;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6472:116:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6472:116:4;;-1:-1:-1;6472:116:4;;-1:-1:-1;;;;;;;6472:116:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;6472:116:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5057:297;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5057:297:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5057:297:4;;-1:-1:-1;5057:297:4;;-1:-1:-1;;;;;;;5057:297:4;7947:99;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7947:99:4;;;;;4607:148;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4607:148:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4607:148:4;;-1:-1:-1;4607:148:4;;-1:-1:-1;;;;;;;4607:148:4;4200:162;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4200:162:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4200:162:4;;-1:-1:-1;4200:162:4;;-1:-1:-1;;;;;;;4200:162:4;3813:158;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3813:158:4;;;;;;;6830:145;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6830:145:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;3293:149;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3293:149:4;;;-1:-1:-1;;;;;3293:149:4;;;;;8620:108;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8620:108:4;;;;;9238:447;9306:4;-1:-1:-1;;;;;;9329:32:4;;9344:17;9329:32;;:79;;-1:-1:-1;;;;;;;9373:35:4;;9388:20;9373:35;9329:79;:123;;;-1:-1:-1;;;;;;;9420:32:4;;9435:17;9420:32;9329:123;:166;;;-1:-1:-1;;;;;;;9464:31:4;;9479:16;9464:31;9329:166;:212;;;-1:-1:-1;;;;;;;9507:34:4;;9522:19;9507:34;9329:212;:256;;;-1:-1:-1;;;;;;;9553:32:4;;9568:17;9553:32;9329:256;:305;;;-1:-1:-1;;;;;;;9597:37:4;;9612:22;9597:37;9329:305;:349;;;-1:-1:-1;;;;;;;9646:32:4;;9661:17;9646:32;9329:349;9322:356;9238:447;-1:-1:-1;;9238:447:4:o;6084:171::-;2865:3;;;:15;;;-1:-1:-1;;;;;2865:15:4;;;;;;;;;;6159:4;;2884:10;;-1:-1:-1;;;;;2865:3:4;;:9;;:15;;;;;;;;;;;;;;;;:3;:15;;;5:2:-1;;;;30:1;27;20:12;5:2;2865:15:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2865:15:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2865:15:4;-1:-1:-1;;;;;2865:29:4;;2857:38;;;;;;6175:13;;;;:7;:13;;;;;;;;;:23;;;;6201:5;;6175:18;;;6194:3;;6175:23;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;6175:23:4;;;;;-1:-1:-1;6175:23:4;;;;;;;;;;;:31;;;;:23;;:31;;;;;-1:-1:-1;6175:31:4;-1:-1:-1;6175:31:4;:::i;:::-;;6233:4;6221:27;;;;6239:3;6244;6221:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;6221:27:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6221:27:4;;;;;;;;;;;;;;;;;;;;;;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;6221:27:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6084:171;;;;:::o;7296:451::-;7366:19;7433:13;;;:7;:13;;;;;;;;7387:10;;7456:260;7478:27;;;7456:260;;7545:26;;;7544:33;;;;:72;;-1:-1:-1;7615:1:4;7581:24;;;:11;;;:24;;;;;:31;;-1:-1:-1;;7581:31:4;;;;;;;;;;;:35;7544:72;7540:166;;;7643:24;;;;:11;;;:24;;;;;;;;;7636:31;;;;;;-1:-1:-1;;7636:31:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7643:24;;7636:31;;7643:24;7636:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7685:7;;7540:166;7507:17;;;;;7456:260;;;7739:1;7725:15;;7296:451;;;;;;;:::o;5631:174::-;2865:3;;;:15;;;-1:-1:-1;;;;;2865:15:4;;;;;;;;;;5704:4;;2884:10;;-1:-1:-1;;;;;2865:3:4;;:9;;:15;;;;;;;;;;;;;;;;:3;:15;;;5:2:-1;;;;30:1;27;20:12;5:2;2865:15:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2865:15:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2865:15:4;-1:-1:-1;;;;;2865:29:4;;2857:38;;;;;;5743:15;;;;;;;;;;;;;;;;;;-1:-1:-1;5720:13:4;;;:7;:13;;;;;:38;;:20;;;:38;;;;;;;;;;5773:25;;;;;;;;;;;;;5728:4;;5773:25;;;;;;;;5631:174;;;;:::o;8351:106::-;8403:7;8429:13;;;:7;:13;;;;;;;;:21;;;8351:106::o;8887:100::-;8936:7;8962:13;;;:7;:13;;;;;:18;-1:-1:-1;;;;;8962:18:4;;8887:100::o;6472:116::-;6558:13;;;;:7;:13;;;;;;;;;:23;;;;6533:6;;6558:18;;;6577:3;;6558:23;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;-1:-1;;263:2;259:12;;;254:3;250:22;;;246:30;;340:21;;;311:9;;295:26;;;;377:20;;;;365:33;;;6558:23:4;;;;;;;;;;;;;;;;;;6551:30;;;;274:1:-1;6551:30:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6558:23;;-1:-1:-1;6551:30:4;-1:-1:-1;;6551:30:4;;6558:23;6551:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6472:116;;;;:::o;5057:297::-;2865:3;;;:15;;;-1:-1:-1;;;;;2865:15:4;;;;;;;;;;5138:4;;2884:10;;-1:-1:-1;;;;;2865:3:4;;:9;;:15;;;;;;;;;;;;;;;;:3;:15;;;5:2:-1;;;;30:1;27;20:12;5:2;2865:15:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2865:15:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2865:15:4;-1:-1:-1;;;;;2865:29:4;;2857:38;;;;;;-1:-1:-1;;5209:15:4;;5208:31;;5207:38;5199:47;;;;;;5265:13;;;;:7;:13;;;;;;;;:31;;;:18;;:31;;;;;:38;;;;;;;;:::i;:::-;-1:-1:-1;5318:29:4;;5335:11;;5329:4;;5318:29;;;;;5057:297;;;;:::o;7947:99::-;8021:13;;;;:7;:13;;;;;;;;;:18;;;;8014:25;;;;-1:-1:-1;;8014:25:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7996:6;;8021:18;;8014:25;;8021:18;8014:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7947:99;;;:::o;4607:148::-;2865:3;;;:15;;;-1:-1:-1;;;;;2865:15:4;;;;;;;;;;4669:4;;2884:10;;-1:-1:-1;;;;;2865:3:4;;:9;;:15;;;;;;;;;;;;;;;;:3;:15;;;5:2:-1;;;;30:1;27;20:12;5:2;2865:15:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2865:15:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2865:15:4;-1:-1:-1;;;;;2865:29:4;;2857:38;;;;;;4685:13;;;;:7;:13;;;;;;;;:25;;;;:18;;;;;:25;;;;:::i;:::-;-1:-1:-1;4725:23:4;;;;;;;;;;;;;;;4737:4;;4725:23;;4743:4;;4725:23;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;4725:23:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4607:148;;;:::o;4200:162::-;2865:3;;;:15;;;-1:-1:-1;;;;;2865:15:4;;;;;;;;;;4266:4;;2884:10;;-1:-1:-1;;;;;2865:3:4;;:9;;:15;;;;;;;;;;;;;;;;:3;:15;;;5:2:-1;;;;30:1;27;20:12;5:2;2865:15:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2865:15:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2865:15:4;-1:-1:-1;;;;;2865:29:4;;2857:38;;;;;;4282:13;;;;:7;:13;;;;;;;;:30;;;;:23;;;;;:30;;;;:::i;:::-;-1:-1:-1;4327:28:4;;;;;;;;;;;;;;;4344:4;;4327:28;;4350:4;;4327:28;;;;;;;;;;;;;;33:3:-1;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;3813:158:4;2865:3;;;:15;;;-1:-1:-1;;;;;2865:15:4;;;;;;;;;;3879:4;;2884:10;;-1:-1:-1;;;;;2865:3:4;;:9;;:15;;;;;;;;;;;;;;;;:3;:15;;;5:2:-1;;;;30:1;27;20:12;5:2;2865:15:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2865:15:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2865:15:4;-1:-1:-1;;;;;2865:29:4;;2857:38;;;;;;3895:13;;;;:7;:13;;;;;;;;;:21;;;:28;;;3938:26;;;;;;;3903:4;;3938:26;;;;;;;;;3813:158;;;:::o;6830:145::-;6881:9;6921:13;;;:7;:13;;;;;:20;;;:22;6945;;;;;6921;;6830:145::o;3293:149::-;2865:3;;;:15;;;-1:-1:-1;;;;;2865:15:4;;;;;;;;;;3356:4;;2884:10;;-1:-1:-1;;;;;2865:3:4;;:9;;:15;;;;;;;;;;;;;;;;:3;:15;;;5:2:-1;;;;30:1;27;20:12;5:2;2865:15:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2865:15:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2865:15:4;-1:-1:-1;;;;;2865:29:4;;2857:38;;;;;;3372:13;;;;:7;:13;;;;;;;;;:25;;-1:-1:-1;;3372:25:4;-1:-1:-1;;;;;3372:25:4;;;;;;;;3412:23;;;;;;;3372:13;;3412:23;;;;;;;;;3293:149;;;:::o;8620:108::-;8698:13;;;;:7;:13;;;;;;;;;:23;;8691:30;;;;;-1:-1:-1;;8691:30:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8674:5;;8698:23;;8691:30;;8698:23;8691:30;;;;;;;;;;;;;;;;;;;;;;;;1553:8134;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1553:8134:4;;;-1:-1:-1;1553:8134:4;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o"},"externals/oraclizeAPI_0.4.25.sol:Buffer":{"bin":"604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820363fef3bba23a3e8517306abc19041de3037b1e57ad9d2a43b8c8bf4240e4dc40029","bin-runtime":"73000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820363fef3bba23a3e8517306abc19041de3037b1e57ad9d2a43b8c8bf4240e4dc40029","srcmap":"3971:4237:5:-;;132:2:-1;166:7;155:9;146:7;137:37;252:7;246:14;243:1;238:23;232:4;229:33;270:1;265:20;;;;222:63;;265:20;274:9;222:63;;298:9;295:1;288:20;328:4;319:7;311:22;352:7;343;336:24","srcmap-runtime":"3971:4237:5:-;;;;;;;;"},"externals/oraclizeAPI_0.4.25.sol:CBOR":{"bin":"604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820aa288f15de5b2d63391b5c6e6318a32c92ff4e721225950e0d9bd6b8a3abe1eb0029","bin-runtime":"73000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820aa288f15de5b2d63391b5c6e6318a32c92ff4e721225950e0d9bd6b8a3abe1eb0029","srcmap":"8210:2407:5:-;;132:2:-1;166:7;155:9;146:7;137:37;252:7;246:14;243:1;238:23;232:4;229:33;270:1;265:20;;;;222:63;;265:20;274:9;222:63;;298:9;295:1;288:20;328:4;319:7;311:22;352:7;343;336:24","srcmap-runtime":"8210:2407:5:-;;;;;;;;"},"externals/oraclizeAPI_0.4.25.sol:OraclizeAddrResolverI":{"bin":"","bin-runtime":"","srcmap":"","srcmap-runtime":""},"externals/oraclizeAPI_0.4.25.sol:OraclizeI":{"bin":"","bin-runtime":"","srcmap":"","srcmap-runtime":""},"externals/oraclizeAPI_0.4.25.sol:usingOraclize":{"bin":"608060405234801561001057600080fd5b5061019d806100206000396000f30060806040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166327dc297e811461005057806338bbfa50146100b0575b600080fd5b34801561005c57600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526100ae95833595369560449491939091019190819084018382808284375094975061014c9650505050505050565b005b3480156100bc57600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526100ae95833595369560449491939091019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a99988101979196509182019450925082915084018382808284375094975061016c9650505050505050565b604080516000815260208101909152610168908390839061016c565b5050565b5050505600a165627a7a72305820006b11ff0715dd1eec44f0392a35175fe2365016df2a283c8e0cf1111f1c866a0029","bin-runtime":"60806040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166327dc297e811461005057806338bbfa50146100b0575b600080fd5b34801561005c57600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526100ae95833595369560449491939091019190819084018382808284375094975061014c9650505050505050565b005b3480156100bc57600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526100ae95833595369560449491939091019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a99988101979196509182019450925082915084018382808284375094975061016c9650505050505050565b604080516000815260208101909152610168908390839061016c565b5050565b5050505600a165627a7a72305820006b11ff0715dd1eec44f0392a35175fe2365016df2a283c8e0cf1111f1c866a0029","srcmap":"10650:41987:5:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10650:41987:5;;;;;;;","srcmap-runtime":"10650:41987:5:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;13619:111;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;13619:111:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13619:111:5;;-1:-1:-1;13619:111:5;;-1:-1:-1;;;;;;;13619:111:5;;;13735:440;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;13735:440:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;13735:440:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13735:440:5;;;;-1:-1:-1;13735:440:5;-1:-1:-1;13735:440:5;;-1:-1:-1;13735:440:5;;;;;;;;-1:-1:-1;13735:440:5;;-1:-1:-1;13735:440:5;;-1:-1:-1;;;;;;;13735:440:5;13619:111;13710:12;;;13720:1;13710:12;;;;;;;;13685:38;;13696:4;;13702:6;;13685:10;:38::i;:::-;13619:111;;:::o;13735:440::-;;;;:::o"},"externals/strings.sol:strings":{"bin":"604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a7230582024a2b0f9f886001e5fd3db71aa4fb1e8f4254fc3db05e9d54265f7c101091af20029","bin-runtime":"73000000000000000000000000000000000000000030146080604052600080fd00a165627a7a7230582024a2b0f9f886001e5fd3db71aa4fb1e8f4254fc3db05e9d54265f7c101091af20029","srcmap":"2600:23355:6:-;;132:2:-1;166:7;155:9;146:7;137:37;252:7;246:14;243:1;238:23;232:4;229:33;270:1;265:20;;;;222:63;;265:20;274:9;222:63;;298:9;295:1;288:20;328:4;319:7;311:22;352:7;343;336:24","srcmap-runtime":"2600:23355:6:-;;;;;;;;"},"internals/claimable.sol:Claimable":{"bin":"6080604052348015600f57600080fd5b50603580601d6000396000f3006080604052600080fd00a165627a7a72305820395b628221b28dc04b0498f55415adf15a37b484bd593b1cfd29b4eab19dc5300029","bin-runtime":"6080604052600080fd00a165627a7a72305820395b628221b28dc04b0498f55415adf15a37b484bd593b1cfd29b4eab19dc5300029","srcmap":"917:797:7:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;917:797:7;;;;;;;","srcmap-runtime":"917:797:7:-;;;;;"},"internals/controllable.sol:Controllable":{"bin":"","bin-runtime":"","srcmap":"","srcmap-runtime":""},"internals/controller.sol:Controller":{"bin":"608060405234801561001057600080fd5b5060405160408061128b83398101604052805160209091015160008054600160a060020a031916600160a060020a0384161760a060020a60ff02191674010000000000000000000000000000000000000000831515810291909117918290558391839160ff91041615156100bb5760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b6040805160008152600160a060020a038416602082015281517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea5929181900390910190a150505050611179806101126000396000f3006080604052600436106100c45763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166315b9a8b881146100c95780631785f53c146100f05780632121dc751461011357806324d7806c1461013c5780632b7832b31461015d5780637048027514610172578063715018a6146101935780638da5cb5b146101a8578063996cba68146101d9578063a7fc7a0714610203578063b242e53414610224578063b429afeb1461024a578063f6a74ed71461026b575b600080fd5b3480156100d557600080fd5b506100de61028c565b60408051918252519081900360200190f35b3480156100fc57600080fd5b50610111600160a060020a0360043516610292565b005b34801561011f57600080fd5b506101286102eb565b604080519115158252519081900360200190f35b34801561014857600080fd5b50610128600160a060020a036004351661030c565b34801561016957600080fd5b506100de61032a565b34801561017e57600080fd5b50610111600160a060020a0360043516610330565b34801561019f57600080fd5b50610111610386565b3480156101b457600080fd5b506101bd6104a1565b60408051600160a060020a039092168252519081900360200190f35b3480156101e557600080fd5b50610111600160a060020a03600435811690602435166044356104b0565b34801561020f57600080fd5b50610111600160a060020a036004351661050d565b34801561023057600080fd5b50610111600160a060020a03600435166024351515610575565b34801561025657600080fd5b50610128600160a060020a03600435166107b4565b34801561027757600080fd5b50610111600160a060020a03600435166107d2565b60045490565b61029b3361083a565b15156102df576040805160e560020a62461bcd028152602060048201526016602482015260008051602061112e833981519152604482015290519081900360640190fd5b6102e88161084e565b50565b60005474010000000000000000000000000000000000000000900460ff1690565b600160a060020a031660009081526001602052604090205460ff1690565b60025490565b6103393361083a565b151561037d576040805160e560020a62461bcd028152602060048201526016602482015260008051602061112e833981519152604482015290519081900360640190fd5b6102e881610929565b61038f3361083a565b15156103d3576040805160e560020a62461bcd028152602060048201526016602482015260008051602061112e833981519152604482015290519081900360640190fd5b60005474010000000000000000000000000000000000000000900460ff161515610447576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916815560408051828152602081019290925280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1565b600054600160a060020a031690565b6104b93361083a565b15156104fd576040805160e560020a62461bcd028152602060048201526016602482015260008051602061112e833981519152604482015290519081900360640190fd5b610508838383610bca565b505050565b6105163361030c565b151561056c576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e2061646d696e00000000000000000000604482015290519081900360640190fd5b6102e881610d89565b61057e3361083a565b15156105c2576040805160e560020a62461bcd028152602060048201526016602482015260008051602061112e833981519152604482015290519081900360640190fd5b60005474010000000000000000000000000000000000000000900460ff161515610636576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b600160a060020a03821615156106bc576040805160e560020a62461bcd02815260206004820152602360248201527f6f776e65722063616e6e6f742062652073657420746f207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6000805474ff00000000000000000000000000000000000000001916740100000000000000000000000000000000000000008315159081029190911790915561073c5760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b60005460408051600160a060020a039283168152918416602083015280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1506000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a031660009081526003602052604090205460ff1690565b6107db3361030c565b1515610831576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e2061646d696e00000000000000000000604482015290519081900360640190fd5b6102e88161102d565b600054600160a060020a0390811691161490565b600160a060020a03811660009081526001602052604090205460ff1615156108c0576040805160e560020a62461bcd02815260206004820181905260248201527f70726f7669646564206163636f756e74206973206e6f7420616e2061646d696e604482015290519081900360640190fd5b600160a060020a038116600081815260016020908152604091829020805460ff191690556002805460001901905581513381529081019290925280517f787a2e12f4a55b658b8f573c32432ee11a5e8b51677d1e1e937aaf6a0bb5776e9281900390910190a150565b600160a060020a03811660009081526001602052604090205460ff16156109bf576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320616c726561647920616e206160448201527f646d696e00000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a03811660009081526003602052604090205460ff1615610a56576040805160e560020a62461bcd02815260206004820152602860248201527f70726f7669646564206163636f756e7420697320616c7265616479206120636f60448201527f6e74726f6c6c6572000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b610a5f8161083a565b15610ada576040805160e560020a62461bcd02815260206004820152602560248201527f70726f7669646564206163636f756e7420697320616c7265616479207468652060448201527f6f776e6572000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0381161515610b5f576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260016020818152604092839020805460ff1916831790556002805490920190915581513381529081019290925280517fc58b647b8ba5a8cab2f11f32673636cc1061324240972ed05e8cc005b81a4b7a9281900390910190a150565b600160a060020a0382161515610c1657604051600160a060020a0384169082156108fc029083906000818181858888f19350505050158015610c10573d6000803e3d6000fd5b50610d3a565b81600160a060020a031663a9059cbb84836040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b158015610c9257600080fd5b505af1158015610ca6573d6000803e3d6000fd5b505050506040513d6020811015610cbc57600080fd5b50511515610d3a576040805160e560020a62461bcd02815260206004820152602560248201527f455243323020746f6b656e207472616e736665722077617320756e737563636560448201527f737366756c000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60408051600160a060020a0380861682528416602082015280820183905290517ff7a40077ff7a04c7e61f6f26fb13774259ddf1b6bce9ecf26a8276cdd39926839181900360600190a1505050565b600160a060020a03811660009081526001602052604090205460ff1615610e1f576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320616c726561647920616e206160448201527f646d696e00000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a03811660009081526003602052604090205460ff1615610eb6576040805160e560020a62461bcd02815260206004820152602860248201527f70726f7669646564206163636f756e7420697320616c7265616479206120636f60448201527f6e74726f6c6c6572000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b610ebf8161083a565b15610f3a576040805160e560020a62461bcd02815260206004820152602560248201527f70726f7669646564206163636f756e7420697320616c7265616479207468652060448201527f6f776e6572000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0381161515610fbf576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260036020908152604091829020805460ff1916600190811790915560048054909101905581513381529081019290925280517fb890d5abdcd5c2b61ce8bbc2cf6af9b6d7f7451830cbc85037cbdd182c86fe1d9281900390910190a150565b600160a060020a03811660009081526003602052604090205460ff1615156110c4576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e74206973206e6f74206120636f6e74726f60448201527f6c6c657200000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260036020908152604091829020805460ff191690556004805460001901905581513381529081019290925280517fb6a283aaede08e15ef55c74e3014e30eb0c0040d4b156cccb77391268ea373949281900390910190a150560073656e646572206973206e6f7420616e206f776e657200000000000000000000a165627a7a723058200e752e3a88decc3d8c5d0c377c032b4fe39f5eb66a5b9fe8ce60f184698d72480029","bin-runtime":"6080604052600436106100c45763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166315b9a8b881146100c95780631785f53c146100f05780632121dc751461011357806324d7806c1461013c5780632b7832b31461015d5780637048027514610172578063715018a6146101935780638da5cb5b146101a8578063996cba68146101d9578063a7fc7a0714610203578063b242e53414610224578063b429afeb1461024a578063f6a74ed71461026b575b600080fd5b3480156100d557600080fd5b506100de61028c565b60408051918252519081900360200190f35b3480156100fc57600080fd5b50610111600160a060020a0360043516610292565b005b34801561011f57600080fd5b506101286102eb565b604080519115158252519081900360200190f35b34801561014857600080fd5b50610128600160a060020a036004351661030c565b34801561016957600080fd5b506100de61032a565b34801561017e57600080fd5b50610111600160a060020a0360043516610330565b34801561019f57600080fd5b50610111610386565b3480156101b457600080fd5b506101bd6104a1565b60408051600160a060020a039092168252519081900360200190f35b3480156101e557600080fd5b50610111600160a060020a03600435811690602435166044356104b0565b34801561020f57600080fd5b50610111600160a060020a036004351661050d565b34801561023057600080fd5b50610111600160a060020a03600435166024351515610575565b34801561025657600080fd5b50610128600160a060020a03600435166107b4565b34801561027757600080fd5b50610111600160a060020a03600435166107d2565b60045490565b61029b3361083a565b15156102df576040805160e560020a62461bcd028152602060048201526016602482015260008051602061112e833981519152604482015290519081900360640190fd5b6102e88161084e565b50565b60005474010000000000000000000000000000000000000000900460ff1690565b600160a060020a031660009081526001602052604090205460ff1690565b60025490565b6103393361083a565b151561037d576040805160e560020a62461bcd028152602060048201526016602482015260008051602061112e833981519152604482015290519081900360640190fd5b6102e881610929565b61038f3361083a565b15156103d3576040805160e560020a62461bcd028152602060048201526016602482015260008051602061112e833981519152604482015290519081900360640190fd5b60005474010000000000000000000000000000000000000000900460ff161515610447576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916815560408051828152602081019290925280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1565b600054600160a060020a031690565b6104b93361083a565b15156104fd576040805160e560020a62461bcd028152602060048201526016602482015260008051602061112e833981519152604482015290519081900360640190fd5b610508838383610bca565b505050565b6105163361030c565b151561056c576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e2061646d696e00000000000000000000604482015290519081900360640190fd5b6102e881610d89565b61057e3361083a565b15156105c2576040805160e560020a62461bcd028152602060048201526016602482015260008051602061112e833981519152604482015290519081900360640190fd5b60005474010000000000000000000000000000000000000000900460ff161515610636576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b600160a060020a03821615156106bc576040805160e560020a62461bcd02815260206004820152602360248201527f6f776e65722063616e6e6f742062652073657420746f207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6000805474ff00000000000000000000000000000000000000001916740100000000000000000000000000000000000000008315159081029190911790915561073c5760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b60005460408051600160a060020a039283168152918416602083015280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1506000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a031660009081526003602052604090205460ff1690565b6107db3361030c565b1515610831576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e2061646d696e00000000000000000000604482015290519081900360640190fd5b6102e88161102d565b600054600160a060020a0390811691161490565b600160a060020a03811660009081526001602052604090205460ff1615156108c0576040805160e560020a62461bcd02815260206004820181905260248201527f70726f7669646564206163636f756e74206973206e6f7420616e2061646d696e604482015290519081900360640190fd5b600160a060020a038116600081815260016020908152604091829020805460ff191690556002805460001901905581513381529081019290925280517f787a2e12f4a55b658b8f573c32432ee11a5e8b51677d1e1e937aaf6a0bb5776e9281900390910190a150565b600160a060020a03811660009081526001602052604090205460ff16156109bf576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320616c726561647920616e206160448201527f646d696e00000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a03811660009081526003602052604090205460ff1615610a56576040805160e560020a62461bcd02815260206004820152602860248201527f70726f7669646564206163636f756e7420697320616c7265616479206120636f60448201527f6e74726f6c6c6572000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b610a5f8161083a565b15610ada576040805160e560020a62461bcd02815260206004820152602560248201527f70726f7669646564206163636f756e7420697320616c7265616479207468652060448201527f6f776e6572000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0381161515610b5f576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260016020818152604092839020805460ff1916831790556002805490920190915581513381529081019290925280517fc58b647b8ba5a8cab2f11f32673636cc1061324240972ed05e8cc005b81a4b7a9281900390910190a150565b600160a060020a0382161515610c1657604051600160a060020a0384169082156108fc029083906000818181858888f19350505050158015610c10573d6000803e3d6000fd5b50610d3a565b81600160a060020a031663a9059cbb84836040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b158015610c9257600080fd5b505af1158015610ca6573d6000803e3d6000fd5b505050506040513d6020811015610cbc57600080fd5b50511515610d3a576040805160e560020a62461bcd02815260206004820152602560248201527f455243323020746f6b656e207472616e736665722077617320756e737563636560448201527f737366756c000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60408051600160a060020a0380861682528416602082015280820183905290517ff7a40077ff7a04c7e61f6f26fb13774259ddf1b6bce9ecf26a8276cdd39926839181900360600190a1505050565b600160a060020a03811660009081526001602052604090205460ff1615610e1f576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320616c726561647920616e206160448201527f646d696e00000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a03811660009081526003602052604090205460ff1615610eb6576040805160e560020a62461bcd02815260206004820152602860248201527f70726f7669646564206163636f756e7420697320616c7265616479206120636f60448201527f6e74726f6c6c6572000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b610ebf8161083a565b15610f3a576040805160e560020a62461bcd02815260206004820152602560248201527f70726f7669646564206163636f756e7420697320616c7265616479207468652060448201527f6f776e6572000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0381161515610fbf576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260036020908152604091829020805460ff1916600190811790915560048054909101905581513381529081019290925280517fb890d5abdcd5c2b61ce8bbc2cf6af9b6d7f7451830cbc85037cbdd182c86fe1d9281900390910190a150565b600160a060020a03811660009081526003602052604090205460ff1615156110c4576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e74206973206e6f74206120636f6e74726f60448201527f6c6c657200000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260036020908152604091829020805460ff191690556004805460001901905581513381529081019290925280517fb6a283aaede08e15ef55c74e3014e30eb0c0040d4b156cccb77391268ea373949281900390910190a150560073656e646572206973206e6f7420616e206f776e657200000000000000000000a165627a7a723058200e752e3a88decc3d8c5d0c377c032b4fe39f5eb66a5b9fe8ce60f184698d72480029","srcmap":"1361:4838:9:-;;;2057:107;8:9:-1;5:2;;;30:1;27;20:12;5:2;2057:107:9;;;;;;;;;;;;;;;;;;;1527:6:12;:18;;-1:-1:-1;;;;;;1527:18:12;-1:-1:-1;;;;;1527:18:12;;;-1:-1:-1;;;;;;1555:32:12;;;;;;;;;;;;;;;2057:107:9;;;;1555:32:12;1671:15;;;1670:16;1666:78;;;1707:26;;;-1:-1:-1;;;;;1707:26:12;;;;;;;;;;;;;;;1666:78;1758:43;;;1787:1;1758:43;;-1:-1:-1;;;;;1758:43:12;;;;;;;;;;;;;;;;;;;1456:352;;2057:107:9;;1361:4838;;;;;;","srcmap-runtime":"1361:4838:9:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3671:96;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3671:96:9;;;;;;;;;;;;;;;;;;;;2851:97;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2851:97:9;-1:-1:-1;;;;;2851:97:9;;;;;;;3149:94:12;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3149:94:12;;;;;;;;;;;;;;;;;;;;;;3871:104:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3871:104:9;-1:-1:-1;;;;;3871:104:9;;;;;3000:86;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3000:86:9;;;;2631:91;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2631:91:9;-1:-1:-1;;;;;2631:91:9;;;;;3519:306:12;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3519:306:12;;;;3908:77;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3908:77:12;;;;;;;;-1:-1:-1;;;;;3908:77:12;;;;;;;;;;;;;;6075:122:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6075:122:9;-1:-1:-1;;;;;6075:122:9;;;;;;;;;;;;3224:101;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3224:101:9;-1:-1:-1;;;;;3224:101:9;;;;;2231:801:12;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2231:801:12;-1:-1:-1;;;;;2231:801:12;;;;;;;;;4087:114:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4087:114:9;-1:-1:-1;;;;;4087:114:9;;;;;3469:107;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3469:107:9;-1:-1:-1;;;;;3469:107:9;;;;;3671:96;3744:16;;3671:96;:::o;2851:97::-;1924:20:12;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:12;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1916:55:12;;;;;;;;;;;;;;;2919:22:9;2932:8;2919:12;:22::i;:::-;2851:97;:::o;3149:94:12:-;3198:4;3221:15;;;;;;;3149:94::o;3871:104:9:-;-1:-1:-1;;;;;3950:18:9;3927:4;3950:18;;;:8;:18;;;;;;;;;3871:104::o;3000:86::-;3068:11;;3000:86;:::o;2631:91::-;1924:20:12;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:12;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1916:55:12;;;;;;;;;;;;;;;2696:19:9;2706:8;2696:9;:19::i;3519:306:12:-;1924:20;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:12;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1916:55:12;;;;;;;;;;;;;;;3640:15;;;;;;;3632:57;;;;;;;-1:-1:-1;;;;;3632:57:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;3760:1;3743:19;;-1:-1:-1;;3743:19:12;;;3778:40;;;;;;;;;;;;;;;;;;;;;;;;;3519:306::o;3908:77::-;3946:7;3972:6;-1:-1:-1;;;;;3972:6:12;3908:77;:::o;6075:122:9:-;1924:20:12;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:12;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1916:55:12;;;;;;;;;;;;;;;6162:28:9;6169:3;6174:6;6182:7;6162:6;:28::i;:::-;6075:122;;;:::o;3224:101::-;2263:19;2271:10;2263:7;:19::i;:::-;2255:54;;;;;;;-1:-1:-1;;;;;2255:54:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;3294:24;3309:8;3294:14;:24::i;2231:801:12:-;1924:20;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:12;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1916:55:12;;;;;;;;;;;;;;;2388:15;;;;;;;2380:57;;;;;;;-1:-1:-1;;;;;2380:57:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2518:22:12;;;;2510:70;;;;;-1:-1:-1;;;;;2510:70:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2665:15;:31;;-1:-1:-1;;2665:31:12;;;;;;;;;;;;;;;2775:75;;2814:25;;;-1:-1:-1;;;;;2814:25:12;;;;;;;;;;;;;;;2775:75;2931:6;;2910:38;;;-1:-1:-1;;;;;2931:6:12;;;2910:38;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3008:6:12;:17;;-1:-1:-1;;3008:17:12;-1:-1:-1;;;;;3008:17:12;;;;;;;;;;2231:801::o;4087:114:9:-;-1:-1:-1;;;;;4171:23:9;4148:4;4171:23;;;:13;:23;;;;;;;;;4087:114::o;3469:107::-;2263:19;2271:10;2263:7;:19::i;:::-;2255:54;;;;;;;-1:-1:-1;;;;;2255:54:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;3542:27;3560:8;3542:17;:27::i;4091:107:12:-;4150:4;4185:6;-1:-1:-1;;;;;4185:6:12;;;4173:18;;;;4091:107::o;4828:236:9:-;-1:-1:-1;;;;;4894:18:9;;;;;;:8;:18;;;;;;;;4886:63;;;;;;;-1:-1:-1;;;;;4886:63:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4959:18:9;;4980:5;4959:18;;;:8;:18;;;;;;;;;:26;;-1:-1:-1;;4959:26:9;;;4995:11;:13;;-1:-1:-1;;4995:13:9;;;5023:34;;5036:10;5023:34;;;;;;;;;;;;;;;;;;;;;4828:236;:::o;4269:482::-;-1:-1:-1;;;;;4333:18:9;;;;;;:8;:18;;;;;;;;4332:19;4324:68;;;;;-1:-1:-1;;;;;4324:68:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4411:23:9;;;;;;:13;:23;;;;;;;;4410:24;4402:77;;;;;-1:-1:-1;;;;;4402:77:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4498:18;4507:8;4498;:18::i;:::-;4497:19;4489:69;;;;;-1:-1:-1;;;;;4489:69:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4576:22:9;;;;4568:71;;;;;-1:-1:-1;;;;;4568:71:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4649:18:9;;;;;;4670:4;4649:18;;;;;;;;;:25;;-1:-1:-1;;4649:25:9;;;;;4684:11;:13;;;;;;;;4712:32;;4723:10;4712:32;;;;;;;;;;;;;;;;;;;;;4269:482;:::o;1350:362:7:-;-1:-1:-1;;;;;1476:20:7;;;1472:189;;;1512:21;;-1:-1:-1;;;;;1512:12:7;;;:21;;;;;1525:7;;1512:21;;;;1525:7;1512:12;:21;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1512:21:7;1472:189;;;1578:6;-1:-1:-1;;;;;1572:22:7;;1595:3;1600:7;1572:36;;;;;;;;;;;;;-1:-1:-1;;;;;1572:36:7;-1:-1:-1;;;;;1572:36:7;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1572:36:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1572:36:7;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1572:36:7;1564:86;;;;;;;-1:-1:-1;;;;;1564:86:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1676:29;;;-1:-1:-1;;;;;1676:29:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;1350:362;;;:::o;5137:502:9:-;-1:-1:-1;;;;;5206:18:9;;;;;;:8;:18;;;;;;;;5205:19;5197:68;;;;;-1:-1:-1;;;;;5197:68:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5284:23:9;;;;;;:13;:23;;;;;;;;5283:24;5275:77;;;;;-1:-1:-1;;;;;5275:77:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5371:18;5380:8;5371;:18::i;:::-;5370:19;5362:69;;;;;-1:-1:-1;;;;;5362:69:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5449:22:9;;;;5441:71;;;;;-1:-1:-1;;;;;5441:71:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5522:23:9;;;;;;:13;:23;;;;;;;;;:30;;-1:-1:-1;;5522:30:9;5548:4;5522:30;;;;;;5562:16;:18;;;;;;;5595:37;;5611:10;5595:37;;;;;;;;;;;;;;;;;;;;;5137:502;:::o;5721:265::-;-1:-1:-1;;;;;5792:23:9;;;;;;:13;:23;;;;;;;;5784:72;;;;;;;-1:-1:-1;;;;;5784:72:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5866:23:9;;5892:5;5866:23;;;:13;:23;;;;;;;;;:31;;-1:-1:-1;;5866:31:9;;;5907:16;:18;;-1:-1:-1;;5907:18:9;;;5940:39;;5958:10;5940:39;;;;;;;;;;;;;;;;;;;;;5721:265;:::o"},"internals/controller.sol:IController":{"bin":"","bin-runtime":"","srcmap":"","srcmap-runtime":""},"internals/date.sol:Date":{"bin":"6080604052348015600f57600080fd5b50603580601d6000396000f3006080604052600080fd00a165627a7a72305820bcaee84bedef42af3422d291252804450534500ae191f95d2d1ef5e8632505350029","bin-runtime":"6080604052600080fd00a165627a7a72305820bcaee84bedef42af3422d291252804450534500ae191f95d2d1ef5e8632505350029","srcmap":"927:1780:10:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;927:1780:10;;;;;;;","srcmap-runtime":"927:1780:10:-;;;;;"},"internals/ensResolvable.sol:ENSResolvable":{"bin":"","bin-runtime":"","srcmap":"","srcmap-runtime":""},"internals/ownable.sol:Ownable":{"bin":"","bin-runtime":"","srcmap":"","srcmap-runtime":""},"internals/parseIntScientific.sol:ParseIntScientific":{"bin":"6080604052348015600f57600080fd5b50603580601d6000396000f3006080604052600080fd00a165627a7a723058208c37e6953e2122dc56dabf6b83172b69a9ffe4f23efe16822418455f581c7a2d0029","bin-runtime":"6080604052600080fd00a165627a7a723058208c37e6953e2122dc56dabf6b83172b69a9ffe4f23efe16822418455f581c7a2d0029","srcmap":"952:7409:13:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;952:7409:13;;;;;;;","srcmap-runtime":"952:7409:13:-;;;;;"},"internals/tokenWhitelist.sol:ITokenWhitelist":{"bin":"","bin-runtime":"","srcmap":"","srcmap-runtime":""},"internals/tokenWhitelist.sol:TokenWhitelist":{"bin":"608060405234801561001057600080fd5b5060405160c080611ab283398101604090815281516020830151918301516060840151608085015160a09095015160018054600160a060020a03808716600160a060020a03199283161792839055600080548316938216939093179092556002859055600380548915157401000000000000000000000000000000000000000090810260a060020a60ff0219958816929094169190911793909316919091179081905594969394929392849184910460ff1615156101055760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b6040805160008152600160a060020a038416602082015281517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea5929181900390910190a15050600794909455505060068054600160a060020a031916600160a060020a03909316929092179091555061192d9050806101856000396000f3006080604052600436106100c15763ffffffff60e060020a6000350416631f69565f81146100c65780632121dc751461019157806334c73edc146101ba5780633efec5e91461020f578063443dd2a4146102245780636c3824ef14610289578063715018a6146102a95780637d73b231146102be57806380cc0dda146102ef5780638da5cb5b14610316578063996cba681461032b578063b242e53414610355578063d545782e1461037b578063e2b4ce97146103a2578063e9cbd822146103b7575b600080fd5b3480156100d257600080fd5b506100e7600160a060020a03600435166103cc565b6040805160208082018990529181018790528515156060820152841515608082015283151560a082015260c0810183905260e08082528951908201528851909182916101008301918b019080838360005b83811015610150578181015183820152602001610138565b50505050905090810190601f16801561017d5780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b34801561019d57600080fd5b506101a66104c8565b604080519115158252519081900360200190f35b3480156101c657600080fd5b5061020d602460048035828101929082013591813580830192908201359160443580830192908201359160643580830192908201359160843591820191013560a4356104ea565b005b34801561021b57600080fd5b506100e7610981565b34801561023057600080fd5b50610239610a7d565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561027557818101518382015260200161025d565b505050509050019250505060405180910390f35b34801561029557600080fd5b5061020d6004803560248101910135610adf565b3480156102b557600080fd5b5061020d610d7e565b3480156102ca57600080fd5b506102d3610eab565b60408051600160a060020a039092168252519081900360200190f35b3480156102fb57600080fd5b50610304610eba565b60408051918252519081900360200190f35b34801561032257600080fd5b506102d3610ec0565b34801561033757600080fd5b5061020d600160a060020a0360043581169060243516604435610ecf565b34801561036157600080fd5b5061020d600160a060020a03600435166024351515610f3e565b34801561038757600080fd5b5061020d600160a060020a036004351660243560443561118f565b3480156103ae57600080fd5b506103046112f1565b3480156103c357600080fd5b506102d36112f7565b600160a060020a0381166000908152600460208181526040808420600180820154600280840154600385015497850154855487516101009682161587026000190190911693909304601f81018990048902840189019097528683526060999889988998899889988998919788979296929560ff80821696938204811695620100009092041693928991908301828280156104a75780601f1061047c576101008083540402835291602001916104a7565b820191906000526020600020905b81548152906001019060200180831161048a57829003601f168201915b50505050509650975097509750975097509750975050919395979092949650565b60035474010000000000000000000000000000000000000000900460ff165b90565b600060606104f733611306565b151561054d576040805160e560020a62461bcd02815260206004820152601a60248201527f73656e646572206973206e6f74206120636f6e74726f6c6c6572000000000000604482015290519081900360640190fd5b8b8a14801561055b57508b88145b801561056657508b86145b801561057157508b86145b15156105c7576040805160e560020a62461bcd02815260206004820152601e60248201527f706172616d65746572206c656e6774687320646f206e6f74206d617463680000604482015290519081900360640190fd5b600091505b8b82101561097257600460008e8e858181106105e457fe5b60209081029290920135600160a060020a03168352508101919091526040016000206003015460ff1615610662576040805160e560020a62461bcd02815260206004820152601760248201527f746f6b656e20616c726561647920617661696c61626c65000000000000000000604482015290519081900360640190fd5b6106886106838c8c8581811061067457fe5b6020029190910135905061139f565b6113cb565b905060e0604051908101604052808281526020018a8a8581811015156106aa57fe5b9050602002013581526020016000815260200160011515815260200188888581811015156106d457fe5b602090810292909201351515835250018686858181106106f057fe5b60209081029290920135151583525001849052600460008f8f8681811061071357fe5b90506020020135600160a060020a0316600160a060020a0316600160a060020a03168152602001908152602001600020600082015181600001908051906020019061075f9291906117e7565b5060208201516001820155604082015160028201556060820151600382018054608085015160a08601511515620100000262ff0000199115156101000261ff001995151560ff199094169390931794909416919091171691909117905560c09091015160049091015560058d8d848181106107d657fe5b8354600181018555600094855260209485902001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0395909202939093013593909316929092179055507f1802e89da3f6ef84e024e37454c226b1e13bf846ce71cd2a1d24faef9cbf779b338e8e8581811061084d57fe5b90506020020135600160a060020a0316838c8c87818110151561086c57fe5b905060200201358b8b88818110151561088157fe5b9050602002013515158a8a89818110151561089857fe5b9050602002013515156040518087600160a060020a0316600160a060020a0316815260200186600160a060020a0316600160a060020a03168152602001806020018581526020018415151515815260200183151515158152602001828103825286818151815260200191508051906020019080838360005b83811015610928578181015183820152602001610910565b50505050905090810190601f1680156109555780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390a16001909101906105cc565b50505050505050505050505050565b600654600160a060020a03166000908152600460208181526040808420600180820154600280840154600385015497850154855487516101009682161587026000190190911693909304601f81018990048902840189019097528683526060999889988998899889988998919788979296929560ff8082169693820481169562010000909204169392899190830182828015610a5e5780601f10610a3357610100808354040283529160200191610a5e565b820191906000526020600020905b815481529060010190602001808311610a4157829003601f168201915b5050505050965097509750975097509750975097505090919293949596565b60606005805480602002602001604051908101604052809291908181526020018280548015610ad557602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610ab7575b5050505050905090565b6000806000610aed33611306565b1515610b43576040805160e560020a62461bcd02815260206004820152601a60248201527f73656e646572206973206e6f74206120636f6e74726f6c6c6572000000000000604482015290519081900360640190fd5b600092505b83831015610d775760046000868686818110610b6057fe5b60209081029290920135600160a060020a03168352508101919091526040016000206003015460ff161515610bdf576040805160e560020a62461bcd02815260206004820152601660248201527f746f6b656e206973206e6f7420617661696c61626c6500000000000000000000604482015290519081900360640190fd5b848484818110610beb57fe5b60209081029290920135600160a060020a03166000818152600490935260408320909450919050610c1c8282611865565b506000600182018190556002820181905560038201805462ffffff19169055600490910181905590505b600554610c5a90600163ffffffff61142516565b811015610d155781600160a060020a0316600582815481101515610c7a57fe5b600091825260209091200154600160a060020a03161415610d0d5760058054610caa90600163ffffffff61142516565b81548110610cb457fe5b60009182526020909120015460058054600160a060020a039092169183908110610cda57fe5b9060005260206000200160006101000a815481600160a060020a030219169083600160a060020a03160217905550610d15565b600101610c46565b6005805490610d289060001983016118ac565b5060408051338152600160a060020a038416602082015281517f703f7e3f084d5b8dcc12fddcfd9a70d65b6b21ec7659e4608dbaf4419ede3ad0929181900390910190a1600190920191610b48565b5050505050565b610d873361143c565b1515610ddd576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e206f776e657200000000000000000000604482015290519081900360640190fd5b60035474010000000000000000000000000000000000000000900460ff161515610e51576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b6003805473ffffffffffffffffffffffffffffffffffffffff19169055604080516000808252602082015281517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea5929181900390910190a1565b600154600160a060020a031690565b60075490565b600354600160a060020a031690565b610ed83361143c565b1515610f2e576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e206f776e657200000000000000000000604482015290519081900360640190fd5b610f39838383611450565b505050565b610f473361143c565b1515610f9d576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e206f776e657200000000000000000000604482015290519081900360640190fd5b60035474010000000000000000000000000000000000000000900460ff161515611011576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b600160a060020a0382161515611097576040805160e560020a62461bcd02815260206004820152602360248201527f6f776e65722063616e6e6f742062652073657420746f207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6003805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000831515908102919091179091556111175760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b60035460408051600160a060020a039283168152918416602083015280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1506003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600061119c6007546115f6565b90506111a733611306565b806111ba575033600160a060020a038216145b1515611210576040805160e560020a62461bcd02815260206004820152601b60248201527f656974686572206f7261636c65206f7220636f6e74726f6c6c65720000000000604482015290519081900360640190fd5b600160a060020a03841660009081526004602052604090206003015460ff161515611285576040805160e560020a62461bcd02815260206004820152601660248201527f746f6b656e206973206e6f7420617661696c61626c6500000000000000000000604482015290519081900360640190fd5b600160a060020a03841660008181526004602081815260409283902060028101889055909101859055815133815290810192909252818101859052517fdb3a4cfb4cd8ac94343ff7440cee8d05ade309056203f0e53ca49b6db8197c7d9181900360600190a150505050565b60025490565b600654600160a060020a031690565b60006113136002546115f6565b600160a060020a031663b429afeb836040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b15801561136d57600080fd5b505af1158015611381573d6000803e3d6000fd5b505050506040513d602081101561139757600080fd5b505192915050565b6113a76118d0565b60405160208101604052828152806020830152506113c4826116ed565b8152919050565b606080600083600001516040519080825280601f01601f191660200182016040528015611402578160200160208202803883390190505b50915060208201905061141e81856020015186600001516117a3565b5092915050565b6000808383111561143557600080fd5b5050900390565b600354600160a060020a0390811691161490565b600160a060020a038216151561149c57604051600160a060020a0384169082156108fc029083906000818181858888f19350505050158015611496573d6000803e3d6000fd5b506115a7565b81600160a060020a031663a9059cbb84836040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b1580156114ff57600080fd5b505af1158015611513573d6000803e3d6000fd5b505050506040513d602081101561152957600080fd5b505115156115a7576040805160e560020a62461bcd02815260206004820152602560248201527f455243323020746f6b656e207472616e736665722077617320756e737563636560448201527f737366756c000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60408051600160a060020a0380861682528416602082015280820183905290517ff7a40077ff7a04c7e61f6f26fb13774259ddf1b6bce9ecf26a8276cdd39926839181900360600190a1505050565b60008054604080517f0178b8bf000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691630178b8bf9160248082019260209290919082900301818787803b15801561165d57600080fd5b505af1158015611671573d6000803e3d6000fd5b505050506040513d602081101561168757600080fd5b5051604080517f3b3b57de000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691633b3b57de916024808201926020929091908290030181600087803b15801561136d57600080fd5b600080821515611700576000915061179d565b6fffffffffffffffffffffffffffffffff8316151561173357601001700100000000000000000000000000000000830492505b67ffffffffffffffff831615156117565760080168010000000000000000830492505b63ffffffff8316151561177157600401640100000000830492505b61ffff831615156117885760020162010000830492505b60ff83161515611796576001015b8060200391505b50919050565b60005b602082106117c8578251845260209384019390920191601f19909101906117a6565b50905182516020929092036101000a6000190180199091169116179052565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061182857805160ff1916838001178555611855565b82800160010185558215611855579182015b8281111561185557825182559160200191906001019061183a565b506118619291506118e7565b5090565b50805460018160011615610100020316600290046000825580601f1061188b57506118a9565b601f0160209004906000526020600020908101906118a991906118e7565b50565b815481835581811115610f3957600083815260209020610f399181019083016118e7565b604080518082019091526000808252602082015290565b6104e791905b8082111561186157600081556001016118ed5600a165627a7a723058208c4be71ac085882be552fd06a3c105b468b8d2bbdf25c86681a98320fb418c500029","bin-runtime":"6080604052600436106100c15763ffffffff60e060020a6000350416631f69565f81146100c65780632121dc751461019157806334c73edc146101ba5780633efec5e91461020f578063443dd2a4146102245780636c3824ef14610289578063715018a6146102a95780637d73b231146102be57806380cc0dda146102ef5780638da5cb5b14610316578063996cba681461032b578063b242e53414610355578063d545782e1461037b578063e2b4ce97146103a2578063e9cbd822146103b7575b600080fd5b3480156100d257600080fd5b506100e7600160a060020a03600435166103cc565b6040805160208082018990529181018790528515156060820152841515608082015283151560a082015260c0810183905260e08082528951908201528851909182916101008301918b019080838360005b83811015610150578181015183820152602001610138565b50505050905090810190601f16801561017d5780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b34801561019d57600080fd5b506101a66104c8565b604080519115158252519081900360200190f35b3480156101c657600080fd5b5061020d602460048035828101929082013591813580830192908201359160443580830192908201359160643580830192908201359160843591820191013560a4356104ea565b005b34801561021b57600080fd5b506100e7610981565b34801561023057600080fd5b50610239610a7d565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561027557818101518382015260200161025d565b505050509050019250505060405180910390f35b34801561029557600080fd5b5061020d6004803560248101910135610adf565b3480156102b557600080fd5b5061020d610d7e565b3480156102ca57600080fd5b506102d3610eab565b60408051600160a060020a039092168252519081900360200190f35b3480156102fb57600080fd5b50610304610eba565b60408051918252519081900360200190f35b34801561032257600080fd5b506102d3610ec0565b34801561033757600080fd5b5061020d600160a060020a0360043581169060243516604435610ecf565b34801561036157600080fd5b5061020d600160a060020a03600435166024351515610f3e565b34801561038757600080fd5b5061020d600160a060020a036004351660243560443561118f565b3480156103ae57600080fd5b506103046112f1565b3480156103c357600080fd5b506102d36112f7565b600160a060020a0381166000908152600460208181526040808420600180820154600280840154600385015497850154855487516101009682161587026000190190911693909304601f81018990048902840189019097528683526060999889988998899889988998919788979296929560ff80821696938204811695620100009092041693928991908301828280156104a75780601f1061047c576101008083540402835291602001916104a7565b820191906000526020600020905b81548152906001019060200180831161048a57829003601f168201915b50505050509650975097509750975097509750975050919395979092949650565b60035474010000000000000000000000000000000000000000900460ff165b90565b600060606104f733611306565b151561054d576040805160e560020a62461bcd02815260206004820152601a60248201527f73656e646572206973206e6f74206120636f6e74726f6c6c6572000000000000604482015290519081900360640190fd5b8b8a14801561055b57508b88145b801561056657508b86145b801561057157508b86145b15156105c7576040805160e560020a62461bcd02815260206004820152601e60248201527f706172616d65746572206c656e6774687320646f206e6f74206d617463680000604482015290519081900360640190fd5b600091505b8b82101561097257600460008e8e858181106105e457fe5b60209081029290920135600160a060020a03168352508101919091526040016000206003015460ff1615610662576040805160e560020a62461bcd02815260206004820152601760248201527f746f6b656e20616c726561647920617661696c61626c65000000000000000000604482015290519081900360640190fd5b6106886106838c8c8581811061067457fe5b6020029190910135905061139f565b6113cb565b905060e0604051908101604052808281526020018a8a8581811015156106aa57fe5b9050602002013581526020016000815260200160011515815260200188888581811015156106d457fe5b602090810292909201351515835250018686858181106106f057fe5b60209081029290920135151583525001849052600460008f8f8681811061071357fe5b90506020020135600160a060020a0316600160a060020a0316600160a060020a03168152602001908152602001600020600082015181600001908051906020019061075f9291906117e7565b5060208201516001820155604082015160028201556060820151600382018054608085015160a08601511515620100000262ff0000199115156101000261ff001995151560ff199094169390931794909416919091171691909117905560c09091015160049091015560058d8d848181106107d657fe5b8354600181018555600094855260209485902001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0395909202939093013593909316929092179055507f1802e89da3f6ef84e024e37454c226b1e13bf846ce71cd2a1d24faef9cbf779b338e8e8581811061084d57fe5b90506020020135600160a060020a0316838c8c87818110151561086c57fe5b905060200201358b8b88818110151561088157fe5b9050602002013515158a8a89818110151561089857fe5b9050602002013515156040518087600160a060020a0316600160a060020a0316815260200186600160a060020a0316600160a060020a03168152602001806020018581526020018415151515815260200183151515158152602001828103825286818151815260200191508051906020019080838360005b83811015610928578181015183820152602001610910565b50505050905090810190601f1680156109555780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390a16001909101906105cc565b50505050505050505050505050565b600654600160a060020a03166000908152600460208181526040808420600180820154600280840154600385015497850154855487516101009682161587026000190190911693909304601f81018990048902840189019097528683526060999889988998899889988998919788979296929560ff8082169693820481169562010000909204169392899190830182828015610a5e5780601f10610a3357610100808354040283529160200191610a5e565b820191906000526020600020905b815481529060010190602001808311610a4157829003601f168201915b5050505050965097509750975097509750975097505090919293949596565b60606005805480602002602001604051908101604052809291908181526020018280548015610ad557602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610ab7575b5050505050905090565b6000806000610aed33611306565b1515610b43576040805160e560020a62461bcd02815260206004820152601a60248201527f73656e646572206973206e6f74206120636f6e74726f6c6c6572000000000000604482015290519081900360640190fd5b600092505b83831015610d775760046000868686818110610b6057fe5b60209081029290920135600160a060020a03168352508101919091526040016000206003015460ff161515610bdf576040805160e560020a62461bcd02815260206004820152601660248201527f746f6b656e206973206e6f7420617661696c61626c6500000000000000000000604482015290519081900360640190fd5b848484818110610beb57fe5b60209081029290920135600160a060020a03166000818152600490935260408320909450919050610c1c8282611865565b506000600182018190556002820181905560038201805462ffffff19169055600490910181905590505b600554610c5a90600163ffffffff61142516565b811015610d155781600160a060020a0316600582815481101515610c7a57fe5b600091825260209091200154600160a060020a03161415610d0d5760058054610caa90600163ffffffff61142516565b81548110610cb457fe5b60009182526020909120015460058054600160a060020a039092169183908110610cda57fe5b9060005260206000200160006101000a815481600160a060020a030219169083600160a060020a03160217905550610d15565b600101610c46565b6005805490610d289060001983016118ac565b5060408051338152600160a060020a038416602082015281517f703f7e3f084d5b8dcc12fddcfd9a70d65b6b21ec7659e4608dbaf4419ede3ad0929181900390910190a1600190920191610b48565b5050505050565b610d873361143c565b1515610ddd576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e206f776e657200000000000000000000604482015290519081900360640190fd5b60035474010000000000000000000000000000000000000000900460ff161515610e51576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b6003805473ffffffffffffffffffffffffffffffffffffffff19169055604080516000808252602082015281517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea5929181900390910190a1565b600154600160a060020a031690565b60075490565b600354600160a060020a031690565b610ed83361143c565b1515610f2e576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e206f776e657200000000000000000000604482015290519081900360640190fd5b610f39838383611450565b505050565b610f473361143c565b1515610f9d576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e206f776e657200000000000000000000604482015290519081900360640190fd5b60035474010000000000000000000000000000000000000000900460ff161515611011576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b600160a060020a0382161515611097576040805160e560020a62461bcd02815260206004820152602360248201527f6f776e65722063616e6e6f742062652073657420746f207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6003805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000831515908102919091179091556111175760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b60035460408051600160a060020a039283168152918416602083015280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1506003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600061119c6007546115f6565b90506111a733611306565b806111ba575033600160a060020a038216145b1515611210576040805160e560020a62461bcd02815260206004820152601b60248201527f656974686572206f7261636c65206f7220636f6e74726f6c6c65720000000000604482015290519081900360640190fd5b600160a060020a03841660009081526004602052604090206003015460ff161515611285576040805160e560020a62461bcd02815260206004820152601660248201527f746f6b656e206973206e6f7420617661696c61626c6500000000000000000000604482015290519081900360640190fd5b600160a060020a03841660008181526004602081815260409283902060028101889055909101859055815133815290810192909252818101859052517fdb3a4cfb4cd8ac94343ff7440cee8d05ade309056203f0e53ca49b6db8197c7d9181900360600190a150505050565b60025490565b600654600160a060020a031690565b60006113136002546115f6565b600160a060020a031663b429afeb836040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b15801561136d57600080fd5b505af1158015611381573d6000803e3d6000fd5b505050506040513d602081101561139757600080fd5b505192915050565b6113a76118d0565b60405160208101604052828152806020830152506113c4826116ed565b8152919050565b606080600083600001516040519080825280601f01601f191660200182016040528015611402578160200160208202803883390190505b50915060208201905061141e81856020015186600001516117a3565b5092915050565b6000808383111561143557600080fd5b5050900390565b600354600160a060020a0390811691161490565b600160a060020a038216151561149c57604051600160a060020a0384169082156108fc029083906000818181858888f19350505050158015611496573d6000803e3d6000fd5b506115a7565b81600160a060020a031663a9059cbb84836040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b1580156114ff57600080fd5b505af1158015611513573d6000803e3d6000fd5b505050506040513d602081101561152957600080fd5b505115156115a7576040805160e560020a62461bcd02815260206004820152602560248201527f455243323020746f6b656e207472616e736665722077617320756e737563636560448201527f737366756c000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60408051600160a060020a0380861682528416602082015280820183905290517ff7a40077ff7a04c7e61f6f26fb13774259ddf1b6bce9ecf26a8276cdd39926839181900360600190a1505050565b60008054604080517f0178b8bf000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691630178b8bf9160248082019260209290919082900301818787803b15801561165d57600080fd5b505af1158015611671573d6000803e3d6000fd5b505050506040513d602081101561168757600080fd5b5051604080517f3b3b57de000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691633b3b57de916024808201926020929091908290030181600087803b15801561136d57600080fd5b600080821515611700576000915061179d565b6fffffffffffffffffffffffffffffffff8316151561173357601001700100000000000000000000000000000000830492505b67ffffffffffffffff831615156117565760080168010000000000000000830492505b63ffffffff8316151561177157600401640100000000830492505b61ffff831615156117885760020162010000830492505b60ff83161515611796576001015b8060200391505b50919050565b60005b602082106117c8578251845260209384019390920191601f19909101906117a6565b50905182516020929092036101000a6000190180199091169116179052565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061182857805160ff1916838001178555611855565b82800160010185558215611855579182015b8281111561185557825182559160200191906001019061183a565b506118619291506118e7565b5090565b50805460018160011615610100020316600290046000825580601f1061188b57506118a9565b601f0160209004906000526020600020908101906118a991906118e7565b50565b815481835581811115610f3957600083815260209020610f399181019083016118e7565b604080518082019091526000808252602082015290565b6104e791905b8082111561186157600081556001016118ed5600a165627a7a723058208c4be71ac085882be552fd06a3c105b468b8d2bbdf25c86681a98320fb418c500029","srcmap":"1619:8461:14:-;;;3201:336;8:9:-1;5:2;;;30:1;27;20:12;5:2;3201:336:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1312:12:11;:23;;-1:-1:-1;;;;;1312:23:11;;;-1:-1:-1;;;;;;1312:23:11;;;;;;;;:12;1345:24;;;;1356:12;;;1345:24;;;;;;;1334:15:8;:38;;;1527:6:12;:18;;1555:32;;;;;;;-1:-1:-1;;;;;;1527:18:12;;;;;;;;;;;1555:32;;;;;;;;;;;;3201:336:14;;;;;;;;;;;1671:15:12;1555:32;1671:15;1670:16;1666:78;;;1707:26;;;-1:-1:-1;;;;;1707:26:12;;;;;;;;;;;;;;;1666:78;1758:43;;;1787:1;1758:43;;-1:-1:-1;;;;;1758:43:12;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3457:11:14;:30;;;;-1:-1:-1;;3497:11:14;:33;;-1:-1:-1;;;;;;3497:33:14;-1:-1:-1;;;;;3497:33:14;;;;;;;;;;-1:-1:-1;1619:8461:14;;-1:-1:-1;1619:8461:14;;-1:-1:-1;1619:8461:14;;","srcmap-runtime":"1619:8461:14:-;;;;;;;;;-1:-1:-1;;;1619:8461:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8241:325;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8241:325:14;-1:-1:-1;;;;;8241:325:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-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;8241:325:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3149:94:12;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3149:94:12;;;;;;;;;;;;;;;;;;;;;;4101:1439:14;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4101:1439:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9058:369;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9058:369:14;;;;9550:105;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9550:105:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;9550:105:14;;;;;;;;;;;;;;;;;5667:1031;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5667:1031:14;;;;;;;;;;;;3519:306:12;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3519:306:12;;;;1468:91:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1468:91:11;;;;;;;;-1:-1:-1;;;;;1468:91:11;;;;;;;;;;;;;;9989:89:14;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9989:89:14;;;;;;;;;;;;;;;;;;;;3908:77:12;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3908:77:12;;;;7578:122:14;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7578:122:14;-1:-1:-1;;;;;7578:122:14;;;;;;;;;;;;2231:801:12;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2231:801:12;-1:-1:-1;;;;;2231:801:12;;;;;;;;;6975:514:14;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6975:514:14;-1:-1:-1;;;;;6975:514:14;;;;;;;;;1629:97:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1629:97:8;;;;9786:89:14;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9786:89:14;;;;8241:325;-1:-1:-1;;;;;8387:17:14;;8306:7;8387:17;;;:13;:17;;;;;;;;8440:19;;;;;8461:14;;;;;8477:19;;;;8538:20;;;;8414:145;;;;8477:19;8414:145;;;;;;-1:-1:-1;;8414:145:14;;;;;;;;;;;;;;;;;;;;;;;;;;8298:6;;8306:7;;;;;;;;;;;8387:17;;;;8440:19;;8461:14;;8477:19;;;;;8498:18;;;;;;8518;;;;;;8538:20;8387:17;;8414:145;;;8387:17;8414:145;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8241:325;;;;;;;;;;:::o;3149:94:12:-;3221:15;;;;;;;3149:94;;:::o;4101:1439:14:-;4592:6;4838:20;1489:25:8;1503:10;1489:13;:25::i;:::-;1481:64;;;;;;;-1:-1:-1;;;;;1481:64:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;4335:33:14;;;:72;;;;-1:-1:-1;4372:35:14;;;4335:72;:110;;;;-1:-1:-1;4411:34:14;;;4335:110;:148;;;;-1:-1:-1;4449:34:14;;;4335:148;4327:191;;;;;;;-1:-1:-1;;;;;4327:191:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;4601:1;4592:10;;4587:947;4604:18;;;4587:947;;;4715:13;:25;4729:7;;4737:1;4729:10;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4729:10:14;4715:25;;-1:-1:-1;4715:25:14;;;;;;;;-1:-1:-1;4715:25:14;:35;;;;;4714:36;4706:72;;;;;-1:-1:-1;;;;;4706:72:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;4861:35;:24;:8;;4870:1;4861:11;;;;;;;;;;;;;;;-1:-1:-1;4861:22:14;:24::i;:::-;:33;:35::i;:::-;4838:58;;4986:284;;;;;;;;;5019:6;4986:284;;;;5055:10;;5066:1;5055:13;;;;;;;;;;;;;;;4986:284;;;;5093:1;4986:284;;;;5124:4;4986:284;;;;;;5157:9;;5167:1;5157:12;;;;;;;;;;;;;;;;;;;;4986:284;;-1:-1:-1;4986:284:14;5197:9;;5207:1;5197:12;;;;;;;;;;;;;;;;;;4986:284;;-1:-1:-1;4986:284:14;;;;4958:13;-1:-1:-1;4972:7:14;;4980:1;4972:10;;;;;;;;;;;;;-1:-1:-1;;;;;4972:10:14;-1:-1:-1;;;;;4958:25:14;-1:-1:-1;;;;;4958:25:14;;;;;;;;;;;;:312;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;4958:312:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4958:312:14;;;;;-1:-1:-1;;4958:312:14;;;-1:-1:-1;;4958:312:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5342:18;5366:7;;5374:1;5366:10;;;;;;;27::-1;;39:1;23:18;;45:23;;-1:-1;5342:35:14;;;5366:10;5342:35;;;;;;;-1:-1:-1;;5342:35:14;-1:-1:-1;;;;;5366:10:14;;;;;;;;;;;;;5342:35;;;;;;-1:-1:-1;5438:85:14;5449:10;5461:7;;5469:1;5461:10;;;;;;;;;;;;;-1:-1:-1;;;;;5461:10:14;5473:6;5481:10;;5492:1;5481:13;;;;;;;;;;;;;;;5496:9;;5506:1;5496:12;;;;;;;;;;;;;;;;;5510:9;;5520:1;5510:12;;;;;;;;;;;;;;;;;5438:85;;;;-1:-1:-1;;;;;5438:85:14;-1:-1:-1;;;;;5438:85:14;;;;;;-1:-1:-1;;;;;5438:85:14;-1:-1:-1;;;;;5438:85:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;5438:85:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4624:3;;;;;4587:947;;;4101:1439;;;;;;;;;;;;;:::o;9058:369::-;9218:11;;-1:-1:-1;;;;;9218:11:14;9118:7;9204:26;;;:13;:26;;;;;;;;9218:11;9271:24;;;;9297:19;;;;;9318:24;;;;9394:25;;;;9240:180;;;;9218:11;9240:180;;;;;;-1:-1:-1;;9240:180:14;;;;;;;;;;;;;;;;;;;;;;;;;;9110:6;;9118:7;;;;;;;;;;;9204:26;;;;9271:24;;9297:19;;9318:24;;;;;9344:23;;;;;;9369;;;;;;9394:25;9204:26;;9240:180;;;9204:26;9240:180;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9058:369;;;;;;;;:::o;9550:105::-;9602:9;9630:18;9623:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9623:25:14;;;;;;;;;;;;;;;;;;;;;;;9550:105;:::o;5667:1031::-;5850:6;6094:13;6283:6;1489:25:8;1503:10;1489:13;:25::i;:::-;1481:64;;;;;;;-1:-1:-1;;;;;1481:64:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;5859:1:14;5850:10;;5845:847;5862:18;;;5845:847;;;5978:13;:25;5992:7;;6000:1;5992:10;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5992:10:14;5978:25;;-1:-1:-1;5978:25:14;;;;;;;;-1:-1:-1;5978:25:14;:35;;;;;5970:70;;;;;;;-1:-1:-1;;;;;5970:70:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;6110:7;;6118:1;6110:10;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6110:10:14;6181:20;;;;:13;:20;;;;;;6110:10;;-1:-1:-1;6181:20:14;;-1:-1:-1;6174:27:14;6181:20;;6174:27;:::i;:::-;-1:-1:-1;6174:27:14;;;;;;;;;;;;;;;;;;-1:-1:-1;;6174:27:14;;;;;;;;;;;-1:-1:-1;6278:272:14;6299:18;:25;:32;;6329:1;6299:32;:29;:32;:::i;:::-;6295:1;:36;6278:272;;;6385:5;-1:-1:-1;;;;;6360:30:14;:18;6379:1;6360:21;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6360:21:14;:30;6356:180;;;6438:18;6457:25;;:32;;6487:1;6457:32;:29;:32;:::i;:::-;6438:52;;;;;;;;;;;;;;;;;;6414:18;:21;;-1:-1:-1;;;;;6438:52:14;;;;6433:1;;6414:21;;;;;;;;;;;;;;:76;;;;;-1:-1:-1;;;;;6414:76:14;;;;;-1:-1:-1;;;;;6414:76:14;;;;;;6512:5;;6356:180;6333:3;;6278:272;;;6563:18;:27;;;;;-1:-1:-1;;6563:27:14;;;:::i;:::-;-1:-1:-1;6650:31:14;;;6663:10;6650:31;;-1:-1:-1;;;;;6650:31:14;;;;;;;;;;;;;;;;;;;5882:3;;;;;5845:847;;;5667:1031;;;;;:::o;3519:306:12:-;1924:20;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;3640:15;;;;;;;3632:57;;;;;;;-1:-1:-1;;;;;3632:57:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;3743:6;:19;;-1:-1:-1;;3743:19:12;;;3778:40;;;3760:1;3778:40;;;;;;;;;;;;;;;;;;;;3519:306::o;1468:91:11:-;1540:12;;-1:-1:-1;;;;;1540:12:11;1468:91;:::o;9989:89:14:-;10060:11;;9989:89;:::o;3908:77:12:-;3972:6;;-1:-1:-1;;;;;3972:6:12;3908:77;:::o;7578:122:14:-;1924:20:12;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;7665:28:14;7672:3;7677:6;7685:7;7665:6;:28::i;:::-;7578:122;;;:::o;2231:801:12:-;1924:20;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;2388:15;;;;;;;2380:57;;;;;;;-1:-1:-1;;;;;2380:57:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2518:22:12;;;;2510:70;;;;;-1:-1:-1;;;;;2510:70:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2665:15;:31;;-1:-1:-1;;2665:31:12;;;;;;;;;;;;;;;2775:75;;2814:25;;;-1:-1:-1;;;;;2814:25:12;;;;;;;;;;;;;;;2775:75;2931:6;;2910:38;;;-1:-1:-1;;;;;2931:6:12;;;2910:38;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3008:6:12;:17;;-1:-1:-1;;3008:17:12;-1:-1:-1;;;;;3008:17:12;;;;;;;;;;2231:801::o;6975:514:14:-;2597:21;2621:24;2633:11;;2621;:24::i;:::-;2597:48;;2664:25;2678:10;2664:13;:25::i;:::-;:56;;;-1:-1:-1;2693:10:14;-1:-1:-1;;;;;2693:27:14;;;2664:56;2655:97;;;;;;;-1:-1:-1;;;;;2655:97:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7138:21:14;;;;;;:13;:21;;;;;:31;;;;;7130:66;;;;;;;-1:-1:-1;;;;;7130:66:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7242:21:14;;;;;;:13;:21;;;;;;;;;:26;;;:34;;;7339:32;;;:46;;;7439:43;;7456:10;7439:43;;;;;;;;;;;;;;;;;;;;;;;;;6975:514;;;;:::o;1629:97:8:-;1704:15;;1629:97;:::o;9786:89:14:-;9857:11;;-1:-1:-1;;;;;9857:11:14;9786:89;:::o;1796:158:8:-;1860:4;1895:28;1907:15;;1895:11;:28::i;:::-;-1:-1:-1;;;;;1883:54:8;;1938:8;1883:64;;;;;-1:-1:-1;;;1883:64:8;;;;;;;-1:-1:-1;;;;;1883:64:8;-1:-1:-1;;;;;1883:64:8;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1883:64:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1883:64:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1883:64:8;;1796:158;-1:-1:-1;;1796:158:8:o;4914:370:6:-;4971:16;;:::i;:::-;5122:4;5116:11;5162:4;5157:3;5153:14;5147:4;5140:28;5193:4;5188:3;5181:17;5234:3;5227:4;5222:3;5218:14;5211:27;5091:157;5268:9;5272:4;5268:3;:9::i;:::-;5257:20;;:3;4914:370;-1:-1:-1;4914:370:6:o;5778:265::-;5838:6;5863:17;5914:11;5894:4;:9;;;5883:21;;;;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;5883:21:6;;5863:41;;5965:2;5960:3;5956:12;5946:22;;5980:36;5987:6;5995:4;:9;;;6006:4;:9;;;5980:6;:36::i;:::-;-1:-1:-1;6033:3:6;5778:265;-1:-1:-1;;5778:265:6:o;2250:131:1:-;2308:7;;2331:6;;;;2323:15;;;;;;-1:-1:-1;;2356:5:1;;;2250:131::o;4091:107:12:-;4185:6;;-1:-1:-1;;;;;4185:6:12;;;4173:18;;;;4091:107::o;1350:362:7:-;-1:-1:-1;;;;;1476:20:7;;;1472:189;;;1512:21;;-1:-1:-1;;;;;1512:12:7;;;:21;;;;;1525:7;;1512:21;;;;1525:7;1512:12;:21;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1512:21:7;1472:189;;;1578:6;-1:-1:-1;;;;;1572:22:7;;1595:3;1600:7;1572:36;;;;;-1:-1:-1;;;1572:36:7;;;;;;;-1:-1:-1;;;;;1572:36:7;-1:-1:-1;;;;;1572:36:7;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1572:36:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1572:36:7;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1572:36:7;1564:86;;;;;;;-1:-1:-1;;;;;1564:86:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1676:29;;;-1:-1:-1;;;;;1676:29:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;1350:362;;;:::o;1748:152:11:-;1811:7;1852:4;;:24;;;;;;;;;;;;;;-1:-1:-1;;;;;1852:4:11;;;;:13;;:24;;;;;;;;;;;;;;;1811:7;1852:4;:24;;;5:2:-1;;;;30:1;27;20:12;5:2;1852:24:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1852:24:11;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1852:24:11;1837:56;;;;;;;;;;;;;;-1:-1:-1;;;;;1837:45:11;;;;;;:56;;;;;1852:24;;1837:56;;;;;;;;;:45;:56;;;5:2:-1;;;;30:1;27;20:12;3840:768:6;3890:4;;3928:9;;3924:35;;;3958:1;3951:8;;;;3924:35;3980:34;3973:41;;:46;3969:164;;;4042:2;4035:9;4086:35;4078:4;4073:48;;-1:-1:-1;3969:164:6;4153:18;4146:25;;:30;4142:131;;;4199:1;4192:8;4242:19;4234:4;4229:32;;-1:-1:-1;4142:131:6;4293:10;4286:17;;:22;4282:115;;;4331:1;4324:8;4374:11;4366:4;4361:24;;-1:-1:-1;4282:115:6;4417:6;4410:13;;:18;4406:107;;;4451:1;4444:8;4494:7;4486:4;4481:20;;-1:-1:-1;4406:107:6;4533:4;4526:11;;:16;4522:55;;;4565:1;4558:8;4522:55;4598:3;4593:2;:8;4586:15;;3840:768;;;;;:::o;2686:548::-;3012:9;2806:164;2819:2;2812:9;;2806:164;;2888:10;;2875:24;;2934:2;2926:10;;;;2950:9;;;;-1:-1:-1;;2823:9:6;;;;2806:164;;;-1:-1:-1;3097:10:6;;3152:11;;3032:2;:8;;;;3024:3;:17;-1:-1:-1;;3024:21:6;3109:9;;3093:26;;;3148:22;;3196:21;3183:35;;3064:164::o;1619:8461:14:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1619:8461:14;;;-1:-1:-1;1619:8461:14;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;1619:8461:14;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;"},"internals/tokenWhitelistable.sol:TokenWhitelistable":{"bin":"","bin-runtime":"","srcmap":"","srcmap-runtime":""},"oracle.sol:Oracle":{"bin":"60806040523480156200001157600080fd5b5060405160808062005c9e83398101604081815282516020808501518386015160609687015160018054600160a060020a03808616600160a060020a031992831617928390556000805490921692169190911790556007829055600881905596860185528486527fa0f4f688350018ad1b9785991c0bde5f704b005dc79972b114dbed4a615a98379286019283527f10bfc647ebe5a320daa28771dce6a2d104f5efa2e4a85ba3760b76d46f8571ca958501959095529194919392620000da91600991620009bb565b5060028054600160a060020a031916600160a060020a0386161790556200010f6402540be4006401000000006200014d810204565b620001437ff0000000000000000000000000000000000000000000000000000000000000006401000000006200038f810204565b5050505062000a5d565b600254600160a060020a031615806200018357506002546200018190600160a060020a0316640100000000620005d6810204565b155b15620001a0576200019e6000640100000000620005da810204565b505b600260009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156200020d57600080fd5b505af115801562000222573d6000803e3d6000fd5b505050506040513d60208110156200023957600080fd5b5051600354600160a060020a039081169116146200030c57600260009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015620002be57600080fd5b505af1158015620002d3573d6000803e3d6000fd5b505050506040513d6020811015620002ea57600080fd5b505160038054600160a060020a031916600160a060020a039092169190911790555b600354604080517fca6ad1e4000000000000000000000000000000000000000000000000000000008152600481018490529051600160a060020a039092169163ca6ad1e49160248082019260009290919082900301818387803b1580156200037357600080fd5b505af115801562000388573d6000803e3d6000fd5b5050505050565b600254600160a060020a03161580620003c55750600254620003c390600160a060020a0316640100000000620005d6810204565b155b15620003e257620003e06000640100000000620005da810204565b505b600260009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156200044f57600080fd5b505af115801562000464573d6000803e3d6000fd5b505050506040513d60208110156200047b57600080fd5b5051600354600160a060020a039081169116146200054e57600260009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156200050057600080fd5b505af115801562000515573d6000803e3d6000fd5b505050506040513d60208110156200052c57600080fd5b505160038054600160a060020a031916600160a060020a039092169190911790555b600354604080517f688dcfd70000000000000000000000000000000000000000000000000000000081527fff00000000000000000000000000000000000000000000000000000000000000841660048201529051600160a060020a039092169163688dcfd79160248082019260009290919082900301818387803b1580156200037357600080fd5b3b90565b6000620005ef640100000000620005f5810204565b92915050565b60008062000620731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed640100000000620005d6810204565b11156200069e5760028054600160a060020a031916731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed17905560408051808201909152600b81527f6574685f6d61696e6e657400000000000000000000000000000000000000000060208201526200069590640100000000620009a2810204565b5060016200099f565b6000620006c873c03a2615d5efaf5f49f60b7bb6583eaec212fdf1640100000000620005d6810204565b11156200073d5760028054600160a060020a03191673c03a2615d5efaf5f49f60b7bb6583eaec212fdf117905560408051808201909152600c81527f6574685f726f707374656e33000000000000000000000000000000000000000060208201526200069590640100000000620009a2810204565b60006200076773b7a07bcf2ba2f2703b24c0691b5278999c59ac7e640100000000620005d6810204565b1115620007dc5760028054600160a060020a03191673b7a07bcf2ba2f2703b24c0691b5278999c59ac7e17905560408051808201909152600981527f6574685f6b6f76616e000000000000000000000000000000000000000000000060208201526200069590640100000000620009a2810204565b60006200080673146500cfd35b22e4a392fe0adc06de1a1368ed48640100000000620005d6810204565b11156200087b5760028054600160a060020a03191673146500cfd35b22e4a392fe0adc06de1a1368ed4817905560408051808201909152600b81527f6574685f72696e6b65627900000000000000000000000000000000000000000060208201526200069590640100000000620009a2810204565b6000620008a5736f485c8bf6fc43ea212e93bbf8ce046c7f1cb475640100000000620005d6810204565b1115620008db575060028054600160a060020a031916736f485c8bf6fc43ea212e93bbf8ce046c7f1cb47517905560016200099f565b6000620009057320e12a1f859b3feae5fb2a0a32c18f5a65555bbf640100000000620005d6810204565b11156200093b575060028054600160a060020a0319167320e12a1f859b3feae5fb2a0a32c18f5a65555bbf17905560016200099f565b6000620009657351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa640100000000620005d6810204565b11156200099b575060028054600160a060020a0319167351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa17905560016200099f565b5060005b90565b8051620009b7906004906020840190620009bb565b5050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620009fe57805160ff191683800117855562000a2e565b8280016001018555821562000a2e579182015b8281111562000a2e57825182559160200191906001019062000a11565b5062000a3c92915062000a40565b5090565b6200099f91905b8082111562000a3c576000815560010162000a47565b6152318062000a6d6000396000f3006080604052600436106100955763ffffffff60e060020a60003504166327dc297e811461009a57806338bbfa50146100fa5780633acbe96e146101965780637d73b23114610220578063877337b014610251578063937f54a414610278578063996cba681461028f578063b598f882146102b9578063c2c3d054146102c4578063ca6ad1e4146102e4578063e2b4ce97146102fc575b600080fd5b3480156100a657600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526100f89583359536956044949193909101919081908401838280828437509497506103119650505050505050565b005b34801561010657600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526100f895833595369560449491939091019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437509497506103319650505050505050565b3480156101a257600080fd5b506101ab610569565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101e55781810151838201526020016101cd565b50505050905090810190601f1680156102125780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561022c57600080fd5b506102356105f7565b60408051600160a060020a039092168252519081900360200190f35b34801561025d57600080fd5b50610266610607565b60408051918252519081900360200190f35b6100f860048035906024803590810191013561060d565b34801561029b57600080fd5b506100f8600160a060020a0360043581169060243516604435610696565b6100f86004356106ee565b3480156102d057600080fd5b506100f86004803560248101910135610747565b3480156102f057600080fd5b506100f86004356107ff565b34801561030857600080fd5b50610266610893565b60408051600081526020810190915261032d9083908390610331565b5050565b6000806000806000806000610344610899565b600160a060020a031633146103a3576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f74206f7261636c697a6500000000000000000000604482015290519081900360640190fd5b60008a8152600a6020526040902054600160a060020a03169650861515610414576040805160e560020a62461bcd02815260206004820152601c60248201527f71756572794944206d61746368657320746f2061646472657373203000000000604482015290519081900360640190fd5b61041d87610a8e565b9a505050985050505085151561047d576040805160e560020a62461bcd02815260206004820152601760248201527f746f6b656e206d75737420626520617661696c61626c65000000000000000000604482015290519081900360640190fd5b60098054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152610515938d938d9383018282801561050a5780601f106104df5761010080835404028352916020019161050a565b820191906000526020600020905b8154815290600101906020018083116104ed57829003601f168201915b505050505088610bc0565b9094509250831561055d5761053161052c8a61121d565b61159b565b60008b8152600a602052604090208054600160a060020a0319169055915082905061055d8783836115ae565b50505050505050505050565b6009805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156105ef5780601f106105c4576101008083540402835291602001916105ef565b820191906000526020600020905b8154815290600101906020018083116105d257829003601f168201915b505050505081565b600154600160a060020a03165b90565b60085490565b61061633611640565b151561065a576040805160e560020a62461bcd02815260206004820152601a60248201526000805160206151a6833981519152604482015290519081900360640190fd5b61069183838380806020026020016040519081016040528093929190818152602001838360200280828437506116d9945050505050565b505050565b61069f33611640565b15156106e3576040805160e560020a62461bcd02815260206004820152601a60248201526000805160206151a6833981519152604482015290519081900360640190fd5b610691838383611a70565b6106f733611640565b151561073b576040805160e560020a62461bcd02815260206004820152601a60248201526000805160206151a6833981519152604482015290519081900360640190fd5b61074481611c16565b50565b61075033611640565b1515610794576040805160e560020a62461bcd02815260206004820152601a60248201526000805160206151a6833981519152604482015290519081900360640190fd5b6107a060098383615048565b506040805133808252602082018381529282018490527fc6b0860ba9f580e9c5b6ba4e0954fe82827096a99d92e8c2d73009539ea8d9fa9290918591859190606082018484808284376040519201829003965090945050505050a15050565b61080833611640565b151561084c576040805160e560020a62461bcd02815260206004820152601a60248201526000805160206151a6833981519152604482015290519081900360640190fd5b61085581611f3e565b604080513381526020810183905281517ffbd406825addb09beef160afc17bb80ba28df4a3533dcd23592b82658a1c5ab4929181900390910190a150565b60075490565b600254600090600160a060020a031615806108c657506002546108c490600160a060020a031661212d565b155b156108d7576108d56000612131565b505b600260009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561092a57600080fd5b505af115801561093e573d6000803e3d6000fd5b505050506040513d602081101561095457600080fd5b5051600354600160a060020a03908116911614610a0a57600260009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156109be57600080fd5b505af11580156109d2573d6000803e3d6000fd5b505050506040513d60208110156109e857600080fd5b505160038054600160a060020a031916600160a060020a039092169190911790555b600360009054906101000a9004600160a060020a0316600160a060020a031663c281d19e6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610a5d57600080fd5b505af1158015610a71573d6000803e3d6000fd5b505050506040513d6020811015610a8757600080fd5b5051905090565b6060600080600080600080610aa460085461213b565b600160a060020a0316631f69565f896040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b158015610afe57600080fd5b505af1158015610b12573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260e0811015610b3b57600080fd5b810190808051640100000000811115610b5357600080fd5b82016020810184811115610b6657600080fd5b8151640100000000811182820187101715610b8057600080fd5b5050602082015160408301516060840151608085015160a086015160c090960151949e50929c50909a509850965090945092505050919395979092949650565b6000806060806060600080606060a58b51141515610c28576040805160e560020a62461bcd02815260206004820152601460248201527f696e76616c69642070726f6f66206c656e677468000000000000000000000000604482015290519081900360640190fd5b60418b6001815181101515610c3957fe5b016020015160f860020a9081900481020414610c9f576040805160e560020a62461bcd02815260206004820152601860248201527f696e76616c6964207369676e6174757265206c656e6774680000000000000000604482015290519081900360640190fd5b60408051604180825260808201909252906020820161082080388339019050509550610cd18b60026041896000612232565b8b519096506060908c906044908110610ce657fe5b90602001015160f860020a900460f860020a0260f860020a90046101008d6041600201815181101515610d1557fe5b016020015160f860020a90819004810204020114610d7d576040805160e560020a62461bcd02815260206004820152601660248201527f696e76616c69642068656164657273206c656e67746800000000000000000000604482015290519081900360640190fd5b604080516060808252608082019092529060208201610c0080388339019050509450610daf8b60456060886000612232565b9450610dbc85878c612287565b1515610e12576040805160e560020a62461bcd02815260206004820152601160248201527f696e76616c6964207369676e6174757265000000000000000000000000000000604482015290519081900360640190fd5b604080516014808252818301909252906020820161028080388339019050509350610e4385600b6014876000612232565b9350610e4f848a6123a2565b9093509150821515610eab576040805160e560020a62461bcd02815260206004820152600c60248201527f696e76616c696420646174650000000000000000000000000000000000000000604482015290519081900360640190fd5b60408051602c80825260608201909252906020820161058080388339019050509050610edd856034602c846000612232565b9050610ee8816127e0565b6040518082805190602001908083835b60208310610f175780518252601f199092019160209182019101610ef8565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660028d6040516020018082805190602001908083835b60208310610f7d5780518252601f199092019160209182019101610f5e565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040526040518082805190602001908083835b60208310610fe05780518252601f199092019160209182019101610fc1565b51815160209384036101000a600019018019909216911617905260405191909301945091925050808303816000865af1158015611021573d6000803e3d6000fd5b5050506040513d602081101561103657600080fd5b50516040805160208181019390935281518082038401815290820191829052805190928291908401908083835b602083106110825780518252601f199092019160209182019101611063565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191614151561110a576040805160e560020a62461bcd02815260206004820152601860248201527f726573756c742068617368206e6f74206d61746368696e670000000000000000604482015290519081900360640190fd5b7f0902fdd015aa1e56f7e6026b69c0595e82155dcbd83a83a23b40f9fe96babbd98a8d604051808060200180602001838103835285818151815260200191508051906020019080838360005b8381101561116e578181015183820152602001611156565b50505050905090810190601f16801561119b5780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b838110156111ce5781810151838201526020016111b6565b50505050905090810190601f1680156111fb5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a15060019b909a5098505050505050505050565b60606000606061122b6150c6565b846040516020018082805190602001908083835b6020831061125e5780518252601f19909201916020918201910161123f565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040525192506008831180156112a65750601c8311155b15156112fc576040805160e560020a62461bcd02815260206004820152601260248201527f6d6973666f726d617474656420696e7075740000000000000000000000000000604482015290519081900360640190fd5b604080516007808252818301909252906020820160e080388339019050509150611392856040516020018082805190602001908083835b602083106113525780518252601f199092019160209182019101611333565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405260006007856000612232565b50604080517f7b22455448223a0000000000000000000000000000000000000000000000000081529051908190036007018120835190918491819060208401908083835b602083106113f55780518252601f1990920191602091820191016113d6565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191614151561147d576040805160e560020a62461bcd02815260206004820152600f60248201527f707265666978206d69736d617463680000000000000000000000000000000000604482015290519081900360640190fd5b611486856131f8565b90506114d66114c96040805190810160405280600181526020017f3a000000000000000000000000000000000000000000000000000000000000008152506131f8565b829063ffffffff61322116565b508060000151925061152c61151f6040805190810160405280600181526020017f7d000000000000000000000000000000000000000000000000000000000000008152506131f8565b829063ffffffff61323b16565b508051600019840114611589576040805160e560020a62461bcd02815260206004820152600f60248201527f6e6f74206a736f6e20666f726d61740000000000000000000000000000000000604482015290519081900360640190fd5b611592816132a4565b95945050505050565b60006115a88260126132f7565b92915050565b6115b960085461213b565b600160a060020a031663d545782e8484846040518463ffffffff1660e060020a0281526004018084600160a060020a0316600160a060020a031681526020018381526020018281526020019350505050600060405180830381600087803b15801561162357600080fd5b505af1158015611637573d6000803e3d6000fd5b50505050505050565b600061164d60075461213b565b600160a060020a031663b429afeb836040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b1580156116a757600080fd5b505af11580156116bb573d6000803e3d6000fd5b505050506040513d60208110156116d157600080fd5b505192915050565b6116e16150c6565b6116e96150c6565b6000606060006116f76150c6565b6000875160001415611756576040805160208082526010908201527f656d70747920746f6b656e206c697374000000000000000000000000000000008183015290516000805160206151c68339815191529181900360600190a1611a65565b30600160a060020a031631885161178a60408051908101604052806003815260200160ea60020a6215549302815250613ec2565b0211156117e4576040805160208082526014908201527f696e73756666696369656e742062616c616e63650000000000000000000000008183015290516000805160206151c68339815191529181900360600190a1611a65565b611849606060405190810160405280603281526020017f68747470733a2f2f6d696e2d6170692e63727970746f636f6d706172652e636f81526020017f6d2f646174612f70726963653f6673796d3d00000000000000000000000000008152506131f8565b96506118896040805190810160405280601481526020017f267473796d733d455448267369676e3d747275650000000000000000000000008152506131f8565b9550600094505b8751851015611a65576118b988868151811015156118aa57fe5b90602001906020020151610a8e565b505050955050509350821515611919576040805160e560020a62461bcd02815260206004820152601760248201527f746f6b656e206d75737420626520617661696c61626c65000000000000000000604482015290519081900360640190fd5b611922846131f8565b604080518082019091526003815260ea60020a621554930260208201529092506119749061196e8861196261195d8c8863ffffffff6140f816565b6131f8565b9063ffffffff6140f816565b8b61416f565b9050878581518110151561198457fe5b6020908102919091018101516000838152600a90925260409091208054600160a060020a031916600160a060020a039092169190911790557fd28a52bc81f387be057d69ee89db644f94b7064c4acec0d5bc33e201a2031c056119e6836132a4565b6040805160208082528351818301528351919283929083019185019080838360005b83811015611a20578181015183820152602001611a08565b50505050905090810190601f168015611a4d5780820380516001836020036101000a031916815260200191505b509250505060405180910390a1600190940193611890565b505050505050505050565b600160a060020a0382161515611abc57604051600160a060020a0384169082156108fc029083906000818181858888f19350505050158015611ab6573d6000803e3d6000fd5b50611bc7565b81600160a060020a031663a9059cbb84836040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b158015611b1f57600080fd5b505af1158015611b33573d6000803e3d6000fd5b505050506040513d6020811015611b4957600080fd5b50511515611bc7576040805160e560020a62461bcd02815260206004820152602560248201527f455243323020746f6b656e207472616e736665722077617320756e737563636560448201527f737366756c000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60408051600160a060020a0380861682528416602082015280820183905290517ff7a40077ff7a04c7e61f6f26fb13774259ddf1b6bce9ecf26a8276cdd39926839181900360600190a1505050565b6060611c206150c6565b611c286150c6565b60006060611c346150c6565b6000611c3e614572565b9650865160001415611c9d576040805160208082526009908201527f6e6f20746f6b656e7300000000000000000000000000000000000000000000008183015290516000805160206151c68339815191529181900360600190a1611f34565b30600160a060020a0316318751611cd160408051908101604052806003815260200160ea60020a6215549302815250613ec2565b021115611d2b576040805160208082526014908201527f696e73756666696369656e742062616c616e63650000000000000000000000008183015290516000805160206151c68339815191529181900360600190a1611f34565b611d90606060405190810160405280603281526020017f68747470733a2f2f6d696e2d6170692e63727970746f636f6d706172652e636f81526020017f6d2f646174612f70726963653f6673796d3d00000000000000000000000000008152506131f8565b9550611dd06040805190810160405280601481526020017f267473796d733d455448267369676e3d747275650000000000000000000000008152506131f8565b9450600093505b8651841015611f3457611df187858151811015156118aa57fe5b5050505050509250611e02836131f8565b604080518082019091526003815260ea60020a62155493026020820152909250611e4390611e3d8761196261195d8b8863ffffffff6140f816565b8a61416f565b90508684815181101515611e5357fe5b6020908102919091018101516000838152600a90925260409091208054600160a060020a031916600160a060020a039092169190911790557fd28a52bc81f387be057d69ee89db644f94b7064c4acec0d5bc33e201a2031c05611eb5836132a4565b6040805160208082528351818301528351919283929083019185019080838360005b83811015611eef578181015183820152602001611ed7565b50505050905090810190601f168015611f1c5780820380516001836020036101000a031916815260200191505b509250505060405180910390a1600190930192611dd7565b5050505050505050565b600254600160a060020a03161580611f685750600254611f6690600160a060020a031661212d565b155b15611f7957611f776000612131565b505b600260009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611fcc57600080fd5b505af1158015611fe0573d6000803e3d6000fd5b505050506040513d6020811015611ff657600080fd5b5051600354600160a060020a039081169116146120ac57600260009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561206057600080fd5b505af1158015612074573d6000803e3d6000fd5b505050506040513d602081101561208a57600080fd5b505160038054600160a060020a031916600160a060020a039092169190911790555b600354604080517fca6ad1e4000000000000000000000000000000000000000000000000000000008152600481018490529051600160a060020a039092169163ca6ad1e49160248082019260009290919082900301818387803b15801561211257600080fd5b505af1158015612126573d6000803e3d6000fd5b5050505050565b3b90565b60006115a861464c565b60008054604080517f0178b8bf000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691630178b8bf9160248082019260209290919082900301818787803b1580156121a257600080fd5b505af11580156121b6573d6000803e3d6000fd5b505050506040513d60208110156121cc57600080fd5b5051604080517f3b3b57de000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691633b3b57de916024808201926020929091908290030181600087803b1580156116a757600080fd5b6060600080600084870192508286511015151561224e57600080fd5b505060208087019084015b86886020010182101561227a57888201518682015260209182019101612259565b5093979650505050505050565b600080600061231f6002876040518082805190602001908083835b602083106122c15780518252601f1990920191602091820191016122a2565b51815160209384036101000a600019018019909216911617905260405191909301945091925050808303816000865af1158015612302573d6000803e3d6000fd5b5050506040513d602081101561231757600080fd5b505186614974565b925090508080156123985750836040518082805190602001908083835b6020831061235b5780518252601f19909201916020918201910161233c565b5181516020939093036101000a60001901801990911692169190911790526040519201829003909120600160a060020a0390811690861614925050505b9695505050505050565b6000806123ad6150c6565b6123b56150c6565b6123bd6150c6565b60008060008060008060008d6040516020018082805190602001908083835b602083106123fb5780518252601f1990920191602091820191016123dc565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405251601414151561243b57fe5b6124448e6131f8565b99506124846040805190810160405280600181526020017f3a000000000000000000000000000000000000000000000000000000000000008152506131f8565b98506124c46040805190810160405280600181526020017f20000000000000000000000000000000000000000000000000000000000000008152506131f8565b97506124e66124e16124dc8c8b63ffffffff61322116565b6132a4565b6149fc565b96506000871180156124f85750602087105b151561254e576040805160e560020a62461bcd02815260206004820152600960248201527f646179206572726f720000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6125696125646124dc8c8b63ffffffff61322116565b614a09565b60ff16955060008611801561257e5750600d86105b15156125d4576040805160e560020a62461bcd02815260206004820152600b60248201527f6d6f6e7468206572726f72000000000000000000000000000000000000000000604482015290519081900360640190fd5b6125ea6124e16124dc8c8b63ffffffff61322116565b94506107e1851180156125fe5750610bb885105b1515612654576040805160e560020a62461bcd02815260206004820152600a60248201527f79656172206572726f7200000000000000000000000000000000000000000000604482015290519081900360640190fd5b61266a6124e16124dc8c8c63ffffffff61322116565b9350601984106126c4576040805160e560020a62461bcd02815260206004820152600a60248201527f686f7572206572726f7200000000000000000000000000000000000000000000604482015290519081900360640190fd5b6126da6124e16124dc8c8c63ffffffff61322116565b9250603c8310612734576040805160e560020a62461bcd02815260206004820152600c60248201527f6d696e757465206572726f720000000000000000000000000000000000000000604482015290519081900360640190fd5b61274a6124e16124dc8c8c63ffffffff61322116565b9150603c82106127a4576040805160e560020a62461bcd02815260206004820152600c60248201527f7365636f6e64206572726f720000000000000000000000000000000000000000604482015290519081900360640190fd5b506402540be40084026305f5e100860201620f4240870201612710840201606483020181018c81119b5099505050505050505050509250929050565b60606000806000806000606060008060008a519450846040519080825280601f01601f191660200182016040528015612823578160200160208202803883390190505b509350600085118015612837575060048506155b151561288d576040805160e560020a62461bcd02815260206004820152601760248201527f696e76616c69642062617365363420656e636f64696e67000000000000000000604482015290519081900360640190fd5b604080517f3d00000000000000000000000000000000000000000000000000000000000000815290519081900360010190208b518c9060011988019081106128d157fe5b90602001015160f860020a900460f860020a026040516020018082600160f860020a031916600160f860020a03191681526001019150506040516020818303038152906040526040518082805190602001908083835b602083106129465780518252601f199092019160209182019101612927565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902060001916141561298857600285039450612a7f565b604080517f3d00000000000000000000000000000000000000000000000000000000000000815290519081900360010190208b518c9060001988019081106129cc57fe5b90602001015160f860020a900460f860020a026040516020018082600160f860020a031916600160f860020a03191681526001019150506040516020818303038152906040526040518082805190602001908083835b60208310612a415780518252601f199092019160209182019101612a22565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020600019161415612a7f576001850394505b505060048084040260005b81811015612de1576040805160a081018252607b815260006020820152600080516020615186833981519152918101919091526000805160206151e6833981519152606082015260008051602061516683398151915260808201528b5160018301928d918110612af657fe5b90602001015160f860020a900460f860020a0260f860020a9004815181101515612b1c57fe5b90602001015160f860020a900460f860020a02985060a060405190810160405280607b81526020016000815260200160008051602061518683398151915281526020016000805160206151e683398151915281526020016000805160206151668339815191528152508b82806001019350815181101515612b9957fe5b90602001015160f860020a900460f860020a0260f860020a9004815181101515612bbf57fe5b90602001015160f860020a900460f860020a02975060a060405190810160405280607b81526020016000815260200160008051602061518683398151915281526020016000805160206151e683398151915281526020016000805160206151668339815191528152508b82806001019350815181101515612c3c57fe5b90602001015160f860020a900460f860020a0260f860020a9004815181101515612c6257fe5b90602001015160f860020a900460f860020a02965060a060405190810160405280607b81526020016000815260200160008051602061518683398151915281526020016000805160206151e683398151915281526020016000805160206151668339815191528152508b82806001019350815181101515612cdf57fe5b90602001015160f860020a900460f860020a0260f860020a9004815181101515612d0557fe5b0160200151845160f860020a9182900490910296506001840193600160f860020a03198b81166004026010828d16041716918691908110612d4257fe5b906020010190600160f860020a031916908160001a905350835160018401936010600160f860020a03198b8116919091026004828c16041716918691908110612d8757fe5b906020010190600160f860020a031916908160001a90535083516001840193600160f860020a0319898116604002891716918691908110612dc457fe5b906020010190600160f860020a031916908160001a905350612a8a565b81850360021415612f73576040805160a081018252607b815260006020820152600080516020615186833981519152918101919091526000805160206151e6833981519152606082015260008051602061516683398151915260808201528b5160018301928d918110612e5057fe5b90602001015160f860020a900460f860020a0260f860020a9004815181101515612e7657fe5b90602001015160f860020a900460f860020a02985060a060405190810160405280607b81526020016000815260200160008051602061518683398151915281526020016000805160206151e683398151915281526020016000805160206151668339815191528152508b82806001019350815181101515612ef357fe5b90602001015160f860020a900460f860020a0260f860020a9004815181101515612f1957fe5b0160200151845160f860020a9182900490910298506001840193600160f860020a03198b81166004026010828d16041716918691908110612f5657fe5b906020010190600160f860020a031916908160001a9053506131e9565b818503600314156131e9576040805160a081018252607b815260006020820152600080516020615186833981519152918101919091526000805160206151e6833981519152606082015260008051602061516683398151915260808201528b5160018301928d918110612fe257fe5b90602001015160f860020a900460f860020a0260f860020a900481518110151561300857fe5b90602001015160f860020a900460f860020a02985060a060405190810160405280607b81526020016000815260200160008051602061518683398151915281526020016000805160206151e683398151915281526020016000805160206151668339815191528152508b8280600101935081518110151561308557fe5b90602001015160f860020a900460f860020a0260f860020a90048151811015156130ab57fe5b90602001015160f860020a900460f860020a02975060a060405190810160405280607b81526020016000815260200160008051602061518683398151915281526020016000805160206151e683398151915281526020016000805160206151668339815191528152508b8280600101935081518110151561312857fe5b90602001015160f860020a900460f860020a0260f860020a900481518110151561314e57fe5b0160200151845160f860020a9182900490910297506001840193600160f860020a03198b81166004026010828d1604171691869190811061318b57fe5b906020010190600160f860020a031916908160001a905350835160018401936010600160f860020a03198b8116919091026004828c160417169186919081106131d057fe5b906020010190600160f860020a031916908160001a9053505b50508152979650505050505050565b6132006150c6565b50604080518082019091528151815260208281019082018190525b50919050565b6132296150c6565b613234838383614e3c565b5092915050565b6132436150c6565b815183516000918291101561325a5784925061329c565b5050815183516020808601519085015191019190910390600190821461328a575082516020840151819020908220145b801561329857835185510385525b8492505b505092915050565b606080600083600001516040519080825280601f01601f1916602001820160405280156132db578160200160208202803883390190505b5091506020820190506132348185602001518660000151614ead565b60008281808080808080808080805b8b51811015613b73578b517f3000000000000000000000000000000000000000000000000000000000000000908d908390811061333f57fe5b90602001015160f860020a900460f860020a02600160f860020a031916101580156133b557508b517f3900000000000000000000000000000000000000000000000000000000000000908d908390811061339557fe5b90602001015160f860020a900460f860020a02600160f860020a03191611155b80156133bf575083155b1561348957841561342a576133db8a600a63ffffffff614ef116565b8c51909a5061341d906030908e90849081106133f357fe5b90602001015160f860020a900460f860020a0260f860020a9004038b614f2690919063ffffffff16565b9950600190970196613484565b6001955061343f8b600a63ffffffff614ef116565b8c51909b50613481906030908e908490811061345757fe5b90602001015160f860020a900460f860020a0260f860020a9004038c614f2690919063ffffffff16565b9a505b613b6b565b8b517f3000000000000000000000000000000000000000000000000000000000000000908d90839081106134b957fe5b90602001015160f860020a900460f860020a02600160f860020a0319161015801561352f57508b517f3900000000000000000000000000000000000000000000000000000000000000908d908390811061350f57fe5b90602001015160f860020a900460f860020a02600160f860020a03191611155b80156135385750835b156135975761354e89600a63ffffffff614ef116565b8c51909950613590906030908e908490811061356657fe5b90602001015160f860020a900460f860020a0260f860020a9004038a614f2690919063ffffffff16565b9850613b6b565b8b517f2e00000000000000000000000000000000000000000000000000000000000000908d90839081106135c757fe5b90602001015160f860020a900460f860020a02600160f860020a03191614156136f657851515613641576040805160e560020a62461bcd02815260206004820152601560248201527f6d697373696e6720696e74656772616c20706172740000000000000000000000604482015290519081900360640190fd5b8415613697576040805160e560020a62461bcd02815260206004820152601760248201527f6475706c696361746520646563696d616c20706f696e74000000000000000000604482015290519081900360640190fd5b83156136ed576040805160e560020a62461bcd02815260206004820152601660248201527f646563696d616c206166746572206578706f6e656e7400000000000000000000604482015290519081900360640190fd5b60019450613b6b565b8b517f2d00000000000000000000000000000000000000000000000000000000000000908d908390811061372657fe5b90602001015160f860020a900460f860020a02600160f860020a031916141561385857821561379f576040805160e560020a62461bcd02815260206004820152600b60248201527f6475706c6963617465202d000000000000000000000000000000000000000000604482015290519081900360640190fd5b81156137f5576040805160e560020a62461bcd02815260206004820152600a60248201527f6578747261207369676e00000000000000000000000000000000000000000000604482015290519081900360640190fd5b60018701811461384f576040805160e560020a62461bcd02815260206004820152601e60248201527f2d207369676e206e6f7420696d6d6564696174656c7920616674657220650000604482015290519081900360640190fd5b60019250613b6b565b8b517f2b00000000000000000000000000000000000000000000000000000000000000908d908390811061388857fe5b90602001015160f860020a900460f860020a02600160f860020a03191614156139ba578115613901576040805160e560020a62461bcd02815260206004820152600b60248201527f6475706c6963617465202b000000000000000000000000000000000000000000604482015290519081900360640190fd5b8215613957576040805160e560020a62461bcd02815260206004820152600a60248201527f6578747261207369676e00000000000000000000000000000000000000000000604482015290519081900360640190fd5b6001870181146139b1576040805160e560020a62461bcd02815260206004820152601e60248201527f2b207369676e206e6f7420696d6d6564696174656c7920616674657220650000604482015290519081900360640190fd5b60019150613b6b565b8b517f4500000000000000000000000000000000000000000000000000000000000000908d90839081106139ea57fe5b90602001015160f860020a900460f860020a02600160f860020a0319161480613a5d57508b517f6500000000000000000000000000000000000000000000000000000000000000908d9083908110613a3e57fe5b90602001015160f860020a900460f860020a02600160f860020a031916145b15613b1b57851515613ab9576040805160e560020a62461bcd02815260206004820152601560248201527f6d697373696e6720696e74656772616c20706172740000000000000000000000604482015290519081900360640190fd5b8315613b0f576040805160e560020a62461bcd02815260206004820152601960248201527f6475706c6963617465206578706f6e656e742073796d626f6c00000000000000604482015290519081900360640190fd5b60019350809650613b6b565b6040805160e560020a62461bcd02815260206004820152600d60248201527f696e76616c696420646967697400000000000000000000000000000000000000604482015290519081900360640190fd5b600101613306565b8280613b7c5750815b15613b9557600287018111613b9057600080fd5b613baa565b8315613baa57600187018111613baa57600080fd5b8215613c36578d8910613c2c57604e8e8a0310613c11576040805160e560020a62461bcd02815260206004820152600d60248201527f6578706f6e656e74203e20373700000000000000000000000000000000000000604482015290519081900360640190fd5b8d8903600a0a8b811515613c2157fe5b049a508a9c50613eb0565b888e039d50613c49565b613c468e8a63ffffffff614f2616565b9d505b878e10613d6f57604e8810613cce576040805160e560020a62461bcd02815260206004820152602260248201527f6d6f7265207468616e20373720646563696d616c20646967697473207061727360448201527f6564000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b613ce28b600a8a900a63ffffffff614ef116565b9a50613cf48b8b63ffffffff614f2616565b9a50604e888f0310613d50576040805160e560020a62461bcd02815260206004820152600d60248201527f6578706f6e656e74203e20373700000000000000000000000000000000000000604482015290519081900360640190fd5b613d68888f03600a0a8c614ef190919063ffffffff16565b9a50613eac565b968d900396604e8810613df2576040805160e560020a62461bcd02815260206004820152602260248201527f6d6f7265207468616e20373720646563696d616c20646967697473207061727360448201527f6564000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b87600a0a8a811515613e0057fe5b049950604e8e10613e81576040805160e560020a62461bcd02815260206004820152602260248201527f6d6f7265207468616e20373720646563696d616c20646967697473207061727360448201527f6564000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b613e978e600a0a8c614ef190919063ffffffff16565b9a50613ea98b8b63ffffffff614f2616565b9a505b8a9c505b50505050505050505050505092915050565b600254600090600160a060020a03161580613eef5750600254613eed90600160a060020a031661212d565b155b15613f0057613efe6000612131565b505b600260009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015613f5357600080fd5b505af1158015613f67573d6000803e3d6000fd5b505050506040513d6020811015613f7d57600080fd5b5051600354600160a060020a0390811691161461403357600260009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015613fe757600080fd5b505af1158015613ffb573d6000803e3d6000fd5b505050506040513d602081101561401157600080fd5b505160038054600160a060020a031916600160a060020a039092169190911790555b6003546040517f524f3889000000000000000000000000000000000000000000000000000000008152602060048201818152855160248401528551600160a060020a039094169363524f388993879383926044909201919085019080838360005b838110156140ac578181015183820152602001614094565b50505050905090810190601f1680156140d95780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1580156116a757600080fd5b606080600083600001518560000151016040519080825280601f01601f191660200182016040528015614135578160200160208202803883390190505b5091506020820190506141518186602001518760000151614ead565b8451602085015185516141679284019190614ead565b509392505050565b6002546000908190600160a060020a0316158061419e575060025461419c90600160a060020a031661212d565b155b156141af576141ad6000612131565b505b600260009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561420257600080fd5b505af1158015614216573d6000803e3d6000fd5b505050506040513d602081101561422c57600080fd5b5051600354600160a060020a039081169116146142e257600260009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561429657600080fd5b505af11580156142aa573d6000803e3d6000fd5b505050506040513d60208110156142c057600080fd5b505160038054600160a060020a031916600160a060020a039092169190911790555b600354604080517f2ef3accc0000000000000000000000000000000000000000000000000000000081526024810186905260048101918252875160448201528751600160a060020a0390931692632ef3accc9289928892829160640190602086019080838360005b8381101561436257818101518382015260200161434a565b50505050905090810190601f16801561438f5780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b1580156143af57600080fd5b505af11580156143c3573d6000803e3d6000fd5b505050506040513d60208110156143d957600080fd5b50519050670de0b6b3a76400003a8402018111156143fa5760009150614167565b6003546040517fc51be90f00000000000000000000000000000000000000000000000000000000815260006004820181815260648301879052608060248401908152895160848501528951600160a060020a039095169463c51be90f948794938c938c938c93604481019160a49091019060208801908083838c5b8381101561448d578181015183820152602001614475565b50505050905090810190601f1680156144ba5780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b838110156144ed5781810151838201526020016144d5565b50505050905090810190601f16801561451a5780820380516001836020036101000a031916815260200191505b5096505050505050506020604051808303818588803b15801561453c57600080fd5b505af1158015614550573d6000803e3d6000fd5b50505050506040513d602081101561456757600080fd5b505195945050505050565b606061457f60085461213b565b600160a060020a031663443dd2a46040518163ffffffff1660e060020a028152600401600060405180830381600087803b1580156145bc57600080fd5b505af11580156145d0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156145f957600080fd5b81019080805164010000000081111561461157600080fd5b8201602081018481111561462457600080fd5b815185602082028301116401000000008211171561464157600080fd5b509094505050505090565b60008061466c731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed61212d565b11156146dd5760028054600160a060020a031916731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed17905560408051808201909152600b81527f6574685f6d61696e6e657400000000000000000000000000000000000000000060208201526146d590614f38565b506001610604565b60006146fc73c03a2615d5efaf5f49f60b7bb6583eaec212fdf161212d565b11156147655760028054600160a060020a03191673c03a2615d5efaf5f49f60b7bb6583eaec212fdf117905560408051808201909152600c81527f6574685f726f707374656e33000000000000000000000000000000000000000060208201526146d590614f38565b600061478473b7a07bcf2ba2f2703b24c0691b5278999c59ac7e61212d565b11156147ed5760028054600160a060020a03191673b7a07bcf2ba2f2703b24c0691b5278999c59ac7e17905560408051808201909152600981527f6574685f6b6f76616e000000000000000000000000000000000000000000000060208201526146d590614f38565b600061480c73146500cfd35b22e4a392fe0adc06de1a1368ed4861212d565b11156148755760028054600160a060020a03191673146500cfd35b22e4a392fe0adc06de1a1368ed4817905560408051808201909152600b81527f6574685f72696e6b65627900000000000000000000000000000000000000000060208201526146d590614f38565b6000614894736f485c8bf6fc43ea212e93bbf8ce046c7f1cb47561212d565b11156148c8575060028054600160a060020a031916736f485c8bf6fc43ea212e93bbf8ce046c7f1cb4751790556001610604565b60006148e77320e12a1f859b3feae5fb2a0a32c18f5a65555bbf61212d565b111561491b575060028054600160a060020a0319167320e12a1f859b3feae5fb2a0a32c18f5a65555bbf1790556001610604565b600061493a7351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa61212d565b111561496e575060028054600160a060020a0319167351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa1790556001610604565b50600090565b60008060008060008551604114151561499357600094508493506149f2565b50505060208301516040840151606085015160001a601b60ff821610156149b857601b015b8060ff16601b141580156149d057508060ff16601c14155b156149e157600094508493506149f2565b6149ed87828585614f4b565b945094505b5050509250929050565b60006115a88260006132f7565b600080826040516020018082805190602001908083835b60208310614a3f5780518252601f199092019160209182019101614a20565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040526040518082805190602001908083835b60208310614aa25780518252601f199092019160209182019101614a83565b5181516000196020949094036101000a93909301928316921916919091179052604080519390910183900383207f4a616e00000000000000000000000000000000000000000000000000000000008452905192839003600301909220919450508314159150614b169050576001915061321b565b604080517f466562000000000000000000000000000000000000000000000000000000000081529051908190036003019020811415614b58576002915061321b565b604080517f4d6172000000000000000000000000000000000000000000000000000000000081529051908190036003019020811415614b9a576003915061321b565b604080517f417072000000000000000000000000000000000000000000000000000000000081529051908190036003019020811415614bdc576004915061321b565b604080517f4d6179000000000000000000000000000000000000000000000000000000000081529051908190036003019020811415614c1e576005915061321b565b604080517f4a756e000000000000000000000000000000000000000000000000000000000081529051908190036003019020811415614c60576006915061321b565b604080517f4a756c000000000000000000000000000000000000000000000000000000000081529051908190036003019020811415614ca2576007915061321b565b604080517f417567000000000000000000000000000000000000000000000000000000000081529051908190036003019020811415614ce4576008915061321b565b604080517f536570000000000000000000000000000000000000000000000000000000000081529051908190036003019020811415614d26576009915061321b565b604080517f4f6374000000000000000000000000000000000000000000000000000000000081529051908190036003019020811415614d6857600a915061321b565b604080517f4e6f76000000000000000000000000000000000000000000000000000000000081529051908190036003019020811415614daa57600b915061321b565b604080517f446563000000000000000000000000000000000000000000000000000000000081529051908190036003019020811415614dec57600c915061321b565b6040805160e560020a62461bcd02815260206004820152601160248201527f6e6f7420612076616c6964206d6f6e7468000000000000000000000000000000604482015290519081900360640190fd5b614e446150c6565b6000614e628560000151866020015186600001518760200151614f88565b60208087018051918601919091528051820385528651905191925001811415614e8e5760008552614ea4565b8351835186519101900385528351810160208601525b50909392505050565b60005b60208210614ed2578251845260209384019390920191601f1990910190614eb0565b50905182516020929092036101000a6000190180199091169116179052565b600080831515614f045760009150613234565b50828202828482811515614f1457fe5b0414614f1f57600080fd5b9392505050565b600082820183811015614f1f57600080fd5b805161032d9060049060208401906150dd565b60008060008060405188815287602082015286604082015285606082015260208160808360006001610bb8f1905190999098509650505050505050565b600083818080808080808c8b116150325760208b11614ffb5760018b60200360080260020a03196001029550858a511694508a8d8d010393508588511692505b828514614ff357838810614fe0578c8c019850615038565b8780600101985050858851169250614fc8565b879850615038565b8a8a209150600096505b8a8d03871161503257508987208181141561502257879850615038565b6001978801979690960195615005565b8c8c0198505b5050505050505050949350505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106150895782800160ff198235161785556150b6565b828001600101855582156150b6579182015b828111156150b657823582559160200191906001019061509b565b506150c292915061514b565b5090565b604080518082019091526000808252602082015290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061511e57805160ff19168380011785556150b6565b828001600101855582156150b6579182015b828111156150b6578251825591602001919060010190615130565b61060491905b808211156150c257600081556001016151515600001a1b1c1d1e1f202122232425262728292a2b2c2d2e2f30313233000000000000000000000000000000003e003e003f3435363738393a3b3c3d00000000000073656e646572206973206e6f74206120636f6e74726f6c6c65720000000000004eb5629fd8501532aeb93b1b6a5b5b2ae398561e56514ed4b4b0c5ac2d381b6e00000102030405060708090a0b0c0d0e0f10111213141516171819000000003fa165627a7a72305820f4cbcb1c991e9c745a7613ffdea81721a65e2bfa7b4e94a5d186a97a5f2928ff0029","bin-runtime":"6080604052600436106100955763ffffffff60e060020a60003504166327dc297e811461009a57806338bbfa50146100fa5780633acbe96e146101965780637d73b23114610220578063877337b014610251578063937f54a414610278578063996cba681461028f578063b598f882146102b9578063c2c3d054146102c4578063ca6ad1e4146102e4578063e2b4ce97146102fc575b600080fd5b3480156100a657600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526100f89583359536956044949193909101919081908401838280828437509497506103119650505050505050565b005b34801561010657600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526100f895833595369560449491939091019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437509497506103319650505050505050565b3480156101a257600080fd5b506101ab610569565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101e55781810151838201526020016101cd565b50505050905090810190601f1680156102125780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561022c57600080fd5b506102356105f7565b60408051600160a060020a039092168252519081900360200190f35b34801561025d57600080fd5b50610266610607565b60408051918252519081900360200190f35b6100f860048035906024803590810191013561060d565b34801561029b57600080fd5b506100f8600160a060020a0360043581169060243516604435610696565b6100f86004356106ee565b3480156102d057600080fd5b506100f86004803560248101910135610747565b3480156102f057600080fd5b506100f86004356107ff565b34801561030857600080fd5b50610266610893565b60408051600081526020810190915261032d9083908390610331565b5050565b6000806000806000806000610344610899565b600160a060020a031633146103a3576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f74206f7261636c697a6500000000000000000000604482015290519081900360640190fd5b60008a8152600a6020526040902054600160a060020a03169650861515610414576040805160e560020a62461bcd02815260206004820152601c60248201527f71756572794944206d61746368657320746f2061646472657373203000000000604482015290519081900360640190fd5b61041d87610a8e565b9a505050985050505085151561047d576040805160e560020a62461bcd02815260206004820152601760248201527f746f6b656e206d75737420626520617661696c61626c65000000000000000000604482015290519081900360640190fd5b60098054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152610515938d938d9383018282801561050a5780601f106104df5761010080835404028352916020019161050a565b820191906000526020600020905b8154815290600101906020018083116104ed57829003601f168201915b505050505088610bc0565b9094509250831561055d5761053161052c8a61121d565b61159b565b60008b8152600a602052604090208054600160a060020a0319169055915082905061055d8783836115ae565b50505050505050505050565b6009805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156105ef5780601f106105c4576101008083540402835291602001916105ef565b820191906000526020600020905b8154815290600101906020018083116105d257829003601f168201915b505050505081565b600154600160a060020a03165b90565b60085490565b61061633611640565b151561065a576040805160e560020a62461bcd02815260206004820152601a60248201526000805160206151a6833981519152604482015290519081900360640190fd5b61069183838380806020026020016040519081016040528093929190818152602001838360200280828437506116d9945050505050565b505050565b61069f33611640565b15156106e3576040805160e560020a62461bcd02815260206004820152601a60248201526000805160206151a6833981519152604482015290519081900360640190fd5b610691838383611a70565b6106f733611640565b151561073b576040805160e560020a62461bcd02815260206004820152601a60248201526000805160206151a6833981519152604482015290519081900360640190fd5b61074481611c16565b50565b61075033611640565b1515610794576040805160e560020a62461bcd02815260206004820152601a60248201526000805160206151a6833981519152604482015290519081900360640190fd5b6107a060098383615048565b506040805133808252602082018381529282018490527fc6b0860ba9f580e9c5b6ba4e0954fe82827096a99d92e8c2d73009539ea8d9fa9290918591859190606082018484808284376040519201829003965090945050505050a15050565b61080833611640565b151561084c576040805160e560020a62461bcd02815260206004820152601a60248201526000805160206151a6833981519152604482015290519081900360640190fd5b61085581611f3e565b604080513381526020810183905281517ffbd406825addb09beef160afc17bb80ba28df4a3533dcd23592b82658a1c5ab4929181900390910190a150565b60075490565b600254600090600160a060020a031615806108c657506002546108c490600160a060020a031661212d565b155b156108d7576108d56000612131565b505b600260009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561092a57600080fd5b505af115801561093e573d6000803e3d6000fd5b505050506040513d602081101561095457600080fd5b5051600354600160a060020a03908116911614610a0a57600260009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156109be57600080fd5b505af11580156109d2573d6000803e3d6000fd5b505050506040513d60208110156109e857600080fd5b505160038054600160a060020a031916600160a060020a039092169190911790555b600360009054906101000a9004600160a060020a0316600160a060020a031663c281d19e6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610a5d57600080fd5b505af1158015610a71573d6000803e3d6000fd5b505050506040513d6020811015610a8757600080fd5b5051905090565b6060600080600080600080610aa460085461213b565b600160a060020a0316631f69565f896040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b158015610afe57600080fd5b505af1158015610b12573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260e0811015610b3b57600080fd5b810190808051640100000000811115610b5357600080fd5b82016020810184811115610b6657600080fd5b8151640100000000811182820187101715610b8057600080fd5b5050602082015160408301516060840151608085015160a086015160c090960151949e50929c50909a509850965090945092505050919395979092949650565b6000806060806060600080606060a58b51141515610c28576040805160e560020a62461bcd02815260206004820152601460248201527f696e76616c69642070726f6f66206c656e677468000000000000000000000000604482015290519081900360640190fd5b60418b6001815181101515610c3957fe5b016020015160f860020a9081900481020414610c9f576040805160e560020a62461bcd02815260206004820152601860248201527f696e76616c6964207369676e6174757265206c656e6774680000000000000000604482015290519081900360640190fd5b60408051604180825260808201909252906020820161082080388339019050509550610cd18b60026041896000612232565b8b519096506060908c906044908110610ce657fe5b90602001015160f860020a900460f860020a0260f860020a90046101008d6041600201815181101515610d1557fe5b016020015160f860020a90819004810204020114610d7d576040805160e560020a62461bcd02815260206004820152601660248201527f696e76616c69642068656164657273206c656e67746800000000000000000000604482015290519081900360640190fd5b604080516060808252608082019092529060208201610c0080388339019050509450610daf8b60456060886000612232565b9450610dbc85878c612287565b1515610e12576040805160e560020a62461bcd02815260206004820152601160248201527f696e76616c6964207369676e6174757265000000000000000000000000000000604482015290519081900360640190fd5b604080516014808252818301909252906020820161028080388339019050509350610e4385600b6014876000612232565b9350610e4f848a6123a2565b9093509150821515610eab576040805160e560020a62461bcd02815260206004820152600c60248201527f696e76616c696420646174650000000000000000000000000000000000000000604482015290519081900360640190fd5b60408051602c80825260608201909252906020820161058080388339019050509050610edd856034602c846000612232565b9050610ee8816127e0565b6040518082805190602001908083835b60208310610f175780518252601f199092019160209182019101610ef8565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660028d6040516020018082805190602001908083835b60208310610f7d5780518252601f199092019160209182019101610f5e565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040526040518082805190602001908083835b60208310610fe05780518252601f199092019160209182019101610fc1565b51815160209384036101000a600019018019909216911617905260405191909301945091925050808303816000865af1158015611021573d6000803e3d6000fd5b5050506040513d602081101561103657600080fd5b50516040805160208181019390935281518082038401815290820191829052805190928291908401908083835b602083106110825780518252601f199092019160209182019101611063565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191614151561110a576040805160e560020a62461bcd02815260206004820152601860248201527f726573756c742068617368206e6f74206d61746368696e670000000000000000604482015290519081900360640190fd5b7f0902fdd015aa1e56f7e6026b69c0595e82155dcbd83a83a23b40f9fe96babbd98a8d604051808060200180602001838103835285818151815260200191508051906020019080838360005b8381101561116e578181015183820152602001611156565b50505050905090810190601f16801561119b5780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b838110156111ce5781810151838201526020016111b6565b50505050905090810190601f1680156111fb5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a15060019b909a5098505050505050505050565b60606000606061122b6150c6565b846040516020018082805190602001908083835b6020831061125e5780518252601f19909201916020918201910161123f565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040525192506008831180156112a65750601c8311155b15156112fc576040805160e560020a62461bcd02815260206004820152601260248201527f6d6973666f726d617474656420696e7075740000000000000000000000000000604482015290519081900360640190fd5b604080516007808252818301909252906020820160e080388339019050509150611392856040516020018082805190602001908083835b602083106113525780518252601f199092019160209182019101611333565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405260006007856000612232565b50604080517f7b22455448223a0000000000000000000000000000000000000000000000000081529051908190036007018120835190918491819060208401908083835b602083106113f55780518252601f1990920191602091820191016113d6565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191614151561147d576040805160e560020a62461bcd02815260206004820152600f60248201527f707265666978206d69736d617463680000000000000000000000000000000000604482015290519081900360640190fd5b611486856131f8565b90506114d66114c96040805190810160405280600181526020017f3a000000000000000000000000000000000000000000000000000000000000008152506131f8565b829063ffffffff61322116565b508060000151925061152c61151f6040805190810160405280600181526020017f7d000000000000000000000000000000000000000000000000000000000000008152506131f8565b829063ffffffff61323b16565b508051600019840114611589576040805160e560020a62461bcd02815260206004820152600f60248201527f6e6f74206a736f6e20666f726d61740000000000000000000000000000000000604482015290519081900360640190fd5b611592816132a4565b95945050505050565b60006115a88260126132f7565b92915050565b6115b960085461213b565b600160a060020a031663d545782e8484846040518463ffffffff1660e060020a0281526004018084600160a060020a0316600160a060020a031681526020018381526020018281526020019350505050600060405180830381600087803b15801561162357600080fd5b505af1158015611637573d6000803e3d6000fd5b50505050505050565b600061164d60075461213b565b600160a060020a031663b429afeb836040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b1580156116a757600080fd5b505af11580156116bb573d6000803e3d6000fd5b505050506040513d60208110156116d157600080fd5b505192915050565b6116e16150c6565b6116e96150c6565b6000606060006116f76150c6565b6000875160001415611756576040805160208082526010908201527f656d70747920746f6b656e206c697374000000000000000000000000000000008183015290516000805160206151c68339815191529181900360600190a1611a65565b30600160a060020a031631885161178a60408051908101604052806003815260200160ea60020a6215549302815250613ec2565b0211156117e4576040805160208082526014908201527f696e73756666696369656e742062616c616e63650000000000000000000000008183015290516000805160206151c68339815191529181900360600190a1611a65565b611849606060405190810160405280603281526020017f68747470733a2f2f6d696e2d6170692e63727970746f636f6d706172652e636f81526020017f6d2f646174612f70726963653f6673796d3d00000000000000000000000000008152506131f8565b96506118896040805190810160405280601481526020017f267473796d733d455448267369676e3d747275650000000000000000000000008152506131f8565b9550600094505b8751851015611a65576118b988868151811015156118aa57fe5b90602001906020020151610a8e565b505050955050509350821515611919576040805160e560020a62461bcd02815260206004820152601760248201527f746f6b656e206d75737420626520617661696c61626c65000000000000000000604482015290519081900360640190fd5b611922846131f8565b604080518082019091526003815260ea60020a621554930260208201529092506119749061196e8861196261195d8c8863ffffffff6140f816565b6131f8565b9063ffffffff6140f816565b8b61416f565b9050878581518110151561198457fe5b6020908102919091018101516000838152600a90925260409091208054600160a060020a031916600160a060020a039092169190911790557fd28a52bc81f387be057d69ee89db644f94b7064c4acec0d5bc33e201a2031c056119e6836132a4565b6040805160208082528351818301528351919283929083019185019080838360005b83811015611a20578181015183820152602001611a08565b50505050905090810190601f168015611a4d5780820380516001836020036101000a031916815260200191505b509250505060405180910390a1600190940193611890565b505050505050505050565b600160a060020a0382161515611abc57604051600160a060020a0384169082156108fc029083906000818181858888f19350505050158015611ab6573d6000803e3d6000fd5b50611bc7565b81600160a060020a031663a9059cbb84836040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b158015611b1f57600080fd5b505af1158015611b33573d6000803e3d6000fd5b505050506040513d6020811015611b4957600080fd5b50511515611bc7576040805160e560020a62461bcd02815260206004820152602560248201527f455243323020746f6b656e207472616e736665722077617320756e737563636560448201527f737366756c000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60408051600160a060020a0380861682528416602082015280820183905290517ff7a40077ff7a04c7e61f6f26fb13774259ddf1b6bce9ecf26a8276cdd39926839181900360600190a1505050565b6060611c206150c6565b611c286150c6565b60006060611c346150c6565b6000611c3e614572565b9650865160001415611c9d576040805160208082526009908201527f6e6f20746f6b656e7300000000000000000000000000000000000000000000008183015290516000805160206151c68339815191529181900360600190a1611f34565b30600160a060020a0316318751611cd160408051908101604052806003815260200160ea60020a6215549302815250613ec2565b021115611d2b576040805160208082526014908201527f696e73756666696369656e742062616c616e63650000000000000000000000008183015290516000805160206151c68339815191529181900360600190a1611f34565b611d90606060405190810160405280603281526020017f68747470733a2f2f6d696e2d6170692e63727970746f636f6d706172652e636f81526020017f6d2f646174612f70726963653f6673796d3d00000000000000000000000000008152506131f8565b9550611dd06040805190810160405280601481526020017f267473796d733d455448267369676e3d747275650000000000000000000000008152506131f8565b9450600093505b8651841015611f3457611df187858151811015156118aa57fe5b5050505050509250611e02836131f8565b604080518082019091526003815260ea60020a62155493026020820152909250611e4390611e3d8761196261195d8b8863ffffffff6140f816565b8a61416f565b90508684815181101515611e5357fe5b6020908102919091018101516000838152600a90925260409091208054600160a060020a031916600160a060020a039092169190911790557fd28a52bc81f387be057d69ee89db644f94b7064c4acec0d5bc33e201a2031c05611eb5836132a4565b6040805160208082528351818301528351919283929083019185019080838360005b83811015611eef578181015183820152602001611ed7565b50505050905090810190601f168015611f1c5780820380516001836020036101000a031916815260200191505b509250505060405180910390a1600190930192611dd7565b5050505050505050565b600254600160a060020a03161580611f685750600254611f6690600160a060020a031661212d565b155b15611f7957611f776000612131565b505b600260009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611fcc57600080fd5b505af1158015611fe0573d6000803e3d6000fd5b505050506040513d6020811015611ff657600080fd5b5051600354600160a060020a039081169116146120ac57600260009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561206057600080fd5b505af1158015612074573d6000803e3d6000fd5b505050506040513d602081101561208a57600080fd5b505160038054600160a060020a031916600160a060020a039092169190911790555b600354604080517fca6ad1e4000000000000000000000000000000000000000000000000000000008152600481018490529051600160a060020a039092169163ca6ad1e49160248082019260009290919082900301818387803b15801561211257600080fd5b505af1158015612126573d6000803e3d6000fd5b5050505050565b3b90565b60006115a861464c565b60008054604080517f0178b8bf000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691630178b8bf9160248082019260209290919082900301818787803b1580156121a257600080fd5b505af11580156121b6573d6000803e3d6000fd5b505050506040513d60208110156121cc57600080fd5b5051604080517f3b3b57de000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691633b3b57de916024808201926020929091908290030181600087803b1580156116a757600080fd5b6060600080600084870192508286511015151561224e57600080fd5b505060208087019084015b86886020010182101561227a57888201518682015260209182019101612259565b5093979650505050505050565b600080600061231f6002876040518082805190602001908083835b602083106122c15780518252601f1990920191602091820191016122a2565b51815160209384036101000a600019018019909216911617905260405191909301945091925050808303816000865af1158015612302573d6000803e3d6000fd5b5050506040513d602081101561231757600080fd5b505186614974565b925090508080156123985750836040518082805190602001908083835b6020831061235b5780518252601f19909201916020918201910161233c565b5181516020939093036101000a60001901801990911692169190911790526040519201829003909120600160a060020a0390811690861614925050505b9695505050505050565b6000806123ad6150c6565b6123b56150c6565b6123bd6150c6565b60008060008060008060008d6040516020018082805190602001908083835b602083106123fb5780518252601f1990920191602091820191016123dc565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405251601414151561243b57fe5b6124448e6131f8565b99506124846040805190810160405280600181526020017f3a000000000000000000000000000000000000000000000000000000000000008152506131f8565b98506124c46040805190810160405280600181526020017f20000000000000000000000000000000000000000000000000000000000000008152506131f8565b97506124e66124e16124dc8c8b63ffffffff61322116565b6132a4565b6149fc565b96506000871180156124f85750602087105b151561254e576040805160e560020a62461bcd02815260206004820152600960248201527f646179206572726f720000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6125696125646124dc8c8b63ffffffff61322116565b614a09565b60ff16955060008611801561257e5750600d86105b15156125d4576040805160e560020a62461bcd02815260206004820152600b60248201527f6d6f6e7468206572726f72000000000000000000000000000000000000000000604482015290519081900360640190fd5b6125ea6124e16124dc8c8b63ffffffff61322116565b94506107e1851180156125fe5750610bb885105b1515612654576040805160e560020a62461bcd02815260206004820152600a60248201527f79656172206572726f7200000000000000000000000000000000000000000000604482015290519081900360640190fd5b61266a6124e16124dc8c8c63ffffffff61322116565b9350601984106126c4576040805160e560020a62461bcd02815260206004820152600a60248201527f686f7572206572726f7200000000000000000000000000000000000000000000604482015290519081900360640190fd5b6126da6124e16124dc8c8c63ffffffff61322116565b9250603c8310612734576040805160e560020a62461bcd02815260206004820152600c60248201527f6d696e757465206572726f720000000000000000000000000000000000000000604482015290519081900360640190fd5b61274a6124e16124dc8c8c63ffffffff61322116565b9150603c82106127a4576040805160e560020a62461bcd02815260206004820152600c60248201527f7365636f6e64206572726f720000000000000000000000000000000000000000604482015290519081900360640190fd5b506402540be40084026305f5e100860201620f4240870201612710840201606483020181018c81119b5099505050505050505050509250929050565b60606000806000806000606060008060008a519450846040519080825280601f01601f191660200182016040528015612823578160200160208202803883390190505b509350600085118015612837575060048506155b151561288d576040805160e560020a62461bcd02815260206004820152601760248201527f696e76616c69642062617365363420656e636f64696e67000000000000000000604482015290519081900360640190fd5b604080517f3d00000000000000000000000000000000000000000000000000000000000000815290519081900360010190208b518c9060011988019081106128d157fe5b90602001015160f860020a900460f860020a026040516020018082600160f860020a031916600160f860020a03191681526001019150506040516020818303038152906040526040518082805190602001908083835b602083106129465780518252601f199092019160209182019101612927565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902060001916141561298857600285039450612a7f565b604080517f3d00000000000000000000000000000000000000000000000000000000000000815290519081900360010190208b518c9060001988019081106129cc57fe5b90602001015160f860020a900460f860020a026040516020018082600160f860020a031916600160f860020a03191681526001019150506040516020818303038152906040526040518082805190602001908083835b60208310612a415780518252601f199092019160209182019101612a22565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020600019161415612a7f576001850394505b505060048084040260005b81811015612de1576040805160a081018252607b815260006020820152600080516020615186833981519152918101919091526000805160206151e6833981519152606082015260008051602061516683398151915260808201528b5160018301928d918110612af657fe5b90602001015160f860020a900460f860020a0260f860020a9004815181101515612b1c57fe5b90602001015160f860020a900460f860020a02985060a060405190810160405280607b81526020016000815260200160008051602061518683398151915281526020016000805160206151e683398151915281526020016000805160206151668339815191528152508b82806001019350815181101515612b9957fe5b90602001015160f860020a900460f860020a0260f860020a9004815181101515612bbf57fe5b90602001015160f860020a900460f860020a02975060a060405190810160405280607b81526020016000815260200160008051602061518683398151915281526020016000805160206151e683398151915281526020016000805160206151668339815191528152508b82806001019350815181101515612c3c57fe5b90602001015160f860020a900460f860020a0260f860020a9004815181101515612c6257fe5b90602001015160f860020a900460f860020a02965060a060405190810160405280607b81526020016000815260200160008051602061518683398151915281526020016000805160206151e683398151915281526020016000805160206151668339815191528152508b82806001019350815181101515612cdf57fe5b90602001015160f860020a900460f860020a0260f860020a9004815181101515612d0557fe5b0160200151845160f860020a9182900490910296506001840193600160f860020a03198b81166004026010828d16041716918691908110612d4257fe5b906020010190600160f860020a031916908160001a905350835160018401936010600160f860020a03198b8116919091026004828c16041716918691908110612d8757fe5b906020010190600160f860020a031916908160001a90535083516001840193600160f860020a0319898116604002891716918691908110612dc457fe5b906020010190600160f860020a031916908160001a905350612a8a565b81850360021415612f73576040805160a081018252607b815260006020820152600080516020615186833981519152918101919091526000805160206151e6833981519152606082015260008051602061516683398151915260808201528b5160018301928d918110612e5057fe5b90602001015160f860020a900460f860020a0260f860020a9004815181101515612e7657fe5b90602001015160f860020a900460f860020a02985060a060405190810160405280607b81526020016000815260200160008051602061518683398151915281526020016000805160206151e683398151915281526020016000805160206151668339815191528152508b82806001019350815181101515612ef357fe5b90602001015160f860020a900460f860020a0260f860020a9004815181101515612f1957fe5b0160200151845160f860020a9182900490910298506001840193600160f860020a03198b81166004026010828d16041716918691908110612f5657fe5b906020010190600160f860020a031916908160001a9053506131e9565b818503600314156131e9576040805160a081018252607b815260006020820152600080516020615186833981519152918101919091526000805160206151e6833981519152606082015260008051602061516683398151915260808201528b5160018301928d918110612fe257fe5b90602001015160f860020a900460f860020a0260f860020a900481518110151561300857fe5b90602001015160f860020a900460f860020a02985060a060405190810160405280607b81526020016000815260200160008051602061518683398151915281526020016000805160206151e683398151915281526020016000805160206151668339815191528152508b8280600101935081518110151561308557fe5b90602001015160f860020a900460f860020a0260f860020a90048151811015156130ab57fe5b90602001015160f860020a900460f860020a02975060a060405190810160405280607b81526020016000815260200160008051602061518683398151915281526020016000805160206151e683398151915281526020016000805160206151668339815191528152508b8280600101935081518110151561312857fe5b90602001015160f860020a900460f860020a0260f860020a900481518110151561314e57fe5b0160200151845160f860020a9182900490910297506001840193600160f860020a03198b81166004026010828d1604171691869190811061318b57fe5b906020010190600160f860020a031916908160001a905350835160018401936010600160f860020a03198b8116919091026004828c160417169186919081106131d057fe5b906020010190600160f860020a031916908160001a9053505b50508152979650505050505050565b6132006150c6565b50604080518082019091528151815260208281019082018190525b50919050565b6132296150c6565b613234838383614e3c565b5092915050565b6132436150c6565b815183516000918291101561325a5784925061329c565b5050815183516020808601519085015191019190910390600190821461328a575082516020840151819020908220145b801561329857835185510385525b8492505b505092915050565b606080600083600001516040519080825280601f01601f1916602001820160405280156132db578160200160208202803883390190505b5091506020820190506132348185602001518660000151614ead565b60008281808080808080808080805b8b51811015613b73578b517f3000000000000000000000000000000000000000000000000000000000000000908d908390811061333f57fe5b90602001015160f860020a900460f860020a02600160f860020a031916101580156133b557508b517f3900000000000000000000000000000000000000000000000000000000000000908d908390811061339557fe5b90602001015160f860020a900460f860020a02600160f860020a03191611155b80156133bf575083155b1561348957841561342a576133db8a600a63ffffffff614ef116565b8c51909a5061341d906030908e90849081106133f357fe5b90602001015160f860020a900460f860020a0260f860020a9004038b614f2690919063ffffffff16565b9950600190970196613484565b6001955061343f8b600a63ffffffff614ef116565b8c51909b50613481906030908e908490811061345757fe5b90602001015160f860020a900460f860020a0260f860020a9004038c614f2690919063ffffffff16565b9a505b613b6b565b8b517f3000000000000000000000000000000000000000000000000000000000000000908d90839081106134b957fe5b90602001015160f860020a900460f860020a02600160f860020a0319161015801561352f57508b517f3900000000000000000000000000000000000000000000000000000000000000908d908390811061350f57fe5b90602001015160f860020a900460f860020a02600160f860020a03191611155b80156135385750835b156135975761354e89600a63ffffffff614ef116565b8c51909950613590906030908e908490811061356657fe5b90602001015160f860020a900460f860020a0260f860020a9004038a614f2690919063ffffffff16565b9850613b6b565b8b517f2e00000000000000000000000000000000000000000000000000000000000000908d90839081106135c757fe5b90602001015160f860020a900460f860020a02600160f860020a03191614156136f657851515613641576040805160e560020a62461bcd02815260206004820152601560248201527f6d697373696e6720696e74656772616c20706172740000000000000000000000604482015290519081900360640190fd5b8415613697576040805160e560020a62461bcd02815260206004820152601760248201527f6475706c696361746520646563696d616c20706f696e74000000000000000000604482015290519081900360640190fd5b83156136ed576040805160e560020a62461bcd02815260206004820152601660248201527f646563696d616c206166746572206578706f6e656e7400000000000000000000604482015290519081900360640190fd5b60019450613b6b565b8b517f2d00000000000000000000000000000000000000000000000000000000000000908d908390811061372657fe5b90602001015160f860020a900460f860020a02600160f860020a031916141561385857821561379f576040805160e560020a62461bcd02815260206004820152600b60248201527f6475706c6963617465202d000000000000000000000000000000000000000000604482015290519081900360640190fd5b81156137f5576040805160e560020a62461bcd02815260206004820152600a60248201527f6578747261207369676e00000000000000000000000000000000000000000000604482015290519081900360640190fd5b60018701811461384f576040805160e560020a62461bcd02815260206004820152601e60248201527f2d207369676e206e6f7420696d6d6564696174656c7920616674657220650000604482015290519081900360640190fd5b60019250613b6b565b8b517f2b00000000000000000000000000000000000000000000000000000000000000908d908390811061388857fe5b90602001015160f860020a900460f860020a02600160f860020a03191614156139ba578115613901576040805160e560020a62461bcd02815260206004820152600b60248201527f6475706c6963617465202b000000000000000000000000000000000000000000604482015290519081900360640190fd5b8215613957576040805160e560020a62461bcd02815260206004820152600a60248201527f6578747261207369676e00000000000000000000000000000000000000000000604482015290519081900360640190fd5b6001870181146139b1576040805160e560020a62461bcd02815260206004820152601e60248201527f2b207369676e206e6f7420696d6d6564696174656c7920616674657220650000604482015290519081900360640190fd5b60019150613b6b565b8b517f4500000000000000000000000000000000000000000000000000000000000000908d90839081106139ea57fe5b90602001015160f860020a900460f860020a02600160f860020a0319161480613a5d57508b517f6500000000000000000000000000000000000000000000000000000000000000908d9083908110613a3e57fe5b90602001015160f860020a900460f860020a02600160f860020a031916145b15613b1b57851515613ab9576040805160e560020a62461bcd02815260206004820152601560248201527f6d697373696e6720696e74656772616c20706172740000000000000000000000604482015290519081900360640190fd5b8315613b0f576040805160e560020a62461bcd02815260206004820152601960248201527f6475706c6963617465206578706f6e656e742073796d626f6c00000000000000604482015290519081900360640190fd5b60019350809650613b6b565b6040805160e560020a62461bcd02815260206004820152600d60248201527f696e76616c696420646967697400000000000000000000000000000000000000604482015290519081900360640190fd5b600101613306565b8280613b7c5750815b15613b9557600287018111613b9057600080fd5b613baa565b8315613baa57600187018111613baa57600080fd5b8215613c36578d8910613c2c57604e8e8a0310613c11576040805160e560020a62461bcd02815260206004820152600d60248201527f6578706f6e656e74203e20373700000000000000000000000000000000000000604482015290519081900360640190fd5b8d8903600a0a8b811515613c2157fe5b049a508a9c50613eb0565b888e039d50613c49565b613c468e8a63ffffffff614f2616565b9d505b878e10613d6f57604e8810613cce576040805160e560020a62461bcd02815260206004820152602260248201527f6d6f7265207468616e20373720646563696d616c20646967697473207061727360448201527f6564000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b613ce28b600a8a900a63ffffffff614ef116565b9a50613cf48b8b63ffffffff614f2616565b9a50604e888f0310613d50576040805160e560020a62461bcd02815260206004820152600d60248201527f6578706f6e656e74203e20373700000000000000000000000000000000000000604482015290519081900360640190fd5b613d68888f03600a0a8c614ef190919063ffffffff16565b9a50613eac565b968d900396604e8810613df2576040805160e560020a62461bcd02815260206004820152602260248201527f6d6f7265207468616e20373720646563696d616c20646967697473207061727360448201527f6564000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b87600a0a8a811515613e0057fe5b049950604e8e10613e81576040805160e560020a62461bcd02815260206004820152602260248201527f6d6f7265207468616e20373720646563696d616c20646967697473207061727360448201527f6564000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b613e978e600a0a8c614ef190919063ffffffff16565b9a50613ea98b8b63ffffffff614f2616565b9a505b8a9c505b50505050505050505050505092915050565b600254600090600160a060020a03161580613eef5750600254613eed90600160a060020a031661212d565b155b15613f0057613efe6000612131565b505b600260009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015613f5357600080fd5b505af1158015613f67573d6000803e3d6000fd5b505050506040513d6020811015613f7d57600080fd5b5051600354600160a060020a0390811691161461403357600260009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015613fe757600080fd5b505af1158015613ffb573d6000803e3d6000fd5b505050506040513d602081101561401157600080fd5b505160038054600160a060020a031916600160a060020a039092169190911790555b6003546040517f524f3889000000000000000000000000000000000000000000000000000000008152602060048201818152855160248401528551600160a060020a039094169363524f388993879383926044909201919085019080838360005b838110156140ac578181015183820152602001614094565b50505050905090810190601f1680156140d95780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1580156116a757600080fd5b606080600083600001518560000151016040519080825280601f01601f191660200182016040528015614135578160200160208202803883390190505b5091506020820190506141518186602001518760000151614ead565b8451602085015185516141679284019190614ead565b509392505050565b6002546000908190600160a060020a0316158061419e575060025461419c90600160a060020a031661212d565b155b156141af576141ad6000612131565b505b600260009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561420257600080fd5b505af1158015614216573d6000803e3d6000fd5b505050506040513d602081101561422c57600080fd5b5051600354600160a060020a039081169116146142e257600260009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561429657600080fd5b505af11580156142aa573d6000803e3d6000fd5b505050506040513d60208110156142c057600080fd5b505160038054600160a060020a031916600160a060020a039092169190911790555b600354604080517f2ef3accc0000000000000000000000000000000000000000000000000000000081526024810186905260048101918252875160448201528751600160a060020a0390931692632ef3accc9289928892829160640190602086019080838360005b8381101561436257818101518382015260200161434a565b50505050905090810190601f16801561438f5780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b1580156143af57600080fd5b505af11580156143c3573d6000803e3d6000fd5b505050506040513d60208110156143d957600080fd5b50519050670de0b6b3a76400003a8402018111156143fa5760009150614167565b6003546040517fc51be90f00000000000000000000000000000000000000000000000000000000815260006004820181815260648301879052608060248401908152895160848501528951600160a060020a039095169463c51be90f948794938c938c938c93604481019160a49091019060208801908083838c5b8381101561448d578181015183820152602001614475565b50505050905090810190601f1680156144ba5780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b838110156144ed5781810151838201526020016144d5565b50505050905090810190601f16801561451a5780820380516001836020036101000a031916815260200191505b5096505050505050506020604051808303818588803b15801561453c57600080fd5b505af1158015614550573d6000803e3d6000fd5b50505050506040513d602081101561456757600080fd5b505195945050505050565b606061457f60085461213b565b600160a060020a031663443dd2a46040518163ffffffff1660e060020a028152600401600060405180830381600087803b1580156145bc57600080fd5b505af11580156145d0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156145f957600080fd5b81019080805164010000000081111561461157600080fd5b8201602081018481111561462457600080fd5b815185602082028301116401000000008211171561464157600080fd5b509094505050505090565b60008061466c731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed61212d565b11156146dd5760028054600160a060020a031916731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed17905560408051808201909152600b81527f6574685f6d61696e6e657400000000000000000000000000000000000000000060208201526146d590614f38565b506001610604565b60006146fc73c03a2615d5efaf5f49f60b7bb6583eaec212fdf161212d565b11156147655760028054600160a060020a03191673c03a2615d5efaf5f49f60b7bb6583eaec212fdf117905560408051808201909152600c81527f6574685f726f707374656e33000000000000000000000000000000000000000060208201526146d590614f38565b600061478473b7a07bcf2ba2f2703b24c0691b5278999c59ac7e61212d565b11156147ed5760028054600160a060020a03191673b7a07bcf2ba2f2703b24c0691b5278999c59ac7e17905560408051808201909152600981527f6574685f6b6f76616e000000000000000000000000000000000000000000000060208201526146d590614f38565b600061480c73146500cfd35b22e4a392fe0adc06de1a1368ed4861212d565b11156148755760028054600160a060020a03191673146500cfd35b22e4a392fe0adc06de1a1368ed4817905560408051808201909152600b81527f6574685f72696e6b65627900000000000000000000000000000000000000000060208201526146d590614f38565b6000614894736f485c8bf6fc43ea212e93bbf8ce046c7f1cb47561212d565b11156148c8575060028054600160a060020a031916736f485c8bf6fc43ea212e93bbf8ce046c7f1cb4751790556001610604565b60006148e77320e12a1f859b3feae5fb2a0a32c18f5a65555bbf61212d565b111561491b575060028054600160a060020a0319167320e12a1f859b3feae5fb2a0a32c18f5a65555bbf1790556001610604565b600061493a7351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa61212d565b111561496e575060028054600160a060020a0319167351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa1790556001610604565b50600090565b60008060008060008551604114151561499357600094508493506149f2565b50505060208301516040840151606085015160001a601b60ff821610156149b857601b015b8060ff16601b141580156149d057508060ff16601c14155b156149e157600094508493506149f2565b6149ed87828585614f4b565b945094505b5050509250929050565b60006115a88260006132f7565b600080826040516020018082805190602001908083835b60208310614a3f5780518252601f199092019160209182019101614a20565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040526040518082805190602001908083835b60208310614aa25780518252601f199092019160209182019101614a83565b5181516000196020949094036101000a93909301928316921916919091179052604080519390910183900383207f4a616e00000000000000000000000000000000000000000000000000000000008452905192839003600301909220919450508314159150614b169050576001915061321b565b604080517f466562000000000000000000000000000000000000000000000000000000000081529051908190036003019020811415614b58576002915061321b565b604080517f4d6172000000000000000000000000000000000000000000000000000000000081529051908190036003019020811415614b9a576003915061321b565b604080517f417072000000000000000000000000000000000000000000000000000000000081529051908190036003019020811415614bdc576004915061321b565b604080517f4d6179000000000000000000000000000000000000000000000000000000000081529051908190036003019020811415614c1e576005915061321b565b604080517f4a756e000000000000000000000000000000000000000000000000000000000081529051908190036003019020811415614c60576006915061321b565b604080517f4a756c000000000000000000000000000000000000000000000000000000000081529051908190036003019020811415614ca2576007915061321b565b604080517f417567000000000000000000000000000000000000000000000000000000000081529051908190036003019020811415614ce4576008915061321b565b604080517f536570000000000000000000000000000000000000000000000000000000000081529051908190036003019020811415614d26576009915061321b565b604080517f4f6374000000000000000000000000000000000000000000000000000000000081529051908190036003019020811415614d6857600a915061321b565b604080517f4e6f76000000000000000000000000000000000000000000000000000000000081529051908190036003019020811415614daa57600b915061321b565b604080517f446563000000000000000000000000000000000000000000000000000000000081529051908190036003019020811415614dec57600c915061321b565b6040805160e560020a62461bcd02815260206004820152601160248201527f6e6f7420612076616c6964206d6f6e7468000000000000000000000000000000604482015290519081900360640190fd5b614e446150c6565b6000614e628560000151866020015186600001518760200151614f88565b60208087018051918601919091528051820385528651905191925001811415614e8e5760008552614ea4565b8351835186519101900385528351810160208601525b50909392505050565b60005b60208210614ed2578251845260209384019390920191601f1990910190614eb0565b50905182516020929092036101000a6000190180199091169116179052565b600080831515614f045760009150613234565b50828202828482811515614f1457fe5b0414614f1f57600080fd5b9392505050565b600082820183811015614f1f57600080fd5b805161032d9060049060208401906150dd565b60008060008060405188815287602082015286604082015285606082015260208160808360006001610bb8f1905190999098509650505050505050565b600083818080808080808c8b116150325760208b11614ffb5760018b60200360080260020a03196001029550858a511694508a8d8d010393508588511692505b828514614ff357838810614fe0578c8c019850615038565b8780600101985050858851169250614fc8565b879850615038565b8a8a209150600096505b8a8d03871161503257508987208181141561502257879850615038565b6001978801979690960195615005565b8c8c0198505b5050505050505050949350505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106150895782800160ff198235161785556150b6565b828001600101855582156150b6579182015b828111156150b657823582559160200191906001019061509b565b506150c292915061514b565b5090565b604080518082019091526000808252602082015290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061511e57805160ff19168380011785556150b6565b828001600101855582156150b6579182015b828111156150b6578251825591602001919060010190615130565b61060491905b808211156150c257600081556001016151515600001a1b1c1d1e1f202122232425262728292a2b2c2d2e2f30313233000000000000000000000000000000003e003e003f3435363738393a3b3c3d00000000000073656e646572206973206e6f74206120636f6e74726f6c6c65720000000000004eb5629fd8501532aeb93b1b6a5b5b2ae398561e56514ed4b4b0c5ac2d381b6e00000102030405060708090a0b0c0d0e0f10111213141516171819000000003fa165627a7a72305820f4cbcb1c991e9c745a7613ffdea81721a65e2bfa7b4e94a5d186a97a5f2928ff0029","srcmap":"1225:15100:16:-;;;3096:540;8:9:-1;5:2;;;30:1;27;20:12;5:2;3096:540:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1312:12:11;:23;;-1:-1:-1;;;;;1312:23:11;;;-1:-1:-1;;;;;;1312:23:11;;;;;;;;:12;1345:24;;;;;1356:12;;1345:24;;;;;;1334:15:8;:38;;;1366:19:15;:46;;;3325:161:16;;;;;;;;;;;;;;;;;;;;;;;3096:540;;;;;3325:161;;:25;;:161;:::i;:::-;-1:-1:-1;3496:3:16;:39;;-1:-1:-1;;;;;;3496:39:16;-1:-1:-1;;;;;3496:39:16;;;;;3545;3572:11;3545:26;;;;:39;:::i;:::-;3594:35;3612:16;3594:17;;;;:35;:::i;:::-;3096:540;;;;1225:15100;;33991:132:5;11360:3;;-1:-1:-1;;;;;11360:3:5;11352:15;;11351:49;;-1:-1:-1;11391:3:5;;11371:25;;-1:-1:-1;;;;;11391:3:5;11371:11;;;;:25;:::i;:::-;:28;11351:49;11348:101;;;11414:35;11082:1;11414:19;;;;:35;:::i;:::-;;11348:101;11484:3;;;;;;;;;-1:-1:-1;;;;;11484:3:5;-1:-1:-1;;;;;11484:14:5;;:16;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11484:16:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11484:16:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11484:16:5;11471:8;;-1:-1:-1;;;;;11471:8:5;;;11463:37;;;11460:92;;11535:3;;;;;;;;;-1:-1:-1;;;;;11535:3:5;-1:-1:-1;;;;;11535:14:5;;:16;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11535:16:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11535:16:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11535:16:5;11514:8;:38;;-1:-1:-1;;;;;;11514:38:5;-1:-1:-1;;;;;11514:38:5;;;;;;;;;11460:92;34080:8;;:36;;;;;;;;;;;;;;-1:-1:-1;;;;;34080:8:5;;;;:26;;:36;;;;;:8;;:36;;;;;;;;:8;;:36;;;5:2:-1;;;;30:1;27;20:12;5:2;34080:36:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;34080:36:5;;;;33991:132;:::o;33872:114::-;11360:3;;-1:-1:-1;;;;;11360:3:5;11352:15;;11351:49;;-1:-1:-1;11391:3:5;;11371:25;;-1:-1:-1;;;;;11391:3:5;11371:11;;;;:25;:::i;:::-;:28;11351:49;11348:101;;;11414:35;11082:1;11414:19;;;;:35;:::i;:::-;;11348:101;11484:3;;;;;;;;;-1:-1:-1;;;;;11484:3:5;-1:-1:-1;;;;;11484:14:5;;:16;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11484:16:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11484:16:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11484:16:5;11471:8;;-1:-1:-1;;;;;11471:8:5;;;11463:37;;;11460:92;;11535:3;;;;;;;;;-1:-1:-1;;;;;11535:3:5;-1:-1:-1;;;;;11535:14:5;;:16;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11535:16:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11535:16:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11535:16:5;11514:8;:38;;-1:-1:-1;;;;;;11514:38:5;-1:-1:-1;;;;;11514:38:5;;;;;;;;;11460:92;33950:8;;:29;;;;;;;;;;;;;;;-1:-1:-1;;;;;33950:8:5;;;;:21;;:29;;;;;:8;;:29;;;;;;;;:8;;:29;;;5:2:-1;;;;30:1;27;20:12;34287:146:5;34399:18;;34376:51::o;11676:183::-;11739:4;11759:21;:19;;;;:21;:::i;:::-;11752:28;11676:183;-1:-1:-1;;11676:183:5:o;11864:1749::-;11912:4;;11931:55;11943:42;11931:11;;;;:55;:::i;:::-;:57;11927:245;;;12013:3;:71;;-1:-1:-1;;;;;;12013:71:5;12041:42;12013:71;;;12098:38;;;;;;;;;;;;;;;;;;;:23;;;;:38;:::i;:::-;-1:-1:-1;12157:4:5;12150:11;;11927:245;12241:1;12185:55;12197:42;12185:11;;;;:55;:::i;:::-;:57;12181:254;;;12275:3;:71;;-1:-1:-1;;;;;;12275:71:5;12303:42;12275:71;;;12360:39;;;;;;;;;;;;;;;;;;;:23;;;;:39;:::i;12181:254::-;12504:1;12448:55;12460:42;12448:11;;;;:55;:::i;:::-;:57;12444:249;;;12536:3;:71;;-1:-1:-1;;;;;;12536:71:5;12564:42;12536:71;;;12621:36;;;;;;;;;;;;;;;;;;;:23;;;;:36;:::i;12444:249::-;12762:1;12706:55;12718:42;12706:11;;;;:55;:::i;:::-;:57;12702:253;;;12796:3;:71;;-1:-1:-1;;;;;;12796:71:5;12824:42;12796:71;;;12881:38;;;;;;;;;;;;;;;;;;;:23;;;;:38;:::i;12702:253::-;13024:1;12968:55;12980:42;12968:11;;;;:55;:::i;:::-;:57;12964:201;;;-1:-1:-1;13058:3:5;:71;;-1:-1:-1;;;;;;13058:71:5;13086:42;13058:71;;;;13143:11;;12964:201;13234:1;13178:55;13190:42;13178:11;;;;:55;:::i;:::-;:57;13174:200;;;-1:-1:-1;13267:3:5;:71;;-1:-1:-1;;;;;;13267:71:5;13295:42;13267:71;;;;13352:11;;13174:200;13443:1;13387:55;13399:42;13387:11;;;;:55;:::i;:::-;:57;13383:202;;;-1:-1:-1;13478:3:5;:71;;-1:-1:-1;;;;;;13478:71:5;13506:42;13478:71;;;;13563:11;;13383:202;-1:-1:-1;13601:5:5;11864:1749;;:::o;39748:118::-;39822:37;;;;:21;;:37;;;;;:::i;:::-;;39748:118;:::o;1225:15100:16:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1225:15100:16;;;-1:-1:-1;1225:15100:16;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;","srcmap-runtime":"1225:15100:16:-;;;;;;;;;-1:-1:-1;;;1225:15100:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13619:111:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;13619:111:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13619:111:5;;-1:-1:-1;13619:111:5;;-1:-1:-1;;;;;;;13619:111:5;;;5441:1204:16;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5441:1204:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5441:1204:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5441:1204:16;;;;-1:-1:-1;5441:1204:16;-1:-1:-1;5441:1204:16;;-1:-1:-1;5441:1204:16;;;;;;;;-1:-1:-1;5441:1204:16;;-1:-1:-1;5441:1204:16;;-1:-1:-1;;;;;;;5441:1204:16;2618:38;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2618:38:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2618:38:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1468:91:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1468:91:11;;;;;;;;-1:-1:-1;;;;;1468:91:11;;;;;;;;;;;;;;1552:105:15;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1552:105:15;;;;;;;;;;;;;;;;;;;;4780:161:16;;;;;;;;;;;;;;;;;5029:127;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5029:127:16;-1:-1:-1;;;;;5029:127:16;;;;;;;;;;;;4414:119;;;;;;3761:202;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3761:202:16;;;;;;;;;;;;4073:170;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4073:170:16;;;;;1629:97:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1629:97:8;;;;13619:111:5;13710:12;;;13720:1;13710:12;;;;;;;;13685:38;;13696:4;;13702:6;;13685:10;:38::i;:::-;13619:111;;:::o;5441:1204:16:-;5730:13;5904:14;5924:18;6032:10;6052:14;6306:18;6437:24;5609:20;:18;:20::i;:::-;-1:-1:-1;;;;;5595:34:16;:10;:34;5587:69;;;;;-1:-1:-1;;;;;5587:69:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;5746:23;;;;:13;:23;;;;;;-1:-1:-1;;;;;5746:23:16;;-1:-1:-1;5787:19:16;;;5779:60;;;;;-1:-1:-1;;;;;5779:60:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;5946:20;5960:5;5946:13;:20::i;:::-;5896:70;;;;;;;;;5984:9;5976:45;;;;;;;-1:-1:-1;;;;;5976:45:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;6127:25;6097:68;;;;;;;;-1:-1:-1;;6097:68:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6110:7;;6119:6;;6097:68;;6127:25;6097:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6154:10;6097:12;:68::i;:::-;6076:89;;-1:-1:-1;6076:89:16;-1:-1:-1;6220:419:16;;;;6327:42;6350:18;6360:7;6350:9;:18::i;:::-;6327:22;:42::i;:::-;6537:23;;;;:13;:23;;;;;6530:30;;-1:-1:-1;;;;;;6530:30:16;;;6306:63;-1:-1:-1;6464:9:16;;-1:-1:-1;6575:53:16;6592:5;6306:63;6464:9;6575:16;:53::i;:::-;5441:1204;;;;;;;;;;:::o;2618:38::-;;;;;;;;;;;;;;;-1:-1:-1;;2618:38:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1468:91:11:-;1540:12;;-1:-1:-1;;;;;1540:12:11;1468:91;;:::o;1552:105:15:-;1631:19;;1552:105;:::o;4780:161:16:-;1489:25:8;1503:10;1489:13;:25::i;:::-;1481:64;;;;;;;-1:-1:-1;;;;;1481:64:8;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1481:64:8;;;;;;;;;;;;;;;4890:44:16;4912:9;4923:10;;4890:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4890:21:16;;-1:-1:-1;;;;;4890:44:16:i;:::-;4780:161;;;:::o;5029:127::-;1489:25:8;1503:10;1489:13;:25::i;:::-;1481:64;;;;;;;-1:-1:-1;;;;;1481:64:8;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1481:64:8;;;;;;;;;;;;;;;5121:28:16;5128:3;5133:6;5141:7;5121:6;:28::i;4414:119::-;1489:25:8;1503:10;1489:13;:25::i;:::-;1481:64;;;;;;;-1:-1:-1;;;;;1481:64:8;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1481:64:8;;;;;;;;;;;;;;;4498:28:16;4516:9;4498:17;:28::i;:::-;4414:119;:::o;3761:202::-;1489:25:8;1503:10;1489:13;:25::i;:::-;1481:64;;;;;;;-1:-1:-1;;;;;1481:64:8;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1481:64:8;;;;;;;;;;;;;;;3854:38:16;:25;3882:10;;3854:38;:::i;:::-;-1:-1:-1;3907:49:16;;;3933:10;3907:49;;;;;;;;;;;;;;;;;3933:10;;3945;;;;3907:49;;;;3945:10;;;;3907:49;;;;;;;;;;-1:-1:-1;3907:49:16;;-1:-1:-1;;;;;3907:49:16;3761:202;;:::o;4073:170::-;1489:25:8;1503:10;1489:13;:25::i;:::-;1481:64;;;;;;;-1:-1:-1;;;;;1481:64:8;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1481:64:8;;;;;;;;;;;;;;;4150:37:16;4177:9;4150:26;:37::i;:::-;4202:34;;;4214:10;4202:34;;;;;;;;;;;;;;;;;;;;;4073:170;:::o;1629:97:8:-;1704:15;;1629:97;:::o;33755:112:5:-;11360:3;;33815:7;;-1:-1:-1;;;;;11360:3:5;11352:15;;11351:49;;-1:-1:-1;11391:3:5;;11371:25;;-1:-1:-1;;;;;11391:3:5;11371:11;:25::i;:::-;:28;11351:49;11348:101;;;11414:35;11082:1;11414:19;:35::i;:::-;;11348:101;11484:3;;;;;;;;;-1:-1:-1;;;;;11484:3:5;-1:-1:-1;;;;;11484:14:5;;:16;;;;;-1:-1:-1;;;11484:16:5;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11484:16:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11484:16:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11484:16:5;11471:8;;-1:-1:-1;;;;;11471:8:5;;;11463:37;;;11460:92;;11535:3;;;;;;;;;-1:-1:-1;;;;;11535:3:5;-1:-1:-1;;;;;11535:14:5;;:16;;;;;-1:-1:-1;;;11535:16:5;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11535:16:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11535:16:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11535:16:5;11514:8;:38;;-1:-1:-1;;;;;;11514:38:5;-1:-1:-1;;;;;11514:38:5;;;;;;;;;11460:92;33840:8;;;;;;;;;-1:-1:-1;;;;;33840:8:5;-1:-1:-1;;;;;33840:18:5;;:20;;;;;-1:-1:-1;;;33840:20:5;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;33840:20:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;33840:20:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;33840:20:5;;-1:-1:-1;33755:112:5;:::o;2198:201:15:-;2256:6;2264:7;2273;2282:4;2288;2294;2300:7;2342:32;2354:19;;2342:11;:32::i;:::-;-1:-1:-1;;;;;2326:62:15;;2389:2;2326:66;;;;;-1:-1:-1;;;2326:66:15;;;;;;;-1:-1:-1;;;;;2326:66:15;-1:-1:-1;;;;;2326:66:15;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2326:66:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2326:66:15;;;;;;39:16:-1;36:1;17:17;2:54;101:4;2326:66:15;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:3;5:12;;2:2;;;30:1;27;20:12;2:2;2326:66:15;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;218:10;;268:11;251:29;;293:43;;;290:58;-1:-1;239:118;236:2;;;370:1;367;360:12;236:2;-1:-1;;2326:66:15;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2326:66:15;;-1:-1:-1;2326:66:15;;-1:-1:-1;2326:66:15;-1:-1:-1;2326:66:15;-1:-1:-1;2326:66:15;;-1:-1:-1;2326:66:15;-1:-1:-1;;;2198:201:15;;;;;;;;;:::o;11831:2174:16:-;11936:4;11942;12289:22;12698:20;13094:23;13278:14;13302;13606:19;1894:3;12004:6;:13;:27;;12000:88;;;12047:30;;;-1:-1:-1;;;;;12047:30:16;;;;;;;;;;;;;;;;;;;;;;;;;;;12000:88;1942:2;12190:6;12197:1;12190:9;;;;;;;;;;;;;;-1:-1:-1;;;12190:9:16;;;;;;12185:15;:33;12181:98;;12234:34;;;-1:-1:-1;;;;;12234:34:16;;;;;;;;;;;;;;;;;;;;;;;;;;;12181:98;12314:25;;;1942:2;12314:25;;;;;;;;;;;;;17:15:-1;;105:10;12314:25:16;88:34:-1;136:17;;-1:-1;12314:25:16;12289:50;;12362;12372:6;12380:1;1942:2;12399:9;12410:1;12362:9;:50::i;:::-;12568:44;;12350:62;;-1:-1:-1;2034:49:16;;12568:6;;12575:36;;12568:44;;;;;;;;;;;-1:-1:-1;;;12568:44:16;;-1:-1:-1;;;12568:44:16;-1:-1:-1;;;12563:50:16;;2456:3;12502:6;1942:2;1990:1;12509:32;12502:40;;;;;;;;;;;;;;-1:-1:-1;;;12502:40:16;;;;;;12497:46;:63;:116;:132;12493:195;;12645:32;;;-1:-1:-1;;;;;12645:32:16;;;;;;;;;;;;;;;;;;;;;;;;;;;12493:195;12721:23;;;2034:49;12721:23;;;;;;;;;;;;;17:15:-1;;105:10;12721:23:16;88:34:-1;136:17;;-1:-1;;12698:46:16;-1:-1:-1;12764:81:16;12774:6;12782:36;2034:49;12698:46;12843:1;12764:9;:81::i;:::-;12754:91;;12943:48;12960:7;12969:9;12980:10;12943:16;:48::i;:::-;12942:49;12938:107;;;13007:27;;;-1:-1:-1;;;;;13007:27:16;;;;;;;;;;;;;;;;;;;;;;;;;;;12938:107;13120:13;;;13130:2;13120:13;;;;;;;;;;;;;17:15:-1;;105:10;13120:13:16;88:34:-1;136:17;;-1:-1;13120:13:16;13094:39;;13226:41;13236:7;13245:2;13249;13253:10;13265:1;13226:9;:41::i;:::-;13213:54;;13351:44;13370:10;13383:11;13351;:44::i;:::-;13326:69;;-1:-1:-1;13326:69:16;-1:-1:-1;13469:10:16;;13465:63;;;13495:22;;;-1:-1:-1;;;;;13495:22:16;;;;;;;;;;;;;;;;;;;;;;;;;;;13465:63;13628:29;;;2186:2;13628:29;;;;;;;;;;;;;17:15:-1;;105:10;13628:29:16;88:34:-1;136:17;;-1:-1;;13606:51:16;-1:-1:-1;13676:65:16;13686:7;2310:33;2186:2;13606:51;13739:1;13676:9;:65::i;:::-;13667:74;;13832:21;13846:6;13832:13;:21::i;:::-;13822:32;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;13822:32:16;;;;;;;;;;;;;;;;13756:98;;;13783:33;13807:7;13790:25;;;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;13790:25:16;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;13790:25:16;;;13783:33;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;13783::16;;;;;;;-1:-1:-1;263:2;;-1:-1;;13783:33:16;;;;-1:-1:-1;13783:33:16;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13783:33:16;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13783:33:16;13766:51;;;13783:33;13766:51;;;;;;;;;26:21:-1;;;22:32;;6:49;;13766:51:16;;;;;;;13756:62;;13766:51;;;;13756:62;;;;;13766:51;13756:62;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;13756:62:16;;;;;;;;;;;;;;;;:98;;;;;13752:163;;;13870:34;;;-1:-1:-1;;;;;13870:34:16;;;;;;;;;;;;;;;;;;;;;;;;;;;13752:163;13930:34;13944:10;13956:7;13930:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;13930:34:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13930:34:16;;;;;;;;;;;;;;;;;;;;;;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;13930:34:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13982:4:16;;13988:9;;-1:-1:-1;11831:2174:16;-1:-1:-1;;;;;;;;;11831:2174:16:o;6793:860::-;6849:6;6868:12;7067:23;7256:25;;:::i;:::-;6900:5;6883:23;;;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;6883:23:16;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;6883:23:16;;;:30;6868:45;;7015:1;7005:7;:11;:28;;;;;7031:2;7020:7;:13;;7005:28;6997:59;;;;;;;-1:-1:-1;;;;;6997:59:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;7093:12;;;7103:1;7093:12;;;;;;;;;;;;;17:15:-1;;105:10;7093:12:16;88:34:-1;136:17;;-1:-1;7093:12:16;7067:38;;7115:55;7142:5;7125:23;;;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;7125:23:16;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;7125:23:16;;;7150:1;7153;7156:10;7168:1;7115:9;:55::i;:::-;-1:-1:-1;2589:22:16;;;;;;;;;;;;;;;;7188:21;;2589:22;;7198:10;;2589:22;;7188:21;;;;;2589:22;7188:21;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;7188:21:16;;;;;;;;;;;;;;;;:37;;;;7180:65;;;;;;;-1:-1:-1;;;;;7180:65:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;7284:15;:5;:13;:15::i;:::-;7256:43;;7309:25;7320:13;:11;;;;;;;;;;;;;;;;;;;:13::i;:::-;7309:4;;:25;:10;:25;:::i;:::-;;7443:4;:9;;;7433:19;;7462:25;7473:13;:11;;;;;;;;;;;;;;;;;;;:13::i;:::-;7462:4;;:25;:10;:25;:::i;:::-;-1:-1:-1;7505:9:16;;-1:-1:-1;;7518:11:16;;7505:24;7497:52;;;;;-1:-1:-1;;;;;7497:52:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;7631:15;:4;:13;:15::i;:::-;7624:22;6793:860;-1:-1:-1;;;;;6793:860:16:o;1899:137:13:-;1972:4;1995:34;2015:9;2026:2;1995:19;:34::i;:::-;1988:41;1899:137;-1:-1:-1;;1899:137:13:o;3653:191:15:-;3760:32;3772:19;;3760:11;:32::i;:::-;-1:-1:-1;;;;;3744:65:15;;3810:6;3818:5;3825:11;3744:93;;;;;-1:-1:-1;;;3744:93:15;;;;;;;-1:-1:-1;;;;;3744:93:15;-1:-1:-1;;;;;3744:93:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3744:93:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3744:93:15;;;;3653:191;;;:::o;1796:158:8:-;1860:4;1895:28;1907:15;;1895:11;:28::i;:::-;-1:-1:-1;;;;;1883:54:8;;1938:8;1883:64;;;;;-1:-1:-1;;;1883:64:8;;;;;;;-1:-1:-1;;;;;1883:64:8;-1:-1:-1;;;;;1883:64:8;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1883:64:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1883:64:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1883:64:8;;1796:158;-1:-1:-1;;1796:158:8:o;9751:1753:16:-;10376:30;;:::i;:::-;10485;;:::i;:::-;10639:6;10755:25;10786:14;10981:27;;:::i;:::-;11125:15;9893:10;:17;9914:1;9893:22;9889:1609;;;9979:39;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;9979:39:16;;;;;;;;9889:1609;;;10166:4;-1:-1:-1;;;;;10158:21:16;;10138:10;:17;10111:24;;;;;;;;;;;;;;;-1:-1:-1;;;;;10111:24:16;;;:17;:24::i;:::-;:44;:68;10107:1391;;;10243:43;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;10243:43:16;;;;;;;;10107:1391;;;10409:62;:60;;;;;;;;;;;;;;;;;;;;;;;;:62::i;:::-;10376:95;;10518:32;:30;;;;;;;;;;;;;;;;;;;:32::i;:::-;10485:65;;10648:1;10639:10;;10634:854;10655:10;:17;10651:1;:21;10634:854;;;10811:28;10825:10;10836:1;10825:13;;;;;;;;;;;;;;;;;;10811;:28::i;:::-;10754:85;;;;;;;;;10865:9;10857:45;;;;;;;-1:-1:-1;;;;;10857:45:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;11011:21;:11;:19;:21::i;:::-;11143:86;;;;;;;;;;;;-1:-1:-1;;;;;11143:86:16;;;;10981:51;;-1:-1:-1;11143:86:16;;11165:52;11207:9;11165:34;:24;:9;10981:51;11165:24;:16;:24;:::i;:::-;:32;:34::i;:::-;:41;:52;:41;:52;:::i;:::-;11219:9;11143:14;:86::i;:::-;11125:104;;11354:10;11365:1;11354:13;;;;;;;;;;;;;;;;;;;;;11329:22;;;;:13;:22;;;;;;;:38;;-1:-1:-1;;;;;;11329:38:16;-1:-1:-1;;;;;11329:38:16;;;;;;;;;11439:34;11455:17;:6;:15;:17::i;:::-;11439:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;11439:34:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10674:3;;;;;10634:854;;;9751:1753;;;;;;;;;:::o;1350:362:7:-;-1:-1:-1;;;;;1476:20:7;;;1472:189;;;1512:21;;-1:-1:-1;;;;;1512:12:7;;;:21;;;;;1525:7;;1512:21;;;;1525:7;1512:12;:21;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1512:21:7;1472:189;;;1578:6;-1:-1:-1;;;;;1572:22:7;;1595:3;1600:7;1572:36;;;;;-1:-1:-1;;;1572:36:7;;;;;;;-1:-1:-1;;;;;1572:36:7;-1:-1:-1;;;;;1572:36:7;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1572:36:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1572:36:7;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1572:36:7;1564:86;;;;;;;-1:-1:-1;;;;;1564:86:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1676:29;;;-1:-1:-1;;;;;1676:29:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;1350:362;;;:::o;7824:1655:16:-;7885:31;8492:30;;:::i;:::-;8601;;:::i;:::-;8755:6;8879:20;8966:24;;:::i;:::-;9102:15;7919:20;:18;:20::i;:::-;7885:54;;8004:14;:21;8029:1;8004:26;8000:1473;;;8094:32;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;8094:32:16;;;;;;;;8000:1473;;;8282:4;-1:-1:-1;;;;;8274:21:16;;8250:14;:21;8223:24;;;;;;;;;;;;;;;-1:-1:-1;;;;;8223:24:16;;;:17;:24::i;:::-;:48;:72;8219:1254;;;8359:43;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;8359:43:16;;;;;;;;8219:1254;;;8525:62;:60;;;;;;;;;;;;;;;;;;;;;;;;:62::i;:::-;8492:95;;8634:32;:30;;;;;;;;;;;;;;;;;;;:32::i;:::-;8601:65;;8764:1;8755:10;;8750:713;8771:14;:21;8767:1;:25;8750:713;;;8915:32;8929:14;8944:1;8929:17;;;;;;;;;8915:32;8878:69;;;;;;;;8993:16;:6;:14;:16::i;:::-;9120:83;;;;;;;;;;;;-1:-1:-1;;;;;9120:83:16;;;;8966:43;;-1:-1:-1;9120:83:16;;9142:49;9181:9;9142:31;:21;:9;8966:43;9142:21;:16;:21;:::i;:49::-;9193:9;9120:14;:83::i;:::-;9102:101;;9328:14;9343:1;9328:17;;;;;;;;;;;;;;;;;;;;;9303:22;;;;:13;:22;;;;;;;:42;;-1:-1:-1;;;;;;9303:42:16;-1:-1:-1;;;;;9303:42:16;;;;;;;;;9417:31;9433:14;:3;:12;:14::i;:::-;9417:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;9417:31:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8794:3;;;;;8750:713;;;7824:1655;;;;;;;;:::o;33991:132:5:-;11360:3;;-1:-1:-1;;;;;11360:3:5;11352:15;;11351:49;;-1:-1:-1;11391:3:5;;11371:25;;-1:-1:-1;;;;;11391:3:5;11371:11;:25::i;:::-;:28;11351:49;11348:101;;;11414:35;11082:1;11414:19;:35::i;:::-;;11348:101;11484:3;;;;;;;;;-1:-1:-1;;;;;11484:3:5;-1:-1:-1;;;;;11484:14:5;;:16;;;;;-1:-1:-1;;;11484:16:5;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11484:16:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11484:16:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11484:16:5;11471:8;;-1:-1:-1;;;;;11471:8:5;;;11463:37;;;11460:92;;11535:3;;;;;;;;;-1:-1:-1;;;;;11535:3:5;-1:-1:-1;;;;;11535:14:5;;:16;;;;;-1:-1:-1;;;11535:16:5;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11535:16:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11535:16:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11535:16:5;11514:8;:38;;-1:-1:-1;;;;;;11514:38:5;-1:-1:-1;;;;;11514:38:5;;;;;;;;;11460:92;34080:8;;:36;;;;;;;;;;;;;;-1:-1:-1;;;;;34080:8:5;;;;:26;;:36;;;;;:8;;:36;;;;;;;;:8;;:36;;;5:2:-1;;;;30:1;27;20:12;5:2;34080:36:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;34080:36:5;;;;33991:132;:::o;34287:146::-;34399:18;;34376:51::o;11676:183::-;11739:4;11759:21;:19;:21::i;1748:152:11:-;1811:7;1852:4;;:24;;;;;;;;;;;;;;-1:-1:-1;;;;;1852:4:11;;;;:13;;:24;;;;;;;;;;;;;;;1811:7;1852:4;:24;;;5:2:-1;;;;30:1;27;20:12;5:2;1852:24:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1852:24:11;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1852:24:11;1837:56;;;;;;;;;;;;;;-1:-1:-1;;;;;1837:45:11;;;;;;:56;;;;;1852:24;;1837:56;;;;;;;;;:45;:56;;;5:2:-1;;;;30:1;27;20:12;49114:666:5;49223:5;49240:14;49471:6;49505;49266:8;49257:6;:17;49240:34;;49334:9;49321:2;:9;:22;;49313:31;;;;;;;;-1:-1:-1;;49480:2:5;:15;;;;49514:13;;49538:216;49568:6;49555:10;49550:2;:15;:24;49545:1;:30;49538:216;;;49635:12;;;49629:19;49672:10;;;49665:23;49720:2;49715:7;;;;49736;49538:216;;;-1:-1:-1;49771:2:5;;49114:666;-1:-1:-1;;;;;;;49114:666:5:o;14262:372:16:-;14357:4;14373:14;14397:16;14515:40;14526:16;14533:8;14526:16;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;14526:16:16;;;;;;;-1:-1:-1;263:2;;-1:-1;;14526:16:16;;;;-1:-1:-1;14526:16:16;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14526:16:16;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14526:16:16;14544:10;14515;:40::i;:::-;14491:64;-1:-1:-1;14491:64:16;-1:-1:-1;14491:64:16;14572:55;;;;;14615:10;14605:21;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;;;;365:33;;14605:21:16;;;;;;;;;;-1:-1:-1;;;;;14587:40:16;;;;;;;;-1:-1:-1;;;14572:55:16;14565:62;14262:372;-1:-1:-1;;;;;;14262:372:16:o;14864:1458::-;14945:4;14951;15180:25;;:::i;:::-;15239:34;;:::i;:::-;15299;;:::i;:::-;15360:8;15490:10;15623:9;15762;15884:11;16012;16140:14;15074:11;15057:29;;;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;15057:29:16;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;15057:29:16;;;:36;15097:2;15057:42;15050:50;;;;;;15208:21;:11;:19;:21::i;:::-;15180:49;;15276:13;:11;;;;;;;;;;;;;;;;;;;:13::i;:::-;15239:50;;15336:13;:11;;;;;;;;;;;;;;;;;;;:13::i;:::-;15299:50;-1:-1:-1;15371:57:16;15391:36;:25;:4;15299:50;15391:25;:10;:25;:::i;:::-;:34;:36::i;:::-;15371:19;:57::i;:::-;15360:68;;15452:1;15446:3;:7;:19;;;;;15463:2;15457:3;:8;15446:19;15438:41;;;;;;;-1:-1:-1;;;;;15438:41:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;15503:52;15518:36;:25;:4;15529:13;15518:25;:10;:25;:::i;:36::-;15503:14;:52::i;:::-;15490:65;;;;15581:1;15573:5;:9;:23;;;;;15594:2;15586:5;:10;15573:23;15565:47;;;;;;;-1:-1:-1;;;;;15565:47:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;15635:57;15655:36;:25;:4;15666:13;15655:25;:10;:25;:::i;15635:57::-;15623:69;;15717:4;15710;:11;:26;;;;;15732:4;15725;:11;15710:26;15702:49;;;;;;;-1:-1:-1;;;;;15702:49:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;15774:57;15794:36;:25;:4;15805:13;15794:25;:10;:25;:::i;15774:57::-;15762:69;-1:-1:-1;15856:2:16;15849:9;;15841:32;;;;;-1:-1:-1;;;;;15841:32:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;15898:57;15918:36;:25;:4;15929:13;15918:25;:10;:25;:::i;15898:57::-;15884:71;-1:-1:-1;15982:2:16;15973:11;;15965:36;;;;;-1:-1:-1;;;;;15965:36:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;16026:57;16046:36;:25;:4;16057:13;16046:25;:10;:25;:::i;16026:57::-;16012:71;-1:-1:-1;16110:2:16;16101:11;;16093:36;;;;;-1:-1:-1;;;;;16093:36:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16165:8:16;16157:17;;16186:7;16177:17;;16157:37;16204:7;16197:15;;16157:55;16223:7;16215:16;;16157:74;16244:7;16234:18;;16157:95;:104;;16280:23;;;;-1:-1:-1;16157:104:16;-1:-1:-1;14864:1458:16;;;;;;;;;;;;;;:::o;676:1856:2:-;738:5;755:7;772;789;806;823:11;862:19;911:10;1337;1383:6;837:8;:15;823:29;;894:6;884:17;;;;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;884:17:2;;862:39;;1032:1;1023:6;:10;:30;;;;-1:-1:-1;1047:1:2;1038:6;:10;:15;1023:30;1015:66;;;;;;;-1:-1:-1;;;;;1015:66:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;1151:14;;;;;;;;;;;;;;;;1125:20;;:8;;-1:-1:-1;;1134:10:2;;;1125:20;;;;;;;;;;;-1:-1:-1;;;1125:20:2;;-1:-1:-1;;;1125:20:2;1108:38;;;;;;-1:-1:-1;;;;;1108:38:2;;-1:-1:-1;;;;;1108:38:2;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;1108:38:2;;;1098:49;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;1098:49:2;;;;;;;;;;;;;;;;:67;;;;1094:232;;;1193:1;1183:11;;;;1094:232;;;1270:14;;;;;;;;;;;;;;;;1244:20;;:8;;-1:-1:-1;;1253:10:2;;;1244:20;;;;;;;;;;;-1:-1:-1;;;1244:20:2;;-1:-1:-1;;;1244:20:2;1227:38;;;;;;-1:-1:-1;;;;;1227:38:2;;-1:-1:-1;;;;;1227:38:2;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;1227:38:2;;;1217:49;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;1217:49:2;;;;;;;;;;;;;;;;:67;;;;1213:113;;;1312:1;1302:11;;;;1213:113;-1:-1:-1;;1350:11:2;;;;:16;1392:1;1378:455;1399:5;1395:1;:9;1378:455;;;1428:18;;;;;;;;;;;-1:-1:-1;1428:18:2;;;;-1:-1:-1;;;;;;;;;;;1428:18:2;;;;;;;-1:-1:-1;;;;;;;;;;;1428:18:2;;;;-1:-1:-1;;;;;;;;;;;1428:18:2;;;;1452:13;;1461:3;;;;1452:8;;:13;;;;;;;;;;;-1:-1:-1;;;1452:13:2;;-1:-1:-1;;;1452:13:2;-1:-1:-1;;;1447:19:2;;1428:39;;;;;;;;;;;;;;;-1:-1:-1;;;1428:39:2;;-1:-1:-1;;;1428:39:2;1423:44;;1488:18;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1488:18:2;;;;-1:-1:-1;;;;;;;;;;;1488:18:2;;;;-1:-1:-1;;;;;;;;;;;1488:18:2;;;1512:8;1521:3;;;;;;1512:13;;;;;;;;;;;;;;;-1:-1:-1;;;1512:13:2;;-1:-1:-1;;;1512:13:2;-1:-1:-1;;;1507:19:2;;1488:39;;;;;;;;;;;;;;;-1:-1:-1;;;1488:39:2;;-1:-1:-1;;;1488:39:2;1483:44;;1548:18;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1548:18:2;;;;-1:-1:-1;;;;;;;;;;;1548:18:2;;;;-1:-1:-1;;;;;;;;;;;1548:18:2;;;1572:8;1581:3;;;;;;1572:13;;;;;;;;;;;;;;;-1:-1:-1;;;1572:13:2;;-1:-1:-1;;;1572:13:2;-1:-1:-1;;;1567:19:2;;1548:39;;;;;;;;;;;;;;;-1:-1:-1;;;1548:39:2;;-1:-1:-1;;;1548:39:2;1543:44;;1608:18;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1608:18:2;;;;-1:-1:-1;;;;;;;;;;;1608:18:2;;;;-1:-1:-1;;;;;;;;;;;1608:18:2;;;1632:8;1641:3;;;;;;1632:13;;;;;;;;;;;;;;;-1:-1:-1;;;1632:13:2;;-1:-1:-1;;;1632:13:2;-1:-1:-1;;;1627:19:2;;1608:39;;;;;;;;;;;;;;1664:15;;-1:-1:-1;;;1608:39:2;;;;;;;;-1:-1:-1;1671:7:2;;;;-1:-1:-1;;;;;;1683:7:2;;;1699:1;1683:7;1693;;;;;1683:17;1682:25;;1664:6;;1671:7;1664:15;;;;;;;;;;:43;-1:-1:-1;;;;;1664:43:2;;;;;;;;-1:-1:-1;1723:15:2;;1730:7;;;;1742;-1:-1:-1;;;;;;1742:7:2;;;;;;;1752;;;;;1742:17;1741:25;;1723:6;;1730:7;1723:15;;;;;;;;;;:43;-1:-1:-1;;;;;1723:43:2;;;;;;;;-1:-1:-1;1782:15:2;;1789:7;;;;-1:-1:-1;;;;;;1801:7:2;;;;;:12;;1800:20;;1782:15;;1789:7;1782:15;;;;;;;;;;:38;-1:-1:-1;;;;;1782:38:2;;;;;;;;;1378:455;;;1857:5;1848:6;:14;1866:1;1848:19;1844:560;;;1890:18;;;;;;;;;;;-1:-1:-1;1890:18:2;;;;-1:-1:-1;;;;;;;;;;;1890:18:2;;;;;;;-1:-1:-1;;;;;;;;;;;1890:18:2;;;;-1:-1:-1;;;;;;;;;;;1890:18:2;;;;1914:13;;1923:3;;;;1914:8;;:13;;;;;;;;;;;-1:-1:-1;;;1914:13:2;;-1:-1:-1;;;1914:13:2;-1:-1:-1;;;1909:19:2;;1890:39;;;;;;;;;;;;;;;-1:-1:-1;;;1890:39:2;;-1:-1:-1;;;1890:39:2;1885:44;;1950:18;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1950:18:2;;;;-1:-1:-1;;;;;;;;;;;1950:18:2;;;;-1:-1:-1;;;;;;;;;;;1950:18:2;;;1974:8;1983:3;;;;;;1974:13;;;;;;;;;;;;;;;-1:-1:-1;;;1974:13:2;;-1:-1:-1;;;1974:13:2;-1:-1:-1;;;1969:19:2;;1950:39;;;;;;;;;;;;;;2005:15;;-1:-1:-1;;;1950:39:2;;;;;;;;-1:-1:-1;2012:7:2;;;;-1:-1:-1;;;;;;2024:7:2;;;2040:1;2024:7;2034;;;;;2024:17;2023:25;;2005:6;;2012:7;2005:15;;;;;;;;;;:43;-1:-1:-1;;;;;2005:43:2;;;;;;;;;1844:560;;;2080:5;2071:6;:14;2089:1;2071:19;2067:337;;;2113:18;;;;;;;;;;;-1:-1:-1;2113:18:2;;;;-1:-1:-1;;;;;;;;;;;2113:18:2;;;;;;;-1:-1:-1;;;;;;;;;;;2113:18:2;;;;-1:-1:-1;;;;;;;;;;;2113:18:2;;;;2137:13;;2146:3;;;;2137:8;;:13;;;;;;;;;;;-1:-1:-1;;;2137:13:2;;-1:-1:-1;;;2137:13:2;-1:-1:-1;;;2132:19:2;;2113:39;;;;;;;;;;;;;;;-1:-1:-1;;;2113:39:2;;-1:-1:-1;;;2113:39:2;2108:44;;2173:18;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2173:18:2;;;;-1:-1:-1;;;;;;;;;;;2173:18:2;;;;-1:-1:-1;;;;;;;;;;;2173:18:2;;;2197:8;2206:3;;;;;;2197:13;;;;;;;;;;;;;;;-1:-1:-1;;;2197:13:2;;-1:-1:-1;;;2197:13:2;-1:-1:-1;;;2192:19:2;;2173:39;;;;;;;;;;;;;;;-1:-1:-1;;;2173:39:2;;-1:-1:-1;;;2173:39:2;2168:44;;2233:18;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2233:18:2;;;;-1:-1:-1;;;;;;;;;;;2233:18:2;;;;-1:-1:-1;;;;;;;;;;;2233:18:2;;;2257:8;2266:3;;;;;;2257:13;;;;;;;;;;;;;;;-1:-1:-1;;;2257:13:2;;-1:-1:-1;;;2257:13:2;-1:-1:-1;;;2252:19:2;;2233:39;;;;;;;;;;;;;;2289:15;;-1:-1:-1;;;2233:39:2;;;;;;;;-1:-1:-1;2296:7:2;;;;-1:-1:-1;;;;;;2308:7:2;;;2324:1;2308:7;2318;;;;;2308:17;2307:25;;2289:6;;2296:7;2289:15;;;;;;;;;;:43;-1:-1:-1;;;;;2289:43:2;;;;;;;;-1:-1:-1;2348:15:2;;2355:7;;;;2367;-1:-1:-1;;;;;;2367:7:2;;;;;;;2377;;;;;2367:17;2366:25;;2348:6;;2355:7;2348:15;;;;;;;;;;:43;-1:-1:-1;;;;;2348:43:2;;;;;;;;;2067:337;-1:-1:-1;;2471:21:2;;2478:6;676:1856;-1:-1:-1;;;;;;;676:1856:2:o;3434:210:6:-;3494:5;;:::i;:::-;-1:-1:-1;3607:30:6;;;;;;;;;3613:18;;3607:30;;3576:4;3566:15;;;3607:30;;;;;;3434:210;;;;;:::o;21483:141::-;21561:18;;:::i;:::-;21591:26;21597:4;21603:6;21611:5;21591;:26::i;:::-;;21483:141;;;;:::o;15131:626::-;15209:5;;:::i;:::-;15249:11;;15237:9;;15308:12;;;;15237:23;15233:65;;;15283:4;15276:11;;;;15233:65;-1:-1:-1;;15347:11:6;;15335:9;;15323;;;;;15410:11;;;;15323:21;;:35;;;;;15381:4;;15399:22;;15395:264;;-1:-1:-1;15478:13:6;;15543:4;15531:17;;15525:24;15606:28;;;15578:26;;;15575:60;15446:203;15673:5;15669:60;;;15707:11;;15694:24;;;;;15669:60;15746:4;15739:11;;15131:626;;;;;;;:::o;5778:265::-;5838:6;5863:17;5914:11;5894:4;:9;;;5883:21;;;;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;5883:21:6;;5863:41;;5965:2;5960:3;5956:12;5946:22;;5980:36;5987:6;5995:4;:9;;;6006:4;:9;;;5980:6;:36::i;2243:6116:13:-;2334:4;2380:9;2334:4;;;;;;;;;;;3189:2782;3210:7;:14;3206:1;:18;3189:2782;;;3250:10;;1274:8;;3250:7;;3258:1;;3250:10;;;;;;;;;;;-1:-1:-1;;;3250:10:13;;-1:-1:-1;;;3250:10:13;-1:-1:-1;;;;;3250:25:13;;;;3249:58;;;;-1:-1:-1;3281:10:13;;1347:8;;3281:7;;3289:1;;3281:10;;;;;;;;;;;-1:-1:-1;;;3281:10:13;;-1:-1:-1;;;3281:10:13;-1:-1:-1;;;;;3281:25:13;;;;3249:58;:68;;;;;3313:3;3312:4;3249:68;3245:2716;;;3418:8;3414:621;;;3564:15;:7;3576:2;3564:15;:11;:15;:::i;:::-;3628:10;;3554:25;;-1:-1:-1;3611:49:13;;1279:2;;3628:7;;3636:1;;3628:10;;;;;;;;;;;-1:-1:-1;;;3628:10:13;;-1:-1:-1;;;3628:10:13;-1:-1:-1;;;3623:16:13;;:36;3611:7;:11;;:49;;;;:::i;:::-;3601:59;-1:-1:-1;3682:11:13;;;;;3414:621;;;3831:4;;-1:-1:-1;3929:12:13;:4;3938:2;3929:12;:8;:12;:::i;:::-;3984:10;;3922:19;;-1:-1:-1;3970:46:13;;1279:2;;3984:7;;3992:1;;3984:10;;;;;;;;;;;-1:-1:-1;;;3984:10:13;;-1:-1:-1;;;3984:10:13;-1:-1:-1;;;3979:16:13;;:36;3970:4;:8;;:46;;;;:::i;:::-;3963:53;;3414:621;3245:2716;;;4060:10;;1274:8;;4060:7;;4068:1;;4060:10;;;;;;;;;;;-1:-1:-1;;;4060:10:13;;-1:-1:-1;;;4060:10:13;-1:-1:-1;;;;;4060:25:13;;;;4059:58;;;;-1:-1:-1;4091:10:13;;1347:8;;4091:7;;4099:1;;4091:10;;;;;;;;;;;-1:-1:-1;;;4091:10:13;;-1:-1:-1;;;4091:10:13;-1:-1:-1;;;;;4091:25:13;;;;4059:58;:67;;;;;4122:3;4059:67;4055:1906;;;4239:15;:7;4251:2;4239:15;:11;:15;:::i;:::-;4299:10;;4229:25;;-1:-1:-1;4282:49:13;;1279:2;;4299:7;;4307:1;;4299:10;;;;;;;;;;;-1:-1:-1;;;4299:10:13;;-1:-1:-1;;;4299:10:13;-1:-1:-1;;;4294:16:13;;:36;4282:7;:11;;:49;;;;:::i;:::-;4272:59;;4055:1906;;;4356:10;;1201:8;;4356:7;;4364:1;;4356:10;;;;;;;;;;;-1:-1:-1;;;4356:10:13;;-1:-1:-1;;;4356:10:13;-1:-1:-1;;;;;4356:24:13;;;4352:1609;;;4481:8;4473:42;;;;;;;-1:-1:-1;;;;;4473:42:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;4608:9;;4600:45;;;;;-1:-1:-1;;;;;4600:45:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;4744:4;;4736:39;;;;;-1:-1:-1;;;;;4736:39:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;4804:4;4793:15;;4352:1609;;;4833:10;;1129:8;;4833:7;;4841:1;;4833:10;;;;;;;;;;;-1:-1:-1;;;4833:10:13;;-1:-1:-1;;;4833:10:13;-1:-1:-1;;;;;4833:25:13;;;4829:1132;;;4960:6;;4952:30;;;;;-1:-1:-1;;;;;4952:30:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;5008:5;;5000:28;;;;;-1:-1:-1;;;;;5000:28:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;5065:1;5054:12;;:17;;5046:60;;;;;-1:-1:-1;;;;;5046:60:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;5132:4;5124:12;;4829:1132;;;5161:10;;1056:8;;5161:7;;5169:1;;5161:10;;;;;;;;;;;-1:-1:-1;;;5161:10:13;;-1:-1:-1;;;5161:10:13;-1:-1:-1;;;;;5161:25:13;;;5157:804;;;5288:5;;5280:29;;;;;-1:-1:-1;;;;;5280:29:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;5335:6;;5327:29;;;;;-1:-1:-1;;;;;5327:29:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;5393:1;5382:12;;:17;;5374:60;;;;;-1:-1:-1;;;;;5374:60:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;5459:4;5452:11;;5157:804;;;5489:10;;1417:8;;5489:7;;5497:1;;5489:10;;;;;;;;;;;-1:-1:-1;;;5489:10:13;;-1:-1:-1;;;5489:10:13;-1:-1:-1;;;;;5489:22:13;;;5488:62;;;-1:-1:-1;5517:10:13;;1497:9;;5517:7;;5525:1;;5517:10;;;;;;;;;;;-1:-1:-1;;;5517:10:13;;-1:-1:-1;;;5517:10:13;-1:-1:-1;;;;;5517:32:13;;;5488:62;5484:477;;;5651:8;5643:42;;;;;;;-1:-1:-1;;;;;5643:42:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;5792:4;;5784:42;;;;;-1:-1:-1;;;;;5784:42:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;5850:4;5844:10;;5883:1;5872:12;;5484:477;;;5923:23;;;-1:-1:-1;;;;;5923:23:13;;;;;;;;;;;;;;;;;;;;;;;;;;;5484:477;3226:3;;3189:2782;;;5985:5;:13;;;;5994:4;5985:13;5981:267;;;6105:1;6094:12;;6090:16;;6082:25;;;;;;5981:267;;;6128:3;6124:124;;;6235:1;6224:12;;6220:16;;6212:25;;;;;;6262:5;6258:886;;;6309:25;;;6305:600;;6553:2;6526:24;;;:29;6518:55;;;;;-1:-1:-1;;;;;6518:55:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;6619:14;6609:7;:24;6602:2;:32;6594:40;;;;;;;;;;;6659:4;6652:11;;;;6305:600;6883:7;6866:14;:24;6849:41;;6258:886;;;7106:27;:14;7125:7;7106:27;:18;:27;:::i;:::-;7089:44;;6258:886;7158:27;;;7154:1177;;7426:2;7414:14;;7406:61;;;;;-1:-1:-1;;;;;7406:61:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7491:27;:4;7500:2;:17;;;7491:27;:8;:27;:::i;:::-;7484:34;-1:-1:-1;7539:17:13;7484:34;7548:7;7539:17;:8;:17;:::i;:::-;7532:24;-1:-1:-1;7693:2:13;7664:26;;;:31;7656:57;;;;;-1:-1:-1;;;;;7656:57:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;7737:44;7770:9;7753:14;:26;7746:2;:34;7737:4;:8;;:44;;;;:::i;:::-;7730:51;;7154:1177;;;7939:27;;;;;8000:2;7988:14;;7980:61;;;;;-1:-1:-1;;;;;7980:61:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8076:9;8069:2;:17;8058:28;;;;;;;;;;-1:-1:-1;8185:2:13;8168:19;;8160:66;;;;;-1:-1:-1;;;;;8160:66:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8250:32;8266:14;8259:2;:22;8250:4;:8;;:32;;;;:::i;:::-;8243:39;-1:-1:-1;8303:17:13;8243:39;8312:7;8303:17;:8;:17;:::i;:::-;8296:24;;7154:1177;8348:4;8341:11;;2243:6116;;;;;;;;;;;;;;;;;:::o;14181:134:5:-;11360:3;;14257:4;;-1:-1:-1;;;;;11360:3:5;11352:15;;11351:49;;-1:-1:-1;11391:3:5;;11371:25;;-1:-1:-1;;;;;11391:3:5;11371:11;:25::i;:::-;:28;11351:49;11348:101;;;11414:35;11082:1;11414:19;:35::i;:::-;;11348:101;11484:3;;;;;;;;;-1:-1:-1;;;;;11484:3:5;-1:-1:-1;;;;;11484:14:5;;:16;;;;;-1:-1:-1;;;11484:16:5;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11484:16:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11484:16:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11484:16:5;11471:8;;-1:-1:-1;;;;;11471:8:5;;;11463:37;;;11460:92;;11535:3;;;;;;;;;-1:-1:-1;;;;;11535:3:5;-1:-1:-1;;;;;11535:14:5;;:16;;;;;-1:-1:-1;;;11535:16:5;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11535:16:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11535:16:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11535:16:5;11514:8;:38;;-1:-1:-1;;;;;;11514:38:5;-1:-1:-1;;;;;11514:38:5;;;;;;;;;11460:92;14279:8;;:29;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14279:8:5;;;;:17;;14297:10;;14279:29;;;;;;;;;;;;;;:8;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;14279:29:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;24539:355:6;24617:6;24642:17;24706:11;24685:5;:10;;;24673:4;:9;;;:22;24662:34;;;;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;24662:34:6;;24642:54;;24757:2;24752:3;24748:12;24738:22;;24771:36;24778:6;24786:4;:9;;;24797:4;:9;;;24771:6;:36::i;:::-;24833:9;;24844:10;;;;24856;;24817:50;;24824:18;;;24844:10;24817:6;:50::i;:::-;-1:-1:-1;24884:3:6;24539:355;-1:-1:-1;;;24539:355:6:o;15517:356:5:-;11360:3;;15617:10;;;;-1:-1:-1;;;;;11360:3:5;11352:15;;11351:49;;-1:-1:-1;11391:3:5;;11371:25;;-1:-1:-1;;;;;11391:3:5;11371:11;:25::i;:::-;:28;11351:49;11348:101;;;11414:35;11082:1;11414:19;:35::i;:::-;;11348:101;11484:3;;;;;;;;;-1:-1:-1;;;;;11484:3:5;-1:-1:-1;;;;;11484:14:5;;:16;;;;;-1:-1:-1;;;11484:16:5;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11484:16:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11484:16:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11484:16:5;11471:8;;-1:-1:-1;;;;;11471:8:5;;;11463:37;;;11460:92;;11535:3;;;;;;;;;-1:-1:-1;;;;;11535:3:5;-1:-1:-1;;;;;11535:14:5;;:16;;;;;-1:-1:-1;;;11535:16:5;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11535:16:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11535:16:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11535:16:5;11514:8;:38;;-1:-1:-1;;;;;;11514:38:5;-1:-1:-1;;;;;11514:38:5;;;;;;;;;11460:92;15651:8;;:39;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15651:8:5;;;;:17;;15669:10;;15681:8;;15651:39;;;;;;;;;;;;:8;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;15651:39:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15651:39:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15651:39:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15651:39:5;;-1:-1:-1;15712:7:5;15722:11;:20;;15712:30;15704:38;;15700:52;;;15751:1;;-1:-1:-1;15744:8:5;;15700:52;15796:8;;:70;;;;;:8;:70;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15796:8:5;;;;:27;;15830:5;;15796:8;15840:10;;15852:3;;15857:8;;15796:70;;;;;;;;;;;;;;;;:8;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;15796:70:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15796:70:5;;;;;;;;;;;;;;;;;;;;;;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;15796:70:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15796:70:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15796:70:5;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15796:70:5;;15517:356;-1:-1:-1;;;;;15517:356:5:o;3219:157:15:-;3272:9;3316:32;3328:19;;3316:11;:32::i;:::-;-1:-1:-1;;;;;3300:67:15;;:69;;;;;-1:-1:-1;;;3300:69:15;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3300:69:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3300:69:15;;;;;;39:16:-1;36:1;17:17;2:54;101:4;3300:69:15;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;3300:69:15;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;224:3;218:10;339:9;333:2;319:12;315:21;297:16;293:44;290:59;268:11;254:12;251:29;239:119;236:2;;;371:1;368;361:12;236:2;-1:-1;3300:69:15;;-1:-1:-1;;;;;3219:157:15;:::o;11864:1749:5:-;11912:4;11987:1;11931:55;11943:42;11931:11;:55::i;:::-;:57;11927:245;;;12013:3;:71;;-1:-1:-1;;;;;;12013:71:5;12041:42;12013:71;;;12098:38;;;;;;;;;;;;;;;;;;;:23;:38::i;:::-;-1:-1:-1;12157:4:5;12150:11;;11927:245;12241:1;12185:55;12197:42;12185:11;:55::i;:::-;:57;12181:254;;;12275:3;:71;;-1:-1:-1;;;;;;12275:71:5;12303:42;12275:71;;;12360:39;;;;;;;;;;;;;;;;;;;:23;:39::i;12181:254::-;12504:1;12448:55;12460:42;12448:11;:55::i;:::-;:57;12444:249;;;12536:3;:71;;-1:-1:-1;;;;;;12536:71:5;12564:42;12536:71;;;12621:36;;;;;;;;;;;;;;;;;;;:23;:36::i;12444:249::-;12762:1;12706:55;12718:42;12706:11;:55::i;:::-;:57;12702:253;;;12796:3;:71;;-1:-1:-1;;;;;;12796:71:5;12824:42;12796:71;;;12881:38;;;;;;;;;;;;;;;;;;;:23;:38::i;12702:253::-;13024:1;12968:55;12980:42;12968:11;:55::i;:::-;:57;12964:201;;;-1:-1:-1;13058:3:5;:71;;-1:-1:-1;;;;;;13058:71:5;13086:42;13058:71;;;;13143:11;;12964:201;13234:1;13178:55;13190:42;13178:11;:55::i;:::-;:57;13174:200;;;-1:-1:-1;13267:3:5;:71;;-1:-1:-1;;;;;;13267:71:5;13295:42;13267:71;;;;13352:11;;13174:200;13443:1;13387:55;13399:42;13387:11;:55::i;:::-;:57;13383:202;;;-1:-1:-1;13478:3:5;:71;;-1:-1:-1;;;;;;13478:71:5;13506:42;13478:71;;;;13563:11;;13383:202;-1:-1:-1;13601:5:5;11864:1749;:::o;51075:1383::-;51138:4;51144:7;51163:9;51182;51201:7;51223:3;:10;51237:2;51223:16;;51219:49;;;51259:5;;-1:-1:-1;51259:5:5;;-1:-1:-1;51251:17:5;;51219:49;-1:-1:-1;;;51480:2:5;51471:12;;51465:19;51517:2;51508:12;;51502:19;51775:2;51766:12;;51760:19;51757:1;51752:28;52318:2;52314:6;;;;52310:29;;;52337:2;52332:7;52310:29;52354:1;:7;;52359:2;52354:7;;:18;;;;;52365:1;:7;;52370:2;52365:7;;52354:18;52350:53;;;52394:5;;-1:-1:-1;52394:5:5;;-1:-1:-1;52386:17:5;;52350:53;52421:30;52437:4;52443:1;52446;52449;52421:15;:30::i;:::-;52414:37;;;;51075:1383;;;;;;;;;:::o;1658:133:13:-;1728:4;1751:33;1771:9;1782:1;1751:19;:33::i;1770:935:10:-;1832:5;1849:13;1892:6;1875:24;;;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;1875:24:10;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;1875:24:10;;;1865:35;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;-1:-1;;263:2;259:12;;;;254:3;250:22;246:30;;;;340:21;;;311:9;;295:26;377:20;;;;365:33;;1865:35:10;;;;;;;;;;;;984:16;;;;;;;;;;;;;;1865:35;;-1:-1:-1;;1914:17:10;;1910:789;;-1:-1:-1;1910:789:10;;-1:-1:-1;1910:789:10;1954:1;1947:8;;;;1910:789;1043:16;;;;;;;;;;;;;;;;1976:18;;1972:727;;;2017:1;2010:8;;;;1972:727;1099:16;;;;;;;;;;;;;;;;2039:15;;2035:664;;;2077:1;2070:8;;;;2035:664;1155:16;;;;;;;;;;;;;;;;2099:15;;2095:604;;;2137:1;2130:8;;;;2095:604;1209:16;;;;;;;;;;;;;;;;2159:13;;2155:544;;;2195:1;2188:8;;;;2155:544;1264:16;;;;;;;;;;;;;;;;2217:14;;2213:486;;;2254:1;2247:8;;;;2213:486;1319:16;;;;;;;;;;;;;;;;2276:14;;2272:427;;;2313:1;2306:8;;;;2272:427;1376:16;;;;;;;;;;;;;;;;2335;;2331:368;;;2374:1;2367:8;;;;2331:368;1436:16;;;;;;;;;;;;;;;;2396:19;;2392:307;;;2438:1;2431:8;;;;2392:307;1494:16;;;;;;;;;;;;;;;;2460:17;;2456:243;;;2500:2;2493:9;;;;2456:243;1553:16;;;;;;;;;;;;;;;;2523:18;;2519:180;;;2564:2;2557:9;;;;2519:180;1612:16;;;;;;;;;;;;;;;;2587:18;;2583:116;;;2628:2;2621:9;;;;2583:116;2661:27;;;-1:-1:-1;;;;;2661:27:10;;;;;;;;;;;;;;;;;;;;;;;;;;;20508:504:6;20606:5;;:::i;:::-;20630:8;20641:55;20649:4;:9;;;20660:4;:9;;;20671:6;:11;;;20684:6;:11;;;20641:7;:55::i;:::-;20719:9;;;;;;20706:10;;;:22;;;;20757:9;;20751:15;;20738:28;;20799:9;;20787;;20630:66;;-1:-1:-1;20787:21:6;20780:28;;20776:208;;;20861:1;20849:13;;20776:208;;;20919:11;;20906:10;;20893:37;;20906:24;;20893:37;;;;20962:11;;20956:17;;20944:9;;;:29;20776:208;-1:-1:-1;21000:5:6;;20508:504;-1:-1:-1;;;20508:504:6:o;2686:548::-;3012:9;2806:164;2819:2;2812:9;;2806:164;;2888:10;;2875:24;;2934:2;2926:10;;;;2950:9;;;;-1:-1:-1;;2823:9:6;;;;2806:164;;;-1:-1:-1;3097:10:6;;3152:11;;3032:2;:8;;;;3024:3;:17;-1:-1:-1;;3024:21:6;3109:9;;3093:26;;;3148:22;;3196:21;3183:35;;3064:164::o;1376:381:1:-;1434:7;;1658:6;;1654:35;;;1681:1;1674:8;;;;1654:35;-1:-1:-1;1707:5:1;;;1711:1;1707;:5;1726;;;;;;;;:10;1718:19;;;;;;1751:1;1376:381;-1:-1:-1;;;1376:381:1:o;2444:131::-;2502:7;2529:5;;;2548:6;;;;2540:15;;;;;39748:118:5;39822:37;;;;:21;;:37;;;;;:::i;49978:973::-;50066:4;50072:7;50476:8;50494:12;50558:4;50552:11;50589:4;50583;50576:18;50629:1;50624:2;50618:4;50614:13;50607:24;50666:1;50661:2;50655:4;50651:13;50644:24;50703:1;50698:2;50692:4;50688:13;50681:24;50871:2;50865:4;50860:3;50854:4;50851:1;50848;50842:4;50837:37;50895:11;;50830:44;;50895:11;;-1:-1:-1;49978:973:5;-1:-1:-1;;;;;;;49978:973:5:o;15914:1372:6:-;16013:4;16040:7;16013:4;;;;;;;16080:20;;;16076:1170;;16133:2;16120:15;;16116:1120;;16210:1;16196:9;16191:2;:14;16186:1;:20;16180:1;:27;:31;16178:34;16170:43;;16155:58;;16315:4;16303:9;16297:16;16293:27;16279:41;;16371:9;16361:7;16351;:17;:29;16340:40;;16469:4;16463:3;16457:10;16453:21;16442:32;;16494:228;16501:21;;;16494:228;;16550:10;;;16546:64;;16603:7;16593;:17;16586:24;;;;16546:64;16632:5;;;;;;;16697:4;16691:3;16685:10;16681:21;16670:32;;16668:36;;;16746:3;16739:10;;;;16116:1120;16907:9;16896;16886:31;16878:39;;16948:1;16942:7;;16937:285;16958:19;;;16951:26;;16937:285;;-1:-1:-1;17069:25:6;;;17121:16;;;17117:56;;;17170:3;17163:10;;;;17117:56;17202:1;17195:8;;;;16979:5;;;;;16937:285;;;17272:7;17262;:17;17255:24;;15914:1372;;;;;;;;;;;;;;;:::o;1225:15100:16:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1225:15100:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1225:15100:16;;;-1:-1:-1;1225:15100:16;:::i;:::-;;;:::o;:::-;;;;;;;;;;-1:-1:-1;1225:15100:16;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}},"sourceList":["externals/ERC20.sol","externals/SafeMath.sol","externals/base64.sol","externals/ens/ENS.sol","externals/ens/PublicResolver.sol","externals/oraclizeAPI_0.4.25.sol","externals/strings.sol","internals/claimable.sol","internals/controllable.sol","internals/controller.sol","internals/date.sol","internals/ensResolvable.sol","internals/ownable.sol","internals/parseIntScientific.sol","internals/tokenWhitelist.sol","internals/tokenWhitelistable.sol","oracle.sol"],"sources":{"externals/ERC20.sol":{"AST":{"attributes":{"absolutePath":"externals/ERC20.sol","exportedSymbols":{"ERC20":[8665]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".25"]},"id":8628,"name":"PragmaDirective","src":"0:24:0"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"interface","documentation":"@title ERC20 interface is a subset of the ERC20 specification.","fullyImplemented":false,"linearizedBaseContracts":[8665],"name":"ERC20","scope":8666},"children":[{"attributes":{"body":null,"constant":false,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"approve","payable":false,"scope":8665,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"","scope":8637,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":8629,"name":"ElementaryTypeName","src":"132:7:0"}],"id":8630,"name":"VariableDeclaration","src":"132:7:0"},{"attributes":{"constant":false,"name":"","scope":8637,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":8631,"name":"ElementaryTypeName","src":"141:7:0"}],"id":8632,"name":"VariableDeclaration","src":"141:7:0"}],"id":8633,"name":"ParameterList","src":"131:18:0"},{"children":[{"attributes":{"constant":false,"name":"","scope":8637,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":8634,"name":"ElementaryTypeName","src":"168:4:0"}],"id":8635,"name":"VariableDeclaration","src":"168:4:0"}],"id":8636,"name":"ParameterList","src":"167:6:0"}],"id":8637,"name":"FunctionDefinition","src":"115:59:0"},{"attributes":{"body":null,"constant":true,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"balanceOf","payable":false,"scope":8665,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"","scope":8644,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":8638,"name":"ElementaryTypeName","src":"198:7:0"}],"id":8639,"name":"VariableDeclaration","src":"198:7:0"}],"id":8640,"name":"ParameterList","src":"197:9:0"},{"children":[{"attributes":{"constant":false,"name":"","scope":8644,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":8641,"name":"ElementaryTypeName","src":"230:4:0"}],"id":8642,"name":"VariableDeclaration","src":"230:4:0"}],"id":8643,"name":"ParameterList","src":"229:6:0"}],"id":8644,"name":"FunctionDefinition","src":"179:57:0"},{"attributes":{"body":null,"constant":false,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"transfer","payable":false,"scope":8665,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"","scope":8653,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":8645,"name":"ElementaryTypeName","src":"259:7:0"}],"id":8646,"name":"VariableDeclaration","src":"259:7:0"},{"attributes":{"constant":false,"name":"","scope":8653,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":8647,"name":"ElementaryTypeName","src":"268:4:0"}],"id":8648,"name":"VariableDeclaration","src":"268:4:0"}],"id":8649,"name":"ParameterList","src":"258:15:0"},{"children":[{"attributes":{"constant":false,"name":"","scope":8653,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":8650,"name":"ElementaryTypeName","src":"292:4:0"}],"id":8651,"name":"VariableDeclaration","src":"292:4:0"}],"id":8652,"name":"ParameterList","src":"291:6:0"}],"id":8653,"name":"FunctionDefinition","src":"241:57:0"},{"attributes":{"body":null,"constant":false,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"transferFrom","payable":false,"scope":8665,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_from","scope":8664,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":8654,"name":"ElementaryTypeName","src":"325:7:0"}],"id":8655,"name":"VariableDeclaration","src":"325:13:0"},{"attributes":{"constant":false,"name":"_to","scope":8664,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":8656,"name":"ElementaryTypeName","src":"340:7:0"}],"id":8657,"name":"VariableDeclaration","src":"340:11:0"},{"attributes":{"constant":false,"name":"_value","scope":8664,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":8658,"name":"ElementaryTypeName","src":"353:7:0"}],"id":8659,"name":"VariableDeclaration","src":"353:14:0"}],"id":8660,"name":"ParameterList","src":"324:44:0"},{"children":[{"attributes":{"constant":false,"name":"success","scope":8664,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":8661,"name":"ElementaryTypeName","src":"387:4:0"}],"id":8662,"name":"VariableDeclaration","src":"387:12:0"}],"id":8663,"name":"ParameterList","src":"386:14:0"}],"id":8664,"name":"FunctionDefinition","src":"303:98:0"}],"id":8665,"name":"ContractDefinition","src":"93:310:0"}],"id":8666,"name":"SourceUnit","src":"0:404:0"}},"externals/SafeMath.sol":{"AST":{"attributes":{"absolutePath":"externals/SafeMath.sol","exportedSymbols":{"SafeMath":[1226]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".24"]},"id":1100,"name":"PragmaDirective","src":"1172:24:1"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"library","documentation":"@title SafeMath\n@dev Math operations with safety checks that revert on error","fullyImplemented":true,"linearizedBaseContracts":[1226],"name":"SafeMath","scope":1227},"children":[{"attributes":{"constant":true,"documentation":"@dev Multiplies two numbers, reverts on overflow.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"mul","payable":false,"scope":1226,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"a","scope":1133,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1101,"name":"ElementaryTypeName","src":"1389:7:1"}],"id":1102,"name":"VariableDeclaration","src":"1389:9:1"},{"attributes":{"constant":false,"name":"b","scope":1133,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1103,"name":"ElementaryTypeName","src":"1400:7:1"}],"id":1104,"name":"VariableDeclaration","src":"1400:9:1"}],"id":1105,"name":"ParameterList","src":"1388:22:1"},{"children":[{"attributes":{"constant":false,"name":"","scope":1133,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1106,"name":"ElementaryTypeName","src":"1434:7:1"}],"id":1107,"name":"VariableDeclaration","src":"1434:7:1"}],"id":1108,"name":"ParameterList","src":"1433:9:1"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1102,"type":"uint256","value":"a"},"id":1109,"name":"Identifier","src":"1658:1:1"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1110,"name":"Literal","src":"1663:1:1"}],"id":1111,"name":"BinaryOperation","src":"1658:6:1"},{"children":[{"attributes":{"functionReturnParameters":1108},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1112,"name":"Literal","src":"1681:1:1"}],"id":1113,"name":"Return","src":"1674:8:1"}],"id":1114,"name":"Block","src":"1666:23:1"}],"id":1115,"name":"IfStatement","src":"1654:35:1"},{"attributes":{"assignments":[1117]},"children":[{"attributes":{"constant":false,"name":"c","scope":1133,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1116,"name":"ElementaryTypeName","src":"1695:7:1"}],"id":1117,"name":"VariableDeclaration","src":"1695:9:1"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1102,"type":"uint256","value":"a"},"id":1118,"name":"Identifier","src":"1707:1:1"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1104,"type":"uint256","value":"b"},"id":1119,"name":"Identifier","src":"1711:1:1"}],"id":1120,"name":"BinaryOperation","src":"1707:5:1"}],"id":1121,"name":"VariableDeclarationStatement","src":"1695:17:1"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"overloadedDeclarations":[12061,12062],"referencedDeclaration":12061,"type":"function (bool) pure","value":"require"},"id":1122,"name":"Identifier","src":"1718:7:1"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"/","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1117,"type":"uint256","value":"c"},"id":1123,"name":"Identifier","src":"1726:1:1"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1102,"type":"uint256","value":"a"},"id":1124,"name":"Identifier","src":"1730:1:1"}],"id":1125,"name":"BinaryOperation","src":"1726:5:1"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1104,"type":"uint256","value":"b"},"id":1126,"name":"Identifier","src":"1735:1:1"}],"id":1127,"name":"BinaryOperation","src":"1726:10:1"}],"id":1128,"name":"FunctionCall","src":"1718:19:1"}],"id":1129,"name":"ExpressionStatement","src":"1718:19:1"},{"attributes":{"functionReturnParameters":1108},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1117,"type":"uint256","value":"c"},"id":1130,"name":"Identifier","src":"1751:1:1"}],"id":1131,"name":"Return","src":"1744:8:1"}],"id":1132,"name":"Block","src":"1443:314:1"}],"id":1133,"name":"FunctionDefinition","src":"1376:381:1"},{"attributes":{"constant":true,"documentation":"@dev Integer division of two numbers truncating the quotient, reverts on division by zero.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"div","payable":false,"scope":1226,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"a","scope":1157,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1134,"name":"ElementaryTypeName","src":"1880:7:1"}],"id":1135,"name":"VariableDeclaration","src":"1880:9:1"},{"attributes":{"constant":false,"name":"b","scope":1157,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1136,"name":"ElementaryTypeName","src":"1891:7:1"}],"id":1137,"name":"VariableDeclaration","src":"1891:9:1"}],"id":1138,"name":"ParameterList","src":"1879:22:1"},{"children":[{"attributes":{"constant":false,"name":"","scope":1157,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1139,"name":"ElementaryTypeName","src":"1925:7:1"}],"id":1140,"name":"VariableDeclaration","src":"1925:7:1"}],"id":1141,"name":"ParameterList","src":"1924:9:1"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"overloadedDeclarations":[12061,12062],"referencedDeclaration":12061,"type":"function (bool) pure","value":"require"},"id":1142,"name":"Identifier","src":"1940:7:1"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1137,"type":"uint256","value":"b"},"id":1143,"name":"Identifier","src":"1948:1:1"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1144,"name":"Literal","src":"1952:1:1"}],"id":1145,"name":"BinaryOperation","src":"1948:5:1"}],"id":1146,"name":"FunctionCall","src":"1940:14:1"}],"id":1147,"name":"ExpressionStatement","src":"1940:14:1"},{"attributes":{"assignments":[1149]},"children":[{"attributes":{"constant":false,"name":"c","scope":1157,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1148,"name":"ElementaryTypeName","src":"2018:7:1"}],"id":1149,"name":"VariableDeclaration","src":"2018:9:1"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"/","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1135,"type":"uint256","value":"a"},"id":1150,"name":"Identifier","src":"2030:1:1"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1137,"type":"uint256","value":"b"},"id":1151,"name":"Identifier","src":"2034:1:1"}],"id":1152,"name":"BinaryOperation","src":"2030:5:1"}],"id":1153,"name":"VariableDeclarationStatement","src":"2018:17:1"},{"attributes":{"functionReturnParameters":1141},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1149,"type":"uint256","value":"c"},"id":1154,"name":"Identifier","src":"2131:1:1"}],"id":1155,"name":"Return","src":"2124:8:1"}],"id":1156,"name":"Block","src":"1934:203:1"}],"id":1157,"name":"FunctionDefinition","src":"1867:270:1"},{"attributes":{"constant":true,"documentation":"@dev Subtracts two numbers, reverts on overflow (i.e. if subtrahend is greater than minuend).","implemented":true,"isConstructor":false,"modifiers":[null],"name":"sub","payable":false,"scope":1226,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"a","scope":1181,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1158,"name":"ElementaryTypeName","src":"2263:7:1"}],"id":1159,"name":"VariableDeclaration","src":"2263:9:1"},{"attributes":{"constant":false,"name":"b","scope":1181,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1160,"name":"ElementaryTypeName","src":"2274:7:1"}],"id":1161,"name":"VariableDeclaration","src":"2274:9:1"}],"id":1162,"name":"ParameterList","src":"2262:22:1"},{"children":[{"attributes":{"constant":false,"name":"","scope":1181,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1163,"name":"ElementaryTypeName","src":"2308:7:1"}],"id":1164,"name":"VariableDeclaration","src":"2308:7:1"}],"id":1165,"name":"ParameterList","src":"2307:9:1"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"overloadedDeclarations":[12061,12062],"referencedDeclaration":12061,"type":"function (bool) pure","value":"require"},"id":1166,"name":"Identifier","src":"2323:7:1"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1161,"type":"uint256","value":"b"},"id":1167,"name":"Identifier","src":"2331:1:1"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1159,"type":"uint256","value":"a"},"id":1168,"name":"Identifier","src":"2336:1:1"}],"id":1169,"name":"BinaryOperation","src":"2331:6:1"}],"id":1170,"name":"FunctionCall","src":"2323:15:1"}],"id":1171,"name":"ExpressionStatement","src":"2323:15:1"},{"attributes":{"assignments":[1173]},"children":[{"attributes":{"constant":false,"name":"c","scope":1181,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1172,"name":"ElementaryTypeName","src":"2344:7:1"}],"id":1173,"name":"VariableDeclaration","src":"2344:9:1"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1159,"type":"uint256","value":"a"},"id":1174,"name":"Identifier","src":"2356:1:1"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1161,"type":"uint256","value":"b"},"id":1175,"name":"Identifier","src":"2360:1:1"}],"id":1176,"name":"BinaryOperation","src":"2356:5:1"}],"id":1177,"name":"VariableDeclarationStatement","src":"2344:17:1"},{"attributes":{"functionReturnParameters":1165},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1173,"type":"uint256","value":"c"},"id":1178,"name":"Identifier","src":"2375:1:1"}],"id":1179,"name":"Return","src":"2368:8:1"}],"id":1180,"name":"Block","src":"2317:64:1"}],"id":1181,"name":"FunctionDefinition","src":"2250:131:1"},{"attributes":{"constant":true,"documentation":"@dev Adds two numbers, reverts on overflow.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"add","payable":false,"scope":1226,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"a","scope":1205,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1182,"name":"ElementaryTypeName","src":"2457:7:1"}],"id":1183,"name":"VariableDeclaration","src":"2457:9:1"},{"attributes":{"constant":false,"name":"b","scope":1205,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1184,"name":"ElementaryTypeName","src":"2468:7:1"}],"id":1185,"name":"VariableDeclaration","src":"2468:9:1"}],"id":1186,"name":"ParameterList","src":"2456:22:1"},{"children":[{"attributes":{"constant":false,"name":"","scope":1205,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1187,"name":"ElementaryTypeName","src":"2502:7:1"}],"id":1188,"name":"VariableDeclaration","src":"2502:7:1"}],"id":1189,"name":"ParameterList","src":"2501:9:1"},{"children":[{"attributes":{"assignments":[1191]},"children":[{"attributes":{"constant":false,"name":"c","scope":1205,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1190,"name":"ElementaryTypeName","src":"2517:7:1"}],"id":1191,"name":"VariableDeclaration","src":"2517:9:1"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1183,"type":"uint256","value":"a"},"id":1192,"name":"Identifier","src":"2529:1:1"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1185,"type":"uint256","value":"b"},"id":1193,"name":"Identifier","src":"2533:1:1"}],"id":1194,"name":"BinaryOperation","src":"2529:5:1"}],"id":1195,"name":"VariableDeclarationStatement","src":"2517:17:1"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"overloadedDeclarations":[12061,12062],"referencedDeclaration":12061,"type":"function (bool) pure","value":"require"},"id":1196,"name":"Identifier","src":"2540:7:1"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1191,"type":"uint256","value":"c"},"id":1197,"name":"Identifier","src":"2548:1:1"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1183,"type":"uint256","value":"a"},"id":1198,"name":"Identifier","src":"2553:1:1"}],"id":1199,"name":"BinaryOperation","src":"2548:6:1"}],"id":1200,"name":"FunctionCall","src":"2540:15:1"}],"id":1201,"name":"ExpressionStatement","src":"2540:15:1"},{"attributes":{"functionReturnParameters":1189},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1191,"type":"uint256","value":"c"},"id":1202,"name":"Identifier","src":"2569:1:1"}],"id":1203,"name":"Return","src":"2562:8:1"}],"id":1204,"name":"Block","src":"2511:64:1"}],"id":1205,"name":"FunctionDefinition","src":"2444:131:1"},{"attributes":{"constant":true,"documentation":"@dev Divides two numbers and returns the remainder (unsigned integer modulo),\nreverts when dividing by zero.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"mod","payable":false,"scope":1226,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"a","scope":1225,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1206,"name":"ElementaryTypeName","src":"2720:7:1"}],"id":1207,"name":"VariableDeclaration","src":"2720:9:1"},{"attributes":{"constant":false,"name":"b","scope":1225,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1208,"name":"ElementaryTypeName","src":"2731:7:1"}],"id":1209,"name":"VariableDeclaration","src":"2731:9:1"}],"id":1210,"name":"ParameterList","src":"2719:22:1"},{"children":[{"attributes":{"constant":false,"name":"","scope":1225,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1211,"name":"ElementaryTypeName","src":"2765:7:1"}],"id":1212,"name":"VariableDeclaration","src":"2765:7:1"}],"id":1213,"name":"ParameterList","src":"2764:9:1"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"overloadedDeclarations":[12061,12062],"referencedDeclaration":12061,"type":"function (bool) pure","value":"require"},"id":1214,"name":"Identifier","src":"2780:7:1"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1209,"type":"uint256","value":"b"},"id":1215,"name":"Identifier","src":"2788:1:1"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1216,"name":"Literal","src":"2793:1:1"}],"id":1217,"name":"BinaryOperation","src":"2788:6:1"}],"id":1218,"name":"FunctionCall","src":"2780:15:1"}],"id":1219,"name":"ExpressionStatement","src":"2780:15:1"},{"attributes":{"functionReturnParameters":1213},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"%","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1207,"type":"uint256","value":"a"},"id":1220,"name":"Identifier","src":"2808:1:1"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1209,"type":"uint256","value":"b"},"id":1221,"name":"Identifier","src":"2812:1:1"}],"id":1222,"name":"BinaryOperation","src":"2808:5:1"}],"id":1223,"name":"Return","src":"2801:12:1"}],"id":1224,"name":"Block","src":"2774:44:1"}],"id":1225,"name":"FunctionDefinition","src":"2707:111:1"}],"id":1226,"name":"ContractDefinition","src":"1289:1531:1"}],"id":1227,"name":"SourceUnit","src":"1172:1649:1"}},"externals/base64.sol":{"AST":{"attributes":{"absolutePath":"externals/base64.sol","exportedSymbols":{"Base64":[1547]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".25"]},"id":1228,"name":"PragmaDirective","src":"0:24:2"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"contract","documentation":"@title Base64 provides base 64 decoding functionality.","fullyImplemented":true,"linearizedBaseContracts":[1547],"name":"Base64","scope":1548},"children":[{"attributes":{"constant":true,"name":"BASE64_DECODE_CHAR","scope":1547,"stateVariable":true,"storageLocation":"default","type":"bytes","visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":1229,"name":"ElementaryTypeName","src":"286:5:2"},{"attributes":{"argumentTypes":null,"hexvalue":"000000000000000000000000000000000000000000000000000000000000000000000000000000000000003e003e003f3435363738393a3b3c3d00000000000000000102030405060708090a0b0c0d0e0f10111213141516171819000000003f001a1b1c1d1e1f202122232425262728292a2b2c2d2e2f30313233","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000>\u0000>\u0000?456789:;<=\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u0000\u0000\u0000\u0000?\u0000\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123\"","value":"\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000>\u0000>\u0000?456789:;<=\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u0000\u0000\u0000\u0000?\u0000\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123"},"id":1230,"name":"Literal","src":"322:251:2"}],"id":1231,"name":"VariableDeclaration","src":"286:287:2"},{"attributes":{"constant":true,"documentation":"@return decoded array of bytes.\n @param _encoded base 64 encoded array of bytes.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_base64decode","payable":false,"scope":1547,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_encoded","scope":1546,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":1232,"name":"ElementaryTypeName","src":"699:5:2"}],"id":1233,"name":"VariableDeclaration","src":"699:14:2"}],"id":1234,"name":"ParameterList","src":"698:16:2"},{"children":[{"attributes":{"constant":false,"name":"","scope":1546,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":1235,"name":"ElementaryTypeName","src":"738:5:2"}],"id":1236,"name":"VariableDeclaration","src":"738:5:2"}],"id":1237,"name":"ParameterList","src":"737:7:2"},{"children":[{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"v1","scope":1546,"stateVariable":false,"storageLocation":"default","type":"bytes1","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"byte","type":"bytes1"},"id":1238,"name":"ElementaryTypeName","src":"755:4:2"}],"id":1239,"name":"VariableDeclaration","src":"755:7:2"}],"id":1240,"name":"VariableDeclarationStatement","src":"755:7:2"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"v2","scope":1546,"stateVariable":false,"storageLocation":"default","type":"bytes1","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"byte","type":"bytes1"},"id":1241,"name":"ElementaryTypeName","src":"772:4:2"}],"id":1242,"name":"VariableDeclaration","src":"772:7:2"}],"id":1243,"name":"VariableDeclarationStatement","src":"772:7:2"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"v3","scope":1546,"stateVariable":false,"storageLocation":"default","type":"bytes1","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"byte","type":"bytes1"},"id":1244,"name":"ElementaryTypeName","src":"789:4:2"}],"id":1245,"name":"VariableDeclaration","src":"789:7:2"}],"id":1246,"name":"VariableDeclarationStatement","src":"789:7:2"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"v4","scope":1546,"stateVariable":false,"storageLocation":"default","type":"bytes1","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"byte","type":"bytes1"},"id":1247,"name":"ElementaryTypeName","src":"806:4:2"}],"id":1248,"name":"VariableDeclaration","src":"806:7:2"}],"id":1249,"name":"VariableDeclarationStatement","src":"806:7:2"},{"attributes":{"assignments":[1251]},"children":[{"attributes":{"constant":false,"name":"length","scope":1546,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1250,"name":"ElementaryTypeName","src":"823:4:2"}],"id":1251,"name":"VariableDeclaration","src":"823:11:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1233,"type":"bytes memory","value":"_encoded"},"id":1252,"name":"Identifier","src":"837:8:2"}],"id":1253,"name":"MemberAccess","src":"837:15:2"}],"id":1254,"name":"VariableDeclarationStatement","src":"823:29:2"},{"attributes":{"assignments":[1256]},"children":[{"attributes":{"constant":false,"name":"result","scope":1546,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":1255,"name":"ElementaryTypeName","src":"862:5:2"}],"id":1256,"name":"VariableDeclaration","src":"862:19:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (bytes memory)"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":1257,"name":"ElementaryTypeName","src":"888:5:2"}],"id":1258,"name":"NewExpression","src":"884:9:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1251,"type":"uint256","value":"length"},"id":1259,"name":"Identifier","src":"894:6:2"}],"id":1260,"name":"FunctionCall","src":"884:17:2"}],"id":1261,"name":"VariableDeclarationStatement","src":"862:39:2"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"index","scope":1546,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1262,"name":"ElementaryTypeName","src":"911:4:2"}],"id":1263,"name":"VariableDeclaration","src":"911:10:2"}],"id":1264,"name":"VariableDeclarationStatement","src":"911:10:2"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0ced718491cb52017183196eff428e56ca4dea680831f565a9e1feeb6144c7b3","typeString":"literal_string \"invalid base64 encoding\""}],"overloadedDeclarations":[12061,12062],"referencedDeclaration":12062,"type":"function (bool,string memory) pure","value":"require"},"id":1265,"name":"Identifier","src":"1015:7:2"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&&","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1251,"type":"uint256","value":"length"},"id":1266,"name":"Identifier","src":"1023:6:2"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1267,"name":"Literal","src":"1032:1:2"}],"id":1268,"name":"BinaryOperation","src":"1023:10:2"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"%","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1251,"type":"uint256","value":"length"},"id":1269,"name":"Identifier","src":"1038:6:2"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":1270,"name":"Literal","src":"1047:1:2"}],"id":1271,"name":"BinaryOperation","src":"1038:10:2"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1272,"name":"Literal","src":"1052:1:2"}],"id":1273,"name":"BinaryOperation","src":"1038:15:2"}],"id":1274,"name":"BinaryOperation","src":"1023:30:2"},{"attributes":{"argumentTypes":null,"hexvalue":"696e76616c69642062617365363420656e636f64696e67","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"invalid base64 encoding\"","value":"invalid base64 encoding"},"id":1275,"name":"Literal","src":"1055:25:2"}],"id":1276,"name":"FunctionCall","src":"1015:66:2"}],"id":1277,"name":"ExpressionStatement","src":"1015:66:2"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"overloadedDeclarations":[null],"referencedDeclaration":12052,"type":"function () pure returns (bytes32)","value":"keccak256"},"id":1278,"name":"Identifier","src":"1098:9:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"member_name":"encodePacked","referencedDeclaration":null,"type":"function () pure returns (bytes memory)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":12045,"type":"abi","value":"abi"},"id":1279,"name":"Identifier","src":"1108:3:2"}],"id":1280,"name":"MemberAccess","src":"1108:16:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1233,"type":"bytes memory","value":"_encoded"},"id":1281,"name":"Identifier","src":"1125:8:2"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1251,"type":"uint256","value":"length"},"id":1282,"name":"Identifier","src":"1134:6:2"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":1283,"name":"Literal","src":"1143:1:2"}],"id":1284,"name":"BinaryOperation","src":"1134:10:2"}],"id":1285,"name":"IndexAccess","src":"1125:20:2"}],"id":1286,"name":"FunctionCall","src":"1108:38:2"}],"id":1287,"name":"FunctionCall","src":"1098:49:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f30c17f6c257181e11b9ea19fc7d498b2880fcad645a66e130edeab084271f16","typeString":"literal_string \"=\""}],"overloadedDeclarations":[null],"referencedDeclaration":12052,"type":"function () pure returns (bytes32)","value":"keccak256"},"id":1288,"name":"Identifier","src":"1151:9:2"},{"attributes":{"argumentTypes":null,"hexvalue":"3d","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"=\"","value":"="},"id":1289,"name":"Literal","src":"1161:3:2"}],"id":1290,"name":"FunctionCall","src":"1151:14:2"}],"id":1291,"name":"BinaryOperation","src":"1098:67:2"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1251,"type":"uint256","value":"length"},"id":1292,"name":"Identifier","src":"1183:6:2"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":1293,"name":"Literal","src":"1193:1:2"}],"id":1294,"name":"Assignment","src":"1183:11:2"}],"id":1295,"name":"ExpressionStatement","src":"1183:11:2"}],"id":1296,"name":"Block","src":"1167:40:2"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"overloadedDeclarations":[null],"referencedDeclaration":12052,"type":"function () pure returns (bytes32)","value":"keccak256"},"id":1297,"name":"Identifier","src":"1217:9:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"member_name":"encodePacked","referencedDeclaration":null,"type":"function () pure returns (bytes memory)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":12045,"type":"abi","value":"abi"},"id":1298,"name":"Identifier","src":"1227:3:2"}],"id":1299,"name":"MemberAccess","src":"1227:16:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1233,"type":"bytes memory","value":"_encoded"},"id":1300,"name":"Identifier","src":"1244:8:2"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1251,"type":"uint256","value":"length"},"id":1301,"name":"Identifier","src":"1253:6:2"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":1302,"name":"Literal","src":"1262:1:2"}],"id":1303,"name":"BinaryOperation","src":"1253:10:2"}],"id":1304,"name":"IndexAccess","src":"1244:20:2"}],"id":1305,"name":"FunctionCall","src":"1227:38:2"}],"id":1306,"name":"FunctionCall","src":"1217:49:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f30c17f6c257181e11b9ea19fc7d498b2880fcad645a66e130edeab084271f16","typeString":"literal_string \"=\""}],"overloadedDeclarations":[null],"referencedDeclaration":12052,"type":"function () pure returns (bytes32)","value":"keccak256"},"id":1307,"name":"Identifier","src":"1270:9:2"},{"attributes":{"argumentTypes":null,"hexvalue":"3d","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"=\"","value":"="},"id":1308,"name":"Literal","src":"1280:3:2"}],"id":1309,"name":"FunctionCall","src":"1270:14:2"}],"id":1310,"name":"BinaryOperation","src":"1217:67:2"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1251,"type":"uint256","value":"length"},"id":1311,"name":"Identifier","src":"1302:6:2"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":1312,"name":"Literal","src":"1312:1:2"}],"id":1313,"name":"Assignment","src":"1302:11:2"}],"id":1314,"name":"ExpressionStatement","src":"1302:11:2"}],"id":1315,"name":"Block","src":"1286:40:2"}],"id":1316,"name":"IfStatement","src":"1213:113:2"}],"id":1317,"name":"IfStatement","src":"1094:232:2"},{"attributes":{"assignments":[1319]},"children":[{"attributes":{"constant":false,"name":"count","scope":1546,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1318,"name":"ElementaryTypeName","src":"1337:4:2"}],"id":1319,"name":"VariableDeclaration","src":"1337:10:2"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<<","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">>","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1251,"type":"uint256","value":"length"},"id":1320,"name":"Identifier","src":"1350:6:2"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":1321,"name":"Literal","src":"1360:1:2"}],"id":1322,"name":"BinaryOperation","src":"1350:11:2"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":1323,"name":"Literal","src":"1365:1:2"}],"id":1324,"name":"BinaryOperation","src":"1350:16:2"}],"id":1325,"name":"VariableDeclarationStatement","src":"1337:29:2"},{"attributes":{"loopExpression":null},"children":[{"attributes":{"assignments":[1327]},"children":[{"attributes":{"constant":false,"name":"i","scope":1546,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1326,"name":"ElementaryTypeName","src":"1383:4:2"}],"id":1327,"name":"VariableDeclaration","src":"1383:6:2"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1328,"name":"Literal","src":"1392:1:2"}],"id":1329,"name":"VariableDeclarationStatement","src":"1383:10:2"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1327,"type":"uint256","value":"i"},"id":1330,"name":"Identifier","src":"1395:1:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1319,"type":"uint256","value":"count"},"id":1331,"name":"Identifier","src":"1399:5:2"}],"id":1332,"name":"BinaryOperation","src":"1395:9:2"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1239,"type":"bytes1","value":"v1"},"id":1333,"name":"Identifier","src":"1423:2:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1231,"type":"bytes memory","value":"BASE64_DECODE_CHAR"},"id":1334,"name":"Identifier","src":"1428:18:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint"},"id":1335,"name":"ElementaryTypeNameExpression","src":"1447:4:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1233,"type":"bytes memory","value":"_encoded"},"id":1336,"name":"Identifier","src":"1452:8:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1327,"type":"uint256","value":"i"},"id":1337,"name":"Identifier","src":"1461:1:2"}],"id":1338,"name":"UnaryOperation","src":"1461:3:2"}],"id":1339,"name":"IndexAccess","src":"1452:13:2"}],"id":1340,"name":"FunctionCall","src":"1447:19:2"}],"id":1341,"name":"IndexAccess","src":"1428:39:2"}],"id":1342,"name":"Assignment","src":"1423:44:2"}],"id":1343,"name":"ExpressionStatement","src":"1423:44:2"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1242,"type":"bytes1","value":"v2"},"id":1344,"name":"Identifier","src":"1483:2:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1231,"type":"bytes memory","value":"BASE64_DECODE_CHAR"},"id":1345,"name":"Identifier","src":"1488:18:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint"},"id":1346,"name":"ElementaryTypeNameExpression","src":"1507:4:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1233,"type":"bytes memory","value":"_encoded"},"id":1347,"name":"Identifier","src":"1512:8:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1327,"type":"uint256","value":"i"},"id":1348,"name":"Identifier","src":"1521:1:2"}],"id":1349,"name":"UnaryOperation","src":"1521:3:2"}],"id":1350,"name":"IndexAccess","src":"1512:13:2"}],"id":1351,"name":"FunctionCall","src":"1507:19:2"}],"id":1352,"name":"IndexAccess","src":"1488:39:2"}],"id":1353,"name":"Assignment","src":"1483:44:2"}],"id":1354,"name":"ExpressionStatement","src":"1483:44:2"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1245,"type":"bytes1","value":"v3"},"id":1355,"name":"Identifier","src":"1543:2:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1231,"type":"bytes memory","value":"BASE64_DECODE_CHAR"},"id":1356,"name":"Identifier","src":"1548:18:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint"},"id":1357,"name":"ElementaryTypeNameExpression","src":"1567:4:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1233,"type":"bytes memory","value":"_encoded"},"id":1358,"name":"Identifier","src":"1572:8:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1327,"type":"uint256","value":"i"},"id":1359,"name":"Identifier","src":"1581:1:2"}],"id":1360,"name":"UnaryOperation","src":"1581:3:2"}],"id":1361,"name":"IndexAccess","src":"1572:13:2"}],"id":1362,"name":"FunctionCall","src":"1567:19:2"}],"id":1363,"name":"IndexAccess","src":"1548:39:2"}],"id":1364,"name":"Assignment","src":"1543:44:2"}],"id":1365,"name":"ExpressionStatement","src":"1543:44:2"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1248,"type":"bytes1","value":"v4"},"id":1366,"name":"Identifier","src":"1603:2:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1231,"type":"bytes memory","value":"BASE64_DECODE_CHAR"},"id":1367,"name":"Identifier","src":"1608:18:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint"},"id":1368,"name":"ElementaryTypeNameExpression","src":"1627:4:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1233,"type":"bytes memory","value":"_encoded"},"id":1369,"name":"Identifier","src":"1632:8:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1327,"type":"uint256","value":"i"},"id":1370,"name":"Identifier","src":"1641:1:2"}],"id":1371,"name":"UnaryOperation","src":"1641:3:2"}],"id":1372,"name":"IndexAccess","src":"1632:13:2"}],"id":1373,"name":"FunctionCall","src":"1627:19:2"}],"id":1374,"name":"IndexAccess","src":"1608:39:2"}],"id":1375,"name":"Assignment","src":"1603:44:2"}],"id":1376,"name":"ExpressionStatement","src":"1603:44:2"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1256,"type":"bytes memory","value":"result"},"id":1377,"name":"Identifier","src":"1664:6:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1263,"type":"uint256","value":"index"},"id":1378,"name":"Identifier","src":"1671:5:2"}],"id":1379,"name":"UnaryOperation","src":"1671:7:2"}],"id":1380,"name":"IndexAccess","src":"1664:15:2"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"|","type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<<","type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1239,"type":"bytes1","value":"v1"},"id":1381,"name":"Identifier","src":"1683:2:2"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":1382,"name":"Literal","src":"1689:1:2"}],"id":1383,"name":"BinaryOperation","src":"1683:7:2"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">>","type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1242,"type":"bytes1","value":"v2"},"id":1384,"name":"Identifier","src":"1693:2:2"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":1385,"name":"Literal","src":"1699:1:2"}],"id":1386,"name":"BinaryOperation","src":"1693:7:2"}],"id":1387,"name":"BinaryOperation","src":"1683:17:2"}],"id":1388,"name":"TupleExpression","src":"1682:19:2"},{"attributes":{"argumentTypes":null,"hexvalue":"323535","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 255","value":"255"},"id":1389,"name":"Literal","src":"1704:3:2"}],"id":1390,"name":"BinaryOperation","src":"1682:25:2"}],"id":1391,"name":"Assignment","src":"1664:43:2"}],"id":1392,"name":"ExpressionStatement","src":"1664:43:2"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1256,"type":"bytes memory","value":"result"},"id":1393,"name":"Identifier","src":"1723:6:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1263,"type":"uint256","value":"index"},"id":1394,"name":"Identifier","src":"1730:5:2"}],"id":1395,"name":"UnaryOperation","src":"1730:7:2"}],"id":1396,"name":"IndexAccess","src":"1723:15:2"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"|","type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<<","type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1242,"type":"bytes1","value":"v2"},"id":1397,"name":"Identifier","src":"1742:2:2"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":1398,"name":"Literal","src":"1748:1:2"}],"id":1399,"name":"BinaryOperation","src":"1742:7:2"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">>","type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1245,"type":"bytes1","value":"v3"},"id":1400,"name":"Identifier","src":"1752:2:2"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":1401,"name":"Literal","src":"1758:1:2"}],"id":1402,"name":"BinaryOperation","src":"1752:7:2"}],"id":1403,"name":"BinaryOperation","src":"1742:17:2"}],"id":1404,"name":"TupleExpression","src":"1741:19:2"},{"attributes":{"argumentTypes":null,"hexvalue":"323535","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 255","value":"255"},"id":1405,"name":"Literal","src":"1763:3:2"}],"id":1406,"name":"BinaryOperation","src":"1741:25:2"}],"id":1407,"name":"Assignment","src":"1723:43:2"}],"id":1408,"name":"ExpressionStatement","src":"1723:43:2"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1256,"type":"bytes memory","value":"result"},"id":1409,"name":"Identifier","src":"1782:6:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1263,"type":"uint256","value":"index"},"id":1410,"name":"Identifier","src":"1789:5:2"}],"id":1411,"name":"UnaryOperation","src":"1789:7:2"}],"id":1412,"name":"IndexAccess","src":"1782:15:2"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"|","type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<<","type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1245,"type":"bytes1","value":"v3"},"id":1413,"name":"Identifier","src":"1801:2:2"},{"attributes":{"argumentTypes":null,"hexvalue":"36","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 6","value":"6"},"id":1414,"name":"Literal","src":"1807:1:2"}],"id":1415,"name":"BinaryOperation","src":"1801:7:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1248,"type":"bytes1","value":"v4"},"id":1416,"name":"Identifier","src":"1811:2:2"}],"id":1417,"name":"BinaryOperation","src":"1801:12:2"}],"id":1418,"name":"TupleExpression","src":"1800:14:2"},{"attributes":{"argumentTypes":null,"hexvalue":"323535","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 255","value":"255"},"id":1419,"name":"Literal","src":"1817:3:2"}],"id":1420,"name":"BinaryOperation","src":"1800:20:2"}],"id":1421,"name":"Assignment","src":"1782:38:2"}],"id":1422,"name":"ExpressionStatement","src":"1782:38:2"}],"id":1423,"name":"Block","src":"1407:426:2"}],"id":1424,"name":"ForStatement","src":"1378:455:2"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1251,"type":"uint256","value":"length"},"id":1425,"name":"Identifier","src":"1848:6:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1319,"type":"uint256","value":"count"},"id":1426,"name":"Identifier","src":"1857:5:2"}],"id":1427,"name":"BinaryOperation","src":"1848:14:2"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":1428,"name":"Literal","src":"1866:1:2"}],"id":1429,"name":"BinaryOperation","src":"1848:19:2"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1239,"type":"bytes1","value":"v1"},"id":1430,"name":"Identifier","src":"1885:2:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1231,"type":"bytes memory","value":"BASE64_DECODE_CHAR"},"id":1431,"name":"Identifier","src":"1890:18:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint"},"id":1432,"name":"ElementaryTypeNameExpression","src":"1909:4:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1233,"type":"bytes memory","value":"_encoded"},"id":1433,"name":"Identifier","src":"1914:8:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1327,"type":"uint256","value":"i"},"id":1434,"name":"Identifier","src":"1923:1:2"}],"id":1435,"name":"UnaryOperation","src":"1923:3:2"}],"id":1436,"name":"IndexAccess","src":"1914:13:2"}],"id":1437,"name":"FunctionCall","src":"1909:19:2"}],"id":1438,"name":"IndexAccess","src":"1890:39:2"}],"id":1439,"name":"Assignment","src":"1885:44:2"}],"id":1440,"name":"ExpressionStatement","src":"1885:44:2"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1242,"type":"bytes1","value":"v2"},"id":1441,"name":"Identifier","src":"1945:2:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1231,"type":"bytes memory","value":"BASE64_DECODE_CHAR"},"id":1442,"name":"Identifier","src":"1950:18:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint"},"id":1443,"name":"ElementaryTypeNameExpression","src":"1969:4:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1233,"type":"bytes memory","value":"_encoded"},"id":1444,"name":"Identifier","src":"1974:8:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1327,"type":"uint256","value":"i"},"id":1445,"name":"Identifier","src":"1983:1:2"}],"id":1446,"name":"UnaryOperation","src":"1983:3:2"}],"id":1447,"name":"IndexAccess","src":"1974:13:2"}],"id":1448,"name":"FunctionCall","src":"1969:19:2"}],"id":1449,"name":"IndexAccess","src":"1950:39:2"}],"id":1450,"name":"Assignment","src":"1945:44:2"}],"id":1451,"name":"ExpressionStatement","src":"1945:44:2"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1256,"type":"bytes memory","value":"result"},"id":1452,"name":"Identifier","src":"2005:6:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1263,"type":"uint256","value":"index"},"id":1453,"name":"Identifier","src":"2012:5:2"}],"id":1454,"name":"UnaryOperation","src":"2012:7:2"}],"id":1455,"name":"IndexAccess","src":"2005:15:2"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"|","type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<<","type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1239,"type":"bytes1","value":"v1"},"id":1456,"name":"Identifier","src":"2024:2:2"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":1457,"name":"Literal","src":"2030:1:2"}],"id":1458,"name":"BinaryOperation","src":"2024:7:2"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">>","type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1242,"type":"bytes1","value":"v2"},"id":1459,"name":"Identifier","src":"2034:2:2"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":1460,"name":"Literal","src":"2040:1:2"}],"id":1461,"name":"BinaryOperation","src":"2034:7:2"}],"id":1462,"name":"BinaryOperation","src":"2024:17:2"}],"id":1463,"name":"TupleExpression","src":"2023:19:2"},{"attributes":{"argumentTypes":null,"hexvalue":"323535","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 255","value":"255"},"id":1464,"name":"Literal","src":"2045:3:2"}],"id":1465,"name":"BinaryOperation","src":"2023:25:2"}],"id":1466,"name":"Assignment","src":"2005:43:2"}],"id":1467,"name":"ExpressionStatement","src":"2005:43:2"}],"id":1468,"name":"Block","src":"1869:192:2"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1251,"type":"uint256","value":"length"},"id":1469,"name":"Identifier","src":"2071:6:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1319,"type":"uint256","value":"count"},"id":1470,"name":"Identifier","src":"2080:5:2"}],"id":1471,"name":"BinaryOperation","src":"2071:14:2"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":1472,"name":"Literal","src":"2089:1:2"}],"id":1473,"name":"BinaryOperation","src":"2071:19:2"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1239,"type":"bytes1","value":"v1"},"id":1474,"name":"Identifier","src":"2108:2:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1231,"type":"bytes memory","value":"BASE64_DECODE_CHAR"},"id":1475,"name":"Identifier","src":"2113:18:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint"},"id":1476,"name":"ElementaryTypeNameExpression","src":"2132:4:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1233,"type":"bytes memory","value":"_encoded"},"id":1477,"name":"Identifier","src":"2137:8:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1327,"type":"uint256","value":"i"},"id":1478,"name":"Identifier","src":"2146:1:2"}],"id":1479,"name":"UnaryOperation","src":"2146:3:2"}],"id":1480,"name":"IndexAccess","src":"2137:13:2"}],"id":1481,"name":"FunctionCall","src":"2132:19:2"}],"id":1482,"name":"IndexAccess","src":"2113:39:2"}],"id":1483,"name":"Assignment","src":"2108:44:2"}],"id":1484,"name":"ExpressionStatement","src":"2108:44:2"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1242,"type":"bytes1","value":"v2"},"id":1485,"name":"Identifier","src":"2168:2:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1231,"type":"bytes memory","value":"BASE64_DECODE_CHAR"},"id":1486,"name":"Identifier","src":"2173:18:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint"},"id":1487,"name":"ElementaryTypeNameExpression","src":"2192:4:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1233,"type":"bytes memory","value":"_encoded"},"id":1488,"name":"Identifier","src":"2197:8:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1327,"type":"uint256","value":"i"},"id":1489,"name":"Identifier","src":"2206:1:2"}],"id":1490,"name":"UnaryOperation","src":"2206:3:2"}],"id":1491,"name":"IndexAccess","src":"2197:13:2"}],"id":1492,"name":"FunctionCall","src":"2192:19:2"}],"id":1493,"name":"IndexAccess","src":"2173:39:2"}],"id":1494,"name":"Assignment","src":"2168:44:2"}],"id":1495,"name":"ExpressionStatement","src":"2168:44:2"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1245,"type":"bytes1","value":"v3"},"id":1496,"name":"Identifier","src":"2228:2:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1231,"type":"bytes memory","value":"BASE64_DECODE_CHAR"},"id":1497,"name":"Identifier","src":"2233:18:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint"},"id":1498,"name":"ElementaryTypeNameExpression","src":"2252:4:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1233,"type":"bytes memory","value":"_encoded"},"id":1499,"name":"Identifier","src":"2257:8:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1327,"type":"uint256","value":"i"},"id":1500,"name":"Identifier","src":"2266:1:2"}],"id":1501,"name":"UnaryOperation","src":"2266:3:2"}],"id":1502,"name":"IndexAccess","src":"2257:13:2"}],"id":1503,"name":"FunctionCall","src":"2252:19:2"}],"id":1504,"name":"IndexAccess","src":"2233:39:2"}],"id":1505,"name":"Assignment","src":"2228:44:2"}],"id":1506,"name":"ExpressionStatement","src":"2228:44:2"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1256,"type":"bytes memory","value":"result"},"id":1507,"name":"Identifier","src":"2289:6:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1263,"type":"uint256","value":"index"},"id":1508,"name":"Identifier","src":"2296:5:2"}],"id":1509,"name":"UnaryOperation","src":"2296:7:2"}],"id":1510,"name":"IndexAccess","src":"2289:15:2"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"|","type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<<","type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1239,"type":"bytes1","value":"v1"},"id":1511,"name":"Identifier","src":"2308:2:2"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":1512,"name":"Literal","src":"2314:1:2"}],"id":1513,"name":"BinaryOperation","src":"2308:7:2"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">>","type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1242,"type":"bytes1","value":"v2"},"id":1514,"name":"Identifier","src":"2318:2:2"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":1515,"name":"Literal","src":"2324:1:2"}],"id":1516,"name":"BinaryOperation","src":"2318:7:2"}],"id":1517,"name":"BinaryOperation","src":"2308:17:2"}],"id":1518,"name":"TupleExpression","src":"2307:19:2"},{"attributes":{"argumentTypes":null,"hexvalue":"323535","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 255","value":"255"},"id":1519,"name":"Literal","src":"2329:3:2"}],"id":1520,"name":"BinaryOperation","src":"2307:25:2"}],"id":1521,"name":"Assignment","src":"2289:43:2"}],"id":1522,"name":"ExpressionStatement","src":"2289:43:2"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1256,"type":"bytes memory","value":"result"},"id":1523,"name":"Identifier","src":"2348:6:2"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1263,"type":"uint256","value":"index"},"id":1524,"name":"Identifier","src":"2355:5:2"}],"id":1525,"name":"UnaryOperation","src":"2355:7:2"}],"id":1526,"name":"IndexAccess","src":"2348:15:2"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"|","type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<<","type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1242,"type":"bytes1","value":"v2"},"id":1527,"name":"Identifier","src":"2367:2:2"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":1528,"name":"Literal","src":"2373:1:2"}],"id":1529,"name":"BinaryOperation","src":"2367:7:2"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">>","type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1245,"type":"bytes1","value":"v3"},"id":1530,"name":"Identifier","src":"2377:2:2"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":1531,"name":"Literal","src":"2383:1:2"}],"id":1532,"name":"BinaryOperation","src":"2377:7:2"}],"id":1533,"name":"BinaryOperation","src":"2367:17:2"}],"id":1534,"name":"TupleExpression","src":"2366:19:2"},{"attributes":{"argumentTypes":null,"hexvalue":"323535","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 255","value":"255"},"id":1535,"name":"Literal","src":"2388:3:2"}],"id":1536,"name":"BinaryOperation","src":"2366:25:2"}],"id":1537,"name":"Assignment","src":"2348:43:2"}],"id":1538,"name":"ExpressionStatement","src":"2348:43:2"}],"id":1539,"name":"Block","src":"2092:312:2"}],"id":1540,"name":"IfStatement","src":"2067:337:2"}],"id":1541,"name":"IfStatement","src":"1844:560:2"},{"attributes":{"externalReferences":[{"result":{"declaration":1256,"isOffset":false,"isSlot":false,"src":"2478:6:2","valueSize":1}},{"index":{"declaration":1263,"isOffset":false,"isSlot":false,"src":"2486:5:2","valueSize":1}}],"operations":"{\n mstore(result, index)\n}"},"children":[],"id":1542,"name":"InlineAssembly","src":"2448:70:2"},{"attributes":{"functionReturnParameters":1237},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1256,"type":"bytes memory","value":"result"},"id":1543,"name":"Identifier","src":"2519:6:2"}],"id":1544,"name":"Return","src":"2512:13:2"}],"id":1545,"name":"Block","src":"745:1787:2"}],"id":1546,"name":"FunctionDefinition","src":"676:1856:2"}],"id":1547,"name":"ContractDefinition","src":"264:2270:2"}],"id":1548,"name":"SourceUnit","src":"0:2535:2"}},"externals/ens/ENS.sol":{"AST":{"attributes":{"absolutePath":"externals/ens/ENS.sol","exportedSymbols":{"ENS":[9106]}},"children":[{"attributes":{"literals":["solidity",">=","0.4",".24"]},"id":9028,"name":"PragmaDirective","src":"1400:25:3"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"interface","documentation":null,"fullyImplemented":false,"linearizedBaseContracts":[9106],"name":"ENS","scope":9107},"children":[{"attributes":{"anonymous":false,"documentation":null,"name":"NewOwner"},"children":[{"children":[{"attributes":{"constant":false,"indexed":true,"name":"node","scope":9036,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9029,"name":"ElementaryTypeName","src":"1536:7:3"}],"id":9030,"name":"VariableDeclaration","src":"1536:20:3"},{"attributes":{"constant":false,"indexed":true,"name":"label","scope":9036,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9031,"name":"ElementaryTypeName","src":"1558:7:3"}],"id":9032,"name":"VariableDeclaration","src":"1558:21:3"},{"attributes":{"constant":false,"indexed":false,"name":"owner","scope":9036,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":9033,"name":"ElementaryTypeName","src":"1581:7:3"}],"id":9034,"name":"VariableDeclaration","src":"1581:13:3"}],"id":9035,"name":"ParameterList","src":"1535:60:3"}],"id":9036,"name":"EventDefinition","src":"1521:75:3"},{"attributes":{"anonymous":false,"documentation":null,"name":"Transfer"},"children":[{"children":[{"attributes":{"constant":false,"indexed":true,"name":"node","scope":9042,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9037,"name":"ElementaryTypeName","src":"1694:7:3"}],"id":9038,"name":"VariableDeclaration","src":"1694:20:3"},{"attributes":{"constant":false,"indexed":false,"name":"owner","scope":9042,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":9039,"name":"ElementaryTypeName","src":"1716:7:3"}],"id":9040,"name":"VariableDeclaration","src":"1716:13:3"}],"id":9041,"name":"ParameterList","src":"1693:37:3"}],"id":9042,"name":"EventDefinition","src":"1679:52:3"},{"attributes":{"anonymous":false,"documentation":null,"name":"NewResolver"},"children":[{"children":[{"attributes":{"constant":false,"indexed":true,"name":"node","scope":9048,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9043,"name":"ElementaryTypeName","src":"1807:7:3"}],"id":9044,"name":"VariableDeclaration","src":"1807:20:3"},{"attributes":{"constant":false,"indexed":false,"name":"resolver","scope":9048,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":9045,"name":"ElementaryTypeName","src":"1829:7:3"}],"id":9046,"name":"VariableDeclaration","src":"1829:16:3"}],"id":9047,"name":"ParameterList","src":"1806:40:3"}],"id":9048,"name":"EventDefinition","src":"1789:58:3"},{"attributes":{"anonymous":false,"documentation":null,"name":"NewTTL"},"children":[{"children":[{"attributes":{"constant":false,"indexed":true,"name":"node","scope":9054,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9049,"name":"ElementaryTypeName","src":"1911:7:3"}],"id":9050,"name":"VariableDeclaration","src":"1911:20:3"},{"attributes":{"constant":false,"indexed":false,"name":"ttl","scope":9054,"stateVariable":false,"storageLocation":"default","type":"uint64","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint64","type":"uint64"},"id":9051,"name":"ElementaryTypeName","src":"1933:6:3"}],"id":9052,"name":"VariableDeclaration","src":"1933:10:3"}],"id":9053,"name":"ParameterList","src":"1910:34:3"}],"id":9054,"name":"EventDefinition","src":"1898:47:3"},{"attributes":{"body":null,"constant":false,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"setSubnodeOwner","payable":false,"scope":9106,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":9063,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9055,"name":"ElementaryTypeName","src":"1977:7:3"}],"id":9056,"name":"VariableDeclaration","src":"1977:12:3"},{"attributes":{"constant":false,"name":"label","scope":9063,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9057,"name":"ElementaryTypeName","src":"1991:7:3"}],"id":9058,"name":"VariableDeclaration","src":"1991:13:3"},{"attributes":{"constant":false,"name":"owner","scope":9063,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":9059,"name":"ElementaryTypeName","src":"2006:7:3"}],"id":9060,"name":"VariableDeclaration","src":"2006:13:3"}],"id":9061,"name":"ParameterList","src":"1976:44:3"},{"attributes":{"parameters":[null]},"children":[],"id":9062,"name":"ParameterList","src":"2029:0:3"}],"id":9063,"name":"FunctionDefinition","src":"1952:78:3"},{"attributes":{"body":null,"constant":false,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"setResolver","payable":false,"scope":9106,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":9070,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9064,"name":"ElementaryTypeName","src":"2056:7:3"}],"id":9065,"name":"VariableDeclaration","src":"2056:12:3"},{"attributes":{"constant":false,"name":"resolver","scope":9070,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":9066,"name":"ElementaryTypeName","src":"2070:7:3"}],"id":9067,"name":"VariableDeclaration","src":"2070:16:3"}],"id":9068,"name":"ParameterList","src":"2055:32:3"},{"attributes":{"parameters":[null]},"children":[],"id":9069,"name":"ParameterList","src":"2096:0:3"}],"id":9070,"name":"FunctionDefinition","src":"2035:62:3"},{"attributes":{"body":null,"constant":false,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"setOwner","payable":false,"scope":9106,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":9077,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9071,"name":"ElementaryTypeName","src":"2120:7:3"}],"id":9072,"name":"VariableDeclaration","src":"2120:12:3"},{"attributes":{"constant":false,"name":"owner","scope":9077,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":9073,"name":"ElementaryTypeName","src":"2134:7:3"}],"id":9074,"name":"VariableDeclaration","src":"2134:13:3"}],"id":9075,"name":"ParameterList","src":"2119:29:3"},{"attributes":{"parameters":[null]},"children":[],"id":9076,"name":"ParameterList","src":"2157:0:3"}],"id":9077,"name":"FunctionDefinition","src":"2102:56:3"},{"attributes":{"body":null,"constant":false,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"setTTL","payable":false,"scope":9106,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":9084,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9078,"name":"ElementaryTypeName","src":"2179:7:3"}],"id":9079,"name":"VariableDeclaration","src":"2179:12:3"},{"attributes":{"constant":false,"name":"ttl","scope":9084,"stateVariable":false,"storageLocation":"default","type":"uint64","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint64","type":"uint64"},"id":9080,"name":"ElementaryTypeName","src":"2193:6:3"}],"id":9081,"name":"VariableDeclaration","src":"2193:10:3"}],"id":9082,"name":"ParameterList","src":"2178:26:3"},{"attributes":{"parameters":[null]},"children":[],"id":9083,"name":"ParameterList","src":"2213:0:3"}],"id":9084,"name":"FunctionDefinition","src":"2163:51:3"},{"attributes":{"body":null,"constant":true,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"owner","payable":false,"scope":9106,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":9091,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9085,"name":"ElementaryTypeName","src":"2234:7:3"}],"id":9086,"name":"VariableDeclaration","src":"2234:12:3"}],"id":9087,"name":"ParameterList","src":"2233:14:3"},{"children":[{"attributes":{"constant":false,"name":"","scope":9091,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":9088,"name":"ElementaryTypeName","src":"2271:7:3"}],"id":9089,"name":"VariableDeclaration","src":"2271:7:3"}],"id":9090,"name":"ParameterList","src":"2270:9:3"}],"id":9091,"name":"FunctionDefinition","src":"2219:61:3"},{"attributes":{"body":null,"constant":true,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"resolver","payable":false,"scope":9106,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":9098,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9092,"name":"ElementaryTypeName","src":"2303:7:3"}],"id":9093,"name":"VariableDeclaration","src":"2303:12:3"}],"id":9094,"name":"ParameterList","src":"2302:14:3"},{"children":[{"attributes":{"constant":false,"name":"","scope":9098,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":9095,"name":"ElementaryTypeName","src":"2340:7:3"}],"id":9096,"name":"VariableDeclaration","src":"2340:7:3"}],"id":9097,"name":"ParameterList","src":"2339:9:3"}],"id":9098,"name":"FunctionDefinition","src":"2285:64:3"},{"attributes":{"body":null,"constant":true,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"ttl","payable":false,"scope":9106,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":9105,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9099,"name":"ElementaryTypeName","src":"2367:7:3"}],"id":9100,"name":"VariableDeclaration","src":"2367:12:3"}],"id":9101,"name":"ParameterList","src":"2366:14:3"},{"children":[{"attributes":{"constant":false,"name":"","scope":9105,"stateVariable":false,"storageLocation":"default","type":"uint64","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint64","type":"uint64"},"id":9102,"name":"ElementaryTypeName","src":"2404:6:3"}],"id":9103,"name":"VariableDeclaration","src":"2404:6:3"}],"id":9104,"name":"ParameterList","src":"2403:8:3"}],"id":9105,"name":"FunctionDefinition","src":"2354:58:3"}],"id":9106,"name":"ContractDefinition","src":"1427:988:3"}],"id":9107,"name":"SourceUnit","src":"1400:1017:3"}},"externals/ens/PublicResolver.sol":{"AST":{"attributes":{"absolutePath":"externals/ens/PublicResolver.sol","exportedSymbols":{"PublicResolver":[9614]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".24"]},"id":9108,"name":"PragmaDirective","src":"1406:24:4"},{"attributes":{"SourceUnit":9107,"absolutePath":"externals/ens/ENS.sol","file":"./ENS.sol","scope":9615,"symbolAliases":[null],"unitAlias":""},"id":9109,"name":"ImportDirective","src":"1432:19:4"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"contract","documentation":"A simple resolver anyone can use; only allows the owner of a node to set its\naddress.","fullyImplemented":true,"linearizedBaseContracts":[9614],"name":"PublicResolver","scope":9615},"children":[{"attributes":{"constant":true,"name":"INTERFACE_META_ID","scope":9614,"stateVariable":true,"storageLocation":"default","type":"bytes4","visibility":"internal"},"children":[{"attributes":{"name":"bytes4","type":"bytes4"},"id":9110,"name":"ElementaryTypeName","src":"1584:6:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30783031666663396137","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 33540519","value":"0x01ffc9a7"},"id":9111,"name":"Literal","src":"1620:10:4"}],"id":9112,"name":"VariableDeclaration","src":"1584:46:4"},{"attributes":{"constant":true,"name":"ADDR_INTERFACE_ID","scope":9614,"stateVariable":true,"storageLocation":"default","type":"bytes4","visibility":"internal"},"children":[{"attributes":{"name":"bytes4","type":"bytes4"},"id":9113,"name":"ElementaryTypeName","src":"1636:6:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30783362336235376465","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 993744862","value":"0x3b3b57de"},"id":9114,"name":"Literal","src":"1672:10:4"}],"id":9115,"name":"VariableDeclaration","src":"1636:46:4"},{"attributes":{"constant":true,"name":"CONTENT_INTERFACE_ID","scope":9614,"stateVariable":true,"storageLocation":"default","type":"bytes4","visibility":"internal"},"children":[{"attributes":{"name":"bytes4","type":"bytes4"},"id":9116,"name":"ElementaryTypeName","src":"1688:6:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30786438333839646335","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3627589061","value":"0xd8389dc5"},"id":9117,"name":"Literal","src":"1727:10:4"}],"id":9118,"name":"VariableDeclaration","src":"1688:49:4"},{"attributes":{"constant":true,"name":"NAME_INTERFACE_ID","scope":9614,"stateVariable":true,"storageLocation":"default","type":"bytes4","visibility":"internal"},"children":[{"attributes":{"name":"bytes4","type":"bytes4"},"id":9119,"name":"ElementaryTypeName","src":"1743:6:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30783639316633343331","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1763652657","value":"0x691f3431"},"id":9120,"name":"Literal","src":"1779:10:4"}],"id":9121,"name":"VariableDeclaration","src":"1743:46:4"},{"attributes":{"constant":true,"name":"ABI_INTERFACE_ID","scope":9614,"stateVariable":true,"storageLocation":"default","type":"bytes4","visibility":"internal"},"children":[{"attributes":{"name":"bytes4","type":"bytes4"},"id":9122,"name":"ElementaryTypeName","src":"1795:6:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30783232303361623536","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 570665814","value":"0x2203ab56"},"id":9123,"name":"Literal","src":"1830:10:4"}],"id":9124,"name":"VariableDeclaration","src":"1795:45:4"},{"attributes":{"constant":true,"name":"PUBKEY_INTERFACE_ID","scope":9614,"stateVariable":true,"storageLocation":"default","type":"bytes4","visibility":"internal"},"children":[{"attributes":{"name":"bytes4","type":"bytes4"},"id":9125,"name":"ElementaryTypeName","src":"1846:6:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30786338363930323333","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3362325043","value":"0xc8690233"},"id":9126,"name":"Literal","src":"1884:10:4"}],"id":9127,"name":"VariableDeclaration","src":"1846:48:4"},{"attributes":{"constant":true,"name":"TEXT_INTERFACE_ID","scope":9614,"stateVariable":true,"storageLocation":"default","type":"bytes4","visibility":"internal"},"children":[{"attributes":{"name":"bytes4","type":"bytes4"},"id":9128,"name":"ElementaryTypeName","src":"1900:6:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30783539643164343363","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1506923580","value":"0x59d1d43c"},"id":9129,"name":"Literal","src":"1936:10:4"}],"id":9130,"name":"VariableDeclaration","src":"1900:46:4"},{"attributes":{"constant":true,"name":"MULTIHASH_INTERFACE_ID","scope":9614,"stateVariable":true,"storageLocation":"default","type":"bytes4","visibility":"internal"},"children":[{"attributes":{"name":"bytes4","type":"bytes4"},"id":9131,"name":"ElementaryTypeName","src":"1952:6:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30786538393430316131","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3902013857","value":"0xe89401a1"},"id":9132,"name":"Literal","src":"1993:10:4"}],"id":9133,"name":"VariableDeclaration","src":"1952:51:4"},{"attributes":{"anonymous":false,"documentation":null,"name":"AddrChanged"},"children":[{"children":[{"attributes":{"constant":false,"indexed":true,"name":"node","scope":9139,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9134,"name":"ElementaryTypeName","src":"2028:7:4"}],"id":9135,"name":"VariableDeclaration","src":"2028:20:4"},{"attributes":{"constant":false,"indexed":false,"name":"a","scope":9139,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":9136,"name":"ElementaryTypeName","src":"2050:7:4"}],"id":9137,"name":"VariableDeclaration","src":"2050:9:4"}],"id":9138,"name":"ParameterList","src":"2027:33:4"}],"id":9139,"name":"EventDefinition","src":"2010:51:4"},{"attributes":{"anonymous":false,"documentation":null,"name":"ContentChanged"},"children":[{"children":[{"attributes":{"constant":false,"indexed":true,"name":"node","scope":9145,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9140,"name":"ElementaryTypeName","src":"2087:7:4"}],"id":9141,"name":"VariableDeclaration","src":"2087:20:4"},{"attributes":{"constant":false,"indexed":false,"name":"hash","scope":9145,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9142,"name":"ElementaryTypeName","src":"2109:7:4"}],"id":9143,"name":"VariableDeclaration","src":"2109:12:4"}],"id":9144,"name":"ParameterList","src":"2086:36:4"}],"id":9145,"name":"EventDefinition","src":"2066:57:4"},{"attributes":{"anonymous":false,"documentation":null,"name":"NameChanged"},"children":[{"children":[{"attributes":{"constant":false,"indexed":true,"name":"node","scope":9151,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9146,"name":"ElementaryTypeName","src":"2146:7:4"}],"id":9147,"name":"VariableDeclaration","src":"2146:20:4"},{"attributes":{"constant":false,"indexed":false,"name":"name","scope":9151,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":9148,"name":"ElementaryTypeName","src":"2168:6:4"}],"id":9149,"name":"VariableDeclaration","src":"2168:11:4"}],"id":9150,"name":"ParameterList","src":"2145:35:4"}],"id":9151,"name":"EventDefinition","src":"2128:53:4"},{"attributes":{"anonymous":false,"documentation":null,"name":"ABIChanged"},"children":[{"children":[{"attributes":{"constant":false,"indexed":true,"name":"node","scope":9157,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9152,"name":"ElementaryTypeName","src":"2203:7:4"}],"id":9153,"name":"VariableDeclaration","src":"2203:20:4"},{"attributes":{"constant":false,"indexed":true,"name":"contentType","scope":9157,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":9154,"name":"ElementaryTypeName","src":"2225:7:4"}],"id":9155,"name":"VariableDeclaration","src":"2225:27:4"}],"id":9156,"name":"ParameterList","src":"2202:51:4"}],"id":9157,"name":"EventDefinition","src":"2186:68:4"},{"attributes":{"anonymous":false,"documentation":null,"name":"PubkeyChanged"},"children":[{"children":[{"attributes":{"constant":false,"indexed":true,"name":"node","scope":9165,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9158,"name":"ElementaryTypeName","src":"2279:7:4"}],"id":9159,"name":"VariableDeclaration","src":"2279:20:4"},{"attributes":{"constant":false,"indexed":false,"name":"x","scope":9165,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9160,"name":"ElementaryTypeName","src":"2301:7:4"}],"id":9161,"name":"VariableDeclaration","src":"2301:9:4"},{"attributes":{"constant":false,"indexed":false,"name":"y","scope":9165,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9162,"name":"ElementaryTypeName","src":"2312:7:4"}],"id":9163,"name":"VariableDeclaration","src":"2312:9:4"}],"id":9164,"name":"ParameterList","src":"2278:44:4"}],"id":9165,"name":"EventDefinition","src":"2259:64:4"},{"attributes":{"anonymous":false,"documentation":null,"name":"TextChanged"},"children":[{"children":[{"attributes":{"constant":false,"indexed":true,"name":"node","scope":9173,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9166,"name":"ElementaryTypeName","src":"2346:7:4"}],"id":9167,"name":"VariableDeclaration","src":"2346:20:4"},{"attributes":{"constant":false,"indexed":false,"name":"indexedKey","scope":9173,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":9168,"name":"ElementaryTypeName","src":"2368:6:4"}],"id":9169,"name":"VariableDeclaration","src":"2368:17:4"},{"attributes":{"constant":false,"indexed":false,"name":"key","scope":9173,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":9170,"name":"ElementaryTypeName","src":"2387:6:4"}],"id":9171,"name":"VariableDeclaration","src":"2387:10:4"}],"id":9172,"name":"ParameterList","src":"2345:53:4"}],"id":9173,"name":"EventDefinition","src":"2328:71:4"},{"attributes":{"anonymous":false,"documentation":null,"name":"MultihashChanged"},"children":[{"children":[{"attributes":{"constant":false,"indexed":true,"name":"node","scope":9179,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9174,"name":"ElementaryTypeName","src":"2427:7:4"}],"id":9175,"name":"VariableDeclaration","src":"2427:20:4"},{"attributes":{"constant":false,"indexed":false,"name":"hash","scope":9179,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":9176,"name":"ElementaryTypeName","src":"2449:5:4"}],"id":9177,"name":"VariableDeclaration","src":"2449:10:4"}],"id":9178,"name":"ParameterList","src":"2426:34:4"}],"id":9179,"name":"EventDefinition","src":"2404:57:4"},{"attributes":{"canonicalName":"PublicResolver.PublicKey","name":"PublicKey","scope":9614,"visibility":"public"},"children":[{"attributes":{"constant":false,"name":"x","scope":9184,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9180,"name":"ElementaryTypeName","src":"2494:7:4"}],"id":9181,"name":"VariableDeclaration","src":"2494:9:4"},{"attributes":{"constant":false,"name":"y","scope":9184,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9182,"name":"ElementaryTypeName","src":"2513:7:4"}],"id":9183,"name":"VariableDeclaration","src":"2513:9:4"}],"id":9184,"name":"StructDefinition","src":"2467:62:4"},{"attributes":{"canonicalName":"PublicResolver.Record","name":"Record","scope":9614,"visibility":"public"},"children":[{"attributes":{"constant":false,"name":"addr","scope":9203,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":9185,"name":"ElementaryTypeName","src":"2559:7:4"}],"id":9186,"name":"VariableDeclaration","src":"2559:12:4"},{"attributes":{"constant":false,"name":"content","scope":9203,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9187,"name":"ElementaryTypeName","src":"2581:7:4"}],"id":9188,"name":"VariableDeclaration","src":"2581:15:4"},{"attributes":{"constant":false,"name":"name","scope":9203,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":9189,"name":"ElementaryTypeName","src":"2606:6:4"}],"id":9190,"name":"VariableDeclaration","src":"2606:11:4"},{"attributes":{"constant":false,"name":"pubkey","scope":9203,"stateVariable":false,"storageLocation":"default","type":"struct PublicResolver.PublicKey","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"PublicKey","referencedDeclaration":9184,"type":"struct PublicResolver.PublicKey"},"id":9191,"name":"UserDefinedTypeName","src":"2627:9:4"}],"id":9192,"name":"VariableDeclaration","src":"2627:16:4"},{"attributes":{"constant":false,"name":"text","scope":9203,"stateVariable":false,"storageLocation":"default","type":"mapping(string => string)","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"mapping(string => string)"},"children":[{"attributes":{"name":"string","type":"string"},"id":9193,"name":"ElementaryTypeName","src":"2661:6:4"},{"attributes":{"name":"string","type":"string"},"id":9194,"name":"ElementaryTypeName","src":"2669:6:4"}],"id":9195,"name":"Mapping","src":"2653:23:4"}],"id":9196,"name":"VariableDeclaration","src":"2653:28:4"},{"attributes":{"constant":false,"name":"abis","scope":9203,"stateVariable":false,"storageLocation":"default","type":"mapping(uint256 => bytes)","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"mapping(uint256 => bytes)"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":9197,"name":"ElementaryTypeName","src":"2699:7:4"},{"attributes":{"name":"bytes","type":"bytes"},"id":9198,"name":"ElementaryTypeName","src":"2708:5:4"}],"id":9199,"name":"Mapping","src":"2691:23:4"}],"id":9200,"name":"VariableDeclaration","src":"2691:28:4"},{"attributes":{"constant":false,"name":"multihash","scope":9203,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":9201,"name":"ElementaryTypeName","src":"2729:5:4"}],"id":9202,"name":"VariableDeclaration","src":"2729:15:4"}],"id":9203,"name":"StructDefinition","src":"2535:216:4"},{"attributes":{"constant":false,"name":"ens","scope":9614,"stateVariable":true,"storageLocation":"default","type":"contract ENS","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"ENS","referencedDeclaration":9106,"type":"contract ENS"},"id":9204,"name":"UserDefinedTypeName","src":"2757:3:4"}],"id":9205,"name":"VariableDeclaration","src":"2757:7:4"},{"attributes":{"constant":false,"name":"records","scope":9614,"stateVariable":true,"storageLocation":"default","type":"mapping(bytes32 => struct PublicResolver.Record)","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"mapping(bytes32 => struct PublicResolver.Record)"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9206,"name":"ElementaryTypeName","src":"2780:7:4"},{"attributes":{"contractScope":null,"name":"Record","referencedDeclaration":9203,"type":"struct PublicResolver.Record"},"id":9207,"name":"UserDefinedTypeName","src":"2791:6:4"}],"id":9208,"name":"Mapping","src":"2771:27:4"}],"id":9209,"name":"VariableDeclaration","src":"2771:35:4"},{"attributes":{"documentation":null,"name":"only_owner","visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":9225,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9210,"name":"ElementaryTypeName","src":"2833:7:4"}],"id":9211,"name":"VariableDeclaration","src":"2833:12:4"}],"id":9212,"name":"ParameterList","src":"2832:14:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"overloadedDeclarations":[12061,12062],"referencedDeclaration":12061,"type":"function (bool) pure","value":"require"},"id":9213,"name":"Identifier","src":"2857:7:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"owner","referencedDeclaration":9091,"type":"function (bytes32) view external returns (address)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9205,"type":"contract ENS","value":"ens"},"id":9214,"name":"Identifier","src":"2865:3:4"}],"id":9215,"name":"MemberAccess","src":"2865:9:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9211,"type":"bytes32","value":"node"},"id":9216,"name":"Identifier","src":"2875:4:4"}],"id":9217,"name":"FunctionCall","src":"2865:15:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":12058,"type":"msg","value":"msg"},"id":9218,"name":"Identifier","src":"2884:3:4"}],"id":9219,"name":"MemberAccess","src":"2884:10:4"}],"id":9220,"name":"BinaryOperation","src":"2865:29:4"}],"id":9221,"name":"FunctionCall","src":"2857:38:4"}],"id":9222,"name":"ExpressionStatement","src":"2857:38:4"},{"id":9223,"name":"PlaceholderStatement","src":"2905:1:4"}],"id":9224,"name":"Block","src":"2847:66:4"}],"id":9225,"name":"ModifierDefinition","src":"2813:100:4"},{"attributes":{"constant":false,"documentation":"Constructor.\n@param ensAddr The ENS registrar contract.","implemented":true,"isConstructor":true,"modifiers":[null],"name":"","payable":false,"scope":9614,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"ensAddr","scope":9235,"stateVariable":false,"storageLocation":"default","type":"contract ENS","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"ENS","referencedDeclaration":9106,"type":"contract ENS"},"id":9226,"name":"UserDefinedTypeName","src":"3017:3:4"}],"id":9227,"name":"VariableDeclaration","src":"3017:11:4"}],"id":9228,"name":"ParameterList","src":"3016:13:4"},{"attributes":{"parameters":[null]},"children":[],"id":9229,"name":"ParameterList","src":"3037:0:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"contract ENS"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9205,"type":"contract ENS","value":"ens"},"id":9230,"name":"Identifier","src":"3047:3:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9227,"type":"contract ENS","value":"ensAddr"},"id":9231,"name":"Identifier","src":"3053:7:4"}],"id":9232,"name":"Assignment","src":"3047:13:4"}],"id":9233,"name":"ExpressionStatement","src":"3047:13:4"}],"id":9234,"name":"Block","src":"3037:30:4"}],"id":9235,"name":"FunctionDefinition","src":"3005:62:4"},{"attributes":{"constant":false,"documentation":"Sets the address associated with an ENS node.\nMay only be called by the owner of that node in the ENS registry.\n@param node The node to update.\n@param addr The address to set.","implemented":true,"isConstructor":false,"name":"setAddr","payable":false,"scope":9614,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":9258,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9236,"name":"ElementaryTypeName","src":"3310:7:4"}],"id":9237,"name":"VariableDeclaration","src":"3310:12:4"},{"attributes":{"constant":false,"name":"addr","scope":9258,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":9238,"name":"ElementaryTypeName","src":"3324:7:4"}],"id":9239,"name":"VariableDeclaration","src":"3324:12:4"}],"id":9240,"name":"ParameterList","src":"3309:28:4"},{"attributes":{"parameters":[null]},"children":[],"id":9244,"name":"ParameterList","src":"3362:0:4"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9225,"type":"modifier (bytes32)","value":"only_owner"},"id":9241,"name":"Identifier","src":"3345:10:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9237,"type":"bytes32","value":"node"},"id":9242,"name":"Identifier","src":"3356:4:4"}],"id":9243,"name":"ModifierInvocation","src":"3345:16:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"address"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"addr","referencedDeclaration":9186,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9209,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":9245,"name":"Identifier","src":"3372:7:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9237,"type":"bytes32","value":"node"},"id":9246,"name":"Identifier","src":"3380:4:4"}],"id":9247,"name":"IndexAccess","src":"3372:13:4"}],"id":9248,"name":"MemberAccess","src":"3372:18:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9239,"type":"address","value":"addr"},"id":9249,"name":"Identifier","src":"3393:4:4"}],"id":9250,"name":"Assignment","src":"3372:25:4"}],"id":9251,"name":"ExpressionStatement","src":"3372:25:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":9139,"type":"function (bytes32,address)","value":"AddrChanged"},"id":9252,"name":"Identifier","src":"3412:11:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9237,"type":"bytes32","value":"node"},"id":9253,"name":"Identifier","src":"3424:4:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9239,"type":"address","value":"addr"},"id":9254,"name":"Identifier","src":"3430:4:4"}],"id":9255,"name":"FunctionCall","src":"3412:23:4"}],"id":9256,"name":"EmitStatement","src":"3407:28:4"}],"id":9257,"name":"Block","src":"3362:80:4"}],"id":9258,"name":"FunctionDefinition","src":"3293:149:4"},{"attributes":{"constant":false,"documentation":"Sets the content hash associated with an ENS node.\nMay only be called by the owner of that node in the ENS registry.\nNote that this resource type is not standardized, and will likely change\nin future to a resource type based on multihash.\n@param node The node to update.\n@param hash The content hash to set","implemented":true,"isConstructor":false,"name":"setContent","payable":false,"scope":9614,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":9281,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9259,"name":"ElementaryTypeName","src":"3833:7:4"}],"id":9260,"name":"VariableDeclaration","src":"3833:12:4"},{"attributes":{"constant":false,"name":"hash","scope":9281,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9261,"name":"ElementaryTypeName","src":"3847:7:4"}],"id":9262,"name":"VariableDeclaration","src":"3847:12:4"}],"id":9263,"name":"ParameterList","src":"3832:28:4"},{"attributes":{"parameters":[null]},"children":[],"id":9267,"name":"ParameterList","src":"3885:0:4"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9225,"type":"modifier (bytes32)","value":"only_owner"},"id":9264,"name":"Identifier","src":"3868:10:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9260,"type":"bytes32","value":"node"},"id":9265,"name":"Identifier","src":"3879:4:4"}],"id":9266,"name":"ModifierInvocation","src":"3868:16:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"content","referencedDeclaration":9188,"type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9209,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":9268,"name":"Identifier","src":"3895:7:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9260,"type":"bytes32","value":"node"},"id":9269,"name":"Identifier","src":"3903:4:4"}],"id":9270,"name":"IndexAccess","src":"3895:13:4"}],"id":9271,"name":"MemberAccess","src":"3895:21:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9262,"type":"bytes32","value":"hash"},"id":9272,"name":"Identifier","src":"3919:4:4"}],"id":9273,"name":"Assignment","src":"3895:28:4"}],"id":9274,"name":"ExpressionStatement","src":"3895:28:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[null],"referencedDeclaration":9145,"type":"function (bytes32,bytes32)","value":"ContentChanged"},"id":9275,"name":"Identifier","src":"3938:14:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9260,"type":"bytes32","value":"node"},"id":9276,"name":"Identifier","src":"3953:4:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9262,"type":"bytes32","value":"hash"},"id":9277,"name":"Identifier","src":"3959:4:4"}],"id":9278,"name":"FunctionCall","src":"3938:26:4"}],"id":9279,"name":"EmitStatement","src":"3933:31:4"}],"id":9280,"name":"Block","src":"3885:86:4"}],"id":9281,"name":"FunctionDefinition","src":"3813:158:4"},{"attributes":{"constant":false,"documentation":"Sets the multihash associated with an ENS node.\nMay only be called by the owner of that node in the ENS registry.\n@param node The node to update.\n@param hash The multihash to set","implemented":true,"isConstructor":false,"name":"setMultihash","payable":false,"scope":9614,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":9304,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9282,"name":"ElementaryTypeName","src":"4222:7:4"}],"id":9283,"name":"VariableDeclaration","src":"4222:12:4"},{"attributes":{"constant":false,"name":"hash","scope":9304,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":9284,"name":"ElementaryTypeName","src":"4236:5:4"}],"id":9285,"name":"VariableDeclaration","src":"4236:10:4"}],"id":9286,"name":"ParameterList","src":"4221:26:4"},{"attributes":{"parameters":[null]},"children":[],"id":9290,"name":"ParameterList","src":"4272:0:4"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9225,"type":"modifier (bytes32)","value":"only_owner"},"id":9287,"name":"Identifier","src":"4255:10:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9283,"type":"bytes32","value":"node"},"id":9288,"name":"Identifier","src":"4266:4:4"}],"id":9289,"name":"ModifierInvocation","src":"4255:16:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"multihash","referencedDeclaration":9202,"type":"bytes storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9209,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":9291,"name":"Identifier","src":"4282:7:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9283,"type":"bytes32","value":"node"},"id":9292,"name":"Identifier","src":"4290:4:4"}],"id":9293,"name":"IndexAccess","src":"4282:13:4"}],"id":9294,"name":"MemberAccess","src":"4282:23:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9285,"type":"bytes memory","value":"hash"},"id":9295,"name":"Identifier","src":"4308:4:4"}],"id":9296,"name":"Assignment","src":"4282:30:4"}],"id":9297,"name":"ExpressionStatement","src":"4282:30:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"overloadedDeclarations":[null],"referencedDeclaration":9179,"type":"function (bytes32,bytes memory)","value":"MultihashChanged"},"id":9298,"name":"Identifier","src":"4327:16:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9283,"type":"bytes32","value":"node"},"id":9299,"name":"Identifier","src":"4344:4:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9285,"type":"bytes memory","value":"hash"},"id":9300,"name":"Identifier","src":"4350:4:4"}],"id":9301,"name":"FunctionCall","src":"4327:28:4"}],"id":9302,"name":"EmitStatement","src":"4322:33:4"}],"id":9303,"name":"Block","src":"4272:90:4"}],"id":9304,"name":"FunctionDefinition","src":"4200:162:4"},{"attributes":{"constant":false,"documentation":"Sets the name associated with an ENS node, for reverse records.\nMay only be called by the owner of that node in the ENS registry.\n@param node The node to update.\n@param name The name to set.","implemented":true,"isConstructor":false,"name":"setName","payable":false,"scope":9614,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":9327,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9305,"name":"ElementaryTypeName","src":"4624:7:4"}],"id":9306,"name":"VariableDeclaration","src":"4624:12:4"},{"attributes":{"constant":false,"name":"name","scope":9327,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":9307,"name":"ElementaryTypeName","src":"4638:6:4"}],"id":9308,"name":"VariableDeclaration","src":"4638:11:4"}],"id":9309,"name":"ParameterList","src":"4623:27:4"},{"attributes":{"parameters":[null]},"children":[],"id":9313,"name":"ParameterList","src":"4675:0:4"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9225,"type":"modifier (bytes32)","value":"only_owner"},"id":9310,"name":"Identifier","src":"4658:10:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9306,"type":"bytes32","value":"node"},"id":9311,"name":"Identifier","src":"4669:4:4"}],"id":9312,"name":"ModifierInvocation","src":"4658:16:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"name","referencedDeclaration":9190,"type":"string storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9209,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":9314,"name":"Identifier","src":"4685:7:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9306,"type":"bytes32","value":"node"},"id":9315,"name":"Identifier","src":"4693:4:4"}],"id":9316,"name":"IndexAccess","src":"4685:13:4"}],"id":9317,"name":"MemberAccess","src":"4685:18:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9308,"type":"string memory","value":"name"},"id":9318,"name":"Identifier","src":"4706:4:4"}],"id":9319,"name":"Assignment","src":"4685:25:4"}],"id":9320,"name":"ExpressionStatement","src":"4685:25:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"overloadedDeclarations":[null],"referencedDeclaration":9151,"type":"function (bytes32,string memory)","value":"NameChanged"},"id":9321,"name":"Identifier","src":"4725:11:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9306,"type":"bytes32","value":"node"},"id":9322,"name":"Identifier","src":"4737:4:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9308,"type":"string memory","value":"name"},"id":9323,"name":"Identifier","src":"4743:4:4"}],"id":9324,"name":"FunctionCall","src":"4725:23:4"}],"id":9325,"name":"EmitStatement","src":"4720:28:4"}],"id":9326,"name":"Block","src":"4675:80:4"}],"id":9327,"name":"FunctionDefinition","src":"4607:148:4"},{"attributes":{"constant":false,"documentation":"Sets the ABI associated with an ENS node.\nNodes may have one ABI of each content type. To remove an ABI, set it to\nthe empty string.\n@param node The node to update.\n@param contentType The content type of the ABI\n@param data The ABI data.","implemented":true,"isConstructor":false,"name":"setABI","payable":false,"scope":9614,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":9366,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9328,"name":"ElementaryTypeName","src":"5073:7:4"}],"id":9329,"name":"VariableDeclaration","src":"5073:12:4"},{"attributes":{"constant":false,"name":"contentType","scope":9366,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":9330,"name":"ElementaryTypeName","src":"5087:7:4"}],"id":9331,"name":"VariableDeclaration","src":"5087:19:4"},{"attributes":{"constant":false,"name":"data","scope":9366,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":9332,"name":"ElementaryTypeName","src":"5108:5:4"}],"id":9333,"name":"VariableDeclaration","src":"5108:10:4"}],"id":9334,"name":"ParameterList","src":"5072:47:4"},{"attributes":{"parameters":[null]},"children":[],"id":9338,"name":"ParameterList","src":"5144:0:4"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9225,"type":"modifier (bytes32)","value":"only_owner"},"id":9335,"name":"Identifier","src":"5127:10:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9329,"type":"bytes32","value":"node"},"id":9336,"name":"Identifier","src":"5138:4:4"}],"id":9337,"name":"ModifierInvocation","src":"5127:16:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"overloadedDeclarations":[12061,12062],"referencedDeclaration":12061,"type":"function (bool) pure","value":"require"},"id":9339,"name":"Identifier","src":"5199:7:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9331,"type":"uint256","value":"contentType"},"id":9340,"name":"Identifier","src":"5209:11:4"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":9341,"name":"Literal","src":"5223:1:4"}],"id":9342,"name":"BinaryOperation","src":"5209:15:4"}],"id":9343,"name":"TupleExpression","src":"5208:17:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9331,"type":"uint256","value":"contentType"},"id":9344,"name":"Identifier","src":"5228:11:4"}],"id":9345,"name":"BinaryOperation","src":"5208:31:4"}],"id":9346,"name":"TupleExpression","src":"5207:33:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":9347,"name":"Literal","src":"5244:1:4"}],"id":9348,"name":"BinaryOperation","src":"5207:38:4"}],"id":9349,"name":"FunctionCall","src":"5199:47:4"}],"id":9350,"name":"ExpressionStatement","src":"5199:47:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"abis","referencedDeclaration":9200,"type":"mapping(uint256 => bytes storage ref)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9209,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":9351,"name":"Identifier","src":"5265:7:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9329,"type":"bytes32","value":"node"},"id":9352,"name":"Identifier","src":"5273:4:4"}],"id":9353,"name":"IndexAccess","src":"5265:13:4"}],"id":9354,"name":"MemberAccess","src":"5265:18:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9331,"type":"uint256","value":"contentType"},"id":9355,"name":"Identifier","src":"5284:11:4"}],"id":9356,"name":"IndexAccess","src":"5265:31:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9333,"type":"bytes memory","value":"data"},"id":9357,"name":"Identifier","src":"5299:4:4"}],"id":9358,"name":"Assignment","src":"5265:38:4"}],"id":9359,"name":"ExpressionStatement","src":"5265:38:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":9157,"type":"function (bytes32,uint256)","value":"ABIChanged"},"id":9360,"name":"Identifier","src":"5318:10:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9329,"type":"bytes32","value":"node"},"id":9361,"name":"Identifier","src":"5329:4:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9331,"type":"uint256","value":"contentType"},"id":9362,"name":"Identifier","src":"5335:11:4"}],"id":9363,"name":"FunctionCall","src":"5318:29:4"}],"id":9364,"name":"EmitStatement","src":"5313:34:4"}],"id":9365,"name":"Block","src":"5144:210:4"}],"id":9366,"name":"FunctionDefinition","src":"5057:297:4"},{"attributes":{"constant":false,"documentation":"Sets the SECP256k1 public key associated with an ENS node.\n@param node The ENS node to query\n@param x the X coordinate of the curve point for the public key.\n@param y the Y coordinate of the curve point for the public key.","implemented":true,"isConstructor":false,"name":"setPubkey","payable":false,"scope":9614,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":9395,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9367,"name":"ElementaryTypeName","src":"5650:7:4"}],"id":9368,"name":"VariableDeclaration","src":"5650:12:4"},{"attributes":{"constant":false,"name":"x","scope":9395,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9369,"name":"ElementaryTypeName","src":"5664:7:4"}],"id":9370,"name":"VariableDeclaration","src":"5664:9:4"},{"attributes":{"constant":false,"name":"y","scope":9395,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9371,"name":"ElementaryTypeName","src":"5675:7:4"}],"id":9372,"name":"VariableDeclaration","src":"5675:9:4"}],"id":9373,"name":"ParameterList","src":"5649:36:4"},{"attributes":{"parameters":[null]},"children":[],"id":9377,"name":"ParameterList","src":"5710:0:4"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9225,"type":"modifier (bytes32)","value":"only_owner"},"id":9374,"name":"Identifier","src":"5693:10:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9368,"type":"bytes32","value":"node"},"id":9375,"name":"Identifier","src":"5704:4:4"}],"id":9376,"name":"ModifierInvocation","src":"5693:16:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"struct PublicResolver.PublicKey storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"pubkey","referencedDeclaration":9192,"type":"struct PublicResolver.PublicKey storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9209,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":9378,"name":"Identifier","src":"5720:7:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9368,"type":"bytes32","value":"node"},"id":9379,"name":"Identifier","src":"5728:4:4"}],"id":9380,"name":"IndexAccess","src":"5720:13:4"}],"id":9381,"name":"MemberAccess","src":"5720:20:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":true,"lValueRequested":false,"names":[null],"type":"struct PublicResolver.PublicKey memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[null],"referencedDeclaration":9184,"type":"type(struct PublicResolver.PublicKey storage pointer)","value":"PublicKey"},"id":9382,"name":"Identifier","src":"5743:9:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9370,"type":"bytes32","value":"x"},"id":9383,"name":"Identifier","src":"5753:1:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9372,"type":"bytes32","value":"y"},"id":9384,"name":"Identifier","src":"5756:1:4"}],"id":9385,"name":"FunctionCall","src":"5743:15:4"}],"id":9386,"name":"Assignment","src":"5720:38:4"}],"id":9387,"name":"ExpressionStatement","src":"5720:38:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[null],"referencedDeclaration":9165,"type":"function (bytes32,bytes32,bytes32)","value":"PubkeyChanged"},"id":9388,"name":"Identifier","src":"5773:13:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9368,"type":"bytes32","value":"node"},"id":9389,"name":"Identifier","src":"5787:4:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9370,"type":"bytes32","value":"x"},"id":9390,"name":"Identifier","src":"5793:1:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9372,"type":"bytes32","value":"y"},"id":9391,"name":"Identifier","src":"5796:1:4"}],"id":9392,"name":"FunctionCall","src":"5773:25:4"}],"id":9393,"name":"EmitStatement","src":"5768:30:4"}],"id":9394,"name":"Block","src":"5710:95:4"}],"id":9395,"name":"FunctionDefinition","src":"5631:174:4"},{"attributes":{"constant":false,"documentation":"Sets the text data associated with an ENS node and key.\nMay only be called by the owner of that node in the ENS registry.\n@param node The node to update.\n@param key The key to set.\n@param value The text data value to set.","implemented":true,"isConstructor":false,"name":"setText","payable":false,"scope":9614,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":9423,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9396,"name":"ElementaryTypeName","src":"6101:7:4"}],"id":9397,"name":"VariableDeclaration","src":"6101:12:4"},{"attributes":{"constant":false,"name":"key","scope":9423,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":9398,"name":"ElementaryTypeName","src":"6115:6:4"}],"id":9399,"name":"VariableDeclaration","src":"6115:10:4"},{"attributes":{"constant":false,"name":"value","scope":9423,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":9400,"name":"ElementaryTypeName","src":"6127:6:4"}],"id":9401,"name":"VariableDeclaration","src":"6127:12:4"}],"id":9402,"name":"ParameterList","src":"6100:40:4"},{"attributes":{"parameters":[null]},"children":[],"id":9406,"name":"ParameterList","src":"6165:0:4"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9225,"type":"modifier (bytes32)","value":"only_owner"},"id":9403,"name":"Identifier","src":"6148:10:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9397,"type":"bytes32","value":"node"},"id":9404,"name":"Identifier","src":"6159:4:4"}],"id":9405,"name":"ModifierInvocation","src":"6148:16:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"text","referencedDeclaration":9196,"type":"mapping(string memory => string storage ref)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9209,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":9407,"name":"Identifier","src":"6175:7:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9397,"type":"bytes32","value":"node"},"id":9408,"name":"Identifier","src":"6183:4:4"}],"id":9409,"name":"IndexAccess","src":"6175:13:4"}],"id":9410,"name":"MemberAccess","src":"6175:18:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9399,"type":"string memory","value":"key"},"id":9411,"name":"Identifier","src":"6194:3:4"}],"id":9412,"name":"IndexAccess","src":"6175:23:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9401,"type":"string memory","value":"value"},"id":9413,"name":"Identifier","src":"6201:5:4"}],"id":9414,"name":"Assignment","src":"6175:31:4"}],"id":9415,"name":"ExpressionStatement","src":"6175:31:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"overloadedDeclarations":[null],"referencedDeclaration":9173,"type":"function (bytes32,string memory,string memory)","value":"TextChanged"},"id":9416,"name":"Identifier","src":"6221:11:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9397,"type":"bytes32","value":"node"},"id":9417,"name":"Identifier","src":"6233:4:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9399,"type":"string memory","value":"key"},"id":9418,"name":"Identifier","src":"6239:3:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9399,"type":"string memory","value":"key"},"id":9419,"name":"Identifier","src":"6244:3:4"}],"id":9420,"name":"FunctionCall","src":"6221:27:4"}],"id":9421,"name":"EmitStatement","src":"6216:32:4"}],"id":9422,"name":"Block","src":"6165:90:4"}],"id":9423,"name":"FunctionDefinition","src":"6084:171:4"},{"attributes":{"constant":true,"documentation":"Returns the text data associated with an ENS node and key.\n@param node The ENS node to query.\n@param key The text data key to query.\n@return The associated text data.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"text","payable":false,"scope":9614,"stateMutability":"view","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":9440,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9424,"name":"ElementaryTypeName","src":"6486:7:4"}],"id":9425,"name":"VariableDeclaration","src":"6486:12:4"},{"attributes":{"constant":false,"name":"key","scope":9440,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":9426,"name":"ElementaryTypeName","src":"6500:6:4"}],"id":9427,"name":"VariableDeclaration","src":"6500:10:4"}],"id":9428,"name":"ParameterList","src":"6485:26:4"},{"children":[{"attributes":{"constant":false,"name":"","scope":9440,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":9429,"name":"ElementaryTypeName","src":"6533:6:4"}],"id":9430,"name":"VariableDeclaration","src":"6533:6:4"}],"id":9431,"name":"ParameterList","src":"6532:8:4"},{"children":[{"attributes":{"functionReturnParameters":9431},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"text","referencedDeclaration":9196,"type":"mapping(string memory => string storage ref)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9209,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":9432,"name":"Identifier","src":"6558:7:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9425,"type":"bytes32","value":"node"},"id":9433,"name":"Identifier","src":"6566:4:4"}],"id":9434,"name":"IndexAccess","src":"6558:13:4"}],"id":9435,"name":"MemberAccess","src":"6558:18:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9427,"type":"string memory","value":"key"},"id":9436,"name":"Identifier","src":"6577:3:4"}],"id":9437,"name":"IndexAccess","src":"6558:23:4"}],"id":9438,"name":"Return","src":"6551:30:4"}],"id":9439,"name":"Block","src":"6541:47:4"}],"id":9440,"name":"FunctionDefinition","src":"6472:116:4"},{"attributes":{"constant":true,"documentation":"Returns the SECP256k1 public key associated with an ENS node.\nDefined in EIP 619.\n@param node The ENS node to query\n@return x, y the X and Y coordinates of the curve point for the public key.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"pubkey","payable":false,"scope":9614,"stateMutability":"view","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":9462,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9441,"name":"ElementaryTypeName","src":"6846:7:4"}],"id":9442,"name":"VariableDeclaration","src":"6846:12:4"}],"id":9443,"name":"ParameterList","src":"6845:14:4"},{"children":[{"attributes":{"constant":false,"name":"x","scope":9462,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9444,"name":"ElementaryTypeName","src":"6881:7:4"}],"id":9445,"name":"VariableDeclaration","src":"6881:9:4"},{"attributes":{"constant":false,"name":"y","scope":9462,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9446,"name":"ElementaryTypeName","src":"6892:7:4"}],"id":9447,"name":"VariableDeclaration","src":"6892:9:4"}],"id":9448,"name":"ParameterList","src":"6880:22:4"},{"children":[{"attributes":{"functionReturnParameters":9448},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"tuple(bytes32,bytes32)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"x","referencedDeclaration":9181,"type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"pubkey","referencedDeclaration":9192,"type":"struct PublicResolver.PublicKey storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9209,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":9449,"name":"Identifier","src":"6921:7:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9442,"type":"bytes32","value":"node"},"id":9450,"name":"Identifier","src":"6929:4:4"}],"id":9451,"name":"IndexAccess","src":"6921:13:4"}],"id":9452,"name":"MemberAccess","src":"6921:20:4"}],"id":9453,"name":"MemberAccess","src":"6921:22:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"y","referencedDeclaration":9183,"type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"pubkey","referencedDeclaration":9192,"type":"struct PublicResolver.PublicKey storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9209,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":9454,"name":"Identifier","src":"6945:7:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9442,"type":"bytes32","value":"node"},"id":9455,"name":"Identifier","src":"6953:4:4"}],"id":9456,"name":"IndexAccess","src":"6945:13:4"}],"id":9457,"name":"MemberAccess","src":"6945:20:4"}],"id":9458,"name":"MemberAccess","src":"6945:22:4"}],"id":9459,"name":"TupleExpression","src":"6920:48:4"}],"id":9460,"name":"Return","src":"6913:55:4"}],"id":9461,"name":"Block","src":"6903:72:4"}],"id":9462,"name":"FunctionDefinition","src":"6830:145:4"},{"attributes":{"constant":true,"documentation":"Returns the ABI associated with an ENS node.\nDefined in EIP205.\n@param node The ENS node to query\n@param contentTypes A bitwise OR of the ABI formats accepted by the caller.\n@return contentType The content type of the return value\n@return data The ABI data","implemented":true,"isConstructor":false,"modifiers":[null],"name":"ABI","payable":false,"scope":9614,"stateMutability":"view","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":9521,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9463,"name":"ElementaryTypeName","src":"7309:7:4"}],"id":9464,"name":"VariableDeclaration","src":"7309:12:4"},{"attributes":{"constant":false,"name":"contentTypes","scope":9521,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":9465,"name":"ElementaryTypeName","src":"7323:7:4"}],"id":9466,"name":"VariableDeclaration","src":"7323:20:4"}],"id":9467,"name":"ParameterList","src":"7308:36:4"},{"children":[{"attributes":{"constant":false,"name":"contentType","scope":9521,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":9468,"name":"ElementaryTypeName","src":"7366:7:4"}],"id":9469,"name":"VariableDeclaration","src":"7366:19:4"},{"attributes":{"constant":false,"name":"data","scope":9521,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":9470,"name":"ElementaryTypeName","src":"7387:5:4"}],"id":9471,"name":"VariableDeclaration","src":"7387:10:4"}],"id":9472,"name":"ParameterList","src":"7365:33:4"},{"children":[{"attributes":{"assignments":[9474]},"children":[{"attributes":{"constant":false,"name":"record","scope":9521,"stateVariable":false,"storageLocation":"storage","type":"struct PublicResolver.Record","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"Record","referencedDeclaration":9203,"type":"struct PublicResolver.Record"},"id":9473,"name":"UserDefinedTypeName","src":"7409:6:4"}],"id":9474,"name":"VariableDeclaration","src":"7409:21:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9209,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":9475,"name":"Identifier","src":"7433:7:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9464,"type":"bytes32","value":"node"},"id":9476,"name":"Identifier","src":"7441:4:4"}],"id":9477,"name":"IndexAccess","src":"7433:13:4"}],"id":9478,"name":"VariableDeclarationStatement","src":"7409:37:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9469,"type":"uint256","value":"contentType"},"id":9479,"name":"Identifier","src":"7461:11:4"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":9480,"name":"Literal","src":"7475:1:4"}],"id":9481,"name":"Assignment","src":"7461:15:4"}],"id":9482,"name":"ExpressionStatement","src":"7461:15:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9469,"type":"uint256","value":"contentType"},"id":9483,"name":"Identifier","src":"7478:11:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9466,"type":"uint256","value":"contentTypes"},"id":9484,"name":"Identifier","src":"7493:12:4"}],"id":9485,"name":"BinaryOperation","src":"7478:27:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<<=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9469,"type":"uint256","value":"contentType"},"id":9486,"name":"Identifier","src":"7507:11:4"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":9487,"name":"Literal","src":"7523:1:4"}],"id":9488,"name":"Assignment","src":"7507:17:4"}],"id":9489,"name":"ExpressionStatement","src":"7507:17:4"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&&","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9469,"type":"uint256","value":"contentType"},"id":9490,"name":"Identifier","src":"7545:11:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9466,"type":"uint256","value":"contentTypes"},"id":9491,"name":"Identifier","src":"7559:12:4"}],"id":9492,"name":"BinaryOperation","src":"7545:26:4"}],"id":9493,"name":"TupleExpression","src":"7544:28:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":9494,"name":"Literal","src":"7576:1:4"}],"id":9495,"name":"BinaryOperation","src":"7544:33:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"abis","referencedDeclaration":9200,"type":"mapping(uint256 => bytes storage ref)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9474,"type":"struct PublicResolver.Record storage pointer","value":"record"},"id":9496,"name":"Identifier","src":"7581:6:4"}],"id":9497,"name":"MemberAccess","src":"7581:11:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9469,"type":"uint256","value":"contentType"},"id":9498,"name":"Identifier","src":"7593:11:4"}],"id":9499,"name":"IndexAccess","src":"7581:24:4"}],"id":9500,"name":"MemberAccess","src":"7581:31:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":9501,"name":"Literal","src":"7615:1:4"}],"id":9502,"name":"BinaryOperation","src":"7581:35:4"}],"id":9503,"name":"BinaryOperation","src":"7544:72:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9471,"type":"bytes memory","value":"data"},"id":9504,"name":"Identifier","src":"7636:4:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"abis","referencedDeclaration":9200,"type":"mapping(uint256 => bytes storage ref)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9474,"type":"struct PublicResolver.Record storage pointer","value":"record"},"id":9505,"name":"Identifier","src":"7643:6:4"}],"id":9506,"name":"MemberAccess","src":"7643:11:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9469,"type":"uint256","value":"contentType"},"id":9507,"name":"Identifier","src":"7655:11:4"}],"id":9508,"name":"IndexAccess","src":"7643:24:4"}],"id":9509,"name":"Assignment","src":"7636:31:4"}],"id":9510,"name":"ExpressionStatement","src":"7636:31:4"},{"attributes":{"expression":null,"functionReturnParameters":9472},"id":9511,"name":"Return","src":"7685:7:4"}],"id":9512,"name":"Block","src":"7618:88:4"}],"id":9513,"name":"IfStatement","src":"7540:166:4"}],"id":9514,"name":"Block","src":"7526:190:4"}],"id":9515,"name":"ForStatement","src":"7456:260:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9469,"type":"uint256","value":"contentType"},"id":9516,"name":"Identifier","src":"7725:11:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":9517,"name":"Literal","src":"7739:1:4"}],"id":9518,"name":"Assignment","src":"7725:15:4"}],"id":9519,"name":"ExpressionStatement","src":"7725:15:4"}],"id":9520,"name":"Block","src":"7399:348:4"}],"id":9521,"name":"FunctionDefinition","src":"7296:451:4"},{"attributes":{"constant":true,"documentation":"Returns the name associated with an ENS node, for reverse records.\nDefined in EIP181.\n@param node The ENS node to query.\n@return The associated name.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"name","payable":false,"scope":9614,"stateMutability":"view","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":9534,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9522,"name":"ElementaryTypeName","src":"7961:7:4"}],"id":9523,"name":"VariableDeclaration","src":"7961:12:4"}],"id":9524,"name":"ParameterList","src":"7960:14:4"},{"children":[{"attributes":{"constant":false,"name":"","scope":9534,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":9525,"name":"ElementaryTypeName","src":"7996:6:4"}],"id":9526,"name":"VariableDeclaration","src":"7996:6:4"}],"id":9527,"name":"ParameterList","src":"7995:8:4"},{"children":[{"attributes":{"functionReturnParameters":9527},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"name","referencedDeclaration":9190,"type":"string storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9209,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":9528,"name":"Identifier","src":"8021:7:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9523,"type":"bytes32","value":"node"},"id":9529,"name":"Identifier","src":"8029:4:4"}],"id":9530,"name":"IndexAccess","src":"8021:13:4"}],"id":9531,"name":"MemberAccess","src":"8021:18:4"}],"id":9532,"name":"Return","src":"8014:25:4"}],"id":9533,"name":"Block","src":"8004:42:4"}],"id":9534,"name":"FunctionDefinition","src":"7947:99:4"},{"attributes":{"constant":true,"documentation":"Returns the content hash associated with an ENS node.\nNote that this resource type is not standardized, and will likely change\nin future to a resource type based on multihash.\n@param node The ENS node to query.\n@return The associated content hash.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"content","payable":false,"scope":9614,"stateMutability":"view","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":9547,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9535,"name":"ElementaryTypeName","src":"8368:7:4"}],"id":9536,"name":"VariableDeclaration","src":"8368:12:4"}],"id":9537,"name":"ParameterList","src":"8367:14:4"},{"children":[{"attributes":{"constant":false,"name":"","scope":9547,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9538,"name":"ElementaryTypeName","src":"8403:7:4"}],"id":9539,"name":"VariableDeclaration","src":"8403:7:4"}],"id":9540,"name":"ParameterList","src":"8402:9:4"},{"children":[{"attributes":{"functionReturnParameters":9540},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"content","referencedDeclaration":9188,"type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9209,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":9541,"name":"Identifier","src":"8429:7:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9536,"type":"bytes32","value":"node"},"id":9542,"name":"Identifier","src":"8437:4:4"}],"id":9543,"name":"IndexAccess","src":"8429:13:4"}],"id":9544,"name":"MemberAccess","src":"8429:21:4"}],"id":9545,"name":"Return","src":"8422:28:4"}],"id":9546,"name":"Block","src":"8412:45:4"}],"id":9547,"name":"FunctionDefinition","src":"8351:106:4"},{"attributes":{"constant":true,"documentation":"Returns the multihash associated with an ENS node.\n@param node The ENS node to query.\n@return The associated multihash.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"multihash","payable":false,"scope":9614,"stateMutability":"view","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":9560,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9548,"name":"ElementaryTypeName","src":"8639:7:4"}],"id":9549,"name":"VariableDeclaration","src":"8639:12:4"}],"id":9550,"name":"ParameterList","src":"8638:14:4"},{"children":[{"attributes":{"constant":false,"name":"","scope":9560,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":9551,"name":"ElementaryTypeName","src":"8674:5:4"}],"id":9552,"name":"VariableDeclaration","src":"8674:5:4"}],"id":9553,"name":"ParameterList","src":"8673:7:4"},{"children":[{"attributes":{"functionReturnParameters":9553},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"multihash","referencedDeclaration":9202,"type":"bytes storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9209,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":9554,"name":"Identifier","src":"8698:7:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9549,"type":"bytes32","value":"node"},"id":9555,"name":"Identifier","src":"8706:4:4"}],"id":9556,"name":"IndexAccess","src":"8698:13:4"}],"id":9557,"name":"MemberAccess","src":"8698:23:4"}],"id":9558,"name":"Return","src":"8691:30:4"}],"id":9559,"name":"Block","src":"8681:47:4"}],"id":9560,"name":"FunctionDefinition","src":"8620:108:4"},{"attributes":{"constant":true,"documentation":"Returns the address associated with an ENS node.\n@param node The ENS node to query.\n@return The associated address.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"addr","payable":false,"scope":9614,"stateMutability":"view","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":9573,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9561,"name":"ElementaryTypeName","src":"8901:7:4"}],"id":9562,"name":"VariableDeclaration","src":"8901:12:4"}],"id":9563,"name":"ParameterList","src":"8900:14:4"},{"children":[{"attributes":{"constant":false,"name":"","scope":9573,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":9564,"name":"ElementaryTypeName","src":"8936:7:4"}],"id":9565,"name":"VariableDeclaration","src":"8936:7:4"}],"id":9566,"name":"ParameterList","src":"8935:9:4"},{"children":[{"attributes":{"functionReturnParameters":9566},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"addr","referencedDeclaration":9186,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9209,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":9567,"name":"Identifier","src":"8962:7:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9562,"type":"bytes32","value":"node"},"id":9568,"name":"Identifier","src":"8970:4:4"}],"id":9569,"name":"IndexAccess","src":"8962:13:4"}],"id":9570,"name":"MemberAccess","src":"8962:18:4"}],"id":9571,"name":"Return","src":"8955:25:4"}],"id":9572,"name":"Block","src":"8945:42:4"}],"id":9573,"name":"FunctionDefinition","src":"8887:100:4"},{"attributes":{"constant":true,"documentation":"Returns true if the resolver implements the interface specified by the provided hash.\n@param interfaceID The ID of the interface to check for.\n@return True if the contract implements the requested interface.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"supportsInterface","payable":false,"scope":9614,"stateMutability":"pure","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"interfaceID","scope":9613,"stateVariable":false,"storageLocation":"default","type":"bytes4","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes4","type":"bytes4"},"id":9574,"name":"ElementaryTypeName","src":"9265:6:4"}],"id":9575,"name":"VariableDeclaration","src":"9265:18:4"}],"id":9576,"name":"ParameterList","src":"9264:20:4"},{"children":[{"attributes":{"constant":false,"name":"","scope":9613,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":9577,"name":"ElementaryTypeName","src":"9306:4:4"}],"id":9578,"name":"VariableDeclaration","src":"9306:4:4"}],"id":9579,"name":"ParameterList","src":"9305:6:4"},{"children":[{"attributes":{"functionReturnParameters":9579},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"||","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"||","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"||","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"||","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"||","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"||","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"||","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9575,"type":"bytes4","value":"interfaceID"},"id":9580,"name":"Identifier","src":"9329:11:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9115,"type":"bytes4","value":"ADDR_INTERFACE_ID"},"id":9581,"name":"Identifier","src":"9344:17:4"}],"id":9582,"name":"BinaryOperation","src":"9329:32:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9575,"type":"bytes4","value":"interfaceID"},"id":9583,"name":"Identifier","src":"9373:11:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9118,"type":"bytes4","value":"CONTENT_INTERFACE_ID"},"id":9584,"name":"Identifier","src":"9388:20:4"}],"id":9585,"name":"BinaryOperation","src":"9373:35:4"}],"id":9586,"name":"BinaryOperation","src":"9329:79:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9575,"type":"bytes4","value":"interfaceID"},"id":9587,"name":"Identifier","src":"9420:11:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9121,"type":"bytes4","value":"NAME_INTERFACE_ID"},"id":9588,"name":"Identifier","src":"9435:17:4"}],"id":9589,"name":"BinaryOperation","src":"9420:32:4"}],"id":9590,"name":"BinaryOperation","src":"9329:123:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9575,"type":"bytes4","value":"interfaceID"},"id":9591,"name":"Identifier","src":"9464:11:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9124,"type":"bytes4","value":"ABI_INTERFACE_ID"},"id":9592,"name":"Identifier","src":"9479:16:4"}],"id":9593,"name":"BinaryOperation","src":"9464:31:4"}],"id":9594,"name":"BinaryOperation","src":"9329:166:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9575,"type":"bytes4","value":"interfaceID"},"id":9595,"name":"Identifier","src":"9507:11:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9127,"type":"bytes4","value":"PUBKEY_INTERFACE_ID"},"id":9596,"name":"Identifier","src":"9522:19:4"}],"id":9597,"name":"BinaryOperation","src":"9507:34:4"}],"id":9598,"name":"BinaryOperation","src":"9329:212:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9575,"type":"bytes4","value":"interfaceID"},"id":9599,"name":"Identifier","src":"9553:11:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9130,"type":"bytes4","value":"TEXT_INTERFACE_ID"},"id":9600,"name":"Identifier","src":"9568:17:4"}],"id":9601,"name":"BinaryOperation","src":"9553:32:4"}],"id":9602,"name":"BinaryOperation","src":"9329:256:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9575,"type":"bytes4","value":"interfaceID"},"id":9603,"name":"Identifier","src":"9597:11:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9133,"type":"bytes4","value":"MULTIHASH_INTERFACE_ID"},"id":9604,"name":"Identifier","src":"9612:22:4"}],"id":9605,"name":"BinaryOperation","src":"9597:37:4"}],"id":9606,"name":"BinaryOperation","src":"9329:305:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9575,"type":"bytes4","value":"interfaceID"},"id":9607,"name":"Identifier","src":"9646:11:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9112,"type":"bytes4","value":"INTERFACE_META_ID"},"id":9608,"name":"Identifier","src":"9661:17:4"}],"id":9609,"name":"BinaryOperation","src":"9646:32:4"}],"id":9610,"name":"BinaryOperation","src":"9329:349:4"}],"id":9611,"name":"Return","src":"9322:356:4"}],"id":9612,"name":"Block","src":"9312:373:4"}],"id":9613,"name":"FunctionDefinition","src":"9238:447:4"}],"id":9614,"name":"ContractDefinition","src":"1553:8134:4"}],"id":9615,"name":"SourceUnit","src":"1406:8282:4"}},"externals/oraclizeAPI_0.4.25.sol":{"AST":{"attributes":{"absolutePath":"externals/oraclizeAPI_0.4.25.sol","exportedSymbols":{"Buffer":[1895],"CBOR":[2195],"OraclizeAddrResolverI":[1665],"OraclizeI":[1659],"usingOraclize":[7573]}},"children":[{"attributes":{"literals":["solidity",">=","0.4",".22"]},"id":1549,"name":"PragmaDirective","src":"1375:25:5"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"contract","documentation":null,"fullyImplemented":false,"linearizedBaseContracts":[1659],"name":"OraclizeI","scope":7574},"children":[{"attributes":{"constant":false,"name":"cbAddress","scope":1659,"stateVariable":true,"storageLocation":"default","type":"address","value":null,"visibility":"public"},"children":[{"attributes":{"name":"address","type":"address"},"id":1550,"name":"ElementaryTypeName","src":"1547:7:5"}],"id":1551,"name":"VariableDeclaration","src":"1547:24:5"},{"attributes":{"body":null,"constant":false,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"query","payable":true,"scope":1659,"stateMutability":"payable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_timestamp","scope":1562,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1552,"name":"ElementaryTypeName","src":"1592:4:5"}],"id":1553,"name":"VariableDeclaration","src":"1592:15:5"},{"attributes":{"constant":false,"name":"_datasource","scope":1562,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":1554,"name":"ElementaryTypeName","src":"1609:6:5"}],"id":1555,"name":"VariableDeclaration","src":"1609:18:5"},{"attributes":{"constant":false,"name":"_arg","scope":1562,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":1556,"name":"ElementaryTypeName","src":"1629:6:5"}],"id":1557,"name":"VariableDeclaration","src":"1629:11:5"}],"id":1558,"name":"ParameterList","src":"1591:50:5"},{"children":[{"attributes":{"constant":false,"name":"_id","scope":1562,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":1559,"name":"ElementaryTypeName","src":"1668:7:5"}],"id":1560,"name":"VariableDeclaration","src":"1668:11:5"}],"id":1561,"name":"ParameterList","src":"1667:13:5"}],"id":1562,"name":"FunctionDefinition","src":"1577:104:5"},{"attributes":{"body":null,"constant":false,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"query_withGasLimit","payable":true,"scope":1659,"stateMutability":"payable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_timestamp","scope":1575,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1563,"name":"ElementaryTypeName","src":"1714:4:5"}],"id":1564,"name":"VariableDeclaration","src":"1714:15:5"},{"attributes":{"constant":false,"name":"_datasource","scope":1575,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":1565,"name":"ElementaryTypeName","src":"1731:6:5"}],"id":1566,"name":"VariableDeclaration","src":"1731:18:5"},{"attributes":{"constant":false,"name":"_arg","scope":1575,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":1567,"name":"ElementaryTypeName","src":"1751:6:5"}],"id":1568,"name":"VariableDeclaration","src":"1751:11:5"},{"attributes":{"constant":false,"name":"_gaslimit","scope":1575,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1569,"name":"ElementaryTypeName","src":"1764:4:5"}],"id":1570,"name":"VariableDeclaration","src":"1764:14:5"}],"id":1571,"name":"ParameterList","src":"1713:66:5"},{"children":[{"attributes":{"constant":false,"name":"_id","scope":1575,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":1572,"name":"ElementaryTypeName","src":"1806:7:5"}],"id":1573,"name":"VariableDeclaration","src":"1806:11:5"}],"id":1574,"name":"ParameterList","src":"1805:13:5"}],"id":1575,"name":"FunctionDefinition","src":"1686:133:5"},{"attributes":{"body":null,"constant":false,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"query2","payable":true,"scope":1659,"stateMutability":"payable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"_timestamp","scope":1588,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1576,"name":"ElementaryTypeName","src":"1840:4:5"}],"id":1577,"name":"VariableDeclaration","src":"1840:15:5"},{"attributes":{"constant":false,"name":"_datasource","scope":1588,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":1578,"name":"ElementaryTypeName","src":"1857:6:5"}],"id":1579,"name":"VariableDeclaration","src":"1857:18:5"},{"attributes":{"constant":false,"name":"_arg1","scope":1588,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":1580,"name":"ElementaryTypeName","src":"1877:6:5"}],"id":1581,"name":"VariableDeclaration","src":"1877:12:5"},{"attributes":{"constant":false,"name":"_arg2","scope":1588,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":1582,"name":"ElementaryTypeName","src":"1891:6:5"}],"id":1583,"name":"VariableDeclaration","src":"1891:12:5"}],"id":1584,"name":"ParameterList","src":"1839:65:5"},{"children":[{"attributes":{"constant":false,"name":"_id","scope":1588,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":1585,"name":"ElementaryTypeName","src":"1929:7:5"}],"id":1586,"name":"VariableDeclaration","src":"1929:11:5"}],"id":1587,"name":"ParameterList","src":"1928:13:5"}],"id":1588,"name":"FunctionDefinition","src":"1824:118:5"},{"attributes":{"body":null,"constant":false,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"query2_withGasLimit","payable":true,"scope":1659,"stateMutability":"payable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_timestamp","scope":1603,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1589,"name":"ElementaryTypeName","src":"1976:4:5"}],"id":1590,"name":"VariableDeclaration","src":"1976:15:5"},{"attributes":{"constant":false,"name":"_datasource","scope":1603,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":1591,"name":"ElementaryTypeName","src":"1993:6:5"}],"id":1592,"name":"VariableDeclaration","src":"1993:18:5"},{"attributes":{"constant":false,"name":"_arg1","scope":1603,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":1593,"name":"ElementaryTypeName","src":"2013:6:5"}],"id":1594,"name":"VariableDeclaration","src":"2013:12:5"},{"attributes":{"constant":false,"name":"_arg2","scope":1603,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":1595,"name":"ElementaryTypeName","src":"2027:6:5"}],"id":1596,"name":"VariableDeclaration","src":"2027:12:5"},{"attributes":{"constant":false,"name":"_gaslimit","scope":1603,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1597,"name":"ElementaryTypeName","src":"2041:4:5"}],"id":1598,"name":"VariableDeclaration","src":"2041:14:5"}],"id":1599,"name":"ParameterList","src":"1975:81:5"},{"children":[{"attributes":{"constant":false,"name":"_id","scope":1603,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":1600,"name":"ElementaryTypeName","src":"2083:7:5"}],"id":1601,"name":"VariableDeclaration","src":"2083:11:5"}],"id":1602,"name":"ParameterList","src":"2082:13:5"}],"id":1603,"name":"FunctionDefinition","src":"1947:149:5"},{"attributes":{"body":null,"constant":false,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"queryN","payable":true,"scope":1659,"stateMutability":"payable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"_timestamp","scope":1614,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1604,"name":"ElementaryTypeName","src":"2117:4:5"}],"id":1605,"name":"VariableDeclaration","src":"2117:15:5"},{"attributes":{"constant":false,"name":"_datasource","scope":1614,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":1606,"name":"ElementaryTypeName","src":"2134:6:5"}],"id":1607,"name":"VariableDeclaration","src":"2134:18:5"},{"attributes":{"constant":false,"name":"_argN","scope":1614,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":1608,"name":"ElementaryTypeName","src":"2154:5:5"}],"id":1609,"name":"VariableDeclaration","src":"2154:11:5"}],"id":1610,"name":"ParameterList","src":"2116:50:5"},{"children":[{"attributes":{"constant":false,"name":"_id","scope":1614,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":1611,"name":"ElementaryTypeName","src":"2191:7:5"}],"id":1612,"name":"VariableDeclaration","src":"2191:11:5"}],"id":1613,"name":"ParameterList","src":"2190:13:5"}],"id":1614,"name":"FunctionDefinition","src":"2101:103:5"},{"attributes":{"body":null,"constant":false,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"queryN_withGasLimit","payable":true,"scope":1659,"stateMutability":"payable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_timestamp","scope":1627,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1615,"name":"ElementaryTypeName","src":"2238:4:5"}],"id":1616,"name":"VariableDeclaration","src":"2238:15:5"},{"attributes":{"constant":false,"name":"_datasource","scope":1627,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":1617,"name":"ElementaryTypeName","src":"2255:6:5"}],"id":1618,"name":"VariableDeclaration","src":"2255:18:5"},{"attributes":{"constant":false,"name":"_argN","scope":1627,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":1619,"name":"ElementaryTypeName","src":"2275:5:5"}],"id":1620,"name":"VariableDeclaration","src":"2275:11:5"},{"attributes":{"constant":false,"name":"_gaslimit","scope":1627,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1621,"name":"ElementaryTypeName","src":"2288:4:5"}],"id":1622,"name":"VariableDeclaration","src":"2288:14:5"}],"id":1623,"name":"ParameterList","src":"2237:66:5"},{"children":[{"attributes":{"constant":false,"name":"_id","scope":1627,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":1624,"name":"ElementaryTypeName","src":"2330:7:5"}],"id":1625,"name":"VariableDeclaration","src":"2330:11:5"}],"id":1626,"name":"ParameterList","src":"2329:13:5"}],"id":1627,"name":"FunctionDefinition","src":"2209:134:5"},{"attributes":{"body":null,"constant":false,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"getPrice","payable":false,"scope":1659,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"_datasource","scope":1634,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":1628,"name":"ElementaryTypeName","src":"2366:6:5"}],"id":1629,"name":"VariableDeclaration","src":"2366:18:5"}],"id":1630,"name":"ParameterList","src":"2365:20:5"},{"children":[{"attributes":{"constant":false,"name":"_dsprice","scope":1634,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1631,"name":"ElementaryTypeName","src":"2402:4:5"}],"id":1632,"name":"VariableDeclaration","src":"2402:13:5"}],"id":1633,"name":"ParameterList","src":"2401:15:5"}],"id":1634,"name":"FunctionDefinition","src":"2348:69:5"},{"attributes":{"body":null,"constant":false,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"getPrice","payable":false,"scope":1659,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"_datasource","scope":1643,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":1635,"name":"ElementaryTypeName","src":"2440:6:5"}],"id":1636,"name":"VariableDeclaration","src":"2440:18:5"},{"attributes":{"constant":false,"name":"gaslimit","scope":1643,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1637,"name":"ElementaryTypeName","src":"2460:4:5"}],"id":1638,"name":"VariableDeclaration","src":"2460:13:5"}],"id":1639,"name":"ParameterList","src":"2439:35:5"},{"children":[{"attributes":{"constant":false,"name":"_dsprice","scope":1643,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1640,"name":"ElementaryTypeName","src":"2491:4:5"}],"id":1641,"name":"VariableDeclaration","src":"2491:13:5"}],"id":1642,"name":"ParameterList","src":"2490:15:5"}],"id":1643,"name":"FunctionDefinition","src":"2422:84:5"},{"attributes":{"body":null,"constant":false,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"setProofType","payable":false,"scope":1659,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_proofType","scope":1648,"stateVariable":false,"storageLocation":"default","type":"bytes1","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"byte","type":"bytes1"},"id":1644,"name":"ElementaryTypeName","src":"2533:4:5"}],"id":1645,"name":"VariableDeclaration","src":"2533:15:5"}],"id":1646,"name":"ParameterList","src":"2532:17:5"},{"attributes":{"parameters":[null]},"children":[],"id":1647,"name":"ParameterList","src":"2558:0:5"}],"id":1648,"name":"FunctionDefinition","src":"2511:48:5"},{"attributes":{"body":null,"constant":false,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"setCustomGasPrice","payable":false,"scope":1659,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_gasPrice","scope":1653,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1649,"name":"ElementaryTypeName","src":"2591:4:5"}],"id":1650,"name":"VariableDeclaration","src":"2591:14:5"}],"id":1651,"name":"ParameterList","src":"2590:16:5"},{"attributes":{"parameters":[null]},"children":[],"id":1652,"name":"ParameterList","src":"2615:0:5"}],"id":1653,"name":"FunctionDefinition","src":"2564:52:5"},{"attributes":{"body":null,"constant":true,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"randomDS_getSessionPubKeyHash","payable":false,"scope":1659,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":1654,"name":"ParameterList","src":"2659:2:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":1658,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":1655,"name":"ElementaryTypeName","src":"2688:7:5"}],"id":1656,"name":"VariableDeclaration","src":"2688:7:5"}],"id":1657,"name":"ParameterList","src":"2687:9:5"}],"id":1658,"name":"FunctionDefinition","src":"2621:76:5"}],"id":1659,"name":"ContractDefinition","src":"1522:1177:5"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"contract","documentation":null,"fullyImplemented":false,"linearizedBaseContracts":[1665],"name":"OraclizeAddrResolverI","scope":7574},"children":[{"attributes":{"body":null,"constant":false,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"getAddress","payable":false,"scope":1665,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":1660,"name":"ParameterList","src":"2757:2:5"},{"children":[{"attributes":{"constant":false,"name":"_addr","scope":1664,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":1661,"name":"ElementaryTypeName","src":"2776:7:5"}],"id":1662,"name":"VariableDeclaration","src":"2776:13:5"}],"id":1663,"name":"ParameterList","src":"2775:15:5"}],"id":1664,"name":"FunctionDefinition","src":"2738:53:5"}],"id":1665,"name":"ContractDefinition","src":"2701:92:5"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"library","documentation":null,"fullyImplemented":true,"linearizedBaseContracts":[1895],"name":"Buffer","scope":7574},"children":[{"attributes":{"canonicalName":"Buffer.buffer","name":"buffer","scope":1895,"visibility":"public"},"children":[{"attributes":{"constant":false,"name":"buf","scope":1670,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":1666,"name":"ElementaryTypeName","src":"4016:5:5"}],"id":1667,"name":"VariableDeclaration","src":"4016:9:5"},{"attributes":{"constant":false,"name":"capacity","scope":1670,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1668,"name":"ElementaryTypeName","src":"4035:4:5"}],"id":1669,"name":"VariableDeclaration","src":"4035:13:5"}],"id":1670,"name":"StructDefinition","src":"3992:63:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"init","payable":false,"scope":1895,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"buf","scope":1704,"stateVariable":false,"storageLocation":"memory","type":"struct Buffer.buffer","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"buffer","referencedDeclaration":1670,"type":"struct Buffer.buffer"},"id":1671,"name":"UserDefinedTypeName","src":"4075:6:5"}],"id":1672,"name":"VariableDeclaration","src":"4075:17:5"},{"attributes":{"constant":false,"name":"_capacity","scope":1704,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1673,"name":"ElementaryTypeName","src":"4094:4:5"}],"id":1674,"name":"VariableDeclaration","src":"4094:14:5"}],"id":1675,"name":"ParameterList","src":"4074:35:5"},{"attributes":{"parameters":[null]},"children":[],"id":1676,"name":"ParameterList","src":"4124:0:5"},{"children":[{"attributes":{"assignments":[1678]},"children":[{"attributes":{"constant":false,"name":"capacity","scope":1704,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1677,"name":"ElementaryTypeName","src":"4134:4:5"}],"id":1678,"name":"VariableDeclaration","src":"4134:13:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1674,"type":"uint256","value":"_capacity"},"id":1679,"name":"Identifier","src":"4150:9:5"}],"id":1680,"name":"VariableDeclarationStatement","src":"4134:25:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"%","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1678,"type":"uint256","value":"capacity"},"id":1681,"name":"Identifier","src":"4172:8:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":1682,"name":"Literal","src":"4183:2:5"}],"id":1683,"name":"BinaryOperation","src":"4172:13:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1684,"name":"Literal","src":"4189:1:5"}],"id":1685,"name":"BinaryOperation","src":"4172:18:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1678,"type":"uint256","value":"capacity"},"id":1686,"name":"Identifier","src":"4192:8:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":1687,"name":"Literal","src":"4204:2:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"%","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1678,"type":"uint256","value":"capacity"},"id":1688,"name":"Identifier","src":"4210:8:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":1689,"name":"Literal","src":"4221:2:5"}],"id":1690,"name":"BinaryOperation","src":"4210:13:5"}],"id":1691,"name":"TupleExpression","src":"4209:15:5"}],"id":1692,"name":"BinaryOperation","src":"4204:20:5"}],"id":1693,"name":"Assignment","src":"4192:32:5"}],"id":1694,"name":"ExpressionStatement","src":"4192:32:5"}],"id":1695,"name":"IfStatement","src":"4169:55:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"capacity","referencedDeclaration":1669,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1672,"type":"struct Buffer.buffer memory","value":"buf"},"id":1696,"name":"Identifier","src":"4280:3:5"}],"id":1698,"name":"MemberAccess","src":"4280:12:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1678,"type":"uint256","value":"capacity"},"id":1699,"name":"Identifier","src":"4295:8:5"}],"id":1700,"name":"Assignment","src":"4280:23:5"}],"id":1701,"name":"ExpressionStatement","src":"4280:23:5"},{"attributes":{"externalReferences":[{"buf":{"declaration":1672,"isOffset":false,"isSlot":false,"src":"4378:3:5","valueSize":1}},{"capacity":{"declaration":1678,"isOffset":false,"isSlot":false,"src":"4449:8:5","valueSize":1}}],"operations":"{\n let ptr := mload(0x40)\n mstore(buf, ptr)\n mstore(ptr, 0)\n mstore(0x40, add(ptr, capacity))\n}"},"children":[],"id":1702,"name":"InlineAssembly","src":"4313:162:5"}],"id":1703,"name":"Block","src":"4124:351:5"}],"id":1704,"name":"FunctionDefinition","src":"4061:414:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"resize","payable":false,"scope":1895,"stateMutability":"pure","superFunction":null,"visibility":"private"},"children":[{"children":[{"attributes":{"constant":false,"name":"buf","scope":1727,"stateVariable":false,"storageLocation":"memory","type":"struct Buffer.buffer","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"buffer","referencedDeclaration":1670,"type":"struct Buffer.buffer"},"id":1705,"name":"UserDefinedTypeName","src":"4497:6:5"}],"id":1706,"name":"VariableDeclaration","src":"4497:17:5"},{"attributes":{"constant":false,"name":"capacity","scope":1727,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1707,"name":"ElementaryTypeName","src":"4516:4:5"}],"id":1708,"name":"VariableDeclaration","src":"4516:13:5"}],"id":1709,"name":"ParameterList","src":"4496:34:5"},{"attributes":{"parameters":[null]},"children":[],"id":1710,"name":"ParameterList","src":"4544:0:5"},{"children":[{"attributes":{"assignments":[1712]},"children":[{"attributes":{"constant":false,"name":"oldbuf","scope":1727,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":1711,"name":"ElementaryTypeName","src":"4554:5:5"}],"id":1712,"name":"VariableDeclaration","src":"4554:19:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"buf","referencedDeclaration":1667,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1706,"type":"struct Buffer.buffer memory","value":"buf"},"id":1713,"name":"Identifier","src":"4576:3:5"}],"id":1714,"name":"MemberAccess","src":"4576:7:5"}],"id":1715,"name":"VariableDeclarationStatement","src":"4554:29:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1670_memory_ptr","typeString":"struct Buffer.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":1704,"type":"function (struct Buffer.buffer memory,uint256) pure","value":"init"},"id":1716,"name":"Identifier","src":"4593:4:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1706,"type":"struct Buffer.buffer memory","value":"buf"},"id":1717,"name":"Identifier","src":"4598:3:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1708,"type":"uint256","value":"capacity"},"id":1718,"name":"Identifier","src":"4603:8:5"}],"id":1719,"name":"FunctionCall","src":"4593:19:5"}],"id":1720,"name":"ExpressionStatement","src":"4593:19:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"struct Buffer.buffer memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1670_memory_ptr","typeString":"struct Buffer.buffer memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"overloadedDeclarations":[1823,1850],"referencedDeclaration":1823,"type":"function (struct Buffer.buffer memory,bytes memory) pure returns (struct Buffer.buffer memory)","value":"append"},"id":1721,"name":"Identifier","src":"4622:6:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1706,"type":"struct Buffer.buffer memory","value":"buf"},"id":1722,"name":"Identifier","src":"4629:3:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1712,"type":"bytes memory","value":"oldbuf"},"id":1723,"name":"Identifier","src":"4634:6:5"}],"id":1724,"name":"FunctionCall","src":"4622:19:5"}],"id":1725,"name":"ExpressionStatement","src":"4622:19:5"}],"id":1726,"name":"Block","src":"4544:104:5"}],"id":1727,"name":"FunctionDefinition","src":"4481:167:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"max","payable":false,"scope":1895,"stateMutability":"pure","superFunction":null,"visibility":"private"},"children":[{"children":[{"attributes":{"constant":false,"name":"a","scope":1746,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1728,"name":"ElementaryTypeName","src":"4667:4:5"}],"id":1729,"name":"VariableDeclaration","src":"4667:6:5"},{"attributes":{"constant":false,"name":"b","scope":1746,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1730,"name":"ElementaryTypeName","src":"4675:4:5"}],"id":1731,"name":"VariableDeclaration","src":"4675:6:5"}],"id":1732,"name":"ParameterList","src":"4666:16:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":1746,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1733,"name":"ElementaryTypeName","src":"4704:4:5"}],"id":1734,"name":"VariableDeclaration","src":"4704:4:5"}],"id":1735,"name":"ParameterList","src":"4703:6:5"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1729,"type":"uint256","value":"a"},"id":1736,"name":"Identifier","src":"4723:1:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1731,"type":"uint256","value":"b"},"id":1737,"name":"Identifier","src":"4727:1:5"}],"id":1738,"name":"BinaryOperation","src":"4723:5:5"},{"children":[{"attributes":{"functionReturnParameters":1735},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1729,"type":"uint256","value":"a"},"id":1739,"name":"Identifier","src":"4751:1:5"}],"id":1740,"name":"Return","src":"4744:8:5"}],"id":1741,"name":"Block","src":"4730:33:5"}],"id":1742,"name":"IfStatement","src":"4720:43:5"},{"attributes":{"functionReturnParameters":1735},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1731,"type":"uint256","value":"b"},"id":1743,"name":"Identifier","src":"4779:1:5"}],"id":1744,"name":"Return","src":"4772:8:5"}],"id":1745,"name":"Block","src":"4710:77:5"}],"id":1746,"name":"FunctionDefinition","src":"4654:133:5"},{"attributes":{"constant":true,"documentation":"@dev Appends a byte array to the end of the buffer. Resizes if doing so\n would exceed the capacity of the buffer.\n@param buf The buffer to append to.\n@param data The data to append.\n@return The original buffer.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"append","payable":false,"scope":1895,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"buf","scope":1823,"stateVariable":false,"storageLocation":"memory","type":"struct Buffer.buffer","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"buffer","referencedDeclaration":1670,"type":"struct Buffer.buffer"},"id":1747,"name":"UserDefinedTypeName","src":"5075:6:5"}],"id":1748,"name":"VariableDeclaration","src":"5075:17:5"},{"attributes":{"constant":false,"name":"data","scope":1823,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":1749,"name":"ElementaryTypeName","src":"5094:5:5"}],"id":1750,"name":"VariableDeclaration","src":"5094:10:5"}],"id":1751,"name":"ParameterList","src":"5074:31:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":1823,"stateVariable":false,"storageLocation":"memory","type":"struct Buffer.buffer","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"buffer","referencedDeclaration":1670,"type":"struct Buffer.buffer"},"id":1752,"name":"UserDefinedTypeName","src":"5128:6:5"}],"id":1753,"name":"VariableDeclaration","src":"5128:6:5"}],"id":1754,"name":"ParameterList","src":"5127:15:5"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1750,"type":"bytes memory","value":"data"},"id":1755,"name":"Identifier","src":"5156:4:5"}],"id":1756,"name":"MemberAccess","src":"5156:11:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"buf","referencedDeclaration":1667,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1748,"type":"struct Buffer.buffer memory","value":"buf"},"id":1757,"name":"Identifier","src":"5170:3:5"}],"id":1758,"name":"MemberAccess","src":"5170:7:5"}],"id":1759,"name":"MemberAccess","src":"5170:14:5"}],"id":1760,"name":"BinaryOperation","src":"5156:28:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"capacity","referencedDeclaration":1669,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1748,"type":"struct Buffer.buffer memory","value":"buf"},"id":1761,"name":"Identifier","src":"5187:3:5"}],"id":1762,"name":"MemberAccess","src":"5187:12:5"}],"id":1763,"name":"BinaryOperation","src":"5156:43:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1670_memory_ptr","typeString":"struct Buffer.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":1727,"type":"function (struct Buffer.buffer memory,uint256) pure","value":"resize"},"id":1764,"name":"Identifier","src":"5215:6:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1748,"type":"struct Buffer.buffer memory","value":"buf"},"id":1765,"name":"Identifier","src":"5222:3:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":1746,"type":"function (uint256,uint256) pure returns (uint256)","value":"max"},"id":1766,"name":"Identifier","src":"5227:3:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"capacity","referencedDeclaration":1669,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1748,"type":"struct Buffer.buffer memory","value":"buf"},"id":1767,"name":"Identifier","src":"5231:3:5"}],"id":1768,"name":"MemberAccess","src":"5231:12:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1750,"type":"bytes memory","value":"data"},"id":1769,"name":"Identifier","src":"5245:4:5"}],"id":1770,"name":"MemberAccess","src":"5245:11:5"}],"id":1771,"name":"FunctionCall","src":"5227:30:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":1772,"name":"Literal","src":"5260:1:5"}],"id":1773,"name":"BinaryOperation","src":"5227:34:5"}],"id":1774,"name":"FunctionCall","src":"5215:47:5"}],"id":1775,"name":"ExpressionStatement","src":"5215:47:5"}],"id":1776,"name":"Block","src":"5201:72:5"}],"id":1777,"name":"IfStatement","src":"5153:120:5"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"dest","scope":1823,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1778,"name":"ElementaryTypeName","src":"5283:4:5"}],"id":1779,"name":"VariableDeclaration","src":"5283:9:5"}],"id":1780,"name":"VariableDeclarationStatement","src":"5283:9:5"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"src","scope":1823,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1781,"name":"ElementaryTypeName","src":"5302:4:5"}],"id":1782,"name":"VariableDeclaration","src":"5302:8:5"}],"id":1783,"name":"VariableDeclarationStatement","src":"5302:8:5"},{"attributes":{"assignments":[1785]},"children":[{"attributes":{"constant":false,"name":"len","scope":1823,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1784,"name":"ElementaryTypeName","src":"5320:4:5"}],"id":1785,"name":"VariableDeclaration","src":"5320:8:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1750,"type":"bytes memory","value":"data"},"id":1786,"name":"Identifier","src":"5331:4:5"}],"id":1787,"name":"MemberAccess","src":"5331:11:5"}],"id":1788,"name":"VariableDeclarationStatement","src":"5320:22:5"},{"attributes":{"externalReferences":[{"buf":{"declaration":1748,"isOffset":false,"isSlot":false,"src":"5444:3:5","valueSize":1}},{"data":{"declaration":1750,"isOffset":false,"isSlot":false,"src":"5751:4:5","valueSize":1}},{"dest":{"declaration":1779,"isOffset":false,"isSlot":false,"src":"5633:4:5","valueSize":1}},{"src":{"declaration":1782,"isOffset":false,"isSlot":false,"src":"5771:3:5","valueSize":1}},{"data":{"declaration":1750,"isOffset":false,"isSlot":false,"src":"5782:4:5","valueSize":1}}],"operations":"{\n let bufptr := mload(buf)\n let buflen := mload(bufptr)\n dest := add(add(bufptr, buflen), 32)\n mstore(bufptr, add(buflen, mload(data)))\n src := add(data, 32)\n}"},"children":[],"id":1789,"name":"InlineAssembly","src":"5352:512:5"},{"attributes":{"initializationExpression":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1785,"type":"uint256","value":"len"},"id":1790,"name":"Identifier","src":"5867:3:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":1791,"name":"Literal","src":"5874:2:5"}],"id":1792,"name":"BinaryOperation","src":"5867:9:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1785,"type":"uint256","value":"len"},"id":1793,"name":"Identifier","src":"5878:3:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":1794,"name":"Literal","src":"5885:2:5"}],"id":1795,"name":"Assignment","src":"5878:9:5"}],"id":1796,"name":"ExpressionStatement","src":"5878:9:5"},{"children":[{"attributes":{"externalReferences":[{"dest":{"declaration":1779,"isOffset":false,"isSlot":false,"src":"5937:4:5","valueSize":1}},{"src":{"declaration":1782,"isOffset":false,"isSlot":false,"src":"5949:3:5","valueSize":1}}],"operations":"{\n mstore(dest, mload(src))\n}"},"children":[],"id":1797,"name":"InlineAssembly","src":"5903:82:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1779,"type":"uint256","value":"dest"},"id":1798,"name":"Identifier","src":"5981:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":1799,"name":"Literal","src":"5989:2:5"}],"id":1800,"name":"Assignment","src":"5981:10:5"}],"id":1801,"name":"ExpressionStatement","src":"5981:10:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1782,"type":"uint256","value":"src"},"id":1802,"name":"Identifier","src":"6005:3:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":1803,"name":"Literal","src":"6012:2:5"}],"id":1804,"name":"Assignment","src":"6005:9:5"}],"id":1805,"name":"ExpressionStatement","src":"6005:9:5"}],"id":1806,"name":"Block","src":"5889:136:5"}],"id":1807,"name":"ForStatement","src":"5861:164:5"},{"attributes":{"assignments":[1809]},"children":[{"attributes":{"constant":false,"name":"mask","scope":1823,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1808,"name":"ElementaryTypeName","src":"6067:4:5"}],"id":1809,"name":"VariableDeclaration","src":"6067:9:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"**","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"323536","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 256","value":"256"},"id":1810,"name":"Literal","src":"6079:3:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":1811,"name":"Literal","src":"6087:2:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1785,"type":"uint256","value":"len"},"id":1812,"name":"Identifier","src":"6092:3:5"}],"id":1813,"name":"BinaryOperation","src":"6087:8:5"}],"id":1814,"name":"TupleExpression","src":"6086:10:5"}],"id":1815,"name":"BinaryOperation","src":"6079:17:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":1816,"name":"Literal","src":"6099:1:5"}],"id":1817,"name":"BinaryOperation","src":"6079:21:5"}],"id":1818,"name":"VariableDeclarationStatement","src":"6067:33:5"},{"attributes":{"externalReferences":[{"mask":{"declaration":1809,"isOffset":false,"isSlot":false,"src":"6168:4:5","valueSize":1}},{"src":{"declaration":1782,"isOffset":false,"isSlot":false,"src":"6158:3:5","valueSize":1}},{"dest":{"declaration":1779,"isOffset":false,"isSlot":false,"src":"6213:4:5","valueSize":1}},{"mask":{"declaration":1809,"isOffset":false,"isSlot":false,"src":"6220:4:5","valueSize":1}},{"dest":{"declaration":1779,"isOffset":false,"isSlot":false,"src":"6245:4:5","valueSize":1}}],"operations":"{\n let srcpart := and(mload(src), not(mask))\n let destpart := and(mload(dest), mask)\n mstore(dest, or(destpart, srcpart))\n}"},"children":[],"id":1819,"name":"InlineAssembly","src":"6110:189:5"},{"attributes":{"functionReturnParameters":1754},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1748,"type":"struct Buffer.buffer memory","value":"buf"},"id":1820,"name":"Identifier","src":"6300:3:5"}],"id":1821,"name":"Return","src":"6293:10:5"}],"id":1822,"name":"Block","src":"5143:1167:5"}],"id":1823,"name":"FunctionDefinition","src":"5059:1251:5"},{"attributes":{"constant":true,"documentation":"@dev Appends a byte to the end of the buffer. Resizes if doing so would\nexceed the capacity of the buffer.\n@param buf The buffer to append to.\n@param data The data to append.\n@return The original buffer.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"append","payable":false,"scope":1895,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"buf","scope":1850,"stateVariable":false,"storageLocation":"memory","type":"struct Buffer.buffer","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"buffer","referencedDeclaration":1670,"type":"struct Buffer.buffer"},"id":1824,"name":"UserDefinedTypeName","src":"6587:6:5"}],"id":1825,"name":"VariableDeclaration","src":"6587:17:5"},{"attributes":{"constant":false,"name":"data","scope":1850,"stateVariable":false,"storageLocation":"default","type":"uint8","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint8","type":"uint8"},"id":1826,"name":"ElementaryTypeName","src":"6606:5:5"}],"id":1827,"name":"VariableDeclaration","src":"6606:10:5"}],"id":1828,"name":"ParameterList","src":"6586:31:5"},{"attributes":{"parameters":[null]},"children":[],"id":1829,"name":"ParameterList","src":"6632:0:5"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"buf","referencedDeclaration":1667,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1825,"type":"struct Buffer.buffer memory","value":"buf"},"id":1830,"name":"Identifier","src":"6645:3:5"}],"id":1831,"name":"MemberAccess","src":"6645:7:5"}],"id":1832,"name":"MemberAccess","src":"6645:14:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":1833,"name":"Literal","src":"6662:1:5"}],"id":1834,"name":"BinaryOperation","src":"6645:18:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"capacity","referencedDeclaration":1669,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1825,"type":"struct Buffer.buffer memory","value":"buf"},"id":1835,"name":"Identifier","src":"6666:3:5"}],"id":1836,"name":"MemberAccess","src":"6666:12:5"}],"id":1837,"name":"BinaryOperation","src":"6645:33:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1670_memory_ptr","typeString":"struct Buffer.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":1727,"type":"function (struct Buffer.buffer memory,uint256) pure","value":"resize"},"id":1838,"name":"Identifier","src":"6694:6:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1825,"type":"struct Buffer.buffer memory","value":"buf"},"id":1839,"name":"Identifier","src":"6701:3:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"capacity","referencedDeclaration":1669,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1825,"type":"struct Buffer.buffer memory","value":"buf"},"id":1840,"name":"Identifier","src":"6706:3:5"}],"id":1841,"name":"MemberAccess","src":"6706:12:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":1842,"name":"Literal","src":"6721:1:5"}],"id":1843,"name":"BinaryOperation","src":"6706:16:5"}],"id":1844,"name":"FunctionCall","src":"6694:29:5"}],"id":1845,"name":"ExpressionStatement","src":"6694:29:5"}],"id":1846,"name":"Block","src":"6680:54:5"}],"id":1847,"name":"IfStatement","src":"6642:92:5"},{"attributes":{"externalReferences":[{"buf":{"declaration":1825,"isOffset":false,"isSlot":false,"src":"6836:3:5","valueSize":1}},{"data":{"declaration":1827,"isOffset":false,"isSlot":false,"src":"7086:4:5","valueSize":1}}],"operations":"{\n let bufptr := mload(buf)\n let buflen := mload(bufptr)\n let dest := add(add(bufptr, buflen), 32)\n mstore8(dest, data)\n mstore(bufptr, add(buflen, 1))\n}"},"children":[],"id":1848,"name":"InlineAssembly","src":"6744:442:5"}],"id":1849,"name":"Block","src":"6632:554:5"}],"id":1850,"name":"FunctionDefinition","src":"6571:615:5"},{"attributes":{"constant":true,"documentation":"@dev Appends a byte to the end of the buffer. Resizes if doing so would\nexceed the capacity of the buffer.\n@param buf The buffer to append to.\n@param data The data to append.\n@return The original buffer.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"appendInt","payable":false,"scope":1895,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"buf","scope":1894,"stateVariable":false,"storageLocation":"memory","type":"struct Buffer.buffer","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"buffer","referencedDeclaration":1670,"type":"struct Buffer.buffer"},"id":1851,"name":"UserDefinedTypeName","src":"7466:6:5"}],"id":1852,"name":"VariableDeclaration","src":"7466:17:5"},{"attributes":{"constant":false,"name":"data","scope":1894,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1853,"name":"ElementaryTypeName","src":"7485:4:5"}],"id":1854,"name":"VariableDeclaration","src":"7485:9:5"},{"attributes":{"constant":false,"name":"len","scope":1894,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1855,"name":"ElementaryTypeName","src":"7496:4:5"}],"id":1856,"name":"VariableDeclaration","src":"7496:8:5"}],"id":1857,"name":"ParameterList","src":"7465:40:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":1894,"stateVariable":false,"storageLocation":"memory","type":"struct Buffer.buffer","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"buffer","referencedDeclaration":1670,"type":"struct Buffer.buffer"},"id":1858,"name":"UserDefinedTypeName","src":"7528:6:5"}],"id":1859,"name":"VariableDeclaration","src":"7528:6:5"}],"id":1860,"name":"ParameterList","src":"7527:15:5"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1856,"type":"uint256","value":"len"},"id":1861,"name":"Identifier","src":"7556:3:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"buf","referencedDeclaration":1667,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1852,"type":"struct Buffer.buffer memory","value":"buf"},"id":1862,"name":"Identifier","src":"7562:3:5"}],"id":1863,"name":"MemberAccess","src":"7562:7:5"}],"id":1864,"name":"MemberAccess","src":"7562:14:5"}],"id":1865,"name":"BinaryOperation","src":"7556:20:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"capacity","referencedDeclaration":1669,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1852,"type":"struct Buffer.buffer memory","value":"buf"},"id":1866,"name":"Identifier","src":"7579:3:5"}],"id":1867,"name":"MemberAccess","src":"7579:12:5"}],"id":1868,"name":"BinaryOperation","src":"7556:35:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1670_memory_ptr","typeString":"struct Buffer.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":1727,"type":"function (struct Buffer.buffer memory,uint256) pure","value":"resize"},"id":1869,"name":"Identifier","src":"7607:6:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1852,"type":"struct Buffer.buffer memory","value":"buf"},"id":1870,"name":"Identifier","src":"7614:3:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":1746,"type":"function (uint256,uint256) pure returns (uint256)","value":"max"},"id":1871,"name":"Identifier","src":"7619:3:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"capacity","referencedDeclaration":1669,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1852,"type":"struct Buffer.buffer memory","value":"buf"},"id":1872,"name":"Identifier","src":"7623:3:5"}],"id":1873,"name":"MemberAccess","src":"7623:12:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1856,"type":"uint256","value":"len"},"id":1874,"name":"Identifier","src":"7637:3:5"}],"id":1875,"name":"FunctionCall","src":"7619:22:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":1876,"name":"Literal","src":"7644:1:5"}],"id":1877,"name":"BinaryOperation","src":"7619:26:5"}],"id":1878,"name":"FunctionCall","src":"7607:39:5"}],"id":1879,"name":"ExpressionStatement","src":"7607:39:5"}],"id":1880,"name":"Block","src":"7593:64:5"}],"id":1881,"name":"IfStatement","src":"7553:104:5"},{"attributes":{"assignments":[1883]},"children":[{"attributes":{"constant":false,"name":"mask","scope":1894,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1882,"name":"ElementaryTypeName","src":"7667:4:5"}],"id":1883,"name":"VariableDeclaration","src":"7667:9:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"**","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"323536","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 256","value":"256"},"id":1884,"name":"Literal","src":"7679:3:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1856,"type":"uint256","value":"len"},"id":1885,"name":"Identifier","src":"7686:3:5"}],"id":1886,"name":"BinaryOperation","src":"7679:10:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":1887,"name":"Literal","src":"7692:1:5"}],"id":1888,"name":"BinaryOperation","src":"7679:14:5"}],"id":1889,"name":"VariableDeclarationStatement","src":"7667:26:5"},{"attributes":{"externalReferences":[{"buf":{"declaration":1852,"isOffset":false,"isSlot":false,"src":"7795:3:5","valueSize":1}},{"len":{"declaration":1856,"isOffset":false,"isSlot":false,"src":"8165:3:5","valueSize":1}},{"len":{"declaration":1856,"isOffset":false,"isSlot":false,"src":"8021:3:5","valueSize":1}},{"data":{"declaration":1854,"isOffset":false,"isSlot":false,"src":"8083:4:5","valueSize":1}},{"mask":{"declaration":1883,"isOffset":false,"isSlot":false,"src":"8075:4:5","valueSize":1}}],"operations":"{\n let bufptr := mload(buf)\n let buflen := mload(bufptr)\n let dest := add(add(bufptr, buflen), len)\n mstore(dest, or(and(mload(dest), not(mask)), data))\n mstore(bufptr, add(buflen, len))\n}"},"children":[],"id":1890,"name":"InlineAssembly","src":"7703:492:5"},{"attributes":{"functionReturnParameters":1860},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1852,"type":"struct Buffer.buffer memory","value":"buf"},"id":1891,"name":"Identifier","src":"8196:3:5"}],"id":1892,"name":"Return","src":"8189:10:5"}],"id":1893,"name":"Block","src":"7543:663:5"}],"id":1894,"name":"FunctionDefinition","src":"7447:759:5"}],"id":1895,"name":"ContractDefinition","src":"3971:4237:5"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"library","documentation":null,"fullyImplemented":true,"linearizedBaseContracts":[2195],"name":"CBOR","scope":7574},"children":[{"children":[{"attributes":{"contractScope":null,"name":"Buffer","referencedDeclaration":1895,"type":"library Buffer"},"id":1896,"name":"UserDefinedTypeName","src":"8235:6:5"},{"attributes":{"contractScope":null,"name":"Buffer.buffer","referencedDeclaration":1670,"type":"struct Buffer.buffer"},"id":1897,"name":"UserDefinedTypeName","src":"8246:13:5"}],"id":1898,"name":"UsingForDirective","src":"8229:31:5"},{"attributes":{"constant":true,"name":"MAJOR_TYPE_INT","scope":2195,"stateVariable":true,"storageLocation":"default","type":"uint8","visibility":"private"},"children":[{"attributes":{"name":"uint8","type":"uint8"},"id":1899,"name":"ElementaryTypeName","src":"8266:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1900,"name":"Literal","src":"8306:1:5"}],"id":1901,"name":"VariableDeclaration","src":"8266:41:5"},{"attributes":{"constant":true,"name":"MAJOR_TYPE_NEGATIVE_INT","scope":2195,"stateVariable":true,"storageLocation":"default","type":"uint8","visibility":"private"},"children":[{"attributes":{"name":"uint8","type":"uint8"},"id":1902,"name":"ElementaryTypeName","src":"8313:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":1903,"name":"Literal","src":"8362:1:5"}],"id":1904,"name":"VariableDeclaration","src":"8313:50:5"},{"attributes":{"constant":true,"name":"MAJOR_TYPE_BYTES","scope":2195,"stateVariable":true,"storageLocation":"default","type":"uint8","visibility":"private"},"children":[{"attributes":{"name":"uint8","type":"uint8"},"id":1905,"name":"ElementaryTypeName","src":"8369:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":1906,"name":"Literal","src":"8411:1:5"}],"id":1907,"name":"VariableDeclaration","src":"8369:43:5"},{"attributes":{"constant":true,"name":"MAJOR_TYPE_STRING","scope":2195,"stateVariable":true,"storageLocation":"default","type":"uint8","visibility":"private"},"children":[{"attributes":{"name":"uint8","type":"uint8"},"id":1908,"name":"ElementaryTypeName","src":"8418:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":1909,"name":"Literal","src":"8461:1:5"}],"id":1910,"name":"VariableDeclaration","src":"8418:44:5"},{"attributes":{"constant":true,"name":"MAJOR_TYPE_ARRAY","scope":2195,"stateVariable":true,"storageLocation":"default","type":"uint8","visibility":"private"},"children":[{"attributes":{"name":"uint8","type":"uint8"},"id":1911,"name":"ElementaryTypeName","src":"8468:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":1912,"name":"Literal","src":"8510:1:5"}],"id":1913,"name":"VariableDeclaration","src":"8468:43:5"},{"attributes":{"constant":true,"name":"MAJOR_TYPE_MAP","scope":2195,"stateVariable":true,"storageLocation":"default","type":"uint8","visibility":"private"},"children":[{"attributes":{"name":"uint8","type":"uint8"},"id":1914,"name":"ElementaryTypeName","src":"8517:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"35","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 5","value":"5"},"id":1915,"name":"Literal","src":"8557:1:5"}],"id":1916,"name":"VariableDeclaration","src":"8517:41:5"},{"attributes":{"constant":true,"name":"MAJOR_TYPE_CONTENT_FREE","scope":2195,"stateVariable":true,"storageLocation":"default","type":"uint8","visibility":"private"},"children":[{"attributes":{"name":"uint8","type":"uint8"},"id":1917,"name":"ElementaryTypeName","src":"8564:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"37","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 7","value":"7"},"id":1918,"name":"Literal","src":"8613:1:5"}],"id":1919,"name":"VariableDeclaration","src":"8564:50:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"encodeType","payable":false,"scope":2195,"stateMutability":"pure","superFunction":null,"visibility":"private"},"children":[{"children":[{"attributes":{"constant":false,"name":"buf","scope":2047,"stateVariable":false,"storageLocation":"memory","type":"struct Buffer.buffer","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"Buffer.buffer","referencedDeclaration":1670,"type":"struct Buffer.buffer"},"id":1920,"name":"UserDefinedTypeName","src":"8641:13:5"}],"id":1921,"name":"VariableDeclaration","src":"8641:24:5"},{"attributes":{"constant":false,"name":"major","scope":2047,"stateVariable":false,"storageLocation":"default","type":"uint8","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint8","type":"uint8"},"id":1922,"name":"ElementaryTypeName","src":"8667:5:5"}],"id":1923,"name":"VariableDeclaration","src":"8667:11:5"},{"attributes":{"constant":false,"name":"value","scope":2047,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1924,"name":"ElementaryTypeName","src":"8680:4:5"}],"id":1925,"name":"VariableDeclaration","src":"8680:10:5"}],"id":1926,"name":"ParameterList","src":"8640:51:5"},{"attributes":{"parameters":[null]},"children":[],"id":1927,"name":"ParameterList","src":"8705:0:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1925,"type":"uint256","value":"value"},"id":1928,"name":"Identifier","src":"8718:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3233","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 23","value":"23"},"id":1929,"name":"Literal","src":"8727:2:5"}],"id":1930,"name":"BinaryOperation","src":"8718:11:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"append","referencedDeclaration":1850,"type":"function (struct Buffer.buffer memory,uint8) pure"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1921,"type":"struct Buffer.buffer memory","value":"buf"},"id":1931,"name":"Identifier","src":"8745:3:5"}],"id":1933,"name":"MemberAccess","src":"8745:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint8","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint8)","value":"uint8"},"id":1934,"name":"ElementaryTypeNameExpression","src":"8756:5:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"|","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint8"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<<","type":"uint8"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1923,"type":"uint8","value":"major"},"id":1935,"name":"Identifier","src":"8763:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"35","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 5","value":"5"},"id":1936,"name":"Literal","src":"8772:1:5"}],"id":1937,"name":"BinaryOperation","src":"8763:10:5"}],"id":1938,"name":"TupleExpression","src":"8762:12:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1925,"type":"uint256","value":"value"},"id":1939,"name":"Identifier","src":"8777:5:5"}],"id":1940,"name":"BinaryOperation","src":"8762:20:5"}],"id":1941,"name":"FunctionCall","src":"8756:27:5"}],"id":1942,"name":"FunctionCall","src":"8745:39:5"}],"id":1943,"name":"ExpressionStatement","src":"8745:39:5"}],"id":1944,"name":"Block","src":"8731:64:5"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1925,"type":"uint256","value":"value"},"id":1945,"name":"Identifier","src":"8804:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30784646","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 255","value":"0xFF"},"id":1946,"name":"Literal","src":"8813:4:5"}],"id":1947,"name":"BinaryOperation","src":"8804:13:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"append","referencedDeclaration":1850,"type":"function (struct Buffer.buffer memory,uint8) pure"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1921,"type":"struct Buffer.buffer memory","value":"buf"},"id":1948,"name":"Identifier","src":"8833:3:5"}],"id":1950,"name":"MemberAccess","src":"8833:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint8","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint8)","value":"uint8"},"id":1951,"name":"ElementaryTypeNameExpression","src":"8844:5:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"|","type":"uint8"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint8"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<<","type":"uint8"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1923,"type":"uint8","value":"major"},"id":1952,"name":"Identifier","src":"8851:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"35","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 5","value":"5"},"id":1953,"name":"Literal","src":"8860:1:5"}],"id":1954,"name":"BinaryOperation","src":"8851:10:5"}],"id":1955,"name":"TupleExpression","src":"8850:12:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3234","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 24","value":"24"},"id":1956,"name":"Literal","src":"8865:2:5"}],"id":1957,"name":"BinaryOperation","src":"8850:17:5"}],"id":1958,"name":"FunctionCall","src":"8844:24:5"}],"id":1959,"name":"FunctionCall","src":"8833:36:5"}],"id":1960,"name":"ExpressionStatement","src":"8833:36:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"struct Buffer.buffer memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"appendInt","referencedDeclaration":1894,"type":"function (struct Buffer.buffer memory,uint256,uint256) pure returns (struct Buffer.buffer memory)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1921,"type":"struct Buffer.buffer memory","value":"buf"},"id":1961,"name":"Identifier","src":"8883:3:5"}],"id":1963,"name":"MemberAccess","src":"8883:13:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1925,"type":"uint256","value":"value"},"id":1964,"name":"Identifier","src":"8897:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":1965,"name":"Literal","src":"8904:1:5"}],"id":1966,"name":"FunctionCall","src":"8883:23:5"}],"id":1967,"name":"ExpressionStatement","src":"8883:23:5"}],"id":1968,"name":"Block","src":"8819:98:5"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1925,"type":"uint256","value":"value"},"id":1969,"name":"Identifier","src":"8926:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"307846464646","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 65535","value":"0xFFFF"},"id":1970,"name":"Literal","src":"8935:6:5"}],"id":1971,"name":"BinaryOperation","src":"8926:15:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"append","referencedDeclaration":1850,"type":"function (struct Buffer.buffer memory,uint8) pure"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1921,"type":"struct Buffer.buffer memory","value":"buf"},"id":1972,"name":"Identifier","src":"8957:3:5"}],"id":1974,"name":"MemberAccess","src":"8957:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint8","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint8)","value":"uint8"},"id":1975,"name":"ElementaryTypeNameExpression","src":"8968:5:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"|","type":"uint8"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint8"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<<","type":"uint8"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1923,"type":"uint8","value":"major"},"id":1976,"name":"Identifier","src":"8975:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"35","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 5","value":"5"},"id":1977,"name":"Literal","src":"8984:1:5"}],"id":1978,"name":"BinaryOperation","src":"8975:10:5"}],"id":1979,"name":"TupleExpression","src":"8974:12:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3235","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 25","value":"25"},"id":1980,"name":"Literal","src":"8989:2:5"}],"id":1981,"name":"BinaryOperation","src":"8974:17:5"}],"id":1982,"name":"FunctionCall","src":"8968:24:5"}],"id":1983,"name":"FunctionCall","src":"8957:36:5"}],"id":1984,"name":"ExpressionStatement","src":"8957:36:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"struct Buffer.buffer memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"appendInt","referencedDeclaration":1894,"type":"function (struct Buffer.buffer memory,uint256,uint256) pure returns (struct Buffer.buffer memory)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1921,"type":"struct Buffer.buffer memory","value":"buf"},"id":1985,"name":"Identifier","src":"9007:3:5"}],"id":1987,"name":"MemberAccess","src":"9007:13:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1925,"type":"uint256","value":"value"},"id":1988,"name":"Identifier","src":"9021:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":1989,"name":"Literal","src":"9028:1:5"}],"id":1990,"name":"FunctionCall","src":"9007:23:5"}],"id":1991,"name":"ExpressionStatement","src":"9007:23:5"}],"id":1992,"name":"Block","src":"8943:98:5"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1925,"type":"uint256","value":"value"},"id":1993,"name":"Identifier","src":"9050:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30784646464646464646","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4294967295","value":"0xFFFFFFFF"},"id":1994,"name":"Literal","src":"9059:10:5"}],"id":1995,"name":"BinaryOperation","src":"9050:19:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"append","referencedDeclaration":1850,"type":"function (struct Buffer.buffer memory,uint8) pure"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1921,"type":"struct Buffer.buffer memory","value":"buf"},"id":1996,"name":"Identifier","src":"9085:3:5"}],"id":1998,"name":"MemberAccess","src":"9085:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint8","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint8)","value":"uint8"},"id":1999,"name":"ElementaryTypeNameExpression","src":"9096:5:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"|","type":"uint8"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint8"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<<","type":"uint8"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1923,"type":"uint8","value":"major"},"id":2000,"name":"Identifier","src":"9103:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"35","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 5","value":"5"},"id":2001,"name":"Literal","src":"9112:1:5"}],"id":2002,"name":"BinaryOperation","src":"9103:10:5"}],"id":2003,"name":"TupleExpression","src":"9102:12:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3236","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 26","value":"26"},"id":2004,"name":"Literal","src":"9117:2:5"}],"id":2005,"name":"BinaryOperation","src":"9102:17:5"}],"id":2006,"name":"FunctionCall","src":"9096:24:5"}],"id":2007,"name":"FunctionCall","src":"9085:36:5"}],"id":2008,"name":"ExpressionStatement","src":"9085:36:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"struct Buffer.buffer memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"appendInt","referencedDeclaration":1894,"type":"function (struct Buffer.buffer memory,uint256,uint256) pure returns (struct Buffer.buffer memory)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1921,"type":"struct Buffer.buffer memory","value":"buf"},"id":2009,"name":"Identifier","src":"9135:3:5"}],"id":2011,"name":"MemberAccess","src":"9135:13:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1925,"type":"uint256","value":"value"},"id":2012,"name":"Identifier","src":"9149:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":2013,"name":"Literal","src":"9156:1:5"}],"id":2014,"name":"FunctionCall","src":"9135:23:5"}],"id":2015,"name":"ExpressionStatement","src":"9135:23:5"}],"id":2016,"name":"Block","src":"9071:98:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1925,"type":"uint256","value":"value"},"id":2017,"name":"Identifier","src":"9178:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"307846464646464646464646464646464646","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 18446744073709551615","value":"0xFFFFFFFFFFFFFFFF"},"id":2018,"name":"Literal","src":"9187:18:5"}],"id":2019,"name":"BinaryOperation","src":"9178:27:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"append","referencedDeclaration":1850,"type":"function (struct Buffer.buffer memory,uint8) pure"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1921,"type":"struct Buffer.buffer memory","value":"buf"},"id":2020,"name":"Identifier","src":"9221:3:5"}],"id":2022,"name":"MemberAccess","src":"9221:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint8","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint8)","value":"uint8"},"id":2023,"name":"ElementaryTypeNameExpression","src":"9232:5:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"|","type":"uint8"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint8"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<<","type":"uint8"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1923,"type":"uint8","value":"major"},"id":2024,"name":"Identifier","src":"9239:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"35","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 5","value":"5"},"id":2025,"name":"Literal","src":"9248:1:5"}],"id":2026,"name":"BinaryOperation","src":"9239:10:5"}],"id":2027,"name":"TupleExpression","src":"9238:12:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3237","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 27","value":"27"},"id":2028,"name":"Literal","src":"9253:2:5"}],"id":2029,"name":"BinaryOperation","src":"9238:17:5"}],"id":2030,"name":"FunctionCall","src":"9232:24:5"}],"id":2031,"name":"FunctionCall","src":"9221:36:5"}],"id":2032,"name":"ExpressionStatement","src":"9221:36:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"struct Buffer.buffer memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"}],"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"appendInt","referencedDeclaration":1894,"type":"function (struct Buffer.buffer memory,uint256,uint256) pure returns (struct Buffer.buffer memory)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1921,"type":"struct Buffer.buffer memory","value":"buf"},"id":2033,"name":"Identifier","src":"9271:3:5"}],"id":2035,"name":"MemberAccess","src":"9271:13:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1925,"type":"uint256","value":"value"},"id":2036,"name":"Identifier","src":"9285:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"38","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 8","value":"8"},"id":2037,"name":"Literal","src":"9292:1:5"}],"id":2038,"name":"FunctionCall","src":"9271:23:5"}],"id":2039,"name":"ExpressionStatement","src":"9271:23:5"}],"id":2040,"name":"Block","src":"9207:98:5"}],"id":2041,"name":"IfStatement","src":"9175:130:5"}],"id":2042,"name":"IfStatement","src":"9047:258:5"}],"id":2043,"name":"IfStatement","src":"8923:382:5"}],"id":2044,"name":"IfStatement","src":"8801:504:5"}],"id":2045,"name":"IfStatement","src":"8715:590:5"}],"id":2046,"name":"Block","src":"8705:606:5"}],"id":2047,"name":"FunctionDefinition","src":"8621:690:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"encodeIndefiniteLengthType","payable":false,"scope":2195,"stateMutability":"pure","superFunction":null,"visibility":"private"},"children":[{"children":[{"attributes":{"constant":false,"name":"buf","scope":2068,"stateVariable":false,"storageLocation":"memory","type":"struct Buffer.buffer","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"Buffer.buffer","referencedDeclaration":1670,"type":"struct Buffer.buffer"},"id":2048,"name":"UserDefinedTypeName","src":"9353:13:5"}],"id":2049,"name":"VariableDeclaration","src":"9353:24:5"},{"attributes":{"constant":false,"name":"major","scope":2068,"stateVariable":false,"storageLocation":"default","type":"uint8","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint8","type":"uint8"},"id":2050,"name":"ElementaryTypeName","src":"9379:5:5"}],"id":2051,"name":"VariableDeclaration","src":"9379:11:5"}],"id":2052,"name":"ParameterList","src":"9352:39:5"},{"attributes":{"parameters":[null]},"children":[],"id":2053,"name":"ParameterList","src":"9405:0:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"append","referencedDeclaration":1850,"type":"function (struct Buffer.buffer memory,uint8) pure"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2049,"type":"struct Buffer.buffer memory","value":"buf"},"id":2054,"name":"Identifier","src":"9415:3:5"}],"id":2056,"name":"MemberAccess","src":"9415:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint8","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint8)","value":"uint8"},"id":2057,"name":"ElementaryTypeNameExpression","src":"9426:5:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"|","type":"uint8"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint8"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<<","type":"uint8"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2051,"type":"uint8","value":"major"},"id":2058,"name":"Identifier","src":"9433:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"35","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 5","value":"5"},"id":2059,"name":"Literal","src":"9442:1:5"}],"id":2060,"name":"BinaryOperation","src":"9433:10:5"}],"id":2061,"name":"TupleExpression","src":"9432:12:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3331","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 31","value":"31"},"id":2062,"name":"Literal","src":"9447:2:5"}],"id":2063,"name":"BinaryOperation","src":"9432:17:5"}],"id":2064,"name":"FunctionCall","src":"9426:24:5"}],"id":2065,"name":"FunctionCall","src":"9415:36:5"}],"id":2066,"name":"ExpressionStatement","src":"9415:36:5"}],"id":2067,"name":"Block","src":"9405:53:5"}],"id":2068,"name":"FunctionDefinition","src":"9317:141:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"encodeUInt","payable":false,"scope":2195,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"buf","scope":2082,"stateVariable":false,"storageLocation":"memory","type":"struct Buffer.buffer","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"Buffer.buffer","referencedDeclaration":1670,"type":"struct Buffer.buffer"},"id":2069,"name":"UserDefinedTypeName","src":"9484:13:5"}],"id":2070,"name":"VariableDeclaration","src":"9484:24:5"},{"attributes":{"constant":false,"name":"value","scope":2082,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2071,"name":"ElementaryTypeName","src":"9510:4:5"}],"id":2072,"name":"VariableDeclaration","src":"9510:10:5"}],"id":2073,"name":"ParameterList","src":"9483:38:5"},{"attributes":{"parameters":[null]},"children":[],"id":2074,"name":"ParameterList","src":"9536:0:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1670_memory_ptr","typeString":"struct Buffer.buffer memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":2047,"type":"function (struct Buffer.buffer memory,uint8,uint256) pure","value":"encodeType"},"id":2075,"name":"Identifier","src":"9546:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2070,"type":"struct Buffer.buffer memory","value":"buf"},"id":2076,"name":"Identifier","src":"9557:3:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1901,"type":"uint8","value":"MAJOR_TYPE_INT"},"id":2077,"name":"Identifier","src":"9562:14:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2072,"type":"uint256","value":"value"},"id":2078,"name":"Identifier","src":"9578:5:5"}],"id":2079,"name":"FunctionCall","src":"9546:38:5"}],"id":2080,"name":"ExpressionStatement","src":"9546:38:5"}],"id":2081,"name":"Block","src":"9536:55:5"}],"id":2082,"name":"FunctionDefinition","src":"9464:127:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"encodeInt","payable":false,"scope":2195,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"buf","scope":2115,"stateVariable":false,"storageLocation":"memory","type":"struct Buffer.buffer","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"Buffer.buffer","referencedDeclaration":1670,"type":"struct Buffer.buffer"},"id":2083,"name":"UserDefinedTypeName","src":"9616:13:5"}],"id":2084,"name":"VariableDeclaration","src":"9616:24:5"},{"attributes":{"constant":false,"name":"value","scope":2115,"stateVariable":false,"storageLocation":"default","type":"int256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"int","type":"int256"},"id":2085,"name":"ElementaryTypeName","src":"9642:3:5"}],"id":2086,"name":"VariableDeclaration","src":"9642:9:5"}],"id":2087,"name":"ParameterList","src":"9615:37:5"},{"attributes":{"parameters":[null]},"children":[],"id":2088,"name":"ParameterList","src":"9667:0:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2086,"type":"int256","value":"value"},"id":2089,"name":"Identifier","src":"9680:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2090,"name":"Literal","src":"9689:1:5"}],"id":2091,"name":"BinaryOperation","src":"9680:10:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1670_memory_ptr","typeString":"struct Buffer.buffer memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":2047,"type":"function (struct Buffer.buffer memory,uint8,uint256) pure","value":"encodeType"},"id":2092,"name":"Identifier","src":"9706:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2084,"type":"struct Buffer.buffer memory","value":"buf"},"id":2093,"name":"Identifier","src":"9717:3:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1901,"type":"uint8","value":"MAJOR_TYPE_INT"},"id":2094,"name":"Identifier","src":"9722:14:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint"},"id":2095,"name":"ElementaryTypeNameExpression","src":"9738:4:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2086,"type":"int256","value":"value"},"id":2096,"name":"Identifier","src":"9743:5:5"}],"id":2097,"name":"FunctionCall","src":"9738:11:5"}],"id":2098,"name":"FunctionCall","src":"9706:44:5"}],"id":2099,"name":"ExpressionStatement","src":"9706:44:5"}],"id":2100,"name":"Block","src":"9692:69:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1670_memory_ptr","typeString":"struct Buffer.buffer memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":2047,"type":"function (struct Buffer.buffer memory,uint8,uint256) pure","value":"encodeType"},"id":2101,"name":"Identifier","src":"9781:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2084,"type":"struct Buffer.buffer memory","value":"buf"},"id":2102,"name":"Identifier","src":"9792:3:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1904,"type":"uint8","value":"MAJOR_TYPE_NEGATIVE_INT"},"id":2103,"name":"Identifier","src":"9797:23:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint"},"id":2104,"name":"ElementaryTypeNameExpression","src":"9822:4:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"int256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"-","prefix":true,"type":"int_const -1"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":2105,"name":"Literal","src":"9828:1:5"}],"id":2106,"name":"UnaryOperation","src":"9827:2:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2086,"type":"int256","value":"value"},"id":2107,"name":"Identifier","src":"9832:5:5"}],"id":2108,"name":"BinaryOperation","src":"9827:10:5"}],"id":2109,"name":"FunctionCall","src":"9822:16:5"}],"id":2110,"name":"FunctionCall","src":"9781:58:5"}],"id":2111,"name":"ExpressionStatement","src":"9781:58:5"}],"id":2112,"name":"Block","src":"9767:83:5"}],"id":2113,"name":"IfStatement","src":"9677:173:5"}],"id":2114,"name":"Block","src":"9667:189:5"}],"id":2115,"name":"FunctionDefinition","src":"9597:259:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"encodeBytes","payable":false,"scope":2195,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"buf","scope":2136,"stateVariable":false,"storageLocation":"memory","type":"struct Buffer.buffer","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"Buffer.buffer","referencedDeclaration":1670,"type":"struct Buffer.buffer"},"id":2116,"name":"UserDefinedTypeName","src":"9883:13:5"}],"id":2117,"name":"VariableDeclaration","src":"9883:24:5"},{"attributes":{"constant":false,"name":"value","scope":2136,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":2118,"name":"ElementaryTypeName","src":"9909:5:5"}],"id":2119,"name":"VariableDeclaration","src":"9909:11:5"}],"id":2120,"name":"ParameterList","src":"9882:39:5"},{"attributes":{"parameters":[null]},"children":[],"id":2121,"name":"ParameterList","src":"9936:0:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1670_memory_ptr","typeString":"struct Buffer.buffer memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":2047,"type":"function (struct Buffer.buffer memory,uint8,uint256) pure","value":"encodeType"},"id":2122,"name":"Identifier","src":"9946:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2117,"type":"struct Buffer.buffer memory","value":"buf"},"id":2123,"name":"Identifier","src":"9957:3:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1907,"type":"uint8","value":"MAJOR_TYPE_BYTES"},"id":2124,"name":"Identifier","src":"9962:16:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2119,"type":"bytes memory","value":"value"},"id":2125,"name":"Identifier","src":"9980:5:5"}],"id":2126,"name":"MemberAccess","src":"9980:12:5"}],"id":2127,"name":"FunctionCall","src":"9946:47:5"}],"id":2128,"name":"ExpressionStatement","src":"9946:47:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"struct Buffer.buffer memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"append","referencedDeclaration":1823,"type":"function (struct Buffer.buffer memory,bytes memory) pure returns (struct Buffer.buffer memory)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2117,"type":"struct Buffer.buffer memory","value":"buf"},"id":2129,"name":"Identifier","src":"10003:3:5"}],"id":2131,"name":"MemberAccess","src":"10003:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2119,"type":"bytes memory","value":"value"},"id":2132,"name":"Identifier","src":"10014:5:5"}],"id":2133,"name":"FunctionCall","src":"10003:17:5"}],"id":2134,"name":"ExpressionStatement","src":"10003:17:5"}],"id":2135,"name":"Block","src":"9936:91:5"}],"id":2136,"name":"FunctionDefinition","src":"9862:165:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"encodeString","payable":false,"scope":2195,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"buf","scope":2161,"stateVariable":false,"storageLocation":"memory","type":"struct Buffer.buffer","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"Buffer.buffer","referencedDeclaration":1670,"type":"struct Buffer.buffer"},"id":2137,"name":"UserDefinedTypeName","src":"10055:13:5"}],"id":2138,"name":"VariableDeclaration","src":"10055:24:5"},{"attributes":{"constant":false,"name":"value","scope":2161,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":2139,"name":"ElementaryTypeName","src":"10081:6:5"}],"id":2140,"name":"VariableDeclaration","src":"10081:12:5"}],"id":2141,"name":"ParameterList","src":"10054:40:5"},{"attributes":{"parameters":[null]},"children":[],"id":2142,"name":"ParameterList","src":"10109:0:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1670_memory_ptr","typeString":"struct Buffer.buffer memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":2047,"type":"function (struct Buffer.buffer memory,uint8,uint256) pure","value":"encodeType"},"id":2143,"name":"Identifier","src":"10119:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2138,"type":"struct Buffer.buffer memory","value":"buf"},"id":2144,"name":"Identifier","src":"10130:3:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1910,"type":"uint8","value":"MAJOR_TYPE_STRING"},"id":2145,"name":"Identifier","src":"10135:17:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes storage pointer)","value":"bytes"},"id":2146,"name":"ElementaryTypeNameExpression","src":"10154:5:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2140,"type":"string memory","value":"value"},"id":2147,"name":"Identifier","src":"10160:5:5"}],"id":2148,"name":"FunctionCall","src":"10154:12:5"}],"id":2149,"name":"MemberAccess","src":"10154:19:5"}],"id":2150,"name":"FunctionCall","src":"10119:55:5"}],"id":2151,"name":"ExpressionStatement","src":"10119:55:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"struct Buffer.buffer memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory","typeString":"bytes memory"}],"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"append","referencedDeclaration":1823,"type":"function (struct Buffer.buffer memory,bytes memory) pure returns (struct Buffer.buffer memory)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2138,"type":"struct Buffer.buffer memory","value":"buf"},"id":2152,"name":"Identifier","src":"10184:3:5"}],"id":2154,"name":"MemberAccess","src":"10184:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes storage pointer)","value":"bytes"},"id":2155,"name":"ElementaryTypeNameExpression","src":"10195:5:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2140,"type":"string memory","value":"value"},"id":2156,"name":"Identifier","src":"10201:5:5"}],"id":2157,"name":"FunctionCall","src":"10195:12:5"}],"id":2158,"name":"FunctionCall","src":"10184:24:5"}],"id":2159,"name":"ExpressionStatement","src":"10184:24:5"}],"id":2160,"name":"Block","src":"10109:106:5"}],"id":2161,"name":"FunctionDefinition","src":"10033:182:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"startArray","payable":false,"scope":2195,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"buf","scope":2172,"stateVariable":false,"storageLocation":"memory","type":"struct Buffer.buffer","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"Buffer.buffer","referencedDeclaration":1670,"type":"struct Buffer.buffer"},"id":2162,"name":"UserDefinedTypeName","src":"10241:13:5"}],"id":2163,"name":"VariableDeclaration","src":"10241:24:5"}],"id":2164,"name":"ParameterList","src":"10240:26:5"},{"attributes":{"parameters":[null]},"children":[],"id":2165,"name":"ParameterList","src":"10281:0:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1670_memory_ptr","typeString":"struct Buffer.buffer memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"overloadedDeclarations":[null],"referencedDeclaration":2068,"type":"function (struct Buffer.buffer memory,uint8) pure","value":"encodeIndefiniteLengthType"},"id":2166,"name":"Identifier","src":"10291:26:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2163,"type":"struct Buffer.buffer memory","value":"buf"},"id":2167,"name":"Identifier","src":"10318:3:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1913,"type":"uint8","value":"MAJOR_TYPE_ARRAY"},"id":2168,"name":"Identifier","src":"10323:16:5"}],"id":2169,"name":"FunctionCall","src":"10291:49:5"}],"id":2170,"name":"ExpressionStatement","src":"10291:49:5"}],"id":2171,"name":"Block","src":"10281:66:5"}],"id":2172,"name":"FunctionDefinition","src":"10221:126:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"startMap","payable":false,"scope":2195,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"buf","scope":2183,"stateVariable":false,"storageLocation":"memory","type":"struct Buffer.buffer","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"Buffer.buffer","referencedDeclaration":1670,"type":"struct Buffer.buffer"},"id":2173,"name":"UserDefinedTypeName","src":"10371:13:5"}],"id":2174,"name":"VariableDeclaration","src":"10371:24:5"}],"id":2175,"name":"ParameterList","src":"10370:26:5"},{"attributes":{"parameters":[null]},"children":[],"id":2176,"name":"ParameterList","src":"10411:0:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1670_memory_ptr","typeString":"struct Buffer.buffer memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"overloadedDeclarations":[null],"referencedDeclaration":2068,"type":"function (struct Buffer.buffer memory,uint8) pure","value":"encodeIndefiniteLengthType"},"id":2177,"name":"Identifier","src":"10421:26:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2174,"type":"struct Buffer.buffer memory","value":"buf"},"id":2178,"name":"Identifier","src":"10448:3:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1916,"type":"uint8","value":"MAJOR_TYPE_MAP"},"id":2179,"name":"Identifier","src":"10453:14:5"}],"id":2180,"name":"FunctionCall","src":"10421:47:5"}],"id":2181,"name":"ExpressionStatement","src":"10421:47:5"}],"id":2182,"name":"Block","src":"10411:64:5"}],"id":2183,"name":"FunctionDefinition","src":"10353:122:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"endSequence","payable":false,"scope":2195,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"buf","scope":2194,"stateVariable":false,"storageLocation":"memory","type":"struct Buffer.buffer","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"Buffer.buffer","referencedDeclaration":1670,"type":"struct Buffer.buffer"},"id":2184,"name":"UserDefinedTypeName","src":"10502:13:5"}],"id":2185,"name":"VariableDeclaration","src":"10502:24:5"}],"id":2186,"name":"ParameterList","src":"10501:26:5"},{"attributes":{"parameters":[null]},"children":[],"id":2187,"name":"ParameterList","src":"10542:0:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1670_memory_ptr","typeString":"struct Buffer.buffer memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"overloadedDeclarations":[null],"referencedDeclaration":2068,"type":"function (struct Buffer.buffer memory,uint8) pure","value":"encodeIndefiniteLengthType"},"id":2188,"name":"Identifier","src":"10552:26:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2185,"type":"struct Buffer.buffer memory","value":"buf"},"id":2189,"name":"Identifier","src":"10579:3:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1919,"type":"uint8","value":"MAJOR_TYPE_CONTENT_FREE"},"id":2190,"name":"Identifier","src":"10584:23:5"}],"id":2191,"name":"FunctionCall","src":"10552:56:5"}],"id":2192,"name":"ExpressionStatement","src":"10552:56:5"}],"id":2193,"name":"Block","src":"10542:73:5"}],"id":2194,"name":"FunctionDefinition","src":"10481:134:5"}],"id":2195,"name":"ContractDefinition","src":"8210:2407:5"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"contract","documentation":null,"fullyImplemented":true,"linearizedBaseContracts":[7573],"name":"usingOraclize","scope":7574},"children":[{"attributes":{"constant":true,"name":"day","scope":7573,"stateVariable":true,"storageLocation":"default","type":"uint256","visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2196,"name":"ElementaryTypeName","src":"10679:4:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_86400_by_1","typeString":"int_const 86400"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"*","type":"int_const 86400"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_3600_by_1","typeString":"int_const 3600"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"*","type":"int_const 3600"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3630","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 60","value":"60"},"id":2197,"name":"Literal","src":"10699:2:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3630","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 60","value":"60"},"id":2198,"name":"Literal","src":"10702:2:5"}],"id":2199,"name":"BinaryOperation","src":"10699:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3234","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 24","value":"24"},"id":2200,"name":"Literal","src":"10705:2:5"}],"id":2201,"name":"BinaryOperation","src":"10699:8:5"}],"id":2202,"name":"VariableDeclaration","src":"10679:28:5"},{"attributes":{"constant":true,"name":"week","scope":7573,"stateVariable":true,"storageLocation":"default","type":"uint256","visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2203,"name":"ElementaryTypeName","src":"10713:4:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_604800_by_1","typeString":"int_const 604800"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"*","type":"int_const 604800"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_86400_by_1","typeString":"int_const 86400"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"*","type":"int_const 86400"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_3600_by_1","typeString":"int_const 3600"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"*","type":"int_const 3600"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3630","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 60","value":"60"},"id":2204,"name":"Literal","src":"10734:2:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3630","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 60","value":"60"},"id":2205,"name":"Literal","src":"10737:2:5"}],"id":2206,"name":"BinaryOperation","src":"10734:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3234","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 24","value":"24"},"id":2207,"name":"Literal","src":"10740:2:5"}],"id":2208,"name":"BinaryOperation","src":"10734:8:5"},{"attributes":{"argumentTypes":null,"hexvalue":"37","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 7","value":"7"},"id":2209,"name":"Literal","src":"10743:1:5"}],"id":2210,"name":"BinaryOperation","src":"10734:10:5"}],"id":2211,"name":"VariableDeclaration","src":"10713:31:5"},{"attributes":{"constant":true,"name":"month","scope":7573,"stateVariable":true,"storageLocation":"default","type":"uint256","visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2212,"name":"ElementaryTypeName","src":"10750:4:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_2592000_by_1","typeString":"int_const 2592000"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"*","type":"int_const 2592000"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_86400_by_1","typeString":"int_const 86400"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"*","type":"int_const 86400"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_3600_by_1","typeString":"int_const 3600"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"*","type":"int_const 3600"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3630","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 60","value":"60"},"id":2213,"name":"Literal","src":"10772:2:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3630","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 60","value":"60"},"id":2214,"name":"Literal","src":"10775:2:5"}],"id":2215,"name":"BinaryOperation","src":"10772:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3234","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 24","value":"24"},"id":2216,"name":"Literal","src":"10778:2:5"}],"id":2217,"name":"BinaryOperation","src":"10772:8:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3330","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 30","value":"30"},"id":2218,"name":"Literal","src":"10781:2:5"}],"id":2219,"name":"BinaryOperation","src":"10772:11:5"}],"id":2220,"name":"VariableDeclaration","src":"10750:33:5"},{"attributes":{"constant":true,"name":"proofType_NONE","scope":7573,"stateVariable":true,"storageLocation":"default","type":"bytes1","visibility":"internal"},"children":[{"attributes":{"name":"byte","type":"bytes1"},"id":2221,"name":"ElementaryTypeName","src":"10789:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30783030","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0x00"},"id":2222,"name":"Literal","src":"10820:4:5"}],"id":2223,"name":"VariableDeclaration","src":"10789:35:5"},{"attributes":{"constant":true,"name":"proofType_TLSNotary","scope":7573,"stateVariable":true,"storageLocation":"default","type":"bytes1","visibility":"internal"},"children":[{"attributes":{"name":"byte","type":"bytes1"},"id":2224,"name":"ElementaryTypeName","src":"10830:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30783130","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 16","value":"0x10"},"id":2225,"name":"Literal","src":"10866:4:5"}],"id":2226,"name":"VariableDeclaration","src":"10830:40:5"},{"attributes":{"constant":true,"name":"proofType_Ledger","scope":7573,"stateVariable":true,"storageLocation":"default","type":"bytes1","visibility":"internal"},"children":[{"attributes":{"name":"byte","type":"bytes1"},"id":2227,"name":"ElementaryTypeName","src":"10876:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30783330","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 48","value":"0x30"},"id":2228,"name":"Literal","src":"10909:4:5"}],"id":2229,"name":"VariableDeclaration","src":"10876:37:5"},{"attributes":{"constant":true,"name":"proofType_Android","scope":7573,"stateVariable":true,"storageLocation":"default","type":"bytes1","visibility":"internal"},"children":[{"attributes":{"name":"byte","type":"bytes1"},"id":2230,"name":"ElementaryTypeName","src":"10919:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30783430","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 64","value":"0x40"},"id":2231,"name":"Literal","src":"10953:4:5"}],"id":2232,"name":"VariableDeclaration","src":"10919:38:5"},{"attributes":{"constant":true,"name":"proofType_Native","scope":7573,"stateVariable":true,"storageLocation":"default","type":"bytes1","visibility":"internal"},"children":[{"attributes":{"name":"byte","type":"bytes1"},"id":2233,"name":"ElementaryTypeName","src":"10963:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30784630","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 240","value":"0xF0"},"id":2234,"name":"Literal","src":"10996:4:5"}],"id":2235,"name":"VariableDeclaration","src":"10963:37:5"},{"attributes":{"constant":true,"name":"proofStorage_IPFS","scope":7573,"stateVariable":true,"storageLocation":"default","type":"bytes1","visibility":"internal"},"children":[{"attributes":{"name":"byte","type":"bytes1"},"id":2236,"name":"ElementaryTypeName","src":"11006:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30783031","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"0x01"},"id":2237,"name":"Literal","src":"11040:4:5"}],"id":2238,"name":"VariableDeclaration","src":"11006:38:5"},{"attributes":{"constant":true,"name":"networkID_auto","scope":7573,"stateVariable":true,"storageLocation":"default","type":"uint8","visibility":"internal"},"children":[{"attributes":{"name":"uint8","type":"uint8"},"id":2239,"name":"ElementaryTypeName","src":"11050:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2240,"name":"Literal","src":"11082:1:5"}],"id":2241,"name":"VariableDeclaration","src":"11050:33:5"},{"attributes":{"constant":true,"name":"networkID_mainnet","scope":7573,"stateVariable":true,"storageLocation":"default","type":"uint8","visibility":"internal"},"children":[{"attributes":{"name":"uint8","type":"uint8"},"id":2242,"name":"ElementaryTypeName","src":"11089:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":2243,"name":"Literal","src":"11124:1:5"}],"id":2244,"name":"VariableDeclaration","src":"11089:36:5"},{"attributes":{"constant":true,"name":"networkID_testnet","scope":7573,"stateVariable":true,"storageLocation":"default","type":"uint8","visibility":"internal"},"children":[{"attributes":{"name":"uint8","type":"uint8"},"id":2245,"name":"ElementaryTypeName","src":"11131:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":2246,"name":"Literal","src":"11166:1:5"}],"id":2247,"name":"VariableDeclaration","src":"11131:36:5"},{"attributes":{"constant":true,"name":"networkID_morden","scope":7573,"stateVariable":true,"storageLocation":"default","type":"uint8","visibility":"internal"},"children":[{"attributes":{"name":"uint8","type":"uint8"},"id":2248,"name":"ElementaryTypeName","src":"11173:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":2249,"name":"Literal","src":"11207:1:5"}],"id":2250,"name":"VariableDeclaration","src":"11173:35:5"},{"attributes":{"constant":true,"name":"networkID_consensys","scope":7573,"stateVariable":true,"storageLocation":"default","type":"uint8","visibility":"internal"},"children":[{"attributes":{"name":"uint8","type":"uint8"},"id":2251,"name":"ElementaryTypeName","src":"11214:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"313631","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 161","value":"161"},"id":2252,"name":"Literal","src":"11251:3:5"}],"id":2253,"name":"VariableDeclaration","src":"11214:40:5"},{"attributes":{"constant":false,"name":"OAR","scope":7573,"stateVariable":true,"storageLocation":"default","type":"contract OraclizeAddrResolverI","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"OraclizeAddrResolverI","referencedDeclaration":1665,"type":"contract OraclizeAddrResolverI"},"id":2254,"name":"UserDefinedTypeName","src":"11261:21:5"}],"id":2255,"name":"VariableDeclaration","src":"11261:25:5"},{"attributes":{"constant":false,"name":"oraclize","scope":7573,"stateVariable":true,"storageLocation":"default","type":"contract OraclizeI","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"OraclizeI","referencedDeclaration":1659,"type":"contract OraclizeI"},"id":2256,"name":"UserDefinedTypeName","src":"11293:9:5"}],"id":2257,"name":"VariableDeclaration","src":"11293:18:5"},{"attributes":{"documentation":null,"name":"oraclizeAPI","visibility":"internal"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":2258,"name":"ParameterList","src":"11338:0:5"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"||","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_contract$_OraclizeAddrResolverI_$1665","typeString":"contract OraclizeAddrResolverI"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":2259,"name":"ElementaryTypeNameExpression","src":"11352:7:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2255,"type":"contract OraclizeAddrResolverI","value":"OAR"},"id":2260,"name":"Identifier","src":"11360:3:5"}],"id":2261,"name":"FunctionCall","src":"11352:12:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2262,"name":"Literal","src":"11366:1:5"}],"id":2263,"name":"BinaryOperation","src":"11352:15:5"}],"id":2264,"name":"TupleExpression","src":"11351:17:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":5581,"type":"function (address) view returns (uint256)","value":"getCodeSize"},"id":2265,"name":"Identifier","src":"11371:11:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_contract$_OraclizeAddrResolverI_$1665","typeString":"contract OraclizeAddrResolverI"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":2266,"name":"ElementaryTypeNameExpression","src":"11383:7:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2255,"type":"contract OraclizeAddrResolverI","value":"OAR"},"id":2267,"name":"Identifier","src":"11391:3:5"}],"id":2268,"name":"FunctionCall","src":"11383:12:5"}],"id":2269,"name":"FunctionCall","src":"11371:25:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2270,"name":"Literal","src":"11398:1:5"}],"id":2271,"name":"BinaryOperation","src":"11371:28:5"}],"id":2272,"name":"TupleExpression","src":"11370:30:5"}],"id":2273,"name":"BinaryOperation","src":"11351:49:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"overloadedDeclarations":[2324,2453],"referencedDeclaration":2324,"type":"function (uint8) returns (bool)","value":"oraclize_setNetwork"},"id":2274,"name":"Identifier","src":"11414:19:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2241,"type":"uint8","value":"networkID_auto"},"id":2275,"name":"Identifier","src":"11434:14:5"}],"id":2276,"name":"FunctionCall","src":"11414:35:5"}],"id":2277,"name":"ExpressionStatement","src":"11414:35:5"}],"id":2278,"name":"IfStatement","src":"11348:101:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_contract$_OraclizeI_$1659","typeString":"contract OraclizeI"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":2279,"name":"ElementaryTypeNameExpression","src":"11463:7:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2257,"type":"contract OraclizeI","value":"oraclize"},"id":2280,"name":"Identifier","src":"11471:8:5"}],"id":2281,"name":"FunctionCall","src":"11463:17:5"},{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"getAddress","referencedDeclaration":1664,"type":"function () external returns (address)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2255,"type":"contract OraclizeAddrResolverI","value":"OAR"},"id":2282,"name":"Identifier","src":"11484:3:5"}],"id":2283,"name":"MemberAccess","src":"11484:14:5"}],"id":2284,"name":"FunctionCall","src":"11484:16:5"}],"id":2285,"name":"BinaryOperation","src":"11463:37:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"contract OraclizeI"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2257,"type":"contract OraclizeI","value":"oraclize"},"id":2286,"name":"Identifier","src":"11514:8:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract OraclizeI","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":1659,"type":"type(contract OraclizeI)","value":"OraclizeI"},"id":2287,"name":"Identifier","src":"11525:9:5"},{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"getAddress","referencedDeclaration":1664,"type":"function () external returns (address)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2255,"type":"contract OraclizeAddrResolverI","value":"OAR"},"id":2288,"name":"Identifier","src":"11535:3:5"}],"id":2289,"name":"MemberAccess","src":"11535:14:5"}],"id":2290,"name":"FunctionCall","src":"11535:16:5"}],"id":2291,"name":"FunctionCall","src":"11525:27:5"}],"id":2292,"name":"Assignment","src":"11514:38:5"}],"id":2293,"name":"ExpressionStatement","src":"11514:38:5"}],"id":2294,"name":"IfStatement","src":"11460:92:5"},{"id":2295,"name":"PlaceholderStatement","src":"11563:1:5"}],"id":2296,"name":"Block","src":"11338:233:5"}],"id":2297,"name":"ModifierDefinition","src":"11317:254:5"},{"attributes":{"documentation":null,"name":"coupon","visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"code","scope":2311,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":2298,"name":"ElementaryTypeName","src":"11592:6:5"}],"id":2299,"name":"VariableDeclaration","src":"11592:11:5"}],"id":2300,"name":"ParameterList","src":"11591:13:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"contract OraclizeI"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2257,"type":"contract OraclizeI","value":"oraclize"},"id":2301,"name":"Identifier","src":"11614:8:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract OraclizeI","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":1659,"type":"type(contract OraclizeI)","value":"OraclizeI"},"id":2302,"name":"Identifier","src":"11625:9:5"},{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"getAddress","referencedDeclaration":1664,"type":"function () external returns (address)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2255,"type":"contract OraclizeAddrResolverI","value":"OAR"},"id":2303,"name":"Identifier","src":"11635:3:5"}],"id":2304,"name":"MemberAccess","src":"11635:14:5"}],"id":2305,"name":"FunctionCall","src":"11635:16:5"}],"id":2306,"name":"FunctionCall","src":"11625:27:5"}],"id":2307,"name":"Assignment","src":"11614:38:5"}],"id":2308,"name":"ExpressionStatement","src":"11614:38:5"},{"id":2309,"name":"PlaceholderStatement","src":"11662:1:5"}],"id":2310,"name":"Block","src":"11604:66:5"}],"id":2311,"name":"ModifierDefinition","src":"11576:94:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"oraclize_setNetwork","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"networkID","scope":2324,"stateVariable":false,"storageLocation":"default","type":"uint8","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint8","type":"uint8"},"id":2312,"name":"ElementaryTypeName","src":"11705:5:5"}],"id":2313,"name":"VariableDeclaration","src":"11705:15:5"}],"id":2314,"name":"ParameterList","src":"11704:17:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":2324,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2315,"name":"ElementaryTypeName","src":"11739:4:5"}],"id":2316,"name":"VariableDeclaration","src":"11739:4:5"}],"id":2317,"name":"ParameterList","src":"11738:6:5"},{"children":[{"attributes":{"functionReturnParameters":2317},"children":[{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"overloadedDeclarations":[2324,2453],"referencedDeclaration":2453,"type":"function () returns (bool)","value":"oraclize_setNetwork"},"id":2318,"name":"Identifier","src":"11759:19:5"}],"id":2319,"name":"FunctionCall","src":"11759:21:5"}],"id":2320,"name":"Return","src":"11752:28:5"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2313,"type":"uint8","value":"networkID"},"id":2321,"name":"Identifier","src":"11788:9:5"}],"id":2322,"name":"ExpressionStatement","src":"11788:9:5"}],"id":2323,"name":"Block","src":"11744:115:5"}],"id":2324,"name":"FunctionDefinition","src":"11676:183:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"oraclize_setNetwork","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":2325,"name":"ParameterList","src":"11892:2:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":2453,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2326,"name":"ElementaryTypeName","src":"11912:4:5"}],"id":2327,"name":"VariableDeclaration","src":"11912:4:5"}],"id":2328,"name":"ParameterList","src":"11911:6:5"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":5581,"type":"function (address) view returns (uint256)","value":"getCodeSize"},"id":2329,"name":"Identifier","src":"11931:11:5"},{"attributes":{"argumentTypes":null,"hexvalue":"307831643342323633386137634339663243423344323938413344413761393042363745353530366564","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"address","value":"0x1d3B2638a7cC9f2CB3D298A3DA7a90B67E5506ed"},"id":2330,"name":"Literal","src":"11943:42:5"}],"id":2331,"name":"FunctionCall","src":"11931:55:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2332,"name":"Literal","src":"11987:1:5"}],"id":2333,"name":"BinaryOperation","src":"11931:57:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"contract OraclizeAddrResolverI"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2255,"type":"contract OraclizeAddrResolverI","value":"OAR"},"id":2334,"name":"Identifier","src":"12013:3:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract OraclizeAddrResolverI","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":1665,"type":"type(contract OraclizeAddrResolverI)","value":"OraclizeAddrResolverI"},"id":2335,"name":"Identifier","src":"12019:21:5"},{"attributes":{"argumentTypes":null,"hexvalue":"307831643342323633386137634339663243423344323938413344413761393042363745353530366564","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"address","value":"0x1d3B2638a7cC9f2CB3D298A3DA7a90B67E5506ed"},"id":2336,"name":"Literal","src":"12041:42:5"}],"id":2337,"name":"FunctionCall","src":"12019:65:5"}],"id":2338,"name":"Assignment","src":"12013:71:5"}],"id":2339,"name":"ExpressionStatement","src":"12013:71:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_166a8b14211a981f35b8c1a0ccd1793ab8b02990816168f2e07c026e3cec6dbb","typeString":"literal_string \"eth_mainnet\""}],"overloadedDeclarations":[null],"referencedDeclaration":6514,"type":"function (string memory)","value":"oraclize_setNetworkName"},"id":2340,"name":"Identifier","src":"12098:23:5"},{"attributes":{"argumentTypes":null,"hexvalue":"6574685f6d61696e6e6574","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"eth_mainnet\"","value":"eth_mainnet"},"id":2341,"name":"Literal","src":"12122:13:5"}],"id":2342,"name":"FunctionCall","src":"12098:38:5"}],"id":2343,"name":"ExpressionStatement","src":"12098:38:5"},{"attributes":{"functionReturnParameters":2328},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":2344,"name":"Literal","src":"12157:4:5"}],"id":2345,"name":"Return","src":"12150:11:5"}],"id":2346,"name":"Block","src":"11989:183:5"}],"id":2347,"name":"IfStatement","src":"11927:245:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":5581,"type":"function (address) view returns (uint256)","value":"getCodeSize"},"id":2348,"name":"Identifier","src":"12185:11:5"},{"attributes":{"argumentTypes":null,"hexvalue":"307863303341323631354435656661663546343946363042374242363538336561656332313266646631","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"address","value":"0xc03A2615D5efaf5F49F60B7BB6583eaec212fdf1"},"id":2349,"name":"Literal","src":"12197:42:5"}],"id":2350,"name":"FunctionCall","src":"12185:55:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2351,"name":"Literal","src":"12241:1:5"}],"id":2352,"name":"BinaryOperation","src":"12185:57:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"contract OraclizeAddrResolverI"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2255,"type":"contract OraclizeAddrResolverI","value":"OAR"},"id":2353,"name":"Identifier","src":"12275:3:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract OraclizeAddrResolverI","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":1665,"type":"type(contract OraclizeAddrResolverI)","value":"OraclizeAddrResolverI"},"id":2354,"name":"Identifier","src":"12281:21:5"},{"attributes":{"argumentTypes":null,"hexvalue":"307863303341323631354435656661663546343946363042374242363538336561656332313266646631","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"address","value":"0xc03A2615D5efaf5F49F60B7BB6583eaec212fdf1"},"id":2355,"name":"Literal","src":"12303:42:5"}],"id":2356,"name":"FunctionCall","src":"12281:65:5"}],"id":2357,"name":"Assignment","src":"12275:71:5"}],"id":2358,"name":"ExpressionStatement","src":"12275:71:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e6d7ad12f793704da2b0e6be7ff3ba552c838441702c3dfed0dc46fdcc6223f3","typeString":"literal_string \"eth_ropsten3\""}],"overloadedDeclarations":[null],"referencedDeclaration":6514,"type":"function (string memory)","value":"oraclize_setNetworkName"},"id":2359,"name":"Identifier","src":"12360:23:5"},{"attributes":{"argumentTypes":null,"hexvalue":"6574685f726f707374656e33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"eth_ropsten3\"","value":"eth_ropsten3"},"id":2360,"name":"Literal","src":"12384:14:5"}],"id":2361,"name":"FunctionCall","src":"12360:39:5"}],"id":2362,"name":"ExpressionStatement","src":"12360:39:5"},{"attributes":{"functionReturnParameters":2328},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":2363,"name":"Literal","src":"12420:4:5"}],"id":2364,"name":"Return","src":"12413:11:5"}],"id":2365,"name":"Block","src":"12243:192:5"}],"id":2366,"name":"IfStatement","src":"12181:254:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":5581,"type":"function (address) view returns (uint256)","value":"getCodeSize"},"id":2367,"name":"Identifier","src":"12448:11:5"},{"attributes":{"argumentTypes":null,"hexvalue":"307842374130374263463242613266323730336232344330363931623532373839393943353941433765","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"address","value":"0xB7A07BcF2Ba2f2703b24C0691b5278999C59AC7e"},"id":2368,"name":"Literal","src":"12460:42:5"}],"id":2369,"name":"FunctionCall","src":"12448:55:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2370,"name":"Literal","src":"12504:1:5"}],"id":2371,"name":"BinaryOperation","src":"12448:57:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"contract OraclizeAddrResolverI"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2255,"type":"contract OraclizeAddrResolverI","value":"OAR"},"id":2372,"name":"Identifier","src":"12536:3:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract OraclizeAddrResolverI","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":1665,"type":"type(contract OraclizeAddrResolverI)","value":"OraclizeAddrResolverI"},"id":2373,"name":"Identifier","src":"12542:21:5"},{"attributes":{"argumentTypes":null,"hexvalue":"307842374130374263463242613266323730336232344330363931623532373839393943353941433765","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"address","value":"0xB7A07BcF2Ba2f2703b24C0691b5278999C59AC7e"},"id":2374,"name":"Literal","src":"12564:42:5"}],"id":2375,"name":"FunctionCall","src":"12542:65:5"}],"id":2376,"name":"Assignment","src":"12536:71:5"}],"id":2377,"name":"ExpressionStatement","src":"12536:71:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_da5c31bc586f77b6347024034556b408f03b750ee3f96529679e30db70e2e90d","typeString":"literal_string \"eth_kovan\""}],"overloadedDeclarations":[null],"referencedDeclaration":6514,"type":"function (string memory)","value":"oraclize_setNetworkName"},"id":2378,"name":"Identifier","src":"12621:23:5"},{"attributes":{"argumentTypes":null,"hexvalue":"6574685f6b6f76616e","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"eth_kovan\"","value":"eth_kovan"},"id":2379,"name":"Literal","src":"12645:11:5"}],"id":2380,"name":"FunctionCall","src":"12621:36:5"}],"id":2381,"name":"ExpressionStatement","src":"12621:36:5"},{"attributes":{"functionReturnParameters":2328},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":2382,"name":"Literal","src":"12678:4:5"}],"id":2383,"name":"Return","src":"12671:11:5"}],"id":2384,"name":"Block","src":"12506:187:5"}],"id":2385,"name":"IfStatement","src":"12444:249:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":5581,"type":"function (address) view returns (uint256)","value":"getCodeSize"},"id":2386,"name":"Identifier","src":"12706:11:5"},{"attributes":{"argumentTypes":null,"hexvalue":"307831343635303063666433354232324534413339324665306144633036446531613133363845643438","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"address","value":"0x146500cfd35B22E4A392Fe0aDc06De1a1368Ed48"},"id":2387,"name":"Literal","src":"12718:42:5"}],"id":2388,"name":"FunctionCall","src":"12706:55:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2389,"name":"Literal","src":"12762:1:5"}],"id":2390,"name":"BinaryOperation","src":"12706:57:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"contract OraclizeAddrResolverI"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2255,"type":"contract OraclizeAddrResolverI","value":"OAR"},"id":2391,"name":"Identifier","src":"12796:3:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract OraclizeAddrResolverI","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":1665,"type":"type(contract OraclizeAddrResolverI)","value":"OraclizeAddrResolverI"},"id":2392,"name":"Identifier","src":"12802:21:5"},{"attributes":{"argumentTypes":null,"hexvalue":"307831343635303063666433354232324534413339324665306144633036446531613133363845643438","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"address","value":"0x146500cfd35B22E4A392Fe0aDc06De1a1368Ed48"},"id":2393,"name":"Literal","src":"12824:42:5"}],"id":2394,"name":"FunctionCall","src":"12802:65:5"}],"id":2395,"name":"Assignment","src":"12796:71:5"}],"id":2396,"name":"ExpressionStatement","src":"12796:71:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_bcbda94ce7fd7b64b15e0074dc94e1f7d42828b0ba2b4a4854abb35899f64a25","typeString":"literal_string \"eth_rinkeby\""}],"overloadedDeclarations":[null],"referencedDeclaration":6514,"type":"function (string memory)","value":"oraclize_setNetworkName"},"id":2397,"name":"Identifier","src":"12881:23:5"},{"attributes":{"argumentTypes":null,"hexvalue":"6574685f72696e6b656279","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"eth_rinkeby\"","value":"eth_rinkeby"},"id":2398,"name":"Literal","src":"12905:13:5"}],"id":2399,"name":"FunctionCall","src":"12881:38:5"}],"id":2400,"name":"ExpressionStatement","src":"12881:38:5"},{"attributes":{"functionReturnParameters":2328},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":2401,"name":"Literal","src":"12940:4:5"}],"id":2402,"name":"Return","src":"12933:11:5"}],"id":2403,"name":"Block","src":"12764:191:5"}],"id":2404,"name":"IfStatement","src":"12702:253:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":5581,"type":"function (address) view returns (uint256)","value":"getCodeSize"},"id":2405,"name":"Identifier","src":"12968:11:5"},{"attributes":{"argumentTypes":null,"hexvalue":"307836663438354338424636666334336541323132453933424246386365303436433766316362343735","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"address","value":"0x6f485C8BF6fc43eA212E93BBF8ce046C7f1cb475"},"id":2406,"name":"Literal","src":"12980:42:5"}],"id":2407,"name":"FunctionCall","src":"12968:55:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2408,"name":"Literal","src":"13024:1:5"}],"id":2409,"name":"BinaryOperation","src":"12968:57:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"contract OraclizeAddrResolverI"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2255,"type":"contract OraclizeAddrResolverI","value":"OAR"},"id":2410,"name":"Identifier","src":"13058:3:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract OraclizeAddrResolverI","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":1665,"type":"type(contract OraclizeAddrResolverI)","value":"OraclizeAddrResolverI"},"id":2411,"name":"Identifier","src":"13064:21:5"},{"attributes":{"argumentTypes":null,"hexvalue":"307836663438354338424636666334336541323132453933424246386365303436433766316362343735","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"address","value":"0x6f485C8BF6fc43eA212E93BBF8ce046C7f1cb475"},"id":2412,"name":"Literal","src":"13086:42:5"}],"id":2413,"name":"FunctionCall","src":"13064:65:5"}],"id":2414,"name":"Assignment","src":"13058:71:5"}],"id":2415,"name":"ExpressionStatement","src":"13058:71:5"},{"attributes":{"functionReturnParameters":2328},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":2416,"name":"Literal","src":"13150:4:5"}],"id":2417,"name":"Return","src":"13143:11:5"}],"id":2418,"name":"Block","src":"13026:139:5"}],"id":2419,"name":"IfStatement","src":"12964:201:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":5581,"type":"function (address) view returns (uint256)","value":"getCodeSize"},"id":2420,"name":"Identifier","src":"13178:11:5"},{"attributes":{"argumentTypes":null,"hexvalue":"307832306531324131463835394233466561453546623241304133324331384635613635353535624246","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"address","value":"0x20e12A1F859B3FeaE5Fb2A0A32C18F5a65555bBF"},"id":2421,"name":"Literal","src":"13190:42:5"}],"id":2422,"name":"FunctionCall","src":"13178:55:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2423,"name":"Literal","src":"13234:1:5"}],"id":2424,"name":"BinaryOperation","src":"13178:57:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"contract OraclizeAddrResolverI"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2255,"type":"contract OraclizeAddrResolverI","value":"OAR"},"id":2425,"name":"Identifier","src":"13267:3:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract OraclizeAddrResolverI","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":1665,"type":"type(contract OraclizeAddrResolverI)","value":"OraclizeAddrResolverI"},"id":2426,"name":"Identifier","src":"13273:21:5"},{"attributes":{"argumentTypes":null,"hexvalue":"307832306531324131463835394233466561453546623241304133324331384635613635353535624246","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"address","value":"0x20e12A1F859B3FeaE5Fb2A0A32C18F5a65555bBF"},"id":2427,"name":"Literal","src":"13295:42:5"}],"id":2428,"name":"FunctionCall","src":"13273:65:5"}],"id":2429,"name":"Assignment","src":"13267:71:5"}],"id":2430,"name":"ExpressionStatement","src":"13267:71:5"},{"attributes":{"functionReturnParameters":2328},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":2431,"name":"Literal","src":"13359:4:5"}],"id":2432,"name":"Return","src":"13352:11:5"}],"id":2433,"name":"Block","src":"13236:138:5"}],"id":2434,"name":"IfStatement","src":"13174:200:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":5581,"type":"function (address) view returns (uint256)","value":"getCodeSize"},"id":2435,"name":"Identifier","src":"13387:11:5"},{"attributes":{"argumentTypes":null,"hexvalue":"307835316566614634633842334339416642443561423946346262433832373834416236656638664141","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"address","value":"0x51efaF4c8B3C9AfBD5aB9F4bbC82784Ab6ef8fAA"},"id":2436,"name":"Literal","src":"13399:42:5"}],"id":2437,"name":"FunctionCall","src":"13387:55:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2438,"name":"Literal","src":"13443:1:5"}],"id":2439,"name":"BinaryOperation","src":"13387:57:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"contract OraclizeAddrResolverI"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2255,"type":"contract OraclizeAddrResolverI","value":"OAR"},"id":2440,"name":"Identifier","src":"13478:3:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract OraclizeAddrResolverI","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":1665,"type":"type(contract OraclizeAddrResolverI)","value":"OraclizeAddrResolverI"},"id":2441,"name":"Identifier","src":"13484:21:5"},{"attributes":{"argumentTypes":null,"hexvalue":"307835316566614634633842334339416642443561423946346262433832373834416236656638664141","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"address","value":"0x51efaF4c8B3C9AfBD5aB9F4bbC82784Ab6ef8fAA"},"id":2442,"name":"Literal","src":"13506:42:5"}],"id":2443,"name":"FunctionCall","src":"13484:65:5"}],"id":2444,"name":"Assignment","src":"13478:71:5"}],"id":2445,"name":"ExpressionStatement","src":"13478:71:5"},{"attributes":{"functionReturnParameters":2328},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":2446,"name":"Literal","src":"13570:4:5"}],"id":2447,"name":"Return","src":"13563:11:5"}],"id":2448,"name":"Block","src":"13445:140:5"}],"id":2449,"name":"IfStatement","src":"13383:202:5"},{"attributes":{"functionReturnParameters":2328},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"66616c7365","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"false"},"id":2450,"name":"Literal","src":"13601:5:5"}],"id":2451,"name":"Return","src":"13594:12:5"}],"id":2452,"name":"Block","src":"11917:1696:5"}],"id":2453,"name":"FunctionDefinition","src":"11864:1749:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"__callback","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"myid","scope":2470,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":2454,"name":"ElementaryTypeName","src":"13639:7:5"}],"id":2455,"name":"VariableDeclaration","src":"13639:12:5"},{"attributes":{"constant":false,"name":"result","scope":2470,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":2456,"name":"ElementaryTypeName","src":"13653:6:5"}],"id":2457,"name":"VariableDeclaration","src":"13653:13:5"}],"id":2458,"name":"ParameterList","src":"13638:29:5"},{"attributes":{"parameters":[null]},"children":[],"id":2459,"name":"ParameterList","src":"13675:0:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory","typeString":"bytes memory"}],"overloadedDeclarations":[2470,2493],"referencedDeclaration":2493,"type":"function (bytes32,string memory,bytes memory)","value":"__callback"},"id":2460,"name":"Identifier","src":"13685:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2455,"type":"bytes32","value":"myid"},"id":2461,"name":"Identifier","src":"13696:4:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2457,"type":"string memory","value":"result"},"id":2462,"name":"Identifier","src":"13702:6:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (bytes memory)"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":2463,"name":"ElementaryTypeName","src":"13714:5:5"}],"id":2464,"name":"NewExpression","src":"13710:9:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2465,"name":"Literal","src":"13720:1:5"}],"id":2466,"name":"FunctionCall","src":"13710:12:5"}],"id":2467,"name":"FunctionCall","src":"13685:38:5"}],"id":2468,"name":"ExpressionStatement","src":"13685:38:5"}],"id":2469,"name":"Block","src":"13675:55:5"}],"id":2470,"name":"FunctionDefinition","src":"13619:111:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"__callback","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"myid","scope":2493,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":2471,"name":"ElementaryTypeName","src":"13755:7:5"}],"id":2472,"name":"VariableDeclaration","src":"13755:12:5"},{"attributes":{"constant":false,"name":"result","scope":2493,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":2473,"name":"ElementaryTypeName","src":"13769:6:5"}],"id":2474,"name":"VariableDeclaration","src":"13769:13:5"},{"attributes":{"constant":false,"name":"proof","scope":2493,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":2475,"name":"ElementaryTypeName","src":"13784:5:5"}],"id":2476,"name":"VariableDeclaration","src":"13784:11:5"}],"id":2477,"name":"ParameterList","src":"13754:42:5"},{"attributes":{"parameters":[null]},"children":[],"id":2478,"name":"ParameterList","src":"13804:0:5"},{"children":[{"attributes":{"expression":null,"functionReturnParameters":2478},"id":2479,"name":"Return","src":"13812:7:5"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2472,"type":"bytes32","value":"myid"},"id":2480,"name":"Identifier","src":"14024:4:5"}],"id":2481,"name":"ExpressionStatement","src":"14024:4:5"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2474,"type":"string memory","value":"result"},"id":2482,"name":"Identifier","src":"14030:6:5"}],"id":2483,"name":"ExpressionStatement","src":"14030:6:5"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2476,"type":"bytes memory","value":"proof"},"id":2484,"name":"Identifier","src":"14038:5:5"}],"id":2485,"name":"ExpressionStatement","src":"14038:5:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"contract OraclizeI"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2257,"type":"contract OraclizeI","value":"oraclize"},"id":2486,"name":"Identifier","src":"14080:8:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract OraclizeI","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"overloadedDeclarations":[null],"referencedDeclaration":1659,"type":"type(contract OraclizeI)","value":"OraclizeI"},"id":2487,"name":"Identifier","src":"14091:9:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2488,"name":"Literal","src":"14101:1:5"}],"id":2489,"name":"FunctionCall","src":"14091:12:5"}],"id":2490,"name":"Assignment","src":"14080:23:5"}],"id":2491,"name":"ExpressionStatement","src":"14080:23:5"}],"id":2492,"name":"Block","src":"13804:371:5"}],"id":2493,"name":"FunctionDefinition","src":"13735:440:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_getPrice","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"datasource","scope":2508,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":2494,"name":"ElementaryTypeName","src":"14208:6:5"}],"id":2495,"name":"VariableDeclaration","src":"14208:17:5"}],"id":2496,"name":"ParameterList","src":"14207:19:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":2508,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2499,"name":"ElementaryTypeName","src":"14257:4:5"}],"id":2500,"name":"VariableDeclaration","src":"14257:4:5"}],"id":2501,"name":"ParameterList","src":"14256:6:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":2497,"name":"Identifier","src":"14227:11:5"}],"id":2498,"name":"ModifierInvocation","src":"14227:11:5"},{"children":[{"attributes":{"functionReturnParameters":2501},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"getPrice","referencedDeclaration":1634,"type":"function (string memory) external returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2257,"type":"contract OraclizeI","value":"oraclize"},"id":2502,"name":"Identifier","src":"14279:8:5"}],"id":2503,"name":"MemberAccess","src":"14279:17:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2495,"type":"string memory","value":"datasource"},"id":2504,"name":"Identifier","src":"14297:10:5"}],"id":2505,"name":"FunctionCall","src":"14279:29:5"}],"id":2506,"name":"Return","src":"14272:36:5"}],"id":2507,"name":"Block","src":"14262:53:5"}],"id":2508,"name":"FunctionDefinition","src":"14181:134:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_getPrice","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"datasource","scope":2526,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":2509,"name":"ElementaryTypeName","src":"14348:6:5"}],"id":2510,"name":"VariableDeclaration","src":"14348:17:5"},{"attributes":{"constant":false,"name":"gaslimit","scope":2526,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2511,"name":"ElementaryTypeName","src":"14367:4:5"}],"id":2512,"name":"VariableDeclaration","src":"14367:13:5"}],"id":2513,"name":"ParameterList","src":"14347:34:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":2526,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2516,"name":"ElementaryTypeName","src":"14412:4:5"}],"id":2517,"name":"VariableDeclaration","src":"14412:4:5"}],"id":2518,"name":"ParameterList","src":"14411:6:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":2514,"name":"Identifier","src":"14382:11:5"}],"id":2515,"name":"ModifierInvocation","src":"14382:11:5"},{"children":[{"attributes":{"functionReturnParameters":2518},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"getPrice","referencedDeclaration":1643,"type":"function (string memory,uint256) external returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2257,"type":"contract OraclizeI","value":"oraclize"},"id":2519,"name":"Identifier","src":"14434:8:5"}],"id":2520,"name":"MemberAccess","src":"14434:17:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2510,"type":"string memory","value":"datasource"},"id":2521,"name":"Identifier","src":"14452:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2512,"type":"uint256","value":"gaslimit"},"id":2522,"name":"Identifier","src":"14464:8:5"}],"id":2523,"name":"FunctionCall","src":"14434:39:5"}],"id":2524,"name":"Return","src":"14427:46:5"}],"id":2525,"name":"Block","src":"14417:63:5"}],"id":2526,"name":"FunctionDefinition","src":"14321:159:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"datasource","scope":2566,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":2527,"name":"ElementaryTypeName","src":"14510:6:5"}],"id":2528,"name":"VariableDeclaration","src":"14510:17:5"},{"attributes":{"constant":false,"name":"arg","scope":2566,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":2529,"name":"ElementaryTypeName","src":"14529:6:5"}],"id":2530,"name":"VariableDeclaration","src":"14529:10:5"}],"id":2531,"name":"ParameterList","src":"14509:31:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":2566,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":2534,"name":"ElementaryTypeName","src":"14571:7:5"}],"id":2535,"name":"VariableDeclaration","src":"14571:10:5"}],"id":2536,"name":"ParameterList","src":"14570:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":2532,"name":"Identifier","src":"14541:11:5"}],"id":2533,"name":"ModifierInvocation","src":"14541:11:5"},{"children":[{"attributes":{"assignments":[2538]},"children":[{"attributes":{"constant":false,"name":"price","scope":2566,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2537,"name":"ElementaryTypeName","src":"14592:4:5"}],"id":2538,"name":"VariableDeclaration","src":"14592:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"getPrice","referencedDeclaration":1634,"type":"function (string memory) external returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2257,"type":"contract OraclizeI","value":"oraclize"},"id":2539,"name":"Identifier","src":"14605:8:5"}],"id":2540,"name":"MemberAccess","src":"14605:17:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2528,"type":"string memory","value":"datasource"},"id":2541,"name":"Identifier","src":"14623:10:5"}],"id":2542,"name":"FunctionCall","src":"14605:29:5"}],"id":2543,"name":"VariableDeclarationStatement","src":"14592:42:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2538,"type":"uint256","value":"price"},"id":2544,"name":"Identifier","src":"14648:5:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":"ether","token":"number","type":"int_const 1000000000000000000","value":"1"},"id":2545,"name":"Literal","src":"14656:7:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"gasprice","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":12070,"type":"tx","value":"tx"},"id":2546,"name":"Identifier","src":"14666:2:5"}],"id":2547,"name":"MemberAccess","src":"14666:11:5"},{"attributes":{"argumentTypes":null,"hexvalue":"323030303030","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 200000","value":"200000"},"id":2548,"name":"Literal","src":"14678:6:5"}],"id":2549,"name":"BinaryOperation","src":"14666:18:5"}],"id":2550,"name":"BinaryOperation","src":"14656:28:5"}],"id":2551,"name":"BinaryOperation","src":"14648:36:5"},{"attributes":{"functionReturnParameters":2536},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2552,"name":"Literal","src":"14693:1:5"}],"id":2553,"name":"Return","src":"14686:8:5"}],"id":2554,"name":"IfStatement","src":"14644:50:5"},{"attributes":{"functionReturnParameters":2536},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"function (uint256,string memory,string memory) payable external returns (bytes32)","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"value","referencedDeclaration":null,"type":"function (uint256) returns (function (uint256,string memory,string memory) payable external returns (bytes32))"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"query","referencedDeclaration":1562,"type":"function (uint256,string memory,string memory) payable external returns (bytes32)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2257,"type":"contract OraclizeI","value":"oraclize"},"id":2555,"name":"Identifier","src":"14738:8:5"}],"id":2556,"name":"MemberAccess","src":"14738:14:5"}],"id":2557,"name":"MemberAccess","src":"14738:20:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2538,"type":"uint256","value":"price"},"id":2558,"name":"Identifier","src":"14759:5:5"}],"id":2559,"name":"FunctionCall","src":"14738:27:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2560,"name":"Literal","src":"14766:1:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2528,"type":"string memory","value":"datasource"},"id":2561,"name":"Identifier","src":"14769:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2530,"type":"string memory","value":"arg"},"id":2562,"name":"Identifier","src":"14781:3:5"}],"id":2563,"name":"FunctionCall","src":"14738:47:5"}],"id":2564,"name":"Return","src":"14731:54:5"}],"id":2565,"name":"Block","src":"14582:210:5"}],"id":2566,"name":"FunctionDefinition","src":"14486:306:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"timestamp","scope":2608,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2567,"name":"ElementaryTypeName","src":"14821:4:5"}],"id":2568,"name":"VariableDeclaration","src":"14821:14:5"},{"attributes":{"constant":false,"name":"datasource","scope":2608,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":2569,"name":"ElementaryTypeName","src":"14837:6:5"}],"id":2570,"name":"VariableDeclaration","src":"14837:17:5"},{"attributes":{"constant":false,"name":"arg","scope":2608,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":2571,"name":"ElementaryTypeName","src":"14856:6:5"}],"id":2572,"name":"VariableDeclaration","src":"14856:10:5"}],"id":2573,"name":"ParameterList","src":"14820:47:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":2608,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":2576,"name":"ElementaryTypeName","src":"14898:7:5"}],"id":2577,"name":"VariableDeclaration","src":"14898:10:5"}],"id":2578,"name":"ParameterList","src":"14897:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":2574,"name":"Identifier","src":"14868:11:5"}],"id":2575,"name":"ModifierInvocation","src":"14868:11:5"},{"children":[{"attributes":{"assignments":[2580]},"children":[{"attributes":{"constant":false,"name":"price","scope":2608,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2579,"name":"ElementaryTypeName","src":"14919:4:5"}],"id":2580,"name":"VariableDeclaration","src":"14919:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"getPrice","referencedDeclaration":1634,"type":"function (string memory) external returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2257,"type":"contract OraclizeI","value":"oraclize"},"id":2581,"name":"Identifier","src":"14932:8:5"}],"id":2582,"name":"MemberAccess","src":"14932:17:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2570,"type":"string memory","value":"datasource"},"id":2583,"name":"Identifier","src":"14950:10:5"}],"id":2584,"name":"FunctionCall","src":"14932:29:5"}],"id":2585,"name":"VariableDeclarationStatement","src":"14919:42:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2580,"type":"uint256","value":"price"},"id":2586,"name":"Identifier","src":"14975:5:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":"ether","token":"number","type":"int_const 1000000000000000000","value":"1"},"id":2587,"name":"Literal","src":"14983:7:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"gasprice","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":12070,"type":"tx","value":"tx"},"id":2588,"name":"Identifier","src":"14993:2:5"}],"id":2589,"name":"MemberAccess","src":"14993:11:5"},{"attributes":{"argumentTypes":null,"hexvalue":"323030303030","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 200000","value":"200000"},"id":2590,"name":"Literal","src":"15005:6:5"}],"id":2591,"name":"BinaryOperation","src":"14993:18:5"}],"id":2592,"name":"BinaryOperation","src":"14983:28:5"}],"id":2593,"name":"BinaryOperation","src":"14975:36:5"},{"attributes":{"functionReturnParameters":2578},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2594,"name":"Literal","src":"15020:1:5"}],"id":2595,"name":"Return","src":"15013:8:5"}],"id":2596,"name":"IfStatement","src":"14971:50:5"},{"attributes":{"functionReturnParameters":2578},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"function (uint256,string memory,string memory) payable external returns (bytes32)","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"value","referencedDeclaration":null,"type":"function (uint256) returns (function (uint256,string memory,string memory) payable external returns (bytes32))"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"query","referencedDeclaration":1562,"type":"function (uint256,string memory,string memory) payable external returns (bytes32)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2257,"type":"contract OraclizeI","value":"oraclize"},"id":2597,"name":"Identifier","src":"15065:8:5"}],"id":2598,"name":"MemberAccess","src":"15065:14:5"}],"id":2599,"name":"MemberAccess","src":"15065:20:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2580,"type":"uint256","value":"price"},"id":2600,"name":"Identifier","src":"15086:5:5"}],"id":2601,"name":"FunctionCall","src":"15065:27:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2568,"type":"uint256","value":"timestamp"},"id":2602,"name":"Identifier","src":"15093:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2570,"type":"string memory","value":"datasource"},"id":2603,"name":"Identifier","src":"15104:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2572,"type":"string memory","value":"arg"},"id":2604,"name":"Identifier","src":"15116:3:5"}],"id":2605,"name":"FunctionCall","src":"15065:55:5"}],"id":2606,"name":"Return","src":"15058:62:5"}],"id":2607,"name":"Block","src":"14909:218:5"}],"id":2608,"name":"FunctionDefinition","src":"14797:330:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"timestamp","scope":2654,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2609,"name":"ElementaryTypeName","src":"15156:4:5"}],"id":2610,"name":"VariableDeclaration","src":"15156:14:5"},{"attributes":{"constant":false,"name":"datasource","scope":2654,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":2611,"name":"ElementaryTypeName","src":"15172:6:5"}],"id":2612,"name":"VariableDeclaration","src":"15172:17:5"},{"attributes":{"constant":false,"name":"arg","scope":2654,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":2613,"name":"ElementaryTypeName","src":"15191:6:5"}],"id":2614,"name":"VariableDeclaration","src":"15191:10:5"},{"attributes":{"constant":false,"name":"gaslimit","scope":2654,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2615,"name":"ElementaryTypeName","src":"15203:4:5"}],"id":2616,"name":"VariableDeclaration","src":"15203:13:5"}],"id":2617,"name":"ParameterList","src":"15155:62:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":2654,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":2620,"name":"ElementaryTypeName","src":"15248:7:5"}],"id":2621,"name":"VariableDeclaration","src":"15248:10:5"}],"id":2622,"name":"ParameterList","src":"15247:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":2618,"name":"Identifier","src":"15218:11:5"}],"id":2619,"name":"ModifierInvocation","src":"15218:11:5"},{"children":[{"attributes":{"assignments":[2624]},"children":[{"attributes":{"constant":false,"name":"price","scope":2654,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2623,"name":"ElementaryTypeName","src":"15269:4:5"}],"id":2624,"name":"VariableDeclaration","src":"15269:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"getPrice","referencedDeclaration":1643,"type":"function (string memory,uint256) external returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2257,"type":"contract OraclizeI","value":"oraclize"},"id":2625,"name":"Identifier","src":"15282:8:5"}],"id":2626,"name":"MemberAccess","src":"15282:17:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2612,"type":"string memory","value":"datasource"},"id":2627,"name":"Identifier","src":"15300:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2616,"type":"uint256","value":"gaslimit"},"id":2628,"name":"Identifier","src":"15312:8:5"}],"id":2629,"name":"FunctionCall","src":"15282:39:5"}],"id":2630,"name":"VariableDeclarationStatement","src":"15269:52:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2624,"type":"uint256","value":"price"},"id":2631,"name":"Identifier","src":"15335:5:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":"ether","token":"number","type":"int_const 1000000000000000000","value":"1"},"id":2632,"name":"Literal","src":"15343:7:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"gasprice","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":12070,"type":"tx","value":"tx"},"id":2633,"name":"Identifier","src":"15353:2:5"}],"id":2634,"name":"MemberAccess","src":"15353:11:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2616,"type":"uint256","value":"gaslimit"},"id":2635,"name":"Identifier","src":"15365:8:5"}],"id":2636,"name":"BinaryOperation","src":"15353:20:5"}],"id":2637,"name":"BinaryOperation","src":"15343:30:5"}],"id":2638,"name":"BinaryOperation","src":"15335:38:5"},{"attributes":{"functionReturnParameters":2622},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2639,"name":"Literal","src":"15382:1:5"}],"id":2640,"name":"Return","src":"15375:8:5"}],"id":2641,"name":"IfStatement","src":"15331:52:5"},{"attributes":{"functionReturnParameters":2622},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"function (uint256,string memory,string memory,uint256) payable external returns (bytes32)","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"value","referencedDeclaration":null,"type":"function (uint256) returns (function (uint256,string memory,string memory,uint256) payable external returns (bytes32))"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"query_withGasLimit","referencedDeclaration":1575,"type":"function (uint256,string memory,string memory,uint256) payable external returns (bytes32)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2257,"type":"contract OraclizeI","value":"oraclize"},"id":2642,"name":"Identifier","src":"15427:8:5"}],"id":2643,"name":"MemberAccess","src":"15427:27:5"}],"id":2644,"name":"MemberAccess","src":"15427:33:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2624,"type":"uint256","value":"price"},"id":2645,"name":"Identifier","src":"15461:5:5"}],"id":2646,"name":"FunctionCall","src":"15427:40:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2610,"type":"uint256","value":"timestamp"},"id":2647,"name":"Identifier","src":"15468:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2612,"type":"string memory","value":"datasource"},"id":2648,"name":"Identifier","src":"15479:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2614,"type":"string memory","value":"arg"},"id":2649,"name":"Identifier","src":"15491:3:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2616,"type":"uint256","value":"gaslimit"},"id":2650,"name":"Identifier","src":"15496:8:5"}],"id":2651,"name":"FunctionCall","src":"15427:78:5"}],"id":2652,"name":"Return","src":"15420:85:5"}],"id":2653,"name":"Block","src":"15259:253:5"}],"id":2654,"name":"FunctionDefinition","src":"15132:380:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"datasource","scope":2698,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":2655,"name":"ElementaryTypeName","src":"15541:6:5"}],"id":2656,"name":"VariableDeclaration","src":"15541:17:5"},{"attributes":{"constant":false,"name":"arg","scope":2698,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":2657,"name":"ElementaryTypeName","src":"15560:6:5"}],"id":2658,"name":"VariableDeclaration","src":"15560:10:5"},{"attributes":{"constant":false,"name":"gaslimit","scope":2698,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2659,"name":"ElementaryTypeName","src":"15572:4:5"}],"id":2660,"name":"VariableDeclaration","src":"15572:13:5"}],"id":2661,"name":"ParameterList","src":"15540:46:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":2698,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":2664,"name":"ElementaryTypeName","src":"15617:7:5"}],"id":2665,"name":"VariableDeclaration","src":"15617:10:5"}],"id":2666,"name":"ParameterList","src":"15616:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":2662,"name":"Identifier","src":"15587:11:5"}],"id":2663,"name":"ModifierInvocation","src":"15587:11:5"},{"children":[{"attributes":{"assignments":[2668]},"children":[{"attributes":{"constant":false,"name":"price","scope":2698,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2667,"name":"ElementaryTypeName","src":"15638:4:5"}],"id":2668,"name":"VariableDeclaration","src":"15638:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"getPrice","referencedDeclaration":1643,"type":"function (string memory,uint256) external returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2257,"type":"contract OraclizeI","value":"oraclize"},"id":2669,"name":"Identifier","src":"15651:8:5"}],"id":2670,"name":"MemberAccess","src":"15651:17:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2656,"type":"string memory","value":"datasource"},"id":2671,"name":"Identifier","src":"15669:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2660,"type":"uint256","value":"gaslimit"},"id":2672,"name":"Identifier","src":"15681:8:5"}],"id":2673,"name":"FunctionCall","src":"15651:39:5"}],"id":2674,"name":"VariableDeclarationStatement","src":"15638:52:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2668,"type":"uint256","value":"price"},"id":2675,"name":"Identifier","src":"15704:5:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":"ether","token":"number","type":"int_const 1000000000000000000","value":"1"},"id":2676,"name":"Literal","src":"15712:7:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"gasprice","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":12070,"type":"tx","value":"tx"},"id":2677,"name":"Identifier","src":"15722:2:5"}],"id":2678,"name":"MemberAccess","src":"15722:11:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2660,"type":"uint256","value":"gaslimit"},"id":2679,"name":"Identifier","src":"15734:8:5"}],"id":2680,"name":"BinaryOperation","src":"15722:20:5"}],"id":2681,"name":"BinaryOperation","src":"15712:30:5"}],"id":2682,"name":"BinaryOperation","src":"15704:38:5"},{"attributes":{"functionReturnParameters":2666},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2683,"name":"Literal","src":"15751:1:5"}],"id":2684,"name":"Return","src":"15744:8:5"}],"id":2685,"name":"IfStatement","src":"15700:52:5"},{"attributes":{"functionReturnParameters":2666},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"function (uint256,string memory,string memory,uint256) payable external returns (bytes32)","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"value","referencedDeclaration":null,"type":"function (uint256) returns (function (uint256,string memory,string memory,uint256) payable external returns (bytes32))"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"query_withGasLimit","referencedDeclaration":1575,"type":"function (uint256,string memory,string memory,uint256) payable external returns (bytes32)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2257,"type":"contract OraclizeI","value":"oraclize"},"id":2686,"name":"Identifier","src":"15796:8:5"}],"id":2687,"name":"MemberAccess","src":"15796:27:5"}],"id":2688,"name":"MemberAccess","src":"15796:33:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2668,"type":"uint256","value":"price"},"id":2689,"name":"Identifier","src":"15830:5:5"}],"id":2690,"name":"FunctionCall","src":"15796:40:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2691,"name":"Literal","src":"15837:1:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2656,"type":"string memory","value":"datasource"},"id":2692,"name":"Identifier","src":"15840:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2658,"type":"string memory","value":"arg"},"id":2693,"name":"Identifier","src":"15852:3:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2660,"type":"uint256","value":"gaslimit"},"id":2694,"name":"Identifier","src":"15857:8:5"}],"id":2695,"name":"FunctionCall","src":"15796:70:5"}],"id":2696,"name":"Return","src":"15789:77:5"}],"id":2697,"name":"Block","src":"15628:245:5"}],"id":2698,"name":"FunctionDefinition","src":"15517:356:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"datasource","scope":2741,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":2699,"name":"ElementaryTypeName","src":"15902:6:5"}],"id":2700,"name":"VariableDeclaration","src":"15902:17:5"},{"attributes":{"constant":false,"name":"arg1","scope":2741,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":2701,"name":"ElementaryTypeName","src":"15921:6:5"}],"id":2702,"name":"VariableDeclaration","src":"15921:11:5"},{"attributes":{"constant":false,"name":"arg2","scope":2741,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":2703,"name":"ElementaryTypeName","src":"15934:6:5"}],"id":2704,"name":"VariableDeclaration","src":"15934:11:5"}],"id":2705,"name":"ParameterList","src":"15901:45:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":2741,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":2708,"name":"ElementaryTypeName","src":"15977:7:5"}],"id":2709,"name":"VariableDeclaration","src":"15977:10:5"}],"id":2710,"name":"ParameterList","src":"15976:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":2706,"name":"Identifier","src":"15947:11:5"}],"id":2707,"name":"ModifierInvocation","src":"15947:11:5"},{"children":[{"attributes":{"assignments":[2712]},"children":[{"attributes":{"constant":false,"name":"price","scope":2741,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2711,"name":"ElementaryTypeName","src":"15998:4:5"}],"id":2712,"name":"VariableDeclaration","src":"15998:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"getPrice","referencedDeclaration":1634,"type":"function (string memory) external returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2257,"type":"contract OraclizeI","value":"oraclize"},"id":2713,"name":"Identifier","src":"16011:8:5"}],"id":2714,"name":"MemberAccess","src":"16011:17:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2700,"type":"string memory","value":"datasource"},"id":2715,"name":"Identifier","src":"16029:10:5"}],"id":2716,"name":"FunctionCall","src":"16011:29:5"}],"id":2717,"name":"VariableDeclarationStatement","src":"15998:42:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2712,"type":"uint256","value":"price"},"id":2718,"name":"Identifier","src":"16054:5:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":"ether","token":"number","type":"int_const 1000000000000000000","value":"1"},"id":2719,"name":"Literal","src":"16062:7:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"gasprice","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":12070,"type":"tx","value":"tx"},"id":2720,"name":"Identifier","src":"16072:2:5"}],"id":2721,"name":"MemberAccess","src":"16072:11:5"},{"attributes":{"argumentTypes":null,"hexvalue":"323030303030","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 200000","value":"200000"},"id":2722,"name":"Literal","src":"16084:6:5"}],"id":2723,"name":"BinaryOperation","src":"16072:18:5"}],"id":2724,"name":"BinaryOperation","src":"16062:28:5"}],"id":2725,"name":"BinaryOperation","src":"16054:36:5"},{"attributes":{"functionReturnParameters":2710},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2726,"name":"Literal","src":"16099:1:5"}],"id":2727,"name":"Return","src":"16092:8:5"}],"id":2728,"name":"IfStatement","src":"16050:50:5"},{"attributes":{"functionReturnParameters":2710},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"function (uint256,string memory,string memory,string memory) payable external returns (bytes32)","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"value","referencedDeclaration":null,"type":"function (uint256) returns (function (uint256,string memory,string memory,string memory) payable external returns (bytes32))"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"query2","referencedDeclaration":1588,"type":"function (uint256,string memory,string memory,string memory) payable external returns (bytes32)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2257,"type":"contract OraclizeI","value":"oraclize"},"id":2729,"name":"Identifier","src":"16144:8:5"}],"id":2730,"name":"MemberAccess","src":"16144:15:5"}],"id":2731,"name":"MemberAccess","src":"16144:21:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2712,"type":"uint256","value":"price"},"id":2732,"name":"Identifier","src":"16166:5:5"}],"id":2733,"name":"FunctionCall","src":"16144:28:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2734,"name":"Literal","src":"16173:1:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2700,"type":"string memory","value":"datasource"},"id":2735,"name":"Identifier","src":"16176:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2702,"type":"string memory","value":"arg1"},"id":2736,"name":"Identifier","src":"16188:4:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2704,"type":"string memory","value":"arg2"},"id":2737,"name":"Identifier","src":"16194:4:5"}],"id":2738,"name":"FunctionCall","src":"16144:55:5"}],"id":2739,"name":"Return","src":"16137:62:5"}],"id":2740,"name":"Block","src":"15988:218:5"}],"id":2741,"name":"FunctionDefinition","src":"15878:328:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"timestamp","scope":2786,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2742,"name":"ElementaryTypeName","src":"16235:4:5"}],"id":2743,"name":"VariableDeclaration","src":"16235:14:5"},{"attributes":{"constant":false,"name":"datasource","scope":2786,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":2744,"name":"ElementaryTypeName","src":"16251:6:5"}],"id":2745,"name":"VariableDeclaration","src":"16251:17:5"},{"attributes":{"constant":false,"name":"arg1","scope":2786,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":2746,"name":"ElementaryTypeName","src":"16270:6:5"}],"id":2747,"name":"VariableDeclaration","src":"16270:11:5"},{"attributes":{"constant":false,"name":"arg2","scope":2786,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":2748,"name":"ElementaryTypeName","src":"16283:6:5"}],"id":2749,"name":"VariableDeclaration","src":"16283:11:5"}],"id":2750,"name":"ParameterList","src":"16234:61:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":2786,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":2753,"name":"ElementaryTypeName","src":"16326:7:5"}],"id":2754,"name":"VariableDeclaration","src":"16326:10:5"}],"id":2755,"name":"ParameterList","src":"16325:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":2751,"name":"Identifier","src":"16296:11:5"}],"id":2752,"name":"ModifierInvocation","src":"16296:11:5"},{"children":[{"attributes":{"assignments":[2757]},"children":[{"attributes":{"constant":false,"name":"price","scope":2786,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2756,"name":"ElementaryTypeName","src":"16347:4:5"}],"id":2757,"name":"VariableDeclaration","src":"16347:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"getPrice","referencedDeclaration":1634,"type":"function (string memory) external returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2257,"type":"contract OraclizeI","value":"oraclize"},"id":2758,"name":"Identifier","src":"16360:8:5"}],"id":2759,"name":"MemberAccess","src":"16360:17:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2745,"type":"string memory","value":"datasource"},"id":2760,"name":"Identifier","src":"16378:10:5"}],"id":2761,"name":"FunctionCall","src":"16360:29:5"}],"id":2762,"name":"VariableDeclarationStatement","src":"16347:42:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2757,"type":"uint256","value":"price"},"id":2763,"name":"Identifier","src":"16403:5:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":"ether","token":"number","type":"int_const 1000000000000000000","value":"1"},"id":2764,"name":"Literal","src":"16411:7:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"gasprice","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":12070,"type":"tx","value":"tx"},"id":2765,"name":"Identifier","src":"16421:2:5"}],"id":2766,"name":"MemberAccess","src":"16421:11:5"},{"attributes":{"argumentTypes":null,"hexvalue":"323030303030","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 200000","value":"200000"},"id":2767,"name":"Literal","src":"16433:6:5"}],"id":2768,"name":"BinaryOperation","src":"16421:18:5"}],"id":2769,"name":"BinaryOperation","src":"16411:28:5"}],"id":2770,"name":"BinaryOperation","src":"16403:36:5"},{"attributes":{"functionReturnParameters":2755},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2771,"name":"Literal","src":"16448:1:5"}],"id":2772,"name":"Return","src":"16441:8:5"}],"id":2773,"name":"IfStatement","src":"16399:50:5"},{"attributes":{"functionReturnParameters":2755},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"function (uint256,string memory,string memory,string memory) payable external returns (bytes32)","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"value","referencedDeclaration":null,"type":"function (uint256) returns (function (uint256,string memory,string memory,string memory) payable external returns (bytes32))"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"query2","referencedDeclaration":1588,"type":"function (uint256,string memory,string memory,string memory) payable external returns (bytes32)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2257,"type":"contract OraclizeI","value":"oraclize"},"id":2774,"name":"Identifier","src":"16493:8:5"}],"id":2775,"name":"MemberAccess","src":"16493:15:5"}],"id":2776,"name":"MemberAccess","src":"16493:21:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2757,"type":"uint256","value":"price"},"id":2777,"name":"Identifier","src":"16515:5:5"}],"id":2778,"name":"FunctionCall","src":"16493:28:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2743,"type":"uint256","value":"timestamp"},"id":2779,"name":"Identifier","src":"16522:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2745,"type":"string memory","value":"datasource"},"id":2780,"name":"Identifier","src":"16533:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2747,"type":"string memory","value":"arg1"},"id":2781,"name":"Identifier","src":"16545:4:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2749,"type":"string memory","value":"arg2"},"id":2782,"name":"Identifier","src":"16551:4:5"}],"id":2783,"name":"FunctionCall","src":"16493:63:5"}],"id":2784,"name":"Return","src":"16486:70:5"}],"id":2785,"name":"Block","src":"16337:226:5"}],"id":2786,"name":"FunctionDefinition","src":"16211:352:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"timestamp","scope":2835,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2787,"name":"ElementaryTypeName","src":"16592:4:5"}],"id":2788,"name":"VariableDeclaration","src":"16592:14:5"},{"attributes":{"constant":false,"name":"datasource","scope":2835,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":2789,"name":"ElementaryTypeName","src":"16608:6:5"}],"id":2790,"name":"VariableDeclaration","src":"16608:17:5"},{"attributes":{"constant":false,"name":"arg1","scope":2835,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":2791,"name":"ElementaryTypeName","src":"16627:6:5"}],"id":2792,"name":"VariableDeclaration","src":"16627:11:5"},{"attributes":{"constant":false,"name":"arg2","scope":2835,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":2793,"name":"ElementaryTypeName","src":"16640:6:5"}],"id":2794,"name":"VariableDeclaration","src":"16640:11:5"},{"attributes":{"constant":false,"name":"gaslimit","scope":2835,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2795,"name":"ElementaryTypeName","src":"16653:4:5"}],"id":2796,"name":"VariableDeclaration","src":"16653:13:5"}],"id":2797,"name":"ParameterList","src":"16591:76:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":2835,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":2800,"name":"ElementaryTypeName","src":"16698:7:5"}],"id":2801,"name":"VariableDeclaration","src":"16698:10:5"}],"id":2802,"name":"ParameterList","src":"16697:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":2798,"name":"Identifier","src":"16668:11:5"}],"id":2799,"name":"ModifierInvocation","src":"16668:11:5"},{"children":[{"attributes":{"assignments":[2804]},"children":[{"attributes":{"constant":false,"name":"price","scope":2835,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2803,"name":"ElementaryTypeName","src":"16719:4:5"}],"id":2804,"name":"VariableDeclaration","src":"16719:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"getPrice","referencedDeclaration":1643,"type":"function (string memory,uint256) external returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2257,"type":"contract OraclizeI","value":"oraclize"},"id":2805,"name":"Identifier","src":"16732:8:5"}],"id":2806,"name":"MemberAccess","src":"16732:17:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2790,"type":"string memory","value":"datasource"},"id":2807,"name":"Identifier","src":"16750:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2796,"type":"uint256","value":"gaslimit"},"id":2808,"name":"Identifier","src":"16762:8:5"}],"id":2809,"name":"FunctionCall","src":"16732:39:5"}],"id":2810,"name":"VariableDeclarationStatement","src":"16719:52:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2804,"type":"uint256","value":"price"},"id":2811,"name":"Identifier","src":"16785:5:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":"ether","token":"number","type":"int_const 1000000000000000000","value":"1"},"id":2812,"name":"Literal","src":"16793:7:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"gasprice","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":12070,"type":"tx","value":"tx"},"id":2813,"name":"Identifier","src":"16803:2:5"}],"id":2814,"name":"MemberAccess","src":"16803:11:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2796,"type":"uint256","value":"gaslimit"},"id":2815,"name":"Identifier","src":"16815:8:5"}],"id":2816,"name":"BinaryOperation","src":"16803:20:5"}],"id":2817,"name":"BinaryOperation","src":"16793:30:5"}],"id":2818,"name":"BinaryOperation","src":"16785:38:5"},{"attributes":{"functionReturnParameters":2802},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2819,"name":"Literal","src":"16832:1:5"}],"id":2820,"name":"Return","src":"16825:8:5"}],"id":2821,"name":"IfStatement","src":"16781:52:5"},{"attributes":{"functionReturnParameters":2802},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"function (uint256,string memory,string memory,string memory,uint256) payable external returns (bytes32)","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"value","referencedDeclaration":null,"type":"function (uint256) returns (function (uint256,string memory,string memory,string memory,uint256) payable external returns (bytes32))"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"query2_withGasLimit","referencedDeclaration":1603,"type":"function (uint256,string memory,string memory,string memory,uint256) payable external returns (bytes32)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2257,"type":"contract OraclizeI","value":"oraclize"},"id":2822,"name":"Identifier","src":"16877:8:5"}],"id":2823,"name":"MemberAccess","src":"16877:28:5"}],"id":2824,"name":"MemberAccess","src":"16877:34:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2804,"type":"uint256","value":"price"},"id":2825,"name":"Identifier","src":"16912:5:5"}],"id":2826,"name":"FunctionCall","src":"16877:41:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2788,"type":"uint256","value":"timestamp"},"id":2827,"name":"Identifier","src":"16919:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2790,"type":"string memory","value":"datasource"},"id":2828,"name":"Identifier","src":"16930:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2792,"type":"string memory","value":"arg1"},"id":2829,"name":"Identifier","src":"16942:4:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2794,"type":"string memory","value":"arg2"},"id":2830,"name":"Identifier","src":"16948:4:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2796,"type":"uint256","value":"gaslimit"},"id":2831,"name":"Identifier","src":"16954:8:5"}],"id":2832,"name":"FunctionCall","src":"16877:86:5"}],"id":2833,"name":"Return","src":"16870:93:5"}],"id":2834,"name":"Block","src":"16709:261:5"}],"id":2835,"name":"FunctionDefinition","src":"16568:402:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"datasource","scope":2882,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":2836,"name":"ElementaryTypeName","src":"16999:6:5"}],"id":2837,"name":"VariableDeclaration","src":"16999:17:5"},{"attributes":{"constant":false,"name":"arg1","scope":2882,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":2838,"name":"ElementaryTypeName","src":"17018:6:5"}],"id":2839,"name":"VariableDeclaration","src":"17018:11:5"},{"attributes":{"constant":false,"name":"arg2","scope":2882,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":2840,"name":"ElementaryTypeName","src":"17031:6:5"}],"id":2841,"name":"VariableDeclaration","src":"17031:11:5"},{"attributes":{"constant":false,"name":"gaslimit","scope":2882,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2842,"name":"ElementaryTypeName","src":"17044:4:5"}],"id":2843,"name":"VariableDeclaration","src":"17044:13:5"}],"id":2844,"name":"ParameterList","src":"16998:60:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":2882,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":2847,"name":"ElementaryTypeName","src":"17089:7:5"}],"id":2848,"name":"VariableDeclaration","src":"17089:10:5"}],"id":2849,"name":"ParameterList","src":"17088:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":2845,"name":"Identifier","src":"17059:11:5"}],"id":2846,"name":"ModifierInvocation","src":"17059:11:5"},{"children":[{"attributes":{"assignments":[2851]},"children":[{"attributes":{"constant":false,"name":"price","scope":2882,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2850,"name":"ElementaryTypeName","src":"17110:4:5"}],"id":2851,"name":"VariableDeclaration","src":"17110:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"getPrice","referencedDeclaration":1643,"type":"function (string memory,uint256) external returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2257,"type":"contract OraclizeI","value":"oraclize"},"id":2852,"name":"Identifier","src":"17123:8:5"}],"id":2853,"name":"MemberAccess","src":"17123:17:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2837,"type":"string memory","value":"datasource"},"id":2854,"name":"Identifier","src":"17141:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2843,"type":"uint256","value":"gaslimit"},"id":2855,"name":"Identifier","src":"17153:8:5"}],"id":2856,"name":"FunctionCall","src":"17123:39:5"}],"id":2857,"name":"VariableDeclarationStatement","src":"17110:52:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2851,"type":"uint256","value":"price"},"id":2858,"name":"Identifier","src":"17176:5:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":"ether","token":"number","type":"int_const 1000000000000000000","value":"1"},"id":2859,"name":"Literal","src":"17184:7:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"gasprice","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":12070,"type":"tx","value":"tx"},"id":2860,"name":"Identifier","src":"17194:2:5"}],"id":2861,"name":"MemberAccess","src":"17194:11:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2843,"type":"uint256","value":"gaslimit"},"id":2862,"name":"Identifier","src":"17206:8:5"}],"id":2863,"name":"BinaryOperation","src":"17194:20:5"}],"id":2864,"name":"BinaryOperation","src":"17184:30:5"}],"id":2865,"name":"BinaryOperation","src":"17176:38:5"},{"attributes":{"functionReturnParameters":2849},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2866,"name":"Literal","src":"17223:1:5"}],"id":2867,"name":"Return","src":"17216:8:5"}],"id":2868,"name":"IfStatement","src":"17172:52:5"},{"attributes":{"functionReturnParameters":2849},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"function (uint256,string memory,string memory,string memory,uint256) payable external returns (bytes32)","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"value","referencedDeclaration":null,"type":"function (uint256) returns (function (uint256,string memory,string memory,string memory,uint256) payable external returns (bytes32))"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"query2_withGasLimit","referencedDeclaration":1603,"type":"function (uint256,string memory,string memory,string memory,uint256) payable external returns (bytes32)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2257,"type":"contract OraclizeI","value":"oraclize"},"id":2869,"name":"Identifier","src":"17268:8:5"}],"id":2870,"name":"MemberAccess","src":"17268:28:5"}],"id":2871,"name":"MemberAccess","src":"17268:34:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2851,"type":"uint256","value":"price"},"id":2872,"name":"Identifier","src":"17303:5:5"}],"id":2873,"name":"FunctionCall","src":"17268:41:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2874,"name":"Literal","src":"17310:1:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2837,"type":"string memory","value":"datasource"},"id":2875,"name":"Identifier","src":"17313:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2839,"type":"string memory","value":"arg1"},"id":2876,"name":"Identifier","src":"17325:4:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2841,"type":"string memory","value":"arg2"},"id":2877,"name":"Identifier","src":"17331:4:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2843,"type":"uint256","value":"gaslimit"},"id":2878,"name":"Identifier","src":"17337:8:5"}],"id":2879,"name":"FunctionCall","src":"17268:78:5"}],"id":2880,"name":"Return","src":"17261:85:5"}],"id":2881,"name":"Block","src":"17100:253:5"}],"id":2882,"name":"FunctionDefinition","src":"16975:378:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"datasource","scope":2929,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":2883,"name":"ElementaryTypeName","src":"17382:6:5"}],"id":2884,"name":"VariableDeclaration","src":"17382:17:5"},{"attributes":{"constant":false,"name":"argN","scope":2929,"stateVariable":false,"storageLocation":"default","type":"string[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"string[]"},"children":[{"attributes":{"name":"string","type":"string"},"id":2885,"name":"ElementaryTypeName","src":"17401:6:5"}],"id":2886,"name":"ArrayTypeName","src":"17401:8:5"}],"id":2887,"name":"VariableDeclaration","src":"17401:13:5"}],"id":2888,"name":"ParameterList","src":"17381:34:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":2929,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":2891,"name":"ElementaryTypeName","src":"17446:7:5"}],"id":2892,"name":"VariableDeclaration","src":"17446:10:5"}],"id":2893,"name":"ParameterList","src":"17445:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":2889,"name":"Identifier","src":"17416:11:5"}],"id":2890,"name":"ModifierInvocation","src":"17416:11:5"},{"children":[{"attributes":{"assignments":[2895]},"children":[{"attributes":{"constant":false,"name":"price","scope":2929,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2894,"name":"ElementaryTypeName","src":"17467:4:5"}],"id":2895,"name":"VariableDeclaration","src":"17467:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"getPrice","referencedDeclaration":1634,"type":"function (string memory) external returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2257,"type":"contract OraclizeI","value":"oraclize"},"id":2896,"name":"Identifier","src":"17480:8:5"}],"id":2897,"name":"MemberAccess","src":"17480:17:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2884,"type":"string memory","value":"datasource"},"id":2898,"name":"Identifier","src":"17498:10:5"}],"id":2899,"name":"FunctionCall","src":"17480:29:5"}],"id":2900,"name":"VariableDeclarationStatement","src":"17467:42:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2895,"type":"uint256","value":"price"},"id":2901,"name":"Identifier","src":"17523:5:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":"ether","token":"number","type":"int_const 1000000000000000000","value":"1"},"id":2902,"name":"Literal","src":"17531:7:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"gasprice","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":12070,"type":"tx","value":"tx"},"id":2903,"name":"Identifier","src":"17541:2:5"}],"id":2904,"name":"MemberAccess","src":"17541:11:5"},{"attributes":{"argumentTypes":null,"hexvalue":"323030303030","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 200000","value":"200000"},"id":2905,"name":"Literal","src":"17553:6:5"}],"id":2906,"name":"BinaryOperation","src":"17541:18:5"}],"id":2907,"name":"BinaryOperation","src":"17531:28:5"}],"id":2908,"name":"BinaryOperation","src":"17523:36:5"},{"attributes":{"functionReturnParameters":2893},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2909,"name":"Literal","src":"17568:1:5"}],"id":2910,"name":"Return","src":"17561:8:5"}],"id":2911,"name":"IfStatement","src":"17519:50:5"},{"attributes":{"assignments":[2913]},"children":[{"attributes":{"constant":false,"name":"args","scope":2929,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":2912,"name":"ElementaryTypeName","src":"17606:5:5"}],"id":2913,"name":"VariableDeclaration","src":"17606:17:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_array$_t_string_memory_$dyn_memory_ptr","typeString":"string memory[] memory"}],"overloadedDeclarations":[null],"referencedDeclaration":6444,"type":"function (string memory[] memory) pure returns (bytes memory)","value":"stra2cbor"},"id":2914,"name":"Identifier","src":"17626:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2887,"type":"string memory[] memory","value":"argN"},"id":2915,"name":"Identifier","src":"17636:4:5"}],"id":2916,"name":"FunctionCall","src":"17626:15:5"}],"id":2917,"name":"VariableDeclarationStatement","src":"17606:35:5"},{"attributes":{"functionReturnParameters":2893},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"function (uint256,string memory,bytes memory) payable external returns (bytes32)","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"value","referencedDeclaration":null,"type":"function (uint256) returns (function (uint256,string memory,bytes memory) payable external returns (bytes32))"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"queryN","referencedDeclaration":1614,"type":"function (uint256,string memory,bytes memory) payable external returns (bytes32)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2257,"type":"contract OraclizeI","value":"oraclize"},"id":2918,"name":"Identifier","src":"17658:8:5"}],"id":2919,"name":"MemberAccess","src":"17658:15:5"}],"id":2920,"name":"MemberAccess","src":"17658:21:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2895,"type":"uint256","value":"price"},"id":2921,"name":"Identifier","src":"17680:5:5"}],"id":2922,"name":"FunctionCall","src":"17658:28:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2923,"name":"Literal","src":"17687:1:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2884,"type":"string memory","value":"datasource"},"id":2924,"name":"Identifier","src":"17690:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2913,"type":"bytes memory","value":"args"},"id":2925,"name":"Identifier","src":"17702:4:5"}],"id":2926,"name":"FunctionCall","src":"17658:49:5"}],"id":2927,"name":"Return","src":"17651:56:5"}],"id":2928,"name":"Block","src":"17457:257:5"}],"id":2929,"name":"FunctionDefinition","src":"17358:356:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"timestamp","scope":2978,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2930,"name":"ElementaryTypeName","src":"17743:4:5"}],"id":2931,"name":"VariableDeclaration","src":"17743:14:5"},{"attributes":{"constant":false,"name":"datasource","scope":2978,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":2932,"name":"ElementaryTypeName","src":"17759:6:5"}],"id":2933,"name":"VariableDeclaration","src":"17759:17:5"},{"attributes":{"constant":false,"name":"argN","scope":2978,"stateVariable":false,"storageLocation":"default","type":"string[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"string[]"},"children":[{"attributes":{"name":"string","type":"string"},"id":2934,"name":"ElementaryTypeName","src":"17778:6:5"}],"id":2935,"name":"ArrayTypeName","src":"17778:8:5"}],"id":2936,"name":"VariableDeclaration","src":"17778:13:5"}],"id":2937,"name":"ParameterList","src":"17742:50:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":2978,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":2940,"name":"ElementaryTypeName","src":"17823:7:5"}],"id":2941,"name":"VariableDeclaration","src":"17823:10:5"}],"id":2942,"name":"ParameterList","src":"17822:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":2938,"name":"Identifier","src":"17793:11:5"}],"id":2939,"name":"ModifierInvocation","src":"17793:11:5"},{"children":[{"attributes":{"assignments":[2944]},"children":[{"attributes":{"constant":false,"name":"price","scope":2978,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2943,"name":"ElementaryTypeName","src":"17844:4:5"}],"id":2944,"name":"VariableDeclaration","src":"17844:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"getPrice","referencedDeclaration":1634,"type":"function (string memory) external returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2257,"type":"contract OraclizeI","value":"oraclize"},"id":2945,"name":"Identifier","src":"17857:8:5"}],"id":2946,"name":"MemberAccess","src":"17857:17:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2933,"type":"string memory","value":"datasource"},"id":2947,"name":"Identifier","src":"17875:10:5"}],"id":2948,"name":"FunctionCall","src":"17857:29:5"}],"id":2949,"name":"VariableDeclarationStatement","src":"17844:42:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2944,"type":"uint256","value":"price"},"id":2950,"name":"Identifier","src":"17900:5:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":"ether","token":"number","type":"int_const 1000000000000000000","value":"1"},"id":2951,"name":"Literal","src":"17908:7:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"gasprice","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":12070,"type":"tx","value":"tx"},"id":2952,"name":"Identifier","src":"17918:2:5"}],"id":2953,"name":"MemberAccess","src":"17918:11:5"},{"attributes":{"argumentTypes":null,"hexvalue":"323030303030","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 200000","value":"200000"},"id":2954,"name":"Literal","src":"17930:6:5"}],"id":2955,"name":"BinaryOperation","src":"17918:18:5"}],"id":2956,"name":"BinaryOperation","src":"17908:28:5"}],"id":2957,"name":"BinaryOperation","src":"17900:36:5"},{"attributes":{"functionReturnParameters":2942},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2958,"name":"Literal","src":"17945:1:5"}],"id":2959,"name":"Return","src":"17938:8:5"}],"id":2960,"name":"IfStatement","src":"17896:50:5"},{"attributes":{"assignments":[2962]},"children":[{"attributes":{"constant":false,"name":"args","scope":2978,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":2961,"name":"ElementaryTypeName","src":"17983:5:5"}],"id":2962,"name":"VariableDeclaration","src":"17983:17:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_array$_t_string_memory_$dyn_memory_ptr","typeString":"string memory[] memory"}],"overloadedDeclarations":[null],"referencedDeclaration":6444,"type":"function (string memory[] memory) pure returns (bytes memory)","value":"stra2cbor"},"id":2963,"name":"Identifier","src":"18003:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2936,"type":"string memory[] memory","value":"argN"},"id":2964,"name":"Identifier","src":"18013:4:5"}],"id":2965,"name":"FunctionCall","src":"18003:15:5"}],"id":2966,"name":"VariableDeclarationStatement","src":"17983:35:5"},{"attributes":{"functionReturnParameters":2942},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"function (uint256,string memory,bytes memory) payable external returns (bytes32)","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"value","referencedDeclaration":null,"type":"function (uint256) returns (function (uint256,string memory,bytes memory) payable external returns (bytes32))"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"queryN","referencedDeclaration":1614,"type":"function (uint256,string memory,bytes memory) payable external returns (bytes32)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2257,"type":"contract OraclizeI","value":"oraclize"},"id":2967,"name":"Identifier","src":"18035:8:5"}],"id":2968,"name":"MemberAccess","src":"18035:15:5"}],"id":2969,"name":"MemberAccess","src":"18035:21:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2944,"type":"uint256","value":"price"},"id":2970,"name":"Identifier","src":"18057:5:5"}],"id":2971,"name":"FunctionCall","src":"18035:28:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2931,"type":"uint256","value":"timestamp"},"id":2972,"name":"Identifier","src":"18064:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2933,"type":"string memory","value":"datasource"},"id":2973,"name":"Identifier","src":"18075:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2962,"type":"bytes memory","value":"args"},"id":2974,"name":"Identifier","src":"18087:4:5"}],"id":2975,"name":"FunctionCall","src":"18035:57:5"}],"id":2976,"name":"Return","src":"18028:64:5"}],"id":2977,"name":"Block","src":"17834:265:5"}],"id":2978,"name":"FunctionDefinition","src":"17719:380:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"timestamp","scope":3031,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2979,"name":"ElementaryTypeName","src":"18128:4:5"}],"id":2980,"name":"VariableDeclaration","src":"18128:14:5"},{"attributes":{"constant":false,"name":"datasource","scope":3031,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":2981,"name":"ElementaryTypeName","src":"18144:6:5"}],"id":2982,"name":"VariableDeclaration","src":"18144:17:5"},{"attributes":{"constant":false,"name":"argN","scope":3031,"stateVariable":false,"storageLocation":"default","type":"string[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"string[]"},"children":[{"attributes":{"name":"string","type":"string"},"id":2983,"name":"ElementaryTypeName","src":"18163:6:5"}],"id":2984,"name":"ArrayTypeName","src":"18163:8:5"}],"id":2985,"name":"VariableDeclaration","src":"18163:13:5"},{"attributes":{"constant":false,"name":"gaslimit","scope":3031,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2986,"name":"ElementaryTypeName","src":"18178:4:5"}],"id":2987,"name":"VariableDeclaration","src":"18178:13:5"}],"id":2988,"name":"ParameterList","src":"18127:65:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":3031,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":2991,"name":"ElementaryTypeName","src":"18223:7:5"}],"id":2992,"name":"VariableDeclaration","src":"18223:10:5"}],"id":2993,"name":"ParameterList","src":"18222:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":2989,"name":"Identifier","src":"18193:11:5"}],"id":2990,"name":"ModifierInvocation","src":"18193:11:5"},{"children":[{"attributes":{"assignments":[2995]},"children":[{"attributes":{"constant":false,"name":"price","scope":3031,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2994,"name":"ElementaryTypeName","src":"18244:4:5"}],"id":2995,"name":"VariableDeclaration","src":"18244:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"getPrice","referencedDeclaration":1643,"type":"function (string memory,uint256) external returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2257,"type":"contract OraclizeI","value":"oraclize"},"id":2996,"name":"Identifier","src":"18257:8:5"}],"id":2997,"name":"MemberAccess","src":"18257:17:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2982,"type":"string memory","value":"datasource"},"id":2998,"name":"Identifier","src":"18275:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2987,"type":"uint256","value":"gaslimit"},"id":2999,"name":"Identifier","src":"18287:8:5"}],"id":3000,"name":"FunctionCall","src":"18257:39:5"}],"id":3001,"name":"VariableDeclarationStatement","src":"18244:52:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2995,"type":"uint256","value":"price"},"id":3002,"name":"Identifier","src":"18310:5:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":"ether","token":"number","type":"int_const 1000000000000000000","value":"1"},"id":3003,"name":"Literal","src":"18318:7:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"gasprice","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":12070,"type":"tx","value":"tx"},"id":3004,"name":"Identifier","src":"18328:2:5"}],"id":3005,"name":"MemberAccess","src":"18328:11:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2987,"type":"uint256","value":"gaslimit"},"id":3006,"name":"Identifier","src":"18340:8:5"}],"id":3007,"name":"BinaryOperation","src":"18328:20:5"}],"id":3008,"name":"BinaryOperation","src":"18318:30:5"}],"id":3009,"name":"BinaryOperation","src":"18310:38:5"},{"attributes":{"functionReturnParameters":2993},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3010,"name":"Literal","src":"18357:1:5"}],"id":3011,"name":"Return","src":"18350:8:5"}],"id":3012,"name":"IfStatement","src":"18306:52:5"},{"attributes":{"assignments":[3014]},"children":[{"attributes":{"constant":false,"name":"args","scope":3031,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":3013,"name":"ElementaryTypeName","src":"18395:5:5"}],"id":3014,"name":"VariableDeclaration","src":"18395:17:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_array$_t_string_memory_$dyn_memory_ptr","typeString":"string memory[] memory"}],"overloadedDeclarations":[null],"referencedDeclaration":6444,"type":"function (string memory[] memory) pure returns (bytes memory)","value":"stra2cbor"},"id":3015,"name":"Identifier","src":"18415:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2985,"type":"string memory[] memory","value":"argN"},"id":3016,"name":"Identifier","src":"18425:4:5"}],"id":3017,"name":"FunctionCall","src":"18415:15:5"}],"id":3018,"name":"VariableDeclarationStatement","src":"18395:35:5"},{"attributes":{"functionReturnParameters":2993},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"function (uint256,string memory,bytes memory,uint256) payable external returns (bytes32)","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"value","referencedDeclaration":null,"type":"function (uint256) returns (function (uint256,string memory,bytes memory,uint256) payable external returns (bytes32))"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"queryN_withGasLimit","referencedDeclaration":1627,"type":"function (uint256,string memory,bytes memory,uint256) payable external returns (bytes32)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2257,"type":"contract OraclizeI","value":"oraclize"},"id":3019,"name":"Identifier","src":"18447:8:5"}],"id":3020,"name":"MemberAccess","src":"18447:28:5"}],"id":3021,"name":"MemberAccess","src":"18447:34:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2995,"type":"uint256","value":"price"},"id":3022,"name":"Identifier","src":"18482:5:5"}],"id":3023,"name":"FunctionCall","src":"18447:41:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2980,"type":"uint256","value":"timestamp"},"id":3024,"name":"Identifier","src":"18489:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2982,"type":"string memory","value":"datasource"},"id":3025,"name":"Identifier","src":"18500:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3014,"type":"bytes memory","value":"args"},"id":3026,"name":"Identifier","src":"18512:4:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2987,"type":"uint256","value":"gaslimit"},"id":3027,"name":"Identifier","src":"18518:8:5"}],"id":3028,"name":"FunctionCall","src":"18447:80:5"}],"id":3029,"name":"Return","src":"18440:87:5"}],"id":3030,"name":"Block","src":"18234:300:5"}],"id":3031,"name":"FunctionDefinition","src":"18104:430:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"datasource","scope":3082,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":3032,"name":"ElementaryTypeName","src":"18563:6:5"}],"id":3033,"name":"VariableDeclaration","src":"18563:17:5"},{"attributes":{"constant":false,"name":"argN","scope":3082,"stateVariable":false,"storageLocation":"default","type":"string[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"string[]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3034,"name":"ElementaryTypeName","src":"18582:6:5"}],"id":3035,"name":"ArrayTypeName","src":"18582:8:5"}],"id":3036,"name":"VariableDeclaration","src":"18582:13:5"},{"attributes":{"constant":false,"name":"gaslimit","scope":3082,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":3037,"name":"ElementaryTypeName","src":"18597:4:5"}],"id":3038,"name":"VariableDeclaration","src":"18597:13:5"}],"id":3039,"name":"ParameterList","src":"18562:49:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":3082,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3042,"name":"ElementaryTypeName","src":"18642:7:5"}],"id":3043,"name":"VariableDeclaration","src":"18642:10:5"}],"id":3044,"name":"ParameterList","src":"18641:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":3040,"name":"Identifier","src":"18612:11:5"}],"id":3041,"name":"ModifierInvocation","src":"18612:11:5"},{"children":[{"attributes":{"assignments":[3046]},"children":[{"attributes":{"constant":false,"name":"price","scope":3082,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":3045,"name":"ElementaryTypeName","src":"18663:4:5"}],"id":3046,"name":"VariableDeclaration","src":"18663:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"getPrice","referencedDeclaration":1643,"type":"function (string memory,uint256) external returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2257,"type":"contract OraclizeI","value":"oraclize"},"id":3047,"name":"Identifier","src":"18676:8:5"}],"id":3048,"name":"MemberAccess","src":"18676:17:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3033,"type":"string memory","value":"datasource"},"id":3049,"name":"Identifier","src":"18694:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3038,"type":"uint256","value":"gaslimit"},"id":3050,"name":"Identifier","src":"18706:8:5"}],"id":3051,"name":"FunctionCall","src":"18676:39:5"}],"id":3052,"name":"VariableDeclarationStatement","src":"18663:52:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3046,"type":"uint256","value":"price"},"id":3053,"name":"Identifier","src":"18729:5:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":"ether","token":"number","type":"int_const 1000000000000000000","value":"1"},"id":3054,"name":"Literal","src":"18737:7:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"gasprice","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":12070,"type":"tx","value":"tx"},"id":3055,"name":"Identifier","src":"18747:2:5"}],"id":3056,"name":"MemberAccess","src":"18747:11:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3038,"type":"uint256","value":"gaslimit"},"id":3057,"name":"Identifier","src":"18759:8:5"}],"id":3058,"name":"BinaryOperation","src":"18747:20:5"}],"id":3059,"name":"BinaryOperation","src":"18737:30:5"}],"id":3060,"name":"BinaryOperation","src":"18729:38:5"},{"attributes":{"functionReturnParameters":3044},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3061,"name":"Literal","src":"18776:1:5"}],"id":3062,"name":"Return","src":"18769:8:5"}],"id":3063,"name":"IfStatement","src":"18725:52:5"},{"attributes":{"assignments":[3065]},"children":[{"attributes":{"constant":false,"name":"args","scope":3082,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":3064,"name":"ElementaryTypeName","src":"18814:5:5"}],"id":3065,"name":"VariableDeclaration","src":"18814:17:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_array$_t_string_memory_$dyn_memory_ptr","typeString":"string memory[] memory"}],"overloadedDeclarations":[null],"referencedDeclaration":6444,"type":"function (string memory[] memory) pure returns (bytes memory)","value":"stra2cbor"},"id":3066,"name":"Identifier","src":"18834:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3036,"type":"string memory[] memory","value":"argN"},"id":3067,"name":"Identifier","src":"18844:4:5"}],"id":3068,"name":"FunctionCall","src":"18834:15:5"}],"id":3069,"name":"VariableDeclarationStatement","src":"18814:35:5"},{"attributes":{"functionReturnParameters":3044},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"function (uint256,string memory,bytes memory,uint256) payable external returns (bytes32)","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"value","referencedDeclaration":null,"type":"function (uint256) returns (function (uint256,string memory,bytes memory,uint256) payable external returns (bytes32))"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"queryN_withGasLimit","referencedDeclaration":1627,"type":"function (uint256,string memory,bytes memory,uint256) payable external returns (bytes32)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2257,"type":"contract OraclizeI","value":"oraclize"},"id":3070,"name":"Identifier","src":"18866:8:5"}],"id":3071,"name":"MemberAccess","src":"18866:28:5"}],"id":3072,"name":"MemberAccess","src":"18866:34:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3046,"type":"uint256","value":"price"},"id":3073,"name":"Identifier","src":"18901:5:5"}],"id":3074,"name":"FunctionCall","src":"18866:41:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3075,"name":"Literal","src":"18908:1:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3033,"type":"string memory","value":"datasource"},"id":3076,"name":"Identifier","src":"18911:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3065,"type":"bytes memory","value":"args"},"id":3077,"name":"Identifier","src":"18923:4:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3038,"type":"uint256","value":"gaslimit"},"id":3078,"name":"Identifier","src":"18929:8:5"}],"id":3079,"name":"FunctionCall","src":"18866:72:5"}],"id":3080,"name":"Return","src":"18859:79:5"}],"id":3081,"name":"Block","src":"18653:292:5"}],"id":3082,"name":"FunctionDefinition","src":"18539:406:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"datasource","scope":3119,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":3083,"name":"ElementaryTypeName","src":"18974:6:5"}],"id":3084,"name":"VariableDeclaration","src":"18974:17:5"},{"attributes":{"constant":false,"name":"args","scope":3119,"stateVariable":false,"storageLocation":"default","type":"string[1]","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"string[1]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3085,"name":"ElementaryTypeName","src":"18993:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"subdenomination":null,"token":"number","type":null,"value":"1"},"id":3086,"name":"Literal","src":"19000:1:5"}],"id":3087,"name":"ArrayTypeName","src":"18993:9:5"}],"id":3088,"name":"VariableDeclaration","src":"18993:14:5"}],"id":3089,"name":"ParameterList","src":"18973:35:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":3119,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3092,"name":"ElementaryTypeName","src":"19039:7:5"}],"id":3093,"name":"VariableDeclaration","src":"19039:10:5"}],"id":3094,"name":"ParameterList","src":"19038:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":3090,"name":"Identifier","src":"19009:11:5"}],"id":3091,"name":"ModifierInvocation","src":"19009:11:5"},{"children":[{"attributes":{"assignments":[3098]},"children":[{"attributes":{"constant":false,"name":"dynargs","scope":3119,"stateVariable":false,"storageLocation":"memory","type":"string[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"string[]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3096,"name":"ElementaryTypeName","src":"19061:6:5"}],"id":3097,"name":"ArrayTypeName","src":"19061:8:5"}],"id":3098,"name":"VariableDeclaration","src":"19061:23:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory[] memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (string memory[] memory)"},"children":[{"attributes":{"length":null,"type":"string[]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3099,"name":"ElementaryTypeName","src":"19091:6:5"}],"id":3100,"name":"ArrayTypeName","src":"19091:8:5"}],"id":3101,"name":"NewExpression","src":"19087:12:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":3102,"name":"Literal","src":"19100:1:5"}],"id":3103,"name":"FunctionCall","src":"19087:15:5"}],"id":3104,"name":"VariableDeclarationStatement","src":"19061:41:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3098,"type":"string memory[] memory","value":"dynargs"},"id":3105,"name":"Identifier","src":"19112:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3106,"name":"Literal","src":"19120:1:5"}],"id":3107,"name":"IndexAccess","src":"19112:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3088,"type":"string memory[1] memory","value":"args"},"id":3108,"name":"Identifier","src":"19125:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3109,"name":"Literal","src":"19130:1:5"}],"id":3110,"name":"IndexAccess","src":"19125:7:5"}],"id":3111,"name":"Assignment","src":"19112:20:5"}],"id":3112,"name":"ExpressionStatement","src":"19112:20:5"},{"attributes":{"functionReturnParameters":3094},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_string_memory_$dyn_memory_ptr","typeString":"string memory[] memory"}],"overloadedDeclarations":[2566,2608,2654,2698,2741,2786,2835,2882,2929,2978,3031,3082,3119,3159,3202,3242,3287,3335,3386,3434,3487,3543,3602,3658,3719,3783,3850,3914,3983,4055,4130,4202,4249,4298,4351,4402,4439,4479,4522,4562,4607,4655,4706,4754,4807,4863,4922,4978,5039,5103,5170,5234,5303,5375,5450,5522],"referencedDeclaration":2929,"type":"function (string memory,string memory[] memory) returns (bytes32)","value":"oraclize_query"},"id":3113,"name":"Identifier","src":"19149:14:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3084,"type":"string memory","value":"datasource"},"id":3114,"name":"Identifier","src":"19164:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3098,"type":"string memory[] memory","value":"dynargs"},"id":3115,"name":"Identifier","src":"19176:7:5"}],"id":3116,"name":"FunctionCall","src":"19149:35:5"}],"id":3117,"name":"Return","src":"19142:42:5"}],"id":3118,"name":"Block","src":"19051:140:5"}],"id":3119,"name":"FunctionDefinition","src":"18950:241:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"timestamp","scope":3159,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":3120,"name":"ElementaryTypeName","src":"19220:4:5"}],"id":3121,"name":"VariableDeclaration","src":"19220:14:5"},{"attributes":{"constant":false,"name":"datasource","scope":3159,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":3122,"name":"ElementaryTypeName","src":"19236:6:5"}],"id":3123,"name":"VariableDeclaration","src":"19236:17:5"},{"attributes":{"constant":false,"name":"args","scope":3159,"stateVariable":false,"storageLocation":"default","type":"string[1]","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"string[1]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3124,"name":"ElementaryTypeName","src":"19255:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"subdenomination":null,"token":"number","type":null,"value":"1"},"id":3125,"name":"Literal","src":"19262:1:5"}],"id":3126,"name":"ArrayTypeName","src":"19255:9:5"}],"id":3127,"name":"VariableDeclaration","src":"19255:14:5"}],"id":3128,"name":"ParameterList","src":"19219:51:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":3159,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3131,"name":"ElementaryTypeName","src":"19301:7:5"}],"id":3132,"name":"VariableDeclaration","src":"19301:10:5"}],"id":3133,"name":"ParameterList","src":"19300:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":3129,"name":"Identifier","src":"19271:11:5"}],"id":3130,"name":"ModifierInvocation","src":"19271:11:5"},{"children":[{"attributes":{"assignments":[3137]},"children":[{"attributes":{"constant":false,"name":"dynargs","scope":3159,"stateVariable":false,"storageLocation":"memory","type":"string[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"string[]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3135,"name":"ElementaryTypeName","src":"19323:6:5"}],"id":3136,"name":"ArrayTypeName","src":"19323:8:5"}],"id":3137,"name":"VariableDeclaration","src":"19323:23:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory[] memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (string memory[] memory)"},"children":[{"attributes":{"length":null,"type":"string[]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3138,"name":"ElementaryTypeName","src":"19353:6:5"}],"id":3139,"name":"ArrayTypeName","src":"19353:8:5"}],"id":3140,"name":"NewExpression","src":"19349:12:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":3141,"name":"Literal","src":"19362:1:5"}],"id":3142,"name":"FunctionCall","src":"19349:15:5"}],"id":3143,"name":"VariableDeclarationStatement","src":"19323:41:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3137,"type":"string memory[] memory","value":"dynargs"},"id":3144,"name":"Identifier","src":"19374:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3145,"name":"Literal","src":"19382:1:5"}],"id":3146,"name":"IndexAccess","src":"19374:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3127,"type":"string memory[1] memory","value":"args"},"id":3147,"name":"Identifier","src":"19387:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3148,"name":"Literal","src":"19392:1:5"}],"id":3149,"name":"IndexAccess","src":"19387:7:5"}],"id":3150,"name":"Assignment","src":"19374:20:5"}],"id":3151,"name":"ExpressionStatement","src":"19374:20:5"},{"attributes":{"functionReturnParameters":3133},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_string_memory_$dyn_memory_ptr","typeString":"string memory[] memory"}],"overloadedDeclarations":[2566,2608,2654,2698,2741,2786,2835,2882,2929,2978,3031,3082,3119,3159,3202,3242,3287,3335,3386,3434,3487,3543,3602,3658,3719,3783,3850,3914,3983,4055,4130,4202,4249,4298,4351,4402,4439,4479,4522,4562,4607,4655,4706,4754,4807,4863,4922,4978,5039,5103,5170,5234,5303,5375,5450,5522],"referencedDeclaration":2978,"type":"function (uint256,string memory,string memory[] memory) returns (bytes32)","value":"oraclize_query"},"id":3152,"name":"Identifier","src":"19411:14:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3121,"type":"uint256","value":"timestamp"},"id":3153,"name":"Identifier","src":"19426:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3123,"type":"string memory","value":"datasource"},"id":3154,"name":"Identifier","src":"19437:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3137,"type":"string memory[] memory","value":"dynargs"},"id":3155,"name":"Identifier","src":"19449:7:5"}],"id":3156,"name":"FunctionCall","src":"19411:46:5"}],"id":3157,"name":"Return","src":"19404:53:5"}],"id":3158,"name":"Block","src":"19313:151:5"}],"id":3159,"name":"FunctionDefinition","src":"19196:268:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"timestamp","scope":3202,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":3160,"name":"ElementaryTypeName","src":"19493:4:5"}],"id":3161,"name":"VariableDeclaration","src":"19493:14:5"},{"attributes":{"constant":false,"name":"datasource","scope":3202,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":3162,"name":"ElementaryTypeName","src":"19509:6:5"}],"id":3163,"name":"VariableDeclaration","src":"19509:17:5"},{"attributes":{"constant":false,"name":"args","scope":3202,"stateVariable":false,"storageLocation":"default","type":"string[1]","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"string[1]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3164,"name":"ElementaryTypeName","src":"19528:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"subdenomination":null,"token":"number","type":null,"value":"1"},"id":3165,"name":"Literal","src":"19535:1:5"}],"id":3166,"name":"ArrayTypeName","src":"19528:9:5"}],"id":3167,"name":"VariableDeclaration","src":"19528:14:5"},{"attributes":{"constant":false,"name":"gaslimit","scope":3202,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":3168,"name":"ElementaryTypeName","src":"19544:4:5"}],"id":3169,"name":"VariableDeclaration","src":"19544:13:5"}],"id":3170,"name":"ParameterList","src":"19492:66:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":3202,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3173,"name":"ElementaryTypeName","src":"19589:7:5"}],"id":3174,"name":"VariableDeclaration","src":"19589:10:5"}],"id":3175,"name":"ParameterList","src":"19588:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":3171,"name":"Identifier","src":"19559:11:5"}],"id":3172,"name":"ModifierInvocation","src":"19559:11:5"},{"children":[{"attributes":{"assignments":[3179]},"children":[{"attributes":{"constant":false,"name":"dynargs","scope":3202,"stateVariable":false,"storageLocation":"memory","type":"string[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"string[]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3177,"name":"ElementaryTypeName","src":"19611:6:5"}],"id":3178,"name":"ArrayTypeName","src":"19611:8:5"}],"id":3179,"name":"VariableDeclaration","src":"19611:23:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory[] memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (string memory[] memory)"},"children":[{"attributes":{"length":null,"type":"string[]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3180,"name":"ElementaryTypeName","src":"19641:6:5"}],"id":3181,"name":"ArrayTypeName","src":"19641:8:5"}],"id":3182,"name":"NewExpression","src":"19637:12:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":3183,"name":"Literal","src":"19650:1:5"}],"id":3184,"name":"FunctionCall","src":"19637:15:5"}],"id":3185,"name":"VariableDeclarationStatement","src":"19611:41:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3179,"type":"string memory[] memory","value":"dynargs"},"id":3186,"name":"Identifier","src":"19662:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3187,"name":"Literal","src":"19670:1:5"}],"id":3188,"name":"IndexAccess","src":"19662:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3167,"type":"string memory[1] memory","value":"args"},"id":3189,"name":"Identifier","src":"19675:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3190,"name":"Literal","src":"19680:1:5"}],"id":3191,"name":"IndexAccess","src":"19675:7:5"}],"id":3192,"name":"Assignment","src":"19662:20:5"}],"id":3193,"name":"ExpressionStatement","src":"19662:20:5"},{"attributes":{"functionReturnParameters":3175},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_string_memory_$dyn_memory_ptr","typeString":"string memory[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[2566,2608,2654,2698,2741,2786,2835,2882,2929,2978,3031,3082,3119,3159,3202,3242,3287,3335,3386,3434,3487,3543,3602,3658,3719,3783,3850,3914,3983,4055,4130,4202,4249,4298,4351,4402,4439,4479,4522,4562,4607,4655,4706,4754,4807,4863,4922,4978,5039,5103,5170,5234,5303,5375,5450,5522],"referencedDeclaration":3031,"type":"function (uint256,string memory,string memory[] memory,uint256) returns (bytes32)","value":"oraclize_query"},"id":3194,"name":"Identifier","src":"19699:14:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3161,"type":"uint256","value":"timestamp"},"id":3195,"name":"Identifier","src":"19714:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3163,"type":"string memory","value":"datasource"},"id":3196,"name":"Identifier","src":"19725:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3179,"type":"string memory[] memory","value":"dynargs"},"id":3197,"name":"Identifier","src":"19737:7:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3169,"type":"uint256","value":"gaslimit"},"id":3198,"name":"Identifier","src":"19746:8:5"}],"id":3199,"name":"FunctionCall","src":"19699:56:5"}],"id":3200,"name":"Return","src":"19692:63:5"}],"id":3201,"name":"Block","src":"19601:161:5"}],"id":3202,"name":"FunctionDefinition","src":"19469:293:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"datasource","scope":3242,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":3203,"name":"ElementaryTypeName","src":"19791:6:5"}],"id":3204,"name":"VariableDeclaration","src":"19791:17:5"},{"attributes":{"constant":false,"name":"args","scope":3242,"stateVariable":false,"storageLocation":"default","type":"string[1]","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"string[1]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3205,"name":"ElementaryTypeName","src":"19810:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"subdenomination":null,"token":"number","type":null,"value":"1"},"id":3206,"name":"Literal","src":"19817:1:5"}],"id":3207,"name":"ArrayTypeName","src":"19810:9:5"}],"id":3208,"name":"VariableDeclaration","src":"19810:14:5"},{"attributes":{"constant":false,"name":"gaslimit","scope":3242,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":3209,"name":"ElementaryTypeName","src":"19826:4:5"}],"id":3210,"name":"VariableDeclaration","src":"19826:13:5"}],"id":3211,"name":"ParameterList","src":"19790:50:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":3242,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3214,"name":"ElementaryTypeName","src":"19871:7:5"}],"id":3215,"name":"VariableDeclaration","src":"19871:10:5"}],"id":3216,"name":"ParameterList","src":"19870:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":3212,"name":"Identifier","src":"19841:11:5"}],"id":3213,"name":"ModifierInvocation","src":"19841:11:5"},{"children":[{"attributes":{"assignments":[3220]},"children":[{"attributes":{"constant":false,"name":"dynargs","scope":3242,"stateVariable":false,"storageLocation":"memory","type":"string[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"string[]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3218,"name":"ElementaryTypeName","src":"19893:6:5"}],"id":3219,"name":"ArrayTypeName","src":"19893:8:5"}],"id":3220,"name":"VariableDeclaration","src":"19893:23:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory[] memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (string memory[] memory)"},"children":[{"attributes":{"length":null,"type":"string[]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3221,"name":"ElementaryTypeName","src":"19923:6:5"}],"id":3222,"name":"ArrayTypeName","src":"19923:8:5"}],"id":3223,"name":"NewExpression","src":"19919:12:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":3224,"name":"Literal","src":"19932:1:5"}],"id":3225,"name":"FunctionCall","src":"19919:15:5"}],"id":3226,"name":"VariableDeclarationStatement","src":"19893:41:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3220,"type":"string memory[] memory","value":"dynargs"},"id":3227,"name":"Identifier","src":"19944:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3228,"name":"Literal","src":"19952:1:5"}],"id":3229,"name":"IndexAccess","src":"19944:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3208,"type":"string memory[1] memory","value":"args"},"id":3230,"name":"Identifier","src":"19957:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3231,"name":"Literal","src":"19962:1:5"}],"id":3232,"name":"IndexAccess","src":"19957:7:5"}],"id":3233,"name":"Assignment","src":"19944:20:5"}],"id":3234,"name":"ExpressionStatement","src":"19944:20:5"},{"attributes":{"functionReturnParameters":3216},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_string_memory_$dyn_memory_ptr","typeString":"string memory[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[2566,2608,2654,2698,2741,2786,2835,2882,2929,2978,3031,3082,3119,3159,3202,3242,3287,3335,3386,3434,3487,3543,3602,3658,3719,3783,3850,3914,3983,4055,4130,4202,4249,4298,4351,4402,4439,4479,4522,4562,4607,4655,4706,4754,4807,4863,4922,4978,5039,5103,5170,5234,5303,5375,5450,5522],"referencedDeclaration":3082,"type":"function (string memory,string memory[] memory,uint256) returns (bytes32)","value":"oraclize_query"},"id":3235,"name":"Identifier","src":"19981:14:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3204,"type":"string memory","value":"datasource"},"id":3236,"name":"Identifier","src":"19996:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3220,"type":"string memory[] memory","value":"dynargs"},"id":3237,"name":"Identifier","src":"20008:7:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3210,"type":"uint256","value":"gaslimit"},"id":3238,"name":"Identifier","src":"20017:8:5"}],"id":3239,"name":"FunctionCall","src":"19981:45:5"}],"id":3240,"name":"Return","src":"19974:52:5"}],"id":3241,"name":"Block","src":"19883:150:5"}],"id":3242,"name":"FunctionDefinition","src":"19767:266:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"datasource","scope":3287,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":3243,"name":"ElementaryTypeName","src":"20063:6:5"}],"id":3244,"name":"VariableDeclaration","src":"20063:17:5"},{"attributes":{"constant":false,"name":"args","scope":3287,"stateVariable":false,"storageLocation":"default","type":"string[2]","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"string[2]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3245,"name":"ElementaryTypeName","src":"20082:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"subdenomination":null,"token":"number","type":null,"value":"2"},"id":3246,"name":"Literal","src":"20089:1:5"}],"id":3247,"name":"ArrayTypeName","src":"20082:9:5"}],"id":3248,"name":"VariableDeclaration","src":"20082:14:5"}],"id":3249,"name":"ParameterList","src":"20062:35:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":3287,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3252,"name":"ElementaryTypeName","src":"20128:7:5"}],"id":3253,"name":"VariableDeclaration","src":"20128:10:5"}],"id":3254,"name":"ParameterList","src":"20127:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":3250,"name":"Identifier","src":"20098:11:5"}],"id":3251,"name":"ModifierInvocation","src":"20098:11:5"},{"children":[{"attributes":{"assignments":[3258]},"children":[{"attributes":{"constant":false,"name":"dynargs","scope":3287,"stateVariable":false,"storageLocation":"memory","type":"string[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"string[]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3256,"name":"ElementaryTypeName","src":"20150:6:5"}],"id":3257,"name":"ArrayTypeName","src":"20150:8:5"}],"id":3258,"name":"VariableDeclaration","src":"20150:23:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory[] memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (string memory[] memory)"},"children":[{"attributes":{"length":null,"type":"string[]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3259,"name":"ElementaryTypeName","src":"20180:6:5"}],"id":3260,"name":"ArrayTypeName","src":"20180:8:5"}],"id":3261,"name":"NewExpression","src":"20176:12:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":3262,"name":"Literal","src":"20189:1:5"}],"id":3263,"name":"FunctionCall","src":"20176:15:5"}],"id":3264,"name":"VariableDeclarationStatement","src":"20150:41:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3258,"type":"string memory[] memory","value":"dynargs"},"id":3265,"name":"Identifier","src":"20201:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3266,"name":"Literal","src":"20209:1:5"}],"id":3267,"name":"IndexAccess","src":"20201:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3248,"type":"string memory[2] memory","value":"args"},"id":3268,"name":"Identifier","src":"20214:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3269,"name":"Literal","src":"20219:1:5"}],"id":3270,"name":"IndexAccess","src":"20214:7:5"}],"id":3271,"name":"Assignment","src":"20201:20:5"}],"id":3272,"name":"ExpressionStatement","src":"20201:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3258,"type":"string memory[] memory","value":"dynargs"},"id":3273,"name":"Identifier","src":"20231:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":3274,"name":"Literal","src":"20239:1:5"}],"id":3275,"name":"IndexAccess","src":"20231:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3248,"type":"string memory[2] memory","value":"args"},"id":3276,"name":"Identifier","src":"20244:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":3277,"name":"Literal","src":"20249:1:5"}],"id":3278,"name":"IndexAccess","src":"20244:7:5"}],"id":3279,"name":"Assignment","src":"20231:20:5"}],"id":3280,"name":"ExpressionStatement","src":"20231:20:5"},{"attributes":{"functionReturnParameters":3254},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_string_memory_$dyn_memory_ptr","typeString":"string memory[] memory"}],"overloadedDeclarations":[2566,2608,2654,2698,2741,2786,2835,2882,2929,2978,3031,3082,3119,3159,3202,3242,3287,3335,3386,3434,3487,3543,3602,3658,3719,3783,3850,3914,3983,4055,4130,4202,4249,4298,4351,4402,4439,4479,4522,4562,4607,4655,4706,4754,4807,4863,4922,4978,5039,5103,5170,5234,5303,5375,5450,5522],"referencedDeclaration":2929,"type":"function (string memory,string memory[] memory) returns (bytes32)","value":"oraclize_query"},"id":3281,"name":"Identifier","src":"20268:14:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3244,"type":"string memory","value":"datasource"},"id":3282,"name":"Identifier","src":"20283:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3258,"type":"string memory[] memory","value":"dynargs"},"id":3283,"name":"Identifier","src":"20295:7:5"}],"id":3284,"name":"FunctionCall","src":"20268:35:5"}],"id":3285,"name":"Return","src":"20261:42:5"}],"id":3286,"name":"Block","src":"20140:170:5"}],"id":3287,"name":"FunctionDefinition","src":"20039:271:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"timestamp","scope":3335,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":3288,"name":"ElementaryTypeName","src":"20339:4:5"}],"id":3289,"name":"VariableDeclaration","src":"20339:14:5"},{"attributes":{"constant":false,"name":"datasource","scope":3335,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":3290,"name":"ElementaryTypeName","src":"20355:6:5"}],"id":3291,"name":"VariableDeclaration","src":"20355:17:5"},{"attributes":{"constant":false,"name":"args","scope":3335,"stateVariable":false,"storageLocation":"default","type":"string[2]","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"string[2]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3292,"name":"ElementaryTypeName","src":"20374:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"subdenomination":null,"token":"number","type":null,"value":"2"},"id":3293,"name":"Literal","src":"20381:1:5"}],"id":3294,"name":"ArrayTypeName","src":"20374:9:5"}],"id":3295,"name":"VariableDeclaration","src":"20374:14:5"}],"id":3296,"name":"ParameterList","src":"20338:51:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":3335,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3299,"name":"ElementaryTypeName","src":"20420:7:5"}],"id":3300,"name":"VariableDeclaration","src":"20420:10:5"}],"id":3301,"name":"ParameterList","src":"20419:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":3297,"name":"Identifier","src":"20390:11:5"}],"id":3298,"name":"ModifierInvocation","src":"20390:11:5"},{"children":[{"attributes":{"assignments":[3305]},"children":[{"attributes":{"constant":false,"name":"dynargs","scope":3335,"stateVariable":false,"storageLocation":"memory","type":"string[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"string[]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3303,"name":"ElementaryTypeName","src":"20442:6:5"}],"id":3304,"name":"ArrayTypeName","src":"20442:8:5"}],"id":3305,"name":"VariableDeclaration","src":"20442:23:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory[] memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (string memory[] memory)"},"children":[{"attributes":{"length":null,"type":"string[]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3306,"name":"ElementaryTypeName","src":"20472:6:5"}],"id":3307,"name":"ArrayTypeName","src":"20472:8:5"}],"id":3308,"name":"NewExpression","src":"20468:12:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":3309,"name":"Literal","src":"20481:1:5"}],"id":3310,"name":"FunctionCall","src":"20468:15:5"}],"id":3311,"name":"VariableDeclarationStatement","src":"20442:41:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3305,"type":"string memory[] memory","value":"dynargs"},"id":3312,"name":"Identifier","src":"20493:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3313,"name":"Literal","src":"20501:1:5"}],"id":3314,"name":"IndexAccess","src":"20493:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3295,"type":"string memory[2] memory","value":"args"},"id":3315,"name":"Identifier","src":"20506:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3316,"name":"Literal","src":"20511:1:5"}],"id":3317,"name":"IndexAccess","src":"20506:7:5"}],"id":3318,"name":"Assignment","src":"20493:20:5"}],"id":3319,"name":"ExpressionStatement","src":"20493:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3305,"type":"string memory[] memory","value":"dynargs"},"id":3320,"name":"Identifier","src":"20523:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":3321,"name":"Literal","src":"20531:1:5"}],"id":3322,"name":"IndexAccess","src":"20523:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3295,"type":"string memory[2] memory","value":"args"},"id":3323,"name":"Identifier","src":"20536:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":3324,"name":"Literal","src":"20541:1:5"}],"id":3325,"name":"IndexAccess","src":"20536:7:5"}],"id":3326,"name":"Assignment","src":"20523:20:5"}],"id":3327,"name":"ExpressionStatement","src":"20523:20:5"},{"attributes":{"functionReturnParameters":3301},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_string_memory_$dyn_memory_ptr","typeString":"string memory[] memory"}],"overloadedDeclarations":[2566,2608,2654,2698,2741,2786,2835,2882,2929,2978,3031,3082,3119,3159,3202,3242,3287,3335,3386,3434,3487,3543,3602,3658,3719,3783,3850,3914,3983,4055,4130,4202,4249,4298,4351,4402,4439,4479,4522,4562,4607,4655,4706,4754,4807,4863,4922,4978,5039,5103,5170,5234,5303,5375,5450,5522],"referencedDeclaration":2978,"type":"function (uint256,string memory,string memory[] memory) returns (bytes32)","value":"oraclize_query"},"id":3328,"name":"Identifier","src":"20560:14:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3289,"type":"uint256","value":"timestamp"},"id":3329,"name":"Identifier","src":"20575:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3291,"type":"string memory","value":"datasource"},"id":3330,"name":"Identifier","src":"20586:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3305,"type":"string memory[] memory","value":"dynargs"},"id":3331,"name":"Identifier","src":"20598:7:5"}],"id":3332,"name":"FunctionCall","src":"20560:46:5"}],"id":3333,"name":"Return","src":"20553:53:5"}],"id":3334,"name":"Block","src":"20432:181:5"}],"id":3335,"name":"FunctionDefinition","src":"20315:298:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"timestamp","scope":3386,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":3336,"name":"ElementaryTypeName","src":"20642:4:5"}],"id":3337,"name":"VariableDeclaration","src":"20642:14:5"},{"attributes":{"constant":false,"name":"datasource","scope":3386,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":3338,"name":"ElementaryTypeName","src":"20658:6:5"}],"id":3339,"name":"VariableDeclaration","src":"20658:17:5"},{"attributes":{"constant":false,"name":"args","scope":3386,"stateVariable":false,"storageLocation":"default","type":"string[2]","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"string[2]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3340,"name":"ElementaryTypeName","src":"20677:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"subdenomination":null,"token":"number","type":null,"value":"2"},"id":3341,"name":"Literal","src":"20684:1:5"}],"id":3342,"name":"ArrayTypeName","src":"20677:9:5"}],"id":3343,"name":"VariableDeclaration","src":"20677:14:5"},{"attributes":{"constant":false,"name":"gaslimit","scope":3386,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":3344,"name":"ElementaryTypeName","src":"20693:4:5"}],"id":3345,"name":"VariableDeclaration","src":"20693:13:5"}],"id":3346,"name":"ParameterList","src":"20641:66:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":3386,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3349,"name":"ElementaryTypeName","src":"20738:7:5"}],"id":3350,"name":"VariableDeclaration","src":"20738:10:5"}],"id":3351,"name":"ParameterList","src":"20737:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":3347,"name":"Identifier","src":"20708:11:5"}],"id":3348,"name":"ModifierInvocation","src":"20708:11:5"},{"children":[{"attributes":{"assignments":[3355]},"children":[{"attributes":{"constant":false,"name":"dynargs","scope":3386,"stateVariable":false,"storageLocation":"memory","type":"string[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"string[]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3353,"name":"ElementaryTypeName","src":"20760:6:5"}],"id":3354,"name":"ArrayTypeName","src":"20760:8:5"}],"id":3355,"name":"VariableDeclaration","src":"20760:23:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory[] memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (string memory[] memory)"},"children":[{"attributes":{"length":null,"type":"string[]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3356,"name":"ElementaryTypeName","src":"20790:6:5"}],"id":3357,"name":"ArrayTypeName","src":"20790:8:5"}],"id":3358,"name":"NewExpression","src":"20786:12:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":3359,"name":"Literal","src":"20799:1:5"}],"id":3360,"name":"FunctionCall","src":"20786:15:5"}],"id":3361,"name":"VariableDeclarationStatement","src":"20760:41:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3355,"type":"string memory[] memory","value":"dynargs"},"id":3362,"name":"Identifier","src":"20811:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3363,"name":"Literal","src":"20819:1:5"}],"id":3364,"name":"IndexAccess","src":"20811:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3343,"type":"string memory[2] memory","value":"args"},"id":3365,"name":"Identifier","src":"20824:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3366,"name":"Literal","src":"20829:1:5"}],"id":3367,"name":"IndexAccess","src":"20824:7:5"}],"id":3368,"name":"Assignment","src":"20811:20:5"}],"id":3369,"name":"ExpressionStatement","src":"20811:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3355,"type":"string memory[] memory","value":"dynargs"},"id":3370,"name":"Identifier","src":"20841:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":3371,"name":"Literal","src":"20849:1:5"}],"id":3372,"name":"IndexAccess","src":"20841:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3343,"type":"string memory[2] memory","value":"args"},"id":3373,"name":"Identifier","src":"20854:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":3374,"name":"Literal","src":"20859:1:5"}],"id":3375,"name":"IndexAccess","src":"20854:7:5"}],"id":3376,"name":"Assignment","src":"20841:20:5"}],"id":3377,"name":"ExpressionStatement","src":"20841:20:5"},{"attributes":{"functionReturnParameters":3351},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_string_memory_$dyn_memory_ptr","typeString":"string memory[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[2566,2608,2654,2698,2741,2786,2835,2882,2929,2978,3031,3082,3119,3159,3202,3242,3287,3335,3386,3434,3487,3543,3602,3658,3719,3783,3850,3914,3983,4055,4130,4202,4249,4298,4351,4402,4439,4479,4522,4562,4607,4655,4706,4754,4807,4863,4922,4978,5039,5103,5170,5234,5303,5375,5450,5522],"referencedDeclaration":3031,"type":"function (uint256,string memory,string memory[] memory,uint256) returns (bytes32)","value":"oraclize_query"},"id":3378,"name":"Identifier","src":"20878:14:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3337,"type":"uint256","value":"timestamp"},"id":3379,"name":"Identifier","src":"20893:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3339,"type":"string memory","value":"datasource"},"id":3380,"name":"Identifier","src":"20904:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3355,"type":"string memory[] memory","value":"dynargs"},"id":3381,"name":"Identifier","src":"20916:7:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3345,"type":"uint256","value":"gaslimit"},"id":3382,"name":"Identifier","src":"20925:8:5"}],"id":3383,"name":"FunctionCall","src":"20878:56:5"}],"id":3384,"name":"Return","src":"20871:63:5"}],"id":3385,"name":"Block","src":"20750:191:5"}],"id":3386,"name":"FunctionDefinition","src":"20618:323:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"datasource","scope":3434,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":3387,"name":"ElementaryTypeName","src":"20970:6:5"}],"id":3388,"name":"VariableDeclaration","src":"20970:17:5"},{"attributes":{"constant":false,"name":"args","scope":3434,"stateVariable":false,"storageLocation":"default","type":"string[2]","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"string[2]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3389,"name":"ElementaryTypeName","src":"20989:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"subdenomination":null,"token":"number","type":null,"value":"2"},"id":3390,"name":"Literal","src":"20996:1:5"}],"id":3391,"name":"ArrayTypeName","src":"20989:9:5"}],"id":3392,"name":"VariableDeclaration","src":"20989:14:5"},{"attributes":{"constant":false,"name":"gaslimit","scope":3434,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":3393,"name":"ElementaryTypeName","src":"21005:4:5"}],"id":3394,"name":"VariableDeclaration","src":"21005:13:5"}],"id":3395,"name":"ParameterList","src":"20969:50:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":3434,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3398,"name":"ElementaryTypeName","src":"21050:7:5"}],"id":3399,"name":"VariableDeclaration","src":"21050:10:5"}],"id":3400,"name":"ParameterList","src":"21049:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":3396,"name":"Identifier","src":"21020:11:5"}],"id":3397,"name":"ModifierInvocation","src":"21020:11:5"},{"children":[{"attributes":{"assignments":[3404]},"children":[{"attributes":{"constant":false,"name":"dynargs","scope":3434,"stateVariable":false,"storageLocation":"memory","type":"string[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"string[]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3402,"name":"ElementaryTypeName","src":"21072:6:5"}],"id":3403,"name":"ArrayTypeName","src":"21072:8:5"}],"id":3404,"name":"VariableDeclaration","src":"21072:23:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory[] memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (string memory[] memory)"},"children":[{"attributes":{"length":null,"type":"string[]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3405,"name":"ElementaryTypeName","src":"21102:6:5"}],"id":3406,"name":"ArrayTypeName","src":"21102:8:5"}],"id":3407,"name":"NewExpression","src":"21098:12:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":3408,"name":"Literal","src":"21111:1:5"}],"id":3409,"name":"FunctionCall","src":"21098:15:5"}],"id":3410,"name":"VariableDeclarationStatement","src":"21072:41:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3404,"type":"string memory[] memory","value":"dynargs"},"id":3411,"name":"Identifier","src":"21123:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3412,"name":"Literal","src":"21131:1:5"}],"id":3413,"name":"IndexAccess","src":"21123:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3392,"type":"string memory[2] memory","value":"args"},"id":3414,"name":"Identifier","src":"21136:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3415,"name":"Literal","src":"21141:1:5"}],"id":3416,"name":"IndexAccess","src":"21136:7:5"}],"id":3417,"name":"Assignment","src":"21123:20:5"}],"id":3418,"name":"ExpressionStatement","src":"21123:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3404,"type":"string memory[] memory","value":"dynargs"},"id":3419,"name":"Identifier","src":"21153:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":3420,"name":"Literal","src":"21161:1:5"}],"id":3421,"name":"IndexAccess","src":"21153:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3392,"type":"string memory[2] memory","value":"args"},"id":3422,"name":"Identifier","src":"21166:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":3423,"name":"Literal","src":"21171:1:5"}],"id":3424,"name":"IndexAccess","src":"21166:7:5"}],"id":3425,"name":"Assignment","src":"21153:20:5"}],"id":3426,"name":"ExpressionStatement","src":"21153:20:5"},{"attributes":{"functionReturnParameters":3400},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_string_memory_$dyn_memory_ptr","typeString":"string memory[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[2566,2608,2654,2698,2741,2786,2835,2882,2929,2978,3031,3082,3119,3159,3202,3242,3287,3335,3386,3434,3487,3543,3602,3658,3719,3783,3850,3914,3983,4055,4130,4202,4249,4298,4351,4402,4439,4479,4522,4562,4607,4655,4706,4754,4807,4863,4922,4978,5039,5103,5170,5234,5303,5375,5450,5522],"referencedDeclaration":3082,"type":"function (string memory,string memory[] memory,uint256) returns (bytes32)","value":"oraclize_query"},"id":3427,"name":"Identifier","src":"21190:14:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3388,"type":"string memory","value":"datasource"},"id":3428,"name":"Identifier","src":"21205:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3404,"type":"string memory[] memory","value":"dynargs"},"id":3429,"name":"Identifier","src":"21217:7:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3394,"type":"uint256","value":"gaslimit"},"id":3430,"name":"Identifier","src":"21226:8:5"}],"id":3431,"name":"FunctionCall","src":"21190:45:5"}],"id":3432,"name":"Return","src":"21183:52:5"}],"id":3433,"name":"Block","src":"21062:180:5"}],"id":3434,"name":"FunctionDefinition","src":"20946:296:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"datasource","scope":3487,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":3435,"name":"ElementaryTypeName","src":"21271:6:5"}],"id":3436,"name":"VariableDeclaration","src":"21271:17:5"},{"attributes":{"constant":false,"name":"args","scope":3487,"stateVariable":false,"storageLocation":"default","type":"string[3]","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"string[3]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3437,"name":"ElementaryTypeName","src":"21290:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"subdenomination":null,"token":"number","type":null,"value":"3"},"id":3438,"name":"Literal","src":"21297:1:5"}],"id":3439,"name":"ArrayTypeName","src":"21290:9:5"}],"id":3440,"name":"VariableDeclaration","src":"21290:14:5"}],"id":3441,"name":"ParameterList","src":"21270:35:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":3487,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3444,"name":"ElementaryTypeName","src":"21336:7:5"}],"id":3445,"name":"VariableDeclaration","src":"21336:10:5"}],"id":3446,"name":"ParameterList","src":"21335:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":3442,"name":"Identifier","src":"21306:11:5"}],"id":3443,"name":"ModifierInvocation","src":"21306:11:5"},{"children":[{"attributes":{"assignments":[3450]},"children":[{"attributes":{"constant":false,"name":"dynargs","scope":3487,"stateVariable":false,"storageLocation":"memory","type":"string[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"string[]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3448,"name":"ElementaryTypeName","src":"21358:6:5"}],"id":3449,"name":"ArrayTypeName","src":"21358:8:5"}],"id":3450,"name":"VariableDeclaration","src":"21358:23:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory[] memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (string memory[] memory)"},"children":[{"attributes":{"length":null,"type":"string[]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3451,"name":"ElementaryTypeName","src":"21388:6:5"}],"id":3452,"name":"ArrayTypeName","src":"21388:8:5"}],"id":3453,"name":"NewExpression","src":"21384:12:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":3454,"name":"Literal","src":"21397:1:5"}],"id":3455,"name":"FunctionCall","src":"21384:15:5"}],"id":3456,"name":"VariableDeclarationStatement","src":"21358:41:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3450,"type":"string memory[] memory","value":"dynargs"},"id":3457,"name":"Identifier","src":"21409:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3458,"name":"Literal","src":"21417:1:5"}],"id":3459,"name":"IndexAccess","src":"21409:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3440,"type":"string memory[3] memory","value":"args"},"id":3460,"name":"Identifier","src":"21422:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3461,"name":"Literal","src":"21427:1:5"}],"id":3462,"name":"IndexAccess","src":"21422:7:5"}],"id":3463,"name":"Assignment","src":"21409:20:5"}],"id":3464,"name":"ExpressionStatement","src":"21409:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3450,"type":"string memory[] memory","value":"dynargs"},"id":3465,"name":"Identifier","src":"21439:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":3466,"name":"Literal","src":"21447:1:5"}],"id":3467,"name":"IndexAccess","src":"21439:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3440,"type":"string memory[3] memory","value":"args"},"id":3468,"name":"Identifier","src":"21452:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":3469,"name":"Literal","src":"21457:1:5"}],"id":3470,"name":"IndexAccess","src":"21452:7:5"}],"id":3471,"name":"Assignment","src":"21439:20:5"}],"id":3472,"name":"ExpressionStatement","src":"21439:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3450,"type":"string memory[] memory","value":"dynargs"},"id":3473,"name":"Identifier","src":"21469:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":3474,"name":"Literal","src":"21477:1:5"}],"id":3475,"name":"IndexAccess","src":"21469:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3440,"type":"string memory[3] memory","value":"args"},"id":3476,"name":"Identifier","src":"21482:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":3477,"name":"Literal","src":"21487:1:5"}],"id":3478,"name":"IndexAccess","src":"21482:7:5"}],"id":3479,"name":"Assignment","src":"21469:20:5"}],"id":3480,"name":"ExpressionStatement","src":"21469:20:5"},{"attributes":{"functionReturnParameters":3446},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_string_memory_$dyn_memory_ptr","typeString":"string memory[] memory"}],"overloadedDeclarations":[2566,2608,2654,2698,2741,2786,2835,2882,2929,2978,3031,3082,3119,3159,3202,3242,3287,3335,3386,3434,3487,3543,3602,3658,3719,3783,3850,3914,3983,4055,4130,4202,4249,4298,4351,4402,4439,4479,4522,4562,4607,4655,4706,4754,4807,4863,4922,4978,5039,5103,5170,5234,5303,5375,5450,5522],"referencedDeclaration":2929,"type":"function (string memory,string memory[] memory) returns (bytes32)","value":"oraclize_query"},"id":3481,"name":"Identifier","src":"21506:14:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3436,"type":"string memory","value":"datasource"},"id":3482,"name":"Identifier","src":"21521:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3450,"type":"string memory[] memory","value":"dynargs"},"id":3483,"name":"Identifier","src":"21533:7:5"}],"id":3484,"name":"FunctionCall","src":"21506:35:5"}],"id":3485,"name":"Return","src":"21499:42:5"}],"id":3486,"name":"Block","src":"21348:200:5"}],"id":3487,"name":"FunctionDefinition","src":"21247:301:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"timestamp","scope":3543,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":3488,"name":"ElementaryTypeName","src":"21577:4:5"}],"id":3489,"name":"VariableDeclaration","src":"21577:14:5"},{"attributes":{"constant":false,"name":"datasource","scope":3543,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":3490,"name":"ElementaryTypeName","src":"21593:6:5"}],"id":3491,"name":"VariableDeclaration","src":"21593:17:5"},{"attributes":{"constant":false,"name":"args","scope":3543,"stateVariable":false,"storageLocation":"default","type":"string[3]","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"string[3]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3492,"name":"ElementaryTypeName","src":"21612:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"subdenomination":null,"token":"number","type":null,"value":"3"},"id":3493,"name":"Literal","src":"21619:1:5"}],"id":3494,"name":"ArrayTypeName","src":"21612:9:5"}],"id":3495,"name":"VariableDeclaration","src":"21612:14:5"}],"id":3496,"name":"ParameterList","src":"21576:51:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":3543,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3499,"name":"ElementaryTypeName","src":"21658:7:5"}],"id":3500,"name":"VariableDeclaration","src":"21658:10:5"}],"id":3501,"name":"ParameterList","src":"21657:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":3497,"name":"Identifier","src":"21628:11:5"}],"id":3498,"name":"ModifierInvocation","src":"21628:11:5"},{"children":[{"attributes":{"assignments":[3505]},"children":[{"attributes":{"constant":false,"name":"dynargs","scope":3543,"stateVariable":false,"storageLocation":"memory","type":"string[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"string[]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3503,"name":"ElementaryTypeName","src":"21680:6:5"}],"id":3504,"name":"ArrayTypeName","src":"21680:8:5"}],"id":3505,"name":"VariableDeclaration","src":"21680:23:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory[] memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (string memory[] memory)"},"children":[{"attributes":{"length":null,"type":"string[]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3506,"name":"ElementaryTypeName","src":"21710:6:5"}],"id":3507,"name":"ArrayTypeName","src":"21710:8:5"}],"id":3508,"name":"NewExpression","src":"21706:12:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":3509,"name":"Literal","src":"21719:1:5"}],"id":3510,"name":"FunctionCall","src":"21706:15:5"}],"id":3511,"name":"VariableDeclarationStatement","src":"21680:41:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3505,"type":"string memory[] memory","value":"dynargs"},"id":3512,"name":"Identifier","src":"21731:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3513,"name":"Literal","src":"21739:1:5"}],"id":3514,"name":"IndexAccess","src":"21731:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3495,"type":"string memory[3] memory","value":"args"},"id":3515,"name":"Identifier","src":"21744:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3516,"name":"Literal","src":"21749:1:5"}],"id":3517,"name":"IndexAccess","src":"21744:7:5"}],"id":3518,"name":"Assignment","src":"21731:20:5"}],"id":3519,"name":"ExpressionStatement","src":"21731:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3505,"type":"string memory[] memory","value":"dynargs"},"id":3520,"name":"Identifier","src":"21761:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":3521,"name":"Literal","src":"21769:1:5"}],"id":3522,"name":"IndexAccess","src":"21761:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3495,"type":"string memory[3] memory","value":"args"},"id":3523,"name":"Identifier","src":"21774:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":3524,"name":"Literal","src":"21779:1:5"}],"id":3525,"name":"IndexAccess","src":"21774:7:5"}],"id":3526,"name":"Assignment","src":"21761:20:5"}],"id":3527,"name":"ExpressionStatement","src":"21761:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3505,"type":"string memory[] memory","value":"dynargs"},"id":3528,"name":"Identifier","src":"21791:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":3529,"name":"Literal","src":"21799:1:5"}],"id":3530,"name":"IndexAccess","src":"21791:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3495,"type":"string memory[3] memory","value":"args"},"id":3531,"name":"Identifier","src":"21804:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":3532,"name":"Literal","src":"21809:1:5"}],"id":3533,"name":"IndexAccess","src":"21804:7:5"}],"id":3534,"name":"Assignment","src":"21791:20:5"}],"id":3535,"name":"ExpressionStatement","src":"21791:20:5"},{"attributes":{"functionReturnParameters":3501},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_string_memory_$dyn_memory_ptr","typeString":"string memory[] memory"}],"overloadedDeclarations":[2566,2608,2654,2698,2741,2786,2835,2882,2929,2978,3031,3082,3119,3159,3202,3242,3287,3335,3386,3434,3487,3543,3602,3658,3719,3783,3850,3914,3983,4055,4130,4202,4249,4298,4351,4402,4439,4479,4522,4562,4607,4655,4706,4754,4807,4863,4922,4978,5039,5103,5170,5234,5303,5375,5450,5522],"referencedDeclaration":2978,"type":"function (uint256,string memory,string memory[] memory) returns (bytes32)","value":"oraclize_query"},"id":3536,"name":"Identifier","src":"21828:14:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3489,"type":"uint256","value":"timestamp"},"id":3537,"name":"Identifier","src":"21843:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3491,"type":"string memory","value":"datasource"},"id":3538,"name":"Identifier","src":"21854:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3505,"type":"string memory[] memory","value":"dynargs"},"id":3539,"name":"Identifier","src":"21866:7:5"}],"id":3540,"name":"FunctionCall","src":"21828:46:5"}],"id":3541,"name":"Return","src":"21821:53:5"}],"id":3542,"name":"Block","src":"21670:211:5"}],"id":3543,"name":"FunctionDefinition","src":"21553:328:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"timestamp","scope":3602,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":3544,"name":"ElementaryTypeName","src":"21910:4:5"}],"id":3545,"name":"VariableDeclaration","src":"21910:14:5"},{"attributes":{"constant":false,"name":"datasource","scope":3602,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":3546,"name":"ElementaryTypeName","src":"21926:6:5"}],"id":3547,"name":"VariableDeclaration","src":"21926:17:5"},{"attributes":{"constant":false,"name":"args","scope":3602,"stateVariable":false,"storageLocation":"default","type":"string[3]","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"string[3]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3548,"name":"ElementaryTypeName","src":"21945:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"subdenomination":null,"token":"number","type":null,"value":"3"},"id":3549,"name":"Literal","src":"21952:1:5"}],"id":3550,"name":"ArrayTypeName","src":"21945:9:5"}],"id":3551,"name":"VariableDeclaration","src":"21945:14:5"},{"attributes":{"constant":false,"name":"gaslimit","scope":3602,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":3552,"name":"ElementaryTypeName","src":"21961:4:5"}],"id":3553,"name":"VariableDeclaration","src":"21961:13:5"}],"id":3554,"name":"ParameterList","src":"21909:66:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":3602,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3557,"name":"ElementaryTypeName","src":"22006:7:5"}],"id":3558,"name":"VariableDeclaration","src":"22006:10:5"}],"id":3559,"name":"ParameterList","src":"22005:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":3555,"name":"Identifier","src":"21976:11:5"}],"id":3556,"name":"ModifierInvocation","src":"21976:11:5"},{"children":[{"attributes":{"assignments":[3563]},"children":[{"attributes":{"constant":false,"name":"dynargs","scope":3602,"stateVariable":false,"storageLocation":"memory","type":"string[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"string[]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3561,"name":"ElementaryTypeName","src":"22028:6:5"}],"id":3562,"name":"ArrayTypeName","src":"22028:8:5"}],"id":3563,"name":"VariableDeclaration","src":"22028:23:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory[] memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (string memory[] memory)"},"children":[{"attributes":{"length":null,"type":"string[]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3564,"name":"ElementaryTypeName","src":"22058:6:5"}],"id":3565,"name":"ArrayTypeName","src":"22058:8:5"}],"id":3566,"name":"NewExpression","src":"22054:12:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":3567,"name":"Literal","src":"22067:1:5"}],"id":3568,"name":"FunctionCall","src":"22054:15:5"}],"id":3569,"name":"VariableDeclarationStatement","src":"22028:41:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3563,"type":"string memory[] memory","value":"dynargs"},"id":3570,"name":"Identifier","src":"22079:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3571,"name":"Literal","src":"22087:1:5"}],"id":3572,"name":"IndexAccess","src":"22079:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3551,"type":"string memory[3] memory","value":"args"},"id":3573,"name":"Identifier","src":"22092:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3574,"name":"Literal","src":"22097:1:5"}],"id":3575,"name":"IndexAccess","src":"22092:7:5"}],"id":3576,"name":"Assignment","src":"22079:20:5"}],"id":3577,"name":"ExpressionStatement","src":"22079:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3563,"type":"string memory[] memory","value":"dynargs"},"id":3578,"name":"Identifier","src":"22109:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":3579,"name":"Literal","src":"22117:1:5"}],"id":3580,"name":"IndexAccess","src":"22109:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3551,"type":"string memory[3] memory","value":"args"},"id":3581,"name":"Identifier","src":"22122:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":3582,"name":"Literal","src":"22127:1:5"}],"id":3583,"name":"IndexAccess","src":"22122:7:5"}],"id":3584,"name":"Assignment","src":"22109:20:5"}],"id":3585,"name":"ExpressionStatement","src":"22109:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3563,"type":"string memory[] memory","value":"dynargs"},"id":3586,"name":"Identifier","src":"22139:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":3587,"name":"Literal","src":"22147:1:5"}],"id":3588,"name":"IndexAccess","src":"22139:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3551,"type":"string memory[3] memory","value":"args"},"id":3589,"name":"Identifier","src":"22152:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":3590,"name":"Literal","src":"22157:1:5"}],"id":3591,"name":"IndexAccess","src":"22152:7:5"}],"id":3592,"name":"Assignment","src":"22139:20:5"}],"id":3593,"name":"ExpressionStatement","src":"22139:20:5"},{"attributes":{"functionReturnParameters":3559},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_string_memory_$dyn_memory_ptr","typeString":"string memory[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[2566,2608,2654,2698,2741,2786,2835,2882,2929,2978,3031,3082,3119,3159,3202,3242,3287,3335,3386,3434,3487,3543,3602,3658,3719,3783,3850,3914,3983,4055,4130,4202,4249,4298,4351,4402,4439,4479,4522,4562,4607,4655,4706,4754,4807,4863,4922,4978,5039,5103,5170,5234,5303,5375,5450,5522],"referencedDeclaration":3031,"type":"function (uint256,string memory,string memory[] memory,uint256) returns (bytes32)","value":"oraclize_query"},"id":3594,"name":"Identifier","src":"22176:14:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3545,"type":"uint256","value":"timestamp"},"id":3595,"name":"Identifier","src":"22191:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3547,"type":"string memory","value":"datasource"},"id":3596,"name":"Identifier","src":"22202:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3563,"type":"string memory[] memory","value":"dynargs"},"id":3597,"name":"Identifier","src":"22214:7:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3553,"type":"uint256","value":"gaslimit"},"id":3598,"name":"Identifier","src":"22223:8:5"}],"id":3599,"name":"FunctionCall","src":"22176:56:5"}],"id":3600,"name":"Return","src":"22169:63:5"}],"id":3601,"name":"Block","src":"22018:221:5"}],"id":3602,"name":"FunctionDefinition","src":"21886:353:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"datasource","scope":3658,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":3603,"name":"ElementaryTypeName","src":"22268:6:5"}],"id":3604,"name":"VariableDeclaration","src":"22268:17:5"},{"attributes":{"constant":false,"name":"args","scope":3658,"stateVariable":false,"storageLocation":"default","type":"string[3]","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"string[3]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3605,"name":"ElementaryTypeName","src":"22287:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"subdenomination":null,"token":"number","type":null,"value":"3"},"id":3606,"name":"Literal","src":"22294:1:5"}],"id":3607,"name":"ArrayTypeName","src":"22287:9:5"}],"id":3608,"name":"VariableDeclaration","src":"22287:14:5"},{"attributes":{"constant":false,"name":"gaslimit","scope":3658,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":3609,"name":"ElementaryTypeName","src":"22303:4:5"}],"id":3610,"name":"VariableDeclaration","src":"22303:13:5"}],"id":3611,"name":"ParameterList","src":"22267:50:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":3658,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3614,"name":"ElementaryTypeName","src":"22348:7:5"}],"id":3615,"name":"VariableDeclaration","src":"22348:10:5"}],"id":3616,"name":"ParameterList","src":"22347:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":3612,"name":"Identifier","src":"22318:11:5"}],"id":3613,"name":"ModifierInvocation","src":"22318:11:5"},{"children":[{"attributes":{"assignments":[3620]},"children":[{"attributes":{"constant":false,"name":"dynargs","scope":3658,"stateVariable":false,"storageLocation":"memory","type":"string[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"string[]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3618,"name":"ElementaryTypeName","src":"22370:6:5"}],"id":3619,"name":"ArrayTypeName","src":"22370:8:5"}],"id":3620,"name":"VariableDeclaration","src":"22370:23:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory[] memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (string memory[] memory)"},"children":[{"attributes":{"length":null,"type":"string[]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3621,"name":"ElementaryTypeName","src":"22400:6:5"}],"id":3622,"name":"ArrayTypeName","src":"22400:8:5"}],"id":3623,"name":"NewExpression","src":"22396:12:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":3624,"name":"Literal","src":"22409:1:5"}],"id":3625,"name":"FunctionCall","src":"22396:15:5"}],"id":3626,"name":"VariableDeclarationStatement","src":"22370:41:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3620,"type":"string memory[] memory","value":"dynargs"},"id":3627,"name":"Identifier","src":"22421:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3628,"name":"Literal","src":"22429:1:5"}],"id":3629,"name":"IndexAccess","src":"22421:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3608,"type":"string memory[3] memory","value":"args"},"id":3630,"name":"Identifier","src":"22434:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3631,"name":"Literal","src":"22439:1:5"}],"id":3632,"name":"IndexAccess","src":"22434:7:5"}],"id":3633,"name":"Assignment","src":"22421:20:5"}],"id":3634,"name":"ExpressionStatement","src":"22421:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3620,"type":"string memory[] memory","value":"dynargs"},"id":3635,"name":"Identifier","src":"22451:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":3636,"name":"Literal","src":"22459:1:5"}],"id":3637,"name":"IndexAccess","src":"22451:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3608,"type":"string memory[3] memory","value":"args"},"id":3638,"name":"Identifier","src":"22464:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":3639,"name":"Literal","src":"22469:1:5"}],"id":3640,"name":"IndexAccess","src":"22464:7:5"}],"id":3641,"name":"Assignment","src":"22451:20:5"}],"id":3642,"name":"ExpressionStatement","src":"22451:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3620,"type":"string memory[] memory","value":"dynargs"},"id":3643,"name":"Identifier","src":"22481:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":3644,"name":"Literal","src":"22489:1:5"}],"id":3645,"name":"IndexAccess","src":"22481:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3608,"type":"string memory[3] memory","value":"args"},"id":3646,"name":"Identifier","src":"22494:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":3647,"name":"Literal","src":"22499:1:5"}],"id":3648,"name":"IndexAccess","src":"22494:7:5"}],"id":3649,"name":"Assignment","src":"22481:20:5"}],"id":3650,"name":"ExpressionStatement","src":"22481:20:5"},{"attributes":{"functionReturnParameters":3616},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_string_memory_$dyn_memory_ptr","typeString":"string memory[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[2566,2608,2654,2698,2741,2786,2835,2882,2929,2978,3031,3082,3119,3159,3202,3242,3287,3335,3386,3434,3487,3543,3602,3658,3719,3783,3850,3914,3983,4055,4130,4202,4249,4298,4351,4402,4439,4479,4522,4562,4607,4655,4706,4754,4807,4863,4922,4978,5039,5103,5170,5234,5303,5375,5450,5522],"referencedDeclaration":3082,"type":"function (string memory,string memory[] memory,uint256) returns (bytes32)","value":"oraclize_query"},"id":3651,"name":"Identifier","src":"22518:14:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3604,"type":"string memory","value":"datasource"},"id":3652,"name":"Identifier","src":"22533:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3620,"type":"string memory[] memory","value":"dynargs"},"id":3653,"name":"Identifier","src":"22545:7:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3610,"type":"uint256","value":"gaslimit"},"id":3654,"name":"Identifier","src":"22554:8:5"}],"id":3655,"name":"FunctionCall","src":"22518:45:5"}],"id":3656,"name":"Return","src":"22511:52:5"}],"id":3657,"name":"Block","src":"22360:210:5"}],"id":3658,"name":"FunctionDefinition","src":"22244:326:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"datasource","scope":3719,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":3659,"name":"ElementaryTypeName","src":"22600:6:5"}],"id":3660,"name":"VariableDeclaration","src":"22600:17:5"},{"attributes":{"constant":false,"name":"args","scope":3719,"stateVariable":false,"storageLocation":"default","type":"string[4]","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"string[4]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3661,"name":"ElementaryTypeName","src":"22619:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"subdenomination":null,"token":"number","type":null,"value":"4"},"id":3662,"name":"Literal","src":"22626:1:5"}],"id":3663,"name":"ArrayTypeName","src":"22619:9:5"}],"id":3664,"name":"VariableDeclaration","src":"22619:14:5"}],"id":3665,"name":"ParameterList","src":"22599:35:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":3719,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3668,"name":"ElementaryTypeName","src":"22665:7:5"}],"id":3669,"name":"VariableDeclaration","src":"22665:10:5"}],"id":3670,"name":"ParameterList","src":"22664:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":3666,"name":"Identifier","src":"22635:11:5"}],"id":3667,"name":"ModifierInvocation","src":"22635:11:5"},{"children":[{"attributes":{"assignments":[3674]},"children":[{"attributes":{"constant":false,"name":"dynargs","scope":3719,"stateVariable":false,"storageLocation":"memory","type":"string[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"string[]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3672,"name":"ElementaryTypeName","src":"22687:6:5"}],"id":3673,"name":"ArrayTypeName","src":"22687:8:5"}],"id":3674,"name":"VariableDeclaration","src":"22687:23:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory[] memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (string memory[] memory)"},"children":[{"attributes":{"length":null,"type":"string[]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3675,"name":"ElementaryTypeName","src":"22717:6:5"}],"id":3676,"name":"ArrayTypeName","src":"22717:8:5"}],"id":3677,"name":"NewExpression","src":"22713:12:5"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":3678,"name":"Literal","src":"22726:1:5"}],"id":3679,"name":"FunctionCall","src":"22713:15:5"}],"id":3680,"name":"VariableDeclarationStatement","src":"22687:41:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3674,"type":"string memory[] memory","value":"dynargs"},"id":3681,"name":"Identifier","src":"22738:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3682,"name":"Literal","src":"22746:1:5"}],"id":3683,"name":"IndexAccess","src":"22738:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3664,"type":"string memory[4] memory","value":"args"},"id":3684,"name":"Identifier","src":"22751:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3685,"name":"Literal","src":"22756:1:5"}],"id":3686,"name":"IndexAccess","src":"22751:7:5"}],"id":3687,"name":"Assignment","src":"22738:20:5"}],"id":3688,"name":"ExpressionStatement","src":"22738:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3674,"type":"string memory[] memory","value":"dynargs"},"id":3689,"name":"Identifier","src":"22768:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":3690,"name":"Literal","src":"22776:1:5"}],"id":3691,"name":"IndexAccess","src":"22768:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3664,"type":"string memory[4] memory","value":"args"},"id":3692,"name":"Identifier","src":"22781:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":3693,"name":"Literal","src":"22786:1:5"}],"id":3694,"name":"IndexAccess","src":"22781:7:5"}],"id":3695,"name":"Assignment","src":"22768:20:5"}],"id":3696,"name":"ExpressionStatement","src":"22768:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3674,"type":"string memory[] memory","value":"dynargs"},"id":3697,"name":"Identifier","src":"22798:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":3698,"name":"Literal","src":"22806:1:5"}],"id":3699,"name":"IndexAccess","src":"22798:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3664,"type":"string memory[4] memory","value":"args"},"id":3700,"name":"Identifier","src":"22811:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":3701,"name":"Literal","src":"22816:1:5"}],"id":3702,"name":"IndexAccess","src":"22811:7:5"}],"id":3703,"name":"Assignment","src":"22798:20:5"}],"id":3704,"name":"ExpressionStatement","src":"22798:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3674,"type":"string memory[] memory","value":"dynargs"},"id":3705,"name":"Identifier","src":"22828:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":3706,"name":"Literal","src":"22836:1:5"}],"id":3707,"name":"IndexAccess","src":"22828:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3664,"type":"string memory[4] memory","value":"args"},"id":3708,"name":"Identifier","src":"22841:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":3709,"name":"Literal","src":"22846:1:5"}],"id":3710,"name":"IndexAccess","src":"22841:7:5"}],"id":3711,"name":"Assignment","src":"22828:20:5"}],"id":3712,"name":"ExpressionStatement","src":"22828:20:5"},{"attributes":{"functionReturnParameters":3670},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_string_memory_$dyn_memory_ptr","typeString":"string memory[] memory"}],"overloadedDeclarations":[2566,2608,2654,2698,2741,2786,2835,2882,2929,2978,3031,3082,3119,3159,3202,3242,3287,3335,3386,3434,3487,3543,3602,3658,3719,3783,3850,3914,3983,4055,4130,4202,4249,4298,4351,4402,4439,4479,4522,4562,4607,4655,4706,4754,4807,4863,4922,4978,5039,5103,5170,5234,5303,5375,5450,5522],"referencedDeclaration":2929,"type":"function (string memory,string memory[] memory) returns (bytes32)","value":"oraclize_query"},"id":3713,"name":"Identifier","src":"22865:14:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3660,"type":"string memory","value":"datasource"},"id":3714,"name":"Identifier","src":"22880:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3674,"type":"string memory[] memory","value":"dynargs"},"id":3715,"name":"Identifier","src":"22892:7:5"}],"id":3716,"name":"FunctionCall","src":"22865:35:5"}],"id":3717,"name":"Return","src":"22858:42:5"}],"id":3718,"name":"Block","src":"22677:230:5"}],"id":3719,"name":"FunctionDefinition","src":"22576:331:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"timestamp","scope":3783,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":3720,"name":"ElementaryTypeName","src":"22936:4:5"}],"id":3721,"name":"VariableDeclaration","src":"22936:14:5"},{"attributes":{"constant":false,"name":"datasource","scope":3783,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":3722,"name":"ElementaryTypeName","src":"22952:6:5"}],"id":3723,"name":"VariableDeclaration","src":"22952:17:5"},{"attributes":{"constant":false,"name":"args","scope":3783,"stateVariable":false,"storageLocation":"default","type":"string[4]","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"string[4]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3724,"name":"ElementaryTypeName","src":"22971:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"subdenomination":null,"token":"number","type":null,"value":"4"},"id":3725,"name":"Literal","src":"22978:1:5"}],"id":3726,"name":"ArrayTypeName","src":"22971:9:5"}],"id":3727,"name":"VariableDeclaration","src":"22971:14:5"}],"id":3728,"name":"ParameterList","src":"22935:51:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":3783,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3731,"name":"ElementaryTypeName","src":"23017:7:5"}],"id":3732,"name":"VariableDeclaration","src":"23017:10:5"}],"id":3733,"name":"ParameterList","src":"23016:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":3729,"name":"Identifier","src":"22987:11:5"}],"id":3730,"name":"ModifierInvocation","src":"22987:11:5"},{"children":[{"attributes":{"assignments":[3737]},"children":[{"attributes":{"constant":false,"name":"dynargs","scope":3783,"stateVariable":false,"storageLocation":"memory","type":"string[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"string[]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3735,"name":"ElementaryTypeName","src":"23039:6:5"}],"id":3736,"name":"ArrayTypeName","src":"23039:8:5"}],"id":3737,"name":"VariableDeclaration","src":"23039:23:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory[] memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (string memory[] memory)"},"children":[{"attributes":{"length":null,"type":"string[]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3738,"name":"ElementaryTypeName","src":"23069:6:5"}],"id":3739,"name":"ArrayTypeName","src":"23069:8:5"}],"id":3740,"name":"NewExpression","src":"23065:12:5"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":3741,"name":"Literal","src":"23078:1:5"}],"id":3742,"name":"FunctionCall","src":"23065:15:5"}],"id":3743,"name":"VariableDeclarationStatement","src":"23039:41:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3737,"type":"string memory[] memory","value":"dynargs"},"id":3744,"name":"Identifier","src":"23090:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3745,"name":"Literal","src":"23098:1:5"}],"id":3746,"name":"IndexAccess","src":"23090:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3727,"type":"string memory[4] memory","value":"args"},"id":3747,"name":"Identifier","src":"23103:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3748,"name":"Literal","src":"23108:1:5"}],"id":3749,"name":"IndexAccess","src":"23103:7:5"}],"id":3750,"name":"Assignment","src":"23090:20:5"}],"id":3751,"name":"ExpressionStatement","src":"23090:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3737,"type":"string memory[] memory","value":"dynargs"},"id":3752,"name":"Identifier","src":"23120:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":3753,"name":"Literal","src":"23128:1:5"}],"id":3754,"name":"IndexAccess","src":"23120:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3727,"type":"string memory[4] memory","value":"args"},"id":3755,"name":"Identifier","src":"23133:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":3756,"name":"Literal","src":"23138:1:5"}],"id":3757,"name":"IndexAccess","src":"23133:7:5"}],"id":3758,"name":"Assignment","src":"23120:20:5"}],"id":3759,"name":"ExpressionStatement","src":"23120:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3737,"type":"string memory[] memory","value":"dynargs"},"id":3760,"name":"Identifier","src":"23150:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":3761,"name":"Literal","src":"23158:1:5"}],"id":3762,"name":"IndexAccess","src":"23150:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3727,"type":"string memory[4] memory","value":"args"},"id":3763,"name":"Identifier","src":"23163:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":3764,"name":"Literal","src":"23168:1:5"}],"id":3765,"name":"IndexAccess","src":"23163:7:5"}],"id":3766,"name":"Assignment","src":"23150:20:5"}],"id":3767,"name":"ExpressionStatement","src":"23150:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3737,"type":"string memory[] memory","value":"dynargs"},"id":3768,"name":"Identifier","src":"23180:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":3769,"name":"Literal","src":"23188:1:5"}],"id":3770,"name":"IndexAccess","src":"23180:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3727,"type":"string memory[4] memory","value":"args"},"id":3771,"name":"Identifier","src":"23193:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":3772,"name":"Literal","src":"23198:1:5"}],"id":3773,"name":"IndexAccess","src":"23193:7:5"}],"id":3774,"name":"Assignment","src":"23180:20:5"}],"id":3775,"name":"ExpressionStatement","src":"23180:20:5"},{"attributes":{"functionReturnParameters":3733},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_string_memory_$dyn_memory_ptr","typeString":"string memory[] memory"}],"overloadedDeclarations":[2566,2608,2654,2698,2741,2786,2835,2882,2929,2978,3031,3082,3119,3159,3202,3242,3287,3335,3386,3434,3487,3543,3602,3658,3719,3783,3850,3914,3983,4055,4130,4202,4249,4298,4351,4402,4439,4479,4522,4562,4607,4655,4706,4754,4807,4863,4922,4978,5039,5103,5170,5234,5303,5375,5450,5522],"referencedDeclaration":2978,"type":"function (uint256,string memory,string memory[] memory) returns (bytes32)","value":"oraclize_query"},"id":3776,"name":"Identifier","src":"23217:14:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3721,"type":"uint256","value":"timestamp"},"id":3777,"name":"Identifier","src":"23232:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3723,"type":"string memory","value":"datasource"},"id":3778,"name":"Identifier","src":"23243:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3737,"type":"string memory[] memory","value":"dynargs"},"id":3779,"name":"Identifier","src":"23255:7:5"}],"id":3780,"name":"FunctionCall","src":"23217:46:5"}],"id":3781,"name":"Return","src":"23210:53:5"}],"id":3782,"name":"Block","src":"23029:241:5"}],"id":3783,"name":"FunctionDefinition","src":"22912:358:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"timestamp","scope":3850,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":3784,"name":"ElementaryTypeName","src":"23299:4:5"}],"id":3785,"name":"VariableDeclaration","src":"23299:14:5"},{"attributes":{"constant":false,"name":"datasource","scope":3850,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":3786,"name":"ElementaryTypeName","src":"23315:6:5"}],"id":3787,"name":"VariableDeclaration","src":"23315:17:5"},{"attributes":{"constant":false,"name":"args","scope":3850,"stateVariable":false,"storageLocation":"default","type":"string[4]","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"string[4]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3788,"name":"ElementaryTypeName","src":"23334:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"subdenomination":null,"token":"number","type":null,"value":"4"},"id":3789,"name":"Literal","src":"23341:1:5"}],"id":3790,"name":"ArrayTypeName","src":"23334:9:5"}],"id":3791,"name":"VariableDeclaration","src":"23334:14:5"},{"attributes":{"constant":false,"name":"gaslimit","scope":3850,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":3792,"name":"ElementaryTypeName","src":"23350:4:5"}],"id":3793,"name":"VariableDeclaration","src":"23350:13:5"}],"id":3794,"name":"ParameterList","src":"23298:66:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":3850,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3797,"name":"ElementaryTypeName","src":"23395:7:5"}],"id":3798,"name":"VariableDeclaration","src":"23395:10:5"}],"id":3799,"name":"ParameterList","src":"23394:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":3795,"name":"Identifier","src":"23365:11:5"}],"id":3796,"name":"ModifierInvocation","src":"23365:11:5"},{"children":[{"attributes":{"assignments":[3803]},"children":[{"attributes":{"constant":false,"name":"dynargs","scope":3850,"stateVariable":false,"storageLocation":"memory","type":"string[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"string[]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3801,"name":"ElementaryTypeName","src":"23417:6:5"}],"id":3802,"name":"ArrayTypeName","src":"23417:8:5"}],"id":3803,"name":"VariableDeclaration","src":"23417:23:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory[] memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (string memory[] memory)"},"children":[{"attributes":{"length":null,"type":"string[]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3804,"name":"ElementaryTypeName","src":"23447:6:5"}],"id":3805,"name":"ArrayTypeName","src":"23447:8:5"}],"id":3806,"name":"NewExpression","src":"23443:12:5"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":3807,"name":"Literal","src":"23456:1:5"}],"id":3808,"name":"FunctionCall","src":"23443:15:5"}],"id":3809,"name":"VariableDeclarationStatement","src":"23417:41:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3803,"type":"string memory[] memory","value":"dynargs"},"id":3810,"name":"Identifier","src":"23468:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3811,"name":"Literal","src":"23476:1:5"}],"id":3812,"name":"IndexAccess","src":"23468:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3791,"type":"string memory[4] memory","value":"args"},"id":3813,"name":"Identifier","src":"23481:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3814,"name":"Literal","src":"23486:1:5"}],"id":3815,"name":"IndexAccess","src":"23481:7:5"}],"id":3816,"name":"Assignment","src":"23468:20:5"}],"id":3817,"name":"ExpressionStatement","src":"23468:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3803,"type":"string memory[] memory","value":"dynargs"},"id":3818,"name":"Identifier","src":"23498:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":3819,"name":"Literal","src":"23506:1:5"}],"id":3820,"name":"IndexAccess","src":"23498:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3791,"type":"string memory[4] memory","value":"args"},"id":3821,"name":"Identifier","src":"23511:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":3822,"name":"Literal","src":"23516:1:5"}],"id":3823,"name":"IndexAccess","src":"23511:7:5"}],"id":3824,"name":"Assignment","src":"23498:20:5"}],"id":3825,"name":"ExpressionStatement","src":"23498:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3803,"type":"string memory[] memory","value":"dynargs"},"id":3826,"name":"Identifier","src":"23528:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":3827,"name":"Literal","src":"23536:1:5"}],"id":3828,"name":"IndexAccess","src":"23528:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3791,"type":"string memory[4] memory","value":"args"},"id":3829,"name":"Identifier","src":"23541:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":3830,"name":"Literal","src":"23546:1:5"}],"id":3831,"name":"IndexAccess","src":"23541:7:5"}],"id":3832,"name":"Assignment","src":"23528:20:5"}],"id":3833,"name":"ExpressionStatement","src":"23528:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3803,"type":"string memory[] memory","value":"dynargs"},"id":3834,"name":"Identifier","src":"23558:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":3835,"name":"Literal","src":"23566:1:5"}],"id":3836,"name":"IndexAccess","src":"23558:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3791,"type":"string memory[4] memory","value":"args"},"id":3837,"name":"Identifier","src":"23571:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":3838,"name":"Literal","src":"23576:1:5"}],"id":3839,"name":"IndexAccess","src":"23571:7:5"}],"id":3840,"name":"Assignment","src":"23558:20:5"}],"id":3841,"name":"ExpressionStatement","src":"23558:20:5"},{"attributes":{"functionReturnParameters":3799},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_string_memory_$dyn_memory_ptr","typeString":"string memory[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[2566,2608,2654,2698,2741,2786,2835,2882,2929,2978,3031,3082,3119,3159,3202,3242,3287,3335,3386,3434,3487,3543,3602,3658,3719,3783,3850,3914,3983,4055,4130,4202,4249,4298,4351,4402,4439,4479,4522,4562,4607,4655,4706,4754,4807,4863,4922,4978,5039,5103,5170,5234,5303,5375,5450,5522],"referencedDeclaration":3031,"type":"function (uint256,string memory,string memory[] memory,uint256) returns (bytes32)","value":"oraclize_query"},"id":3842,"name":"Identifier","src":"23595:14:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3785,"type":"uint256","value":"timestamp"},"id":3843,"name":"Identifier","src":"23610:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3787,"type":"string memory","value":"datasource"},"id":3844,"name":"Identifier","src":"23621:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3803,"type":"string memory[] memory","value":"dynargs"},"id":3845,"name":"Identifier","src":"23633:7:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3793,"type":"uint256","value":"gaslimit"},"id":3846,"name":"Identifier","src":"23642:8:5"}],"id":3847,"name":"FunctionCall","src":"23595:56:5"}],"id":3848,"name":"Return","src":"23588:63:5"}],"id":3849,"name":"Block","src":"23407:251:5"}],"id":3850,"name":"FunctionDefinition","src":"23275:383:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"datasource","scope":3914,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":3851,"name":"ElementaryTypeName","src":"23687:6:5"}],"id":3852,"name":"VariableDeclaration","src":"23687:17:5"},{"attributes":{"constant":false,"name":"args","scope":3914,"stateVariable":false,"storageLocation":"default","type":"string[4]","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"string[4]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3853,"name":"ElementaryTypeName","src":"23706:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"subdenomination":null,"token":"number","type":null,"value":"4"},"id":3854,"name":"Literal","src":"23713:1:5"}],"id":3855,"name":"ArrayTypeName","src":"23706:9:5"}],"id":3856,"name":"VariableDeclaration","src":"23706:14:5"},{"attributes":{"constant":false,"name":"gaslimit","scope":3914,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":3857,"name":"ElementaryTypeName","src":"23722:4:5"}],"id":3858,"name":"VariableDeclaration","src":"23722:13:5"}],"id":3859,"name":"ParameterList","src":"23686:50:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":3914,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3862,"name":"ElementaryTypeName","src":"23767:7:5"}],"id":3863,"name":"VariableDeclaration","src":"23767:10:5"}],"id":3864,"name":"ParameterList","src":"23766:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":3860,"name":"Identifier","src":"23737:11:5"}],"id":3861,"name":"ModifierInvocation","src":"23737:11:5"},{"children":[{"attributes":{"assignments":[3868]},"children":[{"attributes":{"constant":false,"name":"dynargs","scope":3914,"stateVariable":false,"storageLocation":"memory","type":"string[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"string[]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3866,"name":"ElementaryTypeName","src":"23789:6:5"}],"id":3867,"name":"ArrayTypeName","src":"23789:8:5"}],"id":3868,"name":"VariableDeclaration","src":"23789:23:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory[] memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (string memory[] memory)"},"children":[{"attributes":{"length":null,"type":"string[]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3869,"name":"ElementaryTypeName","src":"23819:6:5"}],"id":3870,"name":"ArrayTypeName","src":"23819:8:5"}],"id":3871,"name":"NewExpression","src":"23815:12:5"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":3872,"name":"Literal","src":"23828:1:5"}],"id":3873,"name":"FunctionCall","src":"23815:15:5"}],"id":3874,"name":"VariableDeclarationStatement","src":"23789:41:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3868,"type":"string memory[] memory","value":"dynargs"},"id":3875,"name":"Identifier","src":"23840:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3876,"name":"Literal","src":"23848:1:5"}],"id":3877,"name":"IndexAccess","src":"23840:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3856,"type":"string memory[4] memory","value":"args"},"id":3878,"name":"Identifier","src":"23853:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3879,"name":"Literal","src":"23858:1:5"}],"id":3880,"name":"IndexAccess","src":"23853:7:5"}],"id":3881,"name":"Assignment","src":"23840:20:5"}],"id":3882,"name":"ExpressionStatement","src":"23840:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3868,"type":"string memory[] memory","value":"dynargs"},"id":3883,"name":"Identifier","src":"23870:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":3884,"name":"Literal","src":"23878:1:5"}],"id":3885,"name":"IndexAccess","src":"23870:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3856,"type":"string memory[4] memory","value":"args"},"id":3886,"name":"Identifier","src":"23883:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":3887,"name":"Literal","src":"23888:1:5"}],"id":3888,"name":"IndexAccess","src":"23883:7:5"}],"id":3889,"name":"Assignment","src":"23870:20:5"}],"id":3890,"name":"ExpressionStatement","src":"23870:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3868,"type":"string memory[] memory","value":"dynargs"},"id":3891,"name":"Identifier","src":"23900:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":3892,"name":"Literal","src":"23908:1:5"}],"id":3893,"name":"IndexAccess","src":"23900:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3856,"type":"string memory[4] memory","value":"args"},"id":3894,"name":"Identifier","src":"23913:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":3895,"name":"Literal","src":"23918:1:5"}],"id":3896,"name":"IndexAccess","src":"23913:7:5"}],"id":3897,"name":"Assignment","src":"23900:20:5"}],"id":3898,"name":"ExpressionStatement","src":"23900:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3868,"type":"string memory[] memory","value":"dynargs"},"id":3899,"name":"Identifier","src":"23930:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":3900,"name":"Literal","src":"23938:1:5"}],"id":3901,"name":"IndexAccess","src":"23930:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3856,"type":"string memory[4] memory","value":"args"},"id":3902,"name":"Identifier","src":"23943:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":3903,"name":"Literal","src":"23948:1:5"}],"id":3904,"name":"IndexAccess","src":"23943:7:5"}],"id":3905,"name":"Assignment","src":"23930:20:5"}],"id":3906,"name":"ExpressionStatement","src":"23930:20:5"},{"attributes":{"functionReturnParameters":3864},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_string_memory_$dyn_memory_ptr","typeString":"string memory[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[2566,2608,2654,2698,2741,2786,2835,2882,2929,2978,3031,3082,3119,3159,3202,3242,3287,3335,3386,3434,3487,3543,3602,3658,3719,3783,3850,3914,3983,4055,4130,4202,4249,4298,4351,4402,4439,4479,4522,4562,4607,4655,4706,4754,4807,4863,4922,4978,5039,5103,5170,5234,5303,5375,5450,5522],"referencedDeclaration":3082,"type":"function (string memory,string memory[] memory,uint256) returns (bytes32)","value":"oraclize_query"},"id":3907,"name":"Identifier","src":"23967:14:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3852,"type":"string memory","value":"datasource"},"id":3908,"name":"Identifier","src":"23982:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3868,"type":"string memory[] memory","value":"dynargs"},"id":3909,"name":"Identifier","src":"23994:7:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3858,"type":"uint256","value":"gaslimit"},"id":3910,"name":"Identifier","src":"24003:8:5"}],"id":3911,"name":"FunctionCall","src":"23967:45:5"}],"id":3912,"name":"Return","src":"23960:52:5"}],"id":3913,"name":"Block","src":"23779:240:5"}],"id":3914,"name":"FunctionDefinition","src":"23663:356:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"datasource","scope":3983,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":3915,"name":"ElementaryTypeName","src":"24048:6:5"}],"id":3916,"name":"VariableDeclaration","src":"24048:17:5"},{"attributes":{"constant":false,"name":"args","scope":3983,"stateVariable":false,"storageLocation":"default","type":"string[5]","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"string[5]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3917,"name":"ElementaryTypeName","src":"24067:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"35","isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"subdenomination":null,"token":"number","type":null,"value":"5"},"id":3918,"name":"Literal","src":"24074:1:5"}],"id":3919,"name":"ArrayTypeName","src":"24067:9:5"}],"id":3920,"name":"VariableDeclaration","src":"24067:14:5"}],"id":3921,"name":"ParameterList","src":"24047:35:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":3983,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3924,"name":"ElementaryTypeName","src":"24113:7:5"}],"id":3925,"name":"VariableDeclaration","src":"24113:10:5"}],"id":3926,"name":"ParameterList","src":"24112:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":3922,"name":"Identifier","src":"24083:11:5"}],"id":3923,"name":"ModifierInvocation","src":"24083:11:5"},{"children":[{"attributes":{"assignments":[3930]},"children":[{"attributes":{"constant":false,"name":"dynargs","scope":3983,"stateVariable":false,"storageLocation":"memory","type":"string[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"string[]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3928,"name":"ElementaryTypeName","src":"24135:6:5"}],"id":3929,"name":"ArrayTypeName","src":"24135:8:5"}],"id":3930,"name":"VariableDeclaration","src":"24135:23:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory[] memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (string memory[] memory)"},"children":[{"attributes":{"length":null,"type":"string[]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3931,"name":"ElementaryTypeName","src":"24165:6:5"}],"id":3932,"name":"ArrayTypeName","src":"24165:8:5"}],"id":3933,"name":"NewExpression","src":"24161:12:5"},{"attributes":{"argumentTypes":null,"hexvalue":"35","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 5","value":"5"},"id":3934,"name":"Literal","src":"24174:1:5"}],"id":3935,"name":"FunctionCall","src":"24161:15:5"}],"id":3936,"name":"VariableDeclarationStatement","src":"24135:41:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3930,"type":"string memory[] memory","value":"dynargs"},"id":3937,"name":"Identifier","src":"24186:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3938,"name":"Literal","src":"24194:1:5"}],"id":3939,"name":"IndexAccess","src":"24186:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3920,"type":"string memory[5] memory","value":"args"},"id":3940,"name":"Identifier","src":"24199:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3941,"name":"Literal","src":"24204:1:5"}],"id":3942,"name":"IndexAccess","src":"24199:7:5"}],"id":3943,"name":"Assignment","src":"24186:20:5"}],"id":3944,"name":"ExpressionStatement","src":"24186:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3930,"type":"string memory[] memory","value":"dynargs"},"id":3945,"name":"Identifier","src":"24216:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":3946,"name":"Literal","src":"24224:1:5"}],"id":3947,"name":"IndexAccess","src":"24216:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3920,"type":"string memory[5] memory","value":"args"},"id":3948,"name":"Identifier","src":"24229:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":3949,"name":"Literal","src":"24234:1:5"}],"id":3950,"name":"IndexAccess","src":"24229:7:5"}],"id":3951,"name":"Assignment","src":"24216:20:5"}],"id":3952,"name":"ExpressionStatement","src":"24216:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3930,"type":"string memory[] memory","value":"dynargs"},"id":3953,"name":"Identifier","src":"24246:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":3954,"name":"Literal","src":"24254:1:5"}],"id":3955,"name":"IndexAccess","src":"24246:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3920,"type":"string memory[5] memory","value":"args"},"id":3956,"name":"Identifier","src":"24259:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":3957,"name":"Literal","src":"24264:1:5"}],"id":3958,"name":"IndexAccess","src":"24259:7:5"}],"id":3959,"name":"Assignment","src":"24246:20:5"}],"id":3960,"name":"ExpressionStatement","src":"24246:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3930,"type":"string memory[] memory","value":"dynargs"},"id":3961,"name":"Identifier","src":"24276:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":3962,"name":"Literal","src":"24284:1:5"}],"id":3963,"name":"IndexAccess","src":"24276:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3920,"type":"string memory[5] memory","value":"args"},"id":3964,"name":"Identifier","src":"24289:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":3965,"name":"Literal","src":"24294:1:5"}],"id":3966,"name":"IndexAccess","src":"24289:7:5"}],"id":3967,"name":"Assignment","src":"24276:20:5"}],"id":3968,"name":"ExpressionStatement","src":"24276:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3930,"type":"string memory[] memory","value":"dynargs"},"id":3969,"name":"Identifier","src":"24306:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":3970,"name":"Literal","src":"24314:1:5"}],"id":3971,"name":"IndexAccess","src":"24306:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3920,"type":"string memory[5] memory","value":"args"},"id":3972,"name":"Identifier","src":"24319:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":3973,"name":"Literal","src":"24324:1:5"}],"id":3974,"name":"IndexAccess","src":"24319:7:5"}],"id":3975,"name":"Assignment","src":"24306:20:5"}],"id":3976,"name":"ExpressionStatement","src":"24306:20:5"},{"attributes":{"functionReturnParameters":3926},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_string_memory_$dyn_memory_ptr","typeString":"string memory[] memory"}],"overloadedDeclarations":[2566,2608,2654,2698,2741,2786,2835,2882,2929,2978,3031,3082,3119,3159,3202,3242,3287,3335,3386,3434,3487,3543,3602,3658,3719,3783,3850,3914,3983,4055,4130,4202,4249,4298,4351,4402,4439,4479,4522,4562,4607,4655,4706,4754,4807,4863,4922,4978,5039,5103,5170,5234,5303,5375,5450,5522],"referencedDeclaration":2929,"type":"function (string memory,string memory[] memory) returns (bytes32)","value":"oraclize_query"},"id":3977,"name":"Identifier","src":"24343:14:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3916,"type":"string memory","value":"datasource"},"id":3978,"name":"Identifier","src":"24358:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3930,"type":"string memory[] memory","value":"dynargs"},"id":3979,"name":"Identifier","src":"24370:7:5"}],"id":3980,"name":"FunctionCall","src":"24343:35:5"}],"id":3981,"name":"Return","src":"24336:42:5"}],"id":3982,"name":"Block","src":"24125:260:5"}],"id":3983,"name":"FunctionDefinition","src":"24024:361:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"timestamp","scope":4055,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":3984,"name":"ElementaryTypeName","src":"24414:4:5"}],"id":3985,"name":"VariableDeclaration","src":"24414:14:5"},{"attributes":{"constant":false,"name":"datasource","scope":4055,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":3986,"name":"ElementaryTypeName","src":"24430:6:5"}],"id":3987,"name":"VariableDeclaration","src":"24430:17:5"},{"attributes":{"constant":false,"name":"args","scope":4055,"stateVariable":false,"storageLocation":"default","type":"string[5]","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"string[5]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3988,"name":"ElementaryTypeName","src":"24449:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"35","isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"subdenomination":null,"token":"number","type":null,"value":"5"},"id":3989,"name":"Literal","src":"24456:1:5"}],"id":3990,"name":"ArrayTypeName","src":"24449:9:5"}],"id":3991,"name":"VariableDeclaration","src":"24449:14:5"}],"id":3992,"name":"ParameterList","src":"24413:51:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":4055,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3995,"name":"ElementaryTypeName","src":"24495:7:5"}],"id":3996,"name":"VariableDeclaration","src":"24495:10:5"}],"id":3997,"name":"ParameterList","src":"24494:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":3993,"name":"Identifier","src":"24465:11:5"}],"id":3994,"name":"ModifierInvocation","src":"24465:11:5"},{"children":[{"attributes":{"assignments":[4001]},"children":[{"attributes":{"constant":false,"name":"dynargs","scope":4055,"stateVariable":false,"storageLocation":"memory","type":"string[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"string[]"},"children":[{"attributes":{"name":"string","type":"string"},"id":3999,"name":"ElementaryTypeName","src":"24517:6:5"}],"id":4000,"name":"ArrayTypeName","src":"24517:8:5"}],"id":4001,"name":"VariableDeclaration","src":"24517:23:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory[] memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (string memory[] memory)"},"children":[{"attributes":{"length":null,"type":"string[]"},"children":[{"attributes":{"name":"string","type":"string"},"id":4002,"name":"ElementaryTypeName","src":"24547:6:5"}],"id":4003,"name":"ArrayTypeName","src":"24547:8:5"}],"id":4004,"name":"NewExpression","src":"24543:12:5"},{"attributes":{"argumentTypes":null,"hexvalue":"35","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 5","value":"5"},"id":4005,"name":"Literal","src":"24556:1:5"}],"id":4006,"name":"FunctionCall","src":"24543:15:5"}],"id":4007,"name":"VariableDeclarationStatement","src":"24517:41:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4001,"type":"string memory[] memory","value":"dynargs"},"id":4008,"name":"Identifier","src":"24568:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4009,"name":"Literal","src":"24576:1:5"}],"id":4010,"name":"IndexAccess","src":"24568:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3991,"type":"string memory[5] memory","value":"args"},"id":4011,"name":"Identifier","src":"24581:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4012,"name":"Literal","src":"24586:1:5"}],"id":4013,"name":"IndexAccess","src":"24581:7:5"}],"id":4014,"name":"Assignment","src":"24568:20:5"}],"id":4015,"name":"ExpressionStatement","src":"24568:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4001,"type":"string memory[] memory","value":"dynargs"},"id":4016,"name":"Identifier","src":"24598:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":4017,"name":"Literal","src":"24606:1:5"}],"id":4018,"name":"IndexAccess","src":"24598:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3991,"type":"string memory[5] memory","value":"args"},"id":4019,"name":"Identifier","src":"24611:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":4020,"name":"Literal","src":"24616:1:5"}],"id":4021,"name":"IndexAccess","src":"24611:7:5"}],"id":4022,"name":"Assignment","src":"24598:20:5"}],"id":4023,"name":"ExpressionStatement","src":"24598:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4001,"type":"string memory[] memory","value":"dynargs"},"id":4024,"name":"Identifier","src":"24628:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":4025,"name":"Literal","src":"24636:1:5"}],"id":4026,"name":"IndexAccess","src":"24628:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3991,"type":"string memory[5] memory","value":"args"},"id":4027,"name":"Identifier","src":"24641:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":4028,"name":"Literal","src":"24646:1:5"}],"id":4029,"name":"IndexAccess","src":"24641:7:5"}],"id":4030,"name":"Assignment","src":"24628:20:5"}],"id":4031,"name":"ExpressionStatement","src":"24628:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4001,"type":"string memory[] memory","value":"dynargs"},"id":4032,"name":"Identifier","src":"24658:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":4033,"name":"Literal","src":"24666:1:5"}],"id":4034,"name":"IndexAccess","src":"24658:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3991,"type":"string memory[5] memory","value":"args"},"id":4035,"name":"Identifier","src":"24671:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":4036,"name":"Literal","src":"24676:1:5"}],"id":4037,"name":"IndexAccess","src":"24671:7:5"}],"id":4038,"name":"Assignment","src":"24658:20:5"}],"id":4039,"name":"ExpressionStatement","src":"24658:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4001,"type":"string memory[] memory","value":"dynargs"},"id":4040,"name":"Identifier","src":"24688:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":4041,"name":"Literal","src":"24696:1:5"}],"id":4042,"name":"IndexAccess","src":"24688:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3991,"type":"string memory[5] memory","value":"args"},"id":4043,"name":"Identifier","src":"24701:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":4044,"name":"Literal","src":"24706:1:5"}],"id":4045,"name":"IndexAccess","src":"24701:7:5"}],"id":4046,"name":"Assignment","src":"24688:20:5"}],"id":4047,"name":"ExpressionStatement","src":"24688:20:5"},{"attributes":{"functionReturnParameters":3997},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_string_memory_$dyn_memory_ptr","typeString":"string memory[] memory"}],"overloadedDeclarations":[2566,2608,2654,2698,2741,2786,2835,2882,2929,2978,3031,3082,3119,3159,3202,3242,3287,3335,3386,3434,3487,3543,3602,3658,3719,3783,3850,3914,3983,4055,4130,4202,4249,4298,4351,4402,4439,4479,4522,4562,4607,4655,4706,4754,4807,4863,4922,4978,5039,5103,5170,5234,5303,5375,5450,5522],"referencedDeclaration":2978,"type":"function (uint256,string memory,string memory[] memory) returns (bytes32)","value":"oraclize_query"},"id":4048,"name":"Identifier","src":"24725:14:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3985,"type":"uint256","value":"timestamp"},"id":4049,"name":"Identifier","src":"24740:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3987,"type":"string memory","value":"datasource"},"id":4050,"name":"Identifier","src":"24751:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4001,"type":"string memory[] memory","value":"dynargs"},"id":4051,"name":"Identifier","src":"24763:7:5"}],"id":4052,"name":"FunctionCall","src":"24725:46:5"}],"id":4053,"name":"Return","src":"24718:53:5"}],"id":4054,"name":"Block","src":"24507:271:5"}],"id":4055,"name":"FunctionDefinition","src":"24390:388:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"timestamp","scope":4130,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4056,"name":"ElementaryTypeName","src":"24807:4:5"}],"id":4057,"name":"VariableDeclaration","src":"24807:14:5"},{"attributes":{"constant":false,"name":"datasource","scope":4130,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":4058,"name":"ElementaryTypeName","src":"24823:6:5"}],"id":4059,"name":"VariableDeclaration","src":"24823:17:5"},{"attributes":{"constant":false,"name":"args","scope":4130,"stateVariable":false,"storageLocation":"default","type":"string[5]","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"string[5]"},"children":[{"attributes":{"name":"string","type":"string"},"id":4060,"name":"ElementaryTypeName","src":"24842:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"35","isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"subdenomination":null,"token":"number","type":null,"value":"5"},"id":4061,"name":"Literal","src":"24849:1:5"}],"id":4062,"name":"ArrayTypeName","src":"24842:9:5"}],"id":4063,"name":"VariableDeclaration","src":"24842:14:5"},{"attributes":{"constant":false,"name":"gaslimit","scope":4130,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4064,"name":"ElementaryTypeName","src":"24858:4:5"}],"id":4065,"name":"VariableDeclaration","src":"24858:13:5"}],"id":4066,"name":"ParameterList","src":"24806:66:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":4130,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":4069,"name":"ElementaryTypeName","src":"24903:7:5"}],"id":4070,"name":"VariableDeclaration","src":"24903:10:5"}],"id":4071,"name":"ParameterList","src":"24902:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":4067,"name":"Identifier","src":"24873:11:5"}],"id":4068,"name":"ModifierInvocation","src":"24873:11:5"},{"children":[{"attributes":{"assignments":[4075]},"children":[{"attributes":{"constant":false,"name":"dynargs","scope":4130,"stateVariable":false,"storageLocation":"memory","type":"string[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"string[]"},"children":[{"attributes":{"name":"string","type":"string"},"id":4073,"name":"ElementaryTypeName","src":"24925:6:5"}],"id":4074,"name":"ArrayTypeName","src":"24925:8:5"}],"id":4075,"name":"VariableDeclaration","src":"24925:23:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory[] memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (string memory[] memory)"},"children":[{"attributes":{"length":null,"type":"string[]"},"children":[{"attributes":{"name":"string","type":"string"},"id":4076,"name":"ElementaryTypeName","src":"24955:6:5"}],"id":4077,"name":"ArrayTypeName","src":"24955:8:5"}],"id":4078,"name":"NewExpression","src":"24951:12:5"},{"attributes":{"argumentTypes":null,"hexvalue":"35","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 5","value":"5"},"id":4079,"name":"Literal","src":"24964:1:5"}],"id":4080,"name":"FunctionCall","src":"24951:15:5"}],"id":4081,"name":"VariableDeclarationStatement","src":"24925:41:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4075,"type":"string memory[] memory","value":"dynargs"},"id":4082,"name":"Identifier","src":"24976:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4083,"name":"Literal","src":"24984:1:5"}],"id":4084,"name":"IndexAccess","src":"24976:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4063,"type":"string memory[5] memory","value":"args"},"id":4085,"name":"Identifier","src":"24989:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4086,"name":"Literal","src":"24994:1:5"}],"id":4087,"name":"IndexAccess","src":"24989:7:5"}],"id":4088,"name":"Assignment","src":"24976:20:5"}],"id":4089,"name":"ExpressionStatement","src":"24976:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4075,"type":"string memory[] memory","value":"dynargs"},"id":4090,"name":"Identifier","src":"25006:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":4091,"name":"Literal","src":"25014:1:5"}],"id":4092,"name":"IndexAccess","src":"25006:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4063,"type":"string memory[5] memory","value":"args"},"id":4093,"name":"Identifier","src":"25019:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":4094,"name":"Literal","src":"25024:1:5"}],"id":4095,"name":"IndexAccess","src":"25019:7:5"}],"id":4096,"name":"Assignment","src":"25006:20:5"}],"id":4097,"name":"ExpressionStatement","src":"25006:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4075,"type":"string memory[] memory","value":"dynargs"},"id":4098,"name":"Identifier","src":"25036:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":4099,"name":"Literal","src":"25044:1:5"}],"id":4100,"name":"IndexAccess","src":"25036:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4063,"type":"string memory[5] memory","value":"args"},"id":4101,"name":"Identifier","src":"25049:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":4102,"name":"Literal","src":"25054:1:5"}],"id":4103,"name":"IndexAccess","src":"25049:7:5"}],"id":4104,"name":"Assignment","src":"25036:20:5"}],"id":4105,"name":"ExpressionStatement","src":"25036:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4075,"type":"string memory[] memory","value":"dynargs"},"id":4106,"name":"Identifier","src":"25066:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":4107,"name":"Literal","src":"25074:1:5"}],"id":4108,"name":"IndexAccess","src":"25066:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4063,"type":"string memory[5] memory","value":"args"},"id":4109,"name":"Identifier","src":"25079:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":4110,"name":"Literal","src":"25084:1:5"}],"id":4111,"name":"IndexAccess","src":"25079:7:5"}],"id":4112,"name":"Assignment","src":"25066:20:5"}],"id":4113,"name":"ExpressionStatement","src":"25066:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4075,"type":"string memory[] memory","value":"dynargs"},"id":4114,"name":"Identifier","src":"25096:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":4115,"name":"Literal","src":"25104:1:5"}],"id":4116,"name":"IndexAccess","src":"25096:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4063,"type":"string memory[5] memory","value":"args"},"id":4117,"name":"Identifier","src":"25109:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":4118,"name":"Literal","src":"25114:1:5"}],"id":4119,"name":"IndexAccess","src":"25109:7:5"}],"id":4120,"name":"Assignment","src":"25096:20:5"}],"id":4121,"name":"ExpressionStatement","src":"25096:20:5"},{"attributes":{"functionReturnParameters":4071},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_string_memory_$dyn_memory_ptr","typeString":"string memory[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[2566,2608,2654,2698,2741,2786,2835,2882,2929,2978,3031,3082,3119,3159,3202,3242,3287,3335,3386,3434,3487,3543,3602,3658,3719,3783,3850,3914,3983,4055,4130,4202,4249,4298,4351,4402,4439,4479,4522,4562,4607,4655,4706,4754,4807,4863,4922,4978,5039,5103,5170,5234,5303,5375,5450,5522],"referencedDeclaration":3031,"type":"function (uint256,string memory,string memory[] memory,uint256) returns (bytes32)","value":"oraclize_query"},"id":4122,"name":"Identifier","src":"25133:14:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4057,"type":"uint256","value":"timestamp"},"id":4123,"name":"Identifier","src":"25148:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4059,"type":"string memory","value":"datasource"},"id":4124,"name":"Identifier","src":"25159:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4075,"type":"string memory[] memory","value":"dynargs"},"id":4125,"name":"Identifier","src":"25171:7:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4065,"type":"uint256","value":"gaslimit"},"id":4126,"name":"Identifier","src":"25180:8:5"}],"id":4127,"name":"FunctionCall","src":"25133:56:5"}],"id":4128,"name":"Return","src":"25126:63:5"}],"id":4129,"name":"Block","src":"24915:281:5"}],"id":4130,"name":"FunctionDefinition","src":"24783:413:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"datasource","scope":4202,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":4131,"name":"ElementaryTypeName","src":"25225:6:5"}],"id":4132,"name":"VariableDeclaration","src":"25225:17:5"},{"attributes":{"constant":false,"name":"args","scope":4202,"stateVariable":false,"storageLocation":"default","type":"string[5]","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"string[5]"},"children":[{"attributes":{"name":"string","type":"string"},"id":4133,"name":"ElementaryTypeName","src":"25244:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"35","isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"subdenomination":null,"token":"number","type":null,"value":"5"},"id":4134,"name":"Literal","src":"25251:1:5"}],"id":4135,"name":"ArrayTypeName","src":"25244:9:5"}],"id":4136,"name":"VariableDeclaration","src":"25244:14:5"},{"attributes":{"constant":false,"name":"gaslimit","scope":4202,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4137,"name":"ElementaryTypeName","src":"25260:4:5"}],"id":4138,"name":"VariableDeclaration","src":"25260:13:5"}],"id":4139,"name":"ParameterList","src":"25224:50:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":4202,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":4142,"name":"ElementaryTypeName","src":"25305:7:5"}],"id":4143,"name":"VariableDeclaration","src":"25305:10:5"}],"id":4144,"name":"ParameterList","src":"25304:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":4140,"name":"Identifier","src":"25275:11:5"}],"id":4141,"name":"ModifierInvocation","src":"25275:11:5"},{"children":[{"attributes":{"assignments":[4148]},"children":[{"attributes":{"constant":false,"name":"dynargs","scope":4202,"stateVariable":false,"storageLocation":"memory","type":"string[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"string[]"},"children":[{"attributes":{"name":"string","type":"string"},"id":4146,"name":"ElementaryTypeName","src":"25327:6:5"}],"id":4147,"name":"ArrayTypeName","src":"25327:8:5"}],"id":4148,"name":"VariableDeclaration","src":"25327:23:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory[] memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (string memory[] memory)"},"children":[{"attributes":{"length":null,"type":"string[]"},"children":[{"attributes":{"name":"string","type":"string"},"id":4149,"name":"ElementaryTypeName","src":"25357:6:5"}],"id":4150,"name":"ArrayTypeName","src":"25357:8:5"}],"id":4151,"name":"NewExpression","src":"25353:12:5"},{"attributes":{"argumentTypes":null,"hexvalue":"35","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 5","value":"5"},"id":4152,"name":"Literal","src":"25366:1:5"}],"id":4153,"name":"FunctionCall","src":"25353:15:5"}],"id":4154,"name":"VariableDeclarationStatement","src":"25327:41:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4148,"type":"string memory[] memory","value":"dynargs"},"id":4155,"name":"Identifier","src":"25378:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4156,"name":"Literal","src":"25386:1:5"}],"id":4157,"name":"IndexAccess","src":"25378:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4136,"type":"string memory[5] memory","value":"args"},"id":4158,"name":"Identifier","src":"25391:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4159,"name":"Literal","src":"25396:1:5"}],"id":4160,"name":"IndexAccess","src":"25391:7:5"}],"id":4161,"name":"Assignment","src":"25378:20:5"}],"id":4162,"name":"ExpressionStatement","src":"25378:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4148,"type":"string memory[] memory","value":"dynargs"},"id":4163,"name":"Identifier","src":"25408:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":4164,"name":"Literal","src":"25416:1:5"}],"id":4165,"name":"IndexAccess","src":"25408:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4136,"type":"string memory[5] memory","value":"args"},"id":4166,"name":"Identifier","src":"25421:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":4167,"name":"Literal","src":"25426:1:5"}],"id":4168,"name":"IndexAccess","src":"25421:7:5"}],"id":4169,"name":"Assignment","src":"25408:20:5"}],"id":4170,"name":"ExpressionStatement","src":"25408:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4148,"type":"string memory[] memory","value":"dynargs"},"id":4171,"name":"Identifier","src":"25438:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":4172,"name":"Literal","src":"25446:1:5"}],"id":4173,"name":"IndexAccess","src":"25438:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4136,"type":"string memory[5] memory","value":"args"},"id":4174,"name":"Identifier","src":"25451:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":4175,"name":"Literal","src":"25456:1:5"}],"id":4176,"name":"IndexAccess","src":"25451:7:5"}],"id":4177,"name":"Assignment","src":"25438:20:5"}],"id":4178,"name":"ExpressionStatement","src":"25438:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4148,"type":"string memory[] memory","value":"dynargs"},"id":4179,"name":"Identifier","src":"25468:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":4180,"name":"Literal","src":"25476:1:5"}],"id":4181,"name":"IndexAccess","src":"25468:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4136,"type":"string memory[5] memory","value":"args"},"id":4182,"name":"Identifier","src":"25481:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":4183,"name":"Literal","src":"25486:1:5"}],"id":4184,"name":"IndexAccess","src":"25481:7:5"}],"id":4185,"name":"Assignment","src":"25468:20:5"}],"id":4186,"name":"ExpressionStatement","src":"25468:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4148,"type":"string memory[] memory","value":"dynargs"},"id":4187,"name":"Identifier","src":"25498:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":4188,"name":"Literal","src":"25506:1:5"}],"id":4189,"name":"IndexAccess","src":"25498:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4136,"type":"string memory[5] memory","value":"args"},"id":4190,"name":"Identifier","src":"25511:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":4191,"name":"Literal","src":"25516:1:5"}],"id":4192,"name":"IndexAccess","src":"25511:7:5"}],"id":4193,"name":"Assignment","src":"25498:20:5"}],"id":4194,"name":"ExpressionStatement","src":"25498:20:5"},{"attributes":{"functionReturnParameters":4144},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_string_memory_$dyn_memory_ptr","typeString":"string memory[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[2566,2608,2654,2698,2741,2786,2835,2882,2929,2978,3031,3082,3119,3159,3202,3242,3287,3335,3386,3434,3487,3543,3602,3658,3719,3783,3850,3914,3983,4055,4130,4202,4249,4298,4351,4402,4439,4479,4522,4562,4607,4655,4706,4754,4807,4863,4922,4978,5039,5103,5170,5234,5303,5375,5450,5522],"referencedDeclaration":3082,"type":"function (string memory,string memory[] memory,uint256) returns (bytes32)","value":"oraclize_query"},"id":4195,"name":"Identifier","src":"25535:14:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4132,"type":"string memory","value":"datasource"},"id":4196,"name":"Identifier","src":"25550:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4148,"type":"string memory[] memory","value":"dynargs"},"id":4197,"name":"Identifier","src":"25562:7:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4138,"type":"uint256","value":"gaslimit"},"id":4198,"name":"Identifier","src":"25571:8:5"}],"id":4199,"name":"FunctionCall","src":"25535:45:5"}],"id":4200,"name":"Return","src":"25528:52:5"}],"id":4201,"name":"Block","src":"25317:270:5"}],"id":4202,"name":"FunctionDefinition","src":"25201:386:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"datasource","scope":4249,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":4203,"name":"ElementaryTypeName","src":"25616:6:5"}],"id":4204,"name":"VariableDeclaration","src":"25616:17:5"},{"attributes":{"constant":false,"name":"argN","scope":4249,"stateVariable":false,"storageLocation":"default","type":"bytes[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"bytes[]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4205,"name":"ElementaryTypeName","src":"25635:5:5"}],"id":4206,"name":"ArrayTypeName","src":"25635:7:5"}],"id":4207,"name":"VariableDeclaration","src":"25635:12:5"}],"id":4208,"name":"ParameterList","src":"25615:33:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":4249,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":4211,"name":"ElementaryTypeName","src":"25679:7:5"}],"id":4212,"name":"VariableDeclaration","src":"25679:10:5"}],"id":4213,"name":"ParameterList","src":"25678:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":4209,"name":"Identifier","src":"25649:11:5"}],"id":4210,"name":"ModifierInvocation","src":"25649:11:5"},{"children":[{"attributes":{"assignments":[4215]},"children":[{"attributes":{"constant":false,"name":"price","scope":4249,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4214,"name":"ElementaryTypeName","src":"25700:4:5"}],"id":4215,"name":"VariableDeclaration","src":"25700:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"getPrice","referencedDeclaration":1634,"type":"function (string memory) external returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2257,"type":"contract OraclizeI","value":"oraclize"},"id":4216,"name":"Identifier","src":"25713:8:5"}],"id":4217,"name":"MemberAccess","src":"25713:17:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4204,"type":"string memory","value":"datasource"},"id":4218,"name":"Identifier","src":"25731:10:5"}],"id":4219,"name":"FunctionCall","src":"25713:29:5"}],"id":4220,"name":"VariableDeclarationStatement","src":"25700:42:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4215,"type":"uint256","value":"price"},"id":4221,"name":"Identifier","src":"25756:5:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":"ether","token":"number","type":"int_const 1000000000000000000","value":"1"},"id":4222,"name":"Literal","src":"25764:7:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"gasprice","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":12070,"type":"tx","value":"tx"},"id":4223,"name":"Identifier","src":"25774:2:5"}],"id":4224,"name":"MemberAccess","src":"25774:11:5"},{"attributes":{"argumentTypes":null,"hexvalue":"323030303030","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 200000","value":"200000"},"id":4225,"name":"Literal","src":"25786:6:5"}],"id":4226,"name":"BinaryOperation","src":"25774:18:5"}],"id":4227,"name":"BinaryOperation","src":"25764:28:5"}],"id":4228,"name":"BinaryOperation","src":"25756:36:5"},{"attributes":{"functionReturnParameters":4213},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4229,"name":"Literal","src":"25801:1:5"}],"id":4230,"name":"Return","src":"25794:8:5"}],"id":4231,"name":"IfStatement","src":"25752:50:5"},{"attributes":{"assignments":[4233]},"children":[{"attributes":{"constant":false,"name":"args","scope":4249,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4232,"name":"ElementaryTypeName","src":"25839:5:5"}],"id":4233,"name":"VariableDeclaration","src":"25839:17:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes_memory_$dyn_memory_ptr","typeString":"bytes memory[] memory"}],"overloadedDeclarations":[null],"referencedDeclaration":6502,"type":"function (bytes memory[] memory) pure returns (bytes memory)","value":"ba2cbor"},"id":4234,"name":"Identifier","src":"25859:7:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4207,"type":"bytes memory[] memory","value":"argN"},"id":4235,"name":"Identifier","src":"25867:4:5"}],"id":4236,"name":"FunctionCall","src":"25859:13:5"}],"id":4237,"name":"VariableDeclarationStatement","src":"25839:33:5"},{"attributes":{"functionReturnParameters":4213},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"function (uint256,string memory,bytes memory) payable external returns (bytes32)","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"value","referencedDeclaration":null,"type":"function (uint256) returns (function (uint256,string memory,bytes memory) payable external returns (bytes32))"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"queryN","referencedDeclaration":1614,"type":"function (uint256,string memory,bytes memory) payable external returns (bytes32)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2257,"type":"contract OraclizeI","value":"oraclize"},"id":4238,"name":"Identifier","src":"25889:8:5"}],"id":4239,"name":"MemberAccess","src":"25889:15:5"}],"id":4240,"name":"MemberAccess","src":"25889:21:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4215,"type":"uint256","value":"price"},"id":4241,"name":"Identifier","src":"25911:5:5"}],"id":4242,"name":"FunctionCall","src":"25889:28:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4243,"name":"Literal","src":"25918:1:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4204,"type":"string memory","value":"datasource"},"id":4244,"name":"Identifier","src":"25921:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4233,"type":"bytes memory","value":"args"},"id":4245,"name":"Identifier","src":"25933:4:5"}],"id":4246,"name":"FunctionCall","src":"25889:49:5"}],"id":4247,"name":"Return","src":"25882:56:5"}],"id":4248,"name":"Block","src":"25690:255:5"}],"id":4249,"name":"FunctionDefinition","src":"25592:353:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"timestamp","scope":4298,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4250,"name":"ElementaryTypeName","src":"25974:4:5"}],"id":4251,"name":"VariableDeclaration","src":"25974:14:5"},{"attributes":{"constant":false,"name":"datasource","scope":4298,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":4252,"name":"ElementaryTypeName","src":"25990:6:5"}],"id":4253,"name":"VariableDeclaration","src":"25990:17:5"},{"attributes":{"constant":false,"name":"argN","scope":4298,"stateVariable":false,"storageLocation":"default","type":"bytes[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"bytes[]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4254,"name":"ElementaryTypeName","src":"26009:5:5"}],"id":4255,"name":"ArrayTypeName","src":"26009:7:5"}],"id":4256,"name":"VariableDeclaration","src":"26009:12:5"}],"id":4257,"name":"ParameterList","src":"25973:49:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":4298,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":4260,"name":"ElementaryTypeName","src":"26053:7:5"}],"id":4261,"name":"VariableDeclaration","src":"26053:10:5"}],"id":4262,"name":"ParameterList","src":"26052:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":4258,"name":"Identifier","src":"26023:11:5"}],"id":4259,"name":"ModifierInvocation","src":"26023:11:5"},{"children":[{"attributes":{"assignments":[4264]},"children":[{"attributes":{"constant":false,"name":"price","scope":4298,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4263,"name":"ElementaryTypeName","src":"26074:4:5"}],"id":4264,"name":"VariableDeclaration","src":"26074:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"getPrice","referencedDeclaration":1634,"type":"function (string memory) external returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2257,"type":"contract OraclizeI","value":"oraclize"},"id":4265,"name":"Identifier","src":"26087:8:5"}],"id":4266,"name":"MemberAccess","src":"26087:17:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4253,"type":"string memory","value":"datasource"},"id":4267,"name":"Identifier","src":"26105:10:5"}],"id":4268,"name":"FunctionCall","src":"26087:29:5"}],"id":4269,"name":"VariableDeclarationStatement","src":"26074:42:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4264,"type":"uint256","value":"price"},"id":4270,"name":"Identifier","src":"26130:5:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":"ether","token":"number","type":"int_const 1000000000000000000","value":"1"},"id":4271,"name":"Literal","src":"26138:7:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"gasprice","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":12070,"type":"tx","value":"tx"},"id":4272,"name":"Identifier","src":"26148:2:5"}],"id":4273,"name":"MemberAccess","src":"26148:11:5"},{"attributes":{"argumentTypes":null,"hexvalue":"323030303030","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 200000","value":"200000"},"id":4274,"name":"Literal","src":"26160:6:5"}],"id":4275,"name":"BinaryOperation","src":"26148:18:5"}],"id":4276,"name":"BinaryOperation","src":"26138:28:5"}],"id":4277,"name":"BinaryOperation","src":"26130:36:5"},{"attributes":{"functionReturnParameters":4262},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4278,"name":"Literal","src":"26175:1:5"}],"id":4279,"name":"Return","src":"26168:8:5"}],"id":4280,"name":"IfStatement","src":"26126:50:5"},{"attributes":{"assignments":[4282]},"children":[{"attributes":{"constant":false,"name":"args","scope":4298,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4281,"name":"ElementaryTypeName","src":"26213:5:5"}],"id":4282,"name":"VariableDeclaration","src":"26213:17:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes_memory_$dyn_memory_ptr","typeString":"bytes memory[] memory"}],"overloadedDeclarations":[null],"referencedDeclaration":6502,"type":"function (bytes memory[] memory) pure returns (bytes memory)","value":"ba2cbor"},"id":4283,"name":"Identifier","src":"26233:7:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4256,"type":"bytes memory[] memory","value":"argN"},"id":4284,"name":"Identifier","src":"26241:4:5"}],"id":4285,"name":"FunctionCall","src":"26233:13:5"}],"id":4286,"name":"VariableDeclarationStatement","src":"26213:33:5"},{"attributes":{"functionReturnParameters":4262},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"function (uint256,string memory,bytes memory) payable external returns (bytes32)","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"value","referencedDeclaration":null,"type":"function (uint256) returns (function (uint256,string memory,bytes memory) payable external returns (bytes32))"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"queryN","referencedDeclaration":1614,"type":"function (uint256,string memory,bytes memory) payable external returns (bytes32)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2257,"type":"contract OraclizeI","value":"oraclize"},"id":4287,"name":"Identifier","src":"26263:8:5"}],"id":4288,"name":"MemberAccess","src":"26263:15:5"}],"id":4289,"name":"MemberAccess","src":"26263:21:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4264,"type":"uint256","value":"price"},"id":4290,"name":"Identifier","src":"26285:5:5"}],"id":4291,"name":"FunctionCall","src":"26263:28:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4251,"type":"uint256","value":"timestamp"},"id":4292,"name":"Identifier","src":"26292:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4253,"type":"string memory","value":"datasource"},"id":4293,"name":"Identifier","src":"26303:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4282,"type":"bytes memory","value":"args"},"id":4294,"name":"Identifier","src":"26315:4:5"}],"id":4295,"name":"FunctionCall","src":"26263:57:5"}],"id":4296,"name":"Return","src":"26256:64:5"}],"id":4297,"name":"Block","src":"26064:263:5"}],"id":4298,"name":"FunctionDefinition","src":"25950:377:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"timestamp","scope":4351,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4299,"name":"ElementaryTypeName","src":"26356:4:5"}],"id":4300,"name":"VariableDeclaration","src":"26356:14:5"},{"attributes":{"constant":false,"name":"datasource","scope":4351,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":4301,"name":"ElementaryTypeName","src":"26372:6:5"}],"id":4302,"name":"VariableDeclaration","src":"26372:17:5"},{"attributes":{"constant":false,"name":"argN","scope":4351,"stateVariable":false,"storageLocation":"default","type":"bytes[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"bytes[]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4303,"name":"ElementaryTypeName","src":"26391:5:5"}],"id":4304,"name":"ArrayTypeName","src":"26391:7:5"}],"id":4305,"name":"VariableDeclaration","src":"26391:12:5"},{"attributes":{"constant":false,"name":"gaslimit","scope":4351,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4306,"name":"ElementaryTypeName","src":"26405:4:5"}],"id":4307,"name":"VariableDeclaration","src":"26405:13:5"}],"id":4308,"name":"ParameterList","src":"26355:64:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":4351,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":4311,"name":"ElementaryTypeName","src":"26450:7:5"}],"id":4312,"name":"VariableDeclaration","src":"26450:10:5"}],"id":4313,"name":"ParameterList","src":"26449:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":4309,"name":"Identifier","src":"26420:11:5"}],"id":4310,"name":"ModifierInvocation","src":"26420:11:5"},{"children":[{"attributes":{"assignments":[4315]},"children":[{"attributes":{"constant":false,"name":"price","scope":4351,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4314,"name":"ElementaryTypeName","src":"26471:4:5"}],"id":4315,"name":"VariableDeclaration","src":"26471:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"getPrice","referencedDeclaration":1643,"type":"function (string memory,uint256) external returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2257,"type":"contract OraclizeI","value":"oraclize"},"id":4316,"name":"Identifier","src":"26484:8:5"}],"id":4317,"name":"MemberAccess","src":"26484:17:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4302,"type":"string memory","value":"datasource"},"id":4318,"name":"Identifier","src":"26502:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4307,"type":"uint256","value":"gaslimit"},"id":4319,"name":"Identifier","src":"26514:8:5"}],"id":4320,"name":"FunctionCall","src":"26484:39:5"}],"id":4321,"name":"VariableDeclarationStatement","src":"26471:52:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4315,"type":"uint256","value":"price"},"id":4322,"name":"Identifier","src":"26537:5:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":"ether","token":"number","type":"int_const 1000000000000000000","value":"1"},"id":4323,"name":"Literal","src":"26545:7:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"gasprice","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":12070,"type":"tx","value":"tx"},"id":4324,"name":"Identifier","src":"26555:2:5"}],"id":4325,"name":"MemberAccess","src":"26555:11:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4307,"type":"uint256","value":"gaslimit"},"id":4326,"name":"Identifier","src":"26567:8:5"}],"id":4327,"name":"BinaryOperation","src":"26555:20:5"}],"id":4328,"name":"BinaryOperation","src":"26545:30:5"}],"id":4329,"name":"BinaryOperation","src":"26537:38:5"},{"attributes":{"functionReturnParameters":4313},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4330,"name":"Literal","src":"26584:1:5"}],"id":4331,"name":"Return","src":"26577:8:5"}],"id":4332,"name":"IfStatement","src":"26533:52:5"},{"attributes":{"assignments":[4334]},"children":[{"attributes":{"constant":false,"name":"args","scope":4351,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4333,"name":"ElementaryTypeName","src":"26622:5:5"}],"id":4334,"name":"VariableDeclaration","src":"26622:17:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes_memory_$dyn_memory_ptr","typeString":"bytes memory[] memory"}],"overloadedDeclarations":[null],"referencedDeclaration":6502,"type":"function (bytes memory[] memory) pure returns (bytes memory)","value":"ba2cbor"},"id":4335,"name":"Identifier","src":"26642:7:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4305,"type":"bytes memory[] memory","value":"argN"},"id":4336,"name":"Identifier","src":"26650:4:5"}],"id":4337,"name":"FunctionCall","src":"26642:13:5"}],"id":4338,"name":"VariableDeclarationStatement","src":"26622:33:5"},{"attributes":{"functionReturnParameters":4313},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"function (uint256,string memory,bytes memory,uint256) payable external returns (bytes32)","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"value","referencedDeclaration":null,"type":"function (uint256) returns (function (uint256,string memory,bytes memory,uint256) payable external returns (bytes32))"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"queryN_withGasLimit","referencedDeclaration":1627,"type":"function (uint256,string memory,bytes memory,uint256) payable external returns (bytes32)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2257,"type":"contract OraclizeI","value":"oraclize"},"id":4339,"name":"Identifier","src":"26672:8:5"}],"id":4340,"name":"MemberAccess","src":"26672:28:5"}],"id":4341,"name":"MemberAccess","src":"26672:34:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4315,"type":"uint256","value":"price"},"id":4342,"name":"Identifier","src":"26707:5:5"}],"id":4343,"name":"FunctionCall","src":"26672:41:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4300,"type":"uint256","value":"timestamp"},"id":4344,"name":"Identifier","src":"26714:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4302,"type":"string memory","value":"datasource"},"id":4345,"name":"Identifier","src":"26725:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4334,"type":"bytes memory","value":"args"},"id":4346,"name":"Identifier","src":"26737:4:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4307,"type":"uint256","value":"gaslimit"},"id":4347,"name":"Identifier","src":"26743:8:5"}],"id":4348,"name":"FunctionCall","src":"26672:80:5"}],"id":4349,"name":"Return","src":"26665:87:5"}],"id":4350,"name":"Block","src":"26461:298:5"}],"id":4351,"name":"FunctionDefinition","src":"26332:427:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"datasource","scope":4402,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":4352,"name":"ElementaryTypeName","src":"26788:6:5"}],"id":4353,"name":"VariableDeclaration","src":"26788:17:5"},{"attributes":{"constant":false,"name":"argN","scope":4402,"stateVariable":false,"storageLocation":"default","type":"bytes[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"bytes[]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4354,"name":"ElementaryTypeName","src":"26807:5:5"}],"id":4355,"name":"ArrayTypeName","src":"26807:7:5"}],"id":4356,"name":"VariableDeclaration","src":"26807:12:5"},{"attributes":{"constant":false,"name":"gaslimit","scope":4402,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4357,"name":"ElementaryTypeName","src":"26821:4:5"}],"id":4358,"name":"VariableDeclaration","src":"26821:13:5"}],"id":4359,"name":"ParameterList","src":"26787:48:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":4402,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":4362,"name":"ElementaryTypeName","src":"26866:7:5"}],"id":4363,"name":"VariableDeclaration","src":"26866:10:5"}],"id":4364,"name":"ParameterList","src":"26865:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":4360,"name":"Identifier","src":"26836:11:5"}],"id":4361,"name":"ModifierInvocation","src":"26836:11:5"},{"children":[{"attributes":{"assignments":[4366]},"children":[{"attributes":{"constant":false,"name":"price","scope":4402,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4365,"name":"ElementaryTypeName","src":"26887:4:5"}],"id":4366,"name":"VariableDeclaration","src":"26887:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"getPrice","referencedDeclaration":1643,"type":"function (string memory,uint256) external returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2257,"type":"contract OraclizeI","value":"oraclize"},"id":4367,"name":"Identifier","src":"26900:8:5"}],"id":4368,"name":"MemberAccess","src":"26900:17:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4353,"type":"string memory","value":"datasource"},"id":4369,"name":"Identifier","src":"26918:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4358,"type":"uint256","value":"gaslimit"},"id":4370,"name":"Identifier","src":"26930:8:5"}],"id":4371,"name":"FunctionCall","src":"26900:39:5"}],"id":4372,"name":"VariableDeclarationStatement","src":"26887:52:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4366,"type":"uint256","value":"price"},"id":4373,"name":"Identifier","src":"26953:5:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":"ether","token":"number","type":"int_const 1000000000000000000","value":"1"},"id":4374,"name":"Literal","src":"26961:7:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"gasprice","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":12070,"type":"tx","value":"tx"},"id":4375,"name":"Identifier","src":"26971:2:5"}],"id":4376,"name":"MemberAccess","src":"26971:11:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4358,"type":"uint256","value":"gaslimit"},"id":4377,"name":"Identifier","src":"26983:8:5"}],"id":4378,"name":"BinaryOperation","src":"26971:20:5"}],"id":4379,"name":"BinaryOperation","src":"26961:30:5"}],"id":4380,"name":"BinaryOperation","src":"26953:38:5"},{"attributes":{"functionReturnParameters":4364},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4381,"name":"Literal","src":"27000:1:5"}],"id":4382,"name":"Return","src":"26993:8:5"}],"id":4383,"name":"IfStatement","src":"26949:52:5"},{"attributes":{"assignments":[4385]},"children":[{"attributes":{"constant":false,"name":"args","scope":4402,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4384,"name":"ElementaryTypeName","src":"27038:5:5"}],"id":4385,"name":"VariableDeclaration","src":"27038:17:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes_memory_$dyn_memory_ptr","typeString":"bytes memory[] memory"}],"overloadedDeclarations":[null],"referencedDeclaration":6502,"type":"function (bytes memory[] memory) pure returns (bytes memory)","value":"ba2cbor"},"id":4386,"name":"Identifier","src":"27058:7:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4356,"type":"bytes memory[] memory","value":"argN"},"id":4387,"name":"Identifier","src":"27066:4:5"}],"id":4388,"name":"FunctionCall","src":"27058:13:5"}],"id":4389,"name":"VariableDeclarationStatement","src":"27038:33:5"},{"attributes":{"functionReturnParameters":4364},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"function (uint256,string memory,bytes memory,uint256) payable external returns (bytes32)","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"value","referencedDeclaration":null,"type":"function (uint256) returns (function (uint256,string memory,bytes memory,uint256) payable external returns (bytes32))"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"queryN_withGasLimit","referencedDeclaration":1627,"type":"function (uint256,string memory,bytes memory,uint256) payable external returns (bytes32)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2257,"type":"contract OraclizeI","value":"oraclize"},"id":4390,"name":"Identifier","src":"27088:8:5"}],"id":4391,"name":"MemberAccess","src":"27088:28:5"}],"id":4392,"name":"MemberAccess","src":"27088:34:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4366,"type":"uint256","value":"price"},"id":4393,"name":"Identifier","src":"27123:5:5"}],"id":4394,"name":"FunctionCall","src":"27088:41:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4395,"name":"Literal","src":"27130:1:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4353,"type":"string memory","value":"datasource"},"id":4396,"name":"Identifier","src":"27133:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4385,"type":"bytes memory","value":"args"},"id":4397,"name":"Identifier","src":"27145:4:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4358,"type":"uint256","value":"gaslimit"},"id":4398,"name":"Identifier","src":"27151:8:5"}],"id":4399,"name":"FunctionCall","src":"27088:72:5"}],"id":4400,"name":"Return","src":"27081:79:5"}],"id":4401,"name":"Block","src":"26877:290:5"}],"id":4402,"name":"FunctionDefinition","src":"26764:403:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"datasource","scope":4439,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":4403,"name":"ElementaryTypeName","src":"27196:6:5"}],"id":4404,"name":"VariableDeclaration","src":"27196:17:5"},{"attributes":{"constant":false,"name":"args","scope":4439,"stateVariable":false,"storageLocation":"default","type":"bytes[1]","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"bytes[1]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4405,"name":"ElementaryTypeName","src":"27215:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"subdenomination":null,"token":"number","type":null,"value":"1"},"id":4406,"name":"Literal","src":"27221:1:5"}],"id":4407,"name":"ArrayTypeName","src":"27215:8:5"}],"id":4408,"name":"VariableDeclaration","src":"27215:13:5"}],"id":4409,"name":"ParameterList","src":"27195:34:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":4439,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":4412,"name":"ElementaryTypeName","src":"27260:7:5"}],"id":4413,"name":"VariableDeclaration","src":"27260:10:5"}],"id":4414,"name":"ParameterList","src":"27259:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":4410,"name":"Identifier","src":"27230:11:5"}],"id":4411,"name":"ModifierInvocation","src":"27230:11:5"},{"children":[{"attributes":{"assignments":[4418]},"children":[{"attributes":{"constant":false,"name":"dynargs","scope":4439,"stateVariable":false,"storageLocation":"memory","type":"bytes[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"bytes[]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4416,"name":"ElementaryTypeName","src":"27282:5:5"}],"id":4417,"name":"ArrayTypeName","src":"27282:7:5"}],"id":4418,"name":"VariableDeclaration","src":"27282:22:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory[] memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (bytes memory[] memory)"},"children":[{"attributes":{"length":null,"type":"bytes[]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4419,"name":"ElementaryTypeName","src":"27311:5:5"}],"id":4420,"name":"ArrayTypeName","src":"27311:7:5"}],"id":4421,"name":"NewExpression","src":"27307:11:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":4422,"name":"Literal","src":"27319:1:5"}],"id":4423,"name":"FunctionCall","src":"27307:14:5"}],"id":4424,"name":"VariableDeclarationStatement","src":"27282:39:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4418,"type":"bytes memory[] memory","value":"dynargs"},"id":4425,"name":"Identifier","src":"27331:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4426,"name":"Literal","src":"27339:1:5"}],"id":4427,"name":"IndexAccess","src":"27331:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4408,"type":"bytes memory[1] memory","value":"args"},"id":4428,"name":"Identifier","src":"27344:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4429,"name":"Literal","src":"27349:1:5"}],"id":4430,"name":"IndexAccess","src":"27344:7:5"}],"id":4431,"name":"Assignment","src":"27331:20:5"}],"id":4432,"name":"ExpressionStatement","src":"27331:20:5"},{"attributes":{"functionReturnParameters":4414},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_bytes_memory_$dyn_memory_ptr","typeString":"bytes memory[] memory"}],"overloadedDeclarations":[2566,2608,2654,2698,2741,2786,2835,2882,2929,2978,3031,3082,3119,3159,3202,3242,3287,3335,3386,3434,3487,3543,3602,3658,3719,3783,3850,3914,3983,4055,4130,4202,4249,4298,4351,4402,4439,4479,4522,4562,4607,4655,4706,4754,4807,4863,4922,4978,5039,5103,5170,5234,5303,5375,5450,5522],"referencedDeclaration":4249,"type":"function (string memory,bytes memory[] memory) returns (bytes32)","value":"oraclize_query"},"id":4433,"name":"Identifier","src":"27368:14:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4404,"type":"string memory","value":"datasource"},"id":4434,"name":"Identifier","src":"27383:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4418,"type":"bytes memory[] memory","value":"dynargs"},"id":4435,"name":"Identifier","src":"27395:7:5"}],"id":4436,"name":"FunctionCall","src":"27368:35:5"}],"id":4437,"name":"Return","src":"27361:42:5"}],"id":4438,"name":"Block","src":"27272:138:5"}],"id":4439,"name":"FunctionDefinition","src":"27172:238:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"timestamp","scope":4479,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4440,"name":"ElementaryTypeName","src":"27439:4:5"}],"id":4441,"name":"VariableDeclaration","src":"27439:14:5"},{"attributes":{"constant":false,"name":"datasource","scope":4479,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":4442,"name":"ElementaryTypeName","src":"27455:6:5"}],"id":4443,"name":"VariableDeclaration","src":"27455:17:5"},{"attributes":{"constant":false,"name":"args","scope":4479,"stateVariable":false,"storageLocation":"default","type":"bytes[1]","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"bytes[1]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4444,"name":"ElementaryTypeName","src":"27474:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"subdenomination":null,"token":"number","type":null,"value":"1"},"id":4445,"name":"Literal","src":"27480:1:5"}],"id":4446,"name":"ArrayTypeName","src":"27474:8:5"}],"id":4447,"name":"VariableDeclaration","src":"27474:13:5"}],"id":4448,"name":"ParameterList","src":"27438:50:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":4479,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":4451,"name":"ElementaryTypeName","src":"27519:7:5"}],"id":4452,"name":"VariableDeclaration","src":"27519:10:5"}],"id":4453,"name":"ParameterList","src":"27518:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":4449,"name":"Identifier","src":"27489:11:5"}],"id":4450,"name":"ModifierInvocation","src":"27489:11:5"},{"children":[{"attributes":{"assignments":[4457]},"children":[{"attributes":{"constant":false,"name":"dynargs","scope":4479,"stateVariable":false,"storageLocation":"memory","type":"bytes[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"bytes[]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4455,"name":"ElementaryTypeName","src":"27541:5:5"}],"id":4456,"name":"ArrayTypeName","src":"27541:7:5"}],"id":4457,"name":"VariableDeclaration","src":"27541:22:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory[] memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (bytes memory[] memory)"},"children":[{"attributes":{"length":null,"type":"bytes[]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4458,"name":"ElementaryTypeName","src":"27570:5:5"}],"id":4459,"name":"ArrayTypeName","src":"27570:7:5"}],"id":4460,"name":"NewExpression","src":"27566:11:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":4461,"name":"Literal","src":"27578:1:5"}],"id":4462,"name":"FunctionCall","src":"27566:14:5"}],"id":4463,"name":"VariableDeclarationStatement","src":"27541:39:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4457,"type":"bytes memory[] memory","value":"dynargs"},"id":4464,"name":"Identifier","src":"27590:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4465,"name":"Literal","src":"27598:1:5"}],"id":4466,"name":"IndexAccess","src":"27590:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4447,"type":"bytes memory[1] memory","value":"args"},"id":4467,"name":"Identifier","src":"27603:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4468,"name":"Literal","src":"27608:1:5"}],"id":4469,"name":"IndexAccess","src":"27603:7:5"}],"id":4470,"name":"Assignment","src":"27590:20:5"}],"id":4471,"name":"ExpressionStatement","src":"27590:20:5"},{"attributes":{"functionReturnParameters":4453},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_bytes_memory_$dyn_memory_ptr","typeString":"bytes memory[] memory"}],"overloadedDeclarations":[2566,2608,2654,2698,2741,2786,2835,2882,2929,2978,3031,3082,3119,3159,3202,3242,3287,3335,3386,3434,3487,3543,3602,3658,3719,3783,3850,3914,3983,4055,4130,4202,4249,4298,4351,4402,4439,4479,4522,4562,4607,4655,4706,4754,4807,4863,4922,4978,5039,5103,5170,5234,5303,5375,5450,5522],"referencedDeclaration":4298,"type":"function (uint256,string memory,bytes memory[] memory) returns (bytes32)","value":"oraclize_query"},"id":4472,"name":"Identifier","src":"27627:14:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4441,"type":"uint256","value":"timestamp"},"id":4473,"name":"Identifier","src":"27642:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4443,"type":"string memory","value":"datasource"},"id":4474,"name":"Identifier","src":"27653:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4457,"type":"bytes memory[] memory","value":"dynargs"},"id":4475,"name":"Identifier","src":"27665:7:5"}],"id":4476,"name":"FunctionCall","src":"27627:46:5"}],"id":4477,"name":"Return","src":"27620:53:5"}],"id":4478,"name":"Block","src":"27531:149:5"}],"id":4479,"name":"FunctionDefinition","src":"27415:265:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"timestamp","scope":4522,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4480,"name":"ElementaryTypeName","src":"27709:4:5"}],"id":4481,"name":"VariableDeclaration","src":"27709:14:5"},{"attributes":{"constant":false,"name":"datasource","scope":4522,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":4482,"name":"ElementaryTypeName","src":"27725:6:5"}],"id":4483,"name":"VariableDeclaration","src":"27725:17:5"},{"attributes":{"constant":false,"name":"args","scope":4522,"stateVariable":false,"storageLocation":"default","type":"bytes[1]","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"bytes[1]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4484,"name":"ElementaryTypeName","src":"27744:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"subdenomination":null,"token":"number","type":null,"value":"1"},"id":4485,"name":"Literal","src":"27750:1:5"}],"id":4486,"name":"ArrayTypeName","src":"27744:8:5"}],"id":4487,"name":"VariableDeclaration","src":"27744:13:5"},{"attributes":{"constant":false,"name":"gaslimit","scope":4522,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4488,"name":"ElementaryTypeName","src":"27759:4:5"}],"id":4489,"name":"VariableDeclaration","src":"27759:13:5"}],"id":4490,"name":"ParameterList","src":"27708:65:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":4522,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":4493,"name":"ElementaryTypeName","src":"27804:7:5"}],"id":4494,"name":"VariableDeclaration","src":"27804:10:5"}],"id":4495,"name":"ParameterList","src":"27803:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":4491,"name":"Identifier","src":"27774:11:5"}],"id":4492,"name":"ModifierInvocation","src":"27774:11:5"},{"children":[{"attributes":{"assignments":[4499]},"children":[{"attributes":{"constant":false,"name":"dynargs","scope":4522,"stateVariable":false,"storageLocation":"memory","type":"bytes[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"bytes[]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4497,"name":"ElementaryTypeName","src":"27826:5:5"}],"id":4498,"name":"ArrayTypeName","src":"27826:7:5"}],"id":4499,"name":"VariableDeclaration","src":"27826:22:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory[] memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (bytes memory[] memory)"},"children":[{"attributes":{"length":null,"type":"bytes[]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4500,"name":"ElementaryTypeName","src":"27855:5:5"}],"id":4501,"name":"ArrayTypeName","src":"27855:7:5"}],"id":4502,"name":"NewExpression","src":"27851:11:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":4503,"name":"Literal","src":"27863:1:5"}],"id":4504,"name":"FunctionCall","src":"27851:14:5"}],"id":4505,"name":"VariableDeclarationStatement","src":"27826:39:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4499,"type":"bytes memory[] memory","value":"dynargs"},"id":4506,"name":"Identifier","src":"27875:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4507,"name":"Literal","src":"27883:1:5"}],"id":4508,"name":"IndexAccess","src":"27875:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4487,"type":"bytes memory[1] memory","value":"args"},"id":4509,"name":"Identifier","src":"27888:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4510,"name":"Literal","src":"27893:1:5"}],"id":4511,"name":"IndexAccess","src":"27888:7:5"}],"id":4512,"name":"Assignment","src":"27875:20:5"}],"id":4513,"name":"ExpressionStatement","src":"27875:20:5"},{"attributes":{"functionReturnParameters":4495},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_bytes_memory_$dyn_memory_ptr","typeString":"bytes memory[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[2566,2608,2654,2698,2741,2786,2835,2882,2929,2978,3031,3082,3119,3159,3202,3242,3287,3335,3386,3434,3487,3543,3602,3658,3719,3783,3850,3914,3983,4055,4130,4202,4249,4298,4351,4402,4439,4479,4522,4562,4607,4655,4706,4754,4807,4863,4922,4978,5039,5103,5170,5234,5303,5375,5450,5522],"referencedDeclaration":4351,"type":"function (uint256,string memory,bytes memory[] memory,uint256) returns (bytes32)","value":"oraclize_query"},"id":4514,"name":"Identifier","src":"27912:14:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4481,"type":"uint256","value":"timestamp"},"id":4515,"name":"Identifier","src":"27927:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4483,"type":"string memory","value":"datasource"},"id":4516,"name":"Identifier","src":"27938:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4499,"type":"bytes memory[] memory","value":"dynargs"},"id":4517,"name":"Identifier","src":"27950:7:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4489,"type":"uint256","value":"gaslimit"},"id":4518,"name":"Identifier","src":"27959:8:5"}],"id":4519,"name":"FunctionCall","src":"27912:56:5"}],"id":4520,"name":"Return","src":"27905:63:5"}],"id":4521,"name":"Block","src":"27816:159:5"}],"id":4522,"name":"FunctionDefinition","src":"27685:290:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"datasource","scope":4562,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":4523,"name":"ElementaryTypeName","src":"28004:6:5"}],"id":4524,"name":"VariableDeclaration","src":"28004:17:5"},{"attributes":{"constant":false,"name":"args","scope":4562,"stateVariable":false,"storageLocation":"default","type":"bytes[1]","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"bytes[1]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4525,"name":"ElementaryTypeName","src":"28023:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"subdenomination":null,"token":"number","type":null,"value":"1"},"id":4526,"name":"Literal","src":"28029:1:5"}],"id":4527,"name":"ArrayTypeName","src":"28023:8:5"}],"id":4528,"name":"VariableDeclaration","src":"28023:13:5"},{"attributes":{"constant":false,"name":"gaslimit","scope":4562,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4529,"name":"ElementaryTypeName","src":"28038:4:5"}],"id":4530,"name":"VariableDeclaration","src":"28038:13:5"}],"id":4531,"name":"ParameterList","src":"28003:49:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":4562,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":4534,"name":"ElementaryTypeName","src":"28083:7:5"}],"id":4535,"name":"VariableDeclaration","src":"28083:10:5"}],"id":4536,"name":"ParameterList","src":"28082:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":4532,"name":"Identifier","src":"28053:11:5"}],"id":4533,"name":"ModifierInvocation","src":"28053:11:5"},{"children":[{"attributes":{"assignments":[4540]},"children":[{"attributes":{"constant":false,"name":"dynargs","scope":4562,"stateVariable":false,"storageLocation":"memory","type":"bytes[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"bytes[]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4538,"name":"ElementaryTypeName","src":"28105:5:5"}],"id":4539,"name":"ArrayTypeName","src":"28105:7:5"}],"id":4540,"name":"VariableDeclaration","src":"28105:22:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory[] memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (bytes memory[] memory)"},"children":[{"attributes":{"length":null,"type":"bytes[]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4541,"name":"ElementaryTypeName","src":"28134:5:5"}],"id":4542,"name":"ArrayTypeName","src":"28134:7:5"}],"id":4543,"name":"NewExpression","src":"28130:11:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":4544,"name":"Literal","src":"28142:1:5"}],"id":4545,"name":"FunctionCall","src":"28130:14:5"}],"id":4546,"name":"VariableDeclarationStatement","src":"28105:39:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4540,"type":"bytes memory[] memory","value":"dynargs"},"id":4547,"name":"Identifier","src":"28154:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4548,"name":"Literal","src":"28162:1:5"}],"id":4549,"name":"IndexAccess","src":"28154:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4528,"type":"bytes memory[1] memory","value":"args"},"id":4550,"name":"Identifier","src":"28167:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4551,"name":"Literal","src":"28172:1:5"}],"id":4552,"name":"IndexAccess","src":"28167:7:5"}],"id":4553,"name":"Assignment","src":"28154:20:5"}],"id":4554,"name":"ExpressionStatement","src":"28154:20:5"},{"attributes":{"functionReturnParameters":4536},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_bytes_memory_$dyn_memory_ptr","typeString":"bytes memory[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[2566,2608,2654,2698,2741,2786,2835,2882,2929,2978,3031,3082,3119,3159,3202,3242,3287,3335,3386,3434,3487,3543,3602,3658,3719,3783,3850,3914,3983,4055,4130,4202,4249,4298,4351,4402,4439,4479,4522,4562,4607,4655,4706,4754,4807,4863,4922,4978,5039,5103,5170,5234,5303,5375,5450,5522],"referencedDeclaration":4402,"type":"function (string memory,bytes memory[] memory,uint256) returns (bytes32)","value":"oraclize_query"},"id":4555,"name":"Identifier","src":"28191:14:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4524,"type":"string memory","value":"datasource"},"id":4556,"name":"Identifier","src":"28206:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4540,"type":"bytes memory[] memory","value":"dynargs"},"id":4557,"name":"Identifier","src":"28218:7:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4530,"type":"uint256","value":"gaslimit"},"id":4558,"name":"Identifier","src":"28227:8:5"}],"id":4559,"name":"FunctionCall","src":"28191:45:5"}],"id":4560,"name":"Return","src":"28184:52:5"}],"id":4561,"name":"Block","src":"28095:148:5"}],"id":4562,"name":"FunctionDefinition","src":"27980:263:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"datasource","scope":4607,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":4563,"name":"ElementaryTypeName","src":"28273:6:5"}],"id":4564,"name":"VariableDeclaration","src":"28273:17:5"},{"attributes":{"constant":false,"name":"args","scope":4607,"stateVariable":false,"storageLocation":"default","type":"bytes[2]","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"bytes[2]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4565,"name":"ElementaryTypeName","src":"28292:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"subdenomination":null,"token":"number","type":null,"value":"2"},"id":4566,"name":"Literal","src":"28298:1:5"}],"id":4567,"name":"ArrayTypeName","src":"28292:8:5"}],"id":4568,"name":"VariableDeclaration","src":"28292:13:5"}],"id":4569,"name":"ParameterList","src":"28272:34:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":4607,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":4572,"name":"ElementaryTypeName","src":"28337:7:5"}],"id":4573,"name":"VariableDeclaration","src":"28337:10:5"}],"id":4574,"name":"ParameterList","src":"28336:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":4570,"name":"Identifier","src":"28307:11:5"}],"id":4571,"name":"ModifierInvocation","src":"28307:11:5"},{"children":[{"attributes":{"assignments":[4578]},"children":[{"attributes":{"constant":false,"name":"dynargs","scope":4607,"stateVariable":false,"storageLocation":"memory","type":"bytes[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"bytes[]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4576,"name":"ElementaryTypeName","src":"28359:5:5"}],"id":4577,"name":"ArrayTypeName","src":"28359:7:5"}],"id":4578,"name":"VariableDeclaration","src":"28359:22:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory[] memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (bytes memory[] memory)"},"children":[{"attributes":{"length":null,"type":"bytes[]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4579,"name":"ElementaryTypeName","src":"28388:5:5"}],"id":4580,"name":"ArrayTypeName","src":"28388:7:5"}],"id":4581,"name":"NewExpression","src":"28384:11:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":4582,"name":"Literal","src":"28396:1:5"}],"id":4583,"name":"FunctionCall","src":"28384:14:5"}],"id":4584,"name":"VariableDeclarationStatement","src":"28359:39:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4578,"type":"bytes memory[] memory","value":"dynargs"},"id":4585,"name":"Identifier","src":"28408:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4586,"name":"Literal","src":"28416:1:5"}],"id":4587,"name":"IndexAccess","src":"28408:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4568,"type":"bytes memory[2] memory","value":"args"},"id":4588,"name":"Identifier","src":"28421:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4589,"name":"Literal","src":"28426:1:5"}],"id":4590,"name":"IndexAccess","src":"28421:7:5"}],"id":4591,"name":"Assignment","src":"28408:20:5"}],"id":4592,"name":"ExpressionStatement","src":"28408:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4578,"type":"bytes memory[] memory","value":"dynargs"},"id":4593,"name":"Identifier","src":"28438:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":4594,"name":"Literal","src":"28446:1:5"}],"id":4595,"name":"IndexAccess","src":"28438:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4568,"type":"bytes memory[2] memory","value":"args"},"id":4596,"name":"Identifier","src":"28451:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":4597,"name":"Literal","src":"28456:1:5"}],"id":4598,"name":"IndexAccess","src":"28451:7:5"}],"id":4599,"name":"Assignment","src":"28438:20:5"}],"id":4600,"name":"ExpressionStatement","src":"28438:20:5"},{"attributes":{"functionReturnParameters":4574},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_bytes_memory_$dyn_memory_ptr","typeString":"bytes memory[] memory"}],"overloadedDeclarations":[2566,2608,2654,2698,2741,2786,2835,2882,2929,2978,3031,3082,3119,3159,3202,3242,3287,3335,3386,3434,3487,3543,3602,3658,3719,3783,3850,3914,3983,4055,4130,4202,4249,4298,4351,4402,4439,4479,4522,4562,4607,4655,4706,4754,4807,4863,4922,4978,5039,5103,5170,5234,5303,5375,5450,5522],"referencedDeclaration":4249,"type":"function (string memory,bytes memory[] memory) returns (bytes32)","value":"oraclize_query"},"id":4601,"name":"Identifier","src":"28475:14:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4564,"type":"string memory","value":"datasource"},"id":4602,"name":"Identifier","src":"28490:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4578,"type":"bytes memory[] memory","value":"dynargs"},"id":4603,"name":"Identifier","src":"28502:7:5"}],"id":4604,"name":"FunctionCall","src":"28475:35:5"}],"id":4605,"name":"Return","src":"28468:42:5"}],"id":4606,"name":"Block","src":"28349:168:5"}],"id":4607,"name":"FunctionDefinition","src":"28249:268:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"timestamp","scope":4655,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4608,"name":"ElementaryTypeName","src":"28546:4:5"}],"id":4609,"name":"VariableDeclaration","src":"28546:14:5"},{"attributes":{"constant":false,"name":"datasource","scope":4655,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":4610,"name":"ElementaryTypeName","src":"28562:6:5"}],"id":4611,"name":"VariableDeclaration","src":"28562:17:5"},{"attributes":{"constant":false,"name":"args","scope":4655,"stateVariable":false,"storageLocation":"default","type":"bytes[2]","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"bytes[2]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4612,"name":"ElementaryTypeName","src":"28581:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"subdenomination":null,"token":"number","type":null,"value":"2"},"id":4613,"name":"Literal","src":"28587:1:5"}],"id":4614,"name":"ArrayTypeName","src":"28581:8:5"}],"id":4615,"name":"VariableDeclaration","src":"28581:13:5"}],"id":4616,"name":"ParameterList","src":"28545:50:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":4655,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":4619,"name":"ElementaryTypeName","src":"28626:7:5"}],"id":4620,"name":"VariableDeclaration","src":"28626:10:5"}],"id":4621,"name":"ParameterList","src":"28625:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":4617,"name":"Identifier","src":"28596:11:5"}],"id":4618,"name":"ModifierInvocation","src":"28596:11:5"},{"children":[{"attributes":{"assignments":[4625]},"children":[{"attributes":{"constant":false,"name":"dynargs","scope":4655,"stateVariable":false,"storageLocation":"memory","type":"bytes[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"bytes[]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4623,"name":"ElementaryTypeName","src":"28648:5:5"}],"id":4624,"name":"ArrayTypeName","src":"28648:7:5"}],"id":4625,"name":"VariableDeclaration","src":"28648:22:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory[] memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (bytes memory[] memory)"},"children":[{"attributes":{"length":null,"type":"bytes[]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4626,"name":"ElementaryTypeName","src":"28677:5:5"}],"id":4627,"name":"ArrayTypeName","src":"28677:7:5"}],"id":4628,"name":"NewExpression","src":"28673:11:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":4629,"name":"Literal","src":"28685:1:5"}],"id":4630,"name":"FunctionCall","src":"28673:14:5"}],"id":4631,"name":"VariableDeclarationStatement","src":"28648:39:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4625,"type":"bytes memory[] memory","value":"dynargs"},"id":4632,"name":"Identifier","src":"28697:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4633,"name":"Literal","src":"28705:1:5"}],"id":4634,"name":"IndexAccess","src":"28697:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4615,"type":"bytes memory[2] memory","value":"args"},"id":4635,"name":"Identifier","src":"28710:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4636,"name":"Literal","src":"28715:1:5"}],"id":4637,"name":"IndexAccess","src":"28710:7:5"}],"id":4638,"name":"Assignment","src":"28697:20:5"}],"id":4639,"name":"ExpressionStatement","src":"28697:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4625,"type":"bytes memory[] memory","value":"dynargs"},"id":4640,"name":"Identifier","src":"28727:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":4641,"name":"Literal","src":"28735:1:5"}],"id":4642,"name":"IndexAccess","src":"28727:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4615,"type":"bytes memory[2] memory","value":"args"},"id":4643,"name":"Identifier","src":"28740:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":4644,"name":"Literal","src":"28745:1:5"}],"id":4645,"name":"IndexAccess","src":"28740:7:5"}],"id":4646,"name":"Assignment","src":"28727:20:5"}],"id":4647,"name":"ExpressionStatement","src":"28727:20:5"},{"attributes":{"functionReturnParameters":4621},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_bytes_memory_$dyn_memory_ptr","typeString":"bytes memory[] memory"}],"overloadedDeclarations":[2566,2608,2654,2698,2741,2786,2835,2882,2929,2978,3031,3082,3119,3159,3202,3242,3287,3335,3386,3434,3487,3543,3602,3658,3719,3783,3850,3914,3983,4055,4130,4202,4249,4298,4351,4402,4439,4479,4522,4562,4607,4655,4706,4754,4807,4863,4922,4978,5039,5103,5170,5234,5303,5375,5450,5522],"referencedDeclaration":4298,"type":"function (uint256,string memory,bytes memory[] memory) returns (bytes32)","value":"oraclize_query"},"id":4648,"name":"Identifier","src":"28764:14:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4609,"type":"uint256","value":"timestamp"},"id":4649,"name":"Identifier","src":"28779:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4611,"type":"string memory","value":"datasource"},"id":4650,"name":"Identifier","src":"28790:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4625,"type":"bytes memory[] memory","value":"dynargs"},"id":4651,"name":"Identifier","src":"28802:7:5"}],"id":4652,"name":"FunctionCall","src":"28764:46:5"}],"id":4653,"name":"Return","src":"28757:53:5"}],"id":4654,"name":"Block","src":"28638:179:5"}],"id":4655,"name":"FunctionDefinition","src":"28522:295:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"timestamp","scope":4706,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4656,"name":"ElementaryTypeName","src":"28846:4:5"}],"id":4657,"name":"VariableDeclaration","src":"28846:14:5"},{"attributes":{"constant":false,"name":"datasource","scope":4706,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":4658,"name":"ElementaryTypeName","src":"28862:6:5"}],"id":4659,"name":"VariableDeclaration","src":"28862:17:5"},{"attributes":{"constant":false,"name":"args","scope":4706,"stateVariable":false,"storageLocation":"default","type":"bytes[2]","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"bytes[2]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4660,"name":"ElementaryTypeName","src":"28881:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"subdenomination":null,"token":"number","type":null,"value":"2"},"id":4661,"name":"Literal","src":"28887:1:5"}],"id":4662,"name":"ArrayTypeName","src":"28881:8:5"}],"id":4663,"name":"VariableDeclaration","src":"28881:13:5"},{"attributes":{"constant":false,"name":"gaslimit","scope":4706,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4664,"name":"ElementaryTypeName","src":"28896:4:5"}],"id":4665,"name":"VariableDeclaration","src":"28896:13:5"}],"id":4666,"name":"ParameterList","src":"28845:65:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":4706,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":4669,"name":"ElementaryTypeName","src":"28941:7:5"}],"id":4670,"name":"VariableDeclaration","src":"28941:10:5"}],"id":4671,"name":"ParameterList","src":"28940:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":4667,"name":"Identifier","src":"28911:11:5"}],"id":4668,"name":"ModifierInvocation","src":"28911:11:5"},{"children":[{"attributes":{"assignments":[4675]},"children":[{"attributes":{"constant":false,"name":"dynargs","scope":4706,"stateVariable":false,"storageLocation":"memory","type":"bytes[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"bytes[]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4673,"name":"ElementaryTypeName","src":"28963:5:5"}],"id":4674,"name":"ArrayTypeName","src":"28963:7:5"}],"id":4675,"name":"VariableDeclaration","src":"28963:22:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory[] memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (bytes memory[] memory)"},"children":[{"attributes":{"length":null,"type":"bytes[]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4676,"name":"ElementaryTypeName","src":"28992:5:5"}],"id":4677,"name":"ArrayTypeName","src":"28992:7:5"}],"id":4678,"name":"NewExpression","src":"28988:11:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":4679,"name":"Literal","src":"29000:1:5"}],"id":4680,"name":"FunctionCall","src":"28988:14:5"}],"id":4681,"name":"VariableDeclarationStatement","src":"28963:39:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4675,"type":"bytes memory[] memory","value":"dynargs"},"id":4682,"name":"Identifier","src":"29012:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4683,"name":"Literal","src":"29020:1:5"}],"id":4684,"name":"IndexAccess","src":"29012:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4663,"type":"bytes memory[2] memory","value":"args"},"id":4685,"name":"Identifier","src":"29025:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4686,"name":"Literal","src":"29030:1:5"}],"id":4687,"name":"IndexAccess","src":"29025:7:5"}],"id":4688,"name":"Assignment","src":"29012:20:5"}],"id":4689,"name":"ExpressionStatement","src":"29012:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4675,"type":"bytes memory[] memory","value":"dynargs"},"id":4690,"name":"Identifier","src":"29042:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":4691,"name":"Literal","src":"29050:1:5"}],"id":4692,"name":"IndexAccess","src":"29042:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4663,"type":"bytes memory[2] memory","value":"args"},"id":4693,"name":"Identifier","src":"29055:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":4694,"name":"Literal","src":"29060:1:5"}],"id":4695,"name":"IndexAccess","src":"29055:7:5"}],"id":4696,"name":"Assignment","src":"29042:20:5"}],"id":4697,"name":"ExpressionStatement","src":"29042:20:5"},{"attributes":{"functionReturnParameters":4671},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_bytes_memory_$dyn_memory_ptr","typeString":"bytes memory[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[2566,2608,2654,2698,2741,2786,2835,2882,2929,2978,3031,3082,3119,3159,3202,3242,3287,3335,3386,3434,3487,3543,3602,3658,3719,3783,3850,3914,3983,4055,4130,4202,4249,4298,4351,4402,4439,4479,4522,4562,4607,4655,4706,4754,4807,4863,4922,4978,5039,5103,5170,5234,5303,5375,5450,5522],"referencedDeclaration":4351,"type":"function (uint256,string memory,bytes memory[] memory,uint256) returns (bytes32)","value":"oraclize_query"},"id":4698,"name":"Identifier","src":"29079:14:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4657,"type":"uint256","value":"timestamp"},"id":4699,"name":"Identifier","src":"29094:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4659,"type":"string memory","value":"datasource"},"id":4700,"name":"Identifier","src":"29105:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4675,"type":"bytes memory[] memory","value":"dynargs"},"id":4701,"name":"Identifier","src":"29117:7:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4665,"type":"uint256","value":"gaslimit"},"id":4702,"name":"Identifier","src":"29126:8:5"}],"id":4703,"name":"FunctionCall","src":"29079:56:5"}],"id":4704,"name":"Return","src":"29072:63:5"}],"id":4705,"name":"Block","src":"28953:189:5"}],"id":4706,"name":"FunctionDefinition","src":"28822:320:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"datasource","scope":4754,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":4707,"name":"ElementaryTypeName","src":"29171:6:5"}],"id":4708,"name":"VariableDeclaration","src":"29171:17:5"},{"attributes":{"constant":false,"name":"args","scope":4754,"stateVariable":false,"storageLocation":"default","type":"bytes[2]","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"bytes[2]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4709,"name":"ElementaryTypeName","src":"29190:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"subdenomination":null,"token":"number","type":null,"value":"2"},"id":4710,"name":"Literal","src":"29196:1:5"}],"id":4711,"name":"ArrayTypeName","src":"29190:8:5"}],"id":4712,"name":"VariableDeclaration","src":"29190:13:5"},{"attributes":{"constant":false,"name":"gaslimit","scope":4754,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4713,"name":"ElementaryTypeName","src":"29205:4:5"}],"id":4714,"name":"VariableDeclaration","src":"29205:13:5"}],"id":4715,"name":"ParameterList","src":"29170:49:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":4754,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":4718,"name":"ElementaryTypeName","src":"29250:7:5"}],"id":4719,"name":"VariableDeclaration","src":"29250:10:5"}],"id":4720,"name":"ParameterList","src":"29249:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":4716,"name":"Identifier","src":"29220:11:5"}],"id":4717,"name":"ModifierInvocation","src":"29220:11:5"},{"children":[{"attributes":{"assignments":[4724]},"children":[{"attributes":{"constant":false,"name":"dynargs","scope":4754,"stateVariable":false,"storageLocation":"memory","type":"bytes[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"bytes[]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4722,"name":"ElementaryTypeName","src":"29272:5:5"}],"id":4723,"name":"ArrayTypeName","src":"29272:7:5"}],"id":4724,"name":"VariableDeclaration","src":"29272:22:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory[] memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (bytes memory[] memory)"},"children":[{"attributes":{"length":null,"type":"bytes[]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4725,"name":"ElementaryTypeName","src":"29301:5:5"}],"id":4726,"name":"ArrayTypeName","src":"29301:7:5"}],"id":4727,"name":"NewExpression","src":"29297:11:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":4728,"name":"Literal","src":"29309:1:5"}],"id":4729,"name":"FunctionCall","src":"29297:14:5"}],"id":4730,"name":"VariableDeclarationStatement","src":"29272:39:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4724,"type":"bytes memory[] memory","value":"dynargs"},"id":4731,"name":"Identifier","src":"29321:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4732,"name":"Literal","src":"29329:1:5"}],"id":4733,"name":"IndexAccess","src":"29321:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4712,"type":"bytes memory[2] memory","value":"args"},"id":4734,"name":"Identifier","src":"29334:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4735,"name":"Literal","src":"29339:1:5"}],"id":4736,"name":"IndexAccess","src":"29334:7:5"}],"id":4737,"name":"Assignment","src":"29321:20:5"}],"id":4738,"name":"ExpressionStatement","src":"29321:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4724,"type":"bytes memory[] memory","value":"dynargs"},"id":4739,"name":"Identifier","src":"29351:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":4740,"name":"Literal","src":"29359:1:5"}],"id":4741,"name":"IndexAccess","src":"29351:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4712,"type":"bytes memory[2] memory","value":"args"},"id":4742,"name":"Identifier","src":"29364:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":4743,"name":"Literal","src":"29369:1:5"}],"id":4744,"name":"IndexAccess","src":"29364:7:5"}],"id":4745,"name":"Assignment","src":"29351:20:5"}],"id":4746,"name":"ExpressionStatement","src":"29351:20:5"},{"attributes":{"functionReturnParameters":4720},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_bytes_memory_$dyn_memory_ptr","typeString":"bytes memory[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[2566,2608,2654,2698,2741,2786,2835,2882,2929,2978,3031,3082,3119,3159,3202,3242,3287,3335,3386,3434,3487,3543,3602,3658,3719,3783,3850,3914,3983,4055,4130,4202,4249,4298,4351,4402,4439,4479,4522,4562,4607,4655,4706,4754,4807,4863,4922,4978,5039,5103,5170,5234,5303,5375,5450,5522],"referencedDeclaration":4402,"type":"function (string memory,bytes memory[] memory,uint256) returns (bytes32)","value":"oraclize_query"},"id":4747,"name":"Identifier","src":"29388:14:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4708,"type":"string memory","value":"datasource"},"id":4748,"name":"Identifier","src":"29403:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4724,"type":"bytes memory[] memory","value":"dynargs"},"id":4749,"name":"Identifier","src":"29415:7:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4714,"type":"uint256","value":"gaslimit"},"id":4750,"name":"Identifier","src":"29424:8:5"}],"id":4751,"name":"FunctionCall","src":"29388:45:5"}],"id":4752,"name":"Return","src":"29381:52:5"}],"id":4753,"name":"Block","src":"29262:178:5"}],"id":4754,"name":"FunctionDefinition","src":"29147:293:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"datasource","scope":4807,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":4755,"name":"ElementaryTypeName","src":"29469:6:5"}],"id":4756,"name":"VariableDeclaration","src":"29469:17:5"},{"attributes":{"constant":false,"name":"args","scope":4807,"stateVariable":false,"storageLocation":"default","type":"bytes[3]","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"bytes[3]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4757,"name":"ElementaryTypeName","src":"29488:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"subdenomination":null,"token":"number","type":null,"value":"3"},"id":4758,"name":"Literal","src":"29494:1:5"}],"id":4759,"name":"ArrayTypeName","src":"29488:8:5"}],"id":4760,"name":"VariableDeclaration","src":"29488:13:5"}],"id":4761,"name":"ParameterList","src":"29468:34:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":4807,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":4764,"name":"ElementaryTypeName","src":"29533:7:5"}],"id":4765,"name":"VariableDeclaration","src":"29533:10:5"}],"id":4766,"name":"ParameterList","src":"29532:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":4762,"name":"Identifier","src":"29503:11:5"}],"id":4763,"name":"ModifierInvocation","src":"29503:11:5"},{"children":[{"attributes":{"assignments":[4770]},"children":[{"attributes":{"constant":false,"name":"dynargs","scope":4807,"stateVariable":false,"storageLocation":"memory","type":"bytes[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"bytes[]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4768,"name":"ElementaryTypeName","src":"29555:5:5"}],"id":4769,"name":"ArrayTypeName","src":"29555:7:5"}],"id":4770,"name":"VariableDeclaration","src":"29555:22:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory[] memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (bytes memory[] memory)"},"children":[{"attributes":{"length":null,"type":"bytes[]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4771,"name":"ElementaryTypeName","src":"29584:5:5"}],"id":4772,"name":"ArrayTypeName","src":"29584:7:5"}],"id":4773,"name":"NewExpression","src":"29580:11:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":4774,"name":"Literal","src":"29592:1:5"}],"id":4775,"name":"FunctionCall","src":"29580:14:5"}],"id":4776,"name":"VariableDeclarationStatement","src":"29555:39:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4770,"type":"bytes memory[] memory","value":"dynargs"},"id":4777,"name":"Identifier","src":"29604:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4778,"name":"Literal","src":"29612:1:5"}],"id":4779,"name":"IndexAccess","src":"29604:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4760,"type":"bytes memory[3] memory","value":"args"},"id":4780,"name":"Identifier","src":"29617:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4781,"name":"Literal","src":"29622:1:5"}],"id":4782,"name":"IndexAccess","src":"29617:7:5"}],"id":4783,"name":"Assignment","src":"29604:20:5"}],"id":4784,"name":"ExpressionStatement","src":"29604:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4770,"type":"bytes memory[] memory","value":"dynargs"},"id":4785,"name":"Identifier","src":"29634:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":4786,"name":"Literal","src":"29642:1:5"}],"id":4787,"name":"IndexAccess","src":"29634:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4760,"type":"bytes memory[3] memory","value":"args"},"id":4788,"name":"Identifier","src":"29647:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":4789,"name":"Literal","src":"29652:1:5"}],"id":4790,"name":"IndexAccess","src":"29647:7:5"}],"id":4791,"name":"Assignment","src":"29634:20:5"}],"id":4792,"name":"ExpressionStatement","src":"29634:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4770,"type":"bytes memory[] memory","value":"dynargs"},"id":4793,"name":"Identifier","src":"29664:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":4794,"name":"Literal","src":"29672:1:5"}],"id":4795,"name":"IndexAccess","src":"29664:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4760,"type":"bytes memory[3] memory","value":"args"},"id":4796,"name":"Identifier","src":"29677:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":4797,"name":"Literal","src":"29682:1:5"}],"id":4798,"name":"IndexAccess","src":"29677:7:5"}],"id":4799,"name":"Assignment","src":"29664:20:5"}],"id":4800,"name":"ExpressionStatement","src":"29664:20:5"},{"attributes":{"functionReturnParameters":4766},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_bytes_memory_$dyn_memory_ptr","typeString":"bytes memory[] memory"}],"overloadedDeclarations":[2566,2608,2654,2698,2741,2786,2835,2882,2929,2978,3031,3082,3119,3159,3202,3242,3287,3335,3386,3434,3487,3543,3602,3658,3719,3783,3850,3914,3983,4055,4130,4202,4249,4298,4351,4402,4439,4479,4522,4562,4607,4655,4706,4754,4807,4863,4922,4978,5039,5103,5170,5234,5303,5375,5450,5522],"referencedDeclaration":4249,"type":"function (string memory,bytes memory[] memory) returns (bytes32)","value":"oraclize_query"},"id":4801,"name":"Identifier","src":"29701:14:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4756,"type":"string memory","value":"datasource"},"id":4802,"name":"Identifier","src":"29716:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4770,"type":"bytes memory[] memory","value":"dynargs"},"id":4803,"name":"Identifier","src":"29728:7:5"}],"id":4804,"name":"FunctionCall","src":"29701:35:5"}],"id":4805,"name":"Return","src":"29694:42:5"}],"id":4806,"name":"Block","src":"29545:198:5"}],"id":4807,"name":"FunctionDefinition","src":"29445:298:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"timestamp","scope":4863,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4808,"name":"ElementaryTypeName","src":"29772:4:5"}],"id":4809,"name":"VariableDeclaration","src":"29772:14:5"},{"attributes":{"constant":false,"name":"datasource","scope":4863,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":4810,"name":"ElementaryTypeName","src":"29788:6:5"}],"id":4811,"name":"VariableDeclaration","src":"29788:17:5"},{"attributes":{"constant":false,"name":"args","scope":4863,"stateVariable":false,"storageLocation":"default","type":"bytes[3]","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"bytes[3]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4812,"name":"ElementaryTypeName","src":"29807:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"subdenomination":null,"token":"number","type":null,"value":"3"},"id":4813,"name":"Literal","src":"29813:1:5"}],"id":4814,"name":"ArrayTypeName","src":"29807:8:5"}],"id":4815,"name":"VariableDeclaration","src":"29807:13:5"}],"id":4816,"name":"ParameterList","src":"29771:50:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":4863,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":4819,"name":"ElementaryTypeName","src":"29852:7:5"}],"id":4820,"name":"VariableDeclaration","src":"29852:10:5"}],"id":4821,"name":"ParameterList","src":"29851:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":4817,"name":"Identifier","src":"29822:11:5"}],"id":4818,"name":"ModifierInvocation","src":"29822:11:5"},{"children":[{"attributes":{"assignments":[4825]},"children":[{"attributes":{"constant":false,"name":"dynargs","scope":4863,"stateVariable":false,"storageLocation":"memory","type":"bytes[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"bytes[]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4823,"name":"ElementaryTypeName","src":"29874:5:5"}],"id":4824,"name":"ArrayTypeName","src":"29874:7:5"}],"id":4825,"name":"VariableDeclaration","src":"29874:22:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory[] memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (bytes memory[] memory)"},"children":[{"attributes":{"length":null,"type":"bytes[]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4826,"name":"ElementaryTypeName","src":"29903:5:5"}],"id":4827,"name":"ArrayTypeName","src":"29903:7:5"}],"id":4828,"name":"NewExpression","src":"29899:11:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":4829,"name":"Literal","src":"29911:1:5"}],"id":4830,"name":"FunctionCall","src":"29899:14:5"}],"id":4831,"name":"VariableDeclarationStatement","src":"29874:39:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4825,"type":"bytes memory[] memory","value":"dynargs"},"id":4832,"name":"Identifier","src":"29923:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4833,"name":"Literal","src":"29931:1:5"}],"id":4834,"name":"IndexAccess","src":"29923:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4815,"type":"bytes memory[3] memory","value":"args"},"id":4835,"name":"Identifier","src":"29936:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4836,"name":"Literal","src":"29941:1:5"}],"id":4837,"name":"IndexAccess","src":"29936:7:5"}],"id":4838,"name":"Assignment","src":"29923:20:5"}],"id":4839,"name":"ExpressionStatement","src":"29923:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4825,"type":"bytes memory[] memory","value":"dynargs"},"id":4840,"name":"Identifier","src":"29953:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":4841,"name":"Literal","src":"29961:1:5"}],"id":4842,"name":"IndexAccess","src":"29953:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4815,"type":"bytes memory[3] memory","value":"args"},"id":4843,"name":"Identifier","src":"29966:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":4844,"name":"Literal","src":"29971:1:5"}],"id":4845,"name":"IndexAccess","src":"29966:7:5"}],"id":4846,"name":"Assignment","src":"29953:20:5"}],"id":4847,"name":"ExpressionStatement","src":"29953:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4825,"type":"bytes memory[] memory","value":"dynargs"},"id":4848,"name":"Identifier","src":"29983:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":4849,"name":"Literal","src":"29991:1:5"}],"id":4850,"name":"IndexAccess","src":"29983:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4815,"type":"bytes memory[3] memory","value":"args"},"id":4851,"name":"Identifier","src":"29996:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":4852,"name":"Literal","src":"30001:1:5"}],"id":4853,"name":"IndexAccess","src":"29996:7:5"}],"id":4854,"name":"Assignment","src":"29983:20:5"}],"id":4855,"name":"ExpressionStatement","src":"29983:20:5"},{"attributes":{"functionReturnParameters":4821},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_bytes_memory_$dyn_memory_ptr","typeString":"bytes memory[] memory"}],"overloadedDeclarations":[2566,2608,2654,2698,2741,2786,2835,2882,2929,2978,3031,3082,3119,3159,3202,3242,3287,3335,3386,3434,3487,3543,3602,3658,3719,3783,3850,3914,3983,4055,4130,4202,4249,4298,4351,4402,4439,4479,4522,4562,4607,4655,4706,4754,4807,4863,4922,4978,5039,5103,5170,5234,5303,5375,5450,5522],"referencedDeclaration":4298,"type":"function (uint256,string memory,bytes memory[] memory) returns (bytes32)","value":"oraclize_query"},"id":4856,"name":"Identifier","src":"30020:14:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4809,"type":"uint256","value":"timestamp"},"id":4857,"name":"Identifier","src":"30035:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4811,"type":"string memory","value":"datasource"},"id":4858,"name":"Identifier","src":"30046:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4825,"type":"bytes memory[] memory","value":"dynargs"},"id":4859,"name":"Identifier","src":"30058:7:5"}],"id":4860,"name":"FunctionCall","src":"30020:46:5"}],"id":4861,"name":"Return","src":"30013:53:5"}],"id":4862,"name":"Block","src":"29864:209:5"}],"id":4863,"name":"FunctionDefinition","src":"29748:325:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"timestamp","scope":4922,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4864,"name":"ElementaryTypeName","src":"30102:4:5"}],"id":4865,"name":"VariableDeclaration","src":"30102:14:5"},{"attributes":{"constant":false,"name":"datasource","scope":4922,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":4866,"name":"ElementaryTypeName","src":"30118:6:5"}],"id":4867,"name":"VariableDeclaration","src":"30118:17:5"},{"attributes":{"constant":false,"name":"args","scope":4922,"stateVariable":false,"storageLocation":"default","type":"bytes[3]","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"bytes[3]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4868,"name":"ElementaryTypeName","src":"30137:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"subdenomination":null,"token":"number","type":null,"value":"3"},"id":4869,"name":"Literal","src":"30143:1:5"}],"id":4870,"name":"ArrayTypeName","src":"30137:8:5"}],"id":4871,"name":"VariableDeclaration","src":"30137:13:5"},{"attributes":{"constant":false,"name":"gaslimit","scope":4922,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4872,"name":"ElementaryTypeName","src":"30152:4:5"}],"id":4873,"name":"VariableDeclaration","src":"30152:13:5"}],"id":4874,"name":"ParameterList","src":"30101:65:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":4922,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":4877,"name":"ElementaryTypeName","src":"30197:7:5"}],"id":4878,"name":"VariableDeclaration","src":"30197:10:5"}],"id":4879,"name":"ParameterList","src":"30196:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":4875,"name":"Identifier","src":"30167:11:5"}],"id":4876,"name":"ModifierInvocation","src":"30167:11:5"},{"children":[{"attributes":{"assignments":[4883]},"children":[{"attributes":{"constant":false,"name":"dynargs","scope":4922,"stateVariable":false,"storageLocation":"memory","type":"bytes[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"bytes[]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4881,"name":"ElementaryTypeName","src":"30219:5:5"}],"id":4882,"name":"ArrayTypeName","src":"30219:7:5"}],"id":4883,"name":"VariableDeclaration","src":"30219:22:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory[] memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (bytes memory[] memory)"},"children":[{"attributes":{"length":null,"type":"bytes[]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4884,"name":"ElementaryTypeName","src":"30248:5:5"}],"id":4885,"name":"ArrayTypeName","src":"30248:7:5"}],"id":4886,"name":"NewExpression","src":"30244:11:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":4887,"name":"Literal","src":"30256:1:5"}],"id":4888,"name":"FunctionCall","src":"30244:14:5"}],"id":4889,"name":"VariableDeclarationStatement","src":"30219:39:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4883,"type":"bytes memory[] memory","value":"dynargs"},"id":4890,"name":"Identifier","src":"30268:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4891,"name":"Literal","src":"30276:1:5"}],"id":4892,"name":"IndexAccess","src":"30268:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4871,"type":"bytes memory[3] memory","value":"args"},"id":4893,"name":"Identifier","src":"30281:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4894,"name":"Literal","src":"30286:1:5"}],"id":4895,"name":"IndexAccess","src":"30281:7:5"}],"id":4896,"name":"Assignment","src":"30268:20:5"}],"id":4897,"name":"ExpressionStatement","src":"30268:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4883,"type":"bytes memory[] memory","value":"dynargs"},"id":4898,"name":"Identifier","src":"30298:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":4899,"name":"Literal","src":"30306:1:5"}],"id":4900,"name":"IndexAccess","src":"30298:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4871,"type":"bytes memory[3] memory","value":"args"},"id":4901,"name":"Identifier","src":"30311:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":4902,"name":"Literal","src":"30316:1:5"}],"id":4903,"name":"IndexAccess","src":"30311:7:5"}],"id":4904,"name":"Assignment","src":"30298:20:5"}],"id":4905,"name":"ExpressionStatement","src":"30298:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4883,"type":"bytes memory[] memory","value":"dynargs"},"id":4906,"name":"Identifier","src":"30328:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":4907,"name":"Literal","src":"30336:1:5"}],"id":4908,"name":"IndexAccess","src":"30328:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4871,"type":"bytes memory[3] memory","value":"args"},"id":4909,"name":"Identifier","src":"30341:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":4910,"name":"Literal","src":"30346:1:5"}],"id":4911,"name":"IndexAccess","src":"30341:7:5"}],"id":4912,"name":"Assignment","src":"30328:20:5"}],"id":4913,"name":"ExpressionStatement","src":"30328:20:5"},{"attributes":{"functionReturnParameters":4879},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_bytes_memory_$dyn_memory_ptr","typeString":"bytes memory[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[2566,2608,2654,2698,2741,2786,2835,2882,2929,2978,3031,3082,3119,3159,3202,3242,3287,3335,3386,3434,3487,3543,3602,3658,3719,3783,3850,3914,3983,4055,4130,4202,4249,4298,4351,4402,4439,4479,4522,4562,4607,4655,4706,4754,4807,4863,4922,4978,5039,5103,5170,5234,5303,5375,5450,5522],"referencedDeclaration":4351,"type":"function (uint256,string memory,bytes memory[] memory,uint256) returns (bytes32)","value":"oraclize_query"},"id":4914,"name":"Identifier","src":"30365:14:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4865,"type":"uint256","value":"timestamp"},"id":4915,"name":"Identifier","src":"30380:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4867,"type":"string memory","value":"datasource"},"id":4916,"name":"Identifier","src":"30391:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4883,"type":"bytes memory[] memory","value":"dynargs"},"id":4917,"name":"Identifier","src":"30403:7:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4873,"type":"uint256","value":"gaslimit"},"id":4918,"name":"Identifier","src":"30412:8:5"}],"id":4919,"name":"FunctionCall","src":"30365:56:5"}],"id":4920,"name":"Return","src":"30358:63:5"}],"id":4921,"name":"Block","src":"30209:219:5"}],"id":4922,"name":"FunctionDefinition","src":"30078:350:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"datasource","scope":4978,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":4923,"name":"ElementaryTypeName","src":"30457:6:5"}],"id":4924,"name":"VariableDeclaration","src":"30457:17:5"},{"attributes":{"constant":false,"name":"args","scope":4978,"stateVariable":false,"storageLocation":"default","type":"bytes[3]","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"bytes[3]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4925,"name":"ElementaryTypeName","src":"30476:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"subdenomination":null,"token":"number","type":null,"value":"3"},"id":4926,"name":"Literal","src":"30482:1:5"}],"id":4927,"name":"ArrayTypeName","src":"30476:8:5"}],"id":4928,"name":"VariableDeclaration","src":"30476:13:5"},{"attributes":{"constant":false,"name":"gaslimit","scope":4978,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4929,"name":"ElementaryTypeName","src":"30491:4:5"}],"id":4930,"name":"VariableDeclaration","src":"30491:13:5"}],"id":4931,"name":"ParameterList","src":"30456:49:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":4978,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":4934,"name":"ElementaryTypeName","src":"30536:7:5"}],"id":4935,"name":"VariableDeclaration","src":"30536:10:5"}],"id":4936,"name":"ParameterList","src":"30535:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":4932,"name":"Identifier","src":"30506:11:5"}],"id":4933,"name":"ModifierInvocation","src":"30506:11:5"},{"children":[{"attributes":{"assignments":[4940]},"children":[{"attributes":{"constant":false,"name":"dynargs","scope":4978,"stateVariable":false,"storageLocation":"memory","type":"bytes[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"bytes[]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4938,"name":"ElementaryTypeName","src":"30558:5:5"}],"id":4939,"name":"ArrayTypeName","src":"30558:7:5"}],"id":4940,"name":"VariableDeclaration","src":"30558:22:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory[] memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (bytes memory[] memory)"},"children":[{"attributes":{"length":null,"type":"bytes[]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4941,"name":"ElementaryTypeName","src":"30587:5:5"}],"id":4942,"name":"ArrayTypeName","src":"30587:7:5"}],"id":4943,"name":"NewExpression","src":"30583:11:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":4944,"name":"Literal","src":"30595:1:5"}],"id":4945,"name":"FunctionCall","src":"30583:14:5"}],"id":4946,"name":"VariableDeclarationStatement","src":"30558:39:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4940,"type":"bytes memory[] memory","value":"dynargs"},"id":4947,"name":"Identifier","src":"30607:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4948,"name":"Literal","src":"30615:1:5"}],"id":4949,"name":"IndexAccess","src":"30607:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4928,"type":"bytes memory[3] memory","value":"args"},"id":4950,"name":"Identifier","src":"30620:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4951,"name":"Literal","src":"30625:1:5"}],"id":4952,"name":"IndexAccess","src":"30620:7:5"}],"id":4953,"name":"Assignment","src":"30607:20:5"}],"id":4954,"name":"ExpressionStatement","src":"30607:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4940,"type":"bytes memory[] memory","value":"dynargs"},"id":4955,"name":"Identifier","src":"30637:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":4956,"name":"Literal","src":"30645:1:5"}],"id":4957,"name":"IndexAccess","src":"30637:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4928,"type":"bytes memory[3] memory","value":"args"},"id":4958,"name":"Identifier","src":"30650:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":4959,"name":"Literal","src":"30655:1:5"}],"id":4960,"name":"IndexAccess","src":"30650:7:5"}],"id":4961,"name":"Assignment","src":"30637:20:5"}],"id":4962,"name":"ExpressionStatement","src":"30637:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4940,"type":"bytes memory[] memory","value":"dynargs"},"id":4963,"name":"Identifier","src":"30667:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":4964,"name":"Literal","src":"30675:1:5"}],"id":4965,"name":"IndexAccess","src":"30667:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4928,"type":"bytes memory[3] memory","value":"args"},"id":4966,"name":"Identifier","src":"30680:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":4967,"name":"Literal","src":"30685:1:5"}],"id":4968,"name":"IndexAccess","src":"30680:7:5"}],"id":4969,"name":"Assignment","src":"30667:20:5"}],"id":4970,"name":"ExpressionStatement","src":"30667:20:5"},{"attributes":{"functionReturnParameters":4936},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_bytes_memory_$dyn_memory_ptr","typeString":"bytes memory[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[2566,2608,2654,2698,2741,2786,2835,2882,2929,2978,3031,3082,3119,3159,3202,3242,3287,3335,3386,3434,3487,3543,3602,3658,3719,3783,3850,3914,3983,4055,4130,4202,4249,4298,4351,4402,4439,4479,4522,4562,4607,4655,4706,4754,4807,4863,4922,4978,5039,5103,5170,5234,5303,5375,5450,5522],"referencedDeclaration":4402,"type":"function (string memory,bytes memory[] memory,uint256) returns (bytes32)","value":"oraclize_query"},"id":4971,"name":"Identifier","src":"30704:14:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4924,"type":"string memory","value":"datasource"},"id":4972,"name":"Identifier","src":"30719:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4940,"type":"bytes memory[] memory","value":"dynargs"},"id":4973,"name":"Identifier","src":"30731:7:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4930,"type":"uint256","value":"gaslimit"},"id":4974,"name":"Identifier","src":"30740:8:5"}],"id":4975,"name":"FunctionCall","src":"30704:45:5"}],"id":4976,"name":"Return","src":"30697:52:5"}],"id":4977,"name":"Block","src":"30548:208:5"}],"id":4978,"name":"FunctionDefinition","src":"30433:323:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"datasource","scope":5039,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":4979,"name":"ElementaryTypeName","src":"30786:6:5"}],"id":4980,"name":"VariableDeclaration","src":"30786:17:5"},{"attributes":{"constant":false,"name":"args","scope":5039,"stateVariable":false,"storageLocation":"default","type":"bytes[4]","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"bytes[4]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4981,"name":"ElementaryTypeName","src":"30805:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"subdenomination":null,"token":"number","type":null,"value":"4"},"id":4982,"name":"Literal","src":"30811:1:5"}],"id":4983,"name":"ArrayTypeName","src":"30805:8:5"}],"id":4984,"name":"VariableDeclaration","src":"30805:13:5"}],"id":4985,"name":"ParameterList","src":"30785:34:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":5039,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":4988,"name":"ElementaryTypeName","src":"30850:7:5"}],"id":4989,"name":"VariableDeclaration","src":"30850:10:5"}],"id":4990,"name":"ParameterList","src":"30849:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":4986,"name":"Identifier","src":"30820:11:5"}],"id":4987,"name":"ModifierInvocation","src":"30820:11:5"},{"children":[{"attributes":{"assignments":[4994]},"children":[{"attributes":{"constant":false,"name":"dynargs","scope":5039,"stateVariable":false,"storageLocation":"memory","type":"bytes[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"bytes[]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4992,"name":"ElementaryTypeName","src":"30872:5:5"}],"id":4993,"name":"ArrayTypeName","src":"30872:7:5"}],"id":4994,"name":"VariableDeclaration","src":"30872:22:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory[] memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (bytes memory[] memory)"},"children":[{"attributes":{"length":null,"type":"bytes[]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4995,"name":"ElementaryTypeName","src":"30901:5:5"}],"id":4996,"name":"ArrayTypeName","src":"30901:7:5"}],"id":4997,"name":"NewExpression","src":"30897:11:5"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":4998,"name":"Literal","src":"30909:1:5"}],"id":4999,"name":"FunctionCall","src":"30897:14:5"}],"id":5000,"name":"VariableDeclarationStatement","src":"30872:39:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4994,"type":"bytes memory[] memory","value":"dynargs"},"id":5001,"name":"Identifier","src":"30921:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":5002,"name":"Literal","src":"30929:1:5"}],"id":5003,"name":"IndexAccess","src":"30921:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4984,"type":"bytes memory[4] memory","value":"args"},"id":5004,"name":"Identifier","src":"30934:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":5005,"name":"Literal","src":"30939:1:5"}],"id":5006,"name":"IndexAccess","src":"30934:7:5"}],"id":5007,"name":"Assignment","src":"30921:20:5"}],"id":5008,"name":"ExpressionStatement","src":"30921:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4994,"type":"bytes memory[] memory","value":"dynargs"},"id":5009,"name":"Identifier","src":"30951:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":5010,"name":"Literal","src":"30959:1:5"}],"id":5011,"name":"IndexAccess","src":"30951:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4984,"type":"bytes memory[4] memory","value":"args"},"id":5012,"name":"Identifier","src":"30964:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":5013,"name":"Literal","src":"30969:1:5"}],"id":5014,"name":"IndexAccess","src":"30964:7:5"}],"id":5015,"name":"Assignment","src":"30951:20:5"}],"id":5016,"name":"ExpressionStatement","src":"30951:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4994,"type":"bytes memory[] memory","value":"dynargs"},"id":5017,"name":"Identifier","src":"30981:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":5018,"name":"Literal","src":"30989:1:5"}],"id":5019,"name":"IndexAccess","src":"30981:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4984,"type":"bytes memory[4] memory","value":"args"},"id":5020,"name":"Identifier","src":"30994:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":5021,"name":"Literal","src":"30999:1:5"}],"id":5022,"name":"IndexAccess","src":"30994:7:5"}],"id":5023,"name":"Assignment","src":"30981:20:5"}],"id":5024,"name":"ExpressionStatement","src":"30981:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4994,"type":"bytes memory[] memory","value":"dynargs"},"id":5025,"name":"Identifier","src":"31011:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":5026,"name":"Literal","src":"31019:1:5"}],"id":5027,"name":"IndexAccess","src":"31011:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4984,"type":"bytes memory[4] memory","value":"args"},"id":5028,"name":"Identifier","src":"31024:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":5029,"name":"Literal","src":"31029:1:5"}],"id":5030,"name":"IndexAccess","src":"31024:7:5"}],"id":5031,"name":"Assignment","src":"31011:20:5"}],"id":5032,"name":"ExpressionStatement","src":"31011:20:5"},{"attributes":{"functionReturnParameters":4990},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_bytes_memory_$dyn_memory_ptr","typeString":"bytes memory[] memory"}],"overloadedDeclarations":[2566,2608,2654,2698,2741,2786,2835,2882,2929,2978,3031,3082,3119,3159,3202,3242,3287,3335,3386,3434,3487,3543,3602,3658,3719,3783,3850,3914,3983,4055,4130,4202,4249,4298,4351,4402,4439,4479,4522,4562,4607,4655,4706,4754,4807,4863,4922,4978,5039,5103,5170,5234,5303,5375,5450,5522],"referencedDeclaration":4249,"type":"function (string memory,bytes memory[] memory) returns (bytes32)","value":"oraclize_query"},"id":5033,"name":"Identifier","src":"31048:14:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4980,"type":"string memory","value":"datasource"},"id":5034,"name":"Identifier","src":"31063:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4994,"type":"bytes memory[] memory","value":"dynargs"},"id":5035,"name":"Identifier","src":"31075:7:5"}],"id":5036,"name":"FunctionCall","src":"31048:35:5"}],"id":5037,"name":"Return","src":"31041:42:5"}],"id":5038,"name":"Block","src":"30862:228:5"}],"id":5039,"name":"FunctionDefinition","src":"30762:328:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"timestamp","scope":5103,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5040,"name":"ElementaryTypeName","src":"31119:4:5"}],"id":5041,"name":"VariableDeclaration","src":"31119:14:5"},{"attributes":{"constant":false,"name":"datasource","scope":5103,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":5042,"name":"ElementaryTypeName","src":"31135:6:5"}],"id":5043,"name":"VariableDeclaration","src":"31135:17:5"},{"attributes":{"constant":false,"name":"args","scope":5103,"stateVariable":false,"storageLocation":"default","type":"bytes[4]","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"bytes[4]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":5044,"name":"ElementaryTypeName","src":"31154:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"subdenomination":null,"token":"number","type":null,"value":"4"},"id":5045,"name":"Literal","src":"31160:1:5"}],"id":5046,"name":"ArrayTypeName","src":"31154:8:5"}],"id":5047,"name":"VariableDeclaration","src":"31154:13:5"}],"id":5048,"name":"ParameterList","src":"31118:50:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":5103,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":5051,"name":"ElementaryTypeName","src":"31199:7:5"}],"id":5052,"name":"VariableDeclaration","src":"31199:10:5"}],"id":5053,"name":"ParameterList","src":"31198:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":5049,"name":"Identifier","src":"31169:11:5"}],"id":5050,"name":"ModifierInvocation","src":"31169:11:5"},{"children":[{"attributes":{"assignments":[5057]},"children":[{"attributes":{"constant":false,"name":"dynargs","scope":5103,"stateVariable":false,"storageLocation":"memory","type":"bytes[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"bytes[]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":5055,"name":"ElementaryTypeName","src":"31221:5:5"}],"id":5056,"name":"ArrayTypeName","src":"31221:7:5"}],"id":5057,"name":"VariableDeclaration","src":"31221:22:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory[] memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (bytes memory[] memory)"},"children":[{"attributes":{"length":null,"type":"bytes[]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":5058,"name":"ElementaryTypeName","src":"31250:5:5"}],"id":5059,"name":"ArrayTypeName","src":"31250:7:5"}],"id":5060,"name":"NewExpression","src":"31246:11:5"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":5061,"name":"Literal","src":"31258:1:5"}],"id":5062,"name":"FunctionCall","src":"31246:14:5"}],"id":5063,"name":"VariableDeclarationStatement","src":"31221:39:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5057,"type":"bytes memory[] memory","value":"dynargs"},"id":5064,"name":"Identifier","src":"31270:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":5065,"name":"Literal","src":"31278:1:5"}],"id":5066,"name":"IndexAccess","src":"31270:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5047,"type":"bytes memory[4] memory","value":"args"},"id":5067,"name":"Identifier","src":"31283:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":5068,"name":"Literal","src":"31288:1:5"}],"id":5069,"name":"IndexAccess","src":"31283:7:5"}],"id":5070,"name":"Assignment","src":"31270:20:5"}],"id":5071,"name":"ExpressionStatement","src":"31270:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5057,"type":"bytes memory[] memory","value":"dynargs"},"id":5072,"name":"Identifier","src":"31300:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":5073,"name":"Literal","src":"31308:1:5"}],"id":5074,"name":"IndexAccess","src":"31300:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5047,"type":"bytes memory[4] memory","value":"args"},"id":5075,"name":"Identifier","src":"31313:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":5076,"name":"Literal","src":"31318:1:5"}],"id":5077,"name":"IndexAccess","src":"31313:7:5"}],"id":5078,"name":"Assignment","src":"31300:20:5"}],"id":5079,"name":"ExpressionStatement","src":"31300:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5057,"type":"bytes memory[] memory","value":"dynargs"},"id":5080,"name":"Identifier","src":"31330:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":5081,"name":"Literal","src":"31338:1:5"}],"id":5082,"name":"IndexAccess","src":"31330:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5047,"type":"bytes memory[4] memory","value":"args"},"id":5083,"name":"Identifier","src":"31343:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":5084,"name":"Literal","src":"31348:1:5"}],"id":5085,"name":"IndexAccess","src":"31343:7:5"}],"id":5086,"name":"Assignment","src":"31330:20:5"}],"id":5087,"name":"ExpressionStatement","src":"31330:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5057,"type":"bytes memory[] memory","value":"dynargs"},"id":5088,"name":"Identifier","src":"31360:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":5089,"name":"Literal","src":"31368:1:5"}],"id":5090,"name":"IndexAccess","src":"31360:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5047,"type":"bytes memory[4] memory","value":"args"},"id":5091,"name":"Identifier","src":"31373:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":5092,"name":"Literal","src":"31378:1:5"}],"id":5093,"name":"IndexAccess","src":"31373:7:5"}],"id":5094,"name":"Assignment","src":"31360:20:5"}],"id":5095,"name":"ExpressionStatement","src":"31360:20:5"},{"attributes":{"functionReturnParameters":5053},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_bytes_memory_$dyn_memory_ptr","typeString":"bytes memory[] memory"}],"overloadedDeclarations":[2566,2608,2654,2698,2741,2786,2835,2882,2929,2978,3031,3082,3119,3159,3202,3242,3287,3335,3386,3434,3487,3543,3602,3658,3719,3783,3850,3914,3983,4055,4130,4202,4249,4298,4351,4402,4439,4479,4522,4562,4607,4655,4706,4754,4807,4863,4922,4978,5039,5103,5170,5234,5303,5375,5450,5522],"referencedDeclaration":4298,"type":"function (uint256,string memory,bytes memory[] memory) returns (bytes32)","value":"oraclize_query"},"id":5096,"name":"Identifier","src":"31397:14:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5041,"type":"uint256","value":"timestamp"},"id":5097,"name":"Identifier","src":"31412:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5043,"type":"string memory","value":"datasource"},"id":5098,"name":"Identifier","src":"31423:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5057,"type":"bytes memory[] memory","value":"dynargs"},"id":5099,"name":"Identifier","src":"31435:7:5"}],"id":5100,"name":"FunctionCall","src":"31397:46:5"}],"id":5101,"name":"Return","src":"31390:53:5"}],"id":5102,"name":"Block","src":"31211:239:5"}],"id":5103,"name":"FunctionDefinition","src":"31095:355:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"timestamp","scope":5170,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5104,"name":"ElementaryTypeName","src":"31479:4:5"}],"id":5105,"name":"VariableDeclaration","src":"31479:14:5"},{"attributes":{"constant":false,"name":"datasource","scope":5170,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":5106,"name":"ElementaryTypeName","src":"31495:6:5"}],"id":5107,"name":"VariableDeclaration","src":"31495:17:5"},{"attributes":{"constant":false,"name":"args","scope":5170,"stateVariable":false,"storageLocation":"default","type":"bytes[4]","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"bytes[4]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":5108,"name":"ElementaryTypeName","src":"31514:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"subdenomination":null,"token":"number","type":null,"value":"4"},"id":5109,"name":"Literal","src":"31520:1:5"}],"id":5110,"name":"ArrayTypeName","src":"31514:8:5"}],"id":5111,"name":"VariableDeclaration","src":"31514:13:5"},{"attributes":{"constant":false,"name":"gaslimit","scope":5170,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5112,"name":"ElementaryTypeName","src":"31529:4:5"}],"id":5113,"name":"VariableDeclaration","src":"31529:13:5"}],"id":5114,"name":"ParameterList","src":"31478:65:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":5170,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":5117,"name":"ElementaryTypeName","src":"31574:7:5"}],"id":5118,"name":"VariableDeclaration","src":"31574:10:5"}],"id":5119,"name":"ParameterList","src":"31573:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":5115,"name":"Identifier","src":"31544:11:5"}],"id":5116,"name":"ModifierInvocation","src":"31544:11:5"},{"children":[{"attributes":{"assignments":[5123]},"children":[{"attributes":{"constant":false,"name":"dynargs","scope":5170,"stateVariable":false,"storageLocation":"memory","type":"bytes[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"bytes[]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":5121,"name":"ElementaryTypeName","src":"31596:5:5"}],"id":5122,"name":"ArrayTypeName","src":"31596:7:5"}],"id":5123,"name":"VariableDeclaration","src":"31596:22:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory[] memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (bytes memory[] memory)"},"children":[{"attributes":{"length":null,"type":"bytes[]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":5124,"name":"ElementaryTypeName","src":"31625:5:5"}],"id":5125,"name":"ArrayTypeName","src":"31625:7:5"}],"id":5126,"name":"NewExpression","src":"31621:11:5"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":5127,"name":"Literal","src":"31633:1:5"}],"id":5128,"name":"FunctionCall","src":"31621:14:5"}],"id":5129,"name":"VariableDeclarationStatement","src":"31596:39:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5123,"type":"bytes memory[] memory","value":"dynargs"},"id":5130,"name":"Identifier","src":"31645:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":5131,"name":"Literal","src":"31653:1:5"}],"id":5132,"name":"IndexAccess","src":"31645:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5111,"type":"bytes memory[4] memory","value":"args"},"id":5133,"name":"Identifier","src":"31658:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":5134,"name":"Literal","src":"31663:1:5"}],"id":5135,"name":"IndexAccess","src":"31658:7:5"}],"id":5136,"name":"Assignment","src":"31645:20:5"}],"id":5137,"name":"ExpressionStatement","src":"31645:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5123,"type":"bytes memory[] memory","value":"dynargs"},"id":5138,"name":"Identifier","src":"31675:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":5139,"name":"Literal","src":"31683:1:5"}],"id":5140,"name":"IndexAccess","src":"31675:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5111,"type":"bytes memory[4] memory","value":"args"},"id":5141,"name":"Identifier","src":"31688:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":5142,"name":"Literal","src":"31693:1:5"}],"id":5143,"name":"IndexAccess","src":"31688:7:5"}],"id":5144,"name":"Assignment","src":"31675:20:5"}],"id":5145,"name":"ExpressionStatement","src":"31675:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5123,"type":"bytes memory[] memory","value":"dynargs"},"id":5146,"name":"Identifier","src":"31705:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":5147,"name":"Literal","src":"31713:1:5"}],"id":5148,"name":"IndexAccess","src":"31705:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5111,"type":"bytes memory[4] memory","value":"args"},"id":5149,"name":"Identifier","src":"31718:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":5150,"name":"Literal","src":"31723:1:5"}],"id":5151,"name":"IndexAccess","src":"31718:7:5"}],"id":5152,"name":"Assignment","src":"31705:20:5"}],"id":5153,"name":"ExpressionStatement","src":"31705:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5123,"type":"bytes memory[] memory","value":"dynargs"},"id":5154,"name":"Identifier","src":"31735:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":5155,"name":"Literal","src":"31743:1:5"}],"id":5156,"name":"IndexAccess","src":"31735:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5111,"type":"bytes memory[4] memory","value":"args"},"id":5157,"name":"Identifier","src":"31748:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":5158,"name":"Literal","src":"31753:1:5"}],"id":5159,"name":"IndexAccess","src":"31748:7:5"}],"id":5160,"name":"Assignment","src":"31735:20:5"}],"id":5161,"name":"ExpressionStatement","src":"31735:20:5"},{"attributes":{"functionReturnParameters":5119},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_bytes_memory_$dyn_memory_ptr","typeString":"bytes memory[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[2566,2608,2654,2698,2741,2786,2835,2882,2929,2978,3031,3082,3119,3159,3202,3242,3287,3335,3386,3434,3487,3543,3602,3658,3719,3783,3850,3914,3983,4055,4130,4202,4249,4298,4351,4402,4439,4479,4522,4562,4607,4655,4706,4754,4807,4863,4922,4978,5039,5103,5170,5234,5303,5375,5450,5522],"referencedDeclaration":4351,"type":"function (uint256,string memory,bytes memory[] memory,uint256) returns (bytes32)","value":"oraclize_query"},"id":5162,"name":"Identifier","src":"31772:14:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5105,"type":"uint256","value":"timestamp"},"id":5163,"name":"Identifier","src":"31787:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5107,"type":"string memory","value":"datasource"},"id":5164,"name":"Identifier","src":"31798:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5123,"type":"bytes memory[] memory","value":"dynargs"},"id":5165,"name":"Identifier","src":"31810:7:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5113,"type":"uint256","value":"gaslimit"},"id":5166,"name":"Identifier","src":"31819:8:5"}],"id":5167,"name":"FunctionCall","src":"31772:56:5"}],"id":5168,"name":"Return","src":"31765:63:5"}],"id":5169,"name":"Block","src":"31586:249:5"}],"id":5170,"name":"FunctionDefinition","src":"31455:380:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"datasource","scope":5234,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":5171,"name":"ElementaryTypeName","src":"31864:6:5"}],"id":5172,"name":"VariableDeclaration","src":"31864:17:5"},{"attributes":{"constant":false,"name":"args","scope":5234,"stateVariable":false,"storageLocation":"default","type":"bytes[4]","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"bytes[4]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":5173,"name":"ElementaryTypeName","src":"31883:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"subdenomination":null,"token":"number","type":null,"value":"4"},"id":5174,"name":"Literal","src":"31889:1:5"}],"id":5175,"name":"ArrayTypeName","src":"31883:8:5"}],"id":5176,"name":"VariableDeclaration","src":"31883:13:5"},{"attributes":{"constant":false,"name":"gaslimit","scope":5234,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5177,"name":"ElementaryTypeName","src":"31898:4:5"}],"id":5178,"name":"VariableDeclaration","src":"31898:13:5"}],"id":5179,"name":"ParameterList","src":"31863:49:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":5234,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":5182,"name":"ElementaryTypeName","src":"31943:7:5"}],"id":5183,"name":"VariableDeclaration","src":"31943:10:5"}],"id":5184,"name":"ParameterList","src":"31942:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":5180,"name":"Identifier","src":"31913:11:5"}],"id":5181,"name":"ModifierInvocation","src":"31913:11:5"},{"children":[{"attributes":{"assignments":[5188]},"children":[{"attributes":{"constant":false,"name":"dynargs","scope":5234,"stateVariable":false,"storageLocation":"memory","type":"bytes[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"bytes[]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":5186,"name":"ElementaryTypeName","src":"31965:5:5"}],"id":5187,"name":"ArrayTypeName","src":"31965:7:5"}],"id":5188,"name":"VariableDeclaration","src":"31965:22:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory[] memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (bytes memory[] memory)"},"children":[{"attributes":{"length":null,"type":"bytes[]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":5189,"name":"ElementaryTypeName","src":"31994:5:5"}],"id":5190,"name":"ArrayTypeName","src":"31994:7:5"}],"id":5191,"name":"NewExpression","src":"31990:11:5"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":5192,"name":"Literal","src":"32002:1:5"}],"id":5193,"name":"FunctionCall","src":"31990:14:5"}],"id":5194,"name":"VariableDeclarationStatement","src":"31965:39:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5188,"type":"bytes memory[] memory","value":"dynargs"},"id":5195,"name":"Identifier","src":"32014:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":5196,"name":"Literal","src":"32022:1:5"}],"id":5197,"name":"IndexAccess","src":"32014:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5176,"type":"bytes memory[4] memory","value":"args"},"id":5198,"name":"Identifier","src":"32027:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":5199,"name":"Literal","src":"32032:1:5"}],"id":5200,"name":"IndexAccess","src":"32027:7:5"}],"id":5201,"name":"Assignment","src":"32014:20:5"}],"id":5202,"name":"ExpressionStatement","src":"32014:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5188,"type":"bytes memory[] memory","value":"dynargs"},"id":5203,"name":"Identifier","src":"32044:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":5204,"name":"Literal","src":"32052:1:5"}],"id":5205,"name":"IndexAccess","src":"32044:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5176,"type":"bytes memory[4] memory","value":"args"},"id":5206,"name":"Identifier","src":"32057:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":5207,"name":"Literal","src":"32062:1:5"}],"id":5208,"name":"IndexAccess","src":"32057:7:5"}],"id":5209,"name":"Assignment","src":"32044:20:5"}],"id":5210,"name":"ExpressionStatement","src":"32044:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5188,"type":"bytes memory[] memory","value":"dynargs"},"id":5211,"name":"Identifier","src":"32074:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":5212,"name":"Literal","src":"32082:1:5"}],"id":5213,"name":"IndexAccess","src":"32074:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5176,"type":"bytes memory[4] memory","value":"args"},"id":5214,"name":"Identifier","src":"32087:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":5215,"name":"Literal","src":"32092:1:5"}],"id":5216,"name":"IndexAccess","src":"32087:7:5"}],"id":5217,"name":"Assignment","src":"32074:20:5"}],"id":5218,"name":"ExpressionStatement","src":"32074:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5188,"type":"bytes memory[] memory","value":"dynargs"},"id":5219,"name":"Identifier","src":"32104:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":5220,"name":"Literal","src":"32112:1:5"}],"id":5221,"name":"IndexAccess","src":"32104:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5176,"type":"bytes memory[4] memory","value":"args"},"id":5222,"name":"Identifier","src":"32117:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":5223,"name":"Literal","src":"32122:1:5"}],"id":5224,"name":"IndexAccess","src":"32117:7:5"}],"id":5225,"name":"Assignment","src":"32104:20:5"}],"id":5226,"name":"ExpressionStatement","src":"32104:20:5"},{"attributes":{"functionReturnParameters":5184},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_bytes_memory_$dyn_memory_ptr","typeString":"bytes memory[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[2566,2608,2654,2698,2741,2786,2835,2882,2929,2978,3031,3082,3119,3159,3202,3242,3287,3335,3386,3434,3487,3543,3602,3658,3719,3783,3850,3914,3983,4055,4130,4202,4249,4298,4351,4402,4439,4479,4522,4562,4607,4655,4706,4754,4807,4863,4922,4978,5039,5103,5170,5234,5303,5375,5450,5522],"referencedDeclaration":4402,"type":"function (string memory,bytes memory[] memory,uint256) returns (bytes32)","value":"oraclize_query"},"id":5227,"name":"Identifier","src":"32141:14:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5172,"type":"string memory","value":"datasource"},"id":5228,"name":"Identifier","src":"32156:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5188,"type":"bytes memory[] memory","value":"dynargs"},"id":5229,"name":"Identifier","src":"32168:7:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5178,"type":"uint256","value":"gaslimit"},"id":5230,"name":"Identifier","src":"32177:8:5"}],"id":5231,"name":"FunctionCall","src":"32141:45:5"}],"id":5232,"name":"Return","src":"32134:52:5"}],"id":5233,"name":"Block","src":"31955:238:5"}],"id":5234,"name":"FunctionDefinition","src":"31840:353:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"datasource","scope":5303,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":5235,"name":"ElementaryTypeName","src":"32222:6:5"}],"id":5236,"name":"VariableDeclaration","src":"32222:17:5"},{"attributes":{"constant":false,"name":"args","scope":5303,"stateVariable":false,"storageLocation":"default","type":"bytes[5]","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"bytes[5]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":5237,"name":"ElementaryTypeName","src":"32241:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"35","isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"subdenomination":null,"token":"number","type":null,"value":"5"},"id":5238,"name":"Literal","src":"32247:1:5"}],"id":5239,"name":"ArrayTypeName","src":"32241:8:5"}],"id":5240,"name":"VariableDeclaration","src":"32241:13:5"}],"id":5241,"name":"ParameterList","src":"32221:34:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":5303,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":5244,"name":"ElementaryTypeName","src":"32286:7:5"}],"id":5245,"name":"VariableDeclaration","src":"32286:10:5"}],"id":5246,"name":"ParameterList","src":"32285:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":5242,"name":"Identifier","src":"32256:11:5"}],"id":5243,"name":"ModifierInvocation","src":"32256:11:5"},{"children":[{"attributes":{"assignments":[5250]},"children":[{"attributes":{"constant":false,"name":"dynargs","scope":5303,"stateVariable":false,"storageLocation":"memory","type":"bytes[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"bytes[]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":5248,"name":"ElementaryTypeName","src":"32308:5:5"}],"id":5249,"name":"ArrayTypeName","src":"32308:7:5"}],"id":5250,"name":"VariableDeclaration","src":"32308:22:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory[] memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (bytes memory[] memory)"},"children":[{"attributes":{"length":null,"type":"bytes[]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":5251,"name":"ElementaryTypeName","src":"32337:5:5"}],"id":5252,"name":"ArrayTypeName","src":"32337:7:5"}],"id":5253,"name":"NewExpression","src":"32333:11:5"},{"attributes":{"argumentTypes":null,"hexvalue":"35","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 5","value":"5"},"id":5254,"name":"Literal","src":"32345:1:5"}],"id":5255,"name":"FunctionCall","src":"32333:14:5"}],"id":5256,"name":"VariableDeclarationStatement","src":"32308:39:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5250,"type":"bytes memory[] memory","value":"dynargs"},"id":5257,"name":"Identifier","src":"32357:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":5258,"name":"Literal","src":"32365:1:5"}],"id":5259,"name":"IndexAccess","src":"32357:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5240,"type":"bytes memory[5] memory","value":"args"},"id":5260,"name":"Identifier","src":"32370:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":5261,"name":"Literal","src":"32375:1:5"}],"id":5262,"name":"IndexAccess","src":"32370:7:5"}],"id":5263,"name":"Assignment","src":"32357:20:5"}],"id":5264,"name":"ExpressionStatement","src":"32357:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5250,"type":"bytes memory[] memory","value":"dynargs"},"id":5265,"name":"Identifier","src":"32387:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":5266,"name":"Literal","src":"32395:1:5"}],"id":5267,"name":"IndexAccess","src":"32387:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5240,"type":"bytes memory[5] memory","value":"args"},"id":5268,"name":"Identifier","src":"32400:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":5269,"name":"Literal","src":"32405:1:5"}],"id":5270,"name":"IndexAccess","src":"32400:7:5"}],"id":5271,"name":"Assignment","src":"32387:20:5"}],"id":5272,"name":"ExpressionStatement","src":"32387:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5250,"type":"bytes memory[] memory","value":"dynargs"},"id":5273,"name":"Identifier","src":"32417:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":5274,"name":"Literal","src":"32425:1:5"}],"id":5275,"name":"IndexAccess","src":"32417:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5240,"type":"bytes memory[5] memory","value":"args"},"id":5276,"name":"Identifier","src":"32430:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":5277,"name":"Literal","src":"32435:1:5"}],"id":5278,"name":"IndexAccess","src":"32430:7:5"}],"id":5279,"name":"Assignment","src":"32417:20:5"}],"id":5280,"name":"ExpressionStatement","src":"32417:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5250,"type":"bytes memory[] memory","value":"dynargs"},"id":5281,"name":"Identifier","src":"32447:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":5282,"name":"Literal","src":"32455:1:5"}],"id":5283,"name":"IndexAccess","src":"32447:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5240,"type":"bytes memory[5] memory","value":"args"},"id":5284,"name":"Identifier","src":"32460:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":5285,"name":"Literal","src":"32465:1:5"}],"id":5286,"name":"IndexAccess","src":"32460:7:5"}],"id":5287,"name":"Assignment","src":"32447:20:5"}],"id":5288,"name":"ExpressionStatement","src":"32447:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5250,"type":"bytes memory[] memory","value":"dynargs"},"id":5289,"name":"Identifier","src":"32477:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":5290,"name":"Literal","src":"32485:1:5"}],"id":5291,"name":"IndexAccess","src":"32477:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5240,"type":"bytes memory[5] memory","value":"args"},"id":5292,"name":"Identifier","src":"32490:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":5293,"name":"Literal","src":"32495:1:5"}],"id":5294,"name":"IndexAccess","src":"32490:7:5"}],"id":5295,"name":"Assignment","src":"32477:20:5"}],"id":5296,"name":"ExpressionStatement","src":"32477:20:5"},{"attributes":{"functionReturnParameters":5246},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_bytes_memory_$dyn_memory_ptr","typeString":"bytes memory[] memory"}],"overloadedDeclarations":[2566,2608,2654,2698,2741,2786,2835,2882,2929,2978,3031,3082,3119,3159,3202,3242,3287,3335,3386,3434,3487,3543,3602,3658,3719,3783,3850,3914,3983,4055,4130,4202,4249,4298,4351,4402,4439,4479,4522,4562,4607,4655,4706,4754,4807,4863,4922,4978,5039,5103,5170,5234,5303,5375,5450,5522],"referencedDeclaration":4249,"type":"function (string memory,bytes memory[] memory) returns (bytes32)","value":"oraclize_query"},"id":5297,"name":"Identifier","src":"32514:14:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5236,"type":"string memory","value":"datasource"},"id":5298,"name":"Identifier","src":"32529:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5250,"type":"bytes memory[] memory","value":"dynargs"},"id":5299,"name":"Identifier","src":"32541:7:5"}],"id":5300,"name":"FunctionCall","src":"32514:35:5"}],"id":5301,"name":"Return","src":"32507:42:5"}],"id":5302,"name":"Block","src":"32298:258:5"}],"id":5303,"name":"FunctionDefinition","src":"32198:358:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"timestamp","scope":5375,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5304,"name":"ElementaryTypeName","src":"32585:4:5"}],"id":5305,"name":"VariableDeclaration","src":"32585:14:5"},{"attributes":{"constant":false,"name":"datasource","scope":5375,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":5306,"name":"ElementaryTypeName","src":"32601:6:5"}],"id":5307,"name":"VariableDeclaration","src":"32601:17:5"},{"attributes":{"constant":false,"name":"args","scope":5375,"stateVariable":false,"storageLocation":"default","type":"bytes[5]","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"bytes[5]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":5308,"name":"ElementaryTypeName","src":"32620:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"35","isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"subdenomination":null,"token":"number","type":null,"value":"5"},"id":5309,"name":"Literal","src":"32626:1:5"}],"id":5310,"name":"ArrayTypeName","src":"32620:8:5"}],"id":5311,"name":"VariableDeclaration","src":"32620:13:5"}],"id":5312,"name":"ParameterList","src":"32584:50:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":5375,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":5315,"name":"ElementaryTypeName","src":"32665:7:5"}],"id":5316,"name":"VariableDeclaration","src":"32665:10:5"}],"id":5317,"name":"ParameterList","src":"32664:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":5313,"name":"Identifier","src":"32635:11:5"}],"id":5314,"name":"ModifierInvocation","src":"32635:11:5"},{"children":[{"attributes":{"assignments":[5321]},"children":[{"attributes":{"constant":false,"name":"dynargs","scope":5375,"stateVariable":false,"storageLocation":"memory","type":"bytes[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"bytes[]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":5319,"name":"ElementaryTypeName","src":"32687:5:5"}],"id":5320,"name":"ArrayTypeName","src":"32687:7:5"}],"id":5321,"name":"VariableDeclaration","src":"32687:22:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory[] memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (bytes memory[] memory)"},"children":[{"attributes":{"length":null,"type":"bytes[]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":5322,"name":"ElementaryTypeName","src":"32716:5:5"}],"id":5323,"name":"ArrayTypeName","src":"32716:7:5"}],"id":5324,"name":"NewExpression","src":"32712:11:5"},{"attributes":{"argumentTypes":null,"hexvalue":"35","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 5","value":"5"},"id":5325,"name":"Literal","src":"32724:1:5"}],"id":5326,"name":"FunctionCall","src":"32712:14:5"}],"id":5327,"name":"VariableDeclarationStatement","src":"32687:39:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5321,"type":"bytes memory[] memory","value":"dynargs"},"id":5328,"name":"Identifier","src":"32736:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":5329,"name":"Literal","src":"32744:1:5"}],"id":5330,"name":"IndexAccess","src":"32736:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5311,"type":"bytes memory[5] memory","value":"args"},"id":5331,"name":"Identifier","src":"32749:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":5332,"name":"Literal","src":"32754:1:5"}],"id":5333,"name":"IndexAccess","src":"32749:7:5"}],"id":5334,"name":"Assignment","src":"32736:20:5"}],"id":5335,"name":"ExpressionStatement","src":"32736:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5321,"type":"bytes memory[] memory","value":"dynargs"},"id":5336,"name":"Identifier","src":"32766:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":5337,"name":"Literal","src":"32774:1:5"}],"id":5338,"name":"IndexAccess","src":"32766:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5311,"type":"bytes memory[5] memory","value":"args"},"id":5339,"name":"Identifier","src":"32779:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":5340,"name":"Literal","src":"32784:1:5"}],"id":5341,"name":"IndexAccess","src":"32779:7:5"}],"id":5342,"name":"Assignment","src":"32766:20:5"}],"id":5343,"name":"ExpressionStatement","src":"32766:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5321,"type":"bytes memory[] memory","value":"dynargs"},"id":5344,"name":"Identifier","src":"32796:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":5345,"name":"Literal","src":"32804:1:5"}],"id":5346,"name":"IndexAccess","src":"32796:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5311,"type":"bytes memory[5] memory","value":"args"},"id":5347,"name":"Identifier","src":"32809:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":5348,"name":"Literal","src":"32814:1:5"}],"id":5349,"name":"IndexAccess","src":"32809:7:5"}],"id":5350,"name":"Assignment","src":"32796:20:5"}],"id":5351,"name":"ExpressionStatement","src":"32796:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5321,"type":"bytes memory[] memory","value":"dynargs"},"id":5352,"name":"Identifier","src":"32826:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":5353,"name":"Literal","src":"32834:1:5"}],"id":5354,"name":"IndexAccess","src":"32826:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5311,"type":"bytes memory[5] memory","value":"args"},"id":5355,"name":"Identifier","src":"32839:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":5356,"name":"Literal","src":"32844:1:5"}],"id":5357,"name":"IndexAccess","src":"32839:7:5"}],"id":5358,"name":"Assignment","src":"32826:20:5"}],"id":5359,"name":"ExpressionStatement","src":"32826:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5321,"type":"bytes memory[] memory","value":"dynargs"},"id":5360,"name":"Identifier","src":"32856:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":5361,"name":"Literal","src":"32864:1:5"}],"id":5362,"name":"IndexAccess","src":"32856:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5311,"type":"bytes memory[5] memory","value":"args"},"id":5363,"name":"Identifier","src":"32869:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":5364,"name":"Literal","src":"32874:1:5"}],"id":5365,"name":"IndexAccess","src":"32869:7:5"}],"id":5366,"name":"Assignment","src":"32856:20:5"}],"id":5367,"name":"ExpressionStatement","src":"32856:20:5"},{"attributes":{"functionReturnParameters":5317},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_bytes_memory_$dyn_memory_ptr","typeString":"bytes memory[] memory"}],"overloadedDeclarations":[2566,2608,2654,2698,2741,2786,2835,2882,2929,2978,3031,3082,3119,3159,3202,3242,3287,3335,3386,3434,3487,3543,3602,3658,3719,3783,3850,3914,3983,4055,4130,4202,4249,4298,4351,4402,4439,4479,4522,4562,4607,4655,4706,4754,4807,4863,4922,4978,5039,5103,5170,5234,5303,5375,5450,5522],"referencedDeclaration":4298,"type":"function (uint256,string memory,bytes memory[] memory) returns (bytes32)","value":"oraclize_query"},"id":5368,"name":"Identifier","src":"32893:14:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5305,"type":"uint256","value":"timestamp"},"id":5369,"name":"Identifier","src":"32908:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5307,"type":"string memory","value":"datasource"},"id":5370,"name":"Identifier","src":"32919:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5321,"type":"bytes memory[] memory","value":"dynargs"},"id":5371,"name":"Identifier","src":"32931:7:5"}],"id":5372,"name":"FunctionCall","src":"32893:46:5"}],"id":5373,"name":"Return","src":"32886:53:5"}],"id":5374,"name":"Block","src":"32677:269:5"}],"id":5375,"name":"FunctionDefinition","src":"32561:385:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"timestamp","scope":5450,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5376,"name":"ElementaryTypeName","src":"32975:4:5"}],"id":5377,"name":"VariableDeclaration","src":"32975:14:5"},{"attributes":{"constant":false,"name":"datasource","scope":5450,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":5378,"name":"ElementaryTypeName","src":"32991:6:5"}],"id":5379,"name":"VariableDeclaration","src":"32991:17:5"},{"attributes":{"constant":false,"name":"args","scope":5450,"stateVariable":false,"storageLocation":"default","type":"bytes[5]","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"bytes[5]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":5380,"name":"ElementaryTypeName","src":"33010:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"35","isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"subdenomination":null,"token":"number","type":null,"value":"5"},"id":5381,"name":"Literal","src":"33016:1:5"}],"id":5382,"name":"ArrayTypeName","src":"33010:8:5"}],"id":5383,"name":"VariableDeclaration","src":"33010:13:5"},{"attributes":{"constant":false,"name":"gaslimit","scope":5450,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5384,"name":"ElementaryTypeName","src":"33025:4:5"}],"id":5385,"name":"VariableDeclaration","src":"33025:13:5"}],"id":5386,"name":"ParameterList","src":"32974:65:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":5450,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":5389,"name":"ElementaryTypeName","src":"33070:7:5"}],"id":5390,"name":"VariableDeclaration","src":"33070:10:5"}],"id":5391,"name":"ParameterList","src":"33069:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":5387,"name":"Identifier","src":"33040:11:5"}],"id":5388,"name":"ModifierInvocation","src":"33040:11:5"},{"children":[{"attributes":{"assignments":[5395]},"children":[{"attributes":{"constant":false,"name":"dynargs","scope":5450,"stateVariable":false,"storageLocation":"memory","type":"bytes[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"bytes[]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":5393,"name":"ElementaryTypeName","src":"33092:5:5"}],"id":5394,"name":"ArrayTypeName","src":"33092:7:5"}],"id":5395,"name":"VariableDeclaration","src":"33092:22:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory[] memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (bytes memory[] memory)"},"children":[{"attributes":{"length":null,"type":"bytes[]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":5396,"name":"ElementaryTypeName","src":"33121:5:5"}],"id":5397,"name":"ArrayTypeName","src":"33121:7:5"}],"id":5398,"name":"NewExpression","src":"33117:11:5"},{"attributes":{"argumentTypes":null,"hexvalue":"35","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 5","value":"5"},"id":5399,"name":"Literal","src":"33129:1:5"}],"id":5400,"name":"FunctionCall","src":"33117:14:5"}],"id":5401,"name":"VariableDeclarationStatement","src":"33092:39:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5395,"type":"bytes memory[] memory","value":"dynargs"},"id":5402,"name":"Identifier","src":"33141:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":5403,"name":"Literal","src":"33149:1:5"}],"id":5404,"name":"IndexAccess","src":"33141:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5383,"type":"bytes memory[5] memory","value":"args"},"id":5405,"name":"Identifier","src":"33154:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":5406,"name":"Literal","src":"33159:1:5"}],"id":5407,"name":"IndexAccess","src":"33154:7:5"}],"id":5408,"name":"Assignment","src":"33141:20:5"}],"id":5409,"name":"ExpressionStatement","src":"33141:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5395,"type":"bytes memory[] memory","value":"dynargs"},"id":5410,"name":"Identifier","src":"33171:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":5411,"name":"Literal","src":"33179:1:5"}],"id":5412,"name":"IndexAccess","src":"33171:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5383,"type":"bytes memory[5] memory","value":"args"},"id":5413,"name":"Identifier","src":"33184:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":5414,"name":"Literal","src":"33189:1:5"}],"id":5415,"name":"IndexAccess","src":"33184:7:5"}],"id":5416,"name":"Assignment","src":"33171:20:5"}],"id":5417,"name":"ExpressionStatement","src":"33171:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5395,"type":"bytes memory[] memory","value":"dynargs"},"id":5418,"name":"Identifier","src":"33201:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":5419,"name":"Literal","src":"33209:1:5"}],"id":5420,"name":"IndexAccess","src":"33201:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5383,"type":"bytes memory[5] memory","value":"args"},"id":5421,"name":"Identifier","src":"33214:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":5422,"name":"Literal","src":"33219:1:5"}],"id":5423,"name":"IndexAccess","src":"33214:7:5"}],"id":5424,"name":"Assignment","src":"33201:20:5"}],"id":5425,"name":"ExpressionStatement","src":"33201:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5395,"type":"bytes memory[] memory","value":"dynargs"},"id":5426,"name":"Identifier","src":"33231:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":5427,"name":"Literal","src":"33239:1:5"}],"id":5428,"name":"IndexAccess","src":"33231:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5383,"type":"bytes memory[5] memory","value":"args"},"id":5429,"name":"Identifier","src":"33244:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":5430,"name":"Literal","src":"33249:1:5"}],"id":5431,"name":"IndexAccess","src":"33244:7:5"}],"id":5432,"name":"Assignment","src":"33231:20:5"}],"id":5433,"name":"ExpressionStatement","src":"33231:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5395,"type":"bytes memory[] memory","value":"dynargs"},"id":5434,"name":"Identifier","src":"33261:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":5435,"name":"Literal","src":"33269:1:5"}],"id":5436,"name":"IndexAccess","src":"33261:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5383,"type":"bytes memory[5] memory","value":"args"},"id":5437,"name":"Identifier","src":"33274:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":5438,"name":"Literal","src":"33279:1:5"}],"id":5439,"name":"IndexAccess","src":"33274:7:5"}],"id":5440,"name":"Assignment","src":"33261:20:5"}],"id":5441,"name":"ExpressionStatement","src":"33261:20:5"},{"attributes":{"functionReturnParameters":5391},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_bytes_memory_$dyn_memory_ptr","typeString":"bytes memory[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[2566,2608,2654,2698,2741,2786,2835,2882,2929,2978,3031,3082,3119,3159,3202,3242,3287,3335,3386,3434,3487,3543,3602,3658,3719,3783,3850,3914,3983,4055,4130,4202,4249,4298,4351,4402,4439,4479,4522,4562,4607,4655,4706,4754,4807,4863,4922,4978,5039,5103,5170,5234,5303,5375,5450,5522],"referencedDeclaration":4351,"type":"function (uint256,string memory,bytes memory[] memory,uint256) returns (bytes32)","value":"oraclize_query"},"id":5442,"name":"Identifier","src":"33298:14:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5377,"type":"uint256","value":"timestamp"},"id":5443,"name":"Identifier","src":"33313:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5379,"type":"string memory","value":"datasource"},"id":5444,"name":"Identifier","src":"33324:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5395,"type":"bytes memory[] memory","value":"dynargs"},"id":5445,"name":"Identifier","src":"33336:7:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5385,"type":"uint256","value":"gaslimit"},"id":5446,"name":"Identifier","src":"33345:8:5"}],"id":5447,"name":"FunctionCall","src":"33298:56:5"}],"id":5448,"name":"Return","src":"33291:63:5"}],"id":5449,"name":"Block","src":"33082:279:5"}],"id":5450,"name":"FunctionDefinition","src":"32951:410:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_query","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"datasource","scope":5522,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":5451,"name":"ElementaryTypeName","src":"33390:6:5"}],"id":5452,"name":"VariableDeclaration","src":"33390:17:5"},{"attributes":{"constant":false,"name":"args","scope":5522,"stateVariable":false,"storageLocation":"default","type":"bytes[5]","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"bytes[5]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":5453,"name":"ElementaryTypeName","src":"33409:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"35","isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"subdenomination":null,"token":"number","type":null,"value":"5"},"id":5454,"name":"Literal","src":"33415:1:5"}],"id":5455,"name":"ArrayTypeName","src":"33409:8:5"}],"id":5456,"name":"VariableDeclaration","src":"33409:13:5"},{"attributes":{"constant":false,"name":"gaslimit","scope":5522,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5457,"name":"ElementaryTypeName","src":"33424:4:5"}],"id":5458,"name":"VariableDeclaration","src":"33424:13:5"}],"id":5459,"name":"ParameterList","src":"33389:49:5"},{"children":[{"attributes":{"constant":false,"name":"id","scope":5522,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":5462,"name":"ElementaryTypeName","src":"33469:7:5"}],"id":5463,"name":"VariableDeclaration","src":"33469:10:5"}],"id":5464,"name":"ParameterList","src":"33468:12:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":5460,"name":"Identifier","src":"33439:11:5"}],"id":5461,"name":"ModifierInvocation","src":"33439:11:5"},{"children":[{"attributes":{"assignments":[5468]},"children":[{"attributes":{"constant":false,"name":"dynargs","scope":5522,"stateVariable":false,"storageLocation":"memory","type":"bytes[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"bytes[]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":5466,"name":"ElementaryTypeName","src":"33491:5:5"}],"id":5467,"name":"ArrayTypeName","src":"33491:7:5"}],"id":5468,"name":"VariableDeclaration","src":"33491:22:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory[] memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (bytes memory[] memory)"},"children":[{"attributes":{"length":null,"type":"bytes[]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":5469,"name":"ElementaryTypeName","src":"33520:5:5"}],"id":5470,"name":"ArrayTypeName","src":"33520:7:5"}],"id":5471,"name":"NewExpression","src":"33516:11:5"},{"attributes":{"argumentTypes":null,"hexvalue":"35","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 5","value":"5"},"id":5472,"name":"Literal","src":"33528:1:5"}],"id":5473,"name":"FunctionCall","src":"33516:14:5"}],"id":5474,"name":"VariableDeclarationStatement","src":"33491:39:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5468,"type":"bytes memory[] memory","value":"dynargs"},"id":5475,"name":"Identifier","src":"33540:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":5476,"name":"Literal","src":"33548:1:5"}],"id":5477,"name":"IndexAccess","src":"33540:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5456,"type":"bytes memory[5] memory","value":"args"},"id":5478,"name":"Identifier","src":"33553:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":5479,"name":"Literal","src":"33558:1:5"}],"id":5480,"name":"IndexAccess","src":"33553:7:5"}],"id":5481,"name":"Assignment","src":"33540:20:5"}],"id":5482,"name":"ExpressionStatement","src":"33540:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5468,"type":"bytes memory[] memory","value":"dynargs"},"id":5483,"name":"Identifier","src":"33570:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":5484,"name":"Literal","src":"33578:1:5"}],"id":5485,"name":"IndexAccess","src":"33570:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5456,"type":"bytes memory[5] memory","value":"args"},"id":5486,"name":"Identifier","src":"33583:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":5487,"name":"Literal","src":"33588:1:5"}],"id":5488,"name":"IndexAccess","src":"33583:7:5"}],"id":5489,"name":"Assignment","src":"33570:20:5"}],"id":5490,"name":"ExpressionStatement","src":"33570:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5468,"type":"bytes memory[] memory","value":"dynargs"},"id":5491,"name":"Identifier","src":"33600:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":5492,"name":"Literal","src":"33608:1:5"}],"id":5493,"name":"IndexAccess","src":"33600:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5456,"type":"bytes memory[5] memory","value":"args"},"id":5494,"name":"Identifier","src":"33613:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":5495,"name":"Literal","src":"33618:1:5"}],"id":5496,"name":"IndexAccess","src":"33613:7:5"}],"id":5497,"name":"Assignment","src":"33600:20:5"}],"id":5498,"name":"ExpressionStatement","src":"33600:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5468,"type":"bytes memory[] memory","value":"dynargs"},"id":5499,"name":"Identifier","src":"33630:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":5500,"name":"Literal","src":"33638:1:5"}],"id":5501,"name":"IndexAccess","src":"33630:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5456,"type":"bytes memory[5] memory","value":"args"},"id":5502,"name":"Identifier","src":"33643:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":5503,"name":"Literal","src":"33648:1:5"}],"id":5504,"name":"IndexAccess","src":"33643:7:5"}],"id":5505,"name":"Assignment","src":"33630:20:5"}],"id":5506,"name":"ExpressionStatement","src":"33630:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5468,"type":"bytes memory[] memory","value":"dynargs"},"id":5507,"name":"Identifier","src":"33660:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":5508,"name":"Literal","src":"33668:1:5"}],"id":5509,"name":"IndexAccess","src":"33660:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5456,"type":"bytes memory[5] memory","value":"args"},"id":5510,"name":"Identifier","src":"33673:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":5511,"name":"Literal","src":"33678:1:5"}],"id":5512,"name":"IndexAccess","src":"33673:7:5"}],"id":5513,"name":"Assignment","src":"33660:20:5"}],"id":5514,"name":"ExpressionStatement","src":"33660:20:5"},{"attributes":{"functionReturnParameters":5464},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_bytes_memory_$dyn_memory_ptr","typeString":"bytes memory[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[2566,2608,2654,2698,2741,2786,2835,2882,2929,2978,3031,3082,3119,3159,3202,3242,3287,3335,3386,3434,3487,3543,3602,3658,3719,3783,3850,3914,3983,4055,4130,4202,4249,4298,4351,4402,4439,4479,4522,4562,4607,4655,4706,4754,4807,4863,4922,4978,5039,5103,5170,5234,5303,5375,5450,5522],"referencedDeclaration":4402,"type":"function (string memory,bytes memory[] memory,uint256) returns (bytes32)","value":"oraclize_query"},"id":5515,"name":"Identifier","src":"33697:14:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5452,"type":"string memory","value":"datasource"},"id":5516,"name":"Identifier","src":"33712:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5468,"type":"bytes memory[] memory","value":"dynargs"},"id":5517,"name":"Identifier","src":"33724:7:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5458,"type":"uint256","value":"gaslimit"},"id":5518,"name":"Identifier","src":"33733:8:5"}],"id":5519,"name":"FunctionCall","src":"33697:45:5"}],"id":5520,"name":"Return","src":"33690:52:5"}],"id":5521,"name":"Block","src":"33481:268:5"}],"id":5522,"name":"FunctionDefinition","src":"33366:383:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_cbAddress","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":5523,"name":"ParameterList","src":"33782:2:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":5534,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":5526,"name":"ElementaryTypeName","src":"33815:7:5"}],"id":5527,"name":"VariableDeclaration","src":"33815:7:5"}],"id":5528,"name":"ParameterList","src":"33814:9:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":5524,"name":"Identifier","src":"33785:11:5"}],"id":5525,"name":"ModifierInvocation","src":"33785:11:5"},{"children":[{"attributes":{"functionReturnParameters":5528},"children":[{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"cbAddress","referencedDeclaration":1551,"type":"function () view external returns (address)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2257,"type":"contract OraclizeI","value":"oraclize"},"id":5529,"name":"Identifier","src":"33840:8:5"}],"id":5530,"name":"MemberAccess","src":"33840:18:5"}],"id":5531,"name":"FunctionCall","src":"33840:20:5"}],"id":5532,"name":"Return","src":"33833:27:5"}],"id":5533,"name":"Block","src":"33823:44:5"}],"id":5534,"name":"FunctionDefinition","src":"33755:112:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_setProof","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"proofP","scope":5547,"stateVariable":false,"storageLocation":"default","type":"bytes1","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"byte","type":"bytes1"},"id":5535,"name":"ElementaryTypeName","src":"33899:4:5"}],"id":5536,"name":"VariableDeclaration","src":"33899:11:5"}],"id":5537,"name":"ParameterList","src":"33898:13:5"},{"attributes":{"parameters":[null]},"children":[],"id":5540,"name":"ParameterList","src":"33933:0:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":5538,"name":"Identifier","src":"33912:11:5"}],"id":5539,"name":"ModifierInvocation","src":"33912:11:5"},{"children":[{"attributes":{"functionReturnParameters":5540},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"setProofType","referencedDeclaration":1648,"type":"function (bytes1) external"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2257,"type":"contract OraclizeI","value":"oraclize"},"id":5541,"name":"Identifier","src":"33950:8:5"}],"id":5542,"name":"MemberAccess","src":"33950:21:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5536,"type":"bytes1","value":"proofP"},"id":5543,"name":"Identifier","src":"33972:6:5"}],"id":5544,"name":"FunctionCall","src":"33950:29:5"}],"id":5545,"name":"Return","src":"33943:36:5"}],"id":5546,"name":"Block","src":"33933:53:5"}],"id":5547,"name":"FunctionDefinition","src":"33872:114:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_setCustomGasPrice","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"gasPrice","scope":5560,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5548,"name":"ElementaryTypeName","src":"34027:4:5"}],"id":5549,"name":"VariableDeclaration","src":"34027:13:5"}],"id":5550,"name":"ParameterList","src":"34026:15:5"},{"attributes":{"parameters":[null]},"children":[],"id":5553,"name":"ParameterList","src":"34063:0:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":5551,"name":"Identifier","src":"34042:11:5"}],"id":5552,"name":"ModifierInvocation","src":"34042:11:5"},{"children":[{"attributes":{"functionReturnParameters":5553},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"setCustomGasPrice","referencedDeclaration":1653,"type":"function (uint256) external"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2257,"type":"contract OraclizeI","value":"oraclize"},"id":5554,"name":"Identifier","src":"34080:8:5"}],"id":5555,"name":"MemberAccess","src":"34080:26:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5549,"type":"uint256","value":"gasPrice"},"id":5556,"name":"Identifier","src":"34107:8:5"}],"id":5557,"name":"FunctionCall","src":"34080:36:5"}],"id":5558,"name":"Return","src":"34073:43:5"}],"id":5559,"name":"Block","src":"34063:60:5"}],"id":5560,"name":"FunctionDefinition","src":"33991:132:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"name":"oraclize_randomDS_getSessionPubKeyHash","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":5561,"name":"ParameterList","src":"34176:2:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":5572,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":5564,"name":"ElementaryTypeName","src":"34209:7:5"}],"id":5565,"name":"VariableDeclaration","src":"34209:7:5"}],"id":5566,"name":"ParameterList","src":"34208:9:5"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2297,"type":"modifier ()","value":"oraclizeAPI"},"id":5562,"name":"Identifier","src":"34179:11:5"}],"id":5563,"name":"ModifierInvocation","src":"34179:11:5"},{"children":[{"attributes":{"functionReturnParameters":5566},"children":[{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"randomDS_getSessionPubKeyHash","referencedDeclaration":1658,"type":"function () view external returns (bytes32)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2257,"type":"contract OraclizeI","value":"oraclize"},"id":5567,"name":"Identifier","src":"34234:8:5"}],"id":5568,"name":"MemberAccess","src":"34234:38:5"}],"id":5569,"name":"FunctionCall","src":"34234:40:5"}],"id":5570,"name":"Return","src":"34227:47:5"}],"id":5571,"name":"Block","src":"34217:64:5"}],"id":5572,"name":"FunctionDefinition","src":"34129:152:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"getCodeSize","payable":false,"scope":7573,"stateMutability":"view","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_addr","scope":5581,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":5573,"name":"ElementaryTypeName","src":"34308:7:5"}],"id":5574,"name":"VariableDeclaration","src":"34308:13:5"}],"id":5575,"name":"ParameterList","src":"34307:15:5"},{"children":[{"attributes":{"constant":false,"name":"_size","scope":5581,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5576,"name":"ElementaryTypeName","src":"34345:4:5"}],"id":5577,"name":"VariableDeclaration","src":"34345:10:5"}],"id":5578,"name":"ParameterList","src":"34344:12:5"},{"children":[{"attributes":{"externalReferences":[{"_addr":{"declaration":5574,"isOffset":false,"isSlot":false,"src":"34411:5:5","valueSize":1}},{"_size":{"declaration":5577,"isOffset":false,"isSlot":false,"src":"34390:5:5","valueSize":1}}],"operations":"{\n _size := extcodesize(_addr)\n}"},"children":[],"id":5579,"name":"InlineAssembly","src":"34367:66:5"}],"id":5580,"name":"Block","src":"34357:76:5"}],"id":5581,"name":"FunctionDefinition","src":"34287:146:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"parseAddr","payable":false,"scope":7573,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_a","scope":5741,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":5582,"name":"ElementaryTypeName","src":"34458:6:5"}],"id":5583,"name":"VariableDeclaration","src":"34458:9:5"}],"id":5584,"name":"ParameterList","src":"34457:11:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":5741,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":5585,"name":"ElementaryTypeName","src":"34492:7:5"}],"id":5586,"name":"VariableDeclaration","src":"34492:7:5"}],"id":5587,"name":"ParameterList","src":"34491:9:5"},{"children":[{"attributes":{"assignments":[5589]},"children":[{"attributes":{"constant":false,"name":"tmp","scope":5741,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":5588,"name":"ElementaryTypeName","src":"34510:5:5"}],"id":5589,"name":"VariableDeclaration","src":"34510:16:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes storage pointer)","value":"bytes"},"id":5590,"name":"ElementaryTypeNameExpression","src":"34529:5:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5583,"type":"string memory","value":"_a"},"id":5591,"name":"Identifier","src":"34535:2:5"}],"id":5592,"name":"FunctionCall","src":"34529:9:5"}],"id":5593,"name":"VariableDeclarationStatement","src":"34510:28:5"},{"attributes":{"assignments":[5595]},"children":[{"attributes":{"constant":false,"name":"iaddr","scope":5741,"stateVariable":false,"storageLocation":"default","type":"uint160","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint160","type":"uint160"},"id":5594,"name":"ElementaryTypeName","src":"34548:7:5"}],"id":5595,"name":"VariableDeclaration","src":"34548:13:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":5596,"name":"Literal","src":"34564:1:5"}],"id":5597,"name":"VariableDeclarationStatement","src":"34548:17:5"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"b1","scope":5741,"stateVariable":false,"storageLocation":"default","type":"uint160","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint160","type":"uint160"},"id":5598,"name":"ElementaryTypeName","src":"34575:7:5"}],"id":5599,"name":"VariableDeclaration","src":"34575:10:5"}],"id":5600,"name":"VariableDeclarationStatement","src":"34575:10:5"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"b2","scope":5741,"stateVariable":false,"storageLocation":"default","type":"uint160","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint160","type":"uint160"},"id":5601,"name":"ElementaryTypeName","src":"34595:7:5"}],"id":5602,"name":"VariableDeclaration","src":"34595:10:5"}],"id":5603,"name":"VariableDeclarationStatement","src":"34595:10:5"},{"children":[{"attributes":{"assignments":[5605]},"children":[{"attributes":{"constant":false,"name":"i","scope":5741,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5604,"name":"ElementaryTypeName","src":"34620:4:5"}],"id":5605,"name":"VariableDeclaration","src":"34620:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":5606,"name":"Literal","src":"34627:1:5"}],"id":5607,"name":"VariableDeclarationStatement","src":"34620:8:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5605,"type":"uint256","value":"i"},"id":5608,"name":"Identifier","src":"34630:1:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_42_by_1","typeString":"int_const 42"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"+","type":"int_const 42"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":5609,"name":"Literal","src":"34632:1:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_40_by_1","typeString":"int_const 40"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"*","type":"int_const 40"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":5610,"name":"Literal","src":"34634:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3230","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 20","value":"20"},"id":5611,"name":"Literal","src":"34636:2:5"}],"id":5612,"name":"BinaryOperation","src":"34634:4:5"}],"id":5613,"name":"BinaryOperation","src":"34632:6:5"}],"id":5614,"name":"BinaryOperation","src":"34630:8:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5605,"type":"uint256","value":"i"},"id":5615,"name":"Identifier","src":"34640:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":5616,"name":"Literal","src":"34643:1:5"}],"id":5617,"name":"Assignment","src":"34640:4:5"}],"id":5618,"name":"ExpressionStatement","src":"34640:4:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*=","type":"uint160"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5595,"type":"uint160","value":"iaddr"},"id":5619,"name":"Identifier","src":"34659:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"323536","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 256","value":"256"},"id":5620,"name":"Literal","src":"34668:3:5"}],"id":5621,"name":"Assignment","src":"34659:12:5"}],"id":5622,"name":"ExpressionStatement","src":"34659:12:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint160"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5599,"type":"uint160","value":"b1"},"id":5623,"name":"Identifier","src":"34685:2:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint160","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint160)","value":"uint160"},"id":5624,"name":"ElementaryTypeNameExpression","src":"34690:7:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5589,"type":"bytes memory","value":"tmp"},"id":5625,"name":"Identifier","src":"34698:3:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5605,"type":"uint256","value":"i"},"id":5626,"name":"Identifier","src":"34702:1:5"}],"id":5627,"name":"IndexAccess","src":"34698:6:5"}],"id":5628,"name":"FunctionCall","src":"34690:15:5"}],"id":5629,"name":"Assignment","src":"34685:20:5"}],"id":5630,"name":"ExpressionStatement","src":"34685:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint160"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5602,"type":"uint160","value":"b2"},"id":5631,"name":"Identifier","src":"34719:2:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint160","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint160)","value":"uint160"},"id":5632,"name":"ElementaryTypeNameExpression","src":"34724:7:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5589,"type":"bytes memory","value":"tmp"},"id":5633,"name":"Identifier","src":"34732:3:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5605,"type":"uint256","value":"i"},"id":5634,"name":"Identifier","src":"34736:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":5635,"name":"Literal","src":"34738:1:5"}],"id":5636,"name":"BinaryOperation","src":"34736:3:5"}],"id":5637,"name":"IndexAccess","src":"34732:8:5"}],"id":5638,"name":"FunctionCall","src":"34724:17:5"}],"id":5639,"name":"Assignment","src":"34719:22:5"}],"id":5640,"name":"ExpressionStatement","src":"34719:22:5"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&&","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint160","typeString":"uint160"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5599,"type":"uint160","value":"b1"},"id":5641,"name":"Identifier","src":"34760:2:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3937","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 97","value":"97"},"id":5642,"name":"Literal","src":"34766:2:5"}],"id":5643,"name":"BinaryOperation","src":"34760:8:5"}],"id":5644,"name":"TupleExpression","src":"34759:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint160","typeString":"uint160"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5599,"type":"uint160","value":"b1"},"id":5645,"name":"Identifier","src":"34772:2:5"},{"attributes":{"argumentTypes":null,"hexvalue":"313032","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 102","value":"102"},"id":5646,"name":"Literal","src":"34778:3:5"}],"id":5647,"name":"BinaryOperation","src":"34772:9:5"}],"id":5648,"name":"TupleExpression","src":"34771:11:5"}],"id":5649,"name":"BinaryOperation","src":"34759:23:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-=","type":"uint160"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5599,"type":"uint160","value":"b1"},"id":5650,"name":"Identifier","src":"34784:2:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3837","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 87","value":"87"},"id":5651,"name":"Literal","src":"34790:2:5"}],"id":5652,"name":"Assignment","src":"34784:8:5"}],"id":5653,"name":"ExpressionStatement","src":"34784:8:5"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&&","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint160","typeString":"uint160"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5599,"type":"uint160","value":"b1"},"id":5654,"name":"Identifier","src":"34816:2:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3635","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 65","value":"65"},"id":5655,"name":"Literal","src":"34822:2:5"}],"id":5656,"name":"BinaryOperation","src":"34816:8:5"}],"id":5657,"name":"TupleExpression","src":"34815:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint160","typeString":"uint160"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5599,"type":"uint160","value":"b1"},"id":5658,"name":"Identifier","src":"34828:2:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3730","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 70","value":"70"},"id":5659,"name":"Literal","src":"34834:2:5"}],"id":5660,"name":"BinaryOperation","src":"34828:8:5"}],"id":5661,"name":"TupleExpression","src":"34827:10:5"}],"id":5662,"name":"BinaryOperation","src":"34815:22:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-=","type":"uint160"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5599,"type":"uint160","value":"b1"},"id":5663,"name":"Identifier","src":"34839:2:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3535","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 55","value":"55"},"id":5664,"name":"Literal","src":"34845:2:5"}],"id":5665,"name":"Assignment","src":"34839:8:5"}],"id":5666,"name":"ExpressionStatement","src":"34839:8:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&&","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint160","typeString":"uint160"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5599,"type":"uint160","value":"b1"},"id":5667,"name":"Identifier","src":"34871:2:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3438","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 48","value":"48"},"id":5668,"name":"Literal","src":"34877:2:5"}],"id":5669,"name":"BinaryOperation","src":"34871:8:5"}],"id":5670,"name":"TupleExpression","src":"34870:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint160","typeString":"uint160"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5599,"type":"uint160","value":"b1"},"id":5671,"name":"Identifier","src":"34883:2:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3537","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 57","value":"57"},"id":5672,"name":"Literal","src":"34889:2:5"}],"id":5673,"name":"BinaryOperation","src":"34883:8:5"}],"id":5674,"name":"TupleExpression","src":"34882:10:5"}],"id":5675,"name":"BinaryOperation","src":"34870:22:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-=","type":"uint160"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5599,"type":"uint160","value":"b1"},"id":5676,"name":"Identifier","src":"34894:2:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3438","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 48","value":"48"},"id":5677,"name":"Literal","src":"34900:2:5"}],"id":5678,"name":"Assignment","src":"34894:8:5"}],"id":5679,"name":"ExpressionStatement","src":"34894:8:5"}],"id":5680,"name":"IfStatement","src":"34866:36:5"}],"id":5681,"name":"IfStatement","src":"34811:91:5"}],"id":5682,"name":"IfStatement","src":"34755:147:5"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&&","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint160","typeString":"uint160"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5602,"type":"uint160","value":"b2"},"id":5683,"name":"Identifier","src":"34921:2:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3937","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 97","value":"97"},"id":5684,"name":"Literal","src":"34927:2:5"}],"id":5685,"name":"BinaryOperation","src":"34921:8:5"}],"id":5686,"name":"TupleExpression","src":"34920:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint160","typeString":"uint160"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5602,"type":"uint160","value":"b2"},"id":5687,"name":"Identifier","src":"34933:2:5"},{"attributes":{"argumentTypes":null,"hexvalue":"313032","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 102","value":"102"},"id":5688,"name":"Literal","src":"34939:3:5"}],"id":5689,"name":"BinaryOperation","src":"34933:9:5"}],"id":5690,"name":"TupleExpression","src":"34932:11:5"}],"id":5691,"name":"BinaryOperation","src":"34920:23:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-=","type":"uint160"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5602,"type":"uint160","value":"b2"},"id":5692,"name":"Identifier","src":"34945:2:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3837","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 87","value":"87"},"id":5693,"name":"Literal","src":"34951:2:5"}],"id":5694,"name":"Assignment","src":"34945:8:5"}],"id":5695,"name":"ExpressionStatement","src":"34945:8:5"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&&","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint160","typeString":"uint160"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5602,"type":"uint160","value":"b2"},"id":5696,"name":"Identifier","src":"34977:2:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3635","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 65","value":"65"},"id":5697,"name":"Literal","src":"34983:2:5"}],"id":5698,"name":"BinaryOperation","src":"34977:8:5"}],"id":5699,"name":"TupleExpression","src":"34976:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint160","typeString":"uint160"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5602,"type":"uint160","value":"b2"},"id":5700,"name":"Identifier","src":"34989:2:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3730","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 70","value":"70"},"id":5701,"name":"Literal","src":"34995:2:5"}],"id":5702,"name":"BinaryOperation","src":"34989:8:5"}],"id":5703,"name":"TupleExpression","src":"34988:10:5"}],"id":5704,"name":"BinaryOperation","src":"34976:22:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-=","type":"uint160"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5602,"type":"uint160","value":"b2"},"id":5705,"name":"Identifier","src":"35000:2:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3535","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 55","value":"55"},"id":5706,"name":"Literal","src":"35006:2:5"}],"id":5707,"name":"Assignment","src":"35000:8:5"}],"id":5708,"name":"ExpressionStatement","src":"35000:8:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&&","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint160","typeString":"uint160"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5602,"type":"uint160","value":"b2"},"id":5709,"name":"Identifier","src":"35032:2:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3438","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 48","value":"48"},"id":5710,"name":"Literal","src":"35038:2:5"}],"id":5711,"name":"BinaryOperation","src":"35032:8:5"}],"id":5712,"name":"TupleExpression","src":"35031:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint160","typeString":"uint160"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5602,"type":"uint160","value":"b2"},"id":5713,"name":"Identifier","src":"35044:2:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3537","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 57","value":"57"},"id":5714,"name":"Literal","src":"35050:2:5"}],"id":5715,"name":"BinaryOperation","src":"35044:8:5"}],"id":5716,"name":"TupleExpression","src":"35043:10:5"}],"id":5717,"name":"BinaryOperation","src":"35031:22:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-=","type":"uint160"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5602,"type":"uint160","value":"b2"},"id":5718,"name":"Identifier","src":"35055:2:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3438","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 48","value":"48"},"id":5719,"name":"Literal","src":"35061:2:5"}],"id":5720,"name":"Assignment","src":"35055:8:5"}],"id":5721,"name":"ExpressionStatement","src":"35055:8:5"}],"id":5722,"name":"IfStatement","src":"35027:36:5"}],"id":5723,"name":"IfStatement","src":"34972:91:5"}],"id":5724,"name":"IfStatement","src":"34916:147:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint160"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5595,"type":"uint160","value":"iaddr"},"id":5725,"name":"Identifier","src":"35077:5:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint160"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint160","typeString":"uint160"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint160"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint160","typeString":"uint160"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint160"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5599,"type":"uint160","value":"b1"},"id":5726,"name":"Identifier","src":"35087:2:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3136","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 16","value":"16"},"id":5727,"name":"Literal","src":"35090:2:5"}],"id":5728,"name":"BinaryOperation","src":"35087:5:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5602,"type":"uint160","value":"b2"},"id":5729,"name":"Identifier","src":"35093:2:5"}],"id":5730,"name":"BinaryOperation","src":"35087:8:5"}],"id":5731,"name":"TupleExpression","src":"35086:10:5"}],"id":5732,"name":"Assignment","src":"35077:19:5"}],"id":5733,"name":"ExpressionStatement","src":"35077:19:5"}],"id":5734,"name":"Block","src":"34645:462:5"}],"id":5735,"name":"ForStatement","src":"34615:492:5"},{"attributes":{"functionReturnParameters":5587},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":5736,"name":"ElementaryTypeNameExpression","src":"35123:7:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5595,"type":"uint160","value":"iaddr"},"id":5737,"name":"Identifier","src":"35131:5:5"}],"id":5738,"name":"FunctionCall","src":"35123:14:5"}],"id":5739,"name":"Return","src":"35116:21:5"}],"id":5740,"name":"Block","src":"34500:644:5"}],"id":5741,"name":"FunctionDefinition","src":"34439:705:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"strCompare","payable":false,"scope":7573,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_a","scope":5829,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":5742,"name":"ElementaryTypeName","src":"35170:6:5"}],"id":5743,"name":"VariableDeclaration","src":"35170:9:5"},{"attributes":{"constant":false,"name":"_b","scope":5829,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":5744,"name":"ElementaryTypeName","src":"35181:6:5"}],"id":5745,"name":"VariableDeclaration","src":"35181:9:5"}],"id":5746,"name":"ParameterList","src":"35169:22:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":5829,"stateVariable":false,"storageLocation":"default","type":"int256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"int","type":"int256"},"id":5747,"name":"ElementaryTypeName","src":"35215:3:5"}],"id":5748,"name":"VariableDeclaration","src":"35215:3:5"}],"id":5749,"name":"ParameterList","src":"35214:5:5"},{"children":[{"attributes":{"assignments":[5751]},"children":[{"attributes":{"constant":false,"name":"a","scope":5829,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":5750,"name":"ElementaryTypeName","src":"35230:5:5"}],"id":5751,"name":"VariableDeclaration","src":"35230:14:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes storage pointer)","value":"bytes"},"id":5752,"name":"ElementaryTypeNameExpression","src":"35247:5:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5743,"type":"string memory","value":"_a"},"id":5753,"name":"Identifier","src":"35253:2:5"}],"id":5754,"name":"FunctionCall","src":"35247:9:5"}],"id":5755,"name":"VariableDeclarationStatement","src":"35230:26:5"},{"attributes":{"assignments":[5757]},"children":[{"attributes":{"constant":false,"name":"b","scope":5829,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":5756,"name":"ElementaryTypeName","src":"35266:5:5"}],"id":5757,"name":"VariableDeclaration","src":"35266:14:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes storage pointer)","value":"bytes"},"id":5758,"name":"ElementaryTypeNameExpression","src":"35283:5:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5745,"type":"string memory","value":"_b"},"id":5759,"name":"Identifier","src":"35289:2:5"}],"id":5760,"name":"FunctionCall","src":"35283:9:5"}],"id":5761,"name":"VariableDeclarationStatement","src":"35266:26:5"},{"attributes":{"assignments":[5763]},"children":[{"attributes":{"constant":false,"name":"minLength","scope":5829,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5762,"name":"ElementaryTypeName","src":"35302:4:5"}],"id":5763,"name":"VariableDeclaration","src":"35302:14:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5751,"type":"bytes memory","value":"a"},"id":5764,"name":"Identifier","src":"35319:1:5"}],"id":5765,"name":"MemberAccess","src":"35319:8:5"}],"id":5766,"name":"VariableDeclarationStatement","src":"35302:25:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5757,"type":"bytes memory","value":"b"},"id":5767,"name":"Identifier","src":"35341:1:5"}],"id":5768,"name":"MemberAccess","src":"35341:8:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5763,"type":"uint256","value":"minLength"},"id":5769,"name":"Identifier","src":"35352:9:5"}],"id":5770,"name":"BinaryOperation","src":"35341:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5763,"type":"uint256","value":"minLength"},"id":5771,"name":"Identifier","src":"35363:9:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5757,"type":"bytes memory","value":"b"},"id":5772,"name":"Identifier","src":"35375:1:5"}],"id":5773,"name":"MemberAccess","src":"35375:8:5"}],"id":5774,"name":"Assignment","src":"35363:20:5"}],"id":5775,"name":"ExpressionStatement","src":"35363:20:5"}],"id":5776,"name":"IfStatement","src":"35337:46:5"},{"children":[{"attributes":{"assignments":[5778]},"children":[{"attributes":{"constant":false,"name":"i","scope":5829,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5777,"name":"ElementaryTypeName","src":"35398:4:5"}],"id":5778,"name":"VariableDeclaration","src":"35398:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":5779,"name":"Literal","src":"35407:1:5"}],"id":5780,"name":"VariableDeclarationStatement","src":"35398:10:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5778,"type":"uint256","value":"i"},"id":5781,"name":"Identifier","src":"35410:1:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5763,"type":"uint256","value":"minLength"},"id":5782,"name":"Identifier","src":"35414:9:5"}],"id":5783,"name":"BinaryOperation","src":"35410:13:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5778,"type":"uint256","value":"i"},"id":5784,"name":"Identifier","src":"35425:1:5"}],"id":5785,"name":"UnaryOperation","src":"35425:4:5"}],"id":5786,"name":"ExpressionStatement","src":"35425:4:5"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5751,"type":"bytes memory","value":"a"},"id":5787,"name":"Identifier","src":"35447:1:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5778,"type":"uint256","value":"i"},"id":5788,"name":"Identifier","src":"35449:1:5"}],"id":5789,"name":"IndexAccess","src":"35447:4:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5757,"type":"bytes memory","value":"b"},"id":5790,"name":"Identifier","src":"35454:1:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5778,"type":"uint256","value":"i"},"id":5791,"name":"Identifier","src":"35456:1:5"}],"id":5792,"name":"IndexAccess","src":"35454:4:5"}],"id":5793,"name":"BinaryOperation","src":"35447:11:5"},{"attributes":{"functionReturnParameters":5749},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"-","prefix":true,"type":"int_const -1"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":5794,"name":"Literal","src":"35484:1:5"}],"id":5795,"name":"UnaryOperation","src":"35483:2:5"}],"id":5796,"name":"Return","src":"35476:9:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5751,"type":"bytes memory","value":"a"},"id":5797,"name":"Identifier","src":"35508:1:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5778,"type":"uint256","value":"i"},"id":5798,"name":"Identifier","src":"35510:1:5"}],"id":5799,"name":"IndexAccess","src":"35508:4:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5757,"type":"bytes memory","value":"b"},"id":5800,"name":"Identifier","src":"35515:1:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5778,"type":"uint256","value":"i"},"id":5801,"name":"Identifier","src":"35517:1:5"}],"id":5802,"name":"IndexAccess","src":"35515:4:5"}],"id":5803,"name":"BinaryOperation","src":"35508:11:5"},{"attributes":{"functionReturnParameters":5749},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":5804,"name":"Literal","src":"35544:1:5"}],"id":5805,"name":"Return","src":"35537:8:5"}],"id":5806,"name":"IfStatement","src":"35504:41:5"}],"id":5807,"name":"IfStatement","src":"35443:102:5"}],"id":5808,"name":"ForStatement","src":"35393:152:5"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5751,"type":"bytes memory","value":"a"},"id":5809,"name":"Identifier","src":"35559:1:5"}],"id":5810,"name":"MemberAccess","src":"35559:8:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5757,"type":"bytes memory","value":"b"},"id":5811,"name":"Identifier","src":"35570:1:5"}],"id":5812,"name":"MemberAccess","src":"35570:8:5"}],"id":5813,"name":"BinaryOperation","src":"35559:19:5"},{"attributes":{"functionReturnParameters":5749},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"-","prefix":true,"type":"int_const -1"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":5814,"name":"Literal","src":"35600:1:5"}],"id":5815,"name":"UnaryOperation","src":"35599:2:5"}],"id":5816,"name":"Return","src":"35592:9:5"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5751,"type":"bytes memory","value":"a"},"id":5817,"name":"Identifier","src":"35620:1:5"}],"id":5818,"name":"MemberAccess","src":"35620:8:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5757,"type":"bytes memory","value":"b"},"id":5819,"name":"Identifier","src":"35631:1:5"}],"id":5820,"name":"MemberAccess","src":"35631:8:5"}],"id":5821,"name":"BinaryOperation","src":"35620:19:5"},{"attributes":{"functionReturnParameters":5749},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":5822,"name":"Literal","src":"35660:1:5"}],"id":5823,"name":"Return","src":"35653:8:5"},{"attributes":{"functionReturnParameters":5749},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":5824,"name":"Literal","src":"35695:1:5"}],"id":5825,"name":"Return","src":"35688:8:5"}],"id":5826,"name":"IfStatement","src":"35616:80:5"}],"id":5827,"name":"IfStatement","src":"35555:141:5"}],"id":5828,"name":"Block","src":"35220:483:5"}],"id":5829,"name":"FunctionDefinition","src":"35150:553:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"indexOf","payable":false,"scope":7573,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_haystack","scope":5954,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":5830,"name":"ElementaryTypeName","src":"35726:6:5"}],"id":5831,"name":"VariableDeclaration","src":"35726:16:5"},{"attributes":{"constant":false,"name":"_needle","scope":5954,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":5832,"name":"ElementaryTypeName","src":"35744:6:5"}],"id":5833,"name":"VariableDeclaration","src":"35744:14:5"}],"id":5834,"name":"ParameterList","src":"35725:34:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":5954,"stateVariable":false,"storageLocation":"default","type":"int256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"int","type":"int256"},"id":5835,"name":"ElementaryTypeName","src":"35783:3:5"}],"id":5836,"name":"VariableDeclaration","src":"35783:3:5"}],"id":5837,"name":"ParameterList","src":"35782:5:5"},{"children":[{"attributes":{"assignments":[5839]},"children":[{"attributes":{"constant":false,"name":"h","scope":5954,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":5838,"name":"ElementaryTypeName","src":"35798:5:5"}],"id":5839,"name":"VariableDeclaration","src":"35798:14:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes storage pointer)","value":"bytes"},"id":5840,"name":"ElementaryTypeNameExpression","src":"35815:5:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5831,"type":"string memory","value":"_haystack"},"id":5841,"name":"Identifier","src":"35821:9:5"}],"id":5842,"name":"FunctionCall","src":"35815:16:5"}],"id":5843,"name":"VariableDeclarationStatement","src":"35798:33:5"},{"attributes":{"assignments":[5845]},"children":[{"attributes":{"constant":false,"name":"n","scope":5954,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":5844,"name":"ElementaryTypeName","src":"35841:5:5"}],"id":5845,"name":"VariableDeclaration","src":"35841:14:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes storage pointer)","value":"bytes"},"id":5846,"name":"ElementaryTypeNameExpression","src":"35858:5:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5833,"type":"string memory","value":"_needle"},"id":5847,"name":"Identifier","src":"35864:7:5"}],"id":5848,"name":"FunctionCall","src":"35858:14:5"}],"id":5849,"name":"VariableDeclarationStatement","src":"35841:31:5"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"||","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"||","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5839,"type":"bytes memory","value":"h"},"id":5850,"name":"Identifier","src":"35885:1:5"}],"id":5851,"name":"MemberAccess","src":"35885:8:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":5852,"name":"Literal","src":"35896:1:5"}],"id":5853,"name":"BinaryOperation","src":"35885:12:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5845,"type":"bytes memory","value":"n"},"id":5854,"name":"Identifier","src":"35901:1:5"}],"id":5855,"name":"MemberAccess","src":"35901:8:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":5856,"name":"Literal","src":"35912:1:5"}],"id":5857,"name":"BinaryOperation","src":"35901:12:5"}],"id":5858,"name":"BinaryOperation","src":"35885:28:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5845,"type":"bytes memory","value":"n"},"id":5859,"name":"Identifier","src":"35918:1:5"}],"id":5860,"name":"MemberAccess","src":"35918:8:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5839,"type":"bytes memory","value":"h"},"id":5861,"name":"Identifier","src":"35929:1:5"}],"id":5862,"name":"MemberAccess","src":"35929:8:5"}],"id":5863,"name":"BinaryOperation","src":"35918:19:5"}],"id":5864,"name":"TupleExpression","src":"35917:21:5"}],"id":5865,"name":"BinaryOperation","src":"35885:53:5"},{"attributes":{"functionReturnParameters":5837},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"-","prefix":true,"type":"int_const -1"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":5866,"name":"Literal","src":"35960:1:5"}],"id":5867,"name":"UnaryOperation","src":"35959:2:5"}],"id":5868,"name":"Return","src":"35952:9:5"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5839,"type":"bytes memory","value":"h"},"id":5869,"name":"Identifier","src":"35979:1:5"}],"id":5870,"name":"MemberAccess","src":"35979:8:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"int_const 3402...(31 digits omitted)...1455"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_340282366920938463463374607431768211455_by_1","typeString":"int_const 3402...(31 digits omitted)...1455"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"-","type":"int_const 3402...(31 digits omitted)...1455"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"**","type":"int_const 3402...(31 digits omitted)...1456"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":5871,"name":"Literal","src":"35991:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"313238","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 128","value":"128"},"id":5872,"name":"Literal","src":"35994:3:5"}],"id":5873,"name":"BinaryOperation","src":"35991:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":5874,"name":"Literal","src":"35999:1:5"}],"id":5875,"name":"BinaryOperation","src":"35991:9:5"}],"id":5876,"name":"TupleExpression","src":"35990:11:5"}],"id":5877,"name":"BinaryOperation","src":"35979:22:5"},{"attributes":{"functionReturnParameters":5837},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"-","prefix":true,"type":"int_const -1"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":5878,"name":"Literal","src":"36023:1:5"}],"id":5879,"name":"UnaryOperation","src":"36022:2:5"}],"id":5880,"name":"Return","src":"36015:9:5"},{"children":[{"attributes":{"assignments":[5882]},"children":[{"attributes":{"constant":false,"name":"subindex","scope":5954,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5881,"name":"ElementaryTypeName","src":"36061:4:5"}],"id":5882,"name":"VariableDeclaration","src":"36061:13:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":5883,"name":"Literal","src":"36077:1:5"}],"id":5884,"name":"VariableDeclarationStatement","src":"36061:17:5"},{"children":[{"attributes":{"assignments":[5886]},"children":[{"attributes":{"constant":false,"name":"i","scope":5954,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5885,"name":"ElementaryTypeName","src":"36097:4:5"}],"id":5886,"name":"VariableDeclaration","src":"36097:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":5887,"name":"Literal","src":"36106:1:5"}],"id":5888,"name":"VariableDeclarationStatement","src":"36097:10:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5886,"type":"uint256","value":"i"},"id":5889,"name":"Identifier","src":"36109:1:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5839,"type":"bytes memory","value":"h"},"id":5890,"name":"Identifier","src":"36113:1:5"}],"id":5891,"name":"MemberAccess","src":"36113:8:5"}],"id":5892,"name":"BinaryOperation","src":"36109:12:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5886,"type":"uint256","value":"i"},"id":5893,"name":"Identifier","src":"36123:1:5"}],"id":5894,"name":"UnaryOperation","src":"36123:4:5"}],"id":5895,"name":"ExpressionStatement","src":"36123:4:5"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5839,"type":"bytes memory","value":"h"},"id":5896,"name":"Identifier","src":"36163:1:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5886,"type":"uint256","value":"i"},"id":5897,"name":"Identifier","src":"36165:1:5"}],"id":5898,"name":"IndexAccess","src":"36163:4:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5845,"type":"bytes memory","value":"n"},"id":5899,"name":"Identifier","src":"36171:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":5900,"name":"Literal","src":"36173:1:5"}],"id":5901,"name":"IndexAccess","src":"36171:4:5"}],"id":5902,"name":"BinaryOperation","src":"36163:12:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5882,"type":"uint256","value":"subindex"},"id":5903,"name":"Identifier","src":"36215:8:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":5904,"name":"Literal","src":"36226:1:5"}],"id":5905,"name":"Assignment","src":"36215:12:5"}],"id":5906,"name":"ExpressionStatement","src":"36215:12:5"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&&","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&&","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5882,"type":"uint256","value":"subindex"},"id":5907,"name":"Identifier","src":"36255:8:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5845,"type":"bytes memory","value":"n"},"id":5908,"name":"Identifier","src":"36266:1:5"}],"id":5909,"name":"MemberAccess","src":"36266:8:5"}],"id":5910,"name":"BinaryOperation","src":"36255:19:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5886,"type":"uint256","value":"i"},"id":5911,"name":"Identifier","src":"36279:1:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5882,"type":"uint256","value":"subindex"},"id":5912,"name":"Identifier","src":"36283:8:5"}],"id":5913,"name":"BinaryOperation","src":"36279:12:5"}],"id":5914,"name":"TupleExpression","src":"36278:14:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5839,"type":"bytes memory","value":"h"},"id":5915,"name":"Identifier","src":"36295:1:5"}],"id":5916,"name":"MemberAccess","src":"36295:8:5"}],"id":5917,"name":"BinaryOperation","src":"36278:25:5"}],"id":5918,"name":"BinaryOperation","src":"36255:48:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5839,"type":"bytes memory","value":"h"},"id":5919,"name":"Identifier","src":"36307:1:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5886,"type":"uint256","value":"i"},"id":5920,"name":"Identifier","src":"36309:1:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5882,"type":"uint256","value":"subindex"},"id":5921,"name":"Identifier","src":"36313:8:5"}],"id":5922,"name":"BinaryOperation","src":"36309:12:5"}],"id":5923,"name":"IndexAccess","src":"36307:15:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5845,"type":"bytes memory","value":"n"},"id":5924,"name":"Identifier","src":"36326:1:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5882,"type":"uint256","value":"subindex"},"id":5925,"name":"Identifier","src":"36328:8:5"}],"id":5926,"name":"IndexAccess","src":"36326:11:5"}],"id":5927,"name":"BinaryOperation","src":"36307:30:5"}],"id":5928,"name":"BinaryOperation","src":"36255:82:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5882,"type":"uint256","value":"subindex"},"id":5929,"name":"Identifier","src":"36385:8:5"}],"id":5930,"name":"UnaryOperation","src":"36385:10:5"}],"id":5931,"name":"ExpressionStatement","src":"36385:10:5"}],"id":5932,"name":"Block","src":"36359:59:5"}],"id":5933,"name":"WhileStatement","src":"36249:169:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5882,"type":"uint256","value":"subindex"},"id":5934,"name":"Identifier","src":"36442:8:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5845,"type":"bytes memory","value":"n"},"id":5935,"name":"Identifier","src":"36454:1:5"}],"id":5936,"name":"MemberAccess","src":"36454:8:5"}],"id":5937,"name":"BinaryOperation","src":"36442:20:5"},{"attributes":{"functionReturnParameters":5837},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"int256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(int256)","value":"int"},"id":5938,"name":"ElementaryTypeNameExpression","src":"36495:3:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5886,"type":"uint256","value":"i"},"id":5939,"name":"Identifier","src":"36499:1:5"}],"id":5940,"name":"FunctionCall","src":"36495:6:5"}],"id":5941,"name":"Return","src":"36488:13:5"}],"id":5942,"name":"IfStatement","src":"36439:62:5"}],"id":5943,"name":"Block","src":"36193:327:5"}],"id":5944,"name":"IfStatement","src":"36159:361:5"}],"id":5945,"name":"Block","src":"36141:393:5"}],"id":5946,"name":"ForStatement","src":"36092:442:5"},{"attributes":{"functionReturnParameters":5837},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"-","prefix":true,"type":"int_const -1"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":5947,"name":"Literal","src":"36555:1:5"}],"id":5948,"name":"UnaryOperation","src":"36554:2:5"}],"id":5949,"name":"Return","src":"36547:9:5"}],"id":5950,"name":"Block","src":"36047:520:5"}],"id":5951,"name":"IfStatement","src":"35976:591:5"}],"id":5952,"name":"IfStatement","src":"35882:685:5"}],"id":5953,"name":"Block","src":"35788:785:5"}],"id":5954,"name":"FunctionDefinition","src":"35709:864:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"strConcat","payable":false,"scope":7573,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_a","scope":6139,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":5955,"name":"ElementaryTypeName","src":"36598:6:5"}],"id":5956,"name":"VariableDeclaration","src":"36598:9:5"},{"attributes":{"constant":false,"name":"_b","scope":6139,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":5957,"name":"ElementaryTypeName","src":"36609:6:5"}],"id":5958,"name":"VariableDeclaration","src":"36609:9:5"},{"attributes":{"constant":false,"name":"_c","scope":6139,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":5959,"name":"ElementaryTypeName","src":"36620:6:5"}],"id":5960,"name":"VariableDeclaration","src":"36620:9:5"},{"attributes":{"constant":false,"name":"_d","scope":6139,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":5961,"name":"ElementaryTypeName","src":"36631:6:5"}],"id":5962,"name":"VariableDeclaration","src":"36631:9:5"},{"attributes":{"constant":false,"name":"_e","scope":6139,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":5963,"name":"ElementaryTypeName","src":"36642:6:5"}],"id":5964,"name":"VariableDeclaration","src":"36642:9:5"}],"id":5965,"name":"ParameterList","src":"36597:55:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":6139,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":5966,"name":"ElementaryTypeName","src":"36676:6:5"}],"id":5967,"name":"VariableDeclaration","src":"36676:6:5"}],"id":5968,"name":"ParameterList","src":"36675:8:5"},{"children":[{"attributes":{"assignments":[5970]},"children":[{"attributes":{"constant":false,"name":"_ba","scope":6139,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":5969,"name":"ElementaryTypeName","src":"36694:5:5"}],"id":5970,"name":"VariableDeclaration","src":"36694:16:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes storage pointer)","value":"bytes"},"id":5971,"name":"ElementaryTypeNameExpression","src":"36713:5:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5956,"type":"string memory","value":"_a"},"id":5972,"name":"Identifier","src":"36719:2:5"}],"id":5973,"name":"FunctionCall","src":"36713:9:5"}],"id":5974,"name":"VariableDeclarationStatement","src":"36694:28:5"},{"attributes":{"assignments":[5976]},"children":[{"attributes":{"constant":false,"name":"_bb","scope":6139,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":5975,"name":"ElementaryTypeName","src":"36732:5:5"}],"id":5976,"name":"VariableDeclaration","src":"36732:16:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes storage pointer)","value":"bytes"},"id":5977,"name":"ElementaryTypeNameExpression","src":"36751:5:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5958,"type":"string memory","value":"_b"},"id":5978,"name":"Identifier","src":"36757:2:5"}],"id":5979,"name":"FunctionCall","src":"36751:9:5"}],"id":5980,"name":"VariableDeclarationStatement","src":"36732:28:5"},{"attributes":{"assignments":[5982]},"children":[{"attributes":{"constant":false,"name":"_bc","scope":6139,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":5981,"name":"ElementaryTypeName","src":"36770:5:5"}],"id":5982,"name":"VariableDeclaration","src":"36770:16:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes storage pointer)","value":"bytes"},"id":5983,"name":"ElementaryTypeNameExpression","src":"36789:5:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5960,"type":"string memory","value":"_c"},"id":5984,"name":"Identifier","src":"36795:2:5"}],"id":5985,"name":"FunctionCall","src":"36789:9:5"}],"id":5986,"name":"VariableDeclarationStatement","src":"36770:28:5"},{"attributes":{"assignments":[5988]},"children":[{"attributes":{"constant":false,"name":"_bd","scope":6139,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":5987,"name":"ElementaryTypeName","src":"36808:5:5"}],"id":5988,"name":"VariableDeclaration","src":"36808:16:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes storage pointer)","value":"bytes"},"id":5989,"name":"ElementaryTypeNameExpression","src":"36827:5:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5962,"type":"string memory","value":"_d"},"id":5990,"name":"Identifier","src":"36833:2:5"}],"id":5991,"name":"FunctionCall","src":"36827:9:5"}],"id":5992,"name":"VariableDeclarationStatement","src":"36808:28:5"},{"attributes":{"assignments":[5994]},"children":[{"attributes":{"constant":false,"name":"_be","scope":6139,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":5993,"name":"ElementaryTypeName","src":"36846:5:5"}],"id":5994,"name":"VariableDeclaration","src":"36846:16:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes storage pointer)","value":"bytes"},"id":5995,"name":"ElementaryTypeNameExpression","src":"36865:5:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5964,"type":"string memory","value":"_e"},"id":5996,"name":"Identifier","src":"36871:2:5"}],"id":5997,"name":"FunctionCall","src":"36865:9:5"}],"id":5998,"name":"VariableDeclarationStatement","src":"36846:28:5"},{"attributes":{"assignments":[6000]},"children":[{"attributes":{"constant":false,"name":"abcde","scope":6139,"stateVariable":false,"storageLocation":"memory","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":5999,"name":"ElementaryTypeName","src":"36884:6:5"}],"id":6000,"name":"VariableDeclaration","src":"36884:19:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (string memory)"},"children":[{"attributes":{"name":"string","type":"string"},"id":6001,"name":"ElementaryTypeName","src":"36910:6:5"}],"id":6002,"name":"NewExpression","src":"36906:10:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5970,"type":"bytes memory","value":"_ba"},"id":6003,"name":"Identifier","src":"36917:3:5"}],"id":6004,"name":"MemberAccess","src":"36917:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5976,"type":"bytes memory","value":"_bb"},"id":6005,"name":"Identifier","src":"36930:3:5"}],"id":6006,"name":"MemberAccess","src":"36930:10:5"}],"id":6007,"name":"BinaryOperation","src":"36917:23:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5982,"type":"bytes memory","value":"_bc"},"id":6008,"name":"Identifier","src":"36943:3:5"}],"id":6009,"name":"MemberAccess","src":"36943:10:5"}],"id":6010,"name":"BinaryOperation","src":"36917:36:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5988,"type":"bytes memory","value":"_bd"},"id":6011,"name":"Identifier","src":"36956:3:5"}],"id":6012,"name":"MemberAccess","src":"36956:10:5"}],"id":6013,"name":"BinaryOperation","src":"36917:49:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5994,"type":"bytes memory","value":"_be"},"id":6014,"name":"Identifier","src":"36969:3:5"}],"id":6015,"name":"MemberAccess","src":"36969:10:5"}],"id":6016,"name":"BinaryOperation","src":"36917:62:5"}],"id":6017,"name":"FunctionCall","src":"36906:74:5"}],"id":6018,"name":"VariableDeclarationStatement","src":"36884:96:5"},{"attributes":{"assignments":[6020]},"children":[{"attributes":{"constant":false,"name":"babcde","scope":6139,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":6019,"name":"ElementaryTypeName","src":"36990:5:5"}],"id":6020,"name":"VariableDeclaration","src":"36990:19:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes storage pointer)","value":"bytes"},"id":6021,"name":"ElementaryTypeNameExpression","src":"37012:5:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6000,"type":"string memory","value":"abcde"},"id":6022,"name":"Identifier","src":"37018:5:5"}],"id":6023,"name":"FunctionCall","src":"37012:12:5"}],"id":6024,"name":"VariableDeclarationStatement","src":"36990:34:5"},{"attributes":{"assignments":[6026]},"children":[{"attributes":{"constant":false,"name":"k","scope":6139,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":6025,"name":"ElementaryTypeName","src":"37034:4:5"}],"id":6026,"name":"VariableDeclaration","src":"37034:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":6027,"name":"Literal","src":"37043:1:5"}],"id":6028,"name":"VariableDeclarationStatement","src":"37034:10:5"},{"children":[{"attributes":{"assignments":[6030]},"children":[{"attributes":{"constant":false,"name":"i","scope":6139,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":6029,"name":"ElementaryTypeName","src":"37059:4:5"}],"id":6030,"name":"VariableDeclaration","src":"37059:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":6031,"name":"Literal","src":"37068:1:5"}],"id":6032,"name":"VariableDeclarationStatement","src":"37059:10:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6030,"type":"uint256","value":"i"},"id":6033,"name":"Identifier","src":"37071:1:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5970,"type":"bytes memory","value":"_ba"},"id":6034,"name":"Identifier","src":"37075:3:5"}],"id":6035,"name":"MemberAccess","src":"37075:10:5"}],"id":6036,"name":"BinaryOperation","src":"37071:14:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6030,"type":"uint256","value":"i"},"id":6037,"name":"Identifier","src":"37087:1:5"}],"id":6038,"name":"UnaryOperation","src":"37087:3:5"}],"id":6039,"name":"ExpressionStatement","src":"37087:3:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6020,"type":"bytes memory","value":"babcde"},"id":6040,"name":"Identifier","src":"37092:6:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6026,"type":"uint256","value":"k"},"id":6041,"name":"Identifier","src":"37099:1:5"}],"id":6042,"name":"UnaryOperation","src":"37099:3:5"}],"id":6043,"name":"IndexAccess","src":"37092:11:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5970,"type":"bytes memory","value":"_ba"},"id":6044,"name":"Identifier","src":"37106:3:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6030,"type":"uint256","value":"i"},"id":6045,"name":"Identifier","src":"37110:1:5"}],"id":6046,"name":"IndexAccess","src":"37106:6:5"}],"id":6047,"name":"Assignment","src":"37092:20:5"}],"id":6048,"name":"ExpressionStatement","src":"37092:20:5"}],"id":6049,"name":"ForStatement","src":"37054:58:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6030,"type":"uint256","value":"i"},"id":6050,"name":"Identifier","src":"37127:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":6051,"name":"Literal","src":"37131:1:5"}],"id":6052,"name":"Assignment","src":"37127:5:5"}],"id":6053,"name":"ExpressionStatement","src":"37127:5:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6030,"type":"uint256","value":"i"},"id":6054,"name":"Identifier","src":"37134:1:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5976,"type":"bytes memory","value":"_bb"},"id":6055,"name":"Identifier","src":"37138:3:5"}],"id":6056,"name":"MemberAccess","src":"37138:10:5"}],"id":6057,"name":"BinaryOperation","src":"37134:14:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6030,"type":"uint256","value":"i"},"id":6058,"name":"Identifier","src":"37150:1:5"}],"id":6059,"name":"UnaryOperation","src":"37150:3:5"}],"id":6060,"name":"ExpressionStatement","src":"37150:3:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6020,"type":"bytes memory","value":"babcde"},"id":6061,"name":"Identifier","src":"37155:6:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6026,"type":"uint256","value":"k"},"id":6062,"name":"Identifier","src":"37162:1:5"}],"id":6063,"name":"UnaryOperation","src":"37162:3:5"}],"id":6064,"name":"IndexAccess","src":"37155:11:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5976,"type":"bytes memory","value":"_bb"},"id":6065,"name":"Identifier","src":"37169:3:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6030,"type":"uint256","value":"i"},"id":6066,"name":"Identifier","src":"37173:1:5"}],"id":6067,"name":"IndexAccess","src":"37169:6:5"}],"id":6068,"name":"Assignment","src":"37155:20:5"}],"id":6069,"name":"ExpressionStatement","src":"37155:20:5"}],"id":6070,"name":"ForStatement","src":"37122:53:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6030,"type":"uint256","value":"i"},"id":6071,"name":"Identifier","src":"37190:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":6072,"name":"Literal","src":"37194:1:5"}],"id":6073,"name":"Assignment","src":"37190:5:5"}],"id":6074,"name":"ExpressionStatement","src":"37190:5:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6030,"type":"uint256","value":"i"},"id":6075,"name":"Identifier","src":"37197:1:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5982,"type":"bytes memory","value":"_bc"},"id":6076,"name":"Identifier","src":"37201:3:5"}],"id":6077,"name":"MemberAccess","src":"37201:10:5"}],"id":6078,"name":"BinaryOperation","src":"37197:14:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6030,"type":"uint256","value":"i"},"id":6079,"name":"Identifier","src":"37213:1:5"}],"id":6080,"name":"UnaryOperation","src":"37213:3:5"}],"id":6081,"name":"ExpressionStatement","src":"37213:3:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6020,"type":"bytes memory","value":"babcde"},"id":6082,"name":"Identifier","src":"37218:6:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6026,"type":"uint256","value":"k"},"id":6083,"name":"Identifier","src":"37225:1:5"}],"id":6084,"name":"UnaryOperation","src":"37225:3:5"}],"id":6085,"name":"IndexAccess","src":"37218:11:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5982,"type":"bytes memory","value":"_bc"},"id":6086,"name":"Identifier","src":"37232:3:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6030,"type":"uint256","value":"i"},"id":6087,"name":"Identifier","src":"37236:1:5"}],"id":6088,"name":"IndexAccess","src":"37232:6:5"}],"id":6089,"name":"Assignment","src":"37218:20:5"}],"id":6090,"name":"ExpressionStatement","src":"37218:20:5"}],"id":6091,"name":"ForStatement","src":"37185:53:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6030,"type":"uint256","value":"i"},"id":6092,"name":"Identifier","src":"37253:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":6093,"name":"Literal","src":"37257:1:5"}],"id":6094,"name":"Assignment","src":"37253:5:5"}],"id":6095,"name":"ExpressionStatement","src":"37253:5:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6030,"type":"uint256","value":"i"},"id":6096,"name":"Identifier","src":"37260:1:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5988,"type":"bytes memory","value":"_bd"},"id":6097,"name":"Identifier","src":"37264:3:5"}],"id":6098,"name":"MemberAccess","src":"37264:10:5"}],"id":6099,"name":"BinaryOperation","src":"37260:14:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6030,"type":"uint256","value":"i"},"id":6100,"name":"Identifier","src":"37276:1:5"}],"id":6101,"name":"UnaryOperation","src":"37276:3:5"}],"id":6102,"name":"ExpressionStatement","src":"37276:3:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6020,"type":"bytes memory","value":"babcde"},"id":6103,"name":"Identifier","src":"37281:6:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6026,"type":"uint256","value":"k"},"id":6104,"name":"Identifier","src":"37288:1:5"}],"id":6105,"name":"UnaryOperation","src":"37288:3:5"}],"id":6106,"name":"IndexAccess","src":"37281:11:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5988,"type":"bytes memory","value":"_bd"},"id":6107,"name":"Identifier","src":"37295:3:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6030,"type":"uint256","value":"i"},"id":6108,"name":"Identifier","src":"37299:1:5"}],"id":6109,"name":"IndexAccess","src":"37295:6:5"}],"id":6110,"name":"Assignment","src":"37281:20:5"}],"id":6111,"name":"ExpressionStatement","src":"37281:20:5"}],"id":6112,"name":"ForStatement","src":"37248:53:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6030,"type":"uint256","value":"i"},"id":6113,"name":"Identifier","src":"37316:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":6114,"name":"Literal","src":"37320:1:5"}],"id":6115,"name":"Assignment","src":"37316:5:5"}],"id":6116,"name":"ExpressionStatement","src":"37316:5:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6030,"type":"uint256","value":"i"},"id":6117,"name":"Identifier","src":"37323:1:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5994,"type":"bytes memory","value":"_be"},"id":6118,"name":"Identifier","src":"37327:3:5"}],"id":6119,"name":"MemberAccess","src":"37327:10:5"}],"id":6120,"name":"BinaryOperation","src":"37323:14:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6030,"type":"uint256","value":"i"},"id":6121,"name":"Identifier","src":"37339:1:5"}],"id":6122,"name":"UnaryOperation","src":"37339:3:5"}],"id":6123,"name":"ExpressionStatement","src":"37339:3:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6020,"type":"bytes memory","value":"babcde"},"id":6124,"name":"Identifier","src":"37344:6:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6026,"type":"uint256","value":"k"},"id":6125,"name":"Identifier","src":"37351:1:5"}],"id":6126,"name":"UnaryOperation","src":"37351:3:5"}],"id":6127,"name":"IndexAccess","src":"37344:11:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5994,"type":"bytes memory","value":"_be"},"id":6128,"name":"Identifier","src":"37358:3:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6030,"type":"uint256","value":"i"},"id":6129,"name":"Identifier","src":"37362:1:5"}],"id":6130,"name":"IndexAccess","src":"37358:6:5"}],"id":6131,"name":"Assignment","src":"37344:20:5"}],"id":6132,"name":"ExpressionStatement","src":"37344:20:5"}],"id":6133,"name":"ForStatement","src":"37311:53:5"},{"attributes":{"functionReturnParameters":5968},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(string storage pointer)","value":"string"},"id":6134,"name":"ElementaryTypeNameExpression","src":"37381:6:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6020,"type":"bytes memory","value":"babcde"},"id":6135,"name":"Identifier","src":"37388:6:5"}],"id":6136,"name":"FunctionCall","src":"37381:14:5"}],"id":6137,"name":"Return","src":"37374:21:5"}],"id":6138,"name":"Block","src":"36684:718:5"}],"id":6139,"name":"FunctionDefinition","src":"36579:823:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"strConcat","payable":false,"scope":7573,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_a","scope":6161,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":6140,"name":"ElementaryTypeName","src":"37427:6:5"}],"id":6141,"name":"VariableDeclaration","src":"37427:9:5"},{"attributes":{"constant":false,"name":"_b","scope":6161,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":6142,"name":"ElementaryTypeName","src":"37438:6:5"}],"id":6143,"name":"VariableDeclaration","src":"37438:9:5"},{"attributes":{"constant":false,"name":"_c","scope":6161,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":6144,"name":"ElementaryTypeName","src":"37449:6:5"}],"id":6145,"name":"VariableDeclaration","src":"37449:9:5"},{"attributes":{"constant":false,"name":"_d","scope":6161,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":6146,"name":"ElementaryTypeName","src":"37460:6:5"}],"id":6147,"name":"VariableDeclaration","src":"37460:9:5"}],"id":6148,"name":"ParameterList","src":"37426:44:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":6161,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":6149,"name":"ElementaryTypeName","src":"37494:6:5"}],"id":6150,"name":"VariableDeclaration","src":"37494:6:5"}],"id":6151,"name":"ParameterList","src":"37493:8:5"},{"children":[{"attributes":{"functionReturnParameters":6151},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"overloadedDeclarations":[6139,6161,6181,6199],"referencedDeclaration":6139,"type":"function (string memory,string memory,string memory,string memory,string memory) pure returns (string memory)","value":"strConcat"},"id":6152,"name":"Identifier","src":"37519:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6141,"type":"string memory","value":"_a"},"id":6153,"name":"Identifier","src":"37529:2:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6143,"type":"string memory","value":"_b"},"id":6154,"name":"Identifier","src":"37533:2:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6145,"type":"string memory","value":"_c"},"id":6155,"name":"Identifier","src":"37537:2:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6147,"type":"string memory","value":"_d"},"id":6156,"name":"Identifier","src":"37541:2:5"},{"attributes":{"argumentTypes":null,"hexvalue":"","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"\"","value":""},"id":6157,"name":"Literal","src":"37545:2:5"}],"id":6158,"name":"FunctionCall","src":"37519:29:5"}],"id":6159,"name":"Return","src":"37512:36:5"}],"id":6160,"name":"Block","src":"37502:53:5"}],"id":6161,"name":"FunctionDefinition","src":"37408:147:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"strConcat","payable":false,"scope":7573,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_a","scope":6181,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":6162,"name":"ElementaryTypeName","src":"37580:6:5"}],"id":6163,"name":"VariableDeclaration","src":"37580:9:5"},{"attributes":{"constant":false,"name":"_b","scope":6181,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":6164,"name":"ElementaryTypeName","src":"37591:6:5"}],"id":6165,"name":"VariableDeclaration","src":"37591:9:5"},{"attributes":{"constant":false,"name":"_c","scope":6181,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":6166,"name":"ElementaryTypeName","src":"37602:6:5"}],"id":6167,"name":"VariableDeclaration","src":"37602:9:5"}],"id":6168,"name":"ParameterList","src":"37579:33:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":6181,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":6169,"name":"ElementaryTypeName","src":"37636:6:5"}],"id":6170,"name":"VariableDeclaration","src":"37636:6:5"}],"id":6171,"name":"ParameterList","src":"37635:8:5"},{"children":[{"attributes":{"functionReturnParameters":6171},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"overloadedDeclarations":[6139,6161,6181,6199],"referencedDeclaration":6139,"type":"function (string memory,string memory,string memory,string memory,string memory) pure returns (string memory)","value":"strConcat"},"id":6172,"name":"Identifier","src":"37661:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6163,"type":"string memory","value":"_a"},"id":6173,"name":"Identifier","src":"37671:2:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6165,"type":"string memory","value":"_b"},"id":6174,"name":"Identifier","src":"37675:2:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6167,"type":"string memory","value":"_c"},"id":6175,"name":"Identifier","src":"37679:2:5"},{"attributes":{"argumentTypes":null,"hexvalue":"","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"\"","value":""},"id":6176,"name":"Literal","src":"37683:2:5"},{"attributes":{"argumentTypes":null,"hexvalue":"","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"\"","value":""},"id":6177,"name":"Literal","src":"37687:2:5"}],"id":6178,"name":"FunctionCall","src":"37661:29:5"}],"id":6179,"name":"Return","src":"37654:36:5"}],"id":6180,"name":"Block","src":"37644:53:5"}],"id":6181,"name":"FunctionDefinition","src":"37561:136:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"strConcat","payable":false,"scope":7573,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_a","scope":6199,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":6182,"name":"ElementaryTypeName","src":"37722:6:5"}],"id":6183,"name":"VariableDeclaration","src":"37722:9:5"},{"attributes":{"constant":false,"name":"_b","scope":6199,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":6184,"name":"ElementaryTypeName","src":"37733:6:5"}],"id":6185,"name":"VariableDeclaration","src":"37733:9:5"}],"id":6186,"name":"ParameterList","src":"37721:22:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":6199,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":6187,"name":"ElementaryTypeName","src":"37767:6:5"}],"id":6188,"name":"VariableDeclaration","src":"37767:6:5"}],"id":6189,"name":"ParameterList","src":"37766:8:5"},{"children":[{"attributes":{"functionReturnParameters":6189},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"overloadedDeclarations":[6139,6161,6181,6199],"referencedDeclaration":6139,"type":"function (string memory,string memory,string memory,string memory,string memory) pure returns (string memory)","value":"strConcat"},"id":6190,"name":"Identifier","src":"37792:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6183,"type":"string memory","value":"_a"},"id":6191,"name":"Identifier","src":"37802:2:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6185,"type":"string memory","value":"_b"},"id":6192,"name":"Identifier","src":"37806:2:5"},{"attributes":{"argumentTypes":null,"hexvalue":"","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"\"","value":""},"id":6193,"name":"Literal","src":"37810:2:5"},{"attributes":{"argumentTypes":null,"hexvalue":"","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"\"","value":""},"id":6194,"name":"Literal","src":"37814:2:5"},{"attributes":{"argumentTypes":null,"hexvalue":"","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"\"","value":""},"id":6195,"name":"Literal","src":"37818:2:5"}],"id":6196,"name":"FunctionCall","src":"37792:29:5"}],"id":6197,"name":"Return","src":"37785:36:5"}],"id":6198,"name":"Block","src":"37775:53:5"}],"id":6199,"name":"FunctionDefinition","src":"37703:125:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"parseInt","payable":false,"scope":7573,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_a","scope":6212,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":6200,"name":"ElementaryTypeName","src":"37868:6:5"}],"id":6201,"name":"VariableDeclaration","src":"37868:9:5"}],"id":6202,"name":"ParameterList","src":"37867:11:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":6212,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":6203,"name":"ElementaryTypeName","src":"37902:4:5"}],"id":6204,"name":"VariableDeclaration","src":"37902:4:5"}],"id":6205,"name":"ParameterList","src":"37901:6:5"},{"children":[{"attributes":{"functionReturnParameters":6205},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"overloadedDeclarations":[6212,6311],"referencedDeclaration":6311,"type":"function (string memory,uint256) pure returns (uint256)","value":"parseInt"},"id":6206,"name":"Identifier","src":"37925:8:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6201,"type":"string memory","value":"_a"},"id":6207,"name":"Identifier","src":"37934:2:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":6208,"name":"Literal","src":"37938:1:5"}],"id":6209,"name":"FunctionCall","src":"37925:15:5"}],"id":6210,"name":"Return","src":"37918:22:5"}],"id":6211,"name":"Block","src":"37908:39:5"}],"id":6212,"name":"FunctionDefinition","src":"37850:97:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"parseInt","payable":false,"scope":7573,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_a","scope":6311,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":6213,"name":"ElementaryTypeName","src":"38005:6:5"}],"id":6214,"name":"VariableDeclaration","src":"38005:9:5"},{"attributes":{"constant":false,"name":"_b","scope":6311,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":6215,"name":"ElementaryTypeName","src":"38016:4:5"}],"id":6216,"name":"VariableDeclaration","src":"38016:7:5"}],"id":6217,"name":"ParameterList","src":"38004:20:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":6311,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":6218,"name":"ElementaryTypeName","src":"38048:4:5"}],"id":6219,"name":"VariableDeclaration","src":"38048:4:5"}],"id":6220,"name":"ParameterList","src":"38047:6:5"},{"children":[{"attributes":{"assignments":[6222]},"children":[{"attributes":{"constant":false,"name":"bresult","scope":6311,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":6221,"name":"ElementaryTypeName","src":"38064:5:5"}],"id":6222,"name":"VariableDeclaration","src":"38064:20:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes storage pointer)","value":"bytes"},"id":6223,"name":"ElementaryTypeNameExpression","src":"38087:5:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6214,"type":"string memory","value":"_a"},"id":6224,"name":"Identifier","src":"38093:2:5"}],"id":6225,"name":"FunctionCall","src":"38087:9:5"}],"id":6226,"name":"VariableDeclarationStatement","src":"38064:32:5"},{"attributes":{"assignments":[6228]},"children":[{"attributes":{"constant":false,"name":"mint","scope":6311,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":6227,"name":"ElementaryTypeName","src":"38106:4:5"}],"id":6228,"name":"VariableDeclaration","src":"38106:9:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":6229,"name":"Literal","src":"38118:1:5"}],"id":6230,"name":"VariableDeclarationStatement","src":"38106:13:5"},{"attributes":{"assignments":[6232]},"children":[{"attributes":{"constant":false,"name":"decimals","scope":6311,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":6231,"name":"ElementaryTypeName","src":"38129:4:5"}],"id":6232,"name":"VariableDeclaration","src":"38129:13:5"},{"attributes":{"argumentTypes":null,"hexvalue":"66616c7365","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"false"},"id":6233,"name":"Literal","src":"38145:5:5"}],"id":6234,"name":"VariableDeclarationStatement","src":"38129:21:5"},{"children":[{"attributes":{"assignments":[6236]},"children":[{"attributes":{"constant":false,"name":"i","scope":6311,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":6235,"name":"ElementaryTypeName","src":"38165:4:5"}],"id":6236,"name":"VariableDeclaration","src":"38165:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":6237,"name":"Literal","src":"38172:1:5"}],"id":6238,"name":"VariableDeclarationStatement","src":"38165:8:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6236,"type":"uint256","value":"i"},"id":6239,"name":"Identifier","src":"38175:1:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6222,"type":"bytes memory","value":"bresult"},"id":6240,"name":"Identifier","src":"38177:7:5"}],"id":6241,"name":"MemberAccess","src":"38177:14:5"}],"id":6242,"name":"BinaryOperation","src":"38175:16:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6236,"type":"uint256","value":"i"},"id":6243,"name":"Identifier","src":"38193:1:5"}],"id":6244,"name":"UnaryOperation","src":"38193:3:5"}],"id":6245,"name":"ExpressionStatement","src":"38193:3:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&&","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6222,"type":"bytes memory","value":"bresult"},"id":6246,"name":"Identifier","src":"38216:7:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6236,"type":"uint256","value":"i"},"id":6247,"name":"Identifier","src":"38224:1:5"}],"id":6248,"name":"IndexAccess","src":"38216:10:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3438","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 48","value":"48"},"id":6249,"name":"Literal","src":"38230:2:5"}],"id":6250,"name":"BinaryOperation","src":"38216:16:5"}],"id":6251,"name":"TupleExpression","src":"38215:18:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6222,"type":"bytes memory","value":"bresult"},"id":6252,"name":"Identifier","src":"38236:7:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6236,"type":"uint256","value":"i"},"id":6253,"name":"Identifier","src":"38244:1:5"}],"id":6254,"name":"IndexAccess","src":"38236:10:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3537","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 57","value":"57"},"id":6255,"name":"Literal","src":"38250:2:5"}],"id":6256,"name":"BinaryOperation","src":"38236:16:5"}],"id":6257,"name":"TupleExpression","src":"38235:18:5"}],"id":6258,"name":"BinaryOperation","src":"38215:38:5"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6232,"type":"bool","value":"decimals"},"id":6259,"name":"Identifier","src":"38276:8:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6216,"type":"uint256","value":"_b"},"id":6260,"name":"Identifier","src":"38310:2:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":6261,"name":"Literal","src":"38316:1:5"}],"id":6262,"name":"BinaryOperation","src":"38310:7:5"},{"id":6263,"name":"Break","src":"38319:5:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"--","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6216,"type":"uint256","value":"_b"},"id":6264,"name":"Identifier","src":"38351:2:5"}],"id":6265,"name":"UnaryOperation","src":"38351:4:5"}],"id":6266,"name":"ExpressionStatement","src":"38351:4:5"}],"id":6267,"name":"IfStatement","src":"38306:49:5"}],"id":6268,"name":"Block","src":"38285:89:5"}],"id":6269,"name":"IfStatement","src":"38272:102:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6228,"type":"uint256","value":"mint"},"id":6270,"name":"Identifier","src":"38391:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3130","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 10","value":"10"},"id":6271,"name":"Literal","src":"38399:2:5"}],"id":6272,"name":"Assignment","src":"38391:10:5"}],"id":6273,"name":"ExpressionStatement","src":"38391:10:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6228,"type":"uint256","value":"mint"},"id":6274,"name":"Identifier","src":"38419:4:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint"},"id":6275,"name":"ElementaryTypeNameExpression","src":"38427:4:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6222,"type":"bytes memory","value":"bresult"},"id":6276,"name":"Identifier","src":"38432:7:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6236,"type":"uint256","value":"i"},"id":6277,"name":"Identifier","src":"38440:1:5"}],"id":6278,"name":"IndexAccess","src":"38432:10:5"}],"id":6279,"name":"FunctionCall","src":"38427:16:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3438","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 48","value":"48"},"id":6280,"name":"Literal","src":"38446:2:5"}],"id":6281,"name":"BinaryOperation","src":"38427:21:5"}],"id":6282,"name":"Assignment","src":"38419:29:5"}],"id":6283,"name":"ExpressionStatement","src":"38419:29:5"}],"id":6284,"name":"Block","src":"38254:209:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6222,"type":"bytes memory","value":"bresult"},"id":6285,"name":"Identifier","src":"38473:7:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6236,"type":"uint256","value":"i"},"id":6286,"name":"Identifier","src":"38481:1:5"}],"id":6287,"name":"IndexAccess","src":"38473:10:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3436","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 46","value":"46"},"id":6288,"name":"Literal","src":"38487:2:5"}],"id":6289,"name":"BinaryOperation","src":"38473:16:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6232,"type":"bool","value":"decimals"},"id":6290,"name":"Identifier","src":"38491:8:5"},{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":6291,"name":"Literal","src":"38502:4:5"}],"id":6292,"name":"Assignment","src":"38491:15:5"}],"id":6293,"name":"ExpressionStatement","src":"38491:15:5"}],"id":6294,"name":"IfStatement","src":"38469:37:5"}],"id":6295,"name":"IfStatement","src":"38211:295:5"}],"id":6296,"name":"Block","src":"38197:320:5"}],"id":6297,"name":"ForStatement","src":"38160:357:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6216,"type":"uint256","value":"_b"},"id":6298,"name":"Identifier","src":"38530:2:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":6299,"name":"Literal","src":"38535:1:5"}],"id":6300,"name":"BinaryOperation","src":"38530:6:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6228,"type":"uint256","value":"mint"},"id":6301,"name":"Identifier","src":"38538:4:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"**","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3130","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 10","value":"10"},"id":6302,"name":"Literal","src":"38546:2:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6216,"type":"uint256","value":"_b"},"id":6303,"name":"Identifier","src":"38550:2:5"}],"id":6304,"name":"BinaryOperation","src":"38546:6:5"}],"id":6305,"name":"Assignment","src":"38538:14:5"}],"id":6306,"name":"ExpressionStatement","src":"38538:14:5"}],"id":6307,"name":"IfStatement","src":"38526:26:5"},{"attributes":{"functionReturnParameters":6220},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6228,"type":"uint256","value":"mint"},"id":6308,"name":"Identifier","src":"38569:4:5"}],"id":6309,"name":"Return","src":"38562:11:5"}],"id":6310,"name":"Block","src":"38054:526:5"}],"id":6311,"name":"FunctionDefinition","src":"37987:593:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"uint2str","payable":false,"scope":7573,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"i","scope":6383,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":6312,"name":"ElementaryTypeName","src":"38604:4:5"}],"id":6313,"name":"VariableDeclaration","src":"38604:6:5"}],"id":6314,"name":"ParameterList","src":"38603:8:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":6383,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":6315,"name":"ElementaryTypeName","src":"38635:6:5"}],"id":6316,"name":"VariableDeclaration","src":"38635:6:5"}],"id":6317,"name":"ParameterList","src":"38634:8:5"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6313,"type":"uint256","value":"i"},"id":6318,"name":"Identifier","src":"38656:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":6319,"name":"Literal","src":"38661:1:5"}],"id":6320,"name":"BinaryOperation","src":"38656:6:5"},{"attributes":{"functionReturnParameters":6317},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"0\"","value":"0"},"id":6321,"name":"Literal","src":"38671:3:5"}],"id":6322,"name":"Return","src":"38664:10:5"}],"id":6323,"name":"IfStatement","src":"38652:22:5"},{"attributes":{"assignments":[6325]},"children":[{"attributes":{"constant":false,"name":"j","scope":6383,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":6324,"name":"ElementaryTypeName","src":"38684:4:5"}],"id":6325,"name":"VariableDeclaration","src":"38684:6:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6313,"type":"uint256","value":"i"},"id":6326,"name":"Identifier","src":"38693:1:5"}],"id":6327,"name":"VariableDeclarationStatement","src":"38684:10:5"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"len","scope":6383,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":6328,"name":"ElementaryTypeName","src":"38704:4:5"}],"id":6329,"name":"VariableDeclaration","src":"38704:8:5"}],"id":6330,"name":"VariableDeclarationStatement","src":"38704:8:5"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6325,"type":"uint256","value":"j"},"id":6331,"name":"Identifier","src":"38729:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":6332,"name":"Literal","src":"38734:1:5"}],"id":6333,"name":"BinaryOperation","src":"38729:6:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6329,"type":"uint256","value":"len"},"id":6334,"name":"Identifier","src":"38750:3:5"}],"id":6335,"name":"UnaryOperation","src":"38750:5:5"}],"id":6336,"name":"ExpressionStatement","src":"38750:5:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"/=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6325,"type":"uint256","value":"j"},"id":6337,"name":"Identifier","src":"38769:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3130","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 10","value":"10"},"id":6338,"name":"Literal","src":"38774:2:5"}],"id":6339,"name":"Assignment","src":"38769:7:5"}],"id":6340,"name":"ExpressionStatement","src":"38769:7:5"}],"id":6341,"name":"Block","src":"38736:51:5"}],"id":6342,"name":"WhileStatement","src":"38722:65:5"},{"attributes":{"assignments":[6344]},"children":[{"attributes":{"constant":false,"name":"bstr","scope":6383,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":6343,"name":"ElementaryTypeName","src":"38796:5:5"}],"id":6344,"name":"VariableDeclaration","src":"38796:17:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (bytes memory)"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":6345,"name":"ElementaryTypeName","src":"38820:5:5"}],"id":6346,"name":"NewExpression","src":"38816:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6329,"type":"uint256","value":"len"},"id":6347,"name":"Identifier","src":"38826:3:5"}],"id":6348,"name":"FunctionCall","src":"38816:14:5"}],"id":6349,"name":"VariableDeclarationStatement","src":"38796:34:5"},{"attributes":{"assignments":[6351]},"children":[{"attributes":{"constant":false,"name":"k","scope":6383,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":6350,"name":"ElementaryTypeName","src":"38840:4:5"}],"id":6351,"name":"VariableDeclaration","src":"38840:6:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6329,"type":"uint256","value":"len"},"id":6352,"name":"Identifier","src":"38849:3:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":6353,"name":"Literal","src":"38855:1:5"}],"id":6354,"name":"BinaryOperation","src":"38849:7:5"}],"id":6355,"name":"VariableDeclarationStatement","src":"38840:16:5"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6313,"type":"uint256","value":"i"},"id":6356,"name":"Identifier","src":"38873:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":6357,"name":"Literal","src":"38878:1:5"}],"id":6358,"name":"BinaryOperation","src":"38873:6:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6344,"type":"bytes memory","value":"bstr"},"id":6359,"name":"Identifier","src":"38894:4:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"--","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6351,"type":"uint256","value":"k"},"id":6360,"name":"Identifier","src":"38899:1:5"}],"id":6361,"name":"UnaryOperation","src":"38899:3:5"}],"id":6362,"name":"IndexAccess","src":"38894:9:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes1","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes1)","value":"byte"},"id":6363,"name":"ElementaryTypeNameExpression","src":"38906:4:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3438","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 48","value":"48"},"id":6364,"name":"Literal","src":"38911:2:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"%","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6313,"type":"uint256","value":"i"},"id":6365,"name":"Identifier","src":"38916:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3130","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 10","value":"10"},"id":6366,"name":"Literal","src":"38920:2:5"}],"id":6367,"name":"BinaryOperation","src":"38916:6:5"}],"id":6368,"name":"BinaryOperation","src":"38911:11:5"}],"id":6369,"name":"FunctionCall","src":"38906:17:5"}],"id":6370,"name":"Assignment","src":"38894:29:5"}],"id":6371,"name":"ExpressionStatement","src":"38894:29:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"/=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6313,"type":"uint256","value":"i"},"id":6372,"name":"Identifier","src":"38937:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3130","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 10","value":"10"},"id":6373,"name":"Literal","src":"38942:2:5"}],"id":6374,"name":"Assignment","src":"38937:7:5"}],"id":6375,"name":"ExpressionStatement","src":"38937:7:5"}],"id":6376,"name":"Block","src":"38880:75:5"}],"id":6377,"name":"WhileStatement","src":"38866:89:5"},{"attributes":{"functionReturnParameters":6317},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(string storage pointer)","value":"string"},"id":6378,"name":"ElementaryTypeNameExpression","src":"38971:6:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6344,"type":"bytes memory","value":"bstr"},"id":6379,"name":"Identifier","src":"38978:4:5"}],"id":6380,"name":"FunctionCall","src":"38971:12:5"}],"id":6381,"name":"Return","src":"38964:19:5"}],"id":6382,"name":"Block","src":"38642:348:5"}],"id":6383,"name":"FunctionDefinition","src":"38586:404:5"},{"children":[{"attributes":{"contractScope":null,"name":"CBOR","referencedDeclaration":2195,"type":"library CBOR"},"id":6384,"name":"UserDefinedTypeName","src":"39002:4:5"},{"attributes":{"contractScope":null,"name":"Buffer.buffer","referencedDeclaration":1670,"type":"struct Buffer.buffer"},"id":6385,"name":"UserDefinedTypeName","src":"39011:13:5"}],"id":6386,"name":"UsingForDirective","src":"38996:29:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"stra2cbor","payable":false,"scope":7573,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"arr","scope":6444,"stateVariable":false,"storageLocation":"default","type":"string[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"string[]"},"children":[{"attributes":{"name":"string","type":"string"},"id":6387,"name":"ElementaryTypeName","src":"39049:6:5"}],"id":6388,"name":"ArrayTypeName","src":"39049:8:5"}],"id":6389,"name":"VariableDeclaration","src":"39049:12:5"}],"id":6390,"name":"ParameterList","src":"39048:14:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":6444,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":6391,"name":"ElementaryTypeName","src":"39086:5:5"}],"id":6392,"name":"VariableDeclaration","src":"39086:5:5"}],"id":6393,"name":"ParameterList","src":"39085:7:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"overloadedDeclarations":[null],"referencedDeclaration":7572,"type":"function () pure","value":"safeMemoryCleaner"},"id":6394,"name":"Identifier","src":"39103:17:5"}],"id":6395,"name":"FunctionCall","src":"39103:19:5"}],"id":6396,"name":"ExpressionStatement","src":"39103:19:5"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"buf","scope":6444,"stateVariable":false,"storageLocation":"memory","type":"struct Buffer.buffer","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"Buffer.buffer","referencedDeclaration":1670,"type":"struct Buffer.buffer"},"id":6399,"name":"UserDefinedTypeName","src":"39132:13:5"}],"id":6400,"name":"VariableDeclaration","src":"39132:24:5"}],"id":6401,"name":"VariableDeclarationStatement","src":"39132:24:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1670_memory_ptr","typeString":"struct Buffer.buffer memory"},{"typeIdentifier":"t_rational_1024_by_1","typeString":"int_const 1024"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"init","referencedDeclaration":1704,"type":"function (struct Buffer.buffer memory,uint256) pure"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1895,"type":"type(library Buffer)","value":"Buffer"},"id":6402,"name":"Identifier","src":"39166:6:5"}],"id":6404,"name":"MemberAccess","src":"39166:11:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6400,"type":"struct Buffer.buffer memory","value":"buf"},"id":6405,"name":"Identifier","src":"39178:3:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31303234","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1024","value":"1024"},"id":6406,"name":"Literal","src":"39183:4:5"}],"id":6407,"name":"FunctionCall","src":"39166:22:5"}],"id":6408,"name":"ExpressionStatement","src":"39166:22:5"},{"children":[{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"startArray","referencedDeclaration":2172,"type":"function (struct Buffer.buffer memory) pure"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6400,"type":"struct Buffer.buffer memory","value":"buf"},"id":6409,"name":"Identifier","src":"39198:3:5"}],"id":6411,"name":"MemberAccess","src":"39198:14:5"}],"id":6412,"name":"FunctionCall","src":"39198:16:5"}],"id":6413,"name":"ExpressionStatement","src":"39198:16:5"},{"children":[{"attributes":{"assignments":[6415]},"children":[{"attributes":{"constant":false,"name":"i","scope":6444,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":6414,"name":"ElementaryTypeName","src":"39229:4:5"}],"id":6415,"name":"VariableDeclaration","src":"39229:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":6416,"name":"Literal","src":"39238:1:5"}],"id":6417,"name":"VariableDeclarationStatement","src":"39229:10:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6415,"type":"uint256","value":"i"},"id":6418,"name":"Identifier","src":"39241:1:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6389,"type":"string memory[] memory","value":"arr"},"id":6419,"name":"Identifier","src":"39245:3:5"}],"id":6420,"name":"MemberAccess","src":"39245:10:5"}],"id":6421,"name":"BinaryOperation","src":"39241:14:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6415,"type":"uint256","value":"i"},"id":6422,"name":"Identifier","src":"39257:1:5"}],"id":6423,"name":"UnaryOperation","src":"39257:3:5"}],"id":6424,"name":"ExpressionStatement","src":"39257:3:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory","typeString":"string memory"}],"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"encodeString","referencedDeclaration":2161,"type":"function (struct Buffer.buffer memory,string memory) pure"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6400,"type":"struct Buffer.buffer memory","value":"buf"},"id":6425,"name":"Identifier","src":"39276:3:5"}],"id":6427,"name":"MemberAccess","src":"39276:16:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6389,"type":"string memory[] memory","value":"arr"},"id":6428,"name":"Identifier","src":"39293:3:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6415,"type":"uint256","value":"i"},"id":6429,"name":"Identifier","src":"39297:1:5"}],"id":6430,"name":"IndexAccess","src":"39293:6:5"}],"id":6431,"name":"FunctionCall","src":"39276:24:5"}],"id":6432,"name":"ExpressionStatement","src":"39276:24:5"}],"id":6433,"name":"Block","src":"39262:49:5"}],"id":6434,"name":"ForStatement","src":"39224:87:5"},{"children":[{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"endSequence","referencedDeclaration":2194,"type":"function (struct Buffer.buffer memory) pure"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6400,"type":"struct Buffer.buffer memory","value":"buf"},"id":6435,"name":"Identifier","src":"39320:3:5"}],"id":6437,"name":"MemberAccess","src":"39320:15:5"}],"id":6438,"name":"FunctionCall","src":"39320:17:5"}],"id":6439,"name":"ExpressionStatement","src":"39320:17:5"},{"attributes":{"functionReturnParameters":6393},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"buf","referencedDeclaration":1667,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6400,"type":"struct Buffer.buffer memory","value":"buf"},"id":6440,"name":"Identifier","src":"39354:3:5"}],"id":6441,"name":"MemberAccess","src":"39354:7:5"}],"id":6442,"name":"Return","src":"39347:14:5"}],"id":6443,"name":"Block","src":"39093:275:5"}],"id":6444,"name":"FunctionDefinition","src":"39030:338:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"ba2cbor","payable":false,"scope":7573,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"arr","scope":6502,"stateVariable":false,"storageLocation":"default","type":"bytes[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"bytes[]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":6445,"name":"ElementaryTypeName","src":"39391:5:5"}],"id":6446,"name":"ArrayTypeName","src":"39391:7:5"}],"id":6447,"name":"VariableDeclaration","src":"39391:11:5"}],"id":6448,"name":"ParameterList","src":"39390:13:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":6502,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":6449,"name":"ElementaryTypeName","src":"39427:5:5"}],"id":6450,"name":"VariableDeclaration","src":"39427:5:5"}],"id":6451,"name":"ParameterList","src":"39426:7:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"overloadedDeclarations":[null],"referencedDeclaration":7572,"type":"function () pure","value":"safeMemoryCleaner"},"id":6452,"name":"Identifier","src":"39444:17:5"}],"id":6453,"name":"FunctionCall","src":"39444:19:5"}],"id":6454,"name":"ExpressionStatement","src":"39444:19:5"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"buf","scope":6502,"stateVariable":false,"storageLocation":"memory","type":"struct Buffer.buffer","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"Buffer.buffer","referencedDeclaration":1670,"type":"struct Buffer.buffer"},"id":6457,"name":"UserDefinedTypeName","src":"39473:13:5"}],"id":6458,"name":"VariableDeclaration","src":"39473:24:5"}],"id":6459,"name":"VariableDeclarationStatement","src":"39473:24:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1670_memory_ptr","typeString":"struct Buffer.buffer memory"},{"typeIdentifier":"t_rational_1024_by_1","typeString":"int_const 1024"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"init","referencedDeclaration":1704,"type":"function (struct Buffer.buffer memory,uint256) pure"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1895,"type":"type(library Buffer)","value":"Buffer"},"id":6460,"name":"Identifier","src":"39507:6:5"}],"id":6462,"name":"MemberAccess","src":"39507:11:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6458,"type":"struct Buffer.buffer memory","value":"buf"},"id":6463,"name":"Identifier","src":"39519:3:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31303234","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1024","value":"1024"},"id":6464,"name":"Literal","src":"39524:4:5"}],"id":6465,"name":"FunctionCall","src":"39507:22:5"}],"id":6466,"name":"ExpressionStatement","src":"39507:22:5"},{"children":[{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"startArray","referencedDeclaration":2172,"type":"function (struct Buffer.buffer memory) pure"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6458,"type":"struct Buffer.buffer memory","value":"buf"},"id":6467,"name":"Identifier","src":"39539:3:5"}],"id":6469,"name":"MemberAccess","src":"39539:14:5"}],"id":6470,"name":"FunctionCall","src":"39539:16:5"}],"id":6471,"name":"ExpressionStatement","src":"39539:16:5"},{"children":[{"attributes":{"assignments":[6473]},"children":[{"attributes":{"constant":false,"name":"i","scope":6502,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":6472,"name":"ElementaryTypeName","src":"39570:4:5"}],"id":6473,"name":"VariableDeclaration","src":"39570:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":6474,"name":"Literal","src":"39579:1:5"}],"id":6475,"name":"VariableDeclarationStatement","src":"39570:10:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6473,"type":"uint256","value":"i"},"id":6476,"name":"Identifier","src":"39582:1:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6447,"type":"bytes memory[] memory","value":"arr"},"id":6477,"name":"Identifier","src":"39586:3:5"}],"id":6478,"name":"MemberAccess","src":"39586:10:5"}],"id":6479,"name":"BinaryOperation","src":"39582:14:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6473,"type":"uint256","value":"i"},"id":6480,"name":"Identifier","src":"39598:1:5"}],"id":6481,"name":"UnaryOperation","src":"39598:3:5"}],"id":6482,"name":"ExpressionStatement","src":"39598:3:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory","typeString":"bytes memory"}],"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"encodeBytes","referencedDeclaration":2136,"type":"function (struct Buffer.buffer memory,bytes memory) pure"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6458,"type":"struct Buffer.buffer memory","value":"buf"},"id":6483,"name":"Identifier","src":"39617:3:5"}],"id":6485,"name":"MemberAccess","src":"39617:15:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6447,"type":"bytes memory[] memory","value":"arr"},"id":6486,"name":"Identifier","src":"39633:3:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6473,"type":"uint256","value":"i"},"id":6487,"name":"Identifier","src":"39637:1:5"}],"id":6488,"name":"IndexAccess","src":"39633:6:5"}],"id":6489,"name":"FunctionCall","src":"39617:23:5"}],"id":6490,"name":"ExpressionStatement","src":"39617:23:5"}],"id":6491,"name":"Block","src":"39603:48:5"}],"id":6492,"name":"ForStatement","src":"39565:86:5"},{"children":[{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"endSequence","referencedDeclaration":2194,"type":"function (struct Buffer.buffer memory) pure"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6458,"type":"struct Buffer.buffer memory","value":"buf"},"id":6493,"name":"Identifier","src":"39660:3:5"}],"id":6495,"name":"MemberAccess","src":"39660:15:5"}],"id":6496,"name":"FunctionCall","src":"39660:17:5"}],"id":6497,"name":"ExpressionStatement","src":"39660:17:5"},{"attributes":{"functionReturnParameters":6451},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"buf","referencedDeclaration":1667,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6458,"type":"struct Buffer.buffer memory","value":"buf"},"id":6498,"name":"Identifier","src":"39694:3:5"}],"id":6499,"name":"MemberAccess","src":"39694:7:5"}],"id":6500,"name":"Return","src":"39687:14:5"}],"id":6501,"name":"Block","src":"39434:274:5"}],"id":6502,"name":"FunctionDefinition","src":"39374:334:5"},{"attributes":{"constant":false,"name":"oraclize_network_name","scope":7573,"stateVariable":true,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":6503,"name":"ElementaryTypeName","src":"39714:6:5"}],"id":6504,"name":"VariableDeclaration","src":"39714:28:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"oraclize_setNetworkName","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_network_name","scope":6514,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":6505,"name":"ElementaryTypeName","src":"39781:6:5"}],"id":6506,"name":"VariableDeclaration","src":"39781:20:5"}],"id":6507,"name":"ParameterList","src":"39780:22:5"},{"attributes":{"parameters":[null]},"children":[],"id":6508,"name":"ParameterList","src":"39812:0:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6504,"type":"string storage ref","value":"oraclize_network_name"},"id":6509,"name":"Identifier","src":"39822:21:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6506,"type":"string memory","value":"_network_name"},"id":6510,"name":"Identifier","src":"39846:13:5"}],"id":6511,"name":"Assignment","src":"39822:37:5"}],"id":6512,"name":"ExpressionStatement","src":"39822:37:5"}],"id":6513,"name":"Block","src":"39812:54:5"}],"id":6514,"name":"FunctionDefinition","src":"39748:118:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"oraclize_getNetworkName","payable":false,"scope":7573,"stateMutability":"view","superFunction":null,"visibility":"internal"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":6515,"name":"ParameterList","src":"39904:2:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":6522,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":6516,"name":"ElementaryTypeName","src":"39930:6:5"}],"id":6517,"name":"VariableDeclaration","src":"39930:6:5"}],"id":6518,"name":"ParameterList","src":"39929:8:5"},{"children":[{"attributes":{"functionReturnParameters":6518},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6504,"type":"string storage ref","value":"oraclize_network_name"},"id":6519,"name":"Identifier","src":"39955:21:5"}],"id":6520,"name":"Return","src":"39948:28:5"}],"id":6521,"name":"Block","src":"39938:45:5"}],"id":6522,"name":"FunctionDefinition","src":"39872:111:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"oraclize_newRandomDSQuery","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_delay","scope":6658,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":6523,"name":"ElementaryTypeName","src":"40024:4:5"}],"id":6524,"name":"VariableDeclaration","src":"40024:11:5"},{"attributes":{"constant":false,"name":"_nbytes","scope":6658,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":6525,"name":"ElementaryTypeName","src":"40037:4:5"}],"id":6526,"name":"VariableDeclaration","src":"40037:12:5"},{"attributes":{"constant":false,"name":"_customGasLimit","scope":6658,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":6527,"name":"ElementaryTypeName","src":"40051:4:5"}],"id":6528,"name":"VariableDeclaration","src":"40051:20:5"}],"id":6529,"name":"ParameterList","src":"40023:49:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":6658,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":6530,"name":"ElementaryTypeName","src":"40091:7:5"}],"id":6531,"name":"VariableDeclaration","src":"40091:7:5"}],"id":6532,"name":"ParameterList","src":"40090:9:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"overloadedDeclarations":[12061,12062],"referencedDeclaration":12061,"type":"function (bool) pure","value":"require"},"id":6533,"name":"Identifier","src":"40109:7:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&&","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6526,"type":"uint256","value":"_nbytes"},"id":6534,"name":"Identifier","src":"40118:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":6535,"name":"Literal","src":"40128:1:5"}],"id":6536,"name":"BinaryOperation","src":"40118:11:5"}],"id":6537,"name":"TupleExpression","src":"40117:13:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6526,"type":"uint256","value":"_nbytes"},"id":6538,"name":"Identifier","src":"40135:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":6539,"name":"Literal","src":"40146:2:5"}],"id":6540,"name":"BinaryOperation","src":"40135:13:5"}],"id":6541,"name":"TupleExpression","src":"40134:15:5"}],"id":6542,"name":"BinaryOperation","src":"40117:32:5"}],"id":6543,"name":"FunctionCall","src":"40109:41:5"}],"id":6544,"name":"ExpressionStatement","src":"40109:41:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6524,"type":"uint256","value":"_delay"},"id":6545,"name":"Identifier","src":"40214:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3130","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 10","value":"10"},"id":6546,"name":"Literal","src":"40224:2:5"}],"id":6547,"name":"Assignment","src":"40214:12:5"}],"id":6548,"name":"ExpressionStatement","src":"40214:12:5"},{"attributes":{"assignments":[6550]},"children":[{"attributes":{"constant":false,"name":"nbytes","scope":6658,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":6549,"name":"ElementaryTypeName","src":"40236:5:5"}],"id":6550,"name":"VariableDeclaration","src":"40236:19:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (bytes memory)"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":6551,"name":"ElementaryTypeName","src":"40262:5:5"}],"id":6552,"name":"NewExpression","src":"40258:9:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":6553,"name":"Literal","src":"40268:1:5"}],"id":6554,"name":"FunctionCall","src":"40258:12:5"}],"id":6555,"name":"VariableDeclarationStatement","src":"40236:34:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6550,"type":"bytes memory","value":"nbytes"},"id":6556,"name":"Identifier","src":"40280:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":6557,"name":"Literal","src":"40287:1:5"}],"id":6558,"name":"IndexAccess","src":"40280:9:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes1","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes1)","value":"byte"},"id":6559,"name":"ElementaryTypeNameExpression","src":"40292:4:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6526,"type":"uint256","value":"_nbytes"},"id":6560,"name":"Identifier","src":"40297:7:5"}],"id":6561,"name":"FunctionCall","src":"40292:13:5"}],"id":6562,"name":"Assignment","src":"40280:25:5"}],"id":6563,"name":"ExpressionStatement","src":"40280:25:5"},{"attributes":{"assignments":[6565]},"children":[{"attributes":{"constant":false,"name":"unonce","scope":6658,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":6564,"name":"ElementaryTypeName","src":"40315:5:5"}],"id":6565,"name":"VariableDeclaration","src":"40315:19:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (bytes memory)"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":6566,"name":"ElementaryTypeName","src":"40341:5:5"}],"id":6567,"name":"NewExpression","src":"40337:9:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":6568,"name":"Literal","src":"40347:2:5"}],"id":6569,"name":"FunctionCall","src":"40337:13:5"}],"id":6570,"name":"VariableDeclarationStatement","src":"40315:35:5"},{"attributes":{"assignments":[6572]},"children":[{"attributes":{"constant":false,"name":"sessionKeyHash","scope":6658,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":6571,"name":"ElementaryTypeName","src":"40360:5:5"}],"id":6572,"name":"VariableDeclaration","src":"40360:27:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (bytes memory)"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":6573,"name":"ElementaryTypeName","src":"40394:5:5"}],"id":6574,"name":"NewExpression","src":"40390:9:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":6575,"name":"Literal","src":"40400:2:5"}],"id":6576,"name":"FunctionCall","src":"40390:13:5"}],"id":6577,"name":"VariableDeclarationStatement","src":"40360:43:5"},{"attributes":{"assignments":[6579]},"children":[{"attributes":{"constant":false,"name":"sessionKeyHash_bytes32","scope":6658,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":6578,"name":"ElementaryTypeName","src":"40413:7:5"}],"id":6579,"name":"VariableDeclaration","src":"40413:30:5"},{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"overloadedDeclarations":[null],"referencedDeclaration":5572,"type":"function () returns (bytes32)","value":"oraclize_randomDS_getSessionPubKeyHash"},"id":6580,"name":"Identifier","src":"40446:38:5"}],"id":6581,"name":"FunctionCall","src":"40446:40:5"}],"id":6582,"name":"VariableDeclarationStatement","src":"40413:73:5"},{"attributes":{"externalReferences":[{"unonce":{"declaration":6565,"isOffset":false,"isSlot":false,"src":"40526:6:5","valueSize":1}},{"sessionKeyHash":{"declaration":6572,"isOffset":false,"isSlot":false,"src":"40902:14:5","valueSize":1}},{"unonce":{"declaration":6565,"isOffset":false,"isSlot":false,"src":"40765:6:5","valueSize":1}},{"sessionKeyHash_bytes32":{"declaration":6579,"isOffset":false,"isSlot":false,"src":"40925:22:5","valueSize":1}},{"sessionKeyHash":{"declaration":6572,"isOffset":false,"isSlot":false,"src":"40857:14:5","valueSize":1}}],"operations":"{\n mstore(unonce, 0x20)\n mstore(add(unonce, 0x20), xor(blockhash(sub(number(), 1)), xor(coinbase(), timestamp())))\n mstore(sessionKeyHash, 0x20)\n mstore(add(sessionKeyHash, 0x20), sessionKeyHash_bytes32)\n}"},"children":[],"id":6583,"name":"InlineAssembly","src":"40496:476:5"},{"attributes":{"assignments":[6585]},"children":[{"attributes":{"constant":false,"name":"delay","scope":6658,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":6584,"name":"ElementaryTypeName","src":"40967:5:5"}],"id":6585,"name":"VariableDeclaration","src":"40967:18:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (bytes memory)"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":6586,"name":"ElementaryTypeName","src":"40992:5:5"}],"id":6587,"name":"NewExpression","src":"40988:9:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":6588,"name":"Literal","src":"40998:2:5"}],"id":6589,"name":"FunctionCall","src":"40988:13:5"}],"id":6590,"name":"VariableDeclarationStatement","src":"40967:34:5"},{"attributes":{"externalReferences":[{"_delay":{"declaration":6524,"isOffset":false,"isSlot":false,"src":"41059:6:5","valueSize":1}},{"delay":{"declaration":6585,"isOffset":false,"isSlot":false,"src":"41045:5:5","valueSize":1}}],"operations":"{\n mstore(add(delay, 0x20), _delay)\n}"},"children":[],"id":6591,"name":"InlineAssembly","src":"41011:80:5"},{"attributes":{"assignments":[6593]},"children":[{"attributes":{"constant":false,"name":"delay_bytes8","scope":6658,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":6592,"name":"ElementaryTypeName","src":"41086:5:5"}],"id":6593,"name":"VariableDeclaration","src":"41086:25:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (bytes memory)"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":6594,"name":"ElementaryTypeName","src":"41118:5:5"}],"id":6595,"name":"NewExpression","src":"41114:9:5"},{"attributes":{"argumentTypes":null,"hexvalue":"38","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 8","value":"8"},"id":6596,"name":"Literal","src":"41124:1:5"}],"id":6597,"name":"FunctionCall","src":"41114:12:5"}],"id":6598,"name":"VariableDeclarationStatement","src":"41086:40:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_24_by_1","typeString":"int_const 24"},{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"overloadedDeclarations":[null],"referencedDeclaration":7482,"type":"function (bytes memory,uint256,uint256,bytes memory,uint256) pure returns (bytes memory)","value":"copyBytes"},"id":6599,"name":"Identifier","src":"41136:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6585,"type":"bytes memory","value":"delay"},"id":6600,"name":"Identifier","src":"41146:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3234","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 24","value":"24"},"id":6601,"name":"Literal","src":"41153:2:5"},{"attributes":{"argumentTypes":null,"hexvalue":"38","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 8","value":"8"},"id":6602,"name":"Literal","src":"41157:1:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6593,"type":"bytes memory","value":"delay_bytes8"},"id":6603,"name":"Identifier","src":"41160:12:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":6604,"name":"Literal","src":"41174:1:5"}],"id":6605,"name":"FunctionCall","src":"41136:40:5"}],"id":6606,"name":"ExpressionStatement","src":"41136:40:5"},{"attributes":{"assignments":[6611]},"children":[{"attributes":{"constant":false,"name":"args","scope":6658,"stateVariable":false,"storageLocation":"memory","type":"bytes[4]","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"bytes[4]"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":6609,"name":"ElementaryTypeName","src":"41187:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"subdenomination":null,"token":"number","type":null,"value":"4"},"id":6608,"name":"Literal","src":"41193:1:5"}],"id":6610,"name":"ArrayTypeName","src":"41187:8:5"}],"id":6611,"name":"VariableDeclaration","src":"41187:20:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":true,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bytes memory[4] memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6565,"type":"bytes memory","value":"unonce"},"id":6612,"name":"Identifier","src":"41211:6:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6550,"type":"bytes memory","value":"nbytes"},"id":6613,"name":"Identifier","src":"41219:6:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6572,"type":"bytes memory","value":"sessionKeyHash"},"id":6614,"name":"Identifier","src":"41227:14:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6585,"type":"bytes memory","value":"delay"},"id":6615,"name":"Identifier","src":"41243:5:5"}],"id":6616,"name":"TupleExpression","src":"41210:39:5"}],"id":6617,"name":"VariableDeclarationStatement","src":"41187:62:5"},{"attributes":{"assignments":[6619]},"children":[{"attributes":{"constant":false,"name":"queryId","scope":6658,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":6618,"name":"ElementaryTypeName","src":"41259:7:5"}],"id":6619,"name":"VariableDeclaration","src":"41259:15:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a4896a3f93bf4bf58378e579f3cf193bb4af1022af7d2089f37d8bae7157b85f","typeString":"literal_string \"random\""},{"typeIdentifier":"t_array$_t_bytes_memory_$4_memory_ptr","typeString":"bytes memory[4] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[2566,2608,2654,2698,2741,2786,2835,2882,2929,2978,3031,3082,3119,3159,3202,3242,3287,3335,3386,3434,3487,3543,3602,3658,3719,3783,3850,3914,3983,4055,4130,4202,4249,4298,4351,4402,4439,4479,4522,4562,4607,4655,4706,4754,4807,4863,4922,4978,5039,5103,5170,5234,5303,5375,5450,5522],"referencedDeclaration":5234,"type":"function (string memory,bytes memory[4] memory,uint256) returns (bytes32)","value":"oraclize_query"},"id":6620,"name":"Identifier","src":"41277:14:5"},{"attributes":{"argumentTypes":null,"hexvalue":"72616e646f6d","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"random\"","value":"random"},"id":6621,"name":"Literal","src":"41292:8:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6611,"type":"bytes memory[4] memory","value":"args"},"id":6622,"name":"Identifier","src":"41302:4:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6528,"type":"uint256","value":"_customGasLimit"},"id":6623,"name":"Identifier","src":"41308:15:5"}],"id":6624,"name":"FunctionCall","src":"41277:47:5"}],"id":6625,"name":"VariableDeclarationStatement","src":"41259:65:5"},{"attributes":{"assignments":[6627]},"children":[{"attributes":{"constant":false,"name":"delay_bytes8_left","scope":6658,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":6626,"name":"ElementaryTypeName","src":"41335:5:5"}],"id":6627,"name":"VariableDeclaration","src":"41335:30:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (bytes memory)"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":6628,"name":"ElementaryTypeName","src":"41372:5:5"}],"id":6629,"name":"NewExpression","src":"41368:9:5"},{"attributes":{"argumentTypes":null,"hexvalue":"38","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 8","value":"8"},"id":6630,"name":"Literal","src":"41378:1:5"}],"id":6631,"name":"FunctionCall","src":"41368:12:5"}],"id":6632,"name":"VariableDeclarationStatement","src":"41335:45:5"},{"attributes":{"externalReferences":[{"delay_bytes8":{"declaration":6593,"isOffset":false,"isSlot":false,"src":"41433:12:5","valueSize":1}},{"delay_bytes8_left":{"declaration":6627,"isOffset":false,"isSlot":false,"src":"41478:17:5","valueSize":1}},{"delay_bytes8_left":{"declaration":6627,"isOffset":false,"isSlot":false,"src":"41603:17:5","valueSize":1}},{"delay_bytes8_left":{"declaration":6627,"isOffset":false,"isSlot":false,"src":"41726:17:5","valueSize":1}},{"delay_bytes8_left":{"declaration":6627,"isOffset":false,"isSlot":false,"src":"41966:17:5","valueSize":1}},{"delay_bytes8_left":{"declaration":6627,"isOffset":false,"isSlot":false,"src":"41847:17:5","valueSize":1}},{"delay_bytes8_left":{"declaration":6627,"isOffset":false,"isSlot":false,"src":"42083:17:5","valueSize":1}},{"delay_bytes8_left":{"declaration":6627,"isOffset":false,"isSlot":false,"src":"42198:17:5","valueSize":1}},{"delay_bytes8_left":{"declaration":6627,"isOffset":false,"isSlot":false,"src":"42311:17:5","valueSize":1}}],"operations":"{\n let x := mload(add(delay_bytes8, 0x20))\n mstore8(add(delay_bytes8_left, 0x27), div(x, 0x100000000000000000000000000000000000000000000000000000000000000))\n mstore8(add(delay_bytes8_left, 0x26), div(x, 0x1000000000000000000000000000000000000000000000000000000000000))\n mstore8(add(delay_bytes8_left, 0x25), div(x, 0x10000000000000000000000000000000000000000000000000000000000))\n mstore8(add(delay_bytes8_left, 0x24), div(x, 0x100000000000000000000000000000000000000000000000000000000))\n mstore8(add(delay_bytes8_left, 0x23), div(x, 0x1000000000000000000000000000000000000000000000000000000))\n mstore8(add(delay_bytes8_left, 0x22), div(x, 0x10000000000000000000000000000000000000000000000000000))\n mstore8(add(delay_bytes8_left, 0x21), div(x, 0x100000000000000000000000000000000000000000000000000))\n mstore8(add(delay_bytes8_left, 0x20), div(x, 0x1000000000000000000000000000000000000000000000000))\n}"},"children":[],"id":6633,"name":"InlineAssembly","src":"41391:1058:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[null],"referencedDeclaration":6672,"type":"function (bytes32,bytes32)","value":"oraclize_randomDS_setCommitment"},"id":6634,"name":"Identifier","src":"42418:31:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6619,"type":"bytes32","value":"queryId"},"id":6635,"name":"Identifier","src":"42450:7:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"overloadedDeclarations":[null],"referencedDeclaration":12052,"type":"function () pure returns (bytes32)","value":"keccak256"},"id":6636,"name":"Identifier","src":"42459:9:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory","typeString":"bytes memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory","typeString":"bytes memory"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"member_name":"encodePacked","referencedDeclaration":null,"type":"function () pure returns (bytes memory)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":12045,"type":"abi","value":"abi"},"id":6637,"name":"Identifier","src":"42469:3:5"}],"id":6638,"name":"MemberAccess","src":"42469:16:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6627,"type":"bytes memory","value":"delay_bytes8_left"},"id":6639,"name":"Identifier","src":"42486:17:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6611,"type":"bytes memory[4] memory","value":"args"},"id":6640,"name":"Identifier","src":"42505:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":6641,"name":"Literal","src":"42510:1:5"}],"id":6642,"name":"IndexAccess","src":"42505:7:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory","typeString":"bytes memory"}],"overloadedDeclarations":[null],"referencedDeclaration":12067,"type":"function () pure returns (bytes32)","value":"sha256"},"id":6643,"name":"Identifier","src":"42514:6:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6611,"type":"bytes memory[4] memory","value":"args"},"id":6644,"name":"Identifier","src":"42521:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":6645,"name":"Literal","src":"42526:1:5"}],"id":6646,"name":"IndexAccess","src":"42521:7:5"}],"id":6647,"name":"FunctionCall","src":"42514:15:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6611,"type":"bytes memory[4] memory","value":"args"},"id":6648,"name":"Identifier","src":"42531:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":6649,"name":"Literal","src":"42536:1:5"}],"id":6650,"name":"IndexAccess","src":"42531:7:5"}],"id":6651,"name":"FunctionCall","src":"42469:70:5"}],"id":6652,"name":"FunctionCall","src":"42459:81:5"}],"id":6653,"name":"FunctionCall","src":"42418:123:5"}],"id":6654,"name":"ExpressionStatement","src":"42418:123:5"},{"attributes":{"functionReturnParameters":6532},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6619,"type":"bytes32","value":"queryId"},"id":6655,"name":"Identifier","src":"42558:7:5"}],"id":6656,"name":"Return","src":"42551:14:5"}],"id":6657,"name":"Block","src":"40099:2473:5"}],"id":6658,"name":"FunctionDefinition","src":"39989:2583:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"oraclize_randomDS_setCommitment","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"queryId","scope":6672,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":6659,"name":"ElementaryTypeName","src":"42619:7:5"}],"id":6660,"name":"VariableDeclaration","src":"42619:15:5"},{"attributes":{"constant":false,"name":"commitment","scope":6672,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":6661,"name":"ElementaryTypeName","src":"42636:7:5"}],"id":6662,"name":"VariableDeclaration","src":"42636:18:5"}],"id":6663,"name":"ParameterList","src":"42618:37:5"},{"attributes":{"parameters":[null]},"children":[],"id":6664,"name":"ParameterList","src":"42665:0:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6676,"type":"mapping(bytes32 => bytes32)","value":"oraclize_randomDS_args"},"id":6665,"name":"Identifier","src":"42675:22:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6660,"type":"bytes32","value":"queryId"},"id":6666,"name":"Identifier","src":"42698:7:5"}],"id":6667,"name":"IndexAccess","src":"42675:31:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6662,"type":"bytes32","value":"commitment"},"id":6668,"name":"Identifier","src":"42709:10:5"}],"id":6669,"name":"Assignment","src":"42675:44:5"}],"id":6670,"name":"ExpressionStatement","src":"42675:44:5"}],"id":6671,"name":"Block","src":"42665:61:5"}],"id":6672,"name":"FunctionDefinition","src":"42578:148:5"},{"attributes":{"constant":false,"name":"oraclize_randomDS_args","scope":7573,"stateVariable":true,"storageLocation":"default","type":"mapping(bytes32 => bytes32)","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"mapping(bytes32 => bytes32)"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":6673,"name":"ElementaryTypeName","src":"42740:7:5"},{"attributes":{"name":"bytes32","type":"bytes32"},"id":6674,"name":"ElementaryTypeName","src":"42749:7:5"}],"id":6675,"name":"Mapping","src":"42732:25:5"}],"id":6676,"name":"VariableDeclaration","src":"42732:48:5"},{"attributes":{"constant":false,"name":"oraclize_randomDS_sessionKeysHashVerified","scope":7573,"stateVariable":true,"storageLocation":"default","type":"mapping(bytes32 => bool)","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"mapping(bytes32 => bool)"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":6677,"name":"ElementaryTypeName","src":"42794:7:5"},{"attributes":{"name":"bool","type":"bool"},"id":6678,"name":"ElementaryTypeName","src":"42803:4:5"}],"id":6679,"name":"Mapping","src":"42786:22:5"}],"id":6680,"name":"VariableDeclaration","src":"42786:64:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"verifySig","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"tosignh","scope":6811,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":6681,"name":"ElementaryTypeName","src":"42876:7:5"}],"id":6682,"name":"VariableDeclaration","src":"42876:15:5"},{"attributes":{"constant":false,"name":"dersig","scope":6811,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":6683,"name":"ElementaryTypeName","src":"42893:5:5"}],"id":6684,"name":"VariableDeclaration","src":"42893:12:5"},{"attributes":{"constant":false,"name":"pubkey","scope":6811,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":6685,"name":"ElementaryTypeName","src":"42907:5:5"}],"id":6686,"name":"VariableDeclaration","src":"42907:12:5"}],"id":6687,"name":"ParameterList","src":"42875:45:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":6811,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":6688,"name":"ElementaryTypeName","src":"42939:4:5"}],"id":6689,"name":"VariableDeclaration","src":"42939:4:5"}],"id":6690,"name":"ParameterList","src":"42938:6:5"},{"children":[{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"sigok","scope":6811,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":6691,"name":"ElementaryTypeName","src":"42954:4:5"}],"id":6692,"name":"VariableDeclaration","src":"42954:10:5"}],"id":6693,"name":"VariableDeclarationStatement","src":"42954:10:5"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"signer","scope":6811,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":6694,"name":"ElementaryTypeName","src":"42974:7:5"}],"id":6695,"name":"VariableDeclaration","src":"42974:14:5"}],"id":6696,"name":"VariableDeclarationStatement","src":"42974:14:5"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"sigr","scope":6811,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":6697,"name":"ElementaryTypeName","src":"42999:7:5"}],"id":6698,"name":"VariableDeclaration","src":"42999:12:5"}],"id":6699,"name":"VariableDeclarationStatement","src":"42999:12:5"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"sigs","scope":6811,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":6700,"name":"ElementaryTypeName","src":"43021:7:5"}],"id":6701,"name":"VariableDeclaration","src":"43021:12:5"}],"id":6702,"name":"VariableDeclarationStatement","src":"43021:12:5"},{"attributes":{"assignments":[6704]},"children":[{"attributes":{"constant":false,"name":"sigr_","scope":6811,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":6703,"name":"ElementaryTypeName","src":"43044:5:5"}],"id":6704,"name":"VariableDeclaration","src":"43044:18:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (bytes memory)"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":6705,"name":"ElementaryTypeName","src":"43069:5:5"}],"id":6706,"name":"NewExpression","src":"43065:9:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":6707,"name":"Literal","src":"43075:2:5"}],"id":6708,"name":"FunctionCall","src":"43065:13:5"}],"id":6709,"name":"VariableDeclarationStatement","src":"43044:34:5"},{"attributes":{"assignments":[6711]},"children":[{"attributes":{"constant":false,"name":"offset","scope":6811,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":6710,"name":"ElementaryTypeName","src":"43088:4:5"}],"id":6711,"name":"VariableDeclaration","src":"43088:11:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":6712,"name":"Literal","src":"43102:1:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint"},"id":6713,"name":"ElementaryTypeNameExpression","src":"43105:4:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6684,"type":"bytes memory","value":"dersig"},"id":6714,"name":"Identifier","src":"43110:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":6715,"name":"Literal","src":"43117:1:5"}],"id":6716,"name":"IndexAccess","src":"43110:9:5"}],"id":6717,"name":"FunctionCall","src":"43105:15:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30783230","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"0x20"},"id":6718,"name":"Literal","src":"43123:4:5"}],"id":6719,"name":"BinaryOperation","src":"43105:22:5"}],"id":6720,"name":"TupleExpression","src":"43104:24:5"}],"id":6721,"name":"BinaryOperation","src":"43102:26:5"}],"id":6722,"name":"VariableDeclarationStatement","src":"43088:40:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6704,"type":"bytes memory","value":"sigr_"},"id":6723,"name":"Identifier","src":"43138:5:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"overloadedDeclarations":[null],"referencedDeclaration":7482,"type":"function (bytes memory,uint256,uint256,bytes memory,uint256) pure returns (bytes memory)","value":"copyBytes"},"id":6724,"name":"Identifier","src":"43146:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6684,"type":"bytes memory","value":"dersig"},"id":6725,"name":"Identifier","src":"43156:6:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6711,"type":"uint256","value":"offset"},"id":6726,"name":"Identifier","src":"43164:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":6727,"name":"Literal","src":"43172:2:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6704,"type":"bytes memory","value":"sigr_"},"id":6728,"name":"Identifier","src":"43176:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":6729,"name":"Literal","src":"43183:1:5"}],"id":6730,"name":"FunctionCall","src":"43146:39:5"}],"id":6731,"name":"Assignment","src":"43138:47:5"}],"id":6732,"name":"ExpressionStatement","src":"43138:47:5"},{"attributes":{"assignments":[6734]},"children":[{"attributes":{"constant":false,"name":"sigs_","scope":6811,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":6733,"name":"ElementaryTypeName","src":"43195:5:5"}],"id":6734,"name":"VariableDeclaration","src":"43195:18:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (bytes memory)"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":6735,"name":"ElementaryTypeName","src":"43220:5:5"}],"id":6736,"name":"NewExpression","src":"43216:9:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":6737,"name":"Literal","src":"43226:2:5"}],"id":6738,"name":"FunctionCall","src":"43216:13:5"}],"id":6739,"name":"VariableDeclarationStatement","src":"43195:34:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6711,"type":"uint256","value":"offset"},"id":6740,"name":"Identifier","src":"43239:6:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_34_by_1","typeString":"int_const 34"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"+","type":"int_const 34"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":6741,"name":"Literal","src":"43249:2:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":6742,"name":"Literal","src":"43254:1:5"}],"id":6743,"name":"BinaryOperation","src":"43249:6:5"}],"id":6744,"name":"Assignment","src":"43239:16:5"}],"id":6745,"name":"ExpressionStatement","src":"43239:16:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6734,"type":"bytes memory","value":"sigs_"},"id":6746,"name":"Identifier","src":"43265:5:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"overloadedDeclarations":[null],"referencedDeclaration":7482,"type":"function (bytes memory,uint256,uint256,bytes memory,uint256) pure returns (bytes memory)","value":"copyBytes"},"id":6747,"name":"Identifier","src":"43273:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6684,"type":"bytes memory","value":"dersig"},"id":6748,"name":"Identifier","src":"43283:6:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6711,"type":"uint256","value":"offset"},"id":6749,"name":"Identifier","src":"43291:6:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint"},"id":6750,"name":"ElementaryTypeNameExpression","src":"43299:4:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6684,"type":"bytes memory","value":"dersig"},"id":6751,"name":"Identifier","src":"43304:6:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6711,"type":"uint256","value":"offset"},"id":6752,"name":"Identifier","src":"43311:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":6753,"name":"Literal","src":"43318:1:5"}],"id":6754,"name":"BinaryOperation","src":"43311:8:5"}],"id":6755,"name":"IndexAccess","src":"43304:16:5"}],"id":6756,"name":"FunctionCall","src":"43299:22:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30783230","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"0x20"},"id":6757,"name":"Literal","src":"43324:4:5"}],"id":6758,"name":"BinaryOperation","src":"43299:29:5"}],"id":6759,"name":"TupleExpression","src":"43298:31:5"}],"id":6760,"name":"BinaryOperation","src":"43291:38:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":6761,"name":"Literal","src":"43331:2:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6734,"type":"bytes memory","value":"sigs_"},"id":6762,"name":"Identifier","src":"43335:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":6763,"name":"Literal","src":"43342:1:5"}],"id":6764,"name":"FunctionCall","src":"43273:71:5"}],"id":6765,"name":"Assignment","src":"43265:79:5"}],"id":6766,"name":"ExpressionStatement","src":"43265:79:5"},{"attributes":{"externalReferences":[{"sigr":{"declaration":6698,"isOffset":false,"isSlot":false,"src":"43378:4:5","valueSize":1}},{"sigr_":{"declaration":6704,"isOffset":false,"isSlot":false,"src":"43396:5:5","valueSize":1}},{"sigs":{"declaration":6701,"isOffset":false,"isSlot":false,"src":"43420:4:5","valueSize":1}},{"sigs_":{"declaration":6734,"isOffset":false,"isSlot":false,"src":"43438:5:5","valueSize":1}}],"operations":"{\n sigr := mload(add(sigr_, 32))\n sigs := mload(add(sigs_, 32))\n}"},"children":[],"id":6767,"name":"InlineAssembly","src":"43355:116:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"tuple()"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"tuple(bool,address)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6692,"type":"bool","value":"sigok"},"id":6768,"name":"Identifier","src":"43471:5:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6695,"type":"address","value":"signer"},"id":6769,"name":"Identifier","src":"43478:6:5"}],"id":6770,"name":"TupleExpression","src":"43470:15:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple(bool,address)","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_rational_27_by_1","typeString":"int_const 27"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[null],"referencedDeclaration":7509,"type":"function (bytes32,uint8,bytes32,bytes32) returns (bool,address)","value":"safer_ecrecover"},"id":6771,"name":"Identifier","src":"43488:15:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6682,"type":"bytes32","value":"tosignh"},"id":6772,"name":"Identifier","src":"43504:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3237","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 27","value":"27"},"id":6773,"name":"Literal","src":"43513:2:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6698,"type":"bytes32","value":"sigr"},"id":6774,"name":"Identifier","src":"43517:4:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6701,"type":"bytes32","value":"sigs"},"id":6775,"name":"Identifier","src":"43523:4:5"}],"id":6776,"name":"FunctionCall","src":"43488:40:5"}],"id":6777,"name":"Assignment","src":"43470:58:5"}],"id":6778,"name":"ExpressionStatement","src":"43470:58:5"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":6779,"name":"ElementaryTypeNameExpression","src":"43542:7:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"overloadedDeclarations":[null],"referencedDeclaration":12052,"type":"function () pure returns (bytes32)","value":"keccak256"},"id":6780,"name":"Identifier","src":"43550:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6686,"type":"bytes memory","value":"pubkey"},"id":6781,"name":"Identifier","src":"43560:6:5"}],"id":6782,"name":"FunctionCall","src":"43550:17:5"}],"id":6783,"name":"FunctionCall","src":"43542:26:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6695,"type":"address","value":"signer"},"id":6784,"name":"Identifier","src":"43572:6:5"}],"id":6785,"name":"BinaryOperation","src":"43542:36:5"},{"attributes":{"functionReturnParameters":6690},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":6786,"name":"Literal","src":"43587:4:5"}],"id":6787,"name":"Return","src":"43580:11:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"tuple()"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"tuple(bool,address)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6692,"type":"bool","value":"sigok"},"id":6788,"name":"Identifier","src":"43621:5:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6695,"type":"address","value":"signer"},"id":6789,"name":"Identifier","src":"43628:6:5"}],"id":6790,"name":"TupleExpression","src":"43620:15:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple(bool,address)","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[null],"referencedDeclaration":7509,"type":"function (bytes32,uint8,bytes32,bytes32) returns (bool,address)","value":"safer_ecrecover"},"id":6791,"name":"Identifier","src":"43638:15:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6682,"type":"bytes32","value":"tosignh"},"id":6792,"name":"Identifier","src":"43654:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3238","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 28","value":"28"},"id":6793,"name":"Literal","src":"43663:2:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6698,"type":"bytes32","value":"sigr"},"id":6794,"name":"Identifier","src":"43667:4:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6701,"type":"bytes32","value":"sigs"},"id":6795,"name":"Identifier","src":"43673:4:5"}],"id":6796,"name":"FunctionCall","src":"43638:40:5"}],"id":6797,"name":"Assignment","src":"43620:58:5"}],"id":6798,"name":"ExpressionStatement","src":"43620:58:5"},{"attributes":{"functionReturnParameters":6690},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":6799,"name":"ElementaryTypeNameExpression","src":"43700:7:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"overloadedDeclarations":[null],"referencedDeclaration":12052,"type":"function () pure returns (bytes32)","value":"keccak256"},"id":6800,"name":"Identifier","src":"43708:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6686,"type":"bytes memory","value":"pubkey"},"id":6801,"name":"Identifier","src":"43718:6:5"}],"id":6802,"name":"FunctionCall","src":"43708:17:5"}],"id":6803,"name":"FunctionCall","src":"43700:26:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6695,"type":"address","value":"signer"},"id":6804,"name":"Identifier","src":"43730:6:5"}],"id":6805,"name":"BinaryOperation","src":"43700:36:5"}],"id":6806,"name":"TupleExpression","src":"43699:38:5"}],"id":6807,"name":"Return","src":"43692:45:5"}],"id":6808,"name":"Block","src":"43606:142:5"}],"id":6809,"name":"IfStatement","src":"43538:210:5"}],"id":6810,"name":"Block","src":"42944:810:5"}],"id":6811,"name":"FunctionDefinition","src":"42857:897:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"oraclize_randomDS_proofVerify__sessionKeyValidity","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"proof","scope":6991,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":6812,"name":"ElementaryTypeName","src":"43819:5:5"}],"id":6813,"name":"VariableDeclaration","src":"43819:11:5"},{"attributes":{"constant":false,"name":"sig2offset","scope":6991,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":6814,"name":"ElementaryTypeName","src":"43832:4:5"}],"id":6815,"name":"VariableDeclaration","src":"43832:15:5"}],"id":6816,"name":"ParameterList","src":"43818:30:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":6991,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":6817,"name":"ElementaryTypeName","src":"43867:4:5"}],"id":6818,"name":"VariableDeclaration","src":"43867:4:5"}],"id":6819,"name":"ParameterList","src":"43866:6:5"},{"children":[{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"sigok","scope":6991,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":6820,"name":"ElementaryTypeName","src":"43883:4:5"}],"id":6821,"name":"VariableDeclaration","src":"43883:10:5"}],"id":6822,"name":"VariableDeclarationStatement","src":"43883:10:5"},{"attributes":{"assignments":[6824]},"children":[{"attributes":{"constant":false,"name":"sig2","scope":6991,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":6823,"name":"ElementaryTypeName","src":"44029:5:5"}],"id":6824,"name":"VariableDeclaration","src":"44029:17:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (bytes memory)"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":6825,"name":"ElementaryTypeName","src":"44053:5:5"}],"id":6826,"name":"NewExpression","src":"44049:9:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint"},"id":6827,"name":"ElementaryTypeNameExpression","src":"44059:4:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6813,"type":"bytes memory","value":"proof"},"id":6828,"name":"Identifier","src":"44064:5:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6815,"type":"uint256","value":"sig2offset"},"id":6829,"name":"Identifier","src":"44070:10:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":6830,"name":"Literal","src":"44081:1:5"}],"id":6831,"name":"BinaryOperation","src":"44070:12:5"}],"id":6832,"name":"IndexAccess","src":"44064:19:5"}],"id":6833,"name":"FunctionCall","src":"44059:25:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":6834,"name":"Literal","src":"44085:1:5"}],"id":6835,"name":"BinaryOperation","src":"44059:27:5"}],"id":6836,"name":"FunctionCall","src":"44049:38:5"}],"id":6837,"name":"VariableDeclarationStatement","src":"44029:58:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"overloadedDeclarations":[null],"referencedDeclaration":7482,"type":"function (bytes memory,uint256,uint256,bytes memory,uint256) pure returns (bytes memory)","value":"copyBytes"},"id":6838,"name":"Identifier","src":"44097:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6813,"type":"bytes memory","value":"proof"},"id":6839,"name":"Identifier","src":"44107:5:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6815,"type":"uint256","value":"sig2offset"},"id":6840,"name":"Identifier","src":"44114:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6824,"type":"bytes memory","value":"sig2"},"id":6841,"name":"Identifier","src":"44126:4:5"}],"id":6842,"name":"MemberAccess","src":"44126:11:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6824,"type":"bytes memory","value":"sig2"},"id":6843,"name":"Identifier","src":"44139:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":6844,"name":"Literal","src":"44145:1:5"}],"id":6845,"name":"FunctionCall","src":"44097:50:5"}],"id":6846,"name":"ExpressionStatement","src":"44097:50:5"},{"attributes":{"assignments":[6848]},"children":[{"attributes":{"constant":false,"name":"appkey1_pubkey","scope":6991,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":6847,"name":"ElementaryTypeName","src":"44158:5:5"}],"id":6848,"name":"VariableDeclaration","src":"44158:27:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (bytes memory)"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":6849,"name":"ElementaryTypeName","src":"44192:5:5"}],"id":6850,"name":"NewExpression","src":"44188:9:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3634","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 64","value":"64"},"id":6851,"name":"Literal","src":"44198:2:5"}],"id":6852,"name":"FunctionCall","src":"44188:13:5"}],"id":6853,"name":"VariableDeclarationStatement","src":"44158:43:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"overloadedDeclarations":[null],"referencedDeclaration":7482,"type":"function (bytes memory,uint256,uint256,bytes memory,uint256) pure returns (bytes memory)","value":"copyBytes"},"id":6854,"name":"Identifier","src":"44211:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6813,"type":"bytes memory","value":"proof"},"id":6855,"name":"Identifier","src":"44221:5:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"+","type":"int_const 4"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":6856,"name":"Literal","src":"44228:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":6857,"name":"Literal","src":"44230:1:5"}],"id":6858,"name":"BinaryOperation","src":"44228:3:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3634","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 64","value":"64"},"id":6859,"name":"Literal","src":"44233:2:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6848,"type":"bytes memory","value":"appkey1_pubkey"},"id":6860,"name":"Identifier","src":"44237:14:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":6861,"name":"Literal","src":"44253:1:5"}],"id":6862,"name":"FunctionCall","src":"44211:44:5"}],"id":6863,"name":"ExpressionStatement","src":"44211:44:5"},{"attributes":{"assignments":[6865]},"children":[{"attributes":{"constant":false,"name":"tosign2","scope":6991,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":6864,"name":"ElementaryTypeName","src":"44266:5:5"}],"id":6865,"name":"VariableDeclaration","src":"44266:20:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_98_by_1","typeString":"int_const 98"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (bytes memory)"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":6866,"name":"ElementaryTypeName","src":"44293:5:5"}],"id":6867,"name":"NewExpression","src":"44289:9:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_98_by_1","typeString":"int_const 98"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"+","type":"int_const 98"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_66_by_1","typeString":"int_const 66"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"+","type":"int_const 66"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":6868,"name":"Literal","src":"44299:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3635","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 65","value":"65"},"id":6869,"name":"Literal","src":"44301:2:5"}],"id":6870,"name":"BinaryOperation","src":"44299:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":6871,"name":"Literal","src":"44304:2:5"}],"id":6872,"name":"BinaryOperation","src":"44299:7:5"}],"id":6873,"name":"FunctionCall","src":"44289:18:5"}],"id":6874,"name":"VariableDeclarationStatement","src":"44266:41:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6865,"type":"bytes memory","value":"tosign2"},"id":6875,"name":"Identifier","src":"44317:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":6876,"name":"Literal","src":"44325:1:5"}],"id":6877,"name":"IndexAccess","src":"44317:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes1","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes1)","value":"byte"},"id":6878,"name":"ElementaryTypeNameExpression","src":"44330:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":6879,"name":"Literal","src":"44335:1:5"}],"id":6880,"name":"FunctionCall","src":"44330:7:5"}],"id":6881,"name":"Assignment","src":"44317:20:5"}],"id":6882,"name":"ExpressionStatement","src":"44317:20:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_65_by_1","typeString":"int_const 65"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"overloadedDeclarations":[null],"referencedDeclaration":7482,"type":"function (bytes memory,uint256,uint256,bytes memory,uint256) pure returns (bytes memory)","value":"copyBytes"},"id":6883,"name":"Identifier","src":"44354:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6813,"type":"bytes memory","value":"proof"},"id":6884,"name":"Identifier","src":"44364:5:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6815,"type":"uint256","value":"sig2offset"},"id":6885,"name":"Identifier","src":"44371:10:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3635","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 65","value":"65"},"id":6886,"name":"Literal","src":"44382:2:5"}],"id":6887,"name":"BinaryOperation","src":"44371:13:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3635","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 65","value":"65"},"id":6888,"name":"Literal","src":"44386:2:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6865,"type":"bytes memory","value":"tosign2"},"id":6889,"name":"Identifier","src":"44390:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":6890,"name":"Literal","src":"44399:1:5"}],"id":6891,"name":"FunctionCall","src":"44354:47:5"}],"id":6892,"name":"ExpressionStatement","src":"44354:47:5"},{"attributes":{"assignments":[6894]},"children":[{"attributes":{"constant":false,"name":"CODEHASH","scope":6991,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":6893,"name":"ElementaryTypeName","src":"44411:5:5"}],"id":6894,"name":"VariableDeclaration","src":"44411:21:5"},{"attributes":{"argumentTypes":null,"hexvalue":"fd94fa71bc0ba10d39d464d0d8f465efeef0a2764e3887fcc9df41ded20f505c","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string (contains invalid UTF-8 sequence at position 0)","value":null},"id":6895,"name":"Literal","src":"44435:69:5"}],"id":6896,"name":"VariableDeclarationStatement","src":"44411:93:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_66_by_1","typeString":"int_const 66"}],"overloadedDeclarations":[null],"referencedDeclaration":7482,"type":"function (bytes memory,uint256,uint256,bytes memory,uint256) pure returns (bytes memory)","value":"copyBytes"},"id":6897,"name":"Identifier","src":"44514:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6894,"type":"bytes memory","value":"CODEHASH"},"id":6898,"name":"Identifier","src":"44524:8:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":6899,"name":"Literal","src":"44534:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":6900,"name":"Literal","src":"44537:2:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6865,"type":"bytes memory","value":"tosign2"},"id":6901,"name":"Identifier","src":"44541:7:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_66_by_1","typeString":"int_const 66"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"+","type":"int_const 66"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":6902,"name":"Literal","src":"44550:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3635","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 65","value":"65"},"id":6903,"name":"Literal","src":"44552:2:5"}],"id":6904,"name":"BinaryOperation","src":"44550:4:5"}],"id":6905,"name":"FunctionCall","src":"44514:41:5"}],"id":6906,"name":"ExpressionStatement","src":"44514:41:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6821,"type":"bool","value":"sigok"},"id":6907,"name":"Identifier","src":"44565:5:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"overloadedDeclarations":[null],"referencedDeclaration":6811,"type":"function (bytes32,bytes memory,bytes memory) returns (bool)","value":"verifySig"},"id":6908,"name":"Identifier","src":"44573:9:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"overloadedDeclarations":[null],"referencedDeclaration":12067,"type":"function () pure returns (bytes32)","value":"sha256"},"id":6909,"name":"Identifier","src":"44583:6:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6865,"type":"bytes memory","value":"tosign2"},"id":6910,"name":"Identifier","src":"44590:7:5"}],"id":6911,"name":"FunctionCall","src":"44583:15:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6824,"type":"bytes memory","value":"sig2"},"id":6912,"name":"Identifier","src":"44600:4:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6848,"type":"bytes memory","value":"appkey1_pubkey"},"id":6913,"name":"Identifier","src":"44606:14:5"}],"id":6914,"name":"FunctionCall","src":"44573:48:5"}],"id":6915,"name":"Assignment","src":"44565:56:5"}],"id":6916,"name":"ExpressionStatement","src":"44565:56:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6821,"type":"bool","value":"sigok"},"id":6917,"name":"Identifier","src":"44636:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"66616c7365","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"false"},"id":6918,"name":"Literal","src":"44645:5:5"}],"id":6919,"name":"BinaryOperation","src":"44636:14:5"},{"attributes":{"functionReturnParameters":6819},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"66616c7365","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"false"},"id":6920,"name":"Literal","src":"44659:5:5"}],"id":6921,"name":"Return","src":"44652:12:5"}],"id":6922,"name":"IfStatement","src":"44632:32:5"},{"attributes":{"assignments":[6924]},"children":[{"attributes":{"constant":false,"name":"LEDGERKEY","scope":6991,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":6923,"name":"ElementaryTypeName","src":"44752:5:5"}],"id":6924,"name":"VariableDeclaration","src":"44752:22:5"},{"attributes":{"argumentTypes":null,"hexvalue":"7fb956469c5c9b89840d55b43537e66a98dd4811ea0a27224272c2e5622911e8537a2f8e86a46baec82864e98dd01e9ccc2f8bc5dfc9cbe5a91a290498dd96e4","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string (contains invalid UTF-8 sequence at position 1)","value":null},"id":6925,"name":"Literal","src":"44777:133:5"}],"id":6926,"name":"VariableDeclarationStatement","src":"44752:158:5"},{"attributes":{"assignments":[6928]},"children":[{"attributes":{"constant":false,"name":"tosign3","scope":6991,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":6927,"name":"ElementaryTypeName","src":"44921:5:5"}],"id":6928,"name":"VariableDeclaration","src":"44921:20:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_66_by_1","typeString":"int_const 66"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (bytes memory)"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":6929,"name":"ElementaryTypeName","src":"44948:5:5"}],"id":6930,"name":"NewExpression","src":"44944:9:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_66_by_1","typeString":"int_const 66"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"+","type":"int_const 66"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":6931,"name":"Literal","src":"44954:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3635","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 65","value":"65"},"id":6932,"name":"Literal","src":"44956:2:5"}],"id":6933,"name":"BinaryOperation","src":"44954:4:5"}],"id":6934,"name":"FunctionCall","src":"44944:15:5"}],"id":6935,"name":"VariableDeclarationStatement","src":"44921:38:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6928,"type":"bytes memory","value":"tosign3"},"id":6936,"name":"Identifier","src":"44969:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":6937,"name":"Literal","src":"44977:1:5"}],"id":6938,"name":"IndexAccess","src":"44969:10:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30784645","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 254","value":"0xFE"},"id":6939,"name":"Literal","src":"44982:4:5"}],"id":6940,"name":"Assignment","src":"44969:17:5"}],"id":6941,"name":"ExpressionStatement","src":"44969:17:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},{"typeIdentifier":"t_rational_65_by_1","typeString":"int_const 65"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"overloadedDeclarations":[null],"referencedDeclaration":7482,"type":"function (bytes memory,uint256,uint256,bytes memory,uint256) pure returns (bytes memory)","value":"copyBytes"},"id":6942,"name":"Identifier","src":"44996:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6813,"type":"bytes memory","value":"proof"},"id":6943,"name":"Identifier","src":"45006:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":6944,"name":"Literal","src":"45013:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3635","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 65","value":"65"},"id":6945,"name":"Literal","src":"45016:2:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6928,"type":"bytes memory","value":"tosign3"},"id":6946,"name":"Identifier","src":"45020:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":6947,"name":"Literal","src":"45029:1:5"}],"id":6948,"name":"FunctionCall","src":"44996:35:5"}],"id":6949,"name":"ExpressionStatement","src":"44996:35:5"},{"attributes":{"assignments":[6951]},"children":[{"attributes":{"constant":false,"name":"sig3","scope":6991,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":6950,"name":"ElementaryTypeName","src":"45042:5:5"}],"id":6951,"name":"VariableDeclaration","src":"45042:17:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (bytes memory)"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":6952,"name":"ElementaryTypeName","src":"45066:5:5"}],"id":6953,"name":"NewExpression","src":"45062:9:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint"},"id":6954,"name":"ElementaryTypeNameExpression","src":"45072:4:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6813,"type":"bytes memory","value":"proof"},"id":6955,"name":"Identifier","src":"45077:5:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_69_by_1","typeString":"int_const 69"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"+","type":"int_const 69"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_68_by_1","typeString":"int_const 68"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"+","type":"int_const 68"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":6956,"name":"Literal","src":"45083:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3635","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 65","value":"65"},"id":6957,"name":"Literal","src":"45085:2:5"}],"id":6958,"name":"BinaryOperation","src":"45083:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":6959,"name":"Literal","src":"45088:1:5"}],"id":6960,"name":"BinaryOperation","src":"45083:6:5"}],"id":6961,"name":"IndexAccess","src":"45077:13:5"}],"id":6962,"name":"FunctionCall","src":"45072:19:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":6963,"name":"Literal","src":"45092:1:5"}],"id":6964,"name":"BinaryOperation","src":"45072:21:5"}],"id":6965,"name":"FunctionCall","src":"45062:32:5"}],"id":6966,"name":"VariableDeclarationStatement","src":"45042:52:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_68_by_1","typeString":"int_const 68"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"overloadedDeclarations":[null],"referencedDeclaration":7482,"type":"function (bytes memory,uint256,uint256,bytes memory,uint256) pure returns (bytes memory)","value":"copyBytes"},"id":6967,"name":"Identifier","src":"45104:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6813,"type":"bytes memory","value":"proof"},"id":6968,"name":"Identifier","src":"45114:5:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_68_by_1","typeString":"int_const 68"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"+","type":"int_const 68"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":6969,"name":"Literal","src":"45121:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3635","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 65","value":"65"},"id":6970,"name":"Literal","src":"45123:2:5"}],"id":6971,"name":"BinaryOperation","src":"45121:4:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6951,"type":"bytes memory","value":"sig3"},"id":6972,"name":"Identifier","src":"45127:4:5"}],"id":6973,"name":"MemberAccess","src":"45127:11:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6951,"type":"bytes memory","value":"sig3"},"id":6974,"name":"Identifier","src":"45140:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":6975,"name":"Literal","src":"45146:1:5"}],"id":6976,"name":"FunctionCall","src":"45104:44:5"}],"id":6977,"name":"ExpressionStatement","src":"45104:44:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6821,"type":"bool","value":"sigok"},"id":6978,"name":"Identifier","src":"45159:5:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"overloadedDeclarations":[null],"referencedDeclaration":6811,"type":"function (bytes32,bytes memory,bytes memory) returns (bool)","value":"verifySig"},"id":6979,"name":"Identifier","src":"45167:9:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"overloadedDeclarations":[null],"referencedDeclaration":12067,"type":"function () pure returns (bytes32)","value":"sha256"},"id":6980,"name":"Identifier","src":"45177:6:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6928,"type":"bytes memory","value":"tosign3"},"id":6981,"name":"Identifier","src":"45184:7:5"}],"id":6982,"name":"FunctionCall","src":"45177:15:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6951,"type":"bytes memory","value":"sig3"},"id":6983,"name":"Identifier","src":"45194:4:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6924,"type":"bytes memory","value":"LEDGERKEY"},"id":6984,"name":"Identifier","src":"45200:9:5"}],"id":6985,"name":"FunctionCall","src":"45167:43:5"}],"id":6986,"name":"Assignment","src":"45159:51:5"}],"id":6987,"name":"ExpressionStatement","src":"45159:51:5"},{"attributes":{"functionReturnParameters":6819},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6821,"type":"bool","value":"sigok"},"id":6988,"name":"Identifier","src":"45228:5:5"}],"id":6989,"name":"Return","src":"45221:12:5"}],"id":6990,"name":"Block","src":"43873:1367:5"}],"id":6991,"name":"FunctionDefinition","src":"43760:1480:5"},{"attributes":{"documentation":null,"name":"oraclize_randomDS_proofVerify","visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_queryId","scope":7040,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":6992,"name":"ElementaryTypeName","src":"45285:7:5"}],"id":6993,"name":"VariableDeclaration","src":"45285:16:5"},{"attributes":{"constant":false,"name":"_result","scope":7040,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":6994,"name":"ElementaryTypeName","src":"45303:6:5"}],"id":6995,"name":"VariableDeclaration","src":"45303:14:5"},{"attributes":{"constant":false,"name":"_proof","scope":7040,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":6996,"name":"ElementaryTypeName","src":"45319:5:5"}],"id":6997,"name":"VariableDeclaration","src":"45319:12:5"}],"id":6998,"name":"ParameterList","src":"45284:48:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"overloadedDeclarations":[12061,12062],"referencedDeclaration":12061,"type":"function (bool) pure","value":"require"},"id":6999,"name":"Identifier","src":"45420:7:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&&","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&&","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6997,"type":"bytes memory","value":"_proof"},"id":7000,"name":"Identifier","src":"45429:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":7001,"name":"Literal","src":"45436:1:5"}],"id":7002,"name":"IndexAccess","src":"45429:9:5"},{"attributes":{"argumentTypes":null,"hexvalue":"4c","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"L\"","value":"L"},"id":7003,"name":"Literal","src":"45442:3:5"}],"id":7004,"name":"BinaryOperation","src":"45429:16:5"}],"id":7005,"name":"TupleExpression","src":"45428:18:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6997,"type":"bytes memory","value":"_proof"},"id":7006,"name":"Identifier","src":"45451:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":7007,"name":"Literal","src":"45458:1:5"}],"id":7008,"name":"IndexAccess","src":"45451:9:5"},{"attributes":{"argumentTypes":null,"hexvalue":"50","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"P\"","value":"P"},"id":7009,"name":"Literal","src":"45464:3:5"}],"id":7010,"name":"BinaryOperation","src":"45451:16:5"}],"id":7011,"name":"TupleExpression","src":"45450:18:5"}],"id":7012,"name":"BinaryOperation","src":"45428:40:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6997,"type":"bytes memory","value":"_proof"},"id":7013,"name":"Identifier","src":"45473:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":7014,"name":"Literal","src":"45480:1:5"}],"id":7015,"name":"IndexAccess","src":"45473:9:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":7016,"name":"Literal","src":"45486:1:5"}],"id":7017,"name":"BinaryOperation","src":"45473:14:5"}],"id":7018,"name":"TupleExpression","src":"45472:16:5"}],"id":7019,"name":"BinaryOperation","src":"45428:60:5"}],"id":7020,"name":"FunctionCall","src":"45420:69:5"}],"id":7021,"name":"ExpressionStatement","src":"45420:69:5"},{"attributes":{"assignments":[7023]},"children":[{"attributes":{"constant":false,"name":"proofVerified","scope":7040,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":7022,"name":"ElementaryTypeName","src":"45500:4:5"}],"id":7023,"name":"VariableDeclaration","src":"45500:18:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"overloadedDeclarations":[null],"referencedDeclaration":7420,"type":"function (bytes memory,bytes32,bytes memory,string memory) returns (bool)","value":"oraclize_randomDS_proofVerify__main"},"id":7024,"name":"Identifier","src":"45521:35:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6997,"type":"bytes memory","value":"_proof"},"id":7025,"name":"Identifier","src":"45557:6:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6993,"type":"bytes32","value":"_queryId"},"id":7026,"name":"Identifier","src":"45565:8:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes storage pointer)","value":"bytes"},"id":7027,"name":"ElementaryTypeNameExpression","src":"45575:5:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6995,"type":"string memory","value":"_result"},"id":7028,"name":"Identifier","src":"45581:7:5"}],"id":7029,"name":"FunctionCall","src":"45575:14:5"},{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"overloadedDeclarations":[null],"referencedDeclaration":6522,"type":"function () view returns (string memory)","value":"oraclize_getNetworkName"},"id":7030,"name":"Identifier","src":"45591:23:5"}],"id":7031,"name":"FunctionCall","src":"45591:25:5"}],"id":7032,"name":"FunctionCall","src":"45521:96:5"}],"id":7033,"name":"VariableDeclarationStatement","src":"45500:117:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"overloadedDeclarations":[12061,12062],"referencedDeclaration":12061,"type":"function (bool) pure","value":"require"},"id":7034,"name":"Identifier","src":"45627:7:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7023,"type":"bool","value":"proofVerified"},"id":7035,"name":"Identifier","src":"45635:13:5"}],"id":7036,"name":"FunctionCall","src":"45627:22:5"}],"id":7037,"name":"ExpressionStatement","src":"45627:22:5"},{"id":7038,"name":"PlaceholderStatement","src":"45660:1:5"}],"id":7039,"name":"Block","src":"45333:335:5"}],"id":7040,"name":"ModifierDefinition","src":"45246:422:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"oraclize_randomDS_proofVerify__returnCode","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_queryId","scope":7095,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":7041,"name":"ElementaryTypeName","src":"45725:7:5"}],"id":7042,"name":"VariableDeclaration","src":"45725:16:5"},{"attributes":{"constant":false,"name":"_result","scope":7095,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":7043,"name":"ElementaryTypeName","src":"45743:6:5"}],"id":7044,"name":"VariableDeclaration","src":"45743:14:5"},{"attributes":{"constant":false,"name":"_proof","scope":7095,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":7045,"name":"ElementaryTypeName","src":"45759:5:5"}],"id":7046,"name":"VariableDeclaration","src":"45759:12:5"}],"id":7047,"name":"ParameterList","src":"45724:48:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":7095,"stateVariable":false,"storageLocation":"default","type":"uint8","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint8","type":"uint8"},"id":7048,"name":"ElementaryTypeName","src":"45791:5:5"}],"id":7049,"name":"VariableDeclaration","src":"45791:5:5"}],"id":7050,"name":"ParameterList","src":"45790:7:5"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"||","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"||","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7046,"type":"bytes memory","value":"_proof"},"id":7051,"name":"Identifier","src":"45889:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":7052,"name":"Literal","src":"45896:1:5"}],"id":7053,"name":"IndexAccess","src":"45889:9:5"},{"attributes":{"argumentTypes":null,"hexvalue":"4c","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"L\"","value":"L"},"id":7054,"name":"Literal","src":"45902:3:5"}],"id":7055,"name":"BinaryOperation","src":"45889:16:5"}],"id":7056,"name":"TupleExpression","src":"45888:18:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7046,"type":"bytes memory","value":"_proof"},"id":7057,"name":"Identifier","src":"45909:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":7058,"name":"Literal","src":"45916:1:5"}],"id":7059,"name":"IndexAccess","src":"45909:9:5"},{"attributes":{"argumentTypes":null,"hexvalue":"50","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"P\"","value":"P"},"id":7060,"name":"Literal","src":"45922:3:5"}],"id":7061,"name":"BinaryOperation","src":"45909:16:5"}],"id":7062,"name":"TupleExpression","src":"45908:18:5"}],"id":7063,"name":"BinaryOperation","src":"45888:38:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7046,"type":"bytes memory","value":"_proof"},"id":7064,"name":"Identifier","src":"45929:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":7065,"name":"Literal","src":"45936:1:5"}],"id":7066,"name":"IndexAccess","src":"45929:9:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":7067,"name":"Literal","src":"45942:1:5"}],"id":7068,"name":"BinaryOperation","src":"45929:14:5"}],"id":7069,"name":"TupleExpression","src":"45928:16:5"}],"id":7070,"name":"BinaryOperation","src":"45888:56:5"},{"attributes":{"functionReturnParameters":7050},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":7071,"name":"Literal","src":"45953:1:5"}],"id":7072,"name":"Return","src":"45946:8:5"}],"id":7073,"name":"IfStatement","src":"45884:70:5"},{"attributes":{"assignments":[7075]},"children":[{"attributes":{"constant":false,"name":"proofVerified","scope":7095,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":7074,"name":"ElementaryTypeName","src":"45965:4:5"}],"id":7075,"name":"VariableDeclaration","src":"45965:18:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"overloadedDeclarations":[null],"referencedDeclaration":7420,"type":"function (bytes memory,bytes32,bytes memory,string memory) returns (bool)","value":"oraclize_randomDS_proofVerify__main"},"id":7076,"name":"Identifier","src":"45986:35:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7046,"type":"bytes memory","value":"_proof"},"id":7077,"name":"Identifier","src":"46022:6:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7042,"type":"bytes32","value":"_queryId"},"id":7078,"name":"Identifier","src":"46030:8:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes storage pointer)","value":"bytes"},"id":7079,"name":"ElementaryTypeNameExpression","src":"46040:5:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7044,"type":"string memory","value":"_result"},"id":7080,"name":"Identifier","src":"46046:7:5"}],"id":7081,"name":"FunctionCall","src":"46040:14:5"},{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"overloadedDeclarations":[null],"referencedDeclaration":6522,"type":"function () view returns (string memory)","value":"oraclize_getNetworkName"},"id":7082,"name":"Identifier","src":"46056:23:5"}],"id":7083,"name":"FunctionCall","src":"46056:25:5"}],"id":7084,"name":"FunctionCall","src":"45986:96:5"}],"id":7085,"name":"VariableDeclarationStatement","src":"45965:117:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7075,"type":"bool","value":"proofVerified"},"id":7086,"name":"Identifier","src":"46096:13:5"},{"attributes":{"argumentTypes":null,"hexvalue":"66616c7365","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"false"},"id":7087,"name":"Literal","src":"46113:5:5"}],"id":7088,"name":"BinaryOperation","src":"46096:22:5"},{"attributes":{"functionReturnParameters":7050},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":7089,"name":"Literal","src":"46127:1:5"}],"id":7090,"name":"Return","src":"46120:8:5"}],"id":7091,"name":"IfStatement","src":"46092:36:5"},{"attributes":{"functionReturnParameters":7050},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":7092,"name":"Literal","src":"46146:1:5"}],"id":7093,"name":"Return","src":"46139:8:5"}],"id":7094,"name":"Block","src":"45797:357:5"}],"id":7095,"name":"FunctionDefinition","src":"45674:480:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"matchBytes32Prefix","payable":false,"scope":7573,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"content","scope":7144,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":7096,"name":"ElementaryTypeName","src":"46188:7:5"}],"id":7097,"name":"VariableDeclaration","src":"46188:15:5"},{"attributes":{"constant":false,"name":"prefix","scope":7144,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":7098,"name":"ElementaryTypeName","src":"46205:5:5"}],"id":7099,"name":"VariableDeclaration","src":"46205:12:5"},{"attributes":{"constant":false,"name":"n_random_bytes","scope":7144,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":7100,"name":"ElementaryTypeName","src":"46219:4:5"}],"id":7101,"name":"VariableDeclaration","src":"46219:19:5"}],"id":7102,"name":"ParameterList","src":"46187:52:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":7144,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":7103,"name":"ElementaryTypeName","src":"46263:4:5"}],"id":7104,"name":"VariableDeclaration","src":"46263:4:5"}],"id":7105,"name":"ParameterList","src":"46262:6:5"},{"children":[{"attributes":{"assignments":[7107]},"children":[{"attributes":{"constant":false,"name":"match_","scope":7144,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":7106,"name":"ElementaryTypeName","src":"46278:4:5"}],"id":7107,"name":"VariableDeclaration","src":"46278:11:5"},{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":7108,"name":"Literal","src":"46292:4:5"}],"id":7109,"name":"VariableDeclarationStatement","src":"46278:18:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"overloadedDeclarations":[12061,12062],"referencedDeclaration":12061,"type":"function (bool) pure","value":"require"},"id":7110,"name":"Identifier","src":"46307:7:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7099,"type":"bytes memory","value":"prefix"},"id":7111,"name":"Identifier","src":"46315:6:5"}],"id":7112,"name":"MemberAccess","src":"46315:13:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7101,"type":"uint256","value":"n_random_bytes"},"id":7113,"name":"Identifier","src":"46332:14:5"}],"id":7114,"name":"BinaryOperation","src":"46315:31:5"}],"id":7115,"name":"FunctionCall","src":"46307:40:5"}],"id":7116,"name":"ExpressionStatement","src":"46307:40:5"},{"children":[{"attributes":{"assignments":[7118]},"children":[{"attributes":{"constant":false,"name":"i","scope":7144,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":7117,"name":"ElementaryTypeName","src":"46363:7:5"}],"id":7118,"name":"VariableDeclaration","src":"46363:9:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":7119,"name":"Literal","src":"46373:1:5"}],"id":7120,"name":"VariableDeclarationStatement","src":"46363:11:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7118,"type":"uint256","value":"i"},"id":7121,"name":"Identifier","src":"46376:1:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7101,"type":"uint256","value":"n_random_bytes"},"id":7122,"name":"Identifier","src":"46379:14:5"}],"id":7123,"name":"BinaryOperation","src":"46376:17:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7118,"type":"uint256","value":"i"},"id":7124,"name":"Identifier","src":"46395:1:5"}],"id":7125,"name":"UnaryOperation","src":"46395:3:5"}],"id":7126,"name":"ExpressionStatement","src":"46395:3:5"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7097,"type":"bytes32","value":"content"},"id":7127,"name":"Identifier","src":"46418:7:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7118,"type":"uint256","value":"i"},"id":7128,"name":"Identifier","src":"46426:1:5"}],"id":7129,"name":"IndexAccess","src":"46418:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7099,"type":"bytes memory","value":"prefix"},"id":7130,"name":"Identifier","src":"46432:6:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7118,"type":"uint256","value":"i"},"id":7131,"name":"Identifier","src":"46439:1:5"}],"id":7132,"name":"IndexAccess","src":"46432:9:5"}],"id":7133,"name":"BinaryOperation","src":"46418:23:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7107,"type":"bool","value":"match_"},"id":7134,"name":"Identifier","src":"46443:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"66616c7365","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"false"},"id":7135,"name":"Literal","src":"46452:5:5"}],"id":7136,"name":"Assignment","src":"46443:14:5"}],"id":7137,"name":"ExpressionStatement","src":"46443:14:5"}],"id":7138,"name":"IfStatement","src":"46414:43:5"}],"id":7139,"name":"Block","src":"46400:68:5"}],"id":7140,"name":"ForStatement","src":"46358:110:5"},{"attributes":{"functionReturnParameters":7105},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7107,"type":"bool","value":"match_"},"id":7141,"name":"Identifier","src":"46485:6:5"}],"id":7142,"name":"Return","src":"46478:13:5"}],"id":7143,"name":"Block","src":"46268:230:5"}],"id":7144,"name":"FunctionDefinition","src":"46160:338:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"oraclize_randomDS_proofVerify__main","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"proof","scope":7420,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":7145,"name":"ElementaryTypeName","src":"46549:5:5"}],"id":7146,"name":"VariableDeclaration","src":"46549:11:5"},{"attributes":{"constant":false,"name":"queryId","scope":7420,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":7147,"name":"ElementaryTypeName","src":"46562:7:5"}],"id":7148,"name":"VariableDeclaration","src":"46562:15:5"},{"attributes":{"constant":false,"name":"result","scope":7420,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":7149,"name":"ElementaryTypeName","src":"46579:5:5"}],"id":7150,"name":"VariableDeclaration","src":"46579:12:5"},{"attributes":{"constant":false,"name":"context_name","scope":7420,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":7151,"name":"ElementaryTypeName","src":"46593:6:5"}],"id":7152,"name":"VariableDeclaration","src":"46593:19:5"}],"id":7153,"name":"ParameterList","src":"46548:65:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":7420,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":7154,"name":"ElementaryTypeName","src":"46632:4:5"}],"id":7155,"name":"VariableDeclaration","src":"46632:4:5"}],"id":7156,"name":"ParameterList","src":"46631:6:5"},{"children":[{"attributes":{"assignments":[7158]},"children":[{"attributes":{"constant":false,"name":"ledgerProofLength","scope":7420,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":7157,"name":"ElementaryTypeName","src":"46743:4:5"}],"id":7158,"name":"VariableDeclaration","src":"46743:22:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_68_by_1","typeString":"int_const 68"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"+","type":"int_const 68"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":7159,"name":"Literal","src":"46768:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3635","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 65","value":"65"},"id":7160,"name":"Literal","src":"46770:2:5"}],"id":7161,"name":"BinaryOperation","src":"46768:4:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint"},"id":7162,"name":"ElementaryTypeNameExpression","src":"46774:4:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7146,"type":"bytes memory","value":"proof"},"id":7163,"name":"Identifier","src":"46779:5:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_69_by_1","typeString":"int_const 69"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"+","type":"int_const 69"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_68_by_1","typeString":"int_const 68"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"+","type":"int_const 68"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":7164,"name":"Literal","src":"46785:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3635","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 65","value":"65"},"id":7165,"name":"Literal","src":"46787:2:5"}],"id":7166,"name":"BinaryOperation","src":"46785:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":7167,"name":"Literal","src":"46790:1:5"}],"id":7168,"name":"BinaryOperation","src":"46785:6:5"}],"id":7169,"name":"IndexAccess","src":"46779:13:5"}],"id":7170,"name":"FunctionCall","src":"46774:19:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":7171,"name":"Literal","src":"46794:1:5"}],"id":7172,"name":"BinaryOperation","src":"46774:21:5"}],"id":7173,"name":"TupleExpression","src":"46773:23:5"}],"id":7174,"name":"BinaryOperation","src":"46768:28:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":7175,"name":"Literal","src":"46797:2:5"}],"id":7176,"name":"BinaryOperation","src":"46768:31:5"}],"id":7177,"name":"VariableDeclarationStatement","src":"46743:56:5"},{"attributes":{"assignments":[7179]},"children":[{"attributes":{"constant":false,"name":"keyhash","scope":7420,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":7178,"name":"ElementaryTypeName","src":"46809:5:5"}],"id":7179,"name":"VariableDeclaration","src":"46809:20:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (bytes memory)"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":7180,"name":"ElementaryTypeName","src":"46836:5:5"}],"id":7181,"name":"NewExpression","src":"46832:9:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":7182,"name":"Literal","src":"46842:2:5"}],"id":7183,"name":"FunctionCall","src":"46832:13:5"}],"id":7184,"name":"VariableDeclarationStatement","src":"46809:36:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"overloadedDeclarations":[null],"referencedDeclaration":7482,"type":"function (bytes memory,uint256,uint256,bytes memory,uint256) pure returns (bytes memory)","value":"copyBytes"},"id":7185,"name":"Identifier","src":"46855:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7146,"type":"bytes memory","value":"proof"},"id":7186,"name":"Identifier","src":"46865:5:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7158,"type":"uint256","value":"ledgerProofLength"},"id":7187,"name":"Identifier","src":"46872:17:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":7188,"name":"Literal","src":"46891:2:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7179,"type":"bytes memory","value":"keyhash"},"id":7189,"name":"Identifier","src":"46895:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":7190,"name":"Literal","src":"46904:1:5"}],"id":7191,"name":"FunctionCall","src":"46855:51:5"}],"id":7192,"name":"ExpressionStatement","src":"46855:51:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"overloadedDeclarations":[null],"referencedDeclaration":12052,"type":"function () pure returns (bytes32)","value":"keccak256"},"id":7193,"name":"Identifier","src":"46922:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7179,"type":"bytes memory","value":"keyhash"},"id":7194,"name":"Identifier","src":"46932:7:5"}],"id":7195,"name":"FunctionCall","src":"46922:18:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"overloadedDeclarations":[null],"referencedDeclaration":12052,"type":"function () pure returns (bytes32)","value":"keccak256"},"id":7196,"name":"Identifier","src":"46944:9:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"member_name":"encodePacked","referencedDeclaration":null,"type":"function () pure returns (bytes memory)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":12045,"type":"abi","value":"abi"},"id":7197,"name":"Identifier","src":"46954:3:5"}],"id":7198,"name":"MemberAccess","src":"46954:16:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"overloadedDeclarations":[null],"referencedDeclaration":12067,"type":"function () pure returns (bytes32)","value":"sha256"},"id":7199,"name":"Identifier","src":"46971:6:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"member_name":"encodePacked","referencedDeclaration":null,"type":"function () pure returns (bytes memory)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":12045,"type":"abi","value":"abi"},"id":7200,"name":"Identifier","src":"46978:3:5"}],"id":7201,"name":"MemberAccess","src":"46978:16:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7152,"type":"string memory","value":"context_name"},"id":7202,"name":"Identifier","src":"46995:12:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7148,"type":"bytes32","value":"queryId"},"id":7203,"name":"Identifier","src":"47009:7:5"}],"id":7204,"name":"FunctionCall","src":"46978:39:5"}],"id":7205,"name":"FunctionCall","src":"46971:47:5"}],"id":7206,"name":"FunctionCall","src":"46954:65:5"}],"id":7207,"name":"FunctionCall","src":"46944:76:5"}],"id":7208,"name":"BinaryOperation","src":"46922:98:5"}],"id":7209,"name":"TupleExpression","src":"46921:100:5"}],"id":7210,"name":"UnaryOperation","src":"46920:101:5"},{"attributes":{"functionReturnParameters":7156},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"66616c7365","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"false"},"id":7211,"name":"Literal","src":"47030:5:5"}],"id":7212,"name":"Return","src":"47023:12:5"}],"id":7213,"name":"IfStatement","src":"46916:119:5"},{"attributes":{"assignments":[7215]},"children":[{"attributes":{"constant":false,"name":"sig1","scope":7420,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":7214,"name":"ElementaryTypeName","src":"47046:5:5"}],"id":7215,"name":"VariableDeclaration","src":"47046:17:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (bytes memory)"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":7216,"name":"ElementaryTypeName","src":"47070:5:5"}],"id":7217,"name":"NewExpression","src":"47066:9:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint"},"id":7218,"name":"ElementaryTypeNameExpression","src":"47076:4:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7146,"type":"bytes memory","value":"proof"},"id":7219,"name":"Identifier","src":"47081:5:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7158,"type":"uint256","value":"ledgerProofLength"},"id":7220,"name":"Identifier","src":"47087:17:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"int_const 73"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_73_by_1","typeString":"int_const 73"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"+","type":"int_const 73"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_41_by_1","typeString":"int_const 41"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"+","type":"int_const 41"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_40_by_1","typeString":"int_const 40"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"+","type":"int_const 40"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":7221,"name":"Literal","src":"47106:2:5"},{"attributes":{"argumentTypes":null,"hexvalue":"38","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 8","value":"8"},"id":7222,"name":"Literal","src":"47109:1:5"}],"id":7223,"name":"BinaryOperation","src":"47106:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":7224,"name":"Literal","src":"47111:1:5"}],"id":7225,"name":"BinaryOperation","src":"47106:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":7226,"name":"Literal","src":"47113:2:5"}],"id":7227,"name":"BinaryOperation","src":"47106:9:5"}],"id":7228,"name":"TupleExpression","src":"47105:11:5"}],"id":7229,"name":"BinaryOperation","src":"47087:29:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":7230,"name":"Literal","src":"47117:1:5"}],"id":7231,"name":"BinaryOperation","src":"47087:31:5"}],"id":7232,"name":"IndexAccess","src":"47081:38:5"}],"id":7233,"name":"FunctionCall","src":"47076:44:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":7234,"name":"Literal","src":"47121:1:5"}],"id":7235,"name":"BinaryOperation","src":"47076:46:5"}],"id":7236,"name":"FunctionCall","src":"47066:57:5"}],"id":7237,"name":"VariableDeclarationStatement","src":"47046:77:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"overloadedDeclarations":[null],"referencedDeclaration":7482,"type":"function (bytes memory,uint256,uint256,bytes memory,uint256) pure returns (bytes memory)","value":"copyBytes"},"id":7238,"name":"Identifier","src":"47133:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7146,"type":"bytes memory","value":"proof"},"id":7239,"name":"Identifier","src":"47143:5:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7158,"type":"uint256","value":"ledgerProofLength"},"id":7240,"name":"Identifier","src":"47150:17:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"int_const 73"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_73_by_1","typeString":"int_const 73"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"+","type":"int_const 73"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_41_by_1","typeString":"int_const 41"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"+","type":"int_const 41"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_40_by_1","typeString":"int_const 40"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"+","type":"int_const 40"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":7241,"name":"Literal","src":"47169:2:5"},{"attributes":{"argumentTypes":null,"hexvalue":"38","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 8","value":"8"},"id":7242,"name":"Literal","src":"47172:1:5"}],"id":7243,"name":"BinaryOperation","src":"47169:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":7244,"name":"Literal","src":"47174:1:5"}],"id":7245,"name":"BinaryOperation","src":"47169:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":7246,"name":"Literal","src":"47176:2:5"}],"id":7247,"name":"BinaryOperation","src":"47169:9:5"}],"id":7248,"name":"TupleExpression","src":"47168:11:5"}],"id":7249,"name":"BinaryOperation","src":"47150:29:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7215,"type":"bytes memory","value":"sig1"},"id":7250,"name":"Identifier","src":"47181:4:5"}],"id":7251,"name":"MemberAccess","src":"47181:11:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7215,"type":"bytes memory","value":"sig1"},"id":7252,"name":"Identifier","src":"47194:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":7253,"name":"Literal","src":"47200:1:5"}],"id":7254,"name":"FunctionCall","src":"47133:69:5"}],"id":7255,"name":"ExpressionStatement","src":"47133:69:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":7144,"type":"function (bytes32,bytes memory,uint256) pure returns (bool)","value":"matchBytes32Prefix"},"id":7256,"name":"Identifier","src":"47353:18:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"overloadedDeclarations":[null],"referencedDeclaration":12067,"type":"function () pure returns (bytes32)","value":"sha256"},"id":7257,"name":"Identifier","src":"47372:6:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7215,"type":"bytes memory","value":"sig1"},"id":7258,"name":"Identifier","src":"47379:4:5"}],"id":7259,"name":"FunctionCall","src":"47372:12:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7150,"type":"bytes memory","value":"result"},"id":7260,"name":"Identifier","src":"47386:6:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint"},"id":7261,"name":"ElementaryTypeNameExpression","src":"47394:4:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7146,"type":"bytes memory","value":"proof"},"id":7262,"name":"Identifier","src":"47399:5:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7158,"type":"uint256","value":"ledgerProofLength"},"id":7263,"name":"Identifier","src":"47405:17:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":7264,"name":"Literal","src":"47423:2:5"}],"id":7265,"name":"BinaryOperation","src":"47405:20:5"},{"attributes":{"argumentTypes":null,"hexvalue":"38","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 8","value":"8"},"id":7266,"name":"Literal","src":"47426:1:5"}],"id":7267,"name":"BinaryOperation","src":"47405:22:5"}],"id":7268,"name":"IndexAccess","src":"47399:29:5"}],"id":7269,"name":"FunctionCall","src":"47394:35:5"}],"id":7270,"name":"FunctionCall","src":"47353:77:5"}],"id":7271,"name":"UnaryOperation","src":"47352:78:5"},{"attributes":{"functionReturnParameters":7156},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"66616c7365","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"false"},"id":7272,"name":"Literal","src":"47439:5:5"}],"id":7273,"name":"Return","src":"47432:12:5"}],"id":7274,"name":"IfStatement","src":"47348:96:5"},{"attributes":{"assignments":[7276]},"children":[{"attributes":{"constant":false,"name":"commitmentSlice1","scope":7420,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":7275,"name":"ElementaryTypeName","src":"47676:5:5"}],"id":7276,"name":"VariableDeclaration","src":"47676:29:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_41_by_1","typeString":"int_const 41"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (bytes memory)"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":7277,"name":"ElementaryTypeName","src":"47712:5:5"}],"id":7278,"name":"NewExpression","src":"47708:9:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_41_by_1","typeString":"int_const 41"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"+","type":"int_const 41"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_9_by_1","typeString":"int_const 9"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"+","type":"int_const 9"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"38","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 8","value":"8"},"id":7279,"name":"Literal","src":"47718:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":7280,"name":"Literal","src":"47720:1:5"}],"id":7281,"name":"BinaryOperation","src":"47718:3:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":7282,"name":"Literal","src":"47722:2:5"}],"id":7283,"name":"BinaryOperation","src":"47718:6:5"}],"id":7284,"name":"FunctionCall","src":"47708:17:5"}],"id":7285,"name":"VariableDeclarationStatement","src":"47676:49:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_41_by_1","typeString":"int_const 41"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"overloadedDeclarations":[null],"referencedDeclaration":7482,"type":"function (bytes memory,uint256,uint256,bytes memory,uint256) pure returns (bytes memory)","value":"copyBytes"},"id":7286,"name":"Identifier","src":"47735:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7146,"type":"bytes memory","value":"proof"},"id":7287,"name":"Identifier","src":"47745:5:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7158,"type":"uint256","value":"ledgerProofLength"},"id":7288,"name":"Identifier","src":"47752:17:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":7289,"name":"Literal","src":"47770:2:5"}],"id":7290,"name":"BinaryOperation","src":"47752:20:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_41_by_1","typeString":"int_const 41"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"+","type":"int_const 41"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_9_by_1","typeString":"int_const 9"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"+","type":"int_const 9"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"38","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 8","value":"8"},"id":7291,"name":"Literal","src":"47774:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":7292,"name":"Literal","src":"47776:1:5"}],"id":7293,"name":"BinaryOperation","src":"47774:3:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":7294,"name":"Literal","src":"47778:2:5"}],"id":7295,"name":"BinaryOperation","src":"47774:6:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7276,"type":"bytes memory","value":"commitmentSlice1"},"id":7296,"name":"Identifier","src":"47782:16:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":7297,"name":"Literal","src":"47800:1:5"}],"id":7298,"name":"FunctionCall","src":"47735:67:5"}],"id":7299,"name":"ExpressionStatement","src":"47735:67:5"},{"attributes":{"assignments":[7301]},"children":[{"attributes":{"constant":false,"name":"sessionPubkey","scope":7420,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":7300,"name":"ElementaryTypeName","src":"47813:5:5"}],"id":7301,"name":"VariableDeclaration","src":"47813:26:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (bytes memory)"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":7302,"name":"ElementaryTypeName","src":"47846:5:5"}],"id":7303,"name":"NewExpression","src":"47842:9:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3634","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 64","value":"64"},"id":7304,"name":"Literal","src":"47852:2:5"}],"id":7305,"name":"FunctionCall","src":"47842:13:5"}],"id":7306,"name":"VariableDeclarationStatement","src":"47813:42:5"},{"attributes":{"assignments":[7308]},"children":[{"attributes":{"constant":false,"name":"sig2offset","scope":7420,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":7307,"name":"ElementaryTypeName","src":"47865:4:5"}],"id":7308,"name":"VariableDeclaration","src":"47865:15:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7158,"type":"uint256","value":"ledgerProofLength"},"id":7309,"name":"Identifier","src":"47883:17:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":7310,"name":"Literal","src":"47901:2:5"}],"id":7311,"name":"BinaryOperation","src":"47883:20:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"int_const 41"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_41_by_1","typeString":"int_const 41"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"+","type":"int_const 41"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_9_by_1","typeString":"int_const 9"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"+","type":"int_const 9"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"38","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 8","value":"8"},"id":7312,"name":"Literal","src":"47905:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":7313,"name":"Literal","src":"47907:1:5"}],"id":7314,"name":"BinaryOperation","src":"47905:3:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":7315,"name":"Literal","src":"47909:2:5"}],"id":7316,"name":"BinaryOperation","src":"47905:6:5"}],"id":7317,"name":"TupleExpression","src":"47904:8:5"}],"id":7318,"name":"BinaryOperation","src":"47883:29:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7215,"type":"bytes memory","value":"sig1"},"id":7319,"name":"Identifier","src":"47913:4:5"}],"id":7320,"name":"MemberAccess","src":"47913:11:5"}],"id":7321,"name":"BinaryOperation","src":"47883:41:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3635","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 65","value":"65"},"id":7322,"name":"Literal","src":"47925:2:5"}],"id":7323,"name":"BinaryOperation","src":"47883:44:5"}],"id":7324,"name":"VariableDeclarationStatement","src":"47865:62:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"overloadedDeclarations":[null],"referencedDeclaration":7482,"type":"function (bytes memory,uint256,uint256,bytes memory,uint256) pure returns (bytes memory)","value":"copyBytes"},"id":7325,"name":"Identifier","src":"47937:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7146,"type":"bytes memory","value":"proof"},"id":7326,"name":"Identifier","src":"47947:5:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7308,"type":"uint256","value":"sig2offset"},"id":7327,"name":"Identifier","src":"47954:10:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3634","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 64","value":"64"},"id":7328,"name":"Literal","src":"47965:2:5"}],"id":7329,"name":"BinaryOperation","src":"47954:13:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3634","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 64","value":"64"},"id":7330,"name":"Literal","src":"47969:2:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7301,"type":"bytes memory","value":"sessionPubkey"},"id":7331,"name":"Identifier","src":"47973:13:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":7332,"name":"Literal","src":"47988:1:5"}],"id":7333,"name":"FunctionCall","src":"47937:53:5"}],"id":7334,"name":"ExpressionStatement","src":"47937:53:5"},{"attributes":{"assignments":[7336]},"children":[{"attributes":{"constant":false,"name":"sessionPubkeyHash","scope":7420,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":7335,"name":"ElementaryTypeName","src":"48001:7:5"}],"id":7336,"name":"VariableDeclaration","src":"48001:25:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"overloadedDeclarations":[null],"referencedDeclaration":12067,"type":"function () pure returns (bytes32)","value":"sha256"},"id":7337,"name":"Identifier","src":"48029:6:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7301,"type":"bytes memory","value":"sessionPubkey"},"id":7338,"name":"Identifier","src":"48036:13:5"}],"id":7339,"name":"FunctionCall","src":"48029:21:5"}],"id":7340,"name":"VariableDeclarationStatement","src":"48001:49:5"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6676,"type":"mapping(bytes32 => bytes32)","value":"oraclize_randomDS_args"},"id":7341,"name":"Identifier","src":"48064:22:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7148,"type":"bytes32","value":"queryId"},"id":7342,"name":"Identifier","src":"48087:7:5"}],"id":7343,"name":"IndexAccess","src":"48064:31:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"overloadedDeclarations":[null],"referencedDeclaration":12052,"type":"function () pure returns (bytes32)","value":"keccak256"},"id":7344,"name":"Identifier","src":"48099:9:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"member_name":"encodePacked","referencedDeclaration":null,"type":"function () pure returns (bytes memory)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":12045,"type":"abi","value":"abi"},"id":7345,"name":"Identifier","src":"48109:3:5"}],"id":7346,"name":"MemberAccess","src":"48109:16:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7276,"type":"bytes memory","value":"commitmentSlice1"},"id":7347,"name":"Identifier","src":"48126:16:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7336,"type":"bytes32","value":"sessionPubkeyHash"},"id":7348,"name":"Identifier","src":"48144:17:5"}],"id":7349,"name":"FunctionCall","src":"48109:53:5"}],"id":7350,"name":"FunctionCall","src":"48099:64:5"}],"id":7351,"name":"BinaryOperation","src":"48064:99:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"delete","prefix":true,"type":"tuple()"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6676,"type":"mapping(bytes32 => bytes32)","value":"oraclize_randomDS_args"},"id":7352,"name":"Identifier","src":"48227:22:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7148,"type":"bytes32","value":"queryId"},"id":7353,"name":"Identifier","src":"48250:7:5"}],"id":7354,"name":"IndexAccess","src":"48227:31:5"}],"id":7355,"name":"UnaryOperation","src":"48220:38:5"}],"id":7356,"name":"ExpressionStatement","src":"48220:38:5"}],"id":7357,"name":"Block","src":"48164:105:5"},{"attributes":{"functionReturnParameters":7156},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"66616c7365","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"false"},"id":7358,"name":"Literal","src":"48282:5:5"}],"id":7359,"name":"Return","src":"48275:12:5"}],"id":7360,"name":"IfStatement","src":"48060:227:5"},{"attributes":{"assignments":[7362]},"children":[{"attributes":{"constant":false,"name":"tosign1","scope":7420,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":7361,"name":"ElementaryTypeName","src":"48395:5:5"}],"id":7362,"name":"VariableDeclaration","src":"48395:20:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_73_by_1","typeString":"int_const 73"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (bytes memory)"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":7363,"name":"ElementaryTypeName","src":"48422:5:5"}],"id":7364,"name":"NewExpression","src":"48418:9:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_73_by_1","typeString":"int_const 73"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"+","type":"int_const 73"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_41_by_1","typeString":"int_const 41"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"+","type":"int_const 41"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_40_by_1","typeString":"int_const 40"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"+","type":"int_const 40"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":7365,"name":"Literal","src":"48428:2:5"},{"attributes":{"argumentTypes":null,"hexvalue":"38","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 8","value":"8"},"id":7366,"name":"Literal","src":"48431:1:5"}],"id":7367,"name":"BinaryOperation","src":"48428:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":7368,"name":"Literal","src":"48433:1:5"}],"id":7369,"name":"BinaryOperation","src":"48428:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":7370,"name":"Literal","src":"48435:2:5"}],"id":7371,"name":"BinaryOperation","src":"48428:9:5"}],"id":7372,"name":"FunctionCall","src":"48418:20:5"}],"id":7373,"name":"VariableDeclarationStatement","src":"48395:43:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_73_by_1","typeString":"int_const 73"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"overloadedDeclarations":[null],"referencedDeclaration":7482,"type":"function (bytes memory,uint256,uint256,bytes memory,uint256) pure returns (bytes memory)","value":"copyBytes"},"id":7374,"name":"Identifier","src":"48448:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7146,"type":"bytes memory","value":"proof"},"id":7375,"name":"Identifier","src":"48458:5:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7158,"type":"uint256","value":"ledgerProofLength"},"id":7376,"name":"Identifier","src":"48465:17:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_73_by_1","typeString":"int_const 73"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"+","type":"int_const 73"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_41_by_1","typeString":"int_const 41"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"+","type":"int_const 41"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_40_by_1","typeString":"int_const 40"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"+","type":"int_const 40"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":7377,"name":"Literal","src":"48484:2:5"},{"attributes":{"argumentTypes":null,"hexvalue":"38","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 8","value":"8"},"id":7378,"name":"Literal","src":"48487:1:5"}],"id":7379,"name":"BinaryOperation","src":"48484:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":7380,"name":"Literal","src":"48489:1:5"}],"id":7381,"name":"BinaryOperation","src":"48484:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":7382,"name":"Literal","src":"48491:2:5"}],"id":7383,"name":"BinaryOperation","src":"48484:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7362,"type":"bytes memory","value":"tosign1"},"id":7384,"name":"Identifier","src":"48495:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":7385,"name":"Literal","src":"48504:1:5"}],"id":7386,"name":"FunctionCall","src":"48448:58:5"}],"id":7387,"name":"ExpressionStatement","src":"48448:58:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"overloadedDeclarations":[null],"referencedDeclaration":6811,"type":"function (bytes32,bytes memory,bytes memory) returns (bool)","value":"verifySig"},"id":7388,"name":"Identifier","src":"48521:9:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"overloadedDeclarations":[null],"referencedDeclaration":12067,"type":"function () pure returns (bytes32)","value":"sha256"},"id":7389,"name":"Identifier","src":"48531:6:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7362,"type":"bytes memory","value":"tosign1"},"id":7390,"name":"Identifier","src":"48538:7:5"}],"id":7391,"name":"FunctionCall","src":"48531:15:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7215,"type":"bytes memory","value":"sig1"},"id":7392,"name":"Identifier","src":"48548:4:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7301,"type":"bytes memory","value":"sessionPubkey"},"id":7393,"name":"Identifier","src":"48554:13:5"}],"id":7394,"name":"FunctionCall","src":"48521:47:5"}],"id":7395,"name":"UnaryOperation","src":"48520:48:5"},{"attributes":{"functionReturnParameters":7156},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"66616c7365","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"false"},"id":7396,"name":"Literal","src":"48577:5:5"}],"id":7397,"name":"Return","src":"48570:12:5"}],"id":7398,"name":"IfStatement","src":"48516:66:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6680,"type":"mapping(bytes32 => bool)","value":"oraclize_randomDS_sessionKeysHashVerified"},"id":7399,"name":"Identifier","src":"48680:41:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7336,"type":"bytes32","value":"sessionPubkeyHash"},"id":7400,"name":"Identifier","src":"48722:17:5"}],"id":7401,"name":"IndexAccess","src":"48680:60:5"},{"attributes":{"argumentTypes":null,"hexvalue":"66616c7365","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"false"},"id":7402,"name":"Literal","src":"48744:5:5"}],"id":7403,"name":"BinaryOperation","src":"48680:69:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6680,"type":"mapping(bytes32 => bool)","value":"oraclize_randomDS_sessionKeysHashVerified"},"id":7404,"name":"Identifier","src":"48764:41:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7336,"type":"bytes32","value":"sessionPubkeyHash"},"id":7405,"name":"Identifier","src":"48806:17:5"}],"id":7406,"name":"IndexAccess","src":"48764:60:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":6991,"type":"function (bytes memory,uint256) returns (bool)","value":"oraclize_randomDS_proofVerify__sessionKeyValidity"},"id":7407,"name":"Identifier","src":"48827:49:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7146,"type":"bytes memory","value":"proof"},"id":7408,"name":"Identifier","src":"48877:5:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7308,"type":"uint256","value":"sig2offset"},"id":7409,"name":"Identifier","src":"48884:10:5"}],"id":7410,"name":"FunctionCall","src":"48827:68:5"}],"id":7411,"name":"Assignment","src":"48764:131:5"}],"id":7412,"name":"ExpressionStatement","src":"48764:131:5"}],"id":7413,"name":"Block","src":"48750:156:5"}],"id":7414,"name":"IfStatement","src":"48676:230:5"},{"attributes":{"functionReturnParameters":7156},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6680,"type":"mapping(bytes32 => bool)","value":"oraclize_randomDS_sessionKeysHashVerified"},"id":7415,"name":"Identifier","src":"48923:41:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7336,"type":"bytes32","value":"sessionPubkeyHash"},"id":7416,"name":"Identifier","src":"48965:17:5"}],"id":7417,"name":"IndexAccess","src":"48923:60:5"}],"id":7418,"name":"Return","src":"48916:67:5"}],"id":7419,"name":"Block","src":"46637:2353:5"}],"id":7420,"name":"FunctionDefinition","src":"46504:2486:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"copyBytes","payable":false,"scope":7573,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"from","scope":7482,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":7421,"name":"ElementaryTypeName","src":"49133:5:5"}],"id":7422,"name":"VariableDeclaration","src":"49133:10:5"},{"attributes":{"constant":false,"name":"fromOffset","scope":7482,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":7423,"name":"ElementaryTypeName","src":"49145:4:5"}],"id":7424,"name":"VariableDeclaration","src":"49145:15:5"},{"attributes":{"constant":false,"name":"length","scope":7482,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":7425,"name":"ElementaryTypeName","src":"49162:4:5"}],"id":7426,"name":"VariableDeclaration","src":"49162:11:5"},{"attributes":{"constant":false,"name":"to","scope":7482,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":7427,"name":"ElementaryTypeName","src":"49175:5:5"}],"id":7428,"name":"VariableDeclaration","src":"49175:8:5"},{"attributes":{"constant":false,"name":"toOffset","scope":7482,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":7429,"name":"ElementaryTypeName","src":"49185:4:5"}],"id":7430,"name":"VariableDeclaration","src":"49185:13:5"}],"id":7431,"name":"ParameterList","src":"49132:67:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":7482,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":7432,"name":"ElementaryTypeName","src":"49223:5:5"}],"id":7433,"name":"VariableDeclaration","src":"49223:5:5"}],"id":7434,"name":"ParameterList","src":"49222:7:5"},{"children":[{"attributes":{"assignments":[7436]},"children":[{"attributes":{"constant":false,"name":"minLength","scope":7482,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":7435,"name":"ElementaryTypeName","src":"49240:4:5"}],"id":7436,"name":"VariableDeclaration","src":"49240:14:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7426,"type":"uint256","value":"length"},"id":7437,"name":"Identifier","src":"49257:6:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7430,"type":"uint256","value":"toOffset"},"id":7438,"name":"Identifier","src":"49266:8:5"}],"id":7439,"name":"BinaryOperation","src":"49257:17:5"}],"id":7440,"name":"VariableDeclarationStatement","src":"49240:34:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"overloadedDeclarations":[12061,12062],"referencedDeclaration":12061,"type":"function (bool) pure","value":"require"},"id":7441,"name":"Identifier","src":"49313:7:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7428,"type":"bytes memory","value":"to"},"id":7442,"name":"Identifier","src":"49321:2:5"}],"id":7443,"name":"MemberAccess","src":"49321:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7436,"type":"uint256","value":"minLength"},"id":7444,"name":"Identifier","src":"49334:9:5"}],"id":7445,"name":"BinaryOperation","src":"49321:22:5"}],"id":7446,"name":"FunctionCall","src":"49313:31:5"}],"id":7447,"name":"ExpressionStatement","src":"49313:31:5"},{"attributes":{"assignments":[7449]},"children":[{"attributes":{"constant":false,"name":"i","scope":7482,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":7448,"name":"ElementaryTypeName","src":"49471:4:5"}],"id":7449,"name":"VariableDeclaration","src":"49471:6:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":7450,"name":"Literal","src":"49480:2:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7424,"type":"uint256","value":"fromOffset"},"id":7451,"name":"Identifier","src":"49485:10:5"}],"id":7452,"name":"BinaryOperation","src":"49480:15:5"}],"id":7453,"name":"VariableDeclarationStatement","src":"49471:24:5"},{"attributes":{"assignments":[7455]},"children":[{"attributes":{"constant":false,"name":"j","scope":7482,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":7454,"name":"ElementaryTypeName","src":"49505:4:5"}],"id":7455,"name":"VariableDeclaration","src":"49505:6:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":7456,"name":"Literal","src":"49514:2:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7430,"type":"uint256","value":"toOffset"},"id":7457,"name":"Identifier","src":"49519:8:5"}],"id":7458,"name":"BinaryOperation","src":"49514:13:5"}],"id":7459,"name":"VariableDeclarationStatement","src":"49505:22:5"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7449,"type":"uint256","value":"i"},"id":7460,"name":"Identifier","src":"49545:1:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":7461,"name":"Literal","src":"49550:2:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7424,"type":"uint256","value":"fromOffset"},"id":7462,"name":"Identifier","src":"49555:10:5"}],"id":7463,"name":"BinaryOperation","src":"49550:15:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7426,"type":"uint256","value":"length"},"id":7464,"name":"Identifier","src":"49568:6:5"}],"id":7465,"name":"BinaryOperation","src":"49550:24:5"}],"id":7466,"name":"TupleExpression","src":"49549:26:5"}],"id":7467,"name":"BinaryOperation","src":"49545:30:5"},{"children":[{"attributes":{"externalReferences":[{"from":{"declaration":7422,"isOffset":false,"isSlot":false,"src":"49639:4:5","valueSize":1}},{"i":{"declaration":7449,"isOffset":false,"isSlot":false,"src":"49645:1:5","valueSize":1}},{"to":{"declaration":7428,"isOffset":false,"isSlot":false,"src":"49676:2:5","valueSize":1}},{"j":{"declaration":7455,"isOffset":false,"isSlot":false,"src":"49680:1:5","valueSize":1}}],"operations":"{\n let tmp := mload(add(from, i))\n mstore(add(to, j), tmp)\n}"},"children":[],"id":7468,"name":"InlineAssembly","src":"49591:125:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7449,"type":"uint256","value":"i"},"id":7469,"name":"Identifier","src":"49715:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":7470,"name":"Literal","src":"49720:2:5"}],"id":7471,"name":"Assignment","src":"49715:7:5"}],"id":7472,"name":"ExpressionStatement","src":"49715:7:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7455,"type":"uint256","value":"j"},"id":7473,"name":"Identifier","src":"49736:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":7474,"name":"Literal","src":"49741:2:5"}],"id":7475,"name":"Assignment","src":"49736:7:5"}],"id":7476,"name":"ExpressionStatement","src":"49736:7:5"}],"id":7477,"name":"Block","src":"49577:177:5"}],"id":7478,"name":"WhileStatement","src":"49538:216:5"},{"attributes":{"functionReturnParameters":7434},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7428,"type":"bytes memory","value":"to"},"id":7479,"name":"Identifier","src":"49771:2:5"}],"id":7480,"name":"Return","src":"49764:9:5"}],"id":7481,"name":"Block","src":"49230:550:5"}],"id":7482,"name":"FunctionDefinition","src":"49114:666:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"safer_ecrecover","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"hash","scope":7509,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":7483,"name":"ElementaryTypeName","src":"50003:7:5"}],"id":7484,"name":"VariableDeclaration","src":"50003:12:5"},{"attributes":{"constant":false,"name":"v","scope":7509,"stateVariable":false,"storageLocation":"default","type":"uint8","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint8","type":"uint8"},"id":7485,"name":"ElementaryTypeName","src":"50017:5:5"}],"id":7486,"name":"VariableDeclaration","src":"50017:7:5"},{"attributes":{"constant":false,"name":"r","scope":7509,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":7487,"name":"ElementaryTypeName","src":"50026:7:5"}],"id":7488,"name":"VariableDeclaration","src":"50026:9:5"},{"attributes":{"constant":false,"name":"s","scope":7509,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":7489,"name":"ElementaryTypeName","src":"50037:7:5"}],"id":7490,"name":"VariableDeclaration","src":"50037:9:5"}],"id":7491,"name":"ParameterList","src":"50002:45:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":7509,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":7492,"name":"ElementaryTypeName","src":"50066:4:5"}],"id":7493,"name":"VariableDeclaration","src":"50066:4:5"},{"attributes":{"constant":false,"name":"","scope":7509,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":7494,"name":"ElementaryTypeName","src":"50072:7:5"}],"id":7495,"name":"VariableDeclaration","src":"50072:7:5"}],"id":7496,"name":"ParameterList","src":"50065:15:5"},{"children":[{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"ret","scope":7509,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":7497,"name":"ElementaryTypeName","src":"50476:4:5"}],"id":7498,"name":"VariableDeclaration","src":"50476:8:5"}],"id":7499,"name":"VariableDeclarationStatement","src":"50476:8:5"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"addr","scope":7509,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":7500,"name":"ElementaryTypeName","src":"50494:7:5"}],"id":7501,"name":"VariableDeclaration","src":"50494:12:5"}],"id":7502,"name":"VariableDeclarationStatement","src":"50494:12:5"},{"attributes":{"externalReferences":[{"ret":{"declaration":7498,"isOffset":false,"isSlot":false,"src":"50830:3:5","valueSize":1}},{"hash":{"declaration":7484,"isOffset":false,"isSlot":false,"src":"50589:4:5","valueSize":1}},{"v":{"declaration":7486,"isOffset":false,"isSlot":false,"src":"50629:1:5","valueSize":1}},{"r":{"declaration":7488,"isOffset":false,"isSlot":false,"src":"50666:1:5","valueSize":1}},{"s":{"declaration":7490,"isOffset":false,"isSlot":false,"src":"50703:1:5","valueSize":1}},{"addr":{"declaration":7501,"isOffset":false,"isSlot":false,"src":"50887:4:5","valueSize":1}}],"operations":"{\n let size := mload(0x40)\n mstore(size, hash)\n mstore(add(size, 32), v)\n mstore(add(size, 64), r)\n mstore(add(size, 96), s)\n ret := call(3000, 1, 0, size, 128, size, 32)\n addr := mload(size)\n}"},"children":[],"id":7503,"name":"InlineAssembly","src":"50517:415:5"},{"attributes":{"functionReturnParameters":7496},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"tuple(bool,address)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7498,"type":"bool","value":"ret"},"id":7504,"name":"Identifier","src":"50934:3:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7501,"type":"address","value":"addr"},"id":7505,"name":"Identifier","src":"50939:4:5"}],"id":7506,"name":"TupleExpression","src":"50933:11:5"}],"id":7507,"name":"Return","src":"50926:18:5"}],"id":7508,"name":"Block","src":"50081:870:5"}],"id":7509,"name":"FunctionDefinition","src":"49978:973:5"},{"attributes":{"constant":false,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"ecrecovery","payable":false,"scope":7573,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"hash","scope":7567,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":7510,"name":"ElementaryTypeName","src":"51095:7:5"}],"id":7511,"name":"VariableDeclaration","src":"51095:12:5"},{"attributes":{"constant":false,"name":"sig","scope":7567,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":7512,"name":"ElementaryTypeName","src":"51109:5:5"}],"id":7513,"name":"VariableDeclaration","src":"51109:9:5"}],"id":7514,"name":"ParameterList","src":"51094:25:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":7567,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":7515,"name":"ElementaryTypeName","src":"51138:4:5"}],"id":7516,"name":"VariableDeclaration","src":"51138:4:5"},{"attributes":{"constant":false,"name":"","scope":7567,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":7517,"name":"ElementaryTypeName","src":"51144:7:5"}],"id":7518,"name":"VariableDeclaration","src":"51144:7:5"}],"id":7519,"name":"ParameterList","src":"51137:15:5"},{"children":[{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"r","scope":7567,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":7520,"name":"ElementaryTypeName","src":"51163:7:5"}],"id":7521,"name":"VariableDeclaration","src":"51163:9:5"}],"id":7522,"name":"VariableDeclarationStatement","src":"51163:9:5"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"s","scope":7567,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":7523,"name":"ElementaryTypeName","src":"51182:7:5"}],"id":7524,"name":"VariableDeclaration","src":"51182:9:5"}],"id":7525,"name":"VariableDeclarationStatement","src":"51182:9:5"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"v","scope":7567,"stateVariable":false,"storageLocation":"default","type":"uint8","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint8","type":"uint8"},"id":7526,"name":"ElementaryTypeName","src":"51201:5:5"}],"id":7527,"name":"VariableDeclaration","src":"51201:7:5"}],"id":7528,"name":"VariableDeclarationStatement","src":"51201:7:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7513,"type":"bytes memory","value":"sig"},"id":7529,"name":"Identifier","src":"51223:3:5"}],"id":7530,"name":"MemberAccess","src":"51223:10:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3635","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 65","value":"65"},"id":7531,"name":"Literal","src":"51237:2:5"}],"id":7532,"name":"BinaryOperation","src":"51223:16:5"},{"attributes":{"functionReturnParameters":7519},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"tuple(bool,int_const 0)"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"66616c7365","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"false"},"id":7533,"name":"Literal","src":"51259:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":7534,"name":"Literal","src":"51266:1:5"}],"id":7535,"name":"TupleExpression","src":"51258:10:5"}],"id":7536,"name":"Return","src":"51251:17:5"}],"id":7537,"name":"IfStatement","src":"51219:49:5"},{"attributes":{"externalReferences":[{"r":{"declaration":7521,"isOffset":false,"isSlot":false,"src":"51460:1:5","valueSize":1}},{"v":{"declaration":7527,"isOffset":false,"isSlot":false,"src":"51747:1:5","valueSize":1}},{"sig":{"declaration":7513,"isOffset":false,"isSlot":false,"src":"51475:3:5","valueSize":1}},{"s":{"declaration":7524,"isOffset":false,"isSlot":false,"src":"51497:1:5","valueSize":1}},{"sig":{"declaration":7513,"isOffset":false,"isSlot":false,"src":"51512:3:5","valueSize":1}},{"sig":{"declaration":7513,"isOffset":false,"isSlot":false,"src":"51770:3:5","valueSize":1}}],"operations":"{\n r := mload(add(sig, 32))\n s := mload(add(sig, 64))\n v := byte(0, mload(add(sig, 96)))\n}"},"children":[],"id":7538,"name":"InlineAssembly","src":"51437:875:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7527,"type":"uint8","value":"v"},"id":7539,"name":"Identifier","src":"52314:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3237","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 27","value":"27"},"id":7540,"name":"Literal","src":"52318:2:5"}],"id":7541,"name":"BinaryOperation","src":"52314:6:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint8"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7527,"type":"uint8","value":"v"},"id":7542,"name":"Identifier","src":"52332:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3237","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 27","value":"27"},"id":7543,"name":"Literal","src":"52337:2:5"}],"id":7544,"name":"Assignment","src":"52332:7:5"}],"id":7545,"name":"ExpressionStatement","src":"52332:7:5"}],"id":7546,"name":"IfStatement","src":"52310:29:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&&","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7527,"type":"uint8","value":"v"},"id":7547,"name":"Identifier","src":"52354:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3237","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 27","value":"27"},"id":7548,"name":"Literal","src":"52359:2:5"}],"id":7549,"name":"BinaryOperation","src":"52354:7:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7527,"type":"uint8","value":"v"},"id":7550,"name":"Identifier","src":"52365:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3238","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 28","value":"28"},"id":7551,"name":"Literal","src":"52370:2:5"}],"id":7552,"name":"BinaryOperation","src":"52365:7:5"}],"id":7553,"name":"BinaryOperation","src":"52354:18:5"},{"attributes":{"functionReturnParameters":7519},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"tuple(bool,int_const 0)"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"66616c7365","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"false"},"id":7554,"name":"Literal","src":"52394:5:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":7555,"name":"Literal","src":"52401:1:5"}],"id":7556,"name":"TupleExpression","src":"52393:10:5"}],"id":7557,"name":"Return","src":"52386:17:5"}],"id":7558,"name":"IfStatement","src":"52350:53:5"},{"attributes":{"functionReturnParameters":7519},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple(bool,address)","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[null],"referencedDeclaration":7509,"type":"function (bytes32,uint8,bytes32,bytes32) returns (bool,address)","value":"safer_ecrecover"},"id":7559,"name":"Identifier","src":"52421:15:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7511,"type":"bytes32","value":"hash"},"id":7560,"name":"Identifier","src":"52437:4:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7527,"type":"uint8","value":"v"},"id":7561,"name":"Identifier","src":"52443:1:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7521,"type":"bytes32","value":"r"},"id":7562,"name":"Identifier","src":"52446:1:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7524,"type":"bytes32","value":"s"},"id":7563,"name":"Identifier","src":"52449:1:5"}],"id":7564,"name":"FunctionCall","src":"52421:30:5"}],"id":7565,"name":"Return","src":"52414:37:5"}],"id":7566,"name":"Block","src":"51153:1305:5"}],"id":7567,"name":"FunctionDefinition","src":"51075:1383:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"safeMemoryCleaner","payable":false,"scope":7573,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":7568,"name":"ParameterList","src":"52490:2:5"},{"attributes":{"parameters":[null]},"children":[],"id":7569,"name":"ParameterList","src":"52507:0:5"},{"children":[{"attributes":{"externalReferences":[null],"operations":"{\n let fmem := mload(0x40)\n codecopy(fmem, codesize(), sub(msize(), fmem))\n}"},"children":[],"id":7570,"name":"InlineAssembly","src":"52517:117:5"}],"id":7571,"name":"Block","src":"52507:127:5"}],"id":7572,"name":"FunctionDefinition","src":"52464:170:5"}],"id":7573,"name":"ContractDefinition","src":"10650:41987:5"}],"id":7574,"name":"SourceUnit","src":"1375:51282:5"}},"externals/strings.sol":{"AST":{"attributes":{"absolutePath":"externals/strings.sol","exportedSymbols":{"strings":[12043]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".14"]},"id":10350,"name":"PragmaDirective","src":"2574:24:6"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"library","documentation":null,"fullyImplemented":true,"linearizedBaseContracts":[12043],"name":"strings","scope":12044},"children":[{"attributes":{"canonicalName":"strings.slice","name":"slice","scope":12043,"visibility":"public"},"children":[{"attributes":{"constant":false,"name":"_len","scope":10355,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":10351,"name":"ElementaryTypeName","src":"2645:4:6"}],"id":10352,"name":"VariableDeclaration","src":"2645:9:6"},{"attributes":{"constant":false,"name":"_ptr","scope":10355,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":10353,"name":"ElementaryTypeName","src":"2664:4:6"}],"id":10354,"name":"VariableDeclaration","src":"2664:9:6"}],"id":10355,"name":"StructDefinition","src":"2622:58:6"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"memcpy","payable":false,"scope":12043,"stateMutability":"pure","superFunction":null,"visibility":"private"},"children":[{"children":[{"attributes":{"constant":false,"name":"dest","scope":10395,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":10356,"name":"ElementaryTypeName","src":"2702:4:6"}],"id":10357,"name":"VariableDeclaration","src":"2702:9:6"},{"attributes":{"constant":false,"name":"src","scope":10395,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":10358,"name":"ElementaryTypeName","src":"2713:4:6"}],"id":10359,"name":"VariableDeclaration","src":"2713:8:6"},{"attributes":{"constant":false,"name":"len","scope":10395,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":10360,"name":"ElementaryTypeName","src":"2723:4:6"}],"id":10361,"name":"VariableDeclaration","src":"2723:8:6"}],"id":10362,"name":"ParameterList","src":"2701:31:6"},{"attributes":{"parameters":[null]},"children":[],"id":10363,"name":"ParameterList","src":"2746:0:6"},{"children":[{"attributes":{"initializationExpression":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10361,"type":"uint256","value":"len"},"id":10364,"name":"Identifier","src":"2812:3:6"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":10365,"name":"Literal","src":"2819:2:6"}],"id":10366,"name":"BinaryOperation","src":"2812:9:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10361,"type":"uint256","value":"len"},"id":10367,"name":"Identifier","src":"2823:3:6"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":10368,"name":"Literal","src":"2830:2:6"}],"id":10369,"name":"Assignment","src":"2823:9:6"}],"id":10370,"name":"ExpressionStatement","src":"2823:9:6"},{"children":[{"attributes":{"externalReferences":[{"dest":{"declaration":10357,"isOffset":false,"isSlot":false,"src":"2882:4:6","valueSize":1}},{"src":{"declaration":10359,"isOffset":false,"isSlot":false,"src":"2894:3:6","valueSize":1}}],"operations":"{\n mstore(dest, mload(src))\n}"},"children":[],"id":10371,"name":"InlineAssembly","src":"2848:82:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10357,"type":"uint256","value":"dest"},"id":10372,"name":"Identifier","src":"2926:4:6"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":10373,"name":"Literal","src":"2934:2:6"}],"id":10374,"name":"Assignment","src":"2926:10:6"}],"id":10375,"name":"ExpressionStatement","src":"2926:10:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10359,"type":"uint256","value":"src"},"id":10376,"name":"Identifier","src":"2950:3:6"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":10377,"name":"Literal","src":"2957:2:6"}],"id":10378,"name":"Assignment","src":"2950:9:6"}],"id":10379,"name":"ExpressionStatement","src":"2950:9:6"}],"id":10380,"name":"Block","src":"2834:136:6"}],"id":10381,"name":"ForStatement","src":"2806:164:6"},{"attributes":{"assignments":[10383]},"children":[{"attributes":{"constant":false,"name":"mask","scope":10395,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":10382,"name":"ElementaryTypeName","src":"3012:4:6"}],"id":10383,"name":"VariableDeclaration","src":"3012:9:6"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"**","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"323536","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 256","value":"256"},"id":10384,"name":"Literal","src":"3024:3:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":10385,"name":"Literal","src":"3032:2:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10361,"type":"uint256","value":"len"},"id":10386,"name":"Identifier","src":"3037:3:6"}],"id":10387,"name":"BinaryOperation","src":"3032:8:6"}],"id":10388,"name":"TupleExpression","src":"3031:10:6"}],"id":10389,"name":"BinaryOperation","src":"3024:17:6"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":10390,"name":"Literal","src":"3044:1:6"}],"id":10391,"name":"BinaryOperation","src":"3024:21:6"}],"id":10392,"name":"VariableDeclarationStatement","src":"3012:33:6"},{"attributes":{"externalReferences":[{"mask":{"declaration":10383,"isOffset":false,"isSlot":false,"src":"3113:4:6","valueSize":1}},{"src":{"declaration":10359,"isOffset":false,"isSlot":false,"src":"3103:3:6","valueSize":1}},{"dest":{"declaration":10357,"isOffset":false,"isSlot":false,"src":"3158:4:6","valueSize":1}},{"mask":{"declaration":10383,"isOffset":false,"isSlot":false,"src":"3165:4:6","valueSize":1}},{"dest":{"declaration":10357,"isOffset":false,"isSlot":false,"src":"3190:4:6","valueSize":1}}],"operations":"{\n let srcpart := and(mload(src), not(mask))\n let destpart := and(mload(dest), mask)\n mstore(dest, or(destpart, srcpart))\n}"},"children":[],"id":10393,"name":"InlineAssembly","src":"3055:179:6"}],"id":10394,"name":"Block","src":"2746:488:6"}],"id":10395,"name":"FunctionDefinition","src":"2686:548:6"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"toSlice","payable":false,"scope":12043,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":10415,"stateVariable":false,"storageLocation":"memory","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":10396,"name":"ElementaryTypeName","src":"3451:6:6"}],"id":10397,"name":"VariableDeclaration","src":"3451:18:6"}],"id":10398,"name":"ParameterList","src":"3450:20:6"},{"children":[{"attributes":{"constant":false,"name":"","scope":10415,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10355,"type":"struct strings.slice"},"id":10399,"name":"UserDefinedTypeName","src":"3494:5:6"}],"id":10400,"name":"VariableDeclaration","src":"3494:5:6"}],"id":10401,"name":"ParameterList","src":"3493:14:6"},{"children":[{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"ptr","scope":10415,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":10402,"name":"ElementaryTypeName","src":"3518:4:6"}],"id":10403,"name":"VariableDeclaration","src":"3518:8:6"}],"id":10404,"name":"VariableDeclarationStatement","src":"3518:8:6"},{"attributes":{"externalReferences":[{"ptr":{"declaration":10403,"isOffset":false,"isSlot":false,"src":"3559:3:6","valueSize":1}},{"self":{"declaration":10397,"isOffset":false,"isSlot":false,"src":"3570:4:6","valueSize":1}}],"operations":"{\n ptr := add(self, 0x20)\n}"},"children":[],"id":10405,"name":"InlineAssembly","src":"3536:70:6"},{"attributes":{"functionReturnParameters":10401},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":true,"lValueRequested":false,"names":[null],"type":"struct strings.slice memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":10355,"type":"type(struct strings.slice storage pointer)","value":"slice"},"id":10406,"name":"Identifier","src":"3607:5:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes storage pointer)","value":"bytes"},"id":10407,"name":"ElementaryTypeNameExpression","src":"3613:5:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10397,"type":"string memory","value":"self"},"id":10408,"name":"Identifier","src":"3619:4:6"}],"id":10409,"name":"FunctionCall","src":"3613:11:6"}],"id":10410,"name":"MemberAccess","src":"3613:18:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10403,"type":"uint256","value":"ptr"},"id":10411,"name":"Identifier","src":"3633:3:6"}],"id":10412,"name":"FunctionCall","src":"3607:30:6"}],"id":10413,"name":"Return","src":"3600:37:6"}],"id":10414,"name":"Block","src":"3508:136:6"}],"id":10415,"name":"FunctionDefinition","src":"3434:210:6"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"len","payable":false,"scope":12043,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":10531,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":10416,"name":"ElementaryTypeName","src":"3853:7:6"}],"id":10417,"name":"VariableDeclaration","src":"3853:12:6"}],"id":10418,"name":"ParameterList","src":"3852:14:6"},{"children":[{"attributes":{"constant":false,"name":"","scope":10531,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":10419,"name":"ElementaryTypeName","src":"3890:4:6"}],"id":10420,"name":"VariableDeclaration","src":"3890:4:6"}],"id":10421,"name":"ParameterList","src":"3889:6:6"},{"children":[{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"ret","scope":10531,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":10422,"name":"ElementaryTypeName","src":"3906:4:6"}],"id":10423,"name":"VariableDeclaration","src":"3906:8:6"}],"id":10424,"name":"VariableDeclarationStatement","src":"3906:8:6"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10417,"type":"bytes32","value":"self"},"id":10425,"name":"Identifier","src":"3928:4:6"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":10426,"name":"Literal","src":"3936:1:6"}],"id":10427,"name":"BinaryOperation","src":"3928:9:6"},{"attributes":{"functionReturnParameters":10421},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":10428,"name":"Literal","src":"3958:1:6"}],"id":10429,"name":"Return","src":"3951:8:6"}],"id":10430,"name":"IfStatement","src":"3924:35:6"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10417,"type":"bytes32","value":"self"},"id":10431,"name":"Identifier","src":"3973:4:6"},{"attributes":{"argumentTypes":null,"hexvalue":"30786666666666666666666666666666666666666666666666666666666666666666","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3402...(31 digits omitted)...1455","value":"0xffffffffffffffffffffffffffffffff"},"id":10432,"name":"Literal","src":"3980:34:6"}],"id":10433,"name":"BinaryOperation","src":"3973:41:6"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":10434,"name":"Literal","src":"4018:1:6"}],"id":10435,"name":"BinaryOperation","src":"3973:46:6"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10423,"type":"uint256","value":"ret"},"id":10436,"name":"Identifier","src":"4035:3:6"},{"attributes":{"argumentTypes":null,"hexvalue":"3136","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 16","value":"16"},"id":10437,"name":"Literal","src":"4042:2:6"}],"id":10438,"name":"Assignment","src":"4035:9:6"}],"id":10439,"name":"ExpressionStatement","src":"4035:9:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10417,"type":"bytes32","value":"self"},"id":10440,"name":"Identifier","src":"4058:4:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes32)","value":"bytes32"},"id":10441,"name":"ElementaryTypeNameExpression","src":"4065:7:6"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"/","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint"},"id":10442,"name":"ElementaryTypeNameExpression","src":"4073:4:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10417,"type":"bytes32","value":"self"},"id":10443,"name":"Identifier","src":"4078:4:6"}],"id":10444,"name":"FunctionCall","src":"4073:10:6"},{"attributes":{"argumentTypes":null,"hexvalue":"3078313030303030303030303030303030303030303030303030303030303030303030","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3402...(31 digits omitted)...1456","value":"0x100000000000000000000000000000000"},"id":10445,"name":"Literal","src":"4086:35:6"}],"id":10446,"name":"BinaryOperation","src":"4073:48:6"}],"id":10447,"name":"FunctionCall","src":"4065:57:6"}],"id":10448,"name":"Assignment","src":"4058:64:6"}],"id":10449,"name":"ExpressionStatement","src":"4058:64:6"}],"id":10450,"name":"Block","src":"4021:112:6"}],"id":10451,"name":"IfStatement","src":"3969:164:6"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10417,"type":"bytes32","value":"self"},"id":10452,"name":"Identifier","src":"4146:4:6"},{"attributes":{"argumentTypes":null,"hexvalue":"307866666666666666666666666666666666","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 18446744073709551615","value":"0xffffffffffffffff"},"id":10453,"name":"Literal","src":"4153:18:6"}],"id":10454,"name":"BinaryOperation","src":"4146:25:6"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":10455,"name":"Literal","src":"4175:1:6"}],"id":10456,"name":"BinaryOperation","src":"4146:30:6"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10423,"type":"uint256","value":"ret"},"id":10457,"name":"Identifier","src":"4192:3:6"},{"attributes":{"argumentTypes":null,"hexvalue":"38","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 8","value":"8"},"id":10458,"name":"Literal","src":"4199:1:6"}],"id":10459,"name":"Assignment","src":"4192:8:6"}],"id":10460,"name":"ExpressionStatement","src":"4192:8:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10417,"type":"bytes32","value":"self"},"id":10461,"name":"Identifier","src":"4214:4:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes32)","value":"bytes32"},"id":10462,"name":"ElementaryTypeNameExpression","src":"4221:7:6"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"/","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint"},"id":10463,"name":"ElementaryTypeNameExpression","src":"4229:4:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10417,"type":"bytes32","value":"self"},"id":10464,"name":"Identifier","src":"4234:4:6"}],"id":10465,"name":"FunctionCall","src":"4229:10:6"},{"attributes":{"argumentTypes":null,"hexvalue":"30783130303030303030303030303030303030","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 18446744073709551616","value":"0x10000000000000000"},"id":10466,"name":"Literal","src":"4242:19:6"}],"id":10467,"name":"BinaryOperation","src":"4229:32:6"}],"id":10468,"name":"FunctionCall","src":"4221:41:6"}],"id":10469,"name":"Assignment","src":"4214:48:6"}],"id":10470,"name":"ExpressionStatement","src":"4214:48:6"}],"id":10471,"name":"Block","src":"4178:95:6"}],"id":10472,"name":"IfStatement","src":"4142:131:6"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10417,"type":"bytes32","value":"self"},"id":10473,"name":"Identifier","src":"4286:4:6"},{"attributes":{"argumentTypes":null,"hexvalue":"30786666666666666666","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4294967295","value":"0xffffffff"},"id":10474,"name":"Literal","src":"4293:10:6"}],"id":10475,"name":"BinaryOperation","src":"4286:17:6"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":10476,"name":"Literal","src":"4307:1:6"}],"id":10477,"name":"BinaryOperation","src":"4286:22:6"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10423,"type":"uint256","value":"ret"},"id":10478,"name":"Identifier","src":"4324:3:6"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":10479,"name":"Literal","src":"4331:1:6"}],"id":10480,"name":"Assignment","src":"4324:8:6"}],"id":10481,"name":"ExpressionStatement","src":"4324:8:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10417,"type":"bytes32","value":"self"},"id":10482,"name":"Identifier","src":"4346:4:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes32)","value":"bytes32"},"id":10483,"name":"ElementaryTypeNameExpression","src":"4353:7:6"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"/","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint"},"id":10484,"name":"ElementaryTypeNameExpression","src":"4361:4:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10417,"type":"bytes32","value":"self"},"id":10485,"name":"Identifier","src":"4366:4:6"}],"id":10486,"name":"FunctionCall","src":"4361:10:6"},{"attributes":{"argumentTypes":null,"hexvalue":"3078313030303030303030","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4294967296","value":"0x100000000"},"id":10487,"name":"Literal","src":"4374:11:6"}],"id":10488,"name":"BinaryOperation","src":"4361:24:6"}],"id":10489,"name":"FunctionCall","src":"4353:33:6"}],"id":10490,"name":"Assignment","src":"4346:40:6"}],"id":10491,"name":"ExpressionStatement","src":"4346:40:6"}],"id":10492,"name":"Block","src":"4310:87:6"}],"id":10493,"name":"IfStatement","src":"4282:115:6"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10417,"type":"bytes32","value":"self"},"id":10494,"name":"Identifier","src":"4410:4:6"},{"attributes":{"argumentTypes":null,"hexvalue":"307866666666","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 65535","value":"0xffff"},"id":10495,"name":"Literal","src":"4417:6:6"}],"id":10496,"name":"BinaryOperation","src":"4410:13:6"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":10497,"name":"Literal","src":"4427:1:6"}],"id":10498,"name":"BinaryOperation","src":"4410:18:6"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10423,"type":"uint256","value":"ret"},"id":10499,"name":"Identifier","src":"4444:3:6"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":10500,"name":"Literal","src":"4451:1:6"}],"id":10501,"name":"Assignment","src":"4444:8:6"}],"id":10502,"name":"ExpressionStatement","src":"4444:8:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10417,"type":"bytes32","value":"self"},"id":10503,"name":"Identifier","src":"4466:4:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes32)","value":"bytes32"},"id":10504,"name":"ElementaryTypeNameExpression","src":"4473:7:6"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"/","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint"},"id":10505,"name":"ElementaryTypeNameExpression","src":"4481:4:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10417,"type":"bytes32","value":"self"},"id":10506,"name":"Identifier","src":"4486:4:6"}],"id":10507,"name":"FunctionCall","src":"4481:10:6"},{"attributes":{"argumentTypes":null,"hexvalue":"30783130303030","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 65536","value":"0x10000"},"id":10508,"name":"Literal","src":"4494:7:6"}],"id":10509,"name":"BinaryOperation","src":"4481:20:6"}],"id":10510,"name":"FunctionCall","src":"4473:29:6"}],"id":10511,"name":"Assignment","src":"4466:36:6"}],"id":10512,"name":"ExpressionStatement","src":"4466:36:6"}],"id":10513,"name":"Block","src":"4430:83:6"}],"id":10514,"name":"IfStatement","src":"4406:107:6"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10417,"type":"bytes32","value":"self"},"id":10515,"name":"Identifier","src":"4526:4:6"},{"attributes":{"argumentTypes":null,"hexvalue":"30786666","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 255","value":"0xff"},"id":10516,"name":"Literal","src":"4533:4:6"}],"id":10517,"name":"BinaryOperation","src":"4526:11:6"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":10518,"name":"Literal","src":"4541:1:6"}],"id":10519,"name":"BinaryOperation","src":"4526:16:6"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10423,"type":"uint256","value":"ret"},"id":10520,"name":"Identifier","src":"4558:3:6"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":10521,"name":"Literal","src":"4565:1:6"}],"id":10522,"name":"Assignment","src":"4558:8:6"}],"id":10523,"name":"ExpressionStatement","src":"4558:8:6"}],"id":10524,"name":"Block","src":"4544:33:6"}],"id":10525,"name":"IfStatement","src":"4522:55:6"},{"attributes":{"functionReturnParameters":10421},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":10526,"name":"Literal","src":"4593:2:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10423,"type":"uint256","value":"ret"},"id":10527,"name":"Identifier","src":"4598:3:6"}],"id":10528,"name":"BinaryOperation","src":"4593:8:6"}],"id":10529,"name":"Return","src":"4586:15:6"}],"id":10530,"name":"Block","src":"3896:712:6"}],"id":10531,"name":"FunctionDefinition","src":"3840:768:6"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"toSliceB32","payable":false,"scope":12043,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":10548,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":10532,"name":"ElementaryTypeName","src":"4934:7:6"}],"id":10533,"name":"VariableDeclaration","src":"4934:12:6"}],"id":10534,"name":"ParameterList","src":"4933:14:6"},{"children":[{"attributes":{"constant":false,"name":"ret","scope":10548,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10355,"type":"struct strings.slice"},"id":10535,"name":"UserDefinedTypeName","src":"4971:5:6"}],"id":10536,"name":"VariableDeclaration","src":"4971:16:6"}],"id":10537,"name":"ParameterList","src":"4970:18:6"},{"children":[{"attributes":{"externalReferences":[{"ret":{"declaration":10536,"isOffset":false,"isSlot":false,"src":"5222:3:6","valueSize":1}},{"self":{"declaration":10533,"isOffset":false,"isSlot":false,"src":"5193:4:6","valueSize":1}}],"operations":"{\n let ptr := mload(0x40)\n mstore(0x40, add(ptr, 0x20))\n mstore(ptr, self)\n mstore(add(ret, 0x20), ptr)\n}"},"children":[],"id":10538,"name":"InlineAssembly","src":"5082:178:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":10352,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10536,"type":"struct strings.slice memory","value":"ret"},"id":10539,"name":"Identifier","src":"5257:3:6"}],"id":10541,"name":"MemberAccess","src":"5257:8:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[10531,10681],"referencedDeclaration":10531,"type":"function (bytes32) pure returns (uint256)","value":"len"},"id":10542,"name":"Identifier","src":"5268:3:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10533,"type":"bytes32","value":"self"},"id":10543,"name":"Identifier","src":"5272:4:6"}],"id":10544,"name":"FunctionCall","src":"5268:9:6"}],"id":10545,"name":"Assignment","src":"5257:20:6"}],"id":10546,"name":"ExpressionStatement","src":"5257:20:6"}],"id":10547,"name":"Block","src":"4989:295:6"}],"id":10548,"name":"FunctionDefinition","src":"4914:370:6"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"copy","payable":false,"scope":12043,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":10563,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10355,"type":"struct strings.slice"},"id":10549,"name":"UserDefinedTypeName","src":"5499:5:6"}],"id":10550,"name":"VariableDeclaration","src":"5499:17:6"}],"id":10551,"name":"ParameterList","src":"5498:19:6"},{"children":[{"attributes":{"constant":false,"name":"","scope":10563,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10355,"type":"struct strings.slice"},"id":10552,"name":"UserDefinedTypeName","src":"5541:5:6"}],"id":10553,"name":"VariableDeclaration","src":"5541:5:6"}],"id":10554,"name":"ParameterList","src":"5540:14:6"},{"children":[{"attributes":{"functionReturnParameters":10554},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":true,"lValueRequested":false,"names":[null],"type":"struct strings.slice memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":10355,"type":"type(struct strings.slice storage pointer)","value":"slice"},"id":10555,"name":"Identifier","src":"5572:5:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10352,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10550,"type":"struct strings.slice memory","value":"self"},"id":10556,"name":"Identifier","src":"5578:4:6"}],"id":10557,"name":"MemberAccess","src":"5578:9:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":10354,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10550,"type":"struct strings.slice memory","value":"self"},"id":10558,"name":"Identifier","src":"5589:4:6"}],"id":10559,"name":"MemberAccess","src":"5589:9:6"}],"id":10560,"name":"FunctionCall","src":"5572:27:6"}],"id":10561,"name":"Return","src":"5565:34:6"}],"id":10562,"name":"Block","src":"5555:51:6"}],"id":10563,"name":"FunctionDefinition","src":"5485:121:6"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"toString","payable":false,"scope":12043,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":10593,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10355,"type":"struct strings.slice"},"id":10564,"name":"UserDefinedTypeName","src":"5796:5:6"}],"id":10565,"name":"VariableDeclaration","src":"5796:17:6"}],"id":10566,"name":"ParameterList","src":"5795:19:6"},{"children":[{"attributes":{"constant":false,"name":"","scope":10593,"stateVariable":false,"storageLocation":"memory","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":10567,"name":"ElementaryTypeName","src":"5838:6:6"}],"id":10568,"name":"VariableDeclaration","src":"5838:6:6"}],"id":10569,"name":"ParameterList","src":"5837:15:6"},{"children":[{"attributes":{"assignments":[10571]},"children":[{"attributes":{"constant":false,"name":"ret","scope":10593,"stateVariable":false,"storageLocation":"memory","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":10570,"name":"ElementaryTypeName","src":"5863:6:6"}],"id":10571,"name":"VariableDeclaration","src":"5863:17:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (string memory)"},"children":[{"attributes":{"name":"string","type":"string"},"id":10572,"name":"ElementaryTypeName","src":"5887:6:6"}],"id":10573,"name":"NewExpression","src":"5883:10:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10352,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10565,"type":"struct strings.slice memory","value":"self"},"id":10574,"name":"Identifier","src":"5894:4:6"}],"id":10575,"name":"MemberAccess","src":"5894:9:6"}],"id":10576,"name":"FunctionCall","src":"5883:21:6"}],"id":10577,"name":"VariableDeclarationStatement","src":"5863:41:6"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"retptr","scope":10593,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":10578,"name":"ElementaryTypeName","src":"5914:4:6"}],"id":10579,"name":"VariableDeclaration","src":"5914:11:6"}],"id":10580,"name":"VariableDeclarationStatement","src":"5914:11:6"},{"attributes":{"externalReferences":[{"retptr":{"declaration":10579,"isOffset":false,"isSlot":false,"src":"5946:6:6","valueSize":1}},{"ret":{"declaration":10571,"isOffset":false,"isSlot":false,"src":"5960:3:6","valueSize":1}}],"operations":"{\n retptr := add(ret, 32)\n}"},"children":[],"id":10581,"name":"InlineAssembly","src":"5935:51:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":10395,"type":"function (uint256,uint256,uint256) pure","value":"memcpy"},"id":10582,"name":"Identifier","src":"5980:6:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10579,"type":"uint256","value":"retptr"},"id":10583,"name":"Identifier","src":"5987:6:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":10354,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10565,"type":"struct strings.slice memory","value":"self"},"id":10584,"name":"Identifier","src":"5995:4:6"}],"id":10585,"name":"MemberAccess","src":"5995:9:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10352,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10565,"type":"struct strings.slice memory","value":"self"},"id":10586,"name":"Identifier","src":"6006:4:6"}],"id":10587,"name":"MemberAccess","src":"6006:9:6"}],"id":10588,"name":"FunctionCall","src":"5980:36:6"}],"id":10589,"name":"ExpressionStatement","src":"5980:36:6"},{"attributes":{"functionReturnParameters":10569},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10571,"type":"string memory","value":"ret"},"id":10590,"name":"Identifier","src":"6033:3:6"}],"id":10591,"name":"Return","src":"6026:10:6"}],"id":10592,"name":"Block","src":"5853:190:6"}],"id":10593,"name":"FunctionDefinition","src":"5778:265:6"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"len","payable":false,"scope":12043,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":10681,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10355,"type":"struct strings.slice"},"id":10594,"name":"UserDefinedTypeName","src":"6447:5:6"}],"id":10595,"name":"VariableDeclaration","src":"6447:17:6"}],"id":10596,"name":"ParameterList","src":"6446:19:6"},{"children":[{"attributes":{"constant":false,"name":"l","scope":10681,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":10597,"name":"ElementaryTypeName","src":"6489:4:6"}],"id":10598,"name":"VariableDeclaration","src":"6489:6:6"}],"id":10599,"name":"ParameterList","src":"6488:8:6"},{"children":[{"attributes":{"assignments":[10601]},"children":[{"attributes":{"constant":false,"name":"ptr","scope":10681,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":10600,"name":"ElementaryTypeName","src":"6582:4:6"}],"id":10601,"name":"VariableDeclaration","src":"6582:8:6"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":10354,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10595,"type":"struct strings.slice memory","value":"self"},"id":10602,"name":"Identifier","src":"6593:4:6"}],"id":10603,"name":"MemberAccess","src":"6593:9:6"},{"attributes":{"argumentTypes":null,"hexvalue":"3331","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 31","value":"31"},"id":10604,"name":"Literal","src":"6605:2:6"}],"id":10605,"name":"BinaryOperation","src":"6593:14:6"}],"id":10606,"name":"VariableDeclarationStatement","src":"6582:25:6"},{"attributes":{"assignments":[10608]},"children":[{"attributes":{"constant":false,"name":"end","scope":10681,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":10607,"name":"ElementaryTypeName","src":"6617:4:6"}],"id":10608,"name":"VariableDeclaration","src":"6617:8:6"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10601,"type":"uint256","value":"ptr"},"id":10609,"name":"Identifier","src":"6628:3:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10352,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10595,"type":"struct strings.slice memory","value":"self"},"id":10610,"name":"Identifier","src":"6634:4:6"}],"id":10611,"name":"MemberAccess","src":"6634:9:6"}],"id":10612,"name":"BinaryOperation","src":"6628:15:6"}],"id":10613,"name":"VariableDeclarationStatement","src":"6617:26:6"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10598,"type":"uint256","value":"l"},"id":10614,"name":"Identifier","src":"6658:1:6"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":10615,"name":"Literal","src":"6662:1:6"}],"id":10616,"name":"Assignment","src":"6658:5:6"}],"id":10617,"name":"ExpressionStatement","src":"6658:5:6"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10601,"type":"uint256","value":"ptr"},"id":10618,"name":"Identifier","src":"6665:3:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10608,"type":"uint256","value":"end"},"id":10619,"name":"Identifier","src":"6671:3:6"}],"id":10620,"name":"BinaryOperation","src":"6665:9:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10598,"type":"uint256","value":"l"},"id":10621,"name":"Identifier","src":"6676:1:6"}],"id":10622,"name":"UnaryOperation","src":"6676:3:6"}],"id":10623,"name":"ExpressionStatement","src":"6676:3:6"},{"children":[{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"b","scope":10681,"stateVariable":false,"storageLocation":"default","type":"uint8","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint8","type":"uint8"},"id":10624,"name":"ElementaryTypeName","src":"6695:5:6"}],"id":10625,"name":"VariableDeclaration","src":"6695:7:6"}],"id":10626,"name":"VariableDeclarationStatement","src":"6695:7:6"},{"attributes":{"externalReferences":[{"ptr":{"declaration":10601,"isOffset":false,"isSlot":false,"src":"6742:3:6","valueSize":1}},{"b":{"declaration":10625,"isOffset":false,"isSlot":false,"src":"6727:1:6","valueSize":1}}],"operations":"{\n b := and(mload(ptr), 0xFF)\n}"},"children":[],"id":10627,"name":"InlineAssembly","src":"6716:54:6"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10625,"type":"uint8","value":"b"},"id":10628,"name":"Identifier","src":"6772:1:6"},{"attributes":{"argumentTypes":null,"hexvalue":"30783830","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 128","value":"0x80"},"id":10629,"name":"Literal","src":"6776:4:6"}],"id":10630,"name":"BinaryOperation","src":"6772:8:6"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10601,"type":"uint256","value":"ptr"},"id":10631,"name":"Identifier","src":"6800:3:6"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":10632,"name":"Literal","src":"6807:1:6"}],"id":10633,"name":"Assignment","src":"6800:8:6"}],"id":10634,"name":"ExpressionStatement","src":"6800:8:6"}],"id":10635,"name":"Block","src":"6782:41:6"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10625,"type":"uint8","value":"b"},"id":10636,"name":"Identifier","src":"6832:1:6"},{"attributes":{"argumentTypes":null,"hexvalue":"30784530","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 224","value":"0xE0"},"id":10637,"name":"Literal","src":"6836:4:6"}],"id":10638,"name":"BinaryOperation","src":"6832:8:6"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10601,"type":"uint256","value":"ptr"},"id":10639,"name":"Identifier","src":"6860:3:6"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":10640,"name":"Literal","src":"6867:1:6"}],"id":10641,"name":"Assignment","src":"6860:8:6"}],"id":10642,"name":"ExpressionStatement","src":"6860:8:6"}],"id":10643,"name":"Block","src":"6842:41:6"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10625,"type":"uint8","value":"b"},"id":10644,"name":"Identifier","src":"6892:1:6"},{"attributes":{"argumentTypes":null,"hexvalue":"30784630","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 240","value":"0xF0"},"id":10645,"name":"Literal","src":"6896:4:6"}],"id":10646,"name":"BinaryOperation","src":"6892:8:6"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10601,"type":"uint256","value":"ptr"},"id":10647,"name":"Identifier","src":"6920:3:6"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":10648,"name":"Literal","src":"6927:1:6"}],"id":10649,"name":"Assignment","src":"6920:8:6"}],"id":10650,"name":"ExpressionStatement","src":"6920:8:6"}],"id":10651,"name":"Block","src":"6902:41:6"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10625,"type":"uint8","value":"b"},"id":10652,"name":"Identifier","src":"6952:1:6"},{"attributes":{"argumentTypes":null,"hexvalue":"30784638","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 248","value":"0xF8"},"id":10653,"name":"Literal","src":"6956:4:6"}],"id":10654,"name":"BinaryOperation","src":"6952:8:6"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10601,"type":"uint256","value":"ptr"},"id":10655,"name":"Identifier","src":"6980:3:6"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":10656,"name":"Literal","src":"6987:1:6"}],"id":10657,"name":"Assignment","src":"6980:8:6"}],"id":10658,"name":"ExpressionStatement","src":"6980:8:6"}],"id":10659,"name":"Block","src":"6962:41:6"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10625,"type":"uint8","value":"b"},"id":10660,"name":"Identifier","src":"7012:1:6"},{"attributes":{"argumentTypes":null,"hexvalue":"30784643","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 252","value":"0xFC"},"id":10661,"name":"Literal","src":"7016:4:6"}],"id":10662,"name":"BinaryOperation","src":"7012:8:6"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10601,"type":"uint256","value":"ptr"},"id":10663,"name":"Identifier","src":"7040:3:6"},{"attributes":{"argumentTypes":null,"hexvalue":"35","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 5","value":"5"},"id":10664,"name":"Literal","src":"7047:1:6"}],"id":10665,"name":"Assignment","src":"7040:8:6"}],"id":10666,"name":"ExpressionStatement","src":"7040:8:6"}],"id":10667,"name":"Block","src":"7022:41:6"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10601,"type":"uint256","value":"ptr"},"id":10668,"name":"Identifier","src":"7087:3:6"},{"attributes":{"argumentTypes":null,"hexvalue":"36","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 6","value":"6"},"id":10669,"name":"Literal","src":"7094:1:6"}],"id":10670,"name":"Assignment","src":"7087:8:6"}],"id":10671,"name":"ExpressionStatement","src":"7087:8:6"}],"id":10672,"name":"Block","src":"7069:41:6"}],"id":10673,"name":"IfStatement","src":"7009:101:6"}],"id":10674,"name":"IfStatement","src":"6949:161:6"}],"id":10675,"name":"IfStatement","src":"6889:221:6"}],"id":10676,"name":"IfStatement","src":"6829:281:6"}],"id":10677,"name":"IfStatement","src":"6768:342:6"}],"id":10678,"name":"Block","src":"6681:439:6"}],"id":10679,"name":"ForStatement","src":"6653:467:6"}],"id":10680,"name":"Block","src":"6497:629:6"}],"id":10681,"name":"FunctionDefinition","src":"6434:692:6"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"empty","payable":false,"scope":12043,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":10694,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10355,"type":"struct strings.slice"},"id":10682,"name":"UserDefinedTypeName","src":"7334:5:6"}],"id":10683,"name":"VariableDeclaration","src":"7334:17:6"}],"id":10684,"name":"ParameterList","src":"7333:19:6"},{"children":[{"attributes":{"constant":false,"name":"","scope":10694,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":10685,"name":"ElementaryTypeName","src":"7376:4:6"}],"id":10686,"name":"VariableDeclaration","src":"7376:4:6"}],"id":10687,"name":"ParameterList","src":"7375:6:6"},{"children":[{"attributes":{"functionReturnParameters":10687},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10352,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10683,"type":"struct strings.slice memory","value":"self"},"id":10688,"name":"Identifier","src":"7399:4:6"}],"id":10689,"name":"MemberAccess","src":"7399:9:6"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":10690,"name":"Literal","src":"7412:1:6"}],"id":10691,"name":"BinaryOperation","src":"7399:14:6"}],"id":10692,"name":"Return","src":"7392:21:6"}],"id":10693,"name":"Block","src":"7382:38:6"}],"id":10694,"name":"FunctionDefinition","src":"7319:101:6"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"compare","payable":false,"scope":12043,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":10823,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10355,"type":"struct strings.slice"},"id":10695,"name":"UserDefinedTypeName","src":"7865:5:6"}],"id":10696,"name":"VariableDeclaration","src":"7865:17:6"},{"attributes":{"constant":false,"name":"other","scope":10823,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10355,"type":"struct strings.slice"},"id":10697,"name":"UserDefinedTypeName","src":"7884:5:6"}],"id":10698,"name":"VariableDeclaration","src":"7884:18:6"}],"id":10699,"name":"ParameterList","src":"7864:39:6"},{"children":[{"attributes":{"constant":false,"name":"","scope":10823,"stateVariable":false,"storageLocation":"default","type":"int256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"int","type":"int256"},"id":10700,"name":"ElementaryTypeName","src":"7927:3:6"}],"id":10701,"name":"VariableDeclaration","src":"7927:3:6"}],"id":10702,"name":"ParameterList","src":"7926:5:6"},{"children":[{"attributes":{"assignments":[10704]},"children":[{"attributes":{"constant":false,"name":"shortest","scope":10823,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":10703,"name":"ElementaryTypeName","src":"7942:4:6"}],"id":10704,"name":"VariableDeclaration","src":"7942:13:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10352,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10696,"type":"struct strings.slice memory","value":"self"},"id":10705,"name":"Identifier","src":"7958:4:6"}],"id":10706,"name":"MemberAccess","src":"7958:9:6"}],"id":10707,"name":"VariableDeclarationStatement","src":"7942:25:6"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10352,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10698,"type":"struct strings.slice memory","value":"other"},"id":10708,"name":"Identifier","src":"7981:5:6"}],"id":10709,"name":"MemberAccess","src":"7981:10:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10352,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10696,"type":"struct strings.slice memory","value":"self"},"id":10710,"name":"Identifier","src":"7994:4:6"}],"id":10711,"name":"MemberAccess","src":"7994:9:6"}],"id":10712,"name":"BinaryOperation","src":"7981:22:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10704,"type":"uint256","value":"shortest"},"id":10713,"name":"Identifier","src":"8017:8:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10352,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10698,"type":"struct strings.slice memory","value":"other"},"id":10714,"name":"Identifier","src":"8028:5:6"}],"id":10715,"name":"MemberAccess","src":"8028:10:6"}],"id":10716,"name":"Assignment","src":"8017:21:6"}],"id":10717,"name":"ExpressionStatement","src":"8017:21:6"}],"id":10718,"name":"IfStatement","src":"7977:61:6"},{"attributes":{"assignments":[10720]},"children":[{"attributes":{"constant":false,"name":"selfptr","scope":10823,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":10719,"name":"ElementaryTypeName","src":"8049:4:6"}],"id":10720,"name":"VariableDeclaration","src":"8049:12:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":10354,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10696,"type":"struct strings.slice memory","value":"self"},"id":10721,"name":"Identifier","src":"8064:4:6"}],"id":10722,"name":"MemberAccess","src":"8064:9:6"}],"id":10723,"name":"VariableDeclarationStatement","src":"8049:24:6"},{"attributes":{"assignments":[10725]},"children":[{"attributes":{"constant":false,"name":"otherptr","scope":10823,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":10724,"name":"ElementaryTypeName","src":"8083:4:6"}],"id":10725,"name":"VariableDeclaration","src":"8083:13:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":10354,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10698,"type":"struct strings.slice memory","value":"other"},"id":10726,"name":"Identifier","src":"8099:5:6"}],"id":10727,"name":"MemberAccess","src":"8099:10:6"}],"id":10728,"name":"VariableDeclarationStatement","src":"8083:26:6"},{"children":[{"attributes":{"assignments":[10730]},"children":[{"attributes":{"constant":false,"name":"idx","scope":10823,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":10729,"name":"ElementaryTypeName","src":"8124:4:6"}],"id":10730,"name":"VariableDeclaration","src":"8124:8:6"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":10731,"name":"Literal","src":"8135:1:6"}],"id":10732,"name":"VariableDeclarationStatement","src":"8124:12:6"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10730,"type":"uint256","value":"idx"},"id":10733,"name":"Identifier","src":"8138:3:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10704,"type":"uint256","value":"shortest"},"id":10734,"name":"Identifier","src":"8144:8:6"}],"id":10735,"name":"BinaryOperation","src":"8138:14:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10730,"type":"uint256","value":"idx"},"id":10736,"name":"Identifier","src":"8154:3:6"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":10737,"name":"Literal","src":"8161:2:6"}],"id":10738,"name":"Assignment","src":"8154:9:6"}],"id":10739,"name":"ExpressionStatement","src":"8154:9:6"},{"children":[{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"a","scope":10823,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":10740,"name":"ElementaryTypeName","src":"8179:4:6"}],"id":10741,"name":"VariableDeclaration","src":"8179:6:6"}],"id":10742,"name":"VariableDeclarationStatement","src":"8179:6:6"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"b","scope":10823,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":10743,"name":"ElementaryTypeName","src":"8199:4:6"}],"id":10744,"name":"VariableDeclaration","src":"8199:6:6"}],"id":10745,"name":"VariableDeclarationStatement","src":"8199:6:6"},{"attributes":{"externalReferences":[{"selfptr":{"declaration":10720,"isOffset":false,"isSlot":false,"src":"8257:7:6","valueSize":1}},{"a":{"declaration":10741,"isOffset":false,"isSlot":false,"src":"8246:1:6","valueSize":1}},{"b":{"declaration":10744,"isOffset":false,"isSlot":false,"src":"8282:1:6","valueSize":1}},{"otherptr":{"declaration":10725,"isOffset":false,"isSlot":false,"src":"8293:8:6","valueSize":1}}],"operations":"{\n a := mload(selfptr)\n b := mload(otherptr)\n}"},"children":[],"id":10746,"name":"InlineAssembly","src":"8219:112:6"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10741,"type":"uint256","value":"a"},"id":10747,"name":"Identifier","src":"8333:1:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10744,"type":"uint256","value":"b"},"id":10748,"name":"Identifier","src":"8338:1:6"}],"id":10749,"name":"BinaryOperation","src":"8333:6:6"},{"children":[{"attributes":{"assignments":[10751]},"children":[{"attributes":{"constant":false,"name":"mask","scope":10823,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":10750,"name":"ElementaryTypeName","src":"8420:7:6"}],"id":10751,"name":"VariableDeclaration","src":"8420:12:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_-1_by_1","typeString":"int_const -1"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint256"},"id":10752,"name":"ElementaryTypeNameExpression","src":"8435:7:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"-","prefix":true,"type":"int_const -1"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":10753,"name":"Literal","src":"8444:1:6"}],"id":10754,"name":"UnaryOperation","src":"8443:2:6"}],"id":10755,"name":"FunctionCall","src":"8435:11:6"}],"id":10756,"name":"VariableDeclarationStatement","src":"8420:26:6"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10704,"type":"uint256","value":"shortest"},"id":10757,"name":"Identifier","src":"8480:8:6"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":10758,"name":"Literal","src":"8491:2:6"}],"id":10759,"name":"BinaryOperation","src":"8480:13:6"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10751,"type":"uint256","value":"mask"},"id":10760,"name":"Identifier","src":"8515:4:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"~","prefix":true,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"**","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":10761,"name":"Literal","src":"8524:1:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"38","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 8","value":"8"},"id":10762,"name":"Literal","src":"8530:1:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":10763,"name":"Literal","src":"8535:2:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10704,"type":"uint256","value":"shortest"},"id":10764,"name":"Identifier","src":"8540:8:6"}],"id":10765,"name":"BinaryOperation","src":"8535:13:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10730,"type":"uint256","value":"idx"},"id":10766,"name":"Identifier","src":"8551:3:6"}],"id":10767,"name":"BinaryOperation","src":"8535:19:6"}],"id":10768,"name":"TupleExpression","src":"8534:21:6"}],"id":10769,"name":"BinaryOperation","src":"8530:25:6"}],"id":10770,"name":"TupleExpression","src":"8529:27:6"}],"id":10771,"name":"BinaryOperation","src":"8524:32:6"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":10772,"name":"Literal","src":"8559:1:6"}],"id":10773,"name":"BinaryOperation","src":"8524:36:6"}],"id":10774,"name":"TupleExpression","src":"8523:38:6"}],"id":10775,"name":"UnaryOperation","src":"8522:39:6"}],"id":10776,"name":"Assignment","src":"8515:46:6"}],"id":10777,"name":"ExpressionStatement","src":"8515:46:6"}],"id":10778,"name":"Block","src":"8495:85:6"}],"id":10779,"name":"IfStatement","src":"8477:103:6"},{"attributes":{"assignments":[10781]},"children":[{"attributes":{"constant":false,"name":"diff","scope":10823,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":10780,"name":"ElementaryTypeName","src":"8597:7:6"}],"id":10781,"name":"VariableDeclaration","src":"8597:12:6"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10741,"type":"uint256","value":"a"},"id":10782,"name":"Identifier","src":"8613:1:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10751,"type":"uint256","value":"mask"},"id":10783,"name":"Identifier","src":"8617:4:6"}],"id":10784,"name":"BinaryOperation","src":"8613:8:6"}],"id":10785,"name":"TupleExpression","src":"8612:10:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10744,"type":"uint256","value":"b"},"id":10786,"name":"Identifier","src":"8626:1:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10751,"type":"uint256","value":"mask"},"id":10787,"name":"Identifier","src":"8630:4:6"}],"id":10788,"name":"BinaryOperation","src":"8626:8:6"}],"id":10789,"name":"TupleExpression","src":"8625:10:6"}],"id":10790,"name":"BinaryOperation","src":"8612:23:6"}],"id":10791,"name":"VariableDeclarationStatement","src":"8597:38:6"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10781,"type":"uint256","value":"diff"},"id":10792,"name":"Identifier","src":"8657:4:6"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":10793,"name":"Literal","src":"8665:1:6"}],"id":10794,"name":"BinaryOperation","src":"8657:9:6"},{"attributes":{"functionReturnParameters":10702},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"int256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(int256)","value":"int"},"id":10795,"name":"ElementaryTypeNameExpression","src":"8695:3:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10781,"type":"uint256","value":"diff"},"id":10796,"name":"Identifier","src":"8699:4:6"}],"id":10797,"name":"FunctionCall","src":"8695:9:6"}],"id":10798,"name":"Return","src":"8688:16:6"}],"id":10799,"name":"IfStatement","src":"8653:51:6"}],"id":10800,"name":"Block","src":"8341:378:6"}],"id":10801,"name":"IfStatement","src":"8329:390:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10720,"type":"uint256","value":"selfptr"},"id":10802,"name":"Identifier","src":"8732:7:6"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":10803,"name":"Literal","src":"8743:2:6"}],"id":10804,"name":"Assignment","src":"8732:13:6"}],"id":10805,"name":"ExpressionStatement","src":"8732:13:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10725,"type":"uint256","value":"otherptr"},"id":10806,"name":"Identifier","src":"8759:8:6"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":10807,"name":"Literal","src":"8771:2:6"}],"id":10808,"name":"Assignment","src":"8759:14:6"}],"id":10809,"name":"ExpressionStatement","src":"8759:14:6"}],"id":10810,"name":"Block","src":"8165:619:6"}],"id":10811,"name":"ForStatement","src":"8119:665:6"},{"attributes":{"functionReturnParameters":10702},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"int256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"int256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(int256)","value":"int"},"id":10812,"name":"ElementaryTypeNameExpression","src":"8800:3:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10352,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10696,"type":"struct strings.slice memory","value":"self"},"id":10813,"name":"Identifier","src":"8804:4:6"}],"id":10814,"name":"MemberAccess","src":"8804:9:6"}],"id":10815,"name":"FunctionCall","src":"8800:14:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"int256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(int256)","value":"int"},"id":10816,"name":"ElementaryTypeNameExpression","src":"8817:3:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10352,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10698,"type":"struct strings.slice memory","value":"other"},"id":10817,"name":"Identifier","src":"8821:5:6"}],"id":10818,"name":"MemberAccess","src":"8821:10:6"}],"id":10819,"name":"FunctionCall","src":"8817:15:6"}],"id":10820,"name":"BinaryOperation","src":"8800:32:6"}],"id":10821,"name":"Return","src":"8793:39:6"}],"id":10822,"name":"Block","src":"7932:907:6"}],"id":10823,"name":"FunctionDefinition","src":"7848:991:6"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"equals","payable":false,"scope":12043,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":10840,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10355,"type":"struct strings.slice"},"id":10824,"name":"UserDefinedTypeName","src":"9099:5:6"}],"id":10825,"name":"VariableDeclaration","src":"9099:17:6"},{"attributes":{"constant":false,"name":"other","scope":10840,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10355,"type":"struct strings.slice"},"id":10826,"name":"UserDefinedTypeName","src":"9118:5:6"}],"id":10827,"name":"VariableDeclaration","src":"9118:18:6"}],"id":10828,"name":"ParameterList","src":"9098:39:6"},{"children":[{"attributes":{"constant":false,"name":"","scope":10840,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":10829,"name":"ElementaryTypeName","src":"9161:4:6"}],"id":10830,"name":"VariableDeclaration","src":"9161:4:6"}],"id":10831,"name":"ParameterList","src":"9160:6:6"},{"children":[{"attributes":{"functionReturnParameters":10831},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"int256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$10355_memory_ptr","typeString":"struct strings.slice memory"},{"typeIdentifier":"t_struct$_slice_$10355_memory_ptr","typeString":"struct strings.slice memory"}],"overloadedDeclarations":[null],"referencedDeclaration":10823,"type":"function (struct strings.slice memory,struct strings.slice memory) pure returns (int256)","value":"compare"},"id":10832,"name":"Identifier","src":"9184:7:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10825,"type":"struct strings.slice memory","value":"self"},"id":10833,"name":"Identifier","src":"9192:4:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10827,"type":"struct strings.slice memory","value":"other"},"id":10834,"name":"Identifier","src":"9198:5:6"}],"id":10835,"name":"FunctionCall","src":"9184:20:6"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":10836,"name":"Literal","src":"9208:1:6"}],"id":10837,"name":"BinaryOperation","src":"9184:25:6"}],"id":10838,"name":"Return","src":"9177:32:6"}],"id":10839,"name":"Block","src":"9167:49:6"}],"id":10840,"name":"FunctionDefinition","src":"9083:133:6"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"nextRune","payable":false,"scope":12043,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":10958,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10355,"type":"struct strings.slice"},"id":10841,"name":"UserDefinedTypeName","src":"9527:5:6"}],"id":10842,"name":"VariableDeclaration","src":"9527:17:6"},{"attributes":{"constant":false,"name":"rune","scope":10958,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10355,"type":"struct strings.slice"},"id":10843,"name":"UserDefinedTypeName","src":"9546:5:6"}],"id":10844,"name":"VariableDeclaration","src":"9546:17:6"}],"id":10845,"name":"ParameterList","src":"9526:38:6"},{"children":[{"attributes":{"constant":false,"name":"","scope":10958,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10355,"type":"struct strings.slice"},"id":10846,"name":"UserDefinedTypeName","src":"9588:5:6"}],"id":10847,"name":"VariableDeclaration","src":"9588:5:6"}],"id":10848,"name":"ParameterList","src":"9587:14:6"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_ptr","referencedDeclaration":10354,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10844,"type":"struct strings.slice memory","value":"rune"},"id":10849,"name":"Identifier","src":"9612:4:6"}],"id":10851,"name":"MemberAccess","src":"9612:9:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":10354,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10842,"type":"struct strings.slice memory","value":"self"},"id":10852,"name":"Identifier","src":"9624:4:6"}],"id":10853,"name":"MemberAccess","src":"9624:9:6"}],"id":10854,"name":"Assignment","src":"9612:21:6"}],"id":10855,"name":"ExpressionStatement","src":"9612:21:6"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10352,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10842,"type":"struct strings.slice memory","value":"self"},"id":10856,"name":"Identifier","src":"9648:4:6"}],"id":10857,"name":"MemberAccess","src":"9648:9:6"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":10858,"name":"Literal","src":"9661:1:6"}],"id":10859,"name":"BinaryOperation","src":"9648:14:6"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":10352,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10844,"type":"struct strings.slice memory","value":"rune"},"id":10860,"name":"Identifier","src":"9678:4:6"}],"id":10862,"name":"MemberAccess","src":"9678:9:6"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":10863,"name":"Literal","src":"9690:1:6"}],"id":10864,"name":"Assignment","src":"9678:13:6"}],"id":10865,"name":"ExpressionStatement","src":"9678:13:6"},{"attributes":{"functionReturnParameters":10848},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10844,"type":"struct strings.slice memory","value":"rune"},"id":10866,"name":"Identifier","src":"9712:4:6"}],"id":10867,"name":"Return","src":"9705:11:6"}],"id":10868,"name":"Block","src":"9664:63:6"}],"id":10869,"name":"IfStatement","src":"9644:83:6"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"l","scope":10958,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":10870,"name":"ElementaryTypeName","src":"9737:4:6"}],"id":10871,"name":"VariableDeclaration","src":"9737:6:6"}],"id":10872,"name":"VariableDeclarationStatement","src":"9737:6:6"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"b","scope":10958,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":10873,"name":"ElementaryTypeName","src":"9753:4:6"}],"id":10874,"name":"VariableDeclaration","src":"9753:6:6"}],"id":10875,"name":"VariableDeclarationStatement","src":"9753:6:6"},{"attributes":{"externalReferences":[{"b":{"declaration":10874,"isOffset":false,"isSlot":false,"src":"9842:1:6","valueSize":1}},{"self":{"declaration":10842,"isOffset":false,"isSlot":false,"src":"9871:4:6","valueSize":1}}],"operations":"{\n b := and(mload(sub(mload(add(self, 32)), 31)), 0xFF)\n}"},"children":[],"id":10876,"name":"InlineAssembly","src":"9831:76:6"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10874,"type":"uint256","value":"b"},"id":10877,"name":"Identifier","src":"9909:1:6"},{"attributes":{"argumentTypes":null,"hexvalue":"30783830","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 128","value":"0x80"},"id":10878,"name":"Literal","src":"9913:4:6"}],"id":10879,"name":"BinaryOperation","src":"9909:8:6"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10871,"type":"uint256","value":"l"},"id":10880,"name":"Identifier","src":"9933:1:6"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":10881,"name":"Literal","src":"9937:1:6"}],"id":10882,"name":"Assignment","src":"9933:5:6"}],"id":10883,"name":"ExpressionStatement","src":"9933:5:6"}],"id":10884,"name":"Block","src":"9919:30:6"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10874,"type":"uint256","value":"b"},"id":10885,"name":"Identifier","src":"9958:1:6"},{"attributes":{"argumentTypes":null,"hexvalue":"30784530","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 224","value":"0xE0"},"id":10886,"name":"Literal","src":"9962:4:6"}],"id":10887,"name":"BinaryOperation","src":"9958:8:6"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10871,"type":"uint256","value":"l"},"id":10888,"name":"Identifier","src":"9982:1:6"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":10889,"name":"Literal","src":"9986:1:6"}],"id":10890,"name":"Assignment","src":"9982:5:6"}],"id":10891,"name":"ExpressionStatement","src":"9982:5:6"}],"id":10892,"name":"Block","src":"9968:30:6"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10874,"type":"uint256","value":"b"},"id":10893,"name":"Identifier","src":"10007:1:6"},{"attributes":{"argumentTypes":null,"hexvalue":"30784630","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 240","value":"0xF0"},"id":10894,"name":"Literal","src":"10011:4:6"}],"id":10895,"name":"BinaryOperation","src":"10007:8:6"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10871,"type":"uint256","value":"l"},"id":10896,"name":"Identifier","src":"10031:1:6"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":10897,"name":"Literal","src":"10035:1:6"}],"id":10898,"name":"Assignment","src":"10031:5:6"}],"id":10899,"name":"ExpressionStatement","src":"10031:5:6"}],"id":10900,"name":"Block","src":"10017:30:6"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10871,"type":"uint256","value":"l"},"id":10901,"name":"Identifier","src":"10067:1:6"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":10902,"name":"Literal","src":"10071:1:6"}],"id":10903,"name":"Assignment","src":"10067:5:6"}],"id":10904,"name":"ExpressionStatement","src":"10067:5:6"}],"id":10905,"name":"Block","src":"10053:30:6"}],"id":10906,"name":"IfStatement","src":"10004:79:6"}],"id":10907,"name":"IfStatement","src":"9955:128:6"}],"id":10908,"name":"IfStatement","src":"9905:178:6"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10871,"type":"uint256","value":"l"},"id":10909,"name":"Identifier","src":"10139:1:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10352,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10842,"type":"struct strings.slice memory","value":"self"},"id":10910,"name":"Identifier","src":"10143:4:6"}],"id":10911,"name":"MemberAccess","src":"10143:9:6"}],"id":10912,"name":"BinaryOperation","src":"10139:13:6"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":10352,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10844,"type":"struct strings.slice memory","value":"rune"},"id":10913,"name":"Identifier","src":"10168:4:6"}],"id":10915,"name":"MemberAccess","src":"10168:9:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10352,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10842,"type":"struct strings.slice memory","value":"self"},"id":10916,"name":"Identifier","src":"10180:4:6"}],"id":10917,"name":"MemberAccess","src":"10180:9:6"}],"id":10918,"name":"Assignment","src":"10168:21:6"}],"id":10919,"name":"ExpressionStatement","src":"10168:21:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_ptr","referencedDeclaration":10354,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10842,"type":"struct strings.slice memory","value":"self"},"id":10920,"name":"Identifier","src":"10203:4:6"}],"id":10922,"name":"MemberAccess","src":"10203:9:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10352,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10842,"type":"struct strings.slice memory","value":"self"},"id":10923,"name":"Identifier","src":"10216:4:6"}],"id":10924,"name":"MemberAccess","src":"10216:9:6"}],"id":10925,"name":"Assignment","src":"10203:22:6"}],"id":10926,"name":"ExpressionStatement","src":"10203:22:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":10352,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10842,"type":"struct strings.slice memory","value":"self"},"id":10927,"name":"Identifier","src":"10239:4:6"}],"id":10929,"name":"MemberAccess","src":"10239:9:6"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":10930,"name":"Literal","src":"10251:1:6"}],"id":10931,"name":"Assignment","src":"10239:13:6"}],"id":10932,"name":"ExpressionStatement","src":"10239:13:6"},{"attributes":{"functionReturnParameters":10848},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10844,"type":"struct strings.slice memory","value":"rune"},"id":10933,"name":"Identifier","src":"10273:4:6"}],"id":10934,"name":"Return","src":"10266:11:6"}],"id":10935,"name":"Block","src":"10154:134:6"}],"id":10936,"name":"IfStatement","src":"10135:153:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_ptr","referencedDeclaration":10354,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10842,"type":"struct strings.slice memory","value":"self"},"id":10937,"name":"Identifier","src":"10298:4:6"}],"id":10939,"name":"MemberAccess","src":"10298:9:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10871,"type":"uint256","value":"l"},"id":10940,"name":"Identifier","src":"10311:1:6"}],"id":10941,"name":"Assignment","src":"10298:14:6"}],"id":10942,"name":"ExpressionStatement","src":"10298:14:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":10352,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10842,"type":"struct strings.slice memory","value":"self"},"id":10943,"name":"Identifier","src":"10322:4:6"}],"id":10945,"name":"MemberAccess","src":"10322:9:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10871,"type":"uint256","value":"l"},"id":10946,"name":"Identifier","src":"10335:1:6"}],"id":10947,"name":"Assignment","src":"10322:14:6"}],"id":10948,"name":"ExpressionStatement","src":"10322:14:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":10352,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10844,"type":"struct strings.slice memory","value":"rune"},"id":10949,"name":"Identifier","src":"10346:4:6"}],"id":10951,"name":"MemberAccess","src":"10346:9:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10871,"type":"uint256","value":"l"},"id":10952,"name":"Identifier","src":"10358:1:6"}],"id":10953,"name":"Assignment","src":"10346:13:6"}],"id":10954,"name":"ExpressionStatement","src":"10346:13:6"},{"attributes":{"functionReturnParameters":10848},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10844,"type":"struct strings.slice memory","value":"rune"},"id":10955,"name":"Identifier","src":"10376:4:6"}],"id":10956,"name":"Return","src":"10369:11:6"}],"id":10957,"name":"Block","src":"9602:785:6"}],"id":10958,"name":"FunctionDefinition","src":"9509:878:6"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"nextRune","payable":false,"scope":12043,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":10971,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10355,"type":"struct strings.slice"},"id":10959,"name":"UserDefinedTypeName","src":"10645:5:6"}],"id":10960,"name":"VariableDeclaration","src":"10645:17:6"}],"id":10961,"name":"ParameterList","src":"10644:19:6"},{"children":[{"attributes":{"constant":false,"name":"ret","scope":10971,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10355,"type":"struct strings.slice"},"id":10962,"name":"UserDefinedTypeName","src":"10687:5:6"}],"id":10963,"name":"VariableDeclaration","src":"10687:16:6"}],"id":10964,"name":"ParameterList","src":"10686:18:6"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"struct strings.slice memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$10355_memory_ptr","typeString":"struct strings.slice memory"},{"typeIdentifier":"t_struct$_slice_$10355_memory_ptr","typeString":"struct strings.slice memory"}],"overloadedDeclarations":[10958,10971],"referencedDeclaration":10958,"type":"function (struct strings.slice memory,struct strings.slice memory) pure returns (struct strings.slice memory)","value":"nextRune"},"id":10965,"name":"Identifier","src":"10715:8:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10960,"type":"struct strings.slice memory","value":"self"},"id":10966,"name":"Identifier","src":"10724:4:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10963,"type":"struct strings.slice memory","value":"ret"},"id":10967,"name":"Identifier","src":"10730:3:6"}],"id":10968,"name":"FunctionCall","src":"10715:19:6"}],"id":10969,"name":"ExpressionStatement","src":"10715:19:6"}],"id":10970,"name":"Block","src":"10705:36:6"}],"id":10971,"name":"FunctionDefinition","src":"10627:114:6"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"ord","payable":false,"scope":12043,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":11118,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10355,"type":"struct strings.slice"},"id":10972,"name":"UserDefinedTypeName","src":"10950:5:6"}],"id":10973,"name":"VariableDeclaration","src":"10950:17:6"}],"id":10974,"name":"ParameterList","src":"10949:19:6"},{"children":[{"attributes":{"constant":false,"name":"ret","scope":11118,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":10975,"name":"ElementaryTypeName","src":"10992:4:6"}],"id":10976,"name":"VariableDeclaration","src":"10992:8:6"}],"id":10977,"name":"ParameterList","src":"10991:10:6"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10352,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10973,"type":"struct strings.slice memory","value":"self"},"id":10978,"name":"Identifier","src":"11016:4:6"}],"id":10979,"name":"MemberAccess","src":"11016:9:6"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":10980,"name":"Literal","src":"11029:1:6"}],"id":10981,"name":"BinaryOperation","src":"11016:14:6"},{"children":[{"attributes":{"functionReturnParameters":10977},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":10982,"name":"Literal","src":"11053:1:6"}],"id":10983,"name":"Return","src":"11046:8:6"}],"id":10984,"name":"Block","src":"11032:33:6"}],"id":10985,"name":"IfStatement","src":"11012:53:6"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"word","scope":11118,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":10986,"name":"ElementaryTypeName","src":"11075:4:6"}],"id":10987,"name":"VariableDeclaration","src":"11075:9:6"}],"id":10988,"name":"VariableDeclarationStatement","src":"11075:9:6"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"length","scope":11118,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":10989,"name":"ElementaryTypeName","src":"11094:4:6"}],"id":10990,"name":"VariableDeclaration","src":"11094:11:6"}],"id":10991,"name":"VariableDeclarationStatement","src":"11094:11:6"},{"attributes":{"assignments":[10993]},"children":[{"attributes":{"constant":false,"name":"divisor","scope":11118,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":10992,"name":"ElementaryTypeName","src":"11115:4:6"}],"id":10993,"name":"VariableDeclaration","src":"11115:12:6"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_452312848583266388373324160190187140051835877600158453279131187530910662656_by_1","typeString":"int_const 4523...(67 digits omitted)...2656"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"**","type":"int_const 4523...(67 digits omitted)...2656"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":10994,"name":"Literal","src":"11130:1:6"},{"attributes":{"argumentTypes":null,"hexvalue":"323438","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 248","value":"248"},"id":10995,"name":"Literal","src":"11135:3:6"}],"id":10996,"name":"BinaryOperation","src":"11130:8:6"}],"id":10997,"name":"VariableDeclarationStatement","src":"11115:23:6"},{"attributes":{"externalReferences":[{"word":{"declaration":10987,"isOffset":false,"isSlot":false,"src":"11204:4:6","valueSize":1}},{"self":{"declaration":10973,"isOffset":false,"isSlot":false,"src":"11227:4:6","valueSize":1}}],"operations":"{\n word := mload(mload(add(self, 32)))\n}"},"children":[],"id":10998,"name":"InlineAssembly","src":"11193:60:6"},{"attributes":{"assignments":[11000]},"children":[{"attributes":{"constant":false,"name":"b","scope":11118,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":10999,"name":"ElementaryTypeName","src":"11249:4:6"}],"id":11000,"name":"VariableDeclaration","src":"11249:6:6"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"/","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10987,"type":"uint256","value":"word"},"id":11001,"name":"Identifier","src":"11258:4:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10993,"type":"uint256","value":"divisor"},"id":11002,"name":"Identifier","src":"11265:7:6"}],"id":11003,"name":"BinaryOperation","src":"11258:14:6"}],"id":11004,"name":"VariableDeclarationStatement","src":"11249:23:6"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11000,"type":"uint256","value":"b"},"id":11005,"name":"Identifier","src":"11286:1:6"},{"attributes":{"argumentTypes":null,"hexvalue":"30783830","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 128","value":"0x80"},"id":11006,"name":"Literal","src":"11290:4:6"}],"id":11007,"name":"BinaryOperation","src":"11286:8:6"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10976,"type":"uint256","value":"ret"},"id":11008,"name":"Identifier","src":"11310:3:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11000,"type":"uint256","value":"b"},"id":11009,"name":"Identifier","src":"11316:1:6"}],"id":11010,"name":"Assignment","src":"11310:7:6"}],"id":11011,"name":"ExpressionStatement","src":"11310:7:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10990,"type":"uint256","value":"length"},"id":11012,"name":"Identifier","src":"11331:6:6"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":11013,"name":"Literal","src":"11340:1:6"}],"id":11014,"name":"Assignment","src":"11331:10:6"}],"id":11015,"name":"ExpressionStatement","src":"11331:10:6"}],"id":11016,"name":"Block","src":"11296:56:6"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11000,"type":"uint256","value":"b"},"id":11017,"name":"Identifier","src":"11361:1:6"},{"attributes":{"argumentTypes":null,"hexvalue":"30784530","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 224","value":"0xE0"},"id":11018,"name":"Literal","src":"11365:4:6"}],"id":11019,"name":"BinaryOperation","src":"11361:8:6"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10976,"type":"uint256","value":"ret"},"id":11020,"name":"Identifier","src":"11385:3:6"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11000,"type":"uint256","value":"b"},"id":11021,"name":"Identifier","src":"11391:1:6"},{"attributes":{"argumentTypes":null,"hexvalue":"30783146","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 31","value":"0x1F"},"id":11022,"name":"Literal","src":"11395:4:6"}],"id":11023,"name":"BinaryOperation","src":"11391:8:6"}],"id":11024,"name":"Assignment","src":"11385:14:6"}],"id":11025,"name":"ExpressionStatement","src":"11385:14:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10990,"type":"uint256","value":"length"},"id":11026,"name":"Identifier","src":"11413:6:6"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":11027,"name":"Literal","src":"11422:1:6"}],"id":11028,"name":"Assignment","src":"11413:10:6"}],"id":11029,"name":"ExpressionStatement","src":"11413:10:6"}],"id":11030,"name":"Block","src":"11371:63:6"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11000,"type":"uint256","value":"b"},"id":11031,"name":"Identifier","src":"11443:1:6"},{"attributes":{"argumentTypes":null,"hexvalue":"30784630","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 240","value":"0xF0"},"id":11032,"name":"Literal","src":"11447:4:6"}],"id":11033,"name":"BinaryOperation","src":"11443:8:6"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10976,"type":"uint256","value":"ret"},"id":11034,"name":"Identifier","src":"11467:3:6"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11000,"type":"uint256","value":"b"},"id":11035,"name":"Identifier","src":"11473:1:6"},{"attributes":{"argumentTypes":null,"hexvalue":"30783046","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 15","value":"0x0F"},"id":11036,"name":"Literal","src":"11477:4:6"}],"id":11037,"name":"BinaryOperation","src":"11473:8:6"}],"id":11038,"name":"Assignment","src":"11467:14:6"}],"id":11039,"name":"ExpressionStatement","src":"11467:14:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10990,"type":"uint256","value":"length"},"id":11040,"name":"Identifier","src":"11495:6:6"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":11041,"name":"Literal","src":"11504:1:6"}],"id":11042,"name":"Assignment","src":"11495:10:6"}],"id":11043,"name":"ExpressionStatement","src":"11495:10:6"}],"id":11044,"name":"Block","src":"11453:63:6"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10976,"type":"uint256","value":"ret"},"id":11045,"name":"Identifier","src":"11536:3:6"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11000,"type":"uint256","value":"b"},"id":11046,"name":"Identifier","src":"11542:1:6"},{"attributes":{"argumentTypes":null,"hexvalue":"30783037","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 7","value":"0x07"},"id":11047,"name":"Literal","src":"11546:4:6"}],"id":11048,"name":"BinaryOperation","src":"11542:8:6"}],"id":11049,"name":"Assignment","src":"11536:14:6"}],"id":11050,"name":"ExpressionStatement","src":"11536:14:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10990,"type":"uint256","value":"length"},"id":11051,"name":"Identifier","src":"11564:6:6"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":11052,"name":"Literal","src":"11573:1:6"}],"id":11053,"name":"Assignment","src":"11564:10:6"}],"id":11054,"name":"ExpressionStatement","src":"11564:10:6"}],"id":11055,"name":"Block","src":"11522:63:6"}],"id":11056,"name":"IfStatement","src":"11440:145:6"}],"id":11057,"name":"IfStatement","src":"11358:227:6"}],"id":11058,"name":"IfStatement","src":"11282:303:6"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10990,"type":"uint256","value":"length"},"id":11059,"name":"Identifier","src":"11641:6:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10352,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10973,"type":"struct strings.slice memory","value":"self"},"id":11060,"name":"Identifier","src":"11650:4:6"}],"id":11061,"name":"MemberAccess","src":"11650:9:6"}],"id":11062,"name":"BinaryOperation","src":"11641:18:6"},{"children":[{"attributes":{"functionReturnParameters":10977},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":11063,"name":"Literal","src":"11682:1:6"}],"id":11064,"name":"Return","src":"11675:8:6"}],"id":11065,"name":"Block","src":"11661:33:6"}],"id":11066,"name":"IfStatement","src":"11637:57:6"},{"children":[{"attributes":{"assignments":[11068]},"children":[{"attributes":{"constant":false,"name":"i","scope":11118,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":11067,"name":"ElementaryTypeName","src":"11709:4:6"}],"id":11068,"name":"VariableDeclaration","src":"11709:6:6"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":11069,"name":"Literal","src":"11718:1:6"}],"id":11070,"name":"VariableDeclarationStatement","src":"11709:10:6"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11068,"type":"uint256","value":"i"},"id":11071,"name":"Identifier","src":"11721:1:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10990,"type":"uint256","value":"length"},"id":11072,"name":"Identifier","src":"11725:6:6"}],"id":11073,"name":"BinaryOperation","src":"11721:10:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11068,"type":"uint256","value":"i"},"id":11074,"name":"Identifier","src":"11733:1:6"}],"id":11075,"name":"UnaryOperation","src":"11733:3:6"}],"id":11076,"name":"ExpressionStatement","src":"11733:3:6"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10993,"type":"uint256","value":"divisor"},"id":11077,"name":"Identifier","src":"11752:7:6"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"/","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10993,"type":"uint256","value":"divisor"},"id":11078,"name":"Identifier","src":"11762:7:6"},{"attributes":{"argumentTypes":null,"hexvalue":"323536","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 256","value":"256"},"id":11079,"name":"Literal","src":"11772:3:6"}],"id":11080,"name":"BinaryOperation","src":"11762:13:6"}],"id":11081,"name":"Assignment","src":"11752:23:6"}],"id":11082,"name":"ExpressionStatement","src":"11752:23:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11000,"type":"uint256","value":"b"},"id":11083,"name":"Identifier","src":"11789:1:6"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"/","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10987,"type":"uint256","value":"word"},"id":11084,"name":"Identifier","src":"11794:4:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10993,"type":"uint256","value":"divisor"},"id":11085,"name":"Identifier","src":"11801:7:6"}],"id":11086,"name":"BinaryOperation","src":"11794:14:6"}],"id":11087,"name":"TupleExpression","src":"11793:16:6"},{"attributes":{"argumentTypes":null,"hexvalue":"30784646","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 255","value":"0xFF"},"id":11088,"name":"Literal","src":"11812:4:6"}],"id":11089,"name":"BinaryOperation","src":"11793:23:6"}],"id":11090,"name":"Assignment","src":"11789:27:6"}],"id":11091,"name":"ExpressionStatement","src":"11789:27:6"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11000,"type":"uint256","value":"b"},"id":11092,"name":"Identifier","src":"11834:1:6"},{"attributes":{"argumentTypes":null,"hexvalue":"30784330","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 192","value":"0xC0"},"id":11093,"name":"Literal","src":"11838:4:6"}],"id":11094,"name":"BinaryOperation","src":"11834:8:6"},{"attributes":{"argumentTypes":null,"hexvalue":"30783830","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 128","value":"0x80"},"id":11095,"name":"Literal","src":"11846:4:6"}],"id":11096,"name":"BinaryOperation","src":"11834:16:6"},{"children":[{"attributes":{"functionReturnParameters":10977},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":11097,"name":"Literal","src":"11919:1:6"}],"id":11098,"name":"Return","src":"11912:8:6"}],"id":11099,"name":"Block","src":"11852:83:6"}],"id":11100,"name":"IfStatement","src":"11830:105:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10976,"type":"uint256","value":"ret"},"id":11101,"name":"Identifier","src":"11948:3:6"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"|","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10976,"type":"uint256","value":"ret"},"id":11102,"name":"Identifier","src":"11955:3:6"},{"attributes":{"argumentTypes":null,"hexvalue":"3634","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 64","value":"64"},"id":11103,"name":"Literal","src":"11961:2:6"}],"id":11104,"name":"BinaryOperation","src":"11955:8:6"}],"id":11105,"name":"TupleExpression","src":"11954:10:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11000,"type":"uint256","value":"b"},"id":11106,"name":"Identifier","src":"11968:1:6"},{"attributes":{"argumentTypes":null,"hexvalue":"30783346","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 63","value":"0x3F"},"id":11107,"name":"Literal","src":"11972:4:6"}],"id":11108,"name":"BinaryOperation","src":"11968:8:6"}],"id":11109,"name":"TupleExpression","src":"11967:10:6"}],"id":11110,"name":"BinaryOperation","src":"11954:23:6"}],"id":11111,"name":"Assignment","src":"11948:29:6"}],"id":11112,"name":"ExpressionStatement","src":"11948:29:6"}],"id":11113,"name":"Block","src":"11738:250:6"}],"id":11114,"name":"ForStatement","src":"11704:284:6"},{"attributes":{"functionReturnParameters":10977},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10976,"type":"uint256","value":"ret"},"id":11115,"name":"Identifier","src":"12005:3:6"}],"id":11116,"name":"Return","src":"11998:10:6"}],"id":11117,"name":"Block","src":"11002:1013:6"}],"id":11118,"name":"FunctionDefinition","src":"10937:1078:6"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"keccak","payable":false,"scope":12043,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":11127,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10355,"type":"struct strings.slice"},"id":11119,"name":"UserDefinedTypeName","src":"12182:5:6"}],"id":11120,"name":"VariableDeclaration","src":"12182:17:6"}],"id":11121,"name":"ParameterList","src":"12181:19:6"},{"children":[{"attributes":{"constant":false,"name":"ret","scope":11127,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":11122,"name":"ElementaryTypeName","src":"12224:7:6"}],"id":11123,"name":"VariableDeclaration","src":"12224:11:6"}],"id":11124,"name":"ParameterList","src":"12223:13:6"},{"children":[{"attributes":{"externalReferences":[{"ret":{"declaration":11123,"isOffset":false,"isSlot":false,"src":"12270:3:6","valueSize":1}},{"self":{"declaration":11120,"isOffset":false,"isSlot":false,"src":"12315:4:6","valueSize":1}},{"self":{"declaration":11120,"isOffset":false,"isSlot":false,"src":"12297:4:6","valueSize":1}}],"operations":"{\n ret := keccak256(mload(add(self, 32)), mload(self))\n}"},"children":[],"id":11125,"name":"InlineAssembly","src":"12247:90:6"}],"id":11126,"name":"Block","src":"12237:100:6"}],"id":11127,"name":"FunctionDefinition","src":"12166:171:6"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"startsWith","payable":false,"scope":12043,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":11161,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10355,"type":"struct strings.slice"},"id":11128,"name":"UserDefinedTypeName","src":"12606:5:6"}],"id":11129,"name":"VariableDeclaration","src":"12606:17:6"},{"attributes":{"constant":false,"name":"needle","scope":11161,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10355,"type":"struct strings.slice"},"id":11130,"name":"UserDefinedTypeName","src":"12625:5:6"}],"id":11131,"name":"VariableDeclaration","src":"12625:19:6"}],"id":11132,"name":"ParameterList","src":"12605:40:6"},{"children":[{"attributes":{"constant":false,"name":"","scope":11161,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":11133,"name":"ElementaryTypeName","src":"12669:4:6"}],"id":11134,"name":"VariableDeclaration","src":"12669:4:6"}],"id":11135,"name":"ParameterList","src":"12668:6:6"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10352,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11129,"type":"struct strings.slice memory","value":"self"},"id":11136,"name":"Identifier","src":"12689:4:6"}],"id":11137,"name":"MemberAccess","src":"12689:9:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10352,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11131,"type":"struct strings.slice memory","value":"needle"},"id":11138,"name":"Identifier","src":"12701:6:6"}],"id":11139,"name":"MemberAccess","src":"12701:11:6"}],"id":11140,"name":"BinaryOperation","src":"12689:23:6"},{"children":[{"attributes":{"functionReturnParameters":11135},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"66616c7365","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"false"},"id":11141,"name":"Literal","src":"12735:5:6"}],"id":11142,"name":"Return","src":"12728:12:6"}],"id":11143,"name":"Block","src":"12714:37:6"}],"id":11144,"name":"IfStatement","src":"12685:66:6"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":10354,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11129,"type":"struct strings.slice memory","value":"self"},"id":11145,"name":"Identifier","src":"12765:4:6"}],"id":11146,"name":"MemberAccess","src":"12765:9:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":10354,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11131,"type":"struct strings.slice memory","value":"needle"},"id":11147,"name":"Identifier","src":"12778:6:6"}],"id":11148,"name":"MemberAccess","src":"12778:11:6"}],"id":11149,"name":"BinaryOperation","src":"12765:24:6"},{"children":[{"attributes":{"functionReturnParameters":11135},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":11150,"name":"Literal","src":"12812:4:6"}],"id":11151,"name":"Return","src":"12805:11:6"}],"id":11152,"name":"Block","src":"12791:36:6"}],"id":11153,"name":"IfStatement","src":"12761:66:6"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"equal","scope":11161,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":11154,"name":"ElementaryTypeName","src":"12837:4:6"}],"id":11155,"name":"VariableDeclaration","src":"12837:10:6"}],"id":11156,"name":"VariableDeclarationStatement","src":"12837:10:6"},{"attributes":{"externalReferences":[{"needle":{"declaration":11131,"isOffset":false,"isSlot":false,"src":"12900:6:6","valueSize":1}},{"self":{"declaration":11129,"isOffset":false,"isSlot":false,"src":"12945:4:6","valueSize":1}},{"needle":{"declaration":11131,"isOffset":false,"isSlot":false,"src":"12997:6:6","valueSize":1}},{"equal":{"declaration":11155,"isOffset":false,"isSlot":false,"src":"13024:5:6","valueSize":1}}],"operations":"{\n let length := mload(needle)\n let selfptr := mload(add(self, 0x20))\n let needleptr := mload(add(needle, 0x20))\n equal := eq(keccak256(selfptr, length), keccak256(needleptr, length))\n}"},"children":[],"id":11157,"name":"InlineAssembly","src":"12857:261:6"},{"attributes":{"functionReturnParameters":11135},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11155,"type":"bool","value":"equal"},"id":11158,"name":"Identifier","src":"13119:5:6"}],"id":11159,"name":"Return","src":"13112:12:6"}],"id":11160,"name":"Block","src":"12675:456:6"}],"id":11161,"name":"FunctionDefinition","src":"12586:545:6"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"beyond","payable":false,"scope":12043,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":11211,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10355,"type":"struct strings.slice"},"id":11162,"name":"UserDefinedTypeName","src":"13419:5:6"}],"id":11163,"name":"VariableDeclaration","src":"13419:17:6"},{"attributes":{"constant":false,"name":"needle","scope":11211,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10355,"type":"struct strings.slice"},"id":11164,"name":"UserDefinedTypeName","src":"13438:5:6"}],"id":11165,"name":"VariableDeclaration","src":"13438:19:6"}],"id":11166,"name":"ParameterList","src":"13418:40:6"},{"children":[{"attributes":{"constant":false,"name":"","scope":11211,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10355,"type":"struct strings.slice"},"id":11167,"name":"UserDefinedTypeName","src":"13482:5:6"}],"id":11168,"name":"VariableDeclaration","src":"13482:5:6"}],"id":11169,"name":"ParameterList","src":"13481:14:6"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10352,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11163,"type":"struct strings.slice memory","value":"self"},"id":11170,"name":"Identifier","src":"13510:4:6"}],"id":11171,"name":"MemberAccess","src":"13510:9:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10352,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11165,"type":"struct strings.slice memory","value":"needle"},"id":11172,"name":"Identifier","src":"13522:6:6"}],"id":11173,"name":"MemberAccess","src":"13522:11:6"}],"id":11174,"name":"BinaryOperation","src":"13510:23:6"},{"children":[{"attributes":{"functionReturnParameters":11169},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11163,"type":"struct strings.slice memory","value":"self"},"id":11175,"name":"Identifier","src":"13556:4:6"}],"id":11176,"name":"Return","src":"13549:11:6"}],"id":11177,"name":"Block","src":"13535:36:6"}],"id":11178,"name":"IfStatement","src":"13506:65:6"},{"attributes":{"assignments":[11180]},"children":[{"attributes":{"constant":false,"name":"equal","scope":11211,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":11179,"name":"ElementaryTypeName","src":"13581:4:6"}],"id":11180,"name":"VariableDeclaration","src":"13581:10:6"},{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":11181,"name":"Literal","src":"13594:4:6"}],"id":11182,"name":"VariableDeclarationStatement","src":"13581:17:6"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":10354,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11163,"type":"struct strings.slice memory","value":"self"},"id":11183,"name":"Identifier","src":"13612:4:6"}],"id":11184,"name":"MemberAccess","src":"13612:9:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":10354,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11165,"type":"struct strings.slice memory","value":"needle"},"id":11185,"name":"Identifier","src":"13625:6:6"}],"id":11186,"name":"MemberAccess","src":"13625:11:6"}],"id":11187,"name":"BinaryOperation","src":"13612:24:6"},{"children":[{"attributes":{"externalReferences":[{"needle":{"declaration":11165,"isOffset":false,"isSlot":false,"src":"13699:6:6","valueSize":1}},{"self":{"declaration":11163,"isOffset":false,"isSlot":false,"src":"13748:4:6","valueSize":1}},{"needle":{"declaration":11165,"isOffset":false,"isSlot":false,"src":"13804:6:6","valueSize":1}},{"equal":{"declaration":11180,"isOffset":false,"isSlot":false,"src":"13835:5:6","valueSize":1}}],"operations":"{\n let length := mload(needle)\n let selfptr := mload(add(self, 0x20))\n let needleptr := mload(add(needle, 0x20))\n equal := eq(keccak256(selfptr, length), keccak256(needleptr, length))\n}"},"children":[],"id":11188,"name":"InlineAssembly","src":"13652:276:6"}],"id":11189,"name":"Block","src":"13638:290:6"}],"id":11190,"name":"IfStatement","src":"13608:320:6"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11180,"type":"bool","value":"equal"},"id":11191,"name":"Identifier","src":"13942:5:6"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":10352,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11163,"type":"struct strings.slice memory","value":"self"},"id":11192,"name":"Identifier","src":"13963:4:6"}],"id":11194,"name":"MemberAccess","src":"13963:9:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10352,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11165,"type":"struct strings.slice memory","value":"needle"},"id":11195,"name":"Identifier","src":"13976:6:6"}],"id":11196,"name":"MemberAccess","src":"13976:11:6"}],"id":11197,"name":"Assignment","src":"13963:24:6"}],"id":11198,"name":"ExpressionStatement","src":"13963:24:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_ptr","referencedDeclaration":10354,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11163,"type":"struct strings.slice memory","value":"self"},"id":11199,"name":"Identifier","src":"14001:4:6"}],"id":11201,"name":"MemberAccess","src":"14001:9:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10352,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11165,"type":"struct strings.slice memory","value":"needle"},"id":11202,"name":"Identifier","src":"14014:6:6"}],"id":11203,"name":"MemberAccess","src":"14014:11:6"}],"id":11204,"name":"Assignment","src":"14001:24:6"}],"id":11205,"name":"ExpressionStatement","src":"14001:24:6"}],"id":11206,"name":"Block","src":"13949:87:6"}],"id":11207,"name":"IfStatement","src":"13938:98:6"},{"attributes":{"functionReturnParameters":11169},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11163,"type":"struct strings.slice memory","value":"self"},"id":11208,"name":"Identifier","src":"14053:4:6"}],"id":11209,"name":"Return","src":"14046:11:6"}],"id":11210,"name":"Block","src":"13496:568:6"}],"id":11211,"name":"FunctionDefinition","src":"13403:661:6"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"endsWith","payable":false,"scope":12043,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":11255,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10355,"type":"struct strings.slice"},"id":11212,"name":"UserDefinedTypeName","src":"14332:5:6"}],"id":11213,"name":"VariableDeclaration","src":"14332:17:6"},{"attributes":{"constant":false,"name":"needle","scope":11255,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10355,"type":"struct strings.slice"},"id":11214,"name":"UserDefinedTypeName","src":"14351:5:6"}],"id":11215,"name":"VariableDeclaration","src":"14351:19:6"}],"id":11216,"name":"ParameterList","src":"14331:40:6"},{"children":[{"attributes":{"constant":false,"name":"","scope":11255,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":11217,"name":"ElementaryTypeName","src":"14395:4:6"}],"id":11218,"name":"VariableDeclaration","src":"14395:4:6"}],"id":11219,"name":"ParameterList","src":"14394:6:6"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10352,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11213,"type":"struct strings.slice memory","value":"self"},"id":11220,"name":"Identifier","src":"14415:4:6"}],"id":11221,"name":"MemberAccess","src":"14415:9:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10352,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11215,"type":"struct strings.slice memory","value":"needle"},"id":11222,"name":"Identifier","src":"14427:6:6"}],"id":11223,"name":"MemberAccess","src":"14427:11:6"}],"id":11224,"name":"BinaryOperation","src":"14415:23:6"},{"children":[{"attributes":{"functionReturnParameters":11219},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"66616c7365","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"false"},"id":11225,"name":"Literal","src":"14461:5:6"}],"id":11226,"name":"Return","src":"14454:12:6"}],"id":11227,"name":"Block","src":"14440:37:6"}],"id":11228,"name":"IfStatement","src":"14411:66:6"},{"attributes":{"assignments":[11230]},"children":[{"attributes":{"constant":false,"name":"selfptr","scope":11255,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":11229,"name":"ElementaryTypeName","src":"14487:4:6"}],"id":11230,"name":"VariableDeclaration","src":"14487:12:6"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":10354,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11213,"type":"struct strings.slice memory","value":"self"},"id":11231,"name":"Identifier","src":"14502:4:6"}],"id":11232,"name":"MemberAccess","src":"14502:9:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10352,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11213,"type":"struct strings.slice memory","value":"self"},"id":11233,"name":"Identifier","src":"14514:4:6"}],"id":11234,"name":"MemberAccess","src":"14514:9:6"}],"id":11235,"name":"BinaryOperation","src":"14502:21:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10352,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11215,"type":"struct strings.slice memory","value":"needle"},"id":11236,"name":"Identifier","src":"14526:6:6"}],"id":11237,"name":"MemberAccess","src":"14526:11:6"}],"id":11238,"name":"BinaryOperation","src":"14502:35:6"}],"id":11239,"name":"VariableDeclarationStatement","src":"14487:50:6"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11230,"type":"uint256","value":"selfptr"},"id":11240,"name":"Identifier","src":"14552:7:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":10354,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11215,"type":"struct strings.slice memory","value":"needle"},"id":11241,"name":"Identifier","src":"14563:6:6"}],"id":11242,"name":"MemberAccess","src":"14563:11:6"}],"id":11243,"name":"BinaryOperation","src":"14552:22:6"},{"children":[{"attributes":{"functionReturnParameters":11219},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":11244,"name":"Literal","src":"14597:4:6"}],"id":11245,"name":"Return","src":"14590:11:6"}],"id":11246,"name":"Block","src":"14576:36:6"}],"id":11247,"name":"IfStatement","src":"14548:64:6"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"equal","scope":11255,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":11248,"name":"ElementaryTypeName","src":"14622:4:6"}],"id":11249,"name":"VariableDeclaration","src":"14622:10:6"}],"id":11250,"name":"VariableDeclarationStatement","src":"14622:10:6"},{"attributes":{"externalReferences":[{"needle":{"declaration":11215,"isOffset":false,"isSlot":false,"src":"14685:6:6","valueSize":1}},{"equal":{"declaration":11249,"isOffset":false,"isSlot":false,"src":"14759:5:6","valueSize":1}},{"needle":{"declaration":11215,"isOffset":false,"isSlot":false,"src":"14732:6:6","valueSize":1}},{"selfptr":{"declaration":11230,"isOffset":false,"isSlot":false,"src":"14781:7:6","valueSize":1}}],"operations":"{\n let length := mload(needle)\n let needleptr := mload(add(needle, 0x20))\n equal := eq(keccak256(selfptr, length), keccak256(needleptr, length))\n}"},"children":[],"id":11251,"name":"InlineAssembly","src":"14642:212:6"},{"attributes":{"functionReturnParameters":11219},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11249,"type":"bool","value":"equal"},"id":11252,"name":"Identifier","src":"14855:5:6"}],"id":11253,"name":"Return","src":"14848:12:6"}],"id":11254,"name":"Block","src":"14401:466:6"}],"id":11255,"name":"FunctionDefinition","src":"14314:553:6"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"until","payable":false,"scope":12043,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":11308,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10355,"type":"struct strings.slice"},"id":11256,"name":"UserDefinedTypeName","src":"15146:5:6"}],"id":11257,"name":"VariableDeclaration","src":"15146:17:6"},{"attributes":{"constant":false,"name":"needle","scope":11308,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10355,"type":"struct strings.slice"},"id":11258,"name":"UserDefinedTypeName","src":"15165:5:6"}],"id":11259,"name":"VariableDeclaration","src":"15165:19:6"}],"id":11260,"name":"ParameterList","src":"15145:40:6"},{"children":[{"attributes":{"constant":false,"name":"","scope":11308,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10355,"type":"struct strings.slice"},"id":11261,"name":"UserDefinedTypeName","src":"15209:5:6"}],"id":11262,"name":"VariableDeclaration","src":"15209:5:6"}],"id":11263,"name":"ParameterList","src":"15208:14:6"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10352,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11257,"type":"struct strings.slice memory","value":"self"},"id":11264,"name":"Identifier","src":"15237:4:6"}],"id":11265,"name":"MemberAccess","src":"15237:9:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10352,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11259,"type":"struct strings.slice memory","value":"needle"},"id":11266,"name":"Identifier","src":"15249:6:6"}],"id":11267,"name":"MemberAccess","src":"15249:11:6"}],"id":11268,"name":"BinaryOperation","src":"15237:23:6"},{"children":[{"attributes":{"functionReturnParameters":11263},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11257,"type":"struct strings.slice memory","value":"self"},"id":11269,"name":"Identifier","src":"15283:4:6"}],"id":11270,"name":"Return","src":"15276:11:6"}],"id":11271,"name":"Block","src":"15262:36:6"}],"id":11272,"name":"IfStatement","src":"15233:65:6"},{"attributes":{"assignments":[11274]},"children":[{"attributes":{"constant":false,"name":"selfptr","scope":11308,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":11273,"name":"ElementaryTypeName","src":"15308:4:6"}],"id":11274,"name":"VariableDeclaration","src":"15308:12:6"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":10354,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11257,"type":"struct strings.slice memory","value":"self"},"id":11275,"name":"Identifier","src":"15323:4:6"}],"id":11276,"name":"MemberAccess","src":"15323:9:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10352,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11257,"type":"struct strings.slice memory","value":"self"},"id":11277,"name":"Identifier","src":"15335:4:6"}],"id":11278,"name":"MemberAccess","src":"15335:9:6"}],"id":11279,"name":"BinaryOperation","src":"15323:21:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10352,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11259,"type":"struct strings.slice memory","value":"needle"},"id":11280,"name":"Identifier","src":"15347:6:6"}],"id":11281,"name":"MemberAccess","src":"15347:11:6"}],"id":11282,"name":"BinaryOperation","src":"15323:35:6"}],"id":11283,"name":"VariableDeclarationStatement","src":"15308:50:6"},{"attributes":{"assignments":[11285]},"children":[{"attributes":{"constant":false,"name":"equal","scope":11308,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":11284,"name":"ElementaryTypeName","src":"15368:4:6"}],"id":11285,"name":"VariableDeclaration","src":"15368:10:6"},{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":11286,"name":"Literal","src":"15381:4:6"}],"id":11287,"name":"VariableDeclarationStatement","src":"15368:17:6"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11274,"type":"uint256","value":"selfptr"},"id":11288,"name":"Identifier","src":"15399:7:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":10354,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11259,"type":"struct strings.slice memory","value":"needle"},"id":11289,"name":"Identifier","src":"15410:6:6"}],"id":11290,"name":"MemberAccess","src":"15410:11:6"}],"id":11291,"name":"BinaryOperation","src":"15399:22:6"},{"children":[{"attributes":{"externalReferences":[{"needle":{"declaration":11259,"isOffset":false,"isSlot":false,"src":"15484:6:6","valueSize":1}},{"equal":{"declaration":11285,"isOffset":false,"isSlot":false,"src":"15566:5:6","valueSize":1}},{"needle":{"declaration":11259,"isOffset":false,"isSlot":false,"src":"15535:6:6","valueSize":1}},{"selfptr":{"declaration":11274,"isOffset":false,"isSlot":false,"src":"15588:7:6","valueSize":1}}],"operations":"{\n let length := mload(needle)\n let needleptr := mload(add(needle, 0x20))\n equal := eq(keccak256(selfptr, length), keccak256(needleptr, length))\n}"},"children":[],"id":11292,"name":"InlineAssembly","src":"15437:222:6"}],"id":11293,"name":"Block","src":"15423:236:6"}],"id":11294,"name":"IfStatement","src":"15395:264:6"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11285,"type":"bool","value":"equal"},"id":11295,"name":"Identifier","src":"15673:5:6"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":10352,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11257,"type":"struct strings.slice memory","value":"self"},"id":11296,"name":"Identifier","src":"15694:4:6"}],"id":11298,"name":"MemberAccess","src":"15694:9:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10352,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11259,"type":"struct strings.slice memory","value":"needle"},"id":11299,"name":"Identifier","src":"15707:6:6"}],"id":11300,"name":"MemberAccess","src":"15707:11:6"}],"id":11301,"name":"Assignment","src":"15694:24:6"}],"id":11302,"name":"ExpressionStatement","src":"15694:24:6"}],"id":11303,"name":"Block","src":"15680:49:6"}],"id":11304,"name":"IfStatement","src":"15669:60:6"},{"attributes":{"functionReturnParameters":11263},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11257,"type":"struct strings.slice memory","value":"self"},"id":11305,"name":"Identifier","src":"15746:4:6"}],"id":11306,"name":"Return","src":"15739:11:6"}],"id":11307,"name":"Block","src":"15223:534:6"}],"id":11308,"name":"FunctionDefinition","src":"15131:626:6"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"findPtr","payable":false,"scope":12043,"stateMutability":"pure","superFunction":null,"visibility":"private"},"children":[{"children":[{"attributes":{"constant":false,"name":"selflen","scope":11429,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":11309,"name":"ElementaryTypeName","src":"15931:4:6"}],"id":11310,"name":"VariableDeclaration","src":"15931:12:6"},{"attributes":{"constant":false,"name":"selfptr","scope":11429,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":11311,"name":"ElementaryTypeName","src":"15945:4:6"}],"id":11312,"name":"VariableDeclaration","src":"15945:12:6"},{"attributes":{"constant":false,"name":"needlelen","scope":11429,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":11313,"name":"ElementaryTypeName","src":"15959:4:6"}],"id":11314,"name":"VariableDeclaration","src":"15959:14:6"},{"attributes":{"constant":false,"name":"needleptr","scope":11429,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":11315,"name":"ElementaryTypeName","src":"15975:4:6"}],"id":11316,"name":"VariableDeclaration","src":"15975:14:6"}],"id":11317,"name":"ParameterList","src":"15930:60:6"},{"children":[{"attributes":{"constant":false,"name":"","scope":11429,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":11318,"name":"ElementaryTypeName","src":"16013:4:6"}],"id":11319,"name":"VariableDeclaration","src":"16013:4:6"}],"id":11320,"name":"ParameterList","src":"16012:6:6"},{"children":[{"attributes":{"assignments":[11322]},"children":[{"attributes":{"constant":false,"name":"ptr","scope":11429,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":11321,"name":"ElementaryTypeName","src":"16029:4:6"}],"id":11322,"name":"VariableDeclaration","src":"16029:8:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11312,"type":"uint256","value":"selfptr"},"id":11323,"name":"Identifier","src":"16040:7:6"}],"id":11324,"name":"VariableDeclarationStatement","src":"16029:18:6"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"idx","scope":11429,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":11325,"name":"ElementaryTypeName","src":"16057:4:6"}],"id":11326,"name":"VariableDeclaration","src":"16057:8:6"}],"id":11327,"name":"VariableDeclarationStatement","src":"16057:8:6"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11314,"type":"uint256","value":"needlelen"},"id":11328,"name":"Identifier","src":"16080:9:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11310,"type":"uint256","value":"selflen"},"id":11329,"name":"Identifier","src":"16093:7:6"}],"id":11330,"name":"BinaryOperation","src":"16080:20:6"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11314,"type":"uint256","value":"needlelen"},"id":11331,"name":"Identifier","src":"16120:9:6"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":11332,"name":"Literal","src":"16133:2:6"}],"id":11333,"name":"BinaryOperation","src":"16120:15:6"},{"children":[{"attributes":{"assignments":[11335]},"children":[{"attributes":{"constant":false,"name":"mask","scope":11429,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":11334,"name":"ElementaryTypeName","src":"16155:7:6"}],"id":11335,"name":"VariableDeclaration","src":"16155:12:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes32)","value":"bytes32"},"id":11336,"name":"ElementaryTypeNameExpression","src":"16170:7:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"~","prefix":true,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"**","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":11337,"name":"Literal","src":"16180:1:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"38","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 8","value":"8"},"id":11338,"name":"Literal","src":"16186:1:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":11339,"name":"Literal","src":"16191:2:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11314,"type":"uint256","value":"needlelen"},"id":11340,"name":"Identifier","src":"16196:9:6"}],"id":11341,"name":"BinaryOperation","src":"16191:14:6"}],"id":11342,"name":"TupleExpression","src":"16190:16:6"}],"id":11343,"name":"BinaryOperation","src":"16186:20:6"}],"id":11344,"name":"TupleExpression","src":"16185:22:6"}],"id":11345,"name":"BinaryOperation","src":"16180:27:6"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":11346,"name":"Literal","src":"16210:1:6"}],"id":11347,"name":"BinaryOperation","src":"16180:31:6"}],"id":11348,"name":"TupleExpression","src":"16179:33:6"}],"id":11349,"name":"UnaryOperation","src":"16178:34:6"}],"id":11350,"name":"FunctionCall","src":"16170:43:6"}],"id":11351,"name":"VariableDeclarationStatement","src":"16155:58:6"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"needledata","scope":11429,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":11352,"name":"ElementaryTypeName","src":"16232:7:6"}],"id":11353,"name":"VariableDeclaration","src":"16232:18:6"}],"id":11354,"name":"VariableDeclarationStatement","src":"16232:18:6"},{"attributes":{"externalReferences":[{"needleptr":{"declaration":11316,"isOffset":false,"isSlot":false,"src":"16303:9:6","valueSize":1}},{"needledata":{"declaration":11353,"isOffset":false,"isSlot":false,"src":"16279:10:6","valueSize":1}},{"mask":{"declaration":11335,"isOffset":false,"isSlot":false,"src":"16315:4:6","valueSize":1}}],"operations":"{\n needledata := and(mload(needleptr), mask)\n}"},"children":[],"id":11355,"name":"InlineAssembly","src":"16268:76:6"},{"attributes":{"assignments":[11357]},"children":[{"attributes":{"constant":false,"name":"end","scope":11429,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":11356,"name":"ElementaryTypeName","src":"16340:4:6"}],"id":11357,"name":"VariableDeclaration","src":"16340:8:6"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11312,"type":"uint256","value":"selfptr"},"id":11358,"name":"Identifier","src":"16351:7:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11310,"type":"uint256","value":"selflen"},"id":11359,"name":"Identifier","src":"16361:7:6"}],"id":11360,"name":"BinaryOperation","src":"16351:17:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11314,"type":"uint256","value":"needlelen"},"id":11361,"name":"Identifier","src":"16371:9:6"}],"id":11362,"name":"BinaryOperation","src":"16351:29:6"}],"id":11363,"name":"VariableDeclarationStatement","src":"16340:40:6"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"ptrdata","scope":11429,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":11364,"name":"ElementaryTypeName","src":"16398:7:6"}],"id":11365,"name":"VariableDeclaration","src":"16398:15:6"}],"id":11366,"name":"VariableDeclarationStatement","src":"16398:15:6"},{"attributes":{"externalReferences":[{"ptr":{"declaration":11322,"isOffset":false,"isSlot":false,"src":"16463:3:6","valueSize":1}},{"ptrdata":{"declaration":11365,"isOffset":false,"isSlot":false,"src":"16442:7:6","valueSize":1}},{"mask":{"declaration":11335,"isOffset":false,"isSlot":false,"src":"16469:4:6","valueSize":1}}],"operations":"{\n ptrdata := and(mload(ptr), mask)\n}"},"children":[],"id":11367,"name":"InlineAssembly","src":"16431:68:6"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11365,"type":"bytes32","value":"ptrdata"},"id":11368,"name":"Identifier","src":"16501:7:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11353,"type":"bytes32","value":"needledata"},"id":11369,"name":"Identifier","src":"16512:10:6"}],"id":11370,"name":"BinaryOperation","src":"16501:21:6"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11322,"type":"uint256","value":"ptr"},"id":11371,"name":"Identifier","src":"16550:3:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11357,"type":"uint256","value":"end"},"id":11372,"name":"Identifier","src":"16557:3:6"}],"id":11373,"name":"BinaryOperation","src":"16550:10:6"},{"attributes":{"functionReturnParameters":11320},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11312,"type":"uint256","value":"selfptr"},"id":11374,"name":"Identifier","src":"16593:7:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11310,"type":"uint256","value":"selflen"},"id":11375,"name":"Identifier","src":"16603:7:6"}],"id":11376,"name":"BinaryOperation","src":"16593:17:6"}],"id":11377,"name":"Return","src":"16586:24:6"}],"id":11378,"name":"IfStatement","src":"16546:64:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11322,"type":"uint256","value":"ptr"},"id":11379,"name":"Identifier","src":"16632:3:6"}],"id":11380,"name":"UnaryOperation","src":"16632:5:6"}],"id":11381,"name":"ExpressionStatement","src":"16632:5:6"},{"attributes":{"externalReferences":[{"ptr":{"declaration":11322,"isOffset":false,"isSlot":false,"src":"16691:3:6","valueSize":1}},{"ptrdata":{"declaration":11365,"isOffset":false,"isSlot":false,"src":"16670:7:6","valueSize":1}},{"mask":{"declaration":11335,"isOffset":false,"isSlot":false,"src":"16697:4:6","valueSize":1}}],"operations":"{\n ptrdata := and(mload(ptr), mask)\n}"},"children":[],"id":11382,"name":"InlineAssembly","src":"16659:63:6"}],"id":11383,"name":"Block","src":"16524:198:6"}],"id":11384,"name":"WhileStatement","src":"16494:228:6"},{"attributes":{"functionReturnParameters":11320},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11322,"type":"uint256","value":"ptr"},"id":11385,"name":"Identifier","src":"16746:3:6"}],"id":11386,"name":"Return","src":"16739:10:6"}],"id":11387,"name":"Block","src":"16137:627:6"},{"children":[{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"hash","scope":11429,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":11388,"name":"ElementaryTypeName","src":"16837:7:6"}],"id":11389,"name":"VariableDeclaration","src":"16837:12:6"}],"id":11390,"name":"VariableDeclarationStatement","src":"16837:12:6"},{"attributes":{"externalReferences":[{"hash":{"declaration":11389,"isOffset":false,"isSlot":false,"src":"16878:4:6","valueSize":1}},{"needleptr":{"declaration":11316,"isOffset":false,"isSlot":false,"src":"16896:9:6","valueSize":1}},{"needlelen":{"declaration":11314,"isOffset":false,"isSlot":false,"src":"16907:9:6","valueSize":1}}],"operations":"{\n hash := keccak256(needleptr, needlelen)\n}"},"children":[],"id":11391,"name":"InlineAssembly","src":"16867:73:6"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11326,"type":"uint256","value":"idx"},"id":11392,"name":"Identifier","src":"16942:3:6"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":11393,"name":"Literal","src":"16948:1:6"}],"id":11394,"name":"Assignment","src":"16942:7:6"}],"id":11395,"name":"ExpressionStatement","src":"16942:7:6"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11326,"type":"uint256","value":"idx"},"id":11396,"name":"Identifier","src":"16951:3:6"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11310,"type":"uint256","value":"selflen"},"id":11397,"name":"Identifier","src":"16958:7:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11314,"type":"uint256","value":"needlelen"},"id":11398,"name":"Identifier","src":"16968:9:6"}],"id":11399,"name":"BinaryOperation","src":"16958:19:6"}],"id":11400,"name":"BinaryOperation","src":"16951:26:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11326,"type":"uint256","value":"idx"},"id":11401,"name":"Identifier","src":"16979:3:6"}],"id":11402,"name":"UnaryOperation","src":"16979:5:6"}],"id":11403,"name":"ExpressionStatement","src":"16979:5:6"},{"children":[{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"testHash","scope":11429,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":11404,"name":"ElementaryTypeName","src":"17008:7:6"}],"id":11405,"name":"VariableDeclaration","src":"17008:16:6"}],"id":11406,"name":"VariableDeclarationStatement","src":"17008:16:6"},{"attributes":{"externalReferences":[{"testHash":{"declaration":11405,"isOffset":false,"isSlot":false,"src":"17057:8:6","valueSize":1}},{"ptr":{"declaration":11322,"isOffset":false,"isSlot":false,"src":"17079:3:6","valueSize":1}},{"needlelen":{"declaration":11314,"isOffset":false,"isSlot":false,"src":"17084:9:6","valueSize":1}}],"operations":"{\n testHash := keccak256(ptr, needlelen)\n}"},"children":[],"id":11407,"name":"InlineAssembly","src":"17046:73:6"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11389,"type":"bytes32","value":"hash"},"id":11408,"name":"Identifier","src":"17121:4:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11405,"type":"bytes32","value":"testHash"},"id":11409,"name":"Identifier","src":"17129:8:6"}],"id":11410,"name":"BinaryOperation","src":"17121:16:6"},{"attributes":{"functionReturnParameters":11320},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11322,"type":"uint256","value":"ptr"},"id":11411,"name":"Identifier","src":"17170:3:6"}],"id":11412,"name":"Return","src":"17163:10:6"}],"id":11413,"name":"IfStatement","src":"17117:56:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11322,"type":"uint256","value":"ptr"},"id":11414,"name":"Identifier","src":"17195:3:6"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":11415,"name":"Literal","src":"17202:1:6"}],"id":11416,"name":"Assignment","src":"17195:8:6"}],"id":11417,"name":"ExpressionStatement","src":"17195:8:6"}],"id":11418,"name":"Block","src":"16986:236:6"}],"id":11419,"name":"ForStatement","src":"16937:285:6"}],"id":11420,"name":"Block","src":"16770:466:6"}],"id":11421,"name":"IfStatement","src":"16116:1120:6"}],"id":11422,"name":"Block","src":"16102:1144:6"}],"id":11423,"name":"IfStatement","src":"16076:1170:6"},{"attributes":{"functionReturnParameters":11320},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11312,"type":"uint256","value":"selfptr"},"id":11424,"name":"Identifier","src":"17262:7:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11310,"type":"uint256","value":"selflen"},"id":11425,"name":"Identifier","src":"17272:7:6"}],"id":11426,"name":"BinaryOperation","src":"17262:17:6"}],"id":11427,"name":"Return","src":"17255:24:6"}],"id":11428,"name":"Block","src":"16019:1267:6"}],"id":11429,"name":"FunctionDefinition","src":"15914:1372:6"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"rfindPtr","payable":false,"scope":12043,"stateMutability":"pure","superFunction":null,"visibility":"private"},"children":[{"children":[{"attributes":{"constant":false,"name":"selflen","scope":11546,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":11430,"name":"ElementaryTypeName","src":"17457:4:6"}],"id":11431,"name":"VariableDeclaration","src":"17457:12:6"},{"attributes":{"constant":false,"name":"selfptr","scope":11546,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":11432,"name":"ElementaryTypeName","src":"17471:4:6"}],"id":11433,"name":"VariableDeclaration","src":"17471:12:6"},{"attributes":{"constant":false,"name":"needlelen","scope":11546,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":11434,"name":"ElementaryTypeName","src":"17485:4:6"}],"id":11435,"name":"VariableDeclaration","src":"17485:14:6"},{"attributes":{"constant":false,"name":"needleptr","scope":11546,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":11436,"name":"ElementaryTypeName","src":"17501:4:6"}],"id":11437,"name":"VariableDeclaration","src":"17501:14:6"}],"id":11438,"name":"ParameterList","src":"17456:60:6"},{"children":[{"attributes":{"constant":false,"name":"","scope":11546,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":11439,"name":"ElementaryTypeName","src":"17539:4:6"}],"id":11440,"name":"VariableDeclaration","src":"17539:4:6"}],"id":11441,"name":"ParameterList","src":"17538:6:6"},{"children":[{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"ptr","scope":11546,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":11442,"name":"ElementaryTypeName","src":"17555:4:6"}],"id":11443,"name":"VariableDeclaration","src":"17555:8:6"}],"id":11444,"name":"VariableDeclarationStatement","src":"17555:8:6"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11435,"type":"uint256","value":"needlelen"},"id":11445,"name":"Identifier","src":"17578:9:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11431,"type":"uint256","value":"selflen"},"id":11446,"name":"Identifier","src":"17591:7:6"}],"id":11447,"name":"BinaryOperation","src":"17578:20:6"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11435,"type":"uint256","value":"needlelen"},"id":11448,"name":"Identifier","src":"17618:9:6"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":11449,"name":"Literal","src":"17631:2:6"}],"id":11450,"name":"BinaryOperation","src":"17618:15:6"},{"children":[{"attributes":{"assignments":[11452]},"children":[{"attributes":{"constant":false,"name":"mask","scope":11546,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":11451,"name":"ElementaryTypeName","src":"17653:7:6"}],"id":11452,"name":"VariableDeclaration","src":"17653:12:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes32)","value":"bytes32"},"id":11453,"name":"ElementaryTypeNameExpression","src":"17668:7:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"~","prefix":true,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"**","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":11454,"name":"Literal","src":"17678:1:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"38","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 8","value":"8"},"id":11455,"name":"Literal","src":"17684:1:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":11456,"name":"Literal","src":"17689:2:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11435,"type":"uint256","value":"needlelen"},"id":11457,"name":"Identifier","src":"17694:9:6"}],"id":11458,"name":"BinaryOperation","src":"17689:14:6"}],"id":11459,"name":"TupleExpression","src":"17688:16:6"}],"id":11460,"name":"BinaryOperation","src":"17684:20:6"}],"id":11461,"name":"TupleExpression","src":"17683:22:6"}],"id":11462,"name":"BinaryOperation","src":"17678:27:6"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":11463,"name":"Literal","src":"17708:1:6"}],"id":11464,"name":"BinaryOperation","src":"17678:31:6"}],"id":11465,"name":"TupleExpression","src":"17677:33:6"}],"id":11466,"name":"UnaryOperation","src":"17676:34:6"}],"id":11467,"name":"FunctionCall","src":"17668:43:6"}],"id":11468,"name":"VariableDeclarationStatement","src":"17653:58:6"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"needledata","scope":11546,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":11469,"name":"ElementaryTypeName","src":"17730:7:6"}],"id":11470,"name":"VariableDeclaration","src":"17730:18:6"}],"id":11471,"name":"VariableDeclarationStatement","src":"17730:18:6"},{"attributes":{"externalReferences":[{"needleptr":{"declaration":11437,"isOffset":false,"isSlot":false,"src":"17801:9:6","valueSize":1}},{"needledata":{"declaration":11470,"isOffset":false,"isSlot":false,"src":"17777:10:6","valueSize":1}},{"mask":{"declaration":11452,"isOffset":false,"isSlot":false,"src":"17813:4:6","valueSize":1}}],"operations":"{\n needledata := and(mload(needleptr), mask)\n}"},"children":[],"id":11472,"name":"InlineAssembly","src":"17766:75:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11443,"type":"uint256","value":"ptr"},"id":11473,"name":"Identifier","src":"17838:3:6"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11433,"type":"uint256","value":"selfptr"},"id":11474,"name":"Identifier","src":"17844:7:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11431,"type":"uint256","value":"selflen"},"id":11475,"name":"Identifier","src":"17854:7:6"}],"id":11476,"name":"BinaryOperation","src":"17844:17:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11435,"type":"uint256","value":"needlelen"},"id":11477,"name":"Identifier","src":"17864:9:6"}],"id":11478,"name":"BinaryOperation","src":"17844:29:6"}],"id":11479,"name":"Assignment","src":"17838:35:6"}],"id":11480,"name":"ExpressionStatement","src":"17838:35:6"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"ptrdata","scope":11546,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":11481,"name":"ElementaryTypeName","src":"17891:7:6"}],"id":11482,"name":"VariableDeclaration","src":"17891:15:6"}],"id":11483,"name":"VariableDeclarationStatement","src":"17891:15:6"},{"attributes":{"externalReferences":[{"ptr":{"declaration":11443,"isOffset":false,"isSlot":false,"src":"17956:3:6","valueSize":1}},{"mask":{"declaration":11452,"isOffset":false,"isSlot":false,"src":"17962:4:6","valueSize":1}},{"ptrdata":{"declaration":11482,"isOffset":false,"isSlot":false,"src":"17935:7:6","valueSize":1}}],"operations":"{\n ptrdata := and(mload(ptr), mask)\n}"},"children":[],"id":11484,"name":"InlineAssembly","src":"17924:68:6"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11482,"type":"bytes32","value":"ptrdata"},"id":11485,"name":"Identifier","src":"17994:7:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11470,"type":"bytes32","value":"needledata"},"id":11486,"name":"Identifier","src":"18005:10:6"}],"id":11487,"name":"BinaryOperation","src":"17994:21:6"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11443,"type":"uint256","value":"ptr"},"id":11488,"name":"Identifier","src":"18043:3:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11433,"type":"uint256","value":"selfptr"},"id":11489,"name":"Identifier","src":"18050:7:6"}],"id":11490,"name":"BinaryOperation","src":"18043:14:6"},{"attributes":{"functionReturnParameters":11441},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11433,"type":"uint256","value":"selfptr"},"id":11491,"name":"Identifier","src":"18090:7:6"}],"id":11492,"name":"Return","src":"18083:14:6"}],"id":11493,"name":"IfStatement","src":"18039:58:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"--","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11443,"type":"uint256","value":"ptr"},"id":11494,"name":"Identifier","src":"18119:3:6"}],"id":11495,"name":"UnaryOperation","src":"18119:5:6"}],"id":11496,"name":"ExpressionStatement","src":"18119:5:6"},{"attributes":{"externalReferences":[{"ptr":{"declaration":11443,"isOffset":false,"isSlot":false,"src":"18178:3:6","valueSize":1}},{"ptrdata":{"declaration":11482,"isOffset":false,"isSlot":false,"src":"18157:7:6","valueSize":1}},{"mask":{"declaration":11452,"isOffset":false,"isSlot":false,"src":"18184:4:6","valueSize":1}}],"operations":"{\n ptrdata := and(mload(ptr), mask)\n}"},"children":[],"id":11497,"name":"InlineAssembly","src":"18146:63:6"}],"id":11498,"name":"Block","src":"18017:192:6"}],"id":11499,"name":"WhileStatement","src":"17987:222:6"},{"attributes":{"functionReturnParameters":11441},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11443,"type":"uint256","value":"ptr"},"id":11500,"name":"Identifier","src":"18233:3:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11435,"type":"uint256","value":"needlelen"},"id":11501,"name":"Identifier","src":"18239:9:6"}],"id":11502,"name":"BinaryOperation","src":"18233:15:6"}],"id":11503,"name":"Return","src":"18226:22:6"}],"id":11504,"name":"Block","src":"17635:628:6"},{"children":[{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"hash","scope":11546,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":11505,"name":"ElementaryTypeName","src":"18336:7:6"}],"id":11506,"name":"VariableDeclaration","src":"18336:12:6"}],"id":11507,"name":"VariableDeclarationStatement","src":"18336:12:6"},{"attributes":{"externalReferences":[{"hash":{"declaration":11506,"isOffset":false,"isSlot":false,"src":"18377:4:6","valueSize":1}},{"needleptr":{"declaration":11437,"isOffset":false,"isSlot":false,"src":"18395:9:6","valueSize":1}},{"needlelen":{"declaration":11435,"isOffset":false,"isSlot":false,"src":"18406:9:6","valueSize":1}}],"operations":"{\n hash := keccak256(needleptr, needlelen)\n}"},"children":[],"id":11508,"name":"InlineAssembly","src":"18366:72:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11443,"type":"uint256","value":"ptr"},"id":11509,"name":"Identifier","src":"18435:3:6"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11433,"type":"uint256","value":"selfptr"},"id":11510,"name":"Identifier","src":"18441:7:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11431,"type":"uint256","value":"selflen"},"id":11511,"name":"Identifier","src":"18452:7:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11435,"type":"uint256","value":"needlelen"},"id":11512,"name":"Identifier","src":"18462:9:6"}],"id":11513,"name":"BinaryOperation","src":"18452:19:6"}],"id":11514,"name":"TupleExpression","src":"18451:21:6"}],"id":11515,"name":"BinaryOperation","src":"18441:31:6"}],"id":11516,"name":"Assignment","src":"18435:37:6"}],"id":11517,"name":"ExpressionStatement","src":"18435:37:6"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11443,"type":"uint256","value":"ptr"},"id":11518,"name":"Identifier","src":"18497:3:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11433,"type":"uint256","value":"selfptr"},"id":11519,"name":"Identifier","src":"18504:7:6"}],"id":11520,"name":"BinaryOperation","src":"18497:14:6"},{"children":[{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"testHash","scope":11546,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":11521,"name":"ElementaryTypeName","src":"18535:7:6"}],"id":11522,"name":"VariableDeclaration","src":"18535:16:6"}],"id":11523,"name":"VariableDeclarationStatement","src":"18535:16:6"},{"attributes":{"externalReferences":[{"testHash":{"declaration":11522,"isOffset":false,"isSlot":false,"src":"18584:8:6","valueSize":1}},{"ptr":{"declaration":11443,"isOffset":false,"isSlot":false,"src":"18606:3:6","valueSize":1}},{"needlelen":{"declaration":11435,"isOffset":false,"isSlot":false,"src":"18611:9:6","valueSize":1}}],"operations":"{\n testHash := keccak256(ptr, needlelen)\n}"},"children":[],"id":11524,"name":"InlineAssembly","src":"18573:73:6"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11506,"type":"bytes32","value":"hash"},"id":11525,"name":"Identifier","src":"18648:4:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11522,"type":"bytes32","value":"testHash"},"id":11526,"name":"Identifier","src":"18656:8:6"}],"id":11527,"name":"BinaryOperation","src":"18648:16:6"},{"attributes":{"functionReturnParameters":11441},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11443,"type":"uint256","value":"ptr"},"id":11528,"name":"Identifier","src":"18697:3:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11435,"type":"uint256","value":"needlelen"},"id":11529,"name":"Identifier","src":"18703:9:6"}],"id":11530,"name":"BinaryOperation","src":"18697:15:6"}],"id":11531,"name":"Return","src":"18690:22:6"}],"id":11532,"name":"IfStatement","src":"18644:68:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11443,"type":"uint256","value":"ptr"},"id":11533,"name":"Identifier","src":"18734:3:6"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":11534,"name":"Literal","src":"18741:1:6"}],"id":11535,"name":"Assignment","src":"18734:8:6"}],"id":11536,"name":"ExpressionStatement","src":"18734:8:6"}],"id":11537,"name":"Block","src":"18513:248:6"}],"id":11538,"name":"WhileStatement","src":"18490:271:6"}],"id":11539,"name":"Block","src":"18269:506:6"}],"id":11540,"name":"IfStatement","src":"17614:1161:6"}],"id":11541,"name":"Block","src":"17600:1185:6"}],"id":11542,"name":"IfStatement","src":"17574:1211:6"},{"attributes":{"functionReturnParameters":11441},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11433,"type":"uint256","value":"selfptr"},"id":11543,"name":"Identifier","src":"18801:7:6"}],"id":11544,"name":"Return","src":"18794:14:6"}],"id":11545,"name":"Block","src":"17545:1270:6"}],"id":11546,"name":"FunctionDefinition","src":"17439:1376:6"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"find","payable":false,"scope":12043,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":11586,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10355,"type":"struct strings.slice"},"id":11547,"name":"UserDefinedTypeName","src":"19165:5:6"}],"id":11548,"name":"VariableDeclaration","src":"19165:17:6"},{"attributes":{"constant":false,"name":"needle","scope":11586,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10355,"type":"struct strings.slice"},"id":11549,"name":"UserDefinedTypeName","src":"19184:5:6"}],"id":11550,"name":"VariableDeclaration","src":"19184:19:6"}],"id":11551,"name":"ParameterList","src":"19164:40:6"},{"children":[{"attributes":{"constant":false,"name":"","scope":11586,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10355,"type":"struct strings.slice"},"id":11552,"name":"UserDefinedTypeName","src":"19228:5:6"}],"id":11553,"name":"VariableDeclaration","src":"19228:5:6"}],"id":11554,"name":"ParameterList","src":"19227:14:6"},{"children":[{"attributes":{"assignments":[11556]},"children":[{"attributes":{"constant":false,"name":"ptr","scope":11586,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":11555,"name":"ElementaryTypeName","src":"19252:4:6"}],"id":11556,"name":"VariableDeclaration","src":"19252:8:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":11429,"type":"function (uint256,uint256,uint256,uint256) pure returns (uint256)","value":"findPtr"},"id":11557,"name":"Identifier","src":"19263:7:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10352,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11548,"type":"struct strings.slice memory","value":"self"},"id":11558,"name":"Identifier","src":"19271:4:6"}],"id":11559,"name":"MemberAccess","src":"19271:9:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":10354,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11548,"type":"struct strings.slice memory","value":"self"},"id":11560,"name":"Identifier","src":"19282:4:6"}],"id":11561,"name":"MemberAccess","src":"19282:9:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10352,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11550,"type":"struct strings.slice memory","value":"needle"},"id":11562,"name":"Identifier","src":"19293:6:6"}],"id":11563,"name":"MemberAccess","src":"19293:11:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":10354,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11550,"type":"struct strings.slice memory","value":"needle"},"id":11564,"name":"Identifier","src":"19306:6:6"}],"id":11565,"name":"MemberAccess","src":"19306:11:6"}],"id":11566,"name":"FunctionCall","src":"19263:55:6"}],"id":11567,"name":"VariableDeclarationStatement","src":"19252:66:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":10352,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11548,"type":"struct strings.slice memory","value":"self"},"id":11568,"name":"Identifier","src":"19328:4:6"}],"id":11570,"name":"MemberAccess","src":"19328:9:6"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11556,"type":"uint256","value":"ptr"},"id":11571,"name":"Identifier","src":"19341:3:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":10354,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11548,"type":"struct strings.slice memory","value":"self"},"id":11572,"name":"Identifier","src":"19347:4:6"}],"id":11573,"name":"MemberAccess","src":"19347:9:6"}],"id":11574,"name":"BinaryOperation","src":"19341:15:6"}],"id":11575,"name":"Assignment","src":"19328:28:6"}],"id":11576,"name":"ExpressionStatement","src":"19328:28:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_ptr","referencedDeclaration":10354,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11548,"type":"struct strings.slice memory","value":"self"},"id":11577,"name":"Identifier","src":"19366:4:6"}],"id":11579,"name":"MemberAccess","src":"19366:9:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11556,"type":"uint256","value":"ptr"},"id":11580,"name":"Identifier","src":"19378:3:6"}],"id":11581,"name":"Assignment","src":"19366:15:6"}],"id":11582,"name":"ExpressionStatement","src":"19366:15:6"},{"attributes":{"functionReturnParameters":11554},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11548,"type":"struct strings.slice memory","value":"self"},"id":11583,"name":"Identifier","src":"19398:4:6"}],"id":11584,"name":"Return","src":"19391:11:6"}],"id":11585,"name":"Block","src":"19242:167:6"}],"id":11586,"name":"FunctionDefinition","src":"19151:258:6"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"rfind","payable":false,"scope":12043,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":11620,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10355,"type":"struct strings.slice"},"id":11587,"name":"UserDefinedTypeName","src":"19783:5:6"}],"id":11588,"name":"VariableDeclaration","src":"19783:17:6"},{"attributes":{"constant":false,"name":"needle","scope":11620,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10355,"type":"struct strings.slice"},"id":11589,"name":"UserDefinedTypeName","src":"19802:5:6"}],"id":11590,"name":"VariableDeclaration","src":"19802:19:6"}],"id":11591,"name":"ParameterList","src":"19782:40:6"},{"children":[{"attributes":{"constant":false,"name":"","scope":11620,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10355,"type":"struct strings.slice"},"id":11592,"name":"UserDefinedTypeName","src":"19846:5:6"}],"id":11593,"name":"VariableDeclaration","src":"19846:5:6"}],"id":11594,"name":"ParameterList","src":"19845:14:6"},{"children":[{"attributes":{"assignments":[11596]},"children":[{"attributes":{"constant":false,"name":"ptr","scope":11620,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":11595,"name":"ElementaryTypeName","src":"19870:4:6"}],"id":11596,"name":"VariableDeclaration","src":"19870:8:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":11546,"type":"function (uint256,uint256,uint256,uint256) pure returns (uint256)","value":"rfindPtr"},"id":11597,"name":"Identifier","src":"19881:8:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10352,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11588,"type":"struct strings.slice memory","value":"self"},"id":11598,"name":"Identifier","src":"19890:4:6"}],"id":11599,"name":"MemberAccess","src":"19890:9:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":10354,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11588,"type":"struct strings.slice memory","value":"self"},"id":11600,"name":"Identifier","src":"19901:4:6"}],"id":11601,"name":"MemberAccess","src":"19901:9:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10352,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11590,"type":"struct strings.slice memory","value":"needle"},"id":11602,"name":"Identifier","src":"19912:6:6"}],"id":11603,"name":"MemberAccess","src":"19912:11:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":10354,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11590,"type":"struct strings.slice memory","value":"needle"},"id":11604,"name":"Identifier","src":"19925:6:6"}],"id":11605,"name":"MemberAccess","src":"19925:11:6"}],"id":11606,"name":"FunctionCall","src":"19881:56:6"}],"id":11607,"name":"VariableDeclarationStatement","src":"19870:67:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":10352,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11588,"type":"struct strings.slice memory","value":"self"},"id":11608,"name":"Identifier","src":"19947:4:6"}],"id":11610,"name":"MemberAccess","src":"19947:9:6"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11596,"type":"uint256","value":"ptr"},"id":11611,"name":"Identifier","src":"19959:3:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":10354,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11588,"type":"struct strings.slice memory","value":"self"},"id":11612,"name":"Identifier","src":"19965:4:6"}],"id":11613,"name":"MemberAccess","src":"19965:9:6"}],"id":11614,"name":"BinaryOperation","src":"19959:15:6"}],"id":11615,"name":"Assignment","src":"19947:27:6"}],"id":11616,"name":"ExpressionStatement","src":"19947:27:6"},{"attributes":{"functionReturnParameters":11594},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11588,"type":"struct strings.slice memory","value":"self"},"id":11617,"name":"Identifier","src":"19991:4:6"}],"id":11618,"name":"Return","src":"19984:11:6"}],"id":11619,"name":"Block","src":"19860:142:6"}],"id":11620,"name":"FunctionDefinition","src":"19768:234:6"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"split","payable":false,"scope":12043,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":11698,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10355,"type":"struct strings.slice"},"id":11621,"name":"UserDefinedTypeName","src":"20523:5:6"}],"id":11622,"name":"VariableDeclaration","src":"20523:17:6"},{"attributes":{"constant":false,"name":"needle","scope":11698,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10355,"type":"struct strings.slice"},"id":11623,"name":"UserDefinedTypeName","src":"20542:5:6"}],"id":11624,"name":"VariableDeclaration","src":"20542:19:6"},{"attributes":{"constant":false,"name":"token","scope":11698,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10355,"type":"struct strings.slice"},"id":11625,"name":"UserDefinedTypeName","src":"20563:5:6"}],"id":11626,"name":"VariableDeclaration","src":"20563:18:6"}],"id":11627,"name":"ParameterList","src":"20522:60:6"},{"children":[{"attributes":{"constant":false,"name":"","scope":11698,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10355,"type":"struct strings.slice"},"id":11628,"name":"UserDefinedTypeName","src":"20606:5:6"}],"id":11629,"name":"VariableDeclaration","src":"20606:5:6"}],"id":11630,"name":"ParameterList","src":"20605:14:6"},{"children":[{"attributes":{"assignments":[11632]},"children":[{"attributes":{"constant":false,"name":"ptr","scope":11698,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":11631,"name":"ElementaryTypeName","src":"20630:4:6"}],"id":11632,"name":"VariableDeclaration","src":"20630:8:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":11429,"type":"function (uint256,uint256,uint256,uint256) pure returns (uint256)","value":"findPtr"},"id":11633,"name":"Identifier","src":"20641:7:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10352,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11622,"type":"struct strings.slice memory","value":"self"},"id":11634,"name":"Identifier","src":"20649:4:6"}],"id":11635,"name":"MemberAccess","src":"20649:9:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":10354,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11622,"type":"struct strings.slice memory","value":"self"},"id":11636,"name":"Identifier","src":"20660:4:6"}],"id":11637,"name":"MemberAccess","src":"20660:9:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10352,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11624,"type":"struct strings.slice memory","value":"needle"},"id":11638,"name":"Identifier","src":"20671:6:6"}],"id":11639,"name":"MemberAccess","src":"20671:11:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":10354,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11624,"type":"struct strings.slice memory","value":"needle"},"id":11640,"name":"Identifier","src":"20684:6:6"}],"id":11641,"name":"MemberAccess","src":"20684:11:6"}],"id":11642,"name":"FunctionCall","src":"20641:55:6"}],"id":11643,"name":"VariableDeclarationStatement","src":"20630:66:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_ptr","referencedDeclaration":10354,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11626,"type":"struct strings.slice memory","value":"token"},"id":11644,"name":"Identifier","src":"20706:5:6"}],"id":11646,"name":"MemberAccess","src":"20706:10:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":10354,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11622,"type":"struct strings.slice memory","value":"self"},"id":11647,"name":"Identifier","src":"20719:4:6"}],"id":11648,"name":"MemberAccess","src":"20719:9:6"}],"id":11649,"name":"Assignment","src":"20706:22:6"}],"id":11650,"name":"ExpressionStatement","src":"20706:22:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":10352,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11626,"type":"struct strings.slice memory","value":"token"},"id":11651,"name":"Identifier","src":"20738:5:6"}],"id":11653,"name":"MemberAccess","src":"20738:10:6"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11632,"type":"uint256","value":"ptr"},"id":11654,"name":"Identifier","src":"20751:3:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":10354,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11622,"type":"struct strings.slice memory","value":"self"},"id":11655,"name":"Identifier","src":"20757:4:6"}],"id":11656,"name":"MemberAccess","src":"20757:9:6"}],"id":11657,"name":"BinaryOperation","src":"20751:15:6"}],"id":11658,"name":"Assignment","src":"20738:28:6"}],"id":11659,"name":"ExpressionStatement","src":"20738:28:6"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11632,"type":"uint256","value":"ptr"},"id":11660,"name":"Identifier","src":"20780:3:6"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":10354,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11622,"type":"struct strings.slice memory","value":"self"},"id":11661,"name":"Identifier","src":"20787:4:6"}],"id":11662,"name":"MemberAccess","src":"20787:9:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10352,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11622,"type":"struct strings.slice memory","value":"self"},"id":11663,"name":"Identifier","src":"20799:4:6"}],"id":11664,"name":"MemberAccess","src":"20799:9:6"}],"id":11665,"name":"BinaryOperation","src":"20787:21:6"}],"id":11666,"name":"BinaryOperation","src":"20780:28:6"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":10352,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11622,"type":"struct strings.slice memory","value":"self"},"id":11667,"name":"Identifier","src":"20849:4:6"}],"id":11669,"name":"MemberAccess","src":"20849:9:6"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":11670,"name":"Literal","src":"20861:1:6"}],"id":11671,"name":"Assignment","src":"20849:13:6"}],"id":11672,"name":"ExpressionStatement","src":"20849:13:6"}],"id":11673,"name":"Block","src":"20810:63:6"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":10352,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11622,"type":"struct strings.slice memory","value":"self"},"id":11674,"name":"Identifier","src":"20893:4:6"}],"id":11676,"name":"MemberAccess","src":"20893:9:6"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10352,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11626,"type":"struct strings.slice memory","value":"token"},"id":11677,"name":"Identifier","src":"20906:5:6"}],"id":11678,"name":"MemberAccess","src":"20906:10:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10352,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11624,"type":"struct strings.slice memory","value":"needle"},"id":11679,"name":"Identifier","src":"20919:6:6"}],"id":11680,"name":"MemberAccess","src":"20919:11:6"}],"id":11681,"name":"BinaryOperation","src":"20906:24:6"}],"id":11682,"name":"Assignment","src":"20893:37:6"}],"id":11683,"name":"ExpressionStatement","src":"20893:37:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_ptr","referencedDeclaration":10354,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11622,"type":"struct strings.slice memory","value":"self"},"id":11684,"name":"Identifier","src":"20944:4:6"}],"id":11686,"name":"MemberAccess","src":"20944:9:6"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11632,"type":"uint256","value":"ptr"},"id":11687,"name":"Identifier","src":"20956:3:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10352,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11624,"type":"struct strings.slice memory","value":"needle"},"id":11688,"name":"Identifier","src":"20962:6:6"}],"id":11689,"name":"MemberAccess","src":"20962:11:6"}],"id":11690,"name":"BinaryOperation","src":"20956:17:6"}],"id":11691,"name":"Assignment","src":"20944:29:6"}],"id":11692,"name":"ExpressionStatement","src":"20944:29:6"}],"id":11693,"name":"Block","src":"20879:105:6"}],"id":11694,"name":"IfStatement","src":"20776:208:6"},{"attributes":{"functionReturnParameters":11630},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11626,"type":"struct strings.slice memory","value":"token"},"id":11695,"name":"Identifier","src":"21000:5:6"}],"id":11696,"name":"Return","src":"20993:12:6"}],"id":11697,"name":"Block","src":"20620:392:6"}],"id":11698,"name":"FunctionDefinition","src":"20508:504:6"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"split","payable":false,"scope":12043,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":11714,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10355,"type":"struct strings.slice"},"id":11699,"name":"UserDefinedTypeName","src":"21498:5:6"}],"id":11700,"name":"VariableDeclaration","src":"21498:17:6"},{"attributes":{"constant":false,"name":"needle","scope":11714,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10355,"type":"struct strings.slice"},"id":11701,"name":"UserDefinedTypeName","src":"21517:5:6"}],"id":11702,"name":"VariableDeclaration","src":"21517:19:6"}],"id":11703,"name":"ParameterList","src":"21497:40:6"},{"children":[{"attributes":{"constant":false,"name":"token","scope":11714,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10355,"type":"struct strings.slice"},"id":11704,"name":"UserDefinedTypeName","src":"21561:5:6"}],"id":11705,"name":"VariableDeclaration","src":"21561:18:6"}],"id":11706,"name":"ParameterList","src":"21560:20:6"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"struct strings.slice memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$10355_memory_ptr","typeString":"struct strings.slice memory"},{"typeIdentifier":"t_struct$_slice_$10355_memory_ptr","typeString":"struct strings.slice memory"},{"typeIdentifier":"t_struct$_slice_$10355_memory_ptr","typeString":"struct strings.slice memory"}],"overloadedDeclarations":[11698,11714],"referencedDeclaration":11698,"type":"function (struct strings.slice memory,struct strings.slice memory,struct strings.slice memory) pure returns (struct strings.slice memory)","value":"split"},"id":11707,"name":"Identifier","src":"21591:5:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11700,"type":"struct strings.slice memory","value":"self"},"id":11708,"name":"Identifier","src":"21597:4:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11702,"type":"struct strings.slice memory","value":"needle"},"id":11709,"name":"Identifier","src":"21603:6:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11705,"type":"struct strings.slice memory","value":"token"},"id":11710,"name":"Identifier","src":"21611:5:6"}],"id":11711,"name":"FunctionCall","src":"21591:26:6"}],"id":11712,"name":"ExpressionStatement","src":"21591:26:6"}],"id":11713,"name":"Block","src":"21581:43:6"}],"id":11714,"name":"FunctionDefinition","src":"21483:141:6"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"rsplit","payable":false,"scope":12043,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":11783,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10355,"type":"struct strings.slice"},"id":11715,"name":"UserDefinedTypeName","src":"22145:5:6"}],"id":11716,"name":"VariableDeclaration","src":"22145:17:6"},{"attributes":{"constant":false,"name":"needle","scope":11783,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10355,"type":"struct strings.slice"},"id":11717,"name":"UserDefinedTypeName","src":"22164:5:6"}],"id":11718,"name":"VariableDeclaration","src":"22164:19:6"},{"attributes":{"constant":false,"name":"token","scope":11783,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10355,"type":"struct strings.slice"},"id":11719,"name":"UserDefinedTypeName","src":"22185:5:6"}],"id":11720,"name":"VariableDeclaration","src":"22185:18:6"}],"id":11721,"name":"ParameterList","src":"22144:60:6"},{"children":[{"attributes":{"constant":false,"name":"","scope":11783,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10355,"type":"struct strings.slice"},"id":11722,"name":"UserDefinedTypeName","src":"22228:5:6"}],"id":11723,"name":"VariableDeclaration","src":"22228:5:6"}],"id":11724,"name":"ParameterList","src":"22227:14:6"},{"children":[{"attributes":{"assignments":[11726]},"children":[{"attributes":{"constant":false,"name":"ptr","scope":11783,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":11725,"name":"ElementaryTypeName","src":"22252:4:6"}],"id":11726,"name":"VariableDeclaration","src":"22252:8:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":11546,"type":"function (uint256,uint256,uint256,uint256) pure returns (uint256)","value":"rfindPtr"},"id":11727,"name":"Identifier","src":"22263:8:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10352,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11716,"type":"struct strings.slice memory","value":"self"},"id":11728,"name":"Identifier","src":"22272:4:6"}],"id":11729,"name":"MemberAccess","src":"22272:9:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":10354,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11716,"type":"struct strings.slice memory","value":"self"},"id":11730,"name":"Identifier","src":"22283:4:6"}],"id":11731,"name":"MemberAccess","src":"22283:9:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10352,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11718,"type":"struct strings.slice memory","value":"needle"},"id":11732,"name":"Identifier","src":"22294:6:6"}],"id":11733,"name":"MemberAccess","src":"22294:11:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":10354,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11718,"type":"struct strings.slice memory","value":"needle"},"id":11734,"name":"Identifier","src":"22307:6:6"}],"id":11735,"name":"MemberAccess","src":"22307:11:6"}],"id":11736,"name":"FunctionCall","src":"22263:56:6"}],"id":11737,"name":"VariableDeclarationStatement","src":"22252:67:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_ptr","referencedDeclaration":10354,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11720,"type":"struct strings.slice memory","value":"token"},"id":11738,"name":"Identifier","src":"22329:5:6"}],"id":11740,"name":"MemberAccess","src":"22329:10:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11726,"type":"uint256","value":"ptr"},"id":11741,"name":"Identifier","src":"22342:3:6"}],"id":11742,"name":"Assignment","src":"22329:16:6"}],"id":11743,"name":"ExpressionStatement","src":"22329:16:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":10352,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11720,"type":"struct strings.slice memory","value":"token"},"id":11744,"name":"Identifier","src":"22355:5:6"}],"id":11746,"name":"MemberAccess","src":"22355:10:6"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10352,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11716,"type":"struct strings.slice memory","value":"self"},"id":11747,"name":"Identifier","src":"22368:4:6"}],"id":11748,"name":"MemberAccess","src":"22368:9:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11726,"type":"uint256","value":"ptr"},"id":11749,"name":"Identifier","src":"22381:3:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":10354,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11716,"type":"struct strings.slice memory","value":"self"},"id":11750,"name":"Identifier","src":"22387:4:6"}],"id":11751,"name":"MemberAccess","src":"22387:9:6"}],"id":11752,"name":"BinaryOperation","src":"22381:15:6"}],"id":11753,"name":"TupleExpression","src":"22380:17:6"}],"id":11754,"name":"BinaryOperation","src":"22368:29:6"}],"id":11755,"name":"Assignment","src":"22355:42:6"}],"id":11756,"name":"ExpressionStatement","src":"22355:42:6"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11726,"type":"uint256","value":"ptr"},"id":11757,"name":"Identifier","src":"22411:3:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":10354,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11716,"type":"struct strings.slice memory","value":"self"},"id":11758,"name":"Identifier","src":"22418:4:6"}],"id":11759,"name":"MemberAccess","src":"22418:9:6"}],"id":11760,"name":"BinaryOperation","src":"22411:16:6"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":10352,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11716,"type":"struct strings.slice memory","value":"self"},"id":11761,"name":"Identifier","src":"22468:4:6"}],"id":11763,"name":"MemberAccess","src":"22468:9:6"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":11764,"name":"Literal","src":"22480:1:6"}],"id":11765,"name":"Assignment","src":"22468:13:6"}],"id":11766,"name":"ExpressionStatement","src":"22468:13:6"}],"id":11767,"name":"Block","src":"22429:63:6"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":10352,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11716,"type":"struct strings.slice memory","value":"self"},"id":11768,"name":"Identifier","src":"22512:4:6"}],"id":11770,"name":"MemberAccess","src":"22512:9:6"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10352,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11720,"type":"struct strings.slice memory","value":"token"},"id":11771,"name":"Identifier","src":"22525:5:6"}],"id":11772,"name":"MemberAccess","src":"22525:10:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10352,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11718,"type":"struct strings.slice memory","value":"needle"},"id":11773,"name":"Identifier","src":"22538:6:6"}],"id":11774,"name":"MemberAccess","src":"22538:11:6"}],"id":11775,"name":"BinaryOperation","src":"22525:24:6"}],"id":11776,"name":"Assignment","src":"22512:37:6"}],"id":11777,"name":"ExpressionStatement","src":"22512:37:6"}],"id":11778,"name":"Block","src":"22498:62:6"}],"id":11779,"name":"IfStatement","src":"22407:153:6"},{"attributes":{"functionReturnParameters":11724},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11720,"type":"struct strings.slice memory","value":"token"},"id":11780,"name":"Identifier","src":"22576:5:6"}],"id":11781,"name":"Return","src":"22569:12:6"}],"id":11782,"name":"Block","src":"22242:346:6"}],"id":11783,"name":"FunctionDefinition","src":"22129:459:6"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"rsplit","payable":false,"scope":12043,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":11799,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10355,"type":"struct strings.slice"},"id":11784,"name":"UserDefinedTypeName","src":"23073:5:6"}],"id":11785,"name":"VariableDeclaration","src":"23073:17:6"},{"attributes":{"constant":false,"name":"needle","scope":11799,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10355,"type":"struct strings.slice"},"id":11786,"name":"UserDefinedTypeName","src":"23092:5:6"}],"id":11787,"name":"VariableDeclaration","src":"23092:19:6"}],"id":11788,"name":"ParameterList","src":"23072:40:6"},{"children":[{"attributes":{"constant":false,"name":"token","scope":11799,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10355,"type":"struct strings.slice"},"id":11789,"name":"UserDefinedTypeName","src":"23136:5:6"}],"id":11790,"name":"VariableDeclaration","src":"23136:18:6"}],"id":11791,"name":"ParameterList","src":"23135:20:6"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"struct strings.slice memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$10355_memory_ptr","typeString":"struct strings.slice memory"},{"typeIdentifier":"t_struct$_slice_$10355_memory_ptr","typeString":"struct strings.slice memory"},{"typeIdentifier":"t_struct$_slice_$10355_memory_ptr","typeString":"struct strings.slice memory"}],"overloadedDeclarations":[11783,11799],"referencedDeclaration":11783,"type":"function (struct strings.slice memory,struct strings.slice memory,struct strings.slice memory) pure returns (struct strings.slice memory)","value":"rsplit"},"id":11792,"name":"Identifier","src":"23166:6:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11785,"type":"struct strings.slice memory","value":"self"},"id":11793,"name":"Identifier","src":"23173:4:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11787,"type":"struct strings.slice memory","value":"needle"},"id":11794,"name":"Identifier","src":"23179:6:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11790,"type":"struct strings.slice memory","value":"token"},"id":11795,"name":"Identifier","src":"23187:5:6"}],"id":11796,"name":"FunctionCall","src":"23166:27:6"}],"id":11797,"name":"ExpressionStatement","src":"23166:27:6"}],"id":11798,"name":"Block","src":"23156:44:6"}],"id":11799,"name":"FunctionDefinition","src":"23057:143:6"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"count","payable":false,"scope":12043,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":11858,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10355,"type":"struct strings.slice"},"id":11800,"name":"UserDefinedTypeName","src":"23484:5:6"}],"id":11801,"name":"VariableDeclaration","src":"23484:17:6"},{"attributes":{"constant":false,"name":"needle","scope":11858,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10355,"type":"struct strings.slice"},"id":11802,"name":"UserDefinedTypeName","src":"23503:5:6"}],"id":11803,"name":"VariableDeclaration","src":"23503:19:6"}],"id":11804,"name":"ParameterList","src":"23483:40:6"},{"children":[{"attributes":{"constant":false,"name":"cnt","scope":11858,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":11805,"name":"ElementaryTypeName","src":"23547:4:6"}],"id":11806,"name":"VariableDeclaration","src":"23547:8:6"}],"id":11807,"name":"ParameterList","src":"23546:10:6"},{"children":[{"attributes":{"assignments":[11809]},"children":[{"attributes":{"constant":false,"name":"ptr","scope":11858,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":11808,"name":"ElementaryTypeName","src":"23567:4:6"}],"id":11809,"name":"VariableDeclaration","src":"23567:8:6"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":11429,"type":"function (uint256,uint256,uint256,uint256) pure returns (uint256)","value":"findPtr"},"id":11810,"name":"Identifier","src":"23578:7:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10352,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11801,"type":"struct strings.slice memory","value":"self"},"id":11811,"name":"Identifier","src":"23586:4:6"}],"id":11812,"name":"MemberAccess","src":"23586:9:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":10354,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11801,"type":"struct strings.slice memory","value":"self"},"id":11813,"name":"Identifier","src":"23597:4:6"}],"id":11814,"name":"MemberAccess","src":"23597:9:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10352,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11803,"type":"struct strings.slice memory","value":"needle"},"id":11815,"name":"Identifier","src":"23608:6:6"}],"id":11816,"name":"MemberAccess","src":"23608:11:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":10354,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11803,"type":"struct strings.slice memory","value":"needle"},"id":11817,"name":"Identifier","src":"23621:6:6"}],"id":11818,"name":"MemberAccess","src":"23621:11:6"}],"id":11819,"name":"FunctionCall","src":"23578:55:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10352,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11803,"type":"struct strings.slice memory","value":"needle"},"id":11820,"name":"Identifier","src":"23636:6:6"}],"id":11821,"name":"MemberAccess","src":"23636:11:6"}],"id":11822,"name":"BinaryOperation","src":"23578:69:6"}],"id":11823,"name":"VariableDeclarationStatement","src":"23567:80:6"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11809,"type":"uint256","value":"ptr"},"id":11824,"name":"Identifier","src":"23664:3:6"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":10354,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11801,"type":"struct strings.slice memory","value":"self"},"id":11825,"name":"Identifier","src":"23671:4:6"}],"id":11826,"name":"MemberAccess","src":"23671:9:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10352,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11801,"type":"struct strings.slice memory","value":"self"},"id":11827,"name":"Identifier","src":"23683:4:6"}],"id":11828,"name":"MemberAccess","src":"23683:9:6"}],"id":11829,"name":"BinaryOperation","src":"23671:21:6"}],"id":11830,"name":"BinaryOperation","src":"23664:28:6"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11806,"type":"uint256","value":"cnt"},"id":11831,"name":"Identifier","src":"23708:3:6"}],"id":11832,"name":"UnaryOperation","src":"23708:5:6"}],"id":11833,"name":"ExpressionStatement","src":"23708:5:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11809,"type":"uint256","value":"ptr"},"id":11834,"name":"Identifier","src":"23727:3:6"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":11429,"type":"function (uint256,uint256,uint256,uint256) pure returns (uint256)","value":"findPtr"},"id":11835,"name":"Identifier","src":"23733:7:6"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10352,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11801,"type":"struct strings.slice memory","value":"self"},"id":11836,"name":"Identifier","src":"23741:4:6"}],"id":11837,"name":"MemberAccess","src":"23741:9:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11809,"type":"uint256","value":"ptr"},"id":11838,"name":"Identifier","src":"23754:3:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":10354,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11801,"type":"struct strings.slice memory","value":"self"},"id":11839,"name":"Identifier","src":"23760:4:6"}],"id":11840,"name":"MemberAccess","src":"23760:9:6"}],"id":11841,"name":"BinaryOperation","src":"23754:15:6"}],"id":11842,"name":"TupleExpression","src":"23753:17:6"}],"id":11843,"name":"BinaryOperation","src":"23741:29:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11809,"type":"uint256","value":"ptr"},"id":11844,"name":"Identifier","src":"23772:3:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10352,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11803,"type":"struct strings.slice memory","value":"needle"},"id":11845,"name":"Identifier","src":"23777:6:6"}],"id":11846,"name":"MemberAccess","src":"23777:11:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":10354,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11803,"type":"struct strings.slice memory","value":"needle"},"id":11847,"name":"Identifier","src":"23790:6:6"}],"id":11848,"name":"MemberAccess","src":"23790:11:6"}],"id":11849,"name":"FunctionCall","src":"23733:69:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10352,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11803,"type":"struct strings.slice memory","value":"needle"},"id":11850,"name":"Identifier","src":"23805:6:6"}],"id":11851,"name":"MemberAccess","src":"23805:11:6"}],"id":11852,"name":"BinaryOperation","src":"23733:83:6"}],"id":11853,"name":"Assignment","src":"23727:89:6"}],"id":11854,"name":"ExpressionStatement","src":"23727:89:6"}],"id":11855,"name":"Block","src":"23694:133:6"}],"id":11856,"name":"WhileStatement","src":"23657:170:6"}],"id":11857,"name":"Block","src":"23557:276:6"}],"id":11858,"name":"FunctionDefinition","src":"23469:364:6"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"contains","payable":false,"scope":12043,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":11882,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10355,"type":"struct strings.slice"},"id":11859,"name":"UserDefinedTypeName","src":"24090:5:6"}],"id":11860,"name":"VariableDeclaration","src":"24090:17:6"},{"attributes":{"constant":false,"name":"needle","scope":11882,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10355,"type":"struct strings.slice"},"id":11861,"name":"UserDefinedTypeName","src":"24109:5:6"}],"id":11862,"name":"VariableDeclaration","src":"24109:19:6"}],"id":11863,"name":"ParameterList","src":"24089:40:6"},{"children":[{"attributes":{"constant":false,"name":"","scope":11882,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":11864,"name":"ElementaryTypeName","src":"24153:4:6"}],"id":11865,"name":"VariableDeclaration","src":"24153:4:6"}],"id":11866,"name":"ParameterList","src":"24152:6:6"},{"children":[{"attributes":{"functionReturnParameters":11866},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":11546,"type":"function (uint256,uint256,uint256,uint256) pure returns (uint256)","value":"rfindPtr"},"id":11867,"name":"Identifier","src":"24176:8:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10352,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11860,"type":"struct strings.slice memory","value":"self"},"id":11868,"name":"Identifier","src":"24185:4:6"}],"id":11869,"name":"MemberAccess","src":"24185:9:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":10354,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11860,"type":"struct strings.slice memory","value":"self"},"id":11870,"name":"Identifier","src":"24196:4:6"}],"id":11871,"name":"MemberAccess","src":"24196:9:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10352,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11862,"type":"struct strings.slice memory","value":"needle"},"id":11872,"name":"Identifier","src":"24207:6:6"}],"id":11873,"name":"MemberAccess","src":"24207:11:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":10354,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11862,"type":"struct strings.slice memory","value":"needle"},"id":11874,"name":"Identifier","src":"24220:6:6"}],"id":11875,"name":"MemberAccess","src":"24220:11:6"}],"id":11876,"name":"FunctionCall","src":"24176:56:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":10354,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11860,"type":"struct strings.slice memory","value":"self"},"id":11877,"name":"Identifier","src":"24236:4:6"}],"id":11878,"name":"MemberAccess","src":"24236:9:6"}],"id":11879,"name":"BinaryOperation","src":"24176:69:6"}],"id":11880,"name":"Return","src":"24169:76:6"}],"id":11881,"name":"Block","src":"24159:93:6"}],"id":11882,"name":"FunctionDefinition","src":"24072:180:6"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"concat","payable":false,"scope":12043,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":11928,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10355,"type":"struct strings.slice"},"id":11883,"name":"UserDefinedTypeName","src":"24555:5:6"}],"id":11884,"name":"VariableDeclaration","src":"24555:17:6"},{"attributes":{"constant":false,"name":"other","scope":11928,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10355,"type":"struct strings.slice"},"id":11885,"name":"UserDefinedTypeName","src":"24574:5:6"}],"id":11886,"name":"VariableDeclaration","src":"24574:18:6"}],"id":11887,"name":"ParameterList","src":"24554:39:6"},{"children":[{"attributes":{"constant":false,"name":"","scope":11928,"stateVariable":false,"storageLocation":"memory","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":11888,"name":"ElementaryTypeName","src":"24617:6:6"}],"id":11889,"name":"VariableDeclaration","src":"24617:6:6"}],"id":11890,"name":"ParameterList","src":"24616:15:6"},{"children":[{"attributes":{"assignments":[11892]},"children":[{"attributes":{"constant":false,"name":"ret","scope":11928,"stateVariable":false,"storageLocation":"memory","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":11891,"name":"ElementaryTypeName","src":"24642:6:6"}],"id":11892,"name":"VariableDeclaration","src":"24642:17:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (string memory)"},"children":[{"attributes":{"name":"string","type":"string"},"id":11893,"name":"ElementaryTypeName","src":"24666:6:6"}],"id":11894,"name":"NewExpression","src":"24662:10:6"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10352,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11884,"type":"struct strings.slice memory","value":"self"},"id":11895,"name":"Identifier","src":"24673:4:6"}],"id":11896,"name":"MemberAccess","src":"24673:9:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10352,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11886,"type":"struct strings.slice memory","value":"other"},"id":11897,"name":"Identifier","src":"24685:5:6"}],"id":11898,"name":"MemberAccess","src":"24685:10:6"}],"id":11899,"name":"BinaryOperation","src":"24673:22:6"}],"id":11900,"name":"FunctionCall","src":"24662:34:6"}],"id":11901,"name":"VariableDeclarationStatement","src":"24642:54:6"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"retptr","scope":11928,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":11902,"name":"ElementaryTypeName","src":"24706:4:6"}],"id":11903,"name":"VariableDeclaration","src":"24706:11:6"}],"id":11904,"name":"VariableDeclarationStatement","src":"24706:11:6"},{"attributes":{"externalReferences":[{"retptr":{"declaration":11903,"isOffset":false,"isSlot":false,"src":"24738:6:6","valueSize":1}},{"ret":{"declaration":11892,"isOffset":false,"isSlot":false,"src":"24752:3:6","valueSize":1}}],"operations":"{\n retptr := add(ret, 32)\n}"},"children":[],"id":11905,"name":"InlineAssembly","src":"24727:50:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":10395,"type":"function (uint256,uint256,uint256) pure","value":"memcpy"},"id":11906,"name":"Identifier","src":"24771:6:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11903,"type":"uint256","value":"retptr"},"id":11907,"name":"Identifier","src":"24778:6:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":10354,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11884,"type":"struct strings.slice memory","value":"self"},"id":11908,"name":"Identifier","src":"24786:4:6"}],"id":11909,"name":"MemberAccess","src":"24786:9:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10352,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11884,"type":"struct strings.slice memory","value":"self"},"id":11910,"name":"Identifier","src":"24797:4:6"}],"id":11911,"name":"MemberAccess","src":"24797:9:6"}],"id":11912,"name":"FunctionCall","src":"24771:36:6"}],"id":11913,"name":"ExpressionStatement","src":"24771:36:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":10395,"type":"function (uint256,uint256,uint256) pure","value":"memcpy"},"id":11914,"name":"Identifier","src":"24817:6:6"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11903,"type":"uint256","value":"retptr"},"id":11915,"name":"Identifier","src":"24824:6:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10352,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11884,"type":"struct strings.slice memory","value":"self"},"id":11916,"name":"Identifier","src":"24833:4:6"}],"id":11917,"name":"MemberAccess","src":"24833:9:6"}],"id":11918,"name":"BinaryOperation","src":"24824:18:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":10354,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11886,"type":"struct strings.slice memory","value":"other"},"id":11919,"name":"Identifier","src":"24844:5:6"}],"id":11920,"name":"MemberAccess","src":"24844:10:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10352,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11886,"type":"struct strings.slice memory","value":"other"},"id":11921,"name":"Identifier","src":"24856:5:6"}],"id":11922,"name":"MemberAccess","src":"24856:10:6"}],"id":11923,"name":"FunctionCall","src":"24817:50:6"}],"id":11924,"name":"ExpressionStatement","src":"24817:50:6"},{"attributes":{"functionReturnParameters":11890},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11892,"type":"string memory","value":"ret"},"id":11925,"name":"Identifier","src":"24884:3:6"}],"id":11926,"name":"Return","src":"24877:10:6"}],"id":11927,"name":"Block","src":"24632:262:6"}],"id":11928,"name":"FunctionDefinition","src":"24539:355:6"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"join","payable":false,"scope":12043,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":12042,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10355,"type":"struct strings.slice"},"id":11929,"name":"UserDefinedTypeName","src":"25244:5:6"}],"id":11930,"name":"VariableDeclaration","src":"25244:17:6"},{"attributes":{"constant":false,"name":"parts","scope":12042,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"struct strings.slice[]"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":10355,"type":"struct strings.slice"},"id":11931,"name":"UserDefinedTypeName","src":"25263:5:6"}],"id":11932,"name":"ArrayTypeName","src":"25263:7:6"}],"id":11933,"name":"VariableDeclaration","src":"25263:20:6"}],"id":11934,"name":"ParameterList","src":"25243:41:6"},{"children":[{"attributes":{"constant":false,"name":"","scope":12042,"stateVariable":false,"storageLocation":"memory","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":11935,"name":"ElementaryTypeName","src":"25308:6:6"}],"id":11936,"name":"VariableDeclaration","src":"25308:6:6"}],"id":11937,"name":"ParameterList","src":"25307:15:6"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11933,"type":"struct strings.slice memory[] memory","value":"parts"},"id":11938,"name":"Identifier","src":"25337:5:6"}],"id":11939,"name":"MemberAccess","src":"25337:12:6"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":11940,"name":"Literal","src":"25353:1:6"}],"id":11941,"name":"BinaryOperation","src":"25337:17:6"},{"attributes":{"functionReturnParameters":11937},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"\"","value":""},"id":11942,"name":"Literal","src":"25375:2:6"}],"id":11943,"name":"Return","src":"25368:9:6"}],"id":11944,"name":"IfStatement","src":"25333:44:6"},{"attributes":{"assignments":[11946]},"children":[{"attributes":{"constant":false,"name":"length","scope":12042,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":11945,"name":"ElementaryTypeName","src":"25388:4:6"}],"id":11946,"name":"VariableDeclaration","src":"25388:11:6"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10352,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11930,"type":"struct strings.slice memory","value":"self"},"id":11947,"name":"Identifier","src":"25402:4:6"}],"id":11948,"name":"MemberAccess","src":"25402:9:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11933,"type":"struct strings.slice memory[] memory","value":"parts"},"id":11949,"name":"Identifier","src":"25415:5:6"}],"id":11950,"name":"MemberAccess","src":"25415:12:6"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":11951,"name":"Literal","src":"25430:1:6"}],"id":11952,"name":"BinaryOperation","src":"25415:16:6"}],"id":11953,"name":"TupleExpression","src":"25414:18:6"}],"id":11954,"name":"BinaryOperation","src":"25402:30:6"}],"id":11955,"name":"VariableDeclarationStatement","src":"25388:44:6"},{"children":[{"attributes":{"assignments":[11957]},"children":[{"attributes":{"constant":false,"name":"i","scope":12042,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":11956,"name":"ElementaryTypeName","src":"25446:4:6"}],"id":11957,"name":"VariableDeclaration","src":"25446:6:6"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":11958,"name":"Literal","src":"25455:1:6"}],"id":11959,"name":"VariableDeclarationStatement","src":"25446:10:6"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11957,"type":"uint256","value":"i"},"id":11960,"name":"Identifier","src":"25458:1:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11933,"type":"struct strings.slice memory[] memory","value":"parts"},"id":11961,"name":"Identifier","src":"25462:5:6"}],"id":11962,"name":"MemberAccess","src":"25462:12:6"}],"id":11963,"name":"BinaryOperation","src":"25458:16:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11957,"type":"uint256","value":"i"},"id":11964,"name":"Identifier","src":"25476:1:6"}],"id":11965,"name":"UnaryOperation","src":"25476:3:6"}],"id":11966,"name":"ExpressionStatement","src":"25476:3:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11946,"type":"uint256","value":"length"},"id":11967,"name":"Identifier","src":"25493:6:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10352,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct strings.slice memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11933,"type":"struct strings.slice memory[] memory","value":"parts"},"id":11968,"name":"Identifier","src":"25503:5:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11957,"type":"uint256","value":"i"},"id":11969,"name":"Identifier","src":"25509:1:6"}],"id":11970,"name":"IndexAccess","src":"25503:8:6"}],"id":11971,"name":"MemberAccess","src":"25503:13:6"}],"id":11972,"name":"Assignment","src":"25493:23:6"}],"id":11973,"name":"ExpressionStatement","src":"25493:23:6"}],"id":11974,"name":"ForStatement","src":"25442:74:6"},{"attributes":{"assignments":[11976]},"children":[{"attributes":{"constant":false,"name":"ret","scope":12042,"stateVariable":false,"storageLocation":"memory","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":11975,"name":"ElementaryTypeName","src":"25527:6:6"}],"id":11976,"name":"VariableDeclaration","src":"25527:17:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (string memory)"},"children":[{"attributes":{"name":"string","type":"string"},"id":11977,"name":"ElementaryTypeName","src":"25551:6:6"}],"id":11978,"name":"NewExpression","src":"25547:10:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11946,"type":"uint256","value":"length"},"id":11979,"name":"Identifier","src":"25558:6:6"}],"id":11980,"name":"FunctionCall","src":"25547:18:6"}],"id":11981,"name":"VariableDeclarationStatement","src":"25527:38:6"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"retptr","scope":12042,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":11982,"name":"ElementaryTypeName","src":"25575:4:6"}],"id":11983,"name":"VariableDeclaration","src":"25575:11:6"}],"id":11984,"name":"VariableDeclarationStatement","src":"25575:11:6"},{"attributes":{"externalReferences":[{"retptr":{"declaration":11983,"isOffset":false,"isSlot":false,"src":"25607:6:6","valueSize":1}},{"ret":{"declaration":11976,"isOffset":false,"isSlot":false,"src":"25621:3:6","valueSize":1}}],"operations":"{\n retptr := add(ret, 32)\n}"},"children":[],"id":11985,"name":"InlineAssembly","src":"25596:48:6"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11957,"type":"uint256","value":"i"},"id":11986,"name":"Identifier","src":"25645:1:6"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":11987,"name":"Literal","src":"25649:1:6"}],"id":11988,"name":"Assignment","src":"25645:5:6"}],"id":11989,"name":"ExpressionStatement","src":"25645:5:6"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11957,"type":"uint256","value":"i"},"id":11990,"name":"Identifier","src":"25652:1:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11933,"type":"struct strings.slice memory[] memory","value":"parts"},"id":11991,"name":"Identifier","src":"25656:5:6"}],"id":11992,"name":"MemberAccess","src":"25656:12:6"}],"id":11993,"name":"BinaryOperation","src":"25652:16:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11957,"type":"uint256","value":"i"},"id":11994,"name":"Identifier","src":"25670:1:6"}],"id":11995,"name":"UnaryOperation","src":"25670:3:6"}],"id":11996,"name":"ExpressionStatement","src":"25670:3:6"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":10395,"type":"function (uint256,uint256,uint256) pure","value":"memcpy"},"id":11997,"name":"Identifier","src":"25689:6:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11983,"type":"uint256","value":"retptr"},"id":11998,"name":"Identifier","src":"25696:6:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":10354,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct strings.slice memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11933,"type":"struct strings.slice memory[] memory","value":"parts"},"id":11999,"name":"Identifier","src":"25704:5:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11957,"type":"uint256","value":"i"},"id":12000,"name":"Identifier","src":"25710:1:6"}],"id":12001,"name":"IndexAccess","src":"25704:8:6"}],"id":12002,"name":"MemberAccess","src":"25704:13:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10352,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct strings.slice memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11933,"type":"struct strings.slice memory[] memory","value":"parts"},"id":12003,"name":"Identifier","src":"25719:5:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11957,"type":"uint256","value":"i"},"id":12004,"name":"Identifier","src":"25725:1:6"}],"id":12005,"name":"IndexAccess","src":"25719:8:6"}],"id":12006,"name":"MemberAccess","src":"25719:13:6"}],"id":12007,"name":"FunctionCall","src":"25689:44:6"}],"id":12008,"name":"ExpressionStatement","src":"25689:44:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11983,"type":"uint256","value":"retptr"},"id":12009,"name":"Identifier","src":"25747:6:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10352,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct strings.slice memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11933,"type":"struct strings.slice memory[] memory","value":"parts"},"id":12010,"name":"Identifier","src":"25757:5:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11957,"type":"uint256","value":"i"},"id":12011,"name":"Identifier","src":"25763:1:6"}],"id":12012,"name":"IndexAccess","src":"25757:8:6"}],"id":12013,"name":"MemberAccess","src":"25757:13:6"}],"id":12014,"name":"Assignment","src":"25747:23:6"}],"id":12015,"name":"ExpressionStatement","src":"25747:23:6"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11957,"type":"uint256","value":"i"},"id":12016,"name":"Identifier","src":"25788:1:6"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11933,"type":"struct strings.slice memory[] memory","value":"parts"},"id":12017,"name":"Identifier","src":"25792:5:6"}],"id":12018,"name":"MemberAccess","src":"25792:12:6"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":12019,"name":"Literal","src":"25807:1:6"}],"id":12020,"name":"BinaryOperation","src":"25792:16:6"}],"id":12021,"name":"BinaryOperation","src":"25788:20:6"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":10395,"type":"function (uint256,uint256,uint256) pure","value":"memcpy"},"id":12022,"name":"Identifier","src":"25828:6:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11983,"type":"uint256","value":"retptr"},"id":12023,"name":"Identifier","src":"25835:6:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":10354,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11930,"type":"struct strings.slice memory","value":"self"},"id":12024,"name":"Identifier","src":"25843:4:6"}],"id":12025,"name":"MemberAccess","src":"25843:9:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10352,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11930,"type":"struct strings.slice memory","value":"self"},"id":12026,"name":"Identifier","src":"25854:4:6"}],"id":12027,"name":"MemberAccess","src":"25854:9:6"}],"id":12028,"name":"FunctionCall","src":"25828:36:6"}],"id":12029,"name":"ExpressionStatement","src":"25828:36:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11983,"type":"uint256","value":"retptr"},"id":12030,"name":"Identifier","src":"25882:6:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10352,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11930,"type":"struct strings.slice memory","value":"self"},"id":12031,"name":"Identifier","src":"25892:4:6"}],"id":12032,"name":"MemberAccess","src":"25892:9:6"}],"id":12033,"name":"Assignment","src":"25882:19:6"}],"id":12034,"name":"ExpressionStatement","src":"25882:19:6"}],"id":12035,"name":"Block","src":"25810:106:6"}],"id":12036,"name":"IfStatement","src":"25784:132:6"}],"id":12037,"name":"Block","src":"25675:251:6"}],"id":12038,"name":"ForStatement","src":"25641:285:6"},{"attributes":{"functionReturnParameters":11937},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":11976,"type":"string memory","value":"ret"},"id":12039,"name":"Identifier","src":"25943:3:6"}],"id":12040,"name":"Return","src":"25936:10:6"}],"id":12041,"name":"Block","src":"25323:630:6"}],"id":12042,"name":"FunctionDefinition","src":"25230:723:6"}],"id":12043,"name":"ContractDefinition","src":"2600:23355:6"}],"id":12044,"name":"SourceUnit","src":"2574:23382:6"}},"internals/claimable.sol":{"AST":{"attributes":{"absolutePath":"internals/claimable.sol","exportedSymbols":{"Claimable":[7626]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".25"]},"id":7575,"name":"PragmaDirective","src":"769:24:7"},{"attributes":{"SourceUnit":8666,"absolutePath":"externals/ERC20.sol","file":"../externals/ERC20.sol","scope":7627,"symbolAliases":[null],"unitAlias":""},"id":7576,"name":"ImportDirective","src":"795:32:7"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"contract","documentation":"@title Claimable, allowing contract to withdraw tokens accidentally sent to itself","fullyImplemented":true,"linearizedBaseContracts":[7626],"name":"Claimable","scope":7627},"children":[{"attributes":{"anonymous":false,"documentation":null,"name":"Claimed"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_to","scope":7584,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":7577,"name":"ElementaryTypeName","src":"957:7:7"}],"id":7578,"name":"VariableDeclaration","src":"957:11:7"},{"attributes":{"constant":false,"indexed":false,"name":"_asset","scope":7584,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":7579,"name":"ElementaryTypeName","src":"970:7:7"}],"id":7580,"name":"VariableDeclaration","src":"970:14:7"},{"attributes":{"constant":false,"indexed":false,"name":"_amount","scope":7584,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":7581,"name":"ElementaryTypeName","src":"986:4:7"}],"id":7582,"name":"VariableDeclaration","src":"986:12:7"}],"id":7583,"name":"ParameterList","src":"956:43:7"}],"id":7584,"name":"EventDefinition","src":"943:57:7"},{"attributes":{"constant":false,"documentation":"@dev This function is used to move tokens sent accidentally to this contract method.\n @dev The owner can chose the new destination address\n @param _to is the recipient's address.\n @param _asset is the address of an ERC20 token or 0x0 for ether.\n @param _amount is the amount to be transferred in base units.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_claim","payable":false,"scope":7626,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_to","scope":7625,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":7585,"name":"ElementaryTypeName","src":"1366:7:7"}],"id":7586,"name":"VariableDeclaration","src":"1366:11:7"},{"attributes":{"constant":false,"name":"_asset","scope":7625,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":7587,"name":"ElementaryTypeName","src":"1379:7:7"}],"id":7588,"name":"VariableDeclaration","src":"1379:14:7"},{"attributes":{"constant":false,"name":"_amount","scope":7625,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":7589,"name":"ElementaryTypeName","src":"1395:4:7"}],"id":7590,"name":"VariableDeclaration","src":"1395:12:7"}],"id":7591,"name":"ParameterList","src":"1365:43:7"},{"attributes":{"parameters":[null]},"children":[],"id":7592,"name":"ParameterList","src":"1418:0:7"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7588,"type":"address","value":"_asset"},"id":7593,"name":"Identifier","src":"1476:6:7"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":7594,"name":"ElementaryTypeNameExpression","src":"1486:7:7"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":7595,"name":"Literal","src":"1494:1:7"}],"id":7596,"name":"FunctionCall","src":"1486:10:7"}],"id":7597,"name":"BinaryOperation","src":"1476:20:7"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"transfer","referencedDeclaration":null,"type":"function (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7586,"type":"address","value":"_to"},"id":7598,"name":"Identifier","src":"1512:3:7"}],"id":7600,"name":"MemberAccess","src":"1512:12:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7590,"type":"uint256","value":"_amount"},"id":7601,"name":"Identifier","src":"1525:7:7"}],"id":7602,"name":"FunctionCall","src":"1512:21:7"}],"id":7603,"name":"ExpressionStatement","src":"1512:21:7"}],"id":7604,"name":"Block","src":"1498:46:7"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_bebbba0e3133c903fb13ff92bbd373380a11a38636d3fcb2a56e9eeaa3171b67","typeString":"literal_string \"ERC20 token transfer was unsuccessful\""}],"overloadedDeclarations":[12061,12062],"referencedDeclaration":12062,"type":"function (bool,string memory) pure","value":"require"},"id":7605,"name":"Identifier","src":"1564:7:7"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"transfer","referencedDeclaration":8653,"type":"function (address,uint256) external returns (bool)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract ERC20","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":8665,"type":"type(contract ERC20)","value":"ERC20"},"id":7606,"name":"Identifier","src":"1572:5:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7588,"type":"address","value":"_asset"},"id":7607,"name":"Identifier","src":"1578:6:7"}],"id":7608,"name":"FunctionCall","src":"1572:13:7"}],"id":7609,"name":"MemberAccess","src":"1572:22:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7586,"type":"address","value":"_to"},"id":7610,"name":"Identifier","src":"1595:3:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7590,"type":"uint256","value":"_amount"},"id":7611,"name":"Identifier","src":"1600:7:7"}],"id":7612,"name":"FunctionCall","src":"1572:36:7"},{"attributes":{"argumentTypes":null,"hexvalue":"455243323020746f6b656e207472616e736665722077617320756e7375636365737366756c","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"ERC20 token transfer was unsuccessful\"","value":"ERC20 token transfer was unsuccessful"},"id":7613,"name":"Literal","src":"1610:39:7"}],"id":7614,"name":"FunctionCall","src":"1564:86:7"}],"id":7615,"name":"ExpressionStatement","src":"1564:86:7"}],"id":7616,"name":"Block","src":"1550:111:7"}],"id":7617,"name":"IfStatement","src":"1472:189:7"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":7584,"type":"function (address,address,uint256)","value":"Claimed"},"id":7618,"name":"Identifier","src":"1676:7:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7586,"type":"address","value":"_to"},"id":7619,"name":"Identifier","src":"1684:3:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7588,"type":"address","value":"_asset"},"id":7620,"name":"Identifier","src":"1689:6:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7590,"type":"uint256","value":"_amount"},"id":7621,"name":"Identifier","src":"1697:7:7"}],"id":7622,"name":"FunctionCall","src":"1676:29:7"}],"id":7623,"name":"EmitStatement","src":"1671:34:7"}],"id":7624,"name":"Block","src":"1418:294:7"}],"id":7625,"name":"FunctionDefinition","src":"1350:362:7"}],"id":7626,"name":"ContractDefinition","src":"917:797:7"}],"id":7627,"name":"SourceUnit","src":"769:946:7"}},"internals/controllable.sol":{"AST":{"attributes":{"absolutePath":"internals/controllable.sol","exportedSymbols":{"Controllable":[7682]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".25"]},"id":7628,"name":"PragmaDirective","src":"772:24:8"},{"attributes":{"SourceUnit":9027,"absolutePath":"internals/controller.sol","file":"./controller.sol","scope":7683,"symbolAliases":[null],"unitAlias":""},"id":7629,"name":"ImportDirective","src":"798:26:8"},{"attributes":{"SourceUnit":7903,"absolutePath":"internals/ensResolvable.sol","file":"../internals/ensResolvable.sol","scope":7683,"symbolAliases":[null],"unitAlias":""},"id":7630,"name":"ImportDirective","src":"825:40:8"},{"attributes":{"contractDependencies":[7902],"contractKind":"contract","documentation":"@title Controllable implements access control functionality of the Controller found via ENS.","fullyImplemented":false,"linearizedBaseContracts":[7682,7902],"name":"Controllable","scope":7683},"children":[{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"ENSResolvable","referencedDeclaration":7902,"type":"contract ENSResolvable"},"id":7631,"name":"UserDefinedTypeName","src":"990:13:8"}],"id":7632,"name":"InheritanceSpecifier","src":"990:13:8"},{"attributes":{"constant":false,"name":"_controllerNode","scope":7682,"stateVariable":true,"storageLocation":"default","type":"bytes32","value":null,"visibility":"private"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":7633,"name":"ElementaryTypeName","src":"1087:7:8"}],"id":7634,"name":"VariableDeclaration","src":"1087:31:8"},{"attributes":{"constant":false,"documentation":"@notice Constructor initializes the controller contract object.\n @param _controllerNameHash_ is the ENS name hash of the Controller.","implemented":true,"isConstructor":true,"modifiers":[null],"name":"","payable":false,"scope":7682,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_controllerNameHash_","scope":7644,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":7635,"name":"ElementaryTypeName","src":"1285:7:8"}],"id":7636,"name":"VariableDeclaration","src":"1285:28:8"}],"id":7637,"name":"ParameterList","src":"1284:30:8"},{"attributes":{"parameters":[null]},"children":[],"id":7638,"name":"ParameterList","src":"1324:0:8"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7634,"type":"bytes32","value":"_controllerNode"},"id":7639,"name":"Identifier","src":"1334:15:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7636,"type":"bytes32","value":"_controllerNameHash_"},"id":7640,"name":"Identifier","src":"1352:20:8"}],"id":7641,"name":"Assignment","src":"1334:38:8"}],"id":7642,"name":"ExpressionStatement","src":"1334:38:8"}],"id":7643,"name":"Block","src":"1324:55:8"}],"id":7644,"name":"FunctionDefinition","src":"1273:106:8"},{"attributes":{"documentation":"@notice Checks if message sender is the controller.","name":"onlyController","visibility":"internal"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":7645,"name":"ParameterList","src":"1468:2:8"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_918bc5a096178f6e8c423f958a6008c4b24fd25b7a3ca0123b85463c61a2e566","typeString":"literal_string \"sender is not a controller\""}],"overloadedDeclarations":[12061,12062],"referencedDeclaration":12062,"type":"function (bool,string memory) pure","value":"require"},"id":7646,"name":"Identifier","src":"1481:7:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":7681,"type":"function (address) view returns (bool)","value":"_isController"},"id":7647,"name":"Identifier","src":"1489:13:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":12058,"type":"msg","value":"msg"},"id":7648,"name":"Identifier","src":"1503:3:8"}],"id":7649,"name":"MemberAccess","src":"1503:10:8"}],"id":7650,"name":"FunctionCall","src":"1489:25:8"},{"attributes":{"argumentTypes":null,"hexvalue":"73656e646572206973206e6f74206120636f6e74726f6c6c6572","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"sender is not a controller\"","value":"sender is not a controller"},"id":7651,"name":"Literal","src":"1516:28:8"}],"id":7652,"name":"FunctionCall","src":"1481:64:8"}],"id":7653,"name":"ExpressionStatement","src":"1481:64:8"},{"id":7654,"name":"PlaceholderStatement","src":"1555:1:8"}],"id":7655,"name":"Block","src":"1471:92:8"}],"id":7656,"name":"ModifierDefinition","src":"1445:118:8"},{"attributes":{"constant":true,"documentation":"@return the controller name hash registered in ENS.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"controllerNode","payable":false,"scope":7682,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":7657,"name":"ParameterList","src":"1652:2:8"},{"children":[{"attributes":{"constant":false,"name":"","scope":7664,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":7658,"name":"ElementaryTypeName","src":"1678:7:8"}],"id":7659,"name":"VariableDeclaration","src":"1678:7:8"}],"id":7660,"name":"ParameterList","src":"1677:9:8"},{"children":[{"attributes":{"functionReturnParameters":7660},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7634,"type":"bytes32","value":"_controllerNode"},"id":7661,"name":"Identifier","src":"1704:15:8"}],"id":7662,"name":"Return","src":"1697:22:8"}],"id":7663,"name":"Block","src":"1687:39:8"}],"id":7664,"name":"FunctionDefinition","src":"1629:97:8"},{"attributes":{"constant":true,"documentation":"@return true if the provided account is the controller.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_isController","payable":false,"scope":7682,"stateMutability":"view","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":7681,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":7665,"name":"ElementaryTypeName","src":"1819:7:8"}],"id":7666,"name":"VariableDeclaration","src":"1819:16:8"}],"id":7667,"name":"ParameterList","src":"1818:18:8"},{"children":[{"attributes":{"constant":false,"name":"","scope":7681,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":7668,"name":"ElementaryTypeName","src":"1860:4:8"}],"id":7669,"name":"VariableDeclaration","src":"1860:4:8"}],"id":7670,"name":"ParameterList","src":"1859:6:8"},{"children":[{"attributes":{"functionReturnParameters":7670},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"isController","referencedDeclaration":8676,"type":"function (address) view external returns (bool)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract IController","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":8677,"type":"type(contract IController)","value":"IController"},"id":7671,"name":"Identifier","src":"1883:11:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[null],"referencedDeclaration":7901,"type":"function (bytes32) view returns (address)","value":"_ensResolve"},"id":7672,"name":"Identifier","src":"1895:11:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7634,"type":"bytes32","value":"_controllerNode"},"id":7673,"name":"Identifier","src":"1907:15:8"}],"id":7674,"name":"FunctionCall","src":"1895:28:8"}],"id":7675,"name":"FunctionCall","src":"1883:41:8"}],"id":7676,"name":"MemberAccess","src":"1883:54:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7666,"type":"address","value":"_account"},"id":7677,"name":"Identifier","src":"1938:8:8"}],"id":7678,"name":"FunctionCall","src":"1883:64:8"}],"id":7679,"name":"Return","src":"1876:71:8"}],"id":7680,"name":"Block","src":"1866:88:8"}],"id":7681,"name":"FunctionDefinition","src":"1796:158:8"}],"id":7682,"name":"ContractDefinition","src":"965:992:8"}],"id":7683,"name":"SourceUnit","src":"772:1186:8"}},"internals/controller.sol":{"AST":{"attributes":{"absolutePath":"internals/controller.sol","exportedSymbols":{"Controller":[9026],"IController":[8677]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".25"]},"id":8667,"name":"PragmaDirective","src":"770:24:9"},{"attributes":{"SourceUnit":10349,"absolutePath":"internals/ownable.sol","file":"./ownable.sol","scope":9027,"symbolAliases":[null],"unitAlias":""},"id":8668,"name":"ImportDirective","src":"796:23:9"},{"attributes":{"SourceUnit":7627,"absolutePath":"internals/claimable.sol","file":"./claimable.sol","scope":9027,"symbolAliases":[null],"unitAlias":""},"id":8669,"name":"ImportDirective","src":"820:25:9"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"interface","documentation":"@title The IController interface provides access to the isController check.","fullyImplemented":false,"linearizedBaseContracts":[8677],"name":"IController","scope":9027},"children":[{"attributes":{"body":null,"constant":true,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"isController","payable":false,"scope":8677,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"","scope":8676,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":8670,"name":"ElementaryTypeName","src":"977:7:9"}],"id":8671,"name":"VariableDeclaration","src":"977:7:9"}],"id":8672,"name":"ParameterList","src":"976:9:9"},{"children":[{"attributes":{"constant":false,"name":"","scope":8676,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":8673,"name":"ElementaryTypeName","src":"1009:4:9"}],"id":8674,"name":"VariableDeclaration","src":"1009:4:9"}],"id":8675,"name":"ParameterList","src":"1008:6:9"}],"id":8676,"name":"FunctionDefinition","src":"955:60:9"}],"id":8677,"name":"ContractDefinition","src":"927:90:9"},{"attributes":{"contractDependencies":[7626,8677,10348],"contractKind":"contract","documentation":"@title Controller stores a list of controller addresses that can be used for authentication in other contracts.\n @notice The Controller implements a hierarchy of concepts, Owner, Admin, and the Controllers.\n @dev Owner can change the Admins\n @dev Admins and can the Controllers\n @dev Controllers are used by the application.","fullyImplemented":true,"linearizedBaseContracts":[9026,7626,10348,8677],"name":"Controller","scope":9027},"children":[{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"IController","referencedDeclaration":8677,"type":"contract IController"},"id":8678,"name":"UserDefinedTypeName","src":"1384:11:9"}],"id":8679,"name":"InheritanceSpecifier","src":"1384:11:9"},{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"Ownable","referencedDeclaration":10348,"type":"contract Ownable"},"id":8680,"name":"UserDefinedTypeName","src":"1397:7:9"}],"id":8681,"name":"InheritanceSpecifier","src":"1397:7:9"},{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"Claimable","referencedDeclaration":7626,"type":"contract Claimable"},"id":8682,"name":"UserDefinedTypeName","src":"1406:9:9"}],"id":8683,"name":"InheritanceSpecifier","src":"1406:9:9"},{"attributes":{"anonymous":false,"documentation":null,"name":"AddedController"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_sender","scope":8689,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":8684,"name":"ElementaryTypeName","src":"1445:7:9"}],"id":8685,"name":"VariableDeclaration","src":"1445:15:9"},{"attributes":{"constant":false,"indexed":false,"name":"_controller","scope":8689,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":8686,"name":"ElementaryTypeName","src":"1462:7:9"}],"id":8687,"name":"VariableDeclaration","src":"1462:19:9"}],"id":8688,"name":"ParameterList","src":"1444:38:9"}],"id":8689,"name":"EventDefinition","src":"1423:60:9"},{"attributes":{"anonymous":false,"documentation":null,"name":"RemovedController"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_sender","scope":8695,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":8690,"name":"ElementaryTypeName","src":"1512:7:9"}],"id":8691,"name":"VariableDeclaration","src":"1512:15:9"},{"attributes":{"constant":false,"indexed":false,"name":"_controller","scope":8695,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":8692,"name":"ElementaryTypeName","src":"1529:7:9"}],"id":8693,"name":"VariableDeclaration","src":"1529:19:9"}],"id":8694,"name":"ParameterList","src":"1511:38:9"}],"id":8695,"name":"EventDefinition","src":"1488:62:9"},{"attributes":{"anonymous":false,"documentation":null,"name":"AddedAdmin"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_sender","scope":8701,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":8696,"name":"ElementaryTypeName","src":"1573:7:9"}],"id":8697,"name":"VariableDeclaration","src":"1573:15:9"},{"attributes":{"constant":false,"indexed":false,"name":"_admin","scope":8701,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":8698,"name":"ElementaryTypeName","src":"1590:7:9"}],"id":8699,"name":"VariableDeclaration","src":"1590:14:9"}],"id":8700,"name":"ParameterList","src":"1572:33:9"}],"id":8701,"name":"EventDefinition","src":"1556:50:9"},{"attributes":{"anonymous":false,"documentation":null,"name":"RemovedAdmin"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_sender","scope":8707,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":8702,"name":"ElementaryTypeName","src":"1630:7:9"}],"id":8703,"name":"VariableDeclaration","src":"1630:15:9"},{"attributes":{"constant":false,"indexed":false,"name":"_admin","scope":8707,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":8704,"name":"ElementaryTypeName","src":"1647:7:9"}],"id":8705,"name":"VariableDeclaration","src":"1647:14:9"}],"id":8706,"name":"ParameterList","src":"1629:33:9"}],"id":8707,"name":"EventDefinition","src":"1611:52:9"},{"attributes":{"constant":false,"name":"_isAdmin","scope":9026,"stateVariable":true,"storageLocation":"default","type":"mapping(address => bool)","value":null,"visibility":"private"},"children":[{"attributes":{"type":"mapping(address => bool)"},"children":[{"attributes":{"name":"address","type":"address"},"id":8708,"name":"ElementaryTypeName","src":"1678:7:9"},{"attributes":{"name":"bool","type":"bool"},"id":8709,"name":"ElementaryTypeName","src":"1689:4:9"}],"id":8710,"name":"Mapping","src":"1669:25:9"}],"id":8711,"name":"VariableDeclaration","src":"1669:42:9"},{"attributes":{"constant":false,"name":"_adminCount","scope":9026,"stateVariable":true,"storageLocation":"default","type":"uint256","value":null,"visibility":"private"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":8712,"name":"ElementaryTypeName","src":"1717:4:9"}],"id":8713,"name":"VariableDeclaration","src":"1717:24:9"},{"attributes":{"constant":false,"name":"_isController","scope":9026,"stateVariable":true,"storageLocation":"default","type":"mapping(address => bool)","value":null,"visibility":"private"},"children":[{"attributes":{"type":"mapping(address => bool)"},"children":[{"attributes":{"name":"address","type":"address"},"id":8714,"name":"ElementaryTypeName","src":"1757:7:9"},{"attributes":{"name":"bool","type":"bool"},"id":8715,"name":"ElementaryTypeName","src":"1768:4:9"}],"id":8716,"name":"Mapping","src":"1748:25:9"}],"id":8717,"name":"VariableDeclaration","src":"1748:47:9"},{"attributes":{"constant":false,"name":"_controllerCount","scope":9026,"stateVariable":true,"storageLocation":"default","type":"uint256","value":null,"visibility":"private"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":8718,"name":"ElementaryTypeName","src":"1801:4:9"}],"id":8719,"name":"VariableDeclaration","src":"1801:29:9"},{"attributes":{"constant":false,"documentation":"@notice Constructor initializes the owner with the provided address.\n @param _ownerAddress_ address of the owner.\n @param _transferable_ indicates whether the contract ownership can be transferred.","implemented":true,"isConstructor":true,"name":"","payable":false,"scope":9026,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"_ownerAddress_","scope":8731,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":8720,"name":"ElementaryTypeName","src":"2069:7:9"}],"id":8721,"name":"VariableDeclaration","src":"2069:22:9"},{"attributes":{"constant":false,"name":"_transferable_","scope":8731,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":8722,"name":"ElementaryTypeName","src":"2093:4:9"}],"id":8723,"name":"VariableDeclaration","src":"2093:19:9"}],"id":8724,"name":"ParameterList","src":"2068:45:9"},{"attributes":{"parameters":[null]},"children":[],"id":8729,"name":"ParameterList","src":"2161:0:9"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10348,"type":"type(contract Ownable)","value":"Ownable"},"id":8725,"name":"Identifier","src":"2114:7:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8721,"type":"address","value":"_ownerAddress_"},"id":8726,"name":"Identifier","src":"2122:14:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8723,"type":"bool","value":"_transferable_"},"id":8727,"name":"Identifier","src":"2138:14:9"}],"id":8728,"name":"ModifierInvocation","src":"2114:39:9"},{"attributes":{"statements":[null]},"children":[],"id":8730,"name":"Block","src":"2161:3:9"}],"id":8731,"name":"FunctionDefinition","src":"2057:107:9"},{"attributes":{"documentation":"@notice Checks if message sender is an admin.","name":"onlyAdmin","visibility":"internal"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":8732,"name":"ParameterList","src":"2242:2:9"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_156cbb05733026f4aa0b363c6a3be5f21b7ab8f248a865cc639a4d928ddeabb8","typeString":"literal_string \"sender is not an admin\""}],"overloadedDeclarations":[12061,12062],"referencedDeclaration":12062,"type":"function (bool,string memory) pure","value":"require"},"id":8733,"name":"Identifier","src":"2255:7:9"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":8831,"type":"function (address) view returns (bool)","value":"isAdmin"},"id":8734,"name":"Identifier","src":"2263:7:9"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":12058,"type":"msg","value":"msg"},"id":8735,"name":"Identifier","src":"2271:3:9"}],"id":8736,"name":"MemberAccess","src":"2271:10:9"}],"id":8737,"name":"FunctionCall","src":"2263:19:9"},{"attributes":{"argumentTypes":null,"hexvalue":"73656e646572206973206e6f7420616e2061646d696e","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"sender is not an admin\"","value":"sender is not an admin"},"id":8738,"name":"Literal","src":"2284:24:9"}],"id":8739,"name":"FunctionCall","src":"2255:54:9"}],"id":8740,"name":"ExpressionStatement","src":"2255:54:9"},{"id":8741,"name":"PlaceholderStatement","src":"2319:1:9"}],"id":8742,"name":"Block","src":"2245:82:9"}],"id":8743,"name":"ModifierDefinition","src":"2224:103:9"},{"attributes":{"documentation":"@notice Checks if message sender is a controller.","name":"onlyController","visibility":"internal"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":8744,"name":"ParameterList","src":"2414:2:9"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_918bc5a096178f6e8c423f958a6008c4b24fd25b7a3ca0123b85463c61a2e566","typeString":"literal_string \"sender is not a controller\""}],"overloadedDeclarations":[12061,12062],"referencedDeclaration":12062,"type":"function (bool,string memory) pure","value":"require"},"id":8745,"name":"Identifier","src":"2427:7:9"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":8843,"type":"function (address) view returns (bool)","value":"isController"},"id":8746,"name":"Identifier","src":"2435:12:9"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":12058,"type":"msg","value":"msg"},"id":8747,"name":"Identifier","src":"2448:3:9"}],"id":8748,"name":"MemberAccess","src":"2448:10:9"}],"id":8749,"name":"FunctionCall","src":"2435:24:9"},{"attributes":{"argumentTypes":null,"hexvalue":"73656e646572206973206e6f74206120636f6e74726f6c6c6572","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"sender is not a controller\"","value":"sender is not a controller"},"id":8750,"name":"Literal","src":"2461:28:9"}],"id":8751,"name":"FunctionCall","src":"2427:63:9"}],"id":8752,"name":"ExpressionStatement","src":"2427:63:9"},{"id":8753,"name":"PlaceholderStatement","src":"2500:1:9"}],"id":8754,"name":"Block","src":"2417:91:9"}],"id":8755,"name":"ModifierDefinition","src":"2391:117:9"},{"attributes":{"constant":false,"documentation":"@notice Add a new admin to the list of admins.\n @param _account address to add to the list of admins.","implemented":true,"isConstructor":false,"name":"addAdmin","payable":false,"scope":9026,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":8767,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":8756,"name":"ElementaryTypeName","src":"2649:7:9"}],"id":8757,"name":"VariableDeclaration","src":"2649:16:9"}],"id":8758,"name":"ParameterList","src":"2648:18:9"},{"attributes":{"parameters":[null]},"children":[],"id":8761,"name":"ParameterList","src":"2686:0:9"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10250,"type":"modifier ()","value":"onlyOwner"},"id":8759,"name":"Identifier","src":"2676:9:9"}],"id":8760,"name":"ModifierInvocation","src":"2676:9:9"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":8897,"type":"function (address)","value":"_addAdmin"},"id":8762,"name":"Identifier","src":"2696:9:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8757,"type":"address","value":"_account"},"id":8763,"name":"Identifier","src":"2706:8:9"}],"id":8764,"name":"FunctionCall","src":"2696:19:9"}],"id":8765,"name":"ExpressionStatement","src":"2696:19:9"}],"id":8766,"name":"Block","src":"2686:36:9"}],"id":8767,"name":"FunctionDefinition","src":"2631:91:9"},{"attributes":{"constant":false,"documentation":"@notice Remove a admin from the list of admins.\n @param _account address to remove from the list of admins.","implemented":true,"isConstructor":false,"name":"removeAdmin","payable":false,"scope":9026,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":8779,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":8768,"name":"ElementaryTypeName","src":"2872:7:9"}],"id":8769,"name":"VariableDeclaration","src":"2872:16:9"}],"id":8770,"name":"ParameterList","src":"2871:18:9"},{"attributes":{"parameters":[null]},"children":[],"id":8773,"name":"ParameterList","src":"2909:0:9"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10250,"type":"modifier ()","value":"onlyOwner"},"id":8771,"name":"Identifier","src":"2899:9:9"}],"id":8772,"name":"ModifierInvocation","src":"2899:9:9"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":8925,"type":"function (address)","value":"_removeAdmin"},"id":8774,"name":"Identifier","src":"2919:12:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8769,"type":"address","value":"_account"},"id":8775,"name":"Identifier","src":"2932:8:9"}],"id":8776,"name":"FunctionCall","src":"2919:22:9"}],"id":8777,"name":"ExpressionStatement","src":"2919:22:9"}],"id":8778,"name":"Block","src":"2909:39:9"}],"id":8779,"name":"FunctionDefinition","src":"2851:97:9"},{"attributes":{"constant":true,"documentation":"@return the current number of admins.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"adminCount","payable":false,"scope":9026,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":8780,"name":"ParameterList","src":"3019:2:9"},{"children":[{"attributes":{"constant":false,"name":"","scope":8787,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":8781,"name":"ElementaryTypeName","src":"3045:4:9"}],"id":8782,"name":"VariableDeclaration","src":"3045:4:9"}],"id":8783,"name":"ParameterList","src":"3044:6:9"},{"children":[{"attributes":{"functionReturnParameters":8783},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8713,"type":"uint256","value":"_adminCount"},"id":8784,"name":"Identifier","src":"3068:11:9"}],"id":8785,"name":"Return","src":"3061:18:9"}],"id":8786,"name":"Block","src":"3051:35:9"}],"id":8787,"name":"FunctionDefinition","src":"3000:86:9"},{"attributes":{"constant":false,"documentation":"@notice Add a new controller to the list of controllers.\n @param _account address to add to the list of controllers.","implemented":true,"isConstructor":false,"name":"addController","payable":false,"scope":9026,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":8799,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":8788,"name":"ElementaryTypeName","src":"3247:7:9"}],"id":8789,"name":"VariableDeclaration","src":"3247:16:9"}],"id":8790,"name":"ParameterList","src":"3246:18:9"},{"attributes":{"parameters":[null]},"children":[],"id":8793,"name":"ParameterList","src":"3284:0:9"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8743,"type":"modifier ()","value":"onlyAdmin"},"id":8791,"name":"Identifier","src":"3274:9:9"}],"id":8792,"name":"ModifierInvocation","src":"3274:9:9"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":8979,"type":"function (address)","value":"_addController"},"id":8794,"name":"Identifier","src":"3294:14:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8789,"type":"address","value":"_account"},"id":8795,"name":"Identifier","src":"3309:8:9"}],"id":8796,"name":"FunctionCall","src":"3294:24:9"}],"id":8797,"name":"ExpressionStatement","src":"3294:24:9"}],"id":8798,"name":"Block","src":"3284:41:9"}],"id":8799,"name":"FunctionDefinition","src":"3224:101:9"},{"attributes":{"constant":false,"documentation":"@notice Remove a controller from the list of controllers.\n @param _account address to remove from the list of controllers.","implemented":true,"isConstructor":false,"name":"removeController","payable":false,"scope":9026,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":8811,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":8800,"name":"ElementaryTypeName","src":"3495:7:9"}],"id":8801,"name":"VariableDeclaration","src":"3495:16:9"}],"id":8802,"name":"ParameterList","src":"3494:18:9"},{"attributes":{"parameters":[null]},"children":[],"id":8805,"name":"ParameterList","src":"3532:0:9"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8743,"type":"modifier ()","value":"onlyAdmin"},"id":8803,"name":"Identifier","src":"3522:9:9"}],"id":8804,"name":"ModifierInvocation","src":"3522:9:9"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":9007,"type":"function (address)","value":"_removeController"},"id":8806,"name":"Identifier","src":"3542:17:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8801,"type":"address","value":"_account"},"id":8807,"name":"Identifier","src":"3560:8:9"}],"id":8808,"name":"FunctionCall","src":"3542:27:9"}],"id":8809,"name":"ExpressionStatement","src":"3542:27:9"}],"id":8810,"name":"Block","src":"3532:44:9"}],"id":8811,"name":"FunctionDefinition","src":"3469:107:9"},{"attributes":{"constant":true,"documentation":"@notice count the Controllers\n @return the current number of controllers.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"controllerCount","payable":false,"scope":9026,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":8812,"name":"ParameterList","src":"3695:2:9"},{"children":[{"attributes":{"constant":false,"name":"","scope":8819,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":8813,"name":"ElementaryTypeName","src":"3721:4:9"}],"id":8814,"name":"VariableDeclaration","src":"3721:4:9"}],"id":8815,"name":"ParameterList","src":"3720:6:9"},{"children":[{"attributes":{"functionReturnParameters":8815},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8719,"type":"uint256","value":"_controllerCount"},"id":8816,"name":"Identifier","src":"3744:16:9"}],"id":8817,"name":"Return","src":"3737:23:9"}],"id":8818,"name":"Block","src":"3727:40:9"}],"id":8819,"name":"FunctionDefinition","src":"3671:96:9"},{"attributes":{"constant":true,"documentation":"@notice is an address an Admin?\n @return true if the provided account is an admin.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"isAdmin","payable":false,"scope":9026,"stateMutability":"view","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":8831,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":8820,"name":"ElementaryTypeName","src":"3888:7:9"}],"id":8821,"name":"VariableDeclaration","src":"3888:16:9"}],"id":8822,"name":"ParameterList","src":"3887:18:9"},{"children":[{"attributes":{"constant":false,"name":"","scope":8831,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":8823,"name":"ElementaryTypeName","src":"3927:4:9"}],"id":8824,"name":"VariableDeclaration","src":"3927:4:9"}],"id":8825,"name":"ParameterList","src":"3926:6:9"},{"children":[{"attributes":{"functionReturnParameters":8825},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8711,"type":"mapping(address => bool)","value":"_isAdmin"},"id":8826,"name":"Identifier","src":"3950:8:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8821,"type":"address","value":"_account"},"id":8827,"name":"Identifier","src":"3959:8:9"}],"id":8828,"name":"IndexAccess","src":"3950:18:9"}],"id":8829,"name":"Return","src":"3943:25:9"}],"id":8830,"name":"Block","src":"3933:42:9"}],"id":8831,"name":"FunctionDefinition","src":"3871:104:9"},{"attributes":{"constant":true,"documentation":"@notice is an address a Controller?\n @return true if the provided account is a controller.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"isController","payable":false,"scope":9026,"stateMutability":"view","superFunction":8676,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":8843,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":8832,"name":"ElementaryTypeName","src":"4109:7:9"}],"id":8833,"name":"VariableDeclaration","src":"4109:16:9"}],"id":8834,"name":"ParameterList","src":"4108:18:9"},{"children":[{"attributes":{"constant":false,"name":"","scope":8843,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":8835,"name":"ElementaryTypeName","src":"4148:4:9"}],"id":8836,"name":"VariableDeclaration","src":"4148:4:9"}],"id":8837,"name":"ParameterList","src":"4147:6:9"},{"children":[{"attributes":{"functionReturnParameters":8837},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8717,"type":"mapping(address => bool)","value":"_isController"},"id":8838,"name":"Identifier","src":"4171:13:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8833,"type":"address","value":"_account"},"id":8839,"name":"Identifier","src":"4185:8:9"}],"id":8840,"name":"IndexAccess","src":"4171:23:9"}],"id":8841,"name":"Return","src":"4164:30:9"}],"id":8842,"name":"Block","src":"4154:47:9"}],"id":8843,"name":"FunctionDefinition","src":"4087:114:9"},{"attributes":{"constant":false,"documentation":"@notice Internal-only function that adds a new admin.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_addAdmin","payable":false,"scope":9026,"stateMutability":"nonpayable","superFunction":null,"visibility":"private"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":8897,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":8844,"name":"ElementaryTypeName","src":"4288:7:9"}],"id":8845,"name":"VariableDeclaration","src":"4288:16:9"}],"id":8846,"name":"ParameterList","src":"4287:18:9"},{"attributes":{"parameters":[null]},"children":[],"id":8847,"name":"ParameterList","src":"4314:0:9"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_491ef411eef1615ecf908753bd22ae846aac933d79b0327335a18e3988db6215","typeString":"literal_string \"provided account is already an admin\""}],"overloadedDeclarations":[12061,12062],"referencedDeclaration":12062,"type":"function (bool,string memory) pure","value":"require"},"id":8848,"name":"Identifier","src":"4324:7:9"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8711,"type":"mapping(address => bool)","value":"_isAdmin"},"id":8849,"name":"Identifier","src":"4333:8:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8845,"type":"address","value":"_account"},"id":8850,"name":"Identifier","src":"4342:8:9"}],"id":8851,"name":"IndexAccess","src":"4333:18:9"}],"id":8852,"name":"UnaryOperation","src":"4332:19:9"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e7420697320616c726561647920616e2061646d696e","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is already an admin\"","value":"provided account is already an admin"},"id":8853,"name":"Literal","src":"4353:38:9"}],"id":8854,"name":"FunctionCall","src":"4324:68:9"}],"id":8855,"name":"ExpressionStatement","src":"4324:68:9"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ea5e43d1c86e3916e6efb6c5ad4a915069293195e26cfb0847e731b480c61b69","typeString":"literal_string \"provided account is already a controller\""}],"overloadedDeclarations":[12061,12062],"referencedDeclaration":12062,"type":"function (bool,string memory) pure","value":"require"},"id":8856,"name":"Identifier","src":"4402:7:9"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8717,"type":"mapping(address => bool)","value":"_isController"},"id":8857,"name":"Identifier","src":"4411:13:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8845,"type":"address","value":"_account"},"id":8858,"name":"Identifier","src":"4425:8:9"}],"id":8859,"name":"IndexAccess","src":"4411:23:9"}],"id":8860,"name":"UnaryOperation","src":"4410:24:9"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e7420697320616c7265616479206120636f6e74726f6c6c6572","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is already a controller\"","value":"provided account is already a controller"},"id":8861,"name":"Literal","src":"4436:42:9"}],"id":8862,"name":"FunctionCall","src":"4402:77:9"}],"id":8863,"name":"ExpressionStatement","src":"4402:77:9"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_28b510b314348cd3eee423698115cd76923e2c39fff2abeefc9606aa1cd4c741","typeString":"literal_string \"provided account is already the owner\""}],"overloadedDeclarations":[12061,12062],"referencedDeclaration":12062,"type":"function (bool,string memory) pure","value":"require"},"id":8864,"name":"Identifier","src":"4489:7:9"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":10347,"type":"function (address) view returns (bool)","value":"_isOwner"},"id":8865,"name":"Identifier","src":"4498:8:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8845,"type":"address","value":"_account"},"id":8866,"name":"Identifier","src":"4507:8:9"}],"id":8867,"name":"FunctionCall","src":"4498:18:9"}],"id":8868,"name":"UnaryOperation","src":"4497:19:9"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e7420697320616c726561647920746865206f776e6572","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is already the owner\"","value":"provided account is already the owner"},"id":8869,"name":"Literal","src":"4518:39:9"}],"id":8870,"name":"FunctionCall","src":"4489:69:9"}],"id":8871,"name":"ExpressionStatement","src":"4489:69:9"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_da72d12cc1dab77bb87826430977e9a5d381ba54a70ad14cb2761e202f01ff3b","typeString":"literal_string \"provided account is the zero address\""}],"overloadedDeclarations":[12061,12062],"referencedDeclaration":12062,"type":"function (bool,string memory) pure","value":"require"},"id":8872,"name":"Identifier","src":"4568:7:9"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8845,"type":"address","value":"_account"},"id":8873,"name":"Identifier","src":"4576:8:9"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":8874,"name":"ElementaryTypeNameExpression","src":"4588:7:9"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":8875,"name":"Literal","src":"4596:1:9"}],"id":8876,"name":"FunctionCall","src":"4588:10:9"}],"id":8877,"name":"BinaryOperation","src":"4576:22:9"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e7420697320746865207a65726f2061646472657373","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is the zero address\"","value":"provided account is the zero address"},"id":8878,"name":"Literal","src":"4600:38:9"}],"id":8879,"name":"FunctionCall","src":"4568:71:9"}],"id":8880,"name":"ExpressionStatement","src":"4568:71:9"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8711,"type":"mapping(address => bool)","value":"_isAdmin"},"id":8881,"name":"Identifier","src":"4649:8:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8845,"type":"address","value":"_account"},"id":8882,"name":"Identifier","src":"4658:8:9"}],"id":8883,"name":"IndexAccess","src":"4649:18:9"},{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":8884,"name":"Literal","src":"4670:4:9"}],"id":8885,"name":"Assignment","src":"4649:25:9"}],"id":8886,"name":"ExpressionStatement","src":"4649:25:9"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8713,"type":"uint256","value":"_adminCount"},"id":8887,"name":"Identifier","src":"4684:11:9"}],"id":8888,"name":"UnaryOperation","src":"4684:13:9"}],"id":8889,"name":"ExpressionStatement","src":"4684:13:9"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":8701,"type":"function (address,address)","value":"AddedAdmin"},"id":8890,"name":"Identifier","src":"4712:10:9"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":12058,"type":"msg","value":"msg"},"id":8891,"name":"Identifier","src":"4723:3:9"}],"id":8892,"name":"MemberAccess","src":"4723:10:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8845,"type":"address","value":"_account"},"id":8893,"name":"Identifier","src":"4735:8:9"}],"id":8894,"name":"FunctionCall","src":"4712:32:9"}],"id":8895,"name":"EmitStatement","src":"4707:37:9"}],"id":8896,"name":"Block","src":"4314:437:9"}],"id":8897,"name":"FunctionDefinition","src":"4269:482:9"},{"attributes":{"constant":false,"documentation":"@notice Internal-only function that removes an existing admin.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_removeAdmin","payable":false,"scope":9026,"stateMutability":"nonpayable","superFunction":null,"visibility":"private"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":8925,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":8898,"name":"ElementaryTypeName","src":"4850:7:9"}],"id":8899,"name":"VariableDeclaration","src":"4850:16:9"}],"id":8900,"name":"ParameterList","src":"4849:18:9"},{"attributes":{"parameters":[null]},"children":[],"id":8901,"name":"ParameterList","src":"4876:0:9"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1c739c60677de73f71e20970ace8544e82a98bdcd16e21df5754e7a2756cbedc","typeString":"literal_string \"provided account is not an admin\""}],"overloadedDeclarations":[12061,12062],"referencedDeclaration":12062,"type":"function (bool,string memory) pure","value":"require"},"id":8902,"name":"Identifier","src":"4886:7:9"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8711,"type":"mapping(address => bool)","value":"_isAdmin"},"id":8903,"name":"Identifier","src":"4894:8:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8899,"type":"address","value":"_account"},"id":8904,"name":"Identifier","src":"4903:8:9"}],"id":8905,"name":"IndexAccess","src":"4894:18:9"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e74206973206e6f7420616e2061646d696e","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is not an admin\"","value":"provided account is not an admin"},"id":8906,"name":"Literal","src":"4914:34:9"}],"id":8907,"name":"FunctionCall","src":"4886:63:9"}],"id":8908,"name":"ExpressionStatement","src":"4886:63:9"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8711,"type":"mapping(address => bool)","value":"_isAdmin"},"id":8909,"name":"Identifier","src":"4959:8:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8899,"type":"address","value":"_account"},"id":8910,"name":"Identifier","src":"4968:8:9"}],"id":8911,"name":"IndexAccess","src":"4959:18:9"},{"attributes":{"argumentTypes":null,"hexvalue":"66616c7365","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"false"},"id":8912,"name":"Literal","src":"4980:5:9"}],"id":8913,"name":"Assignment","src":"4959:26:9"}],"id":8914,"name":"ExpressionStatement","src":"4959:26:9"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"--","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8713,"type":"uint256","value":"_adminCount"},"id":8915,"name":"Identifier","src":"4995:11:9"}],"id":8916,"name":"UnaryOperation","src":"4995:13:9"}],"id":8917,"name":"ExpressionStatement","src":"4995:13:9"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":8707,"type":"function (address,address)","value":"RemovedAdmin"},"id":8918,"name":"Identifier","src":"5023:12:9"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":12058,"type":"msg","value":"msg"},"id":8919,"name":"Identifier","src":"5036:3:9"}],"id":8920,"name":"MemberAccess","src":"5036:10:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8899,"type":"address","value":"_account"},"id":8921,"name":"Identifier","src":"5048:8:9"}],"id":8922,"name":"FunctionCall","src":"5023:34:9"}],"id":8923,"name":"EmitStatement","src":"5018:39:9"}],"id":8924,"name":"Block","src":"4876:188:9"}],"id":8925,"name":"FunctionDefinition","src":"4828:236:9"},{"attributes":{"constant":false,"documentation":"@notice Internal-only function that adds a new controller.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_addController","payable":false,"scope":9026,"stateMutability":"nonpayable","superFunction":null,"visibility":"private"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":8979,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":8926,"name":"ElementaryTypeName","src":"5161:7:9"}],"id":8927,"name":"VariableDeclaration","src":"5161:16:9"}],"id":8928,"name":"ParameterList","src":"5160:18:9"},{"attributes":{"parameters":[null]},"children":[],"id":8929,"name":"ParameterList","src":"5187:0:9"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_491ef411eef1615ecf908753bd22ae846aac933d79b0327335a18e3988db6215","typeString":"literal_string \"provided account is already an admin\""}],"overloadedDeclarations":[12061,12062],"referencedDeclaration":12062,"type":"function (bool,string memory) pure","value":"require"},"id":8930,"name":"Identifier","src":"5197:7:9"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8711,"type":"mapping(address => bool)","value":"_isAdmin"},"id":8931,"name":"Identifier","src":"5206:8:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8927,"type":"address","value":"_account"},"id":8932,"name":"Identifier","src":"5215:8:9"}],"id":8933,"name":"IndexAccess","src":"5206:18:9"}],"id":8934,"name":"UnaryOperation","src":"5205:19:9"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e7420697320616c726561647920616e2061646d696e","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is already an admin\"","value":"provided account is already an admin"},"id":8935,"name":"Literal","src":"5226:38:9"}],"id":8936,"name":"FunctionCall","src":"5197:68:9"}],"id":8937,"name":"ExpressionStatement","src":"5197:68:9"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ea5e43d1c86e3916e6efb6c5ad4a915069293195e26cfb0847e731b480c61b69","typeString":"literal_string \"provided account is already a controller\""}],"overloadedDeclarations":[12061,12062],"referencedDeclaration":12062,"type":"function (bool,string memory) pure","value":"require"},"id":8938,"name":"Identifier","src":"5275:7:9"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8717,"type":"mapping(address => bool)","value":"_isController"},"id":8939,"name":"Identifier","src":"5284:13:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8927,"type":"address","value":"_account"},"id":8940,"name":"Identifier","src":"5298:8:9"}],"id":8941,"name":"IndexAccess","src":"5284:23:9"}],"id":8942,"name":"UnaryOperation","src":"5283:24:9"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e7420697320616c7265616479206120636f6e74726f6c6c6572","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is already a controller\"","value":"provided account is already a controller"},"id":8943,"name":"Literal","src":"5309:42:9"}],"id":8944,"name":"FunctionCall","src":"5275:77:9"}],"id":8945,"name":"ExpressionStatement","src":"5275:77:9"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_28b510b314348cd3eee423698115cd76923e2c39fff2abeefc9606aa1cd4c741","typeString":"literal_string \"provided account is already the owner\""}],"overloadedDeclarations":[12061,12062],"referencedDeclaration":12062,"type":"function (bool,string memory) pure","value":"require"},"id":8946,"name":"Identifier","src":"5362:7:9"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":10347,"type":"function (address) view returns (bool)","value":"_isOwner"},"id":8947,"name":"Identifier","src":"5371:8:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8927,"type":"address","value":"_account"},"id":8948,"name":"Identifier","src":"5380:8:9"}],"id":8949,"name":"FunctionCall","src":"5371:18:9"}],"id":8950,"name":"UnaryOperation","src":"5370:19:9"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e7420697320616c726561647920746865206f776e6572","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is already the owner\"","value":"provided account is already the owner"},"id":8951,"name":"Literal","src":"5391:39:9"}],"id":8952,"name":"FunctionCall","src":"5362:69:9"}],"id":8953,"name":"ExpressionStatement","src":"5362:69:9"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_da72d12cc1dab77bb87826430977e9a5d381ba54a70ad14cb2761e202f01ff3b","typeString":"literal_string \"provided account is the zero address\""}],"overloadedDeclarations":[12061,12062],"referencedDeclaration":12062,"type":"function (bool,string memory) pure","value":"require"},"id":8954,"name":"Identifier","src":"5441:7:9"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8927,"type":"address","value":"_account"},"id":8955,"name":"Identifier","src":"5449:8:9"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":8956,"name":"ElementaryTypeNameExpression","src":"5461:7:9"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":8957,"name":"Literal","src":"5469:1:9"}],"id":8958,"name":"FunctionCall","src":"5461:10:9"}],"id":8959,"name":"BinaryOperation","src":"5449:22:9"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e7420697320746865207a65726f2061646472657373","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is the zero address\"","value":"provided account is the zero address"},"id":8960,"name":"Literal","src":"5473:38:9"}],"id":8961,"name":"FunctionCall","src":"5441:71:9"}],"id":8962,"name":"ExpressionStatement","src":"5441:71:9"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8717,"type":"mapping(address => bool)","value":"_isController"},"id":8963,"name":"Identifier","src":"5522:13:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8927,"type":"address","value":"_account"},"id":8964,"name":"Identifier","src":"5536:8:9"}],"id":8965,"name":"IndexAccess","src":"5522:23:9"},{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":8966,"name":"Literal","src":"5548:4:9"}],"id":8967,"name":"Assignment","src":"5522:30:9"}],"id":8968,"name":"ExpressionStatement","src":"5522:30:9"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8719,"type":"uint256","value":"_controllerCount"},"id":8969,"name":"Identifier","src":"5562:16:9"}],"id":8970,"name":"UnaryOperation","src":"5562:18:9"}],"id":8971,"name":"ExpressionStatement","src":"5562:18:9"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":8689,"type":"function (address,address)","value":"AddedController"},"id":8972,"name":"Identifier","src":"5595:15:9"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":12058,"type":"msg","value":"msg"},"id":8973,"name":"Identifier","src":"5611:3:9"}],"id":8974,"name":"MemberAccess","src":"5611:10:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8927,"type":"address","value":"_account"},"id":8975,"name":"Identifier","src":"5623:8:9"}],"id":8976,"name":"FunctionCall","src":"5595:37:9"}],"id":8977,"name":"EmitStatement","src":"5590:42:9"}],"id":8978,"name":"Block","src":"5187:452:9"}],"id":8979,"name":"FunctionDefinition","src":"5137:502:9"},{"attributes":{"constant":false,"documentation":"@notice Internal-only function that removes an existing controller.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_removeController","payable":false,"scope":9026,"stateMutability":"nonpayable","superFunction":null,"visibility":"private"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":9007,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":8980,"name":"ElementaryTypeName","src":"5748:7:9"}],"id":8981,"name":"VariableDeclaration","src":"5748:16:9"}],"id":8982,"name":"ParameterList","src":"5747:18:9"},{"attributes":{"parameters":[null]},"children":[],"id":8983,"name":"ParameterList","src":"5774:0:9"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_61b6700985eb6a295850095b1dc6d25862c09fd9ea7ce39c0e5f303dfe8ed582","typeString":"literal_string \"provided account is not a controller\""}],"overloadedDeclarations":[12061,12062],"referencedDeclaration":12062,"type":"function (bool,string memory) pure","value":"require"},"id":8984,"name":"Identifier","src":"5784:7:9"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8717,"type":"mapping(address => bool)","value":"_isController"},"id":8985,"name":"Identifier","src":"5792:13:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8981,"type":"address","value":"_account"},"id":8986,"name":"Identifier","src":"5806:8:9"}],"id":8987,"name":"IndexAccess","src":"5792:23:9"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e74206973206e6f74206120636f6e74726f6c6c6572","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is not a controller\"","value":"provided account is not a controller"},"id":8988,"name":"Literal","src":"5817:38:9"}],"id":8989,"name":"FunctionCall","src":"5784:72:9"}],"id":8990,"name":"ExpressionStatement","src":"5784:72:9"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8717,"type":"mapping(address => bool)","value":"_isController"},"id":8991,"name":"Identifier","src":"5866:13:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8981,"type":"address","value":"_account"},"id":8992,"name":"Identifier","src":"5880:8:9"}],"id":8993,"name":"IndexAccess","src":"5866:23:9"},{"attributes":{"argumentTypes":null,"hexvalue":"66616c7365","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"false"},"id":8994,"name":"Literal","src":"5892:5:9"}],"id":8995,"name":"Assignment","src":"5866:31:9"}],"id":8996,"name":"ExpressionStatement","src":"5866:31:9"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"--","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8719,"type":"uint256","value":"_controllerCount"},"id":8997,"name":"Identifier","src":"5907:16:9"}],"id":8998,"name":"UnaryOperation","src":"5907:18:9"}],"id":8999,"name":"ExpressionStatement","src":"5907:18:9"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":8695,"type":"function (address,address)","value":"RemovedController"},"id":9000,"name":"Identifier","src":"5940:17:9"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":12058,"type":"msg","value":"msg"},"id":9001,"name":"Identifier","src":"5958:3:9"}],"id":9002,"name":"MemberAccess","src":"5958:10:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8981,"type":"address","value":"_account"},"id":9003,"name":"Identifier","src":"5970:8:9"}],"id":9004,"name":"FunctionCall","src":"5940:39:9"}],"id":9005,"name":"EmitStatement","src":"5935:44:9"}],"id":9006,"name":"Block","src":"5774:212:9"}],"id":9007,"name":"FunctionDefinition","src":"5721:265:9"},{"attributes":{"constant":false,"documentation":"/ @notice Withdraw tokens from the smart contract to the specified account.","implemented":true,"isConstructor":false,"name":"claim","payable":false,"scope":9026,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_to","scope":9025,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":9008,"name":"ElementaryTypeName","src":"6090:7:9"}],"id":9009,"name":"VariableDeclaration","src":"6090:11:9"},{"attributes":{"constant":false,"name":"_asset","scope":9025,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":9010,"name":"ElementaryTypeName","src":"6103:7:9"}],"id":9011,"name":"VariableDeclaration","src":"6103:14:9"},{"attributes":{"constant":false,"name":"_amount","scope":9025,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":9012,"name":"ElementaryTypeName","src":"6119:4:9"}],"id":9013,"name":"VariableDeclaration","src":"6119:12:9"}],"id":9014,"name":"ParameterList","src":"6089:43:9"},{"attributes":{"parameters":[null]},"children":[],"id":9017,"name":"ParameterList","src":"6152:0:9"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10250,"type":"modifier ()","value":"onlyOwner"},"id":9015,"name":"Identifier","src":"6142:9:9"}],"id":9016,"name":"ModifierInvocation","src":"6142:9:9"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":7625,"type":"function (address,address,uint256)","value":"_claim"},"id":9018,"name":"Identifier","src":"6162:6:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9009,"type":"address","value":"_to"},"id":9019,"name":"Identifier","src":"6169:3:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9011,"type":"address","value":"_asset"},"id":9020,"name":"Identifier","src":"6174:6:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9013,"type":"uint256","value":"_amount"},"id":9021,"name":"Identifier","src":"6182:7:9"}],"id":9022,"name":"FunctionCall","src":"6162:28:9"}],"id":9023,"name":"ExpressionStatement","src":"6162:28:9"}],"id":9024,"name":"Block","src":"6152:45:9"}],"id":9025,"name":"FunctionDefinition","src":"6075:122:9"}],"id":9026,"name":"ContractDefinition","src":"1361:4838:9"}],"id":9027,"name":"SourceUnit","src":"770:5430:9"}},"internals/date.sol":{"AST":{"attributes":{"absolutePath":"internals/date.sol","exportedSymbols":{"Date":[7851]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".25"]},"id":7684,"name":"PragmaDirective","src":"764:24:10"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"contract","documentation":"@title Date provides redimentary date parsing functionality.\n @notice This method parses months found in an ISO date to a number","fullyImplemented":true,"linearizedBaseContracts":[7851],"name":"Date","scope":7852},"children":[{"attributes":{"constant":true,"name":"_JANUARY","scope":7851,"stateVariable":true,"storageLocation":"default","type":"bytes32","visibility":"private"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":7685,"name":"ElementaryTypeName","src":"948:7:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4a18c9083b936e0757952a5d9d34b5575d427661506fbe9908c2a1da3f3e80d9","typeString":"literal_string \"Jan\""}],"overloadedDeclarations":[null],"referencedDeclaration":12052,"type":"function () pure returns (bytes32)","value":"keccak256"},"id":7686,"name":"Identifier","src":"984:9:10"},{"attributes":{"argumentTypes":null,"hexvalue":"4a616e","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"Jan\"","value":"Jan"},"id":7687,"name":"Literal","src":"994:5:10"}],"id":7688,"name":"FunctionCall","src":"984:16:10"}],"id":7689,"name":"VariableDeclaration","src":"948:52:10"},{"attributes":{"constant":true,"name":"_FEBRUARY","scope":7851,"stateVariable":true,"storageLocation":"default","type":"bytes32","visibility":"private"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":7690,"name":"ElementaryTypeName","src":"1006:7:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_78ec83563b948f0ac242d7eaefd592adf65964e11cc27f11ae41faa99a1e990a","typeString":"literal_string \"Feb\""}],"overloadedDeclarations":[null],"referencedDeclaration":12052,"type":"function () pure returns (bytes32)","value":"keccak256"},"id":7691,"name":"Identifier","src":"1043:9:10"},{"attributes":{"argumentTypes":null,"hexvalue":"466562","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"Feb\"","value":"Feb"},"id":7692,"name":"Literal","src":"1053:5:10"}],"id":7693,"name":"FunctionCall","src":"1043:16:10"}],"id":7694,"name":"VariableDeclaration","src":"1006:53:10"},{"attributes":{"constant":true,"name":"_MARCH","scope":7851,"stateVariable":true,"storageLocation":"default","type":"bytes32","visibility":"private"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":7695,"name":"ElementaryTypeName","src":"1065:7:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2bab7d3f253ae0e3722abcc2571faced288946968116996ffc3de31fb7348ec3","typeString":"literal_string \"Mar\""}],"overloadedDeclarations":[null],"referencedDeclaration":12052,"type":"function () pure returns (bytes32)","value":"keccak256"},"id":7696,"name":"Identifier","src":"1099:9:10"},{"attributes":{"argumentTypes":null,"hexvalue":"4d6172","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"Mar\"","value":"Mar"},"id":7697,"name":"Literal","src":"1109:5:10"}],"id":7698,"name":"FunctionCall","src":"1099:16:10"}],"id":7699,"name":"VariableDeclaration","src":"1065:50:10"},{"attributes":{"constant":true,"name":"_APRIL","scope":7851,"stateVariable":true,"storageLocation":"default","type":"bytes32","visibility":"private"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":7700,"name":"ElementaryTypeName","src":"1121:7:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c6f33aba2381b69f05afc78835e501547a9daffa08d674623068c378423ac188","typeString":"literal_string \"Apr\""}],"overloadedDeclarations":[null],"referencedDeclaration":12052,"type":"function () pure returns (bytes32)","value":"keccak256"},"id":7701,"name":"Identifier","src":"1155:9:10"},{"attributes":{"argumentTypes":null,"hexvalue":"417072","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"Apr\"","value":"Apr"},"id":7702,"name":"Literal","src":"1165:5:10"}],"id":7703,"name":"FunctionCall","src":"1155:16:10"}],"id":7704,"name":"VariableDeclaration","src":"1121:50:10"},{"attributes":{"constant":true,"name":"_MAY","scope":7851,"stateVariable":true,"storageLocation":"default","type":"bytes32","visibility":"private"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":7705,"name":"ElementaryTypeName","src":"1177:7:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_db5ee1006003349b29eda5be5fe34f728659f836a948d4ec595114aebbb159d3","typeString":"literal_string \"May\""}],"overloadedDeclarations":[null],"referencedDeclaration":12052,"type":"function () pure returns (bytes32)","value":"keccak256"},"id":7706,"name":"Identifier","src":"1209:9:10"},{"attributes":{"argumentTypes":null,"hexvalue":"4d6179","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"May\"","value":"May"},"id":7707,"name":"Literal","src":"1219:5:10"}],"id":7708,"name":"FunctionCall","src":"1209:16:10"}],"id":7709,"name":"VariableDeclaration","src":"1177:48:10"},{"attributes":{"constant":true,"name":"_JUNE","scope":7851,"stateVariable":true,"storageLocation":"default","type":"bytes32","visibility":"private"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":7710,"name":"ElementaryTypeName","src":"1231:7:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_44a0046ab54c1458fc3c39dfcadc52509ad809730ec301470d2d747dbe77242d","typeString":"literal_string \"Jun\""}],"overloadedDeclarations":[null],"referencedDeclaration":12052,"type":"function () pure returns (bytes32)","value":"keccak256"},"id":7711,"name":"Identifier","src":"1264:9:10"},{"attributes":{"argumentTypes":null,"hexvalue":"4a756e","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"Jun\"","value":"Jun"},"id":7712,"name":"Literal","src":"1274:5:10"}],"id":7713,"name":"FunctionCall","src":"1264:16:10"}],"id":7714,"name":"VariableDeclaration","src":"1231:49:10"},{"attributes":{"constant":true,"name":"_JULY","scope":7851,"stateVariable":true,"storageLocation":"default","type":"bytes32","visibility":"private"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":7715,"name":"ElementaryTypeName","src":"1286:7:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_74d9e46f10329e61dc333ff1800274be516163110de31961b4e0c61de3e90c5c","typeString":"literal_string \"Jul\""}],"overloadedDeclarations":[null],"referencedDeclaration":12052,"type":"function () pure returns (bytes32)","value":"keccak256"},"id":7716,"name":"Identifier","src":"1319:9:10"},{"attributes":{"argumentTypes":null,"hexvalue":"4a756c","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"Jul\"","value":"Jul"},"id":7717,"name":"Literal","src":"1329:5:10"}],"id":7718,"name":"FunctionCall","src":"1319:16:10"}],"id":7719,"name":"VariableDeclaration","src":"1286:49:10"},{"attributes":{"constant":true,"name":"_AUGUST","scope":7851,"stateVariable":true,"storageLocation":"default","type":"bytes32","visibility":"private"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":7720,"name":"ElementaryTypeName","src":"1341:7:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ed40c08ab6f3d9c5d71155e25b1271d5b9eca8c27bf89e1d2293fcb77c5abf64","typeString":"literal_string \"Aug\""}],"overloadedDeclarations":[null],"referencedDeclaration":12052,"type":"function () pure returns (bytes32)","value":"keccak256"},"id":7721,"name":"Identifier","src":"1376:9:10"},{"attributes":{"argumentTypes":null,"hexvalue":"417567","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"Aug\"","value":"Aug"},"id":7722,"name":"Literal","src":"1386:5:10"}],"id":7723,"name":"FunctionCall","src":"1376:16:10"}],"id":7724,"name":"VariableDeclaration","src":"1341:51:10"},{"attributes":{"constant":true,"name":"_SEPTEMBER","scope":7851,"stateVariable":true,"storageLocation":"default","type":"bytes32","visibility":"private"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":7725,"name":"ElementaryTypeName","src":"1398:7:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7d801199c77197eb9933a633741db90c2c6f3d7d14aca35f5f80a41b4a8863ac","typeString":"literal_string \"Sep\""}],"overloadedDeclarations":[null],"referencedDeclaration":12052,"type":"function () pure returns (bytes32)","value":"keccak256"},"id":7726,"name":"Identifier","src":"1436:9:10"},{"attributes":{"argumentTypes":null,"hexvalue":"536570","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"Sep\"","value":"Sep"},"id":7727,"name":"Literal","src":"1446:5:10"}],"id":7728,"name":"FunctionCall","src":"1436:16:10"}],"id":7729,"name":"VariableDeclaration","src":"1398:54:10"},{"attributes":{"constant":true,"name":"_OCTOBER","scope":7851,"stateVariable":true,"storageLocation":"default","type":"bytes32","visibility":"private"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":7730,"name":"ElementaryTypeName","src":"1458:7:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b7841ed82fc96483f061ddc0b19846855df22558c4aea3b3b058ce0d9f1f5164","typeString":"literal_string \"Oct\""}],"overloadedDeclarations":[null],"referencedDeclaration":12052,"type":"function () pure returns (bytes32)","value":"keccak256"},"id":7731,"name":"Identifier","src":"1494:9:10"},{"attributes":{"argumentTypes":null,"hexvalue":"4f6374","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"Oct\"","value":"Oct"},"id":7732,"name":"Literal","src":"1504:5:10"}],"id":7733,"name":"FunctionCall","src":"1494:16:10"}],"id":7734,"name":"VariableDeclaration","src":"1458:52:10"},{"attributes":{"constant":true,"name":"_NOVEMBER","scope":7851,"stateVariable":true,"storageLocation":"default","type":"bytes32","visibility":"private"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":7735,"name":"ElementaryTypeName","src":"1516:7:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_487851233e540dddea8f904d6802590aead5463b1c44965d68348bb7def25cf4","typeString":"literal_string \"Nov\""}],"overloadedDeclarations":[null],"referencedDeclaration":12052,"type":"function () pure returns (bytes32)","value":"keccak256"},"id":7736,"name":"Identifier","src":"1553:9:10"},{"attributes":{"argumentTypes":null,"hexvalue":"4e6f76","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"Nov\"","value":"Nov"},"id":7737,"name":"Literal","src":"1563:5:10"}],"id":7738,"name":"FunctionCall","src":"1553:16:10"}],"id":7739,"name":"VariableDeclaration","src":"1516:53:10"},{"attributes":{"constant":true,"name":"_DECEMBER","scope":7851,"stateVariable":true,"storageLocation":"default","type":"bytes32","visibility":"private"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":7740,"name":"ElementaryTypeName","src":"1575:7:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3bd971d8758c58fe0c4d635451404450c5edda87d624a89819e0be5a122933dc","typeString":"literal_string \"Dec\""}],"overloadedDeclarations":[null],"referencedDeclaration":12052,"type":"function () pure returns (bytes32)","value":"keccak256"},"id":7741,"name":"Identifier","src":"1612:9:10"},{"attributes":{"argumentTypes":null,"hexvalue":"446563","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"Dec\"","value":"Dec"},"id":7742,"name":"Literal","src":"1622:5:10"}],"id":7743,"name":"FunctionCall","src":"1612:16:10"}],"id":7744,"name":"VariableDeclaration","src":"1575:53:10"},{"attributes":{"constant":true,"documentation":"@return the number of the month based on its name.\n @param _month the first three letters of a month's name e.g. \"Jan\".","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_monthToNumber","payable":false,"scope":7851,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_month","scope":7850,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":7745,"name":"ElementaryTypeName","src":"1794:6:10"}],"id":7746,"name":"VariableDeclaration","src":"1794:13:10"}],"id":7747,"name":"ParameterList","src":"1793:15:10"},{"children":[{"attributes":{"constant":false,"name":"","scope":7850,"stateVariable":false,"storageLocation":"default","type":"uint8","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint8","type":"uint8"},"id":7748,"name":"ElementaryTypeName","src":"1832:5:10"}],"id":7749,"name":"VariableDeclaration","src":"1832:5:10"}],"id":7750,"name":"ParameterList","src":"1831:7:10"},{"children":[{"attributes":{"assignments":[7752]},"children":[{"attributes":{"constant":false,"name":"month","scope":7850,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":7751,"name":"ElementaryTypeName","src":"1849:7:10"}],"id":7752,"name":"VariableDeclaration","src":"1849:13:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"overloadedDeclarations":[null],"referencedDeclaration":12052,"type":"function () pure returns (bytes32)","value":"keccak256"},"id":7753,"name":"Identifier","src":"1865:9:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"member_name":"encodePacked","referencedDeclaration":null,"type":"function () pure returns (bytes memory)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":12045,"type":"abi","value":"abi"},"id":7754,"name":"Identifier","src":"1875:3:10"}],"id":7755,"name":"MemberAccess","src":"1875:16:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7746,"type":"string memory","value":"_month"},"id":7756,"name":"Identifier","src":"1892:6:10"}],"id":7757,"name":"FunctionCall","src":"1875:24:10"}],"id":7758,"name":"FunctionCall","src":"1865:35:10"}],"id":7759,"name":"VariableDeclarationStatement","src":"1849:51:10"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7752,"type":"bytes32","value":"month"},"id":7760,"name":"Identifier","src":"1914:5:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7689,"type":"bytes32","value":"_JANUARY"},"id":7761,"name":"Identifier","src":"1923:8:10"}],"id":7762,"name":"BinaryOperation","src":"1914:17:10"},{"children":[{"attributes":{"functionReturnParameters":7750},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":7763,"name":"Literal","src":"1954:1:10"}],"id":7764,"name":"Return","src":"1947:8:10"}],"id":7765,"name":"Block","src":"1933:33:10"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7752,"type":"bytes32","value":"month"},"id":7766,"name":"Identifier","src":"1976:5:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7694,"type":"bytes32","value":"_FEBRUARY"},"id":7767,"name":"Identifier","src":"1985:9:10"}],"id":7768,"name":"BinaryOperation","src":"1976:18:10"},{"children":[{"attributes":{"functionReturnParameters":7750},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":7769,"name":"Literal","src":"2017:1:10"}],"id":7770,"name":"Return","src":"2010:8:10"}],"id":7771,"name":"Block","src":"1996:33:10"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7752,"type":"bytes32","value":"month"},"id":7772,"name":"Identifier","src":"2039:5:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7699,"type":"bytes32","value":"_MARCH"},"id":7773,"name":"Identifier","src":"2048:6:10"}],"id":7774,"name":"BinaryOperation","src":"2039:15:10"},{"children":[{"attributes":{"functionReturnParameters":7750},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":7775,"name":"Literal","src":"2077:1:10"}],"id":7776,"name":"Return","src":"2070:8:10"}],"id":7777,"name":"Block","src":"2056:33:10"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7752,"type":"bytes32","value":"month"},"id":7778,"name":"Identifier","src":"2099:5:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7704,"type":"bytes32","value":"_APRIL"},"id":7779,"name":"Identifier","src":"2108:6:10"}],"id":7780,"name":"BinaryOperation","src":"2099:15:10"},{"children":[{"attributes":{"functionReturnParameters":7750},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":7781,"name":"Literal","src":"2137:1:10"}],"id":7782,"name":"Return","src":"2130:8:10"}],"id":7783,"name":"Block","src":"2116:33:10"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7752,"type":"bytes32","value":"month"},"id":7784,"name":"Identifier","src":"2159:5:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7709,"type":"bytes32","value":"_MAY"},"id":7785,"name":"Identifier","src":"2168:4:10"}],"id":7786,"name":"BinaryOperation","src":"2159:13:10"},{"children":[{"attributes":{"functionReturnParameters":7750},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"35","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 5","value":"5"},"id":7787,"name":"Literal","src":"2195:1:10"}],"id":7788,"name":"Return","src":"2188:8:10"}],"id":7789,"name":"Block","src":"2174:33:10"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7752,"type":"bytes32","value":"month"},"id":7790,"name":"Identifier","src":"2217:5:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7714,"type":"bytes32","value":"_JUNE"},"id":7791,"name":"Identifier","src":"2226:5:10"}],"id":7792,"name":"BinaryOperation","src":"2217:14:10"},{"children":[{"attributes":{"functionReturnParameters":7750},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"36","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 6","value":"6"},"id":7793,"name":"Literal","src":"2254:1:10"}],"id":7794,"name":"Return","src":"2247:8:10"}],"id":7795,"name":"Block","src":"2233:33:10"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7752,"type":"bytes32","value":"month"},"id":7796,"name":"Identifier","src":"2276:5:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7719,"type":"bytes32","value":"_JULY"},"id":7797,"name":"Identifier","src":"2285:5:10"}],"id":7798,"name":"BinaryOperation","src":"2276:14:10"},{"children":[{"attributes":{"functionReturnParameters":7750},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"37","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 7","value":"7"},"id":7799,"name":"Literal","src":"2313:1:10"}],"id":7800,"name":"Return","src":"2306:8:10"}],"id":7801,"name":"Block","src":"2292:33:10"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7752,"type":"bytes32","value":"month"},"id":7802,"name":"Identifier","src":"2335:5:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7724,"type":"bytes32","value":"_AUGUST"},"id":7803,"name":"Identifier","src":"2344:7:10"}],"id":7804,"name":"BinaryOperation","src":"2335:16:10"},{"children":[{"attributes":{"functionReturnParameters":7750},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"38","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 8","value":"8"},"id":7805,"name":"Literal","src":"2374:1:10"}],"id":7806,"name":"Return","src":"2367:8:10"}],"id":7807,"name":"Block","src":"2353:33:10"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7752,"type":"bytes32","value":"month"},"id":7808,"name":"Identifier","src":"2396:5:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7729,"type":"bytes32","value":"_SEPTEMBER"},"id":7809,"name":"Identifier","src":"2405:10:10"}],"id":7810,"name":"BinaryOperation","src":"2396:19:10"},{"children":[{"attributes":{"functionReturnParameters":7750},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"39","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 9","value":"9"},"id":7811,"name":"Literal","src":"2438:1:10"}],"id":7812,"name":"Return","src":"2431:8:10"}],"id":7813,"name":"Block","src":"2417:33:10"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7752,"type":"bytes32","value":"month"},"id":7814,"name":"Identifier","src":"2460:5:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7734,"type":"bytes32","value":"_OCTOBER"},"id":7815,"name":"Identifier","src":"2469:8:10"}],"id":7816,"name":"BinaryOperation","src":"2460:17:10"},{"children":[{"attributes":{"functionReturnParameters":7750},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3130","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 10","value":"10"},"id":7817,"name":"Literal","src":"2500:2:10"}],"id":7818,"name":"Return","src":"2493:9:10"}],"id":7819,"name":"Block","src":"2479:34:10"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7752,"type":"bytes32","value":"month"},"id":7820,"name":"Identifier","src":"2523:5:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7739,"type":"bytes32","value":"_NOVEMBER"},"id":7821,"name":"Identifier","src":"2532:9:10"}],"id":7822,"name":"BinaryOperation","src":"2523:18:10"},{"children":[{"attributes":{"functionReturnParameters":7750},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3131","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 11","value":"11"},"id":7823,"name":"Literal","src":"2564:2:10"}],"id":7824,"name":"Return","src":"2557:9:10"}],"id":7825,"name":"Block","src":"2543:34:10"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7752,"type":"bytes32","value":"month"},"id":7826,"name":"Identifier","src":"2587:5:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7744,"type":"bytes32","value":"_DECEMBER"},"id":7827,"name":"Identifier","src":"2596:9:10"}],"id":7828,"name":"BinaryOperation","src":"2587:18:10"},{"children":[{"attributes":{"functionReturnParameters":7750},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3132","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 12","value":"12"},"id":7829,"name":"Literal","src":"2628:2:10"}],"id":7830,"name":"Return","src":"2621:9:10"}],"id":7831,"name":"Block","src":"2607:34:10"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4deebb500c9a99d40fa1053d95d4c3a93eaf025d3e960c6684ad76631bfe8f66","typeString":"literal_string \"not a valid month\""}],"overloadedDeclarations":[12063,12064],"referencedDeclaration":12064,"type":"function (string memory) pure","value":"revert"},"id":7832,"name":"Identifier","src":"2661:6:10"},{"attributes":{"argumentTypes":null,"hexvalue":"6e6f7420612076616c6964206d6f6e7468","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"not a valid month\"","value":"not a valid month"},"id":7833,"name":"Literal","src":"2668:19:10"}],"id":7834,"name":"FunctionCall","src":"2661:27:10"}],"id":7835,"name":"ExpressionStatement","src":"2661:27:10"}],"id":7836,"name":"Block","src":"2647:52:10"}],"id":7837,"name":"IfStatement","src":"2583:116:10"}],"id":7838,"name":"IfStatement","src":"2519:180:10"}],"id":7839,"name":"IfStatement","src":"2456:243:10"}],"id":7840,"name":"IfStatement","src":"2392:307:10"}],"id":7841,"name":"IfStatement","src":"2331:368:10"}],"id":7842,"name":"IfStatement","src":"2272:427:10"}],"id":7843,"name":"IfStatement","src":"2213:486:10"}],"id":7844,"name":"IfStatement","src":"2155:544:10"}],"id":7845,"name":"IfStatement","src":"2095:604:10"}],"id":7846,"name":"IfStatement","src":"2035:664:10"}],"id":7847,"name":"IfStatement","src":"1972:727:10"}],"id":7848,"name":"IfStatement","src":"1910:789:10"}],"id":7849,"name":"Block","src":"1839:866:10"}],"id":7850,"name":"FunctionDefinition","src":"1770:935:10"}],"id":7851,"name":"ContractDefinition","src":"927:1780:10"}],"id":7852,"name":"SourceUnit","src":"764:1944:10"}},"internals/ensResolvable.sol":{"AST":{"attributes":{"absolutePath":"internals/ensResolvable.sol","exportedSymbols":{"ENSResolvable":[7902]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".25"]},"id":7853,"name":"PragmaDirective","src":"773:24:11"},{"attributes":{"SourceUnit":9107,"absolutePath":"externals/ens/ENS.sol","file":"../externals/ens/ENS.sol","scope":7903,"symbolAliases":[null],"unitAlias":""},"id":7854,"name":"ImportDirective","src":"799:34:11"},{"attributes":{"SourceUnit":9615,"absolutePath":"externals/ens/PublicResolver.sol","file":"../externals/ens/PublicResolver.sol","scope":7903,"symbolAliases":[null],"unitAlias":""},"id":7855,"name":"ImportDirective","src":"834:45:11"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"contract","documentation":"@title ENSResolvable - Ethereum Name Service Resolver\n@notice contract should be used to get an address for an ENS nodeHash","fullyImplemented":true,"linearizedBaseContracts":[7902],"name":"ENSResolvable","scope":7903},"children":[{"attributes":{"constant":false,"name":"_ens","scope":7902,"stateVariable":true,"storageLocation":"default","type":"contract ENS","value":null,"visibility":"private"},"children":[{"attributes":{"contractScope":null,"name":"ENS","referencedDeclaration":9106,"type":"contract ENS"},"id":7856,"name":"UserDefinedTypeName","src":"1084:3:11"}],"id":7857,"name":"VariableDeclaration","src":"1084:16:11"},{"attributes":{"constant":false,"name":"_ensRegistry","scope":7902,"stateVariable":true,"storageLocation":"default","type":"address","value":null,"visibility":"private"},"children":[{"attributes":{"name":"address","type":"address"},"id":7858,"name":"ElementaryTypeName","src":"1179:7:11"}],"id":7859,"name":"VariableDeclaration","src":"1179:28:11"},{"attributes":{"constant":false,"documentation":"@param _ensReg_ is the ENS registry used","implemented":true,"isConstructor":true,"modifiers":[null],"name":"","payable":false,"scope":7902,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_ensReg_","scope":7875,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":7860,"name":"ElementaryTypeName","src":"1275:7:11"}],"id":7861,"name":"VariableDeclaration","src":"1275:16:11"}],"id":7862,"name":"ParameterList","src":"1274:18:11"},{"attributes":{"parameters":[null]},"children":[],"id":7863,"name":"ParameterList","src":"1302:0:11"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7859,"type":"address","value":"_ensRegistry"},"id":7864,"name":"Identifier","src":"1312:12:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7861,"type":"address","value":"_ensReg_"},"id":7865,"name":"Identifier","src":"1327:8:11"}],"id":7866,"name":"Assignment","src":"1312:23:11"}],"id":7867,"name":"ExpressionStatement","src":"1312:23:11"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"contract ENS"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7857,"type":"contract ENS","value":"_ens"},"id":7868,"name":"Identifier","src":"1345:4:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract ENS","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":9106,"type":"type(contract ENS)","value":"ENS"},"id":7869,"name":"Identifier","src":"1352:3:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7859,"type":"address","value":"_ensRegistry"},"id":7870,"name":"Identifier","src":"1356:12:11"}],"id":7871,"name":"FunctionCall","src":"1352:17:11"}],"id":7872,"name":"Assignment","src":"1345:24:11"}],"id":7873,"name":"ExpressionStatement","src":"1345:24:11"}],"id":7874,"name":"Block","src":"1302:74:11"}],"id":7875,"name":"FunctionDefinition","src":"1263:113:11"},{"attributes":{"constant":true,"documentation":"@notice this is used to that one can observe which ENS registry is being used","implemented":true,"isConstructor":false,"modifiers":[null],"name":"ensRegistry","payable":false,"scope":7902,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":7876,"name":"ParameterList","src":"1488:2:11"},{"children":[{"attributes":{"constant":false,"name":"","scope":7883,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":7877,"name":"ElementaryTypeName","src":"1514:7:11"}],"id":7878,"name":"VariableDeclaration","src":"1514:7:11"}],"id":7879,"name":"ParameterList","src":"1513:9:11"},{"children":[{"attributes":{"functionReturnParameters":7879},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7859,"type":"address","value":"_ensRegistry"},"id":7880,"name":"Identifier","src":"1540:12:11"}],"id":7881,"name":"Return","src":"1533:19:11"}],"id":7882,"name":"Block","src":"1523:36:11"}],"id":7883,"name":"FunctionDefinition","src":"1468:91:11"},{"attributes":{"constant":true,"documentation":"@notice helper function used to get the address of a node Hash\n @param _nodeHash of the ENS entry that needs resolving\n @return the address of the said nodeHash","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_ensResolve","payable":false,"scope":7902,"stateMutability":"view","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_nodeHash","scope":7901,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":7884,"name":"ElementaryTypeName","src":"1769:7:11"}],"id":7885,"name":"VariableDeclaration","src":"1769:17:11"}],"id":7886,"name":"ParameterList","src":"1768:19:11"},{"children":[{"attributes":{"constant":false,"name":"","scope":7901,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":7887,"name":"ElementaryTypeName","src":"1811:7:11"}],"id":7888,"name":"VariableDeclaration","src":"1811:7:11"}],"id":7889,"name":"ParameterList","src":"1810:9:11"},{"children":[{"attributes":{"functionReturnParameters":7889},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"addr","referencedDeclaration":9573,"type":"function (bytes32) view external returns (address)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract PublicResolver","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":9614,"type":"type(contract PublicResolver)","value":"PublicResolver"},"id":7890,"name":"Identifier","src":"1837:14:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"resolver","referencedDeclaration":9098,"type":"function (bytes32) view external returns (address)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7857,"type":"contract ENS","value":"_ens"},"id":7891,"name":"Identifier","src":"1852:4:11"}],"id":7892,"name":"MemberAccess","src":"1852:13:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7885,"type":"bytes32","value":"_nodeHash"},"id":7893,"name":"Identifier","src":"1866:9:11"}],"id":7894,"name":"FunctionCall","src":"1852:24:11"}],"id":7895,"name":"FunctionCall","src":"1837:40:11"}],"id":7896,"name":"MemberAccess","src":"1837:45:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7885,"type":"bytes32","value":"_nodeHash"},"id":7897,"name":"Identifier","src":"1883:9:11"}],"id":7898,"name":"FunctionCall","src":"1837:56:11"}],"id":7899,"name":"Return","src":"1830:63:11"}],"id":7900,"name":"Block","src":"1820:80:11"}],"id":7901,"name":"FunctionDefinition","src":"1748:152:11"}],"id":7902,"name":"ContractDefinition","src":"1012:891:11"}],"id":7903,"name":"SourceUnit","src":"773:1131:11"}},"internals/ownable.sol":{"AST":{"attributes":{"absolutePath":"internals/ownable.sol","exportedSymbols":{"Ownable":[10348]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".25"]},"id":10193,"name":"PragmaDirective","src":"767:24:12"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"contract","documentation":"@title Ownable has an owner address and provides basic authorization control functions.\n This contract is modified version of the MIT OpenZepplin Ownable contract\n This contract allows for the transferOwnership operation to be made impossible\n https://github.com/OpenZeppelin/openzeppelin-solidity/blob/master/contracts/ownership/Ownable.sol","fullyImplemented":true,"linearizedBaseContracts":[10348],"name":"Ownable","scope":10349},"children":[{"attributes":{"anonymous":false,"documentation":null,"name":"TransferredOwnership"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_from","scope":10199,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":10194,"name":"ElementaryTypeName","src":"1199:7:12"}],"id":10195,"name":"VariableDeclaration","src":"1199:13:12"},{"attributes":{"constant":false,"indexed":false,"name":"_to","scope":10199,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":10196,"name":"ElementaryTypeName","src":"1214:7:12"}],"id":10197,"name":"VariableDeclaration","src":"1214:11:12"}],"id":10198,"name":"ParameterList","src":"1198:28:12"}],"id":10199,"name":"EventDefinition","src":"1172:55:12"},{"attributes":{"anonymous":false,"documentation":null,"name":"LockedOwnership"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_locked","scope":10203,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":10200,"name":"ElementaryTypeName","src":"1254:7:12"}],"id":10201,"name":"VariableDeclaration","src":"1254:15:12"}],"id":10202,"name":"ParameterList","src":"1253:17:12"}],"id":10203,"name":"EventDefinition","src":"1232:39:12"},{"attributes":{"constant":false,"name":"_owner","scope":10348,"stateVariable":true,"storageLocation":"default","type":"address","value":null,"visibility":"private"},"children":[{"attributes":{"name":"address","type":"address"},"id":10204,"name":"ElementaryTypeName","src":"1277:7:12"}],"id":10205,"name":"VariableDeclaration","src":"1277:22:12"},{"attributes":{"constant":false,"name":"_isTransferable","scope":10348,"stateVariable":true,"storageLocation":"default","type":"bool","value":null,"visibility":"private"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":10206,"name":"ElementaryTypeName","src":"1305:4:12"}],"id":10207,"name":"VariableDeclaration","src":"1305:28:12"},{"attributes":{"constant":false,"documentation":"@notice Constructor sets the original owner of the contract and whether or not it is one time transferable.","implemented":true,"isConstructor":true,"modifiers":[null],"name":"","payable":false,"scope":10348,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account_","scope":10238,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":10208,"name":"ElementaryTypeName","src":"1468:7:12"}],"id":10209,"name":"VariableDeclaration","src":"1468:17:12"},{"attributes":{"constant":false,"name":"_transferable_","scope":10238,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":10210,"name":"ElementaryTypeName","src":"1487:4:12"}],"id":10211,"name":"VariableDeclaration","src":"1487:19:12"}],"id":10212,"name":"ParameterList","src":"1467:40:12"},{"attributes":{"parameters":[null]},"children":[],"id":10213,"name":"ParameterList","src":"1517:0:12"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10205,"type":"address","value":"_owner"},"id":10214,"name":"Identifier","src":"1527:6:12"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10209,"type":"address","value":"_account_"},"id":10215,"name":"Identifier","src":"1536:9:12"}],"id":10216,"name":"Assignment","src":"1527:18:12"}],"id":10217,"name":"ExpressionStatement","src":"1527:18:12"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10207,"type":"bool","value":"_isTransferable"},"id":10218,"name":"Identifier","src":"1555:15:12"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10211,"type":"bool","value":"_transferable_"},"id":10219,"name":"Identifier","src":"1573:14:12"}],"id":10220,"name":"Assignment","src":"1555:32:12"}],"id":10221,"name":"ExpressionStatement","src":"1555:32:12"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10207,"type":"bool","value":"_isTransferable"},"id":10222,"name":"Identifier","src":"1671:15:12"}],"id":10223,"name":"UnaryOperation","src":"1670:16:12"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":10203,"type":"function (address)","value":"LockedOwnership"},"id":10224,"name":"Identifier","src":"1707:15:12"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10209,"type":"address","value":"_account_"},"id":10225,"name":"Identifier","src":"1723:9:12"}],"id":10226,"name":"FunctionCall","src":"1707:26:12"}],"id":10227,"name":"EmitStatement","src":"1702:31:12"}],"id":10228,"name":"Block","src":"1688:56:12"}],"id":10229,"name":"IfStatement","src":"1666:78:12"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":10199,"type":"function (address,address)","value":"TransferredOwnership"},"id":10230,"name":"Identifier","src":"1758:20:12"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":10231,"name":"ElementaryTypeNameExpression","src":"1779:7:12"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":10232,"name":"Literal","src":"1787:1:12"}],"id":10233,"name":"FunctionCall","src":"1779:10:12"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10209,"type":"address","value":"_account_"},"id":10234,"name":"Identifier","src":"1791:9:12"}],"id":10235,"name":"FunctionCall","src":"1758:43:12"}],"id":10236,"name":"EmitStatement","src":"1753:48:12"}],"id":10237,"name":"Block","src":"1517:291:12"}],"id":10238,"name":"FunctionDefinition","src":"1456:352:12"},{"attributes":{"documentation":"@notice Reverts if called by any account other than the owner.","name":"onlyOwner","visibility":"internal"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":10239,"name":"ParameterList","src":"1903:2:12"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_96d7cc6c06f3d4101b2a14e4ad2906b79dc824ab8a44b63e774a71d2b9c7abd2","typeString":"literal_string \"sender is not an owner\""}],"overloadedDeclarations":[12061,12062],"referencedDeclaration":12062,"type":"function (bool,string memory) pure","value":"require"},"id":10240,"name":"Identifier","src":"1916:7:12"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":10347,"type":"function (address) view returns (bool)","value":"_isOwner"},"id":10241,"name":"Identifier","src":"1924:8:12"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":12058,"type":"msg","value":"msg"},"id":10242,"name":"Identifier","src":"1933:3:12"}],"id":10243,"name":"MemberAccess","src":"1933:10:12"}],"id":10244,"name":"FunctionCall","src":"1924:20:12"},{"attributes":{"argumentTypes":null,"hexvalue":"73656e646572206973206e6f7420616e206f776e6572","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"sender is not an owner\"","value":"sender is not an owner"},"id":10245,"name":"Literal","src":"1946:24:12"}],"id":10246,"name":"FunctionCall","src":"1916:55:12"}],"id":10247,"name":"ExpressionStatement","src":"1916:55:12"},{"id":10248,"name":"PlaceholderStatement","src":"1981:1:12"}],"id":10249,"name":"Block","src":"1906:83:12"}],"id":10250,"name":"ModifierDefinition","src":"1885:104:12"},{"attributes":{"constant":false,"documentation":"@notice Allows the current owner to transfer control of the contract to a new address.\n @param _account address to transfer ownership to.\n @param _transferable indicates whether to keep the ownership transferable.","implemented":true,"isConstructor":false,"name":"transferOwnership","payable":false,"scope":10348,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":10295,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":10251,"name":"ElementaryTypeName","src":"2258:7:12"}],"id":10252,"name":"VariableDeclaration","src":"2258:16:12"},{"attributes":{"constant":false,"name":"_transferable","scope":10295,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":10253,"name":"ElementaryTypeName","src":"2276:4:12"}],"id":10254,"name":"VariableDeclaration","src":"2276:18:12"}],"id":10255,"name":"ParameterList","src":"2257:38:12"},{"attributes":{"parameters":[null]},"children":[],"id":10258,"name":"ParameterList","src":"2315:0:12"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10250,"type":"modifier ()","value":"onlyOwner"},"id":10256,"name":"Identifier","src":"2305:9:12"}],"id":10257,"name":"ModifierInvocation","src":"2305:9:12"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b2967f1eb3e333ead270a5eb332284149554452f916a981f27e70894d40a893f","typeString":"literal_string \"ownership is not transferable\""}],"overloadedDeclarations":[12061,12062],"referencedDeclaration":12062,"type":"function (bool,string memory) pure","value":"require"},"id":10259,"name":"Identifier","src":"2380:7:12"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10207,"type":"bool","value":"_isTransferable"},"id":10260,"name":"Identifier","src":"2388:15:12"},{"attributes":{"argumentTypes":null,"hexvalue":"6f776e657273686970206973206e6f74207472616e7366657261626c65","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"ownership is not transferable\"","value":"ownership is not transferable"},"id":10261,"name":"Literal","src":"2405:31:12"}],"id":10262,"name":"FunctionCall","src":"2380:57:12"}],"id":10263,"name":"ExpressionStatement","src":"2380:57:12"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_be619f073d6b85c603c617050d1729f1cf3b31bf6ae5ae03f35765577d9bb6c8","typeString":"literal_string \"owner cannot be set to zero address\""}],"overloadedDeclarations":[12061,12062],"referencedDeclaration":12062,"type":"function (bool,string memory) pure","value":"require"},"id":10264,"name":"Identifier","src":"2510:7:12"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10252,"type":"address","value":"_account"},"id":10265,"name":"Identifier","src":"2518:8:12"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":10266,"name":"ElementaryTypeNameExpression","src":"2530:7:12"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":10267,"name":"Literal","src":"2538:1:12"}],"id":10268,"name":"FunctionCall","src":"2530:10:12"}],"id":10269,"name":"BinaryOperation","src":"2518:22:12"},{"attributes":{"argumentTypes":null,"hexvalue":"6f776e65722063616e6e6f742062652073657420746f207a65726f2061646472657373","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"owner cannot be set to zero address\"","value":"owner cannot be set to zero address"},"id":10270,"name":"Literal","src":"2542:37:12"}],"id":10271,"name":"FunctionCall","src":"2510:70:12"}],"id":10272,"name":"ExpressionStatement","src":"2510:70:12"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10207,"type":"bool","value":"_isTransferable"},"id":10273,"name":"Identifier","src":"2665:15:12"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10254,"type":"bool","value":"_transferable"},"id":10274,"name":"Identifier","src":"2683:13:12"}],"id":10275,"name":"Assignment","src":"2665:31:12"}],"id":10276,"name":"ExpressionStatement","src":"2665:31:12"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10254,"type":"bool","value":"_transferable"},"id":10277,"name":"Identifier","src":"2780:13:12"}],"id":10278,"name":"UnaryOperation","src":"2779:14:12"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":10203,"type":"function (address)","value":"LockedOwnership"},"id":10279,"name":"Identifier","src":"2814:15:12"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10252,"type":"address","value":"_account"},"id":10280,"name":"Identifier","src":"2830:8:12"}],"id":10281,"name":"FunctionCall","src":"2814:25:12"}],"id":10282,"name":"EmitStatement","src":"2809:30:12"}],"id":10283,"name":"Block","src":"2795:55:12"}],"id":10284,"name":"IfStatement","src":"2775:75:12"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":10199,"type":"function (address,address)","value":"TransferredOwnership"},"id":10285,"name":"Identifier","src":"2910:20:12"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10205,"type":"address","value":"_owner"},"id":10286,"name":"Identifier","src":"2931:6:12"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10252,"type":"address","value":"_account"},"id":10287,"name":"Identifier","src":"2939:8:12"}],"id":10288,"name":"FunctionCall","src":"2910:38:12"}],"id":10289,"name":"EmitStatement","src":"2905:43:12"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10205,"type":"address","value":"_owner"},"id":10290,"name":"Identifier","src":"3008:6:12"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10252,"type":"address","value":"_account"},"id":10291,"name":"Identifier","src":"3017:8:12"}],"id":10292,"name":"Assignment","src":"3008:17:12"}],"id":10293,"name":"ExpressionStatement","src":"3008:17:12"}],"id":10294,"name":"Block","src":"2315:717:12"}],"id":10295,"name":"FunctionDefinition","src":"2231:801:12"},{"attributes":{"constant":true,"documentation":"@notice check if the ownership is transferable.\n @return true if the ownership is transferable.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"isTransferable","payable":false,"scope":10348,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":10296,"name":"ParameterList","src":"3172:2:12"},{"children":[{"attributes":{"constant":false,"name":"","scope":10303,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":10297,"name":"ElementaryTypeName","src":"3198:4:12"}],"id":10298,"name":"VariableDeclaration","src":"3198:4:12"}],"id":10299,"name":"ParameterList","src":"3197:6:12"},{"children":[{"attributes":{"functionReturnParameters":10299},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10207,"type":"bool","value":"_isTransferable"},"id":10300,"name":"Identifier","src":"3221:15:12"}],"id":10301,"name":"Return","src":"3214:22:12"}],"id":10302,"name":"Block","src":"3204:39:12"}],"id":10303,"name":"FunctionDefinition","src":"3149:94:12"},{"attributes":{"constant":false,"documentation":"@notice Allows the current owner to relinquish control of the contract.\n @dev Renouncing to ownership will leave the contract without an owner and unusable.\n @dev It will not be possible to call the functions with the `onlyOwner` modifier anymore.","implemented":true,"isConstructor":false,"name":"renounceOwnership","payable":false,"scope":10348,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":10304,"name":"ParameterList","src":"3545:2:12"},{"attributes":{"parameters":[null]},"children":[],"id":10307,"name":"ParameterList","src":"3567:0:12"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10250,"type":"modifier ()","value":"onlyOwner"},"id":10305,"name":"Identifier","src":"3557:9:12"}],"id":10306,"name":"ModifierInvocation","src":"3557:9:12"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b2967f1eb3e333ead270a5eb332284149554452f916a981f27e70894d40a893f","typeString":"literal_string \"ownership is not transferable\""}],"overloadedDeclarations":[12061,12062],"referencedDeclaration":12062,"type":"function (bool,string memory) pure","value":"require"},"id":10308,"name":"Identifier","src":"3632:7:12"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10207,"type":"bool","value":"_isTransferable"},"id":10309,"name":"Identifier","src":"3640:15:12"},{"attributes":{"argumentTypes":null,"hexvalue":"6f776e657273686970206973206e6f74207472616e7366657261626c65","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"ownership is not transferable\"","value":"ownership is not transferable"},"id":10310,"name":"Literal","src":"3657:31:12"}],"id":10311,"name":"FunctionCall","src":"3632:57:12"}],"id":10312,"name":"ExpressionStatement","src":"3632:57:12"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10205,"type":"address","value":"_owner"},"id":10313,"name":"Identifier","src":"3743:6:12"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":10314,"name":"ElementaryTypeNameExpression","src":"3752:7:12"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":10315,"name":"Literal","src":"3760:1:12"}],"id":10316,"name":"FunctionCall","src":"3752:10:12"}],"id":10317,"name":"Assignment","src":"3743:19:12"}],"id":10318,"name":"ExpressionStatement","src":"3743:19:12"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":10199,"type":"function (address,address)","value":"TransferredOwnership"},"id":10319,"name":"Identifier","src":"3778:20:12"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10205,"type":"address","value":"_owner"},"id":10320,"name":"Identifier","src":"3799:6:12"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":10321,"name":"ElementaryTypeNameExpression","src":"3807:7:12"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":10322,"name":"Literal","src":"3815:1:12"}],"id":10323,"name":"FunctionCall","src":"3807:10:12"}],"id":10324,"name":"FunctionCall","src":"3778:40:12"}],"id":10325,"name":"EmitStatement","src":"3773:45:12"}],"id":10326,"name":"Block","src":"3567:258:12"}],"id":10327,"name":"FunctionDefinition","src":"3519:306:12"},{"attributes":{"constant":true,"documentation":"@notice Find out owner address\n @return address of the owner.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"owner","payable":false,"scope":10348,"stateMutability":"view","superFunction":null,"visibility":"public"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":10328,"name":"ParameterList","src":"3922:2:12"},{"children":[{"attributes":{"constant":false,"name":"","scope":10335,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":10329,"name":"ElementaryTypeName","src":"3946:7:12"}],"id":10330,"name":"VariableDeclaration","src":"3946:7:12"}],"id":10331,"name":"ParameterList","src":"3945:9:12"},{"children":[{"attributes":{"functionReturnParameters":10331},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10205,"type":"address","value":"_owner"},"id":10332,"name":"Identifier","src":"3972:6:12"}],"id":10333,"name":"Return","src":"3965:13:12"}],"id":10334,"name":"Block","src":"3955:30:12"}],"id":10335,"name":"FunctionDefinition","src":"3908:77:12"},{"attributes":{"constant":true,"documentation":"@notice Check if owner address\n @return true if sender is the owner of the contract.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_isOwner","payable":false,"scope":10348,"stateMutability":"view","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_address","scope":10347,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":10336,"name":"ElementaryTypeName","src":"4109:7:12"}],"id":10337,"name":"VariableDeclaration","src":"4109:16:12"}],"id":10338,"name":"ParameterList","src":"4108:18:12"},{"children":[{"attributes":{"constant":false,"name":"","scope":10347,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":10339,"name":"ElementaryTypeName","src":"4150:4:12"}],"id":10340,"name":"VariableDeclaration","src":"4150:4:12"}],"id":10341,"name":"ParameterList","src":"4149:6:12"},{"children":[{"attributes":{"functionReturnParameters":10341},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10337,"type":"address","value":"_address"},"id":10342,"name":"Identifier","src":"4173:8:12"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10205,"type":"address","value":"_owner"},"id":10343,"name":"Identifier","src":"4185:6:12"}],"id":10344,"name":"BinaryOperation","src":"4173:18:12"}],"id":10345,"name":"Return","src":"4166:25:12"}],"id":10346,"name":"Block","src":"4156:42:12"}],"id":10347,"name":"FunctionDefinition","src":"4091:107:12"}],"id":10348,"name":"ContractDefinition","src":"1149:3051:12"}],"id":10349,"name":"SourceUnit","src":"767:3434:12"}},"internals/parseIntScientific.sol":{"AST":{"attributes":{"absolutePath":"internals/parseIntScientific.sol","exportedSymbols":{"ParseIntScientific":[8446]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".25"]},"id":7904,"name":"PragmaDirective","src":"777:24:13"},{"attributes":{"SourceUnit":1227,"absolutePath":"externals/SafeMath.sol","file":"../externals/SafeMath.sol","scope":8447,"symbolAliases":[null],"unitAlias":""},"id":7905,"name":"ImportDirective","src":"803:35:13"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"contract","documentation":"@title ParseIntScientific provides floating point in scientific notation (e.g. e-5) parsing functionality.","fullyImplemented":true,"linearizedBaseContracts":[8446],"name":"ParseIntScientific","scope":8447},"children":[{"children":[{"attributes":{"contractScope":null,"name":"SafeMath","referencedDeclaration":1226,"type":"library SafeMath"},"id":7906,"name":"UserDefinedTypeName","src":"993:8:13"},{"attributes":{"name":"uint256","type":"uint256"},"id":7907,"name":"ElementaryTypeName","src":"1006:7:13"}],"id":7908,"name":"UsingForDirective","src":"987:27:13"},{"attributes":{"constant":true,"name":"_PLUS_ASCII","scope":8446,"stateVariable":true,"storageLocation":"default","type":"bytes1","visibility":"private"},"children":[{"attributes":{"name":"byte","type":"bytes1"},"id":7909,"name":"ElementaryTypeName","src":"1020:4:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes1","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_43_by_1","typeString":"int_const 43"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes1)","value":"byte"},"id":7910,"name":"ElementaryTypeNameExpression","src":"1056:4:13"},{"attributes":{"argumentTypes":null,"hexvalue":"3433","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 43","value":"43"},"id":7911,"name":"Literal","src":"1061:2:13"}],"id":7912,"name":"FunctionCall","src":"1056:8:13"}],"id":7913,"name":"VariableDeclaration","src":"1020:44:13"},{"attributes":{"constant":true,"name":"_DASH_ASCII","scope":8446,"stateVariable":true,"storageLocation":"default","type":"bytes1","visibility":"private"},"children":[{"attributes":{"name":"byte","type":"bytes1"},"id":7914,"name":"ElementaryTypeName","src":"1093:4:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes1","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_45_by_1","typeString":"int_const 45"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes1)","value":"byte"},"id":7915,"name":"ElementaryTypeNameExpression","src":"1129:4:13"},{"attributes":{"argumentTypes":null,"hexvalue":"3435","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 45","value":"45"},"id":7916,"name":"Literal","src":"1134:2:13"}],"id":7917,"name":"FunctionCall","src":"1129:8:13"}],"id":7918,"name":"VariableDeclaration","src":"1093:44:13"},{"attributes":{"constant":true,"name":"_DOT_ASCII","scope":8446,"stateVariable":true,"storageLocation":"default","type":"bytes1","visibility":"private"},"children":[{"attributes":{"name":"byte","type":"bytes1"},"id":7919,"name":"ElementaryTypeName","src":"1166:4:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes1","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_46_by_1","typeString":"int_const 46"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes1)","value":"byte"},"id":7920,"name":"ElementaryTypeNameExpression","src":"1201:4:13"},{"attributes":{"argumentTypes":null,"hexvalue":"3436","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 46","value":"46"},"id":7921,"name":"Literal","src":"1206:2:13"}],"id":7922,"name":"FunctionCall","src":"1201:8:13"}],"id":7923,"name":"VariableDeclaration","src":"1166:43:13"},{"attributes":{"constant":true,"name":"_ZERO_ASCII","scope":8446,"stateVariable":true,"storageLocation":"default","type":"bytes1","visibility":"private"},"children":[{"attributes":{"name":"byte","type":"bytes1"},"id":7924,"name":"ElementaryTypeName","src":"1238:4:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes1","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_48_by_1","typeString":"int_const 48"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes1)","value":"byte"},"id":7925,"name":"ElementaryTypeNameExpression","src":"1274:4:13"},{"attributes":{"argumentTypes":null,"hexvalue":"3438","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 48","value":"48"},"id":7926,"name":"Literal","src":"1279:2:13"}],"id":7927,"name":"FunctionCall","src":"1274:8:13"}],"id":7928,"name":"VariableDeclaration","src":"1238:44:13"},{"attributes":{"constant":true,"name":"_NINE_ASCII","scope":8446,"stateVariable":true,"storageLocation":"default","type":"bytes1","visibility":"private"},"children":[{"attributes":{"name":"byte","type":"bytes1"},"id":7929,"name":"ElementaryTypeName","src":"1311:4:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes1","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_57_by_1","typeString":"int_const 57"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes1)","value":"byte"},"id":7930,"name":"ElementaryTypeNameExpression","src":"1347:4:13"},{"attributes":{"argumentTypes":null,"hexvalue":"3537","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 57","value":"57"},"id":7931,"name":"Literal","src":"1352:2:13"}],"id":7932,"name":"FunctionCall","src":"1347:8:13"}],"id":7933,"name":"VariableDeclaration","src":"1311:44:13"},{"attributes":{"constant":true,"name":"_E_ASCII","scope":8446,"stateVariable":true,"storageLocation":"default","type":"bytes1","visibility":"private"},"children":[{"attributes":{"name":"byte","type":"bytes1"},"id":7934,"name":"ElementaryTypeName","src":"1384:4:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes1","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_69_by_1","typeString":"int_const 69"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes1)","value":"byte"},"id":7935,"name":"ElementaryTypeNameExpression","src":"1417:4:13"},{"attributes":{"argumentTypes":null,"hexvalue":"3639","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 69","value":"69"},"id":7936,"name":"Literal","src":"1422:2:13"}],"id":7937,"name":"FunctionCall","src":"1417:8:13"}],"id":7938,"name":"VariableDeclaration","src":"1384:41:13"},{"attributes":{"constant":true,"name":"_LOWERCASE_E_ASCII","scope":8446,"stateVariable":true,"storageLocation":"default","type":"bytes1","visibility":"private"},"children":[{"attributes":{"name":"byte","type":"bytes1"},"id":7939,"name":"ElementaryTypeName","src":"1454:4:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes1","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_101_by_1","typeString":"int_const 101"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes1)","value":"byte"},"id":7940,"name":"ElementaryTypeNameExpression","src":"1497:4:13"},{"attributes":{"argumentTypes":null,"hexvalue":"313031","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 101","value":"101"},"id":7941,"name":"Literal","src":"1502:3:13"}],"id":7942,"name":"FunctionCall","src":"1497:9:13"}],"id":7943,"name":"VariableDeclaration","src":"1454:52:13"},{"attributes":{"constant":true,"documentation":"@notice ParseIntScientific delegates the call to _parseIntScientific(string, uint) with the 2nd argument being 0.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_parseIntScientific","payable":false,"scope":8446,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_inString","scope":7956,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":7944,"name":"ElementaryTypeName","src":"1687:6:13"}],"id":7945,"name":"VariableDeclaration","src":"1687:16:13"}],"id":7946,"name":"ParameterList","src":"1686:18:13"},{"children":[{"attributes":{"constant":false,"name":"","scope":7956,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":7947,"name":"ElementaryTypeName","src":"1728:4:13"}],"id":7948,"name":"VariableDeclaration","src":"1728:4:13"}],"id":7949,"name":"ParameterList","src":"1727:6:13"},{"children":[{"attributes":{"functionReturnParameters":7949},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"overloadedDeclarations":[7956,8445],"referencedDeclaration":8445,"type":"function (string memory,uint256) pure returns (uint256)","value":"_parseIntScientific"},"id":7950,"name":"Identifier","src":"1751:19:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7945,"type":"string memory","value":"_inString"},"id":7951,"name":"Identifier","src":"1771:9:13"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":7952,"name":"Literal","src":"1782:1:13"}],"id":7953,"name":"FunctionCall","src":"1751:33:13"}],"id":7954,"name":"Return","src":"1744:40:13"}],"id":7955,"name":"Block","src":"1734:57:13"}],"id":7956,"name":"FunctionDefinition","src":"1658:133:13"},{"attributes":{"constant":true,"documentation":"@notice ParseIntScientificWei parses a rate expressed in ETH and returns its wei denomination","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_parseIntScientificWei","payable":false,"scope":8446,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_inString","scope":7969,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":7957,"name":"ElementaryTypeName","src":"1931:6:13"}],"id":7958,"name":"VariableDeclaration","src":"1931:16:13"}],"id":7959,"name":"ParameterList","src":"1930:18:13"},{"children":[{"attributes":{"constant":false,"name":"","scope":7969,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":7960,"name":"ElementaryTypeName","src":"1972:4:13"}],"id":7961,"name":"VariableDeclaration","src":"1972:4:13"}],"id":7962,"name":"ParameterList","src":"1971:6:13"},{"children":[{"attributes":{"functionReturnParameters":7962},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"}],"overloadedDeclarations":[7956,8445],"referencedDeclaration":8445,"type":"function (string memory,uint256) pure returns (uint256)","value":"_parseIntScientific"},"id":7963,"name":"Identifier","src":"1995:19:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7958,"type":"string memory","value":"_inString"},"id":7964,"name":"Identifier","src":"2015:9:13"},{"attributes":{"argumentTypes":null,"hexvalue":"3138","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 18","value":"18"},"id":7965,"name":"Literal","src":"2026:2:13"}],"id":7966,"name":"FunctionCall","src":"1995:34:13"}],"id":7967,"name":"Return","src":"1988:41:13"}],"id":7968,"name":"Block","src":"1978:58:13"}],"id":7969,"name":"FunctionDefinition","src":"1899:137:13"},{"attributes":{"constant":true,"documentation":"@notice ParseIntScientific parses a JSON standard - floating point number.\n @param _inString is input string.\n @param _magnitudeMult multiplies the number with 10^_magnitudeMult.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_parseIntScientific","payable":false,"scope":8446,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_inString","scope":8445,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":7970,"name":"ElementaryTypeName","src":"2272:6:13"}],"id":7971,"name":"VariableDeclaration","src":"2272:16:13"},{"attributes":{"constant":false,"name":"_magnitudeMult","scope":8445,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":7972,"name":"ElementaryTypeName","src":"2290:4:13"}],"id":7973,"name":"VariableDeclaration","src":"2290:19:13"}],"id":7974,"name":"ParameterList","src":"2271:39:13"},{"children":[{"attributes":{"constant":false,"name":"","scope":8445,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":7975,"name":"ElementaryTypeName","src":"2334:4:13"}],"id":7976,"name":"VariableDeclaration","src":"2334:4:13"}],"id":7977,"name":"ParameterList","src":"2333:6:13"},{"children":[{"attributes":{"assignments":[7979]},"children":[{"attributes":{"constant":false,"name":"inBytes","scope":8445,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":7978,"name":"ElementaryTypeName","src":"2351:5:13"}],"id":7979,"name":"VariableDeclaration","src":"2351:20:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes storage pointer)","value":"bytes"},"id":7980,"name":"ElementaryTypeNameExpression","src":"2374:5:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7971,"type":"string memory","value":"_inString"},"id":7981,"name":"Identifier","src":"2380:9:13"}],"id":7982,"name":"FunctionCall","src":"2374:16:13"}],"id":7983,"name":"VariableDeclarationStatement","src":"2351:39:13"},{"attributes":{"assignments":[7985]},"children":[{"attributes":{"constant":false,"name":"mint","scope":8445,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":7984,"name":"ElementaryTypeName","src":"2400:4:13"}],"id":7985,"name":"VariableDeclaration","src":"2400:9:13"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":7986,"name":"Literal","src":"2412:1:13"}],"id":7987,"name":"VariableDeclarationStatement","src":"2400:13:13"},{"attributes":{"assignments":[7989]},"children":[{"attributes":{"constant":false,"name":"mintDec","scope":8445,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":7988,"name":"ElementaryTypeName","src":"2450:4:13"}],"id":7989,"name":"VariableDeclaration","src":"2450:12:13"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":7990,"name":"Literal","src":"2465:1:13"}],"id":7991,"name":"VariableDeclarationStatement","src":"2450:16:13"},{"attributes":{"assignments":[7993]},"children":[{"attributes":{"constant":false,"name":"mintExp","scope":8445,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":7992,"name":"ElementaryTypeName","src":"2516:4:13"}],"id":7993,"name":"VariableDeclaration","src":"2516:12:13"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":7994,"name":"Literal","src":"2531:1:13"}],"id":7995,"name":"VariableDeclarationStatement","src":"2516:16:13"},{"attributes":{"assignments":[7997]},"children":[{"attributes":{"constant":false,"name":"decMinted","scope":8445,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":7996,"name":"ElementaryTypeName","src":"2558:4:13"}],"id":7997,"name":"VariableDeclaration","src":"2558:14:13"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":7998,"name":"Literal","src":"2575:1:13"}],"id":7999,"name":"VariableDeclarationStatement","src":"2558:18:13"},{"attributes":{"assignments":[8001]},"children":[{"attributes":{"constant":false,"name":"expIndex","scope":8445,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":8000,"name":"ElementaryTypeName","src":"2622:4:13"}],"id":8001,"name":"VariableDeclaration","src":"2622:13:13"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":8002,"name":"Literal","src":"2638:1:13"}],"id":8003,"name":"VariableDeclarationStatement","src":"2622:17:13"},{"attributes":{"assignments":[8005]},"children":[{"attributes":{"constant":false,"name":"integral","scope":8445,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":8004,"name":"ElementaryTypeName","src":"2713:4:13"}],"id":8005,"name":"VariableDeclaration","src":"2713:13:13"},{"attributes":{"argumentTypes":null,"hexvalue":"66616c7365","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"false"},"id":8006,"name":"Literal","src":"2729:5:13"}],"id":8007,"name":"VariableDeclarationStatement","src":"2713:21:13"},{"attributes":{"assignments":[8009]},"children":[{"attributes":{"constant":false,"name":"decimals","scope":8445,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":8008,"name":"ElementaryTypeName","src":"2861:4:13"}],"id":8009,"name":"VariableDeclaration","src":"2861:13:13"},{"attributes":{"argumentTypes":null,"hexvalue":"66616c7365","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"false"},"id":8010,"name":"Literal","src":"2877:5:13"}],"id":8011,"name":"VariableDeclarationStatement","src":"2861:21:13"},{"attributes":{"assignments":[8013]},"children":[{"attributes":{"constant":false,"name":"exp","scope":8445,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":8012,"name":"ElementaryTypeName","src":"2951:4:13"}],"id":8013,"name":"VariableDeclaration","src":"2951:8:13"},{"attributes":{"argumentTypes":null,"hexvalue":"66616c7365","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"false"},"id":8014,"name":"Literal","src":"2962:5:13"}],"id":8015,"name":"VariableDeclarationStatement","src":"2951:16:13"},{"attributes":{"assignments":[8017]},"children":[{"attributes":{"constant":false,"name":"minus","scope":8445,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":8016,"name":"ElementaryTypeName","src":"3051:4:13"}],"id":8017,"name":"VariableDeclaration","src":"3051:10:13"},{"attributes":{"argumentTypes":null,"hexvalue":"66616c7365","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"false"},"id":8018,"name":"Literal","src":"3064:5:13"}],"id":8019,"name":"VariableDeclarationStatement","src":"3051:18:13"},{"attributes":{"assignments":[8021]},"children":[{"attributes":{"constant":false,"name":"plus","scope":8445,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":8020,"name":"ElementaryTypeName","src":"3120:4:13"}],"id":8021,"name":"VariableDeclaration","src":"3120:9:13"},{"attributes":{"argumentTypes":null,"hexvalue":"66616c7365","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"false"},"id":8022,"name":"Literal","src":"3132:5:13"}],"id":8023,"name":"VariableDeclarationStatement","src":"3120:17:13"},{"children":[{"attributes":{"assignments":[8025]},"children":[{"attributes":{"constant":false,"name":"i","scope":8445,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":8024,"name":"ElementaryTypeName","src":"3194:4:13"}],"id":8025,"name":"VariableDeclaration","src":"3194:6:13"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":8026,"name":"Literal","src":"3203:1:13"}],"id":8027,"name":"VariableDeclarationStatement","src":"3194:10:13"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8025,"type":"uint256","value":"i"},"id":8028,"name":"Identifier","src":"3206:1:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7979,"type":"bytes memory","value":"inBytes"},"id":8029,"name":"Identifier","src":"3210:7:13"}],"id":8030,"name":"MemberAccess","src":"3210:14:13"}],"id":8031,"name":"BinaryOperation","src":"3206:18:13"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8025,"type":"uint256","value":"i"},"id":8032,"name":"Identifier","src":"3226:1:13"}],"id":8033,"name":"UnaryOperation","src":"3226:3:13"}],"id":8034,"name":"ExpressionStatement","src":"3226:3:13"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&&","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&&","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7979,"type":"bytes memory","value":"inBytes"},"id":8035,"name":"Identifier","src":"3250:7:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8025,"type":"uint256","value":"i"},"id":8036,"name":"Identifier","src":"3258:1:13"}],"id":8037,"name":"IndexAccess","src":"3250:10:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7928,"type":"bytes1","value":"_ZERO_ASCII"},"id":8038,"name":"Identifier","src":"3264:11:13"}],"id":8039,"name":"BinaryOperation","src":"3250:25:13"}],"id":8040,"name":"TupleExpression","src":"3249:27:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7979,"type":"bytes memory","value":"inBytes"},"id":8041,"name":"Identifier","src":"3281:7:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8025,"type":"uint256","value":"i"},"id":8042,"name":"Identifier","src":"3289:1:13"}],"id":8043,"name":"IndexAccess","src":"3281:10:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7933,"type":"bytes1","value":"_NINE_ASCII"},"id":8044,"name":"Identifier","src":"3295:11:13"}],"id":8045,"name":"BinaryOperation","src":"3281:25:13"}],"id":8046,"name":"TupleExpression","src":"3280:27:13"}],"id":8047,"name":"BinaryOperation","src":"3249:58:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8013,"type":"bool","value":"exp"},"id":8048,"name":"Identifier","src":"3313:3:13"}],"id":8049,"name":"UnaryOperation","src":"3312:4:13"}],"id":8050,"name":"TupleExpression","src":"3311:6:13"}],"id":8051,"name":"BinaryOperation","src":"3249:68:13"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8009,"type":"bool","value":"decimals"},"id":8052,"name":"Identifier","src":"3418:8:13"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7989,"type":"uint256","value":"mintDec"},"id":8053,"name":"Identifier","src":"3554:7:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"mul","referencedDeclaration":1133,"type":"function (uint256,uint256) pure returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7989,"type":"uint256","value":"mintDec"},"id":8054,"name":"Identifier","src":"3564:7:13"}],"id":8055,"name":"MemberAccess","src":"3564:11:13"},{"attributes":{"argumentTypes":null,"hexvalue":"3130","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 10","value":"10"},"id":8056,"name":"Literal","src":"3576:2:13"}],"id":8057,"name":"FunctionCall","src":"3564:15:13"}],"id":8058,"name":"Assignment","src":"3554:25:13"}],"id":8059,"name":"ExpressionStatement","src":"3554:25:13"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7989,"type":"uint256","value":"mintDec"},"id":8060,"name":"Identifier","src":"3601:7:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"add","referencedDeclaration":1205,"type":"function (uint256,uint256) pure returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7989,"type":"uint256","value":"mintDec"},"id":8061,"name":"Identifier","src":"3611:7:13"}],"id":8062,"name":"MemberAccess","src":"3611:11:13"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint"},"id":8063,"name":"ElementaryTypeNameExpression","src":"3623:4:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7979,"type":"bytes memory","value":"inBytes"},"id":8064,"name":"Identifier","src":"3628:7:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8025,"type":"uint256","value":"i"},"id":8065,"name":"Identifier","src":"3636:1:13"}],"id":8066,"name":"IndexAccess","src":"3628:10:13"}],"id":8067,"name":"FunctionCall","src":"3623:16:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint"},"id":8068,"name":"ElementaryTypeNameExpression","src":"3642:4:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7928,"type":"bytes1","value":"_ZERO_ASCII"},"id":8069,"name":"Identifier","src":"3647:11:13"}],"id":8070,"name":"FunctionCall","src":"3642:17:13"}],"id":8071,"name":"BinaryOperation","src":"3623:36:13"}],"id":8072,"name":"FunctionCall","src":"3611:49:13"}],"id":8073,"name":"Assignment","src":"3601:59:13"}],"id":8074,"name":"ExpressionStatement","src":"3601:59:13"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7997,"type":"uint256","value":"decMinted"},"id":8075,"name":"Identifier","src":"3682:9:13"}],"id":8076,"name":"UnaryOperation","src":"3682:11:13"}],"id":8077,"name":"ExpressionStatement","src":"3682:11:13"}],"id":8078,"name":"Block","src":"3428:314:13"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8005,"type":"bool","value":"integral"},"id":8079,"name":"Identifier","src":"3820:8:13"},{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":8080,"name":"Literal","src":"3831:4:13"}],"id":8081,"name":"Assignment","src":"3820:15:13"}],"id":8082,"name":"ExpressionStatement","src":"3820:15:13"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7985,"type":"uint256","value":"mint"},"id":8083,"name":"Identifier","src":"3922:4:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"mul","referencedDeclaration":1133,"type":"function (uint256,uint256) pure returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7985,"type":"uint256","value":"mint"},"id":8084,"name":"Identifier","src":"3929:4:13"}],"id":8085,"name":"MemberAccess","src":"3929:8:13"},{"attributes":{"argumentTypes":null,"hexvalue":"3130","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 10","value":"10"},"id":8086,"name":"Literal","src":"3938:2:13"}],"id":8087,"name":"FunctionCall","src":"3929:12:13"}],"id":8088,"name":"Assignment","src":"3922:19:13"}],"id":8089,"name":"ExpressionStatement","src":"3922:19:13"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7985,"type":"uint256","value":"mint"},"id":8090,"name":"Identifier","src":"3963:4:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"add","referencedDeclaration":1205,"type":"function (uint256,uint256) pure returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7985,"type":"uint256","value":"mint"},"id":8091,"name":"Identifier","src":"3970:4:13"}],"id":8092,"name":"MemberAccess","src":"3970:8:13"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint"},"id":8093,"name":"ElementaryTypeNameExpression","src":"3979:4:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7979,"type":"bytes memory","value":"inBytes"},"id":8094,"name":"Identifier","src":"3984:7:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8025,"type":"uint256","value":"i"},"id":8095,"name":"Identifier","src":"3992:1:13"}],"id":8096,"name":"IndexAccess","src":"3984:10:13"}],"id":8097,"name":"FunctionCall","src":"3979:16:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint"},"id":8098,"name":"ElementaryTypeNameExpression","src":"3998:4:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7928,"type":"bytes1","value":"_ZERO_ASCII"},"id":8099,"name":"Identifier","src":"4003:11:13"}],"id":8100,"name":"FunctionCall","src":"3998:17:13"}],"id":8101,"name":"BinaryOperation","src":"3979:36:13"}],"id":8102,"name":"FunctionCall","src":"3970:46:13"}],"id":8103,"name":"Assignment","src":"3963:53:13"}],"id":8104,"name":"ExpressionStatement","src":"3963:53:13"}],"id":8105,"name":"Block","src":"3748:287:13"}],"id":8106,"name":"IfStatement","src":"3414:621:13"}],"id":8107,"name":"Block","src":"3319:730:13"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&&","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&&","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7979,"type":"bytes memory","value":"inBytes"},"id":8108,"name":"Identifier","src":"4060:7:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8025,"type":"uint256","value":"i"},"id":8109,"name":"Identifier","src":"4068:1:13"}],"id":8110,"name":"IndexAccess","src":"4060:10:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7928,"type":"bytes1","value":"_ZERO_ASCII"},"id":8111,"name":"Identifier","src":"4074:11:13"}],"id":8112,"name":"BinaryOperation","src":"4060:25:13"}],"id":8113,"name":"TupleExpression","src":"4059:27:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7979,"type":"bytes memory","value":"inBytes"},"id":8114,"name":"Identifier","src":"4091:7:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8025,"type":"uint256","value":"i"},"id":8115,"name":"Identifier","src":"4099:1:13"}],"id":8116,"name":"IndexAccess","src":"4091:10:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7933,"type":"bytes1","value":"_NINE_ASCII"},"id":8117,"name":"Identifier","src":"4105:11:13"}],"id":8118,"name":"BinaryOperation","src":"4091:25:13"}],"id":8119,"name":"TupleExpression","src":"4090:27:13"}],"id":8120,"name":"BinaryOperation","src":"4059:58:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8013,"type":"bool","value":"exp"},"id":8121,"name":"Identifier","src":"4122:3:13"}],"id":8122,"name":"TupleExpression","src":"4121:5:13"}],"id":8123,"name":"BinaryOperation","src":"4059:67:13"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7993,"type":"uint256","value":"mintExp"},"id":8124,"name":"Identifier","src":"4229:7:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"mul","referencedDeclaration":1133,"type":"function (uint256,uint256) pure returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7993,"type":"uint256","value":"mintExp"},"id":8125,"name":"Identifier","src":"4239:7:13"}],"id":8126,"name":"MemberAccess","src":"4239:11:13"},{"attributes":{"argumentTypes":null,"hexvalue":"3130","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 10","value":"10"},"id":8127,"name":"Literal","src":"4251:2:13"}],"id":8128,"name":"FunctionCall","src":"4239:15:13"}],"id":8129,"name":"Assignment","src":"4229:25:13"}],"id":8130,"name":"ExpressionStatement","src":"4229:25:13"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7993,"type":"uint256","value":"mintExp"},"id":8131,"name":"Identifier","src":"4272:7:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"add","referencedDeclaration":1205,"type":"function (uint256,uint256) pure returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7993,"type":"uint256","value":"mintExp"},"id":8132,"name":"Identifier","src":"4282:7:13"}],"id":8133,"name":"MemberAccess","src":"4282:11:13"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint"},"id":8134,"name":"ElementaryTypeNameExpression","src":"4294:4:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7979,"type":"bytes memory","value":"inBytes"},"id":8135,"name":"Identifier","src":"4299:7:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8025,"type":"uint256","value":"i"},"id":8136,"name":"Identifier","src":"4307:1:13"}],"id":8137,"name":"IndexAccess","src":"4299:10:13"}],"id":8138,"name":"FunctionCall","src":"4294:16:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint"},"id":8139,"name":"ElementaryTypeNameExpression","src":"4313:4:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7928,"type":"bytes1","value":"_ZERO_ASCII"},"id":8140,"name":"Identifier","src":"4318:11:13"}],"id":8141,"name":"FunctionCall","src":"4313:17:13"}],"id":8142,"name":"BinaryOperation","src":"4294:36:13"}],"id":8143,"name":"FunctionCall","src":"4282:49:13"}],"id":8144,"name":"Assignment","src":"4272:59:13"}],"id":8145,"name":"ExpressionStatement","src":"4272:59:13"}],"id":8146,"name":"Block","src":"4128:218:13"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7979,"type":"bytes memory","value":"inBytes"},"id":8147,"name":"Identifier","src":"4356:7:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8025,"type":"uint256","value":"i"},"id":8148,"name":"Identifier","src":"4364:1:13"}],"id":8149,"name":"IndexAccess","src":"4356:10:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7923,"type":"bytes1","value":"_DOT_ASCII"},"id":8150,"name":"Identifier","src":"4370:10:13"}],"id":8151,"name":"BinaryOperation","src":"4356:24:13"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_dc48b10531bbe78174fcd32830f069ab53734b829ba761f546093e1cc82044f9","typeString":"literal_string \"missing integral part\""}],"overloadedDeclarations":[12061,12062],"referencedDeclaration":12062,"type":"function (bool,string memory) pure","value":"require"},"id":8152,"name":"Identifier","src":"4473:7:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8005,"type":"bool","value":"integral"},"id":8153,"name":"Identifier","src":"4481:8:13"},{"attributes":{"argumentTypes":null,"hexvalue":"6d697373696e6720696e74656772616c2070617274","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"missing integral part\"","value":"missing integral part"},"id":8154,"name":"Literal","src":"4491:23:13"}],"id":8155,"name":"FunctionCall","src":"4473:42:13"}],"id":8156,"name":"ExpressionStatement","src":"4473:42:13"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_faa389cc400e7ca78bd15c3a29e23853df4262382ca0cceec80a1c591657d449","typeString":"literal_string \"duplicate decimal point\""}],"overloadedDeclarations":[12061,12062],"referencedDeclaration":12062,"type":"function (bool,string memory) pure","value":"require"},"id":8157,"name":"Identifier","src":"4600:7:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8009,"type":"bool","value":"decimals"},"id":8158,"name":"Identifier","src":"4609:8:13"}],"id":8159,"name":"UnaryOperation","src":"4608:9:13"},{"attributes":{"argumentTypes":null,"hexvalue":"6475706c696361746520646563696d616c20706f696e74","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"duplicate decimal point\"","value":"duplicate decimal point"},"id":8160,"name":"Literal","src":"4619:25:13"}],"id":8161,"name":"FunctionCall","src":"4600:45:13"}],"id":8162,"name":"ExpressionStatement","src":"4600:45:13"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8883756a1c35ace1de2a0992a35b0cd26b81e10ff40d67218af35e2d14d539dd","typeString":"literal_string \"decimal after exponent\""}],"overloadedDeclarations":[12061,12062],"referencedDeclaration":12062,"type":"function (bool,string memory) pure","value":"require"},"id":8163,"name":"Identifier","src":"4736:7:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8013,"type":"bool","value":"exp"},"id":8164,"name":"Identifier","src":"4745:3:13"}],"id":8165,"name":"UnaryOperation","src":"4744:4:13"},{"attributes":{"argumentTypes":null,"hexvalue":"646563696d616c206166746572206578706f6e656e74","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"decimal after exponent\"","value":"decimal after exponent"},"id":8166,"name":"Literal","src":"4750:24:13"}],"id":8167,"name":"FunctionCall","src":"4736:39:13"}],"id":8168,"name":"ExpressionStatement","src":"4736:39:13"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8009,"type":"bool","value":"decimals"},"id":8169,"name":"Identifier","src":"4793:8:13"},{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":8170,"name":"Literal","src":"4804:4:13"}],"id":8171,"name":"Assignment","src":"4793:15:13"}],"id":8172,"name":"ExpressionStatement","src":"4793:15:13"}],"id":8173,"name":"Block","src":"4382:441:13"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7979,"type":"bytes memory","value":"inBytes"},"id":8174,"name":"Identifier","src":"4833:7:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8025,"type":"uint256","value":"i"},"id":8175,"name":"Identifier","src":"4841:1:13"}],"id":8176,"name":"IndexAccess","src":"4833:10:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7918,"type":"bytes1","value":"_DASH_ASCII"},"id":8177,"name":"Identifier","src":"4847:11:13"}],"id":8178,"name":"BinaryOperation","src":"4833:25:13"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_fddc956a222b6104f304a9e26f8b7fd82d48f9d168c32972a3d2f6ffe06e8c4f","typeString":"literal_string \"duplicate -\""}],"overloadedDeclarations":[12061,12062],"referencedDeclaration":12062,"type":"function (bool,string memory) pure","value":"require"},"id":8179,"name":"Identifier","src":"4952:7:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8017,"type":"bool","value":"minus"},"id":8180,"name":"Identifier","src":"4961:5:13"}],"id":8181,"name":"UnaryOperation","src":"4960:6:13"},{"attributes":{"argumentTypes":null,"hexvalue":"6475706c6963617465202d","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"duplicate -\"","value":"duplicate -"},"id":8182,"name":"Literal","src":"4968:13:13"}],"id":8183,"name":"FunctionCall","src":"4952:30:13"}],"id":8184,"name":"ExpressionStatement","src":"4952:30:13"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_bab8ec0ce562a399c5e585804d653b1b054aeb400ff689348a971eba5722aac6","typeString":"literal_string \"extra sign\""}],"overloadedDeclarations":[12061,12062],"referencedDeclaration":12062,"type":"function (bool,string memory) pure","value":"require"},"id":8185,"name":"Identifier","src":"5000:7:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8021,"type":"bool","value":"plus"},"id":8186,"name":"Identifier","src":"5009:4:13"}],"id":8187,"name":"UnaryOperation","src":"5008:5:13"},{"attributes":{"argumentTypes":null,"hexvalue":"6578747261207369676e","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"extra sign\"","value":"extra sign"},"id":8188,"name":"Literal","src":"5015:12:13"}],"id":8189,"name":"FunctionCall","src":"5000:28:13"}],"id":8190,"name":"ExpressionStatement","src":"5000:28:13"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_08b50295d4c3982734373058e6c6cc20446016e7f4adb2988978b0977d838340","typeString":"literal_string \"- sign not immediately after e\""}],"overloadedDeclarations":[12061,12062],"referencedDeclaration":12062,"type":"function (bool,string memory) pure","value":"require"},"id":8191,"name":"Identifier","src":"5046:7:13"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8001,"type":"uint256","value":"expIndex"},"id":8192,"name":"Identifier","src":"5054:8:13"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":8193,"name":"Literal","src":"5065:1:13"}],"id":8194,"name":"BinaryOperation","src":"5054:12:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8025,"type":"uint256","value":"i"},"id":8195,"name":"Identifier","src":"5070:1:13"}],"id":8196,"name":"BinaryOperation","src":"5054:17:13"},{"attributes":{"argumentTypes":null,"hexvalue":"2d207369676e206e6f7420696d6d6564696174656c792061667465722065","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"- sign not immediately after e\"","value":"- sign not immediately after e"},"id":8197,"name":"Literal","src":"5073:32:13"}],"id":8198,"name":"FunctionCall","src":"5046:60:13"}],"id":8199,"name":"ExpressionStatement","src":"5046:60:13"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8017,"type":"bool","value":"minus"},"id":8200,"name":"Identifier","src":"5124:5:13"},{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":8201,"name":"Literal","src":"5132:4:13"}],"id":8202,"name":"Assignment","src":"5124:12:13"}],"id":8203,"name":"ExpressionStatement","src":"5124:12:13"}],"id":8204,"name":"Block","src":"4860:291:13"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7979,"type":"bytes memory","value":"inBytes"},"id":8205,"name":"Identifier","src":"5161:7:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8025,"type":"uint256","value":"i"},"id":8206,"name":"Identifier","src":"5169:1:13"}],"id":8207,"name":"IndexAccess","src":"5161:10:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7913,"type":"bytes1","value":"_PLUS_ASCII"},"id":8208,"name":"Identifier","src":"5175:11:13"}],"id":8209,"name":"BinaryOperation","src":"5161:25:13"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9fb5f98f55e56ac8a60ebdeabdabc0be14716c6a604a48c04783fed56a7e93a9","typeString":"literal_string \"duplicate +\""}],"overloadedDeclarations":[12061,12062],"referencedDeclaration":12062,"type":"function (bool,string memory) pure","value":"require"},"id":8210,"name":"Identifier","src":"5280:7:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8021,"type":"bool","value":"plus"},"id":8211,"name":"Identifier","src":"5289:4:13"}],"id":8212,"name":"UnaryOperation","src":"5288:5:13"},{"attributes":{"argumentTypes":null,"hexvalue":"6475706c6963617465202b","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"duplicate +\"","value":"duplicate +"},"id":8213,"name":"Literal","src":"5295:13:13"}],"id":8214,"name":"FunctionCall","src":"5280:29:13"}],"id":8215,"name":"ExpressionStatement","src":"5280:29:13"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_bab8ec0ce562a399c5e585804d653b1b054aeb400ff689348a971eba5722aac6","typeString":"literal_string \"extra sign\""}],"overloadedDeclarations":[12061,12062],"referencedDeclaration":12062,"type":"function (bool,string memory) pure","value":"require"},"id":8216,"name":"Identifier","src":"5327:7:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8017,"type":"bool","value":"minus"},"id":8217,"name":"Identifier","src":"5336:5:13"}],"id":8218,"name":"UnaryOperation","src":"5335:6:13"},{"attributes":{"argumentTypes":null,"hexvalue":"6578747261207369676e","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"extra sign\"","value":"extra sign"},"id":8219,"name":"Literal","src":"5343:12:13"}],"id":8220,"name":"FunctionCall","src":"5327:29:13"}],"id":8221,"name":"ExpressionStatement","src":"5327:29:13"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0b6894ec12a87b2f0d7040decb56cfcd2617efb2e364cbbbf577d371ad72c6fc","typeString":"literal_string \"+ sign not immediately after e\""}],"overloadedDeclarations":[12061,12062],"referencedDeclaration":12062,"type":"function (bool,string memory) pure","value":"require"},"id":8222,"name":"Identifier","src":"5374:7:13"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8001,"type":"uint256","value":"expIndex"},"id":8223,"name":"Identifier","src":"5382:8:13"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":8224,"name":"Literal","src":"5393:1:13"}],"id":8225,"name":"BinaryOperation","src":"5382:12:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8025,"type":"uint256","value":"i"},"id":8226,"name":"Identifier","src":"5398:1:13"}],"id":8227,"name":"BinaryOperation","src":"5382:17:13"},{"attributes":{"argumentTypes":null,"hexvalue":"2b207369676e206e6f7420696d6d6564696174656c792061667465722065","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"+ sign not immediately after e\"","value":"+ sign not immediately after e"},"id":8228,"name":"Literal","src":"5401:32:13"}],"id":8229,"name":"FunctionCall","src":"5374:60:13"}],"id":8230,"name":"ExpressionStatement","src":"5374:60:13"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8021,"type":"bool","value":"plus"},"id":8231,"name":"Identifier","src":"5452:4:13"},{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":8232,"name":"Literal","src":"5459:4:13"}],"id":8233,"name":"Assignment","src":"5452:11:13"}],"id":8234,"name":"ExpressionStatement","src":"5452:11:13"}],"id":8235,"name":"Block","src":"5188:290:13"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"||","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7979,"type":"bytes memory","value":"inBytes"},"id":8236,"name":"Identifier","src":"5489:7:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8025,"type":"uint256","value":"i"},"id":8237,"name":"Identifier","src":"5497:1:13"}],"id":8238,"name":"IndexAccess","src":"5489:10:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7938,"type":"bytes1","value":"_E_ASCII"},"id":8239,"name":"Identifier","src":"5503:8:13"}],"id":8240,"name":"BinaryOperation","src":"5489:22:13"}],"id":8241,"name":"TupleExpression","src":"5488:24:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7979,"type":"bytes memory","value":"inBytes"},"id":8242,"name":"Identifier","src":"5517:7:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8025,"type":"uint256","value":"i"},"id":8243,"name":"Identifier","src":"5525:1:13"}],"id":8244,"name":"IndexAccess","src":"5517:10:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7943,"type":"bytes1","value":"_LOWERCASE_E_ASCII"},"id":8245,"name":"Identifier","src":"5531:18:13"}],"id":8246,"name":"BinaryOperation","src":"5517:32:13"}],"id":8247,"name":"TupleExpression","src":"5516:34:13"}],"id":8248,"name":"BinaryOperation","src":"5488:62:13"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_dc48b10531bbe78174fcd32830f069ab53734b829ba761f546093e1cc82044f9","typeString":"literal_string \"missing integral part\""}],"overloadedDeclarations":[12061,12062],"referencedDeclaration":12062,"type":"function (bool,string memory) pure","value":"require"},"id":8249,"name":"Identifier","src":"5643:7:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8005,"type":"bool","value":"integral"},"id":8250,"name":"Identifier","src":"5651:8:13"},{"attributes":{"argumentTypes":null,"hexvalue":"6d697373696e6720696e74656772616c2070617274","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"missing integral part\"","value":"missing integral part"},"id":8251,"name":"Literal","src":"5661:23:13"}],"id":8252,"name":"FunctionCall","src":"5643:42:13"}],"id":8253,"name":"ExpressionStatement","src":"5643:42:13"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8221306681a4710f7101aebec1a9ed39a02e65f2053accb8da82a8b8d265178b","typeString":"literal_string \"duplicate exponent symbol\""}],"overloadedDeclarations":[12061,12062],"referencedDeclaration":12062,"type":"function (bool,string memory) pure","value":"require"},"id":8254,"name":"Identifier","src":"5784:7:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8013,"type":"bool","value":"exp"},"id":8255,"name":"Identifier","src":"5793:3:13"}],"id":8256,"name":"UnaryOperation","src":"5792:4:13"},{"attributes":{"argumentTypes":null,"hexvalue":"6475706c6963617465206578706f6e656e742073796d626f6c","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"duplicate exponent symbol\"","value":"duplicate exponent symbol"},"id":8257,"name":"Literal","src":"5798:27:13"}],"id":8258,"name":"FunctionCall","src":"5784:42:13"}],"id":8259,"name":"ExpressionStatement","src":"5784:42:13"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8013,"type":"bool","value":"exp"},"id":8260,"name":"Identifier","src":"5844:3:13"},{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":8261,"name":"Literal","src":"5850:4:13"}],"id":8262,"name":"Assignment","src":"5844:10:13"}],"id":8263,"name":"ExpressionStatement","src":"5844:10:13"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8001,"type":"uint256","value":"expIndex"},"id":8264,"name":"Identifier","src":"5872:8:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8025,"type":"uint256","value":"i"},"id":8265,"name":"Identifier","src":"5883:1:13"}],"id":8266,"name":"Assignment","src":"5872:12:13"}],"id":8267,"name":"ExpressionStatement","src":"5872:12:13"}],"id":8268,"name":"Block","src":"5552:347:13"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_263e499057963449b94813024f498810f3a67efd8a4e3f85263ed86cf4c882d4","typeString":"literal_string \"invalid digit\""}],"overloadedDeclarations":[12063,12064],"referencedDeclaration":12064,"type":"function (string memory) pure","value":"revert"},"id":8269,"name":"Identifier","src":"5923:6:13"},{"attributes":{"argumentTypes":null,"hexvalue":"696e76616c6964206469676974","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"invalid digit\"","value":"invalid digit"},"id":8270,"name":"Literal","src":"5930:15:13"}],"id":8271,"name":"FunctionCall","src":"5923:23:13"}],"id":8272,"name":"ExpressionStatement","src":"5923:23:13"}],"id":8273,"name":"Block","src":"5905:56:13"}],"id":8274,"name":"IfStatement","src":"5484:477:13"}],"id":8275,"name":"IfStatement","src":"5157:804:13"}],"id":8276,"name":"IfStatement","src":"4829:1132:13"}],"id":8277,"name":"IfStatement","src":"4352:1609:13"}],"id":8278,"name":"IfStatement","src":"4055:1906:13"}],"id":8279,"name":"IfStatement","src":"3245:2716:13"}],"id":8280,"name":"Block","src":"3231:2740:13"}],"id":8281,"name":"ForStatement","src":"3189:2782:13"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"||","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8017,"type":"bool","value":"minus"},"id":8282,"name":"Identifier","src":"5985:5:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8021,"type":"bool","value":"plus"},"id":8283,"name":"Identifier","src":"5994:4:13"}],"id":8284,"name":"BinaryOperation","src":"5985:13:13"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"overloadedDeclarations":[12061,12062],"referencedDeclaration":12061,"type":"function (bool) pure","value":"require"},"id":8285,"name":"Identifier","src":"6082:7:13"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8025,"type":"uint256","value":"i"},"id":8286,"name":"Identifier","src":"6090:1:13"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8001,"type":"uint256","value":"expIndex"},"id":8287,"name":"Identifier","src":"6094:8:13"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":8288,"name":"Literal","src":"6105:1:13"}],"id":8289,"name":"BinaryOperation","src":"6094:12:13"}],"id":8290,"name":"BinaryOperation","src":"6090:16:13"}],"id":8291,"name":"FunctionCall","src":"6082:25:13"}],"id":8292,"name":"ExpressionStatement","src":"6082:25:13"}],"id":8293,"name":"Block","src":"6000:118:13"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8013,"type":"bool","value":"exp"},"id":8294,"name":"Identifier","src":"6128:3:13"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"overloadedDeclarations":[12061,12062],"referencedDeclaration":12061,"type":"function (bool) pure","value":"require"},"id":8295,"name":"Identifier","src":"6212:7:13"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8025,"type":"uint256","value":"i"},"id":8296,"name":"Identifier","src":"6220:1:13"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8001,"type":"uint256","value":"expIndex"},"id":8297,"name":"Identifier","src":"6224:8:13"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":8298,"name":"Literal","src":"6235:1:13"}],"id":8299,"name":"BinaryOperation","src":"6224:12:13"}],"id":8300,"name":"BinaryOperation","src":"6220:16:13"}],"id":8301,"name":"FunctionCall","src":"6212:25:13"}],"id":8302,"name":"ExpressionStatement","src":"6212:25:13"}],"id":8303,"name":"Block","src":"6133:115:13"}],"id":8304,"name":"IfStatement","src":"6124:124:13"}],"id":8305,"name":"IfStatement","src":"5981:267:13"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8017,"type":"bool","value":"minus"},"id":8306,"name":"Identifier","src":"6262:5:13"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7993,"type":"uint256","value":"mintExp"},"id":8307,"name":"Identifier","src":"6309:7:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7973,"type":"uint256","value":"_magnitudeMult"},"id":8308,"name":"Identifier","src":"6320:14:13"}],"id":8309,"name":"BinaryOperation","src":"6309:25:13"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f98424152698a23aa5d00b5ca124c02ac74940e78996da7992f427dbf3c7fbaa","typeString":"literal_string \"exponent > 77\""}],"overloadedDeclarations":[12061,12062],"referencedDeclaration":12062,"type":"function (bool,string memory) pure","value":"require"},"id":8310,"name":"Identifier","src":"6518:7:13"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7993,"type":"uint256","value":"mintExp"},"id":8311,"name":"Identifier","src":"6526:7:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7973,"type":"uint256","value":"_magnitudeMult"},"id":8312,"name":"Identifier","src":"6536:14:13"}],"id":8313,"name":"BinaryOperation","src":"6526:24:13"},{"attributes":{"argumentTypes":null,"hexvalue":"3738","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 78","value":"78"},"id":8314,"name":"Literal","src":"6553:2:13"}],"id":8315,"name":"BinaryOperation","src":"6526:29:13"},{"attributes":{"argumentTypes":null,"hexvalue":"6578706f6e656e74203e203737","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"exponent > 77\"","value":"exponent > 77"},"id":8316,"name":"Literal","src":"6557:15:13"}],"id":8317,"name":"FunctionCall","src":"6518:55:13"}],"id":8318,"name":"ExpressionStatement","src":"6518:55:13"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"/=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7985,"type":"uint256","value":"mint"},"id":8319,"name":"Identifier","src":"6594:4:13"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"**","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3130","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 10","value":"10"},"id":8320,"name":"Literal","src":"6602:2:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7993,"type":"uint256","value":"mintExp"},"id":8321,"name":"Identifier","src":"6609:7:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7973,"type":"uint256","value":"_magnitudeMult"},"id":8322,"name":"Identifier","src":"6619:14:13"}],"id":8323,"name":"BinaryOperation","src":"6609:24:13"}],"id":8324,"name":"TupleExpression","src":"6608:26:13"}],"id":8325,"name":"BinaryOperation","src":"6602:32:13"}],"id":8326,"name":"Assignment","src":"6594:40:13"}],"id":8327,"name":"ExpressionStatement","src":"6594:40:13"},{"attributes":{"functionReturnParameters":7977},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7985,"type":"uint256","value":"mint"},"id":8328,"name":"Identifier","src":"6659:4:13"}],"id":8329,"name":"Return","src":"6652:11:13"}],"id":8330,"name":"Block","src":"6336:343:13"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7973,"type":"uint256","value":"_magnitudeMult"},"id":8331,"name":"Identifier","src":"6849:14:13"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7973,"type":"uint256","value":"_magnitudeMult"},"id":8332,"name":"Identifier","src":"6866:14:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7993,"type":"uint256","value":"mintExp"},"id":8333,"name":"Identifier","src":"6883:7:13"}],"id":8334,"name":"BinaryOperation","src":"6866:24:13"}],"id":8335,"name":"Assignment","src":"6849:41:13"}],"id":8336,"name":"ExpressionStatement","src":"6849:41:13"}],"id":8337,"name":"Block","src":"6685:220:13"}],"id":8338,"name":"IfStatement","src":"6305:600:13"}],"id":8339,"name":"Block","src":"6269:646:13"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7973,"type":"uint256","value":"_magnitudeMult"},"id":8340,"name":"Identifier","src":"7089:14:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"add","referencedDeclaration":1205,"type":"function (uint256,uint256) pure returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7973,"type":"uint256","value":"_magnitudeMult"},"id":8341,"name":"Identifier","src":"7106:14:13"}],"id":8342,"name":"MemberAccess","src":"7106:18:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7993,"type":"uint256","value":"mintExp"},"id":8343,"name":"Identifier","src":"7125:7:13"}],"id":8344,"name":"FunctionCall","src":"7106:27:13"}],"id":8345,"name":"Assignment","src":"7089:44:13"}],"id":8346,"name":"ExpressionStatement","src":"7089:44:13"}],"id":8347,"name":"Block","src":"6921:223:13"}],"id":8348,"name":"IfStatement","src":"6258:886:13"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7973,"type":"uint256","value":"_magnitudeMult"},"id":8349,"name":"Identifier","src":"7158:14:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7997,"type":"uint256","value":"decMinted"},"id":8350,"name":"Identifier","src":"7176:9:13"}],"id":8351,"name":"BinaryOperation","src":"7158:27:13"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_545d4fd2fc2d29577ea509f1f1de73a3a1e163ebbff71e310c3e36a13d2fa3fb","typeString":"literal_string \"more than 77 decimal digits parsed\""}],"overloadedDeclarations":[12061,12062],"referencedDeclaration":12062,"type":"function (bool,string memory) pure","value":"require"},"id":8352,"name":"Identifier","src":"7406:7:13"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7997,"type":"uint256","value":"decMinted"},"id":8353,"name":"Identifier","src":"7414:9:13"},{"attributes":{"argumentTypes":null,"hexvalue":"3738","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 78","value":"78"},"id":8354,"name":"Literal","src":"7426:2:13"}],"id":8355,"name":"BinaryOperation","src":"7414:14:13"},{"attributes":{"argumentTypes":null,"hexvalue":"6d6f7265207468616e20373720646563696d616c2064696769747320706172736564","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"more than 77 decimal digits parsed\"","value":"more than 77 decimal digits parsed"},"id":8356,"name":"Literal","src":"7430:36:13"}],"id":8357,"name":"FunctionCall","src":"7406:61:13"}],"id":8358,"name":"ExpressionStatement","src":"7406:61:13"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7985,"type":"uint256","value":"mint"},"id":8359,"name":"Identifier","src":"7484:4:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"mul","referencedDeclaration":1133,"type":"function (uint256,uint256) pure returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7985,"type":"uint256","value":"mint"},"id":8360,"name":"Identifier","src":"7491:4:13"}],"id":8361,"name":"MemberAccess","src":"7491:8:13"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"**","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3130","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 10","value":"10"},"id":8362,"name":"Literal","src":"7500:2:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7997,"type":"uint256","value":"decMinted"},"id":8363,"name":"Identifier","src":"7507:9:13"}],"id":8364,"name":"TupleExpression","src":"7506:11:13"}],"id":8365,"name":"BinaryOperation","src":"7500:17:13"}],"id":8366,"name":"FunctionCall","src":"7491:27:13"}],"id":8367,"name":"Assignment","src":"7484:34:13"}],"id":8368,"name":"ExpressionStatement","src":"7484:34:13"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7985,"type":"uint256","value":"mint"},"id":8369,"name":"Identifier","src":"7532:4:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"add","referencedDeclaration":1205,"type":"function (uint256,uint256) pure returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7985,"type":"uint256","value":"mint"},"id":8370,"name":"Identifier","src":"7539:4:13"}],"id":8371,"name":"MemberAccess","src":"7539:8:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7989,"type":"uint256","value":"mintDec"},"id":8372,"name":"Identifier","src":"7548:7:13"}],"id":8373,"name":"FunctionCall","src":"7539:17:13"}],"id":8374,"name":"Assignment","src":"7532:24:13"}],"id":8375,"name":"ExpressionStatement","src":"7532:24:13"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f98424152698a23aa5d00b5ca124c02ac74940e78996da7992f427dbf3c7fbaa","typeString":"literal_string \"exponent > 77\""}],"overloadedDeclarations":[12061,12062],"referencedDeclaration":12062,"type":"function (bool,string memory) pure","value":"require"},"id":8376,"name":"Identifier","src":"7656:7:13"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7973,"type":"uint256","value":"_magnitudeMult"},"id":8377,"name":"Identifier","src":"7664:14:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7997,"type":"uint256","value":"decMinted"},"id":8378,"name":"Identifier","src":"7681:9:13"}],"id":8379,"name":"BinaryOperation","src":"7664:26:13"},{"attributes":{"argumentTypes":null,"hexvalue":"3738","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 78","value":"78"},"id":8380,"name":"Literal","src":"7693:2:13"}],"id":8381,"name":"BinaryOperation","src":"7664:31:13"},{"attributes":{"argumentTypes":null,"hexvalue":"6578706f6e656e74203e203737","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"exponent > 77\"","value":"exponent > 77"},"id":8382,"name":"Literal","src":"7697:15:13"}],"id":8383,"name":"FunctionCall","src":"7656:57:13"}],"id":8384,"name":"ExpressionStatement","src":"7656:57:13"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7985,"type":"uint256","value":"mint"},"id":8385,"name":"Identifier","src":"7730:4:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"mul","referencedDeclaration":1133,"type":"function (uint256,uint256) pure returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7985,"type":"uint256","value":"mint"},"id":8386,"name":"Identifier","src":"7737:4:13"}],"id":8387,"name":"MemberAccess","src":"7737:8:13"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"**","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3130","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 10","value":"10"},"id":8388,"name":"Literal","src":"7746:2:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7973,"type":"uint256","value":"_magnitudeMult"},"id":8389,"name":"Identifier","src":"7753:14:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7997,"type":"uint256","value":"decMinted"},"id":8390,"name":"Identifier","src":"7770:9:13"}],"id":8391,"name":"BinaryOperation","src":"7753:26:13"}],"id":8392,"name":"TupleExpression","src":"7752:28:13"}],"id":8393,"name":"BinaryOperation","src":"7746:34:13"}],"id":8394,"name":"FunctionCall","src":"7737:44:13"}],"id":8395,"name":"Assignment","src":"7730:51:13"}],"id":8396,"name":"ExpressionStatement","src":"7730:51:13"}],"id":8397,"name":"Block","src":"7187:605:13"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7997,"type":"uint256","value":"decMinted"},"id":8398,"name":"Identifier","src":"7939:9:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7973,"type":"uint256","value":"_magnitudeMult"},"id":8399,"name":"Identifier","src":"7952:14:13"}],"id":8400,"name":"Assignment","src":"7939:27:13"}],"id":8401,"name":"ExpressionStatement","src":"7939:27:13"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_545d4fd2fc2d29577ea509f1f1de73a3a1e163ebbff71e310c3e36a13d2fa3fb","typeString":"literal_string \"more than 77 decimal digits parsed\""}],"overloadedDeclarations":[12061,12062],"referencedDeclaration":12062,"type":"function (bool,string memory) pure","value":"require"},"id":8402,"name":"Identifier","src":"7980:7:13"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7997,"type":"uint256","value":"decMinted"},"id":8403,"name":"Identifier","src":"7988:9:13"},{"attributes":{"argumentTypes":null,"hexvalue":"3738","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 78","value":"78"},"id":8404,"name":"Literal","src":"8000:2:13"}],"id":8405,"name":"BinaryOperation","src":"7988:14:13"},{"attributes":{"argumentTypes":null,"hexvalue":"6d6f7265207468616e20373720646563696d616c2064696769747320706172736564","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"more than 77 decimal digits parsed\"","value":"more than 77 decimal digits parsed"},"id":8406,"name":"Literal","src":"8004:36:13"}],"id":8407,"name":"FunctionCall","src":"7980:61:13"}],"id":8408,"name":"ExpressionStatement","src":"7980:61:13"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"/=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7989,"type":"uint256","value":"mintDec"},"id":8409,"name":"Identifier","src":"8058:7:13"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"**","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3130","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 10","value":"10"},"id":8410,"name":"Literal","src":"8069:2:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7997,"type":"uint256","value":"decMinted"},"id":8411,"name":"Identifier","src":"8076:9:13"}],"id":8412,"name":"TupleExpression","src":"8075:11:13"}],"id":8413,"name":"BinaryOperation","src":"8069:17:13"}],"id":8414,"name":"Assignment","src":"8058:28:13"}],"id":8415,"name":"ExpressionStatement","src":"8058:28:13"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_545d4fd2fc2d29577ea509f1f1de73a3a1e163ebbff71e310c3e36a13d2fa3fb","typeString":"literal_string \"more than 77 decimal digits parsed\""}],"overloadedDeclarations":[12061,12062],"referencedDeclaration":12062,"type":"function (bool,string memory) pure","value":"require"},"id":8416,"name":"Identifier","src":"8160:7:13"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7973,"type":"uint256","value":"_magnitudeMult"},"id":8417,"name":"Identifier","src":"8168:14:13"},{"attributes":{"argumentTypes":null,"hexvalue":"3738","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 78","value":"78"},"id":8418,"name":"Literal","src":"8185:2:13"}],"id":8419,"name":"BinaryOperation","src":"8168:19:13"},{"attributes":{"argumentTypes":null,"hexvalue":"6d6f7265207468616e20373720646563696d616c2064696769747320706172736564","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"more than 77 decimal digits parsed\"","value":"more than 77 decimal digits parsed"},"id":8420,"name":"Literal","src":"8189:36:13"}],"id":8421,"name":"FunctionCall","src":"8160:66:13"}],"id":8422,"name":"ExpressionStatement","src":"8160:66:13"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7985,"type":"uint256","value":"mint"},"id":8423,"name":"Identifier","src":"8243:4:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"mul","referencedDeclaration":1133,"type":"function (uint256,uint256) pure returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7985,"type":"uint256","value":"mint"},"id":8424,"name":"Identifier","src":"8250:4:13"}],"id":8425,"name":"MemberAccess","src":"8250:8:13"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"**","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3130","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 10","value":"10"},"id":8426,"name":"Literal","src":"8259:2:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7973,"type":"uint256","value":"_magnitudeMult"},"id":8427,"name":"Identifier","src":"8266:14:13"}],"id":8428,"name":"TupleExpression","src":"8265:16:13"}],"id":8429,"name":"BinaryOperation","src":"8259:22:13"}],"id":8430,"name":"FunctionCall","src":"8250:32:13"}],"id":8431,"name":"Assignment","src":"8243:39:13"}],"id":8432,"name":"ExpressionStatement","src":"8243:39:13"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7985,"type":"uint256","value":"mint"},"id":8433,"name":"Identifier","src":"8296:4:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"add","referencedDeclaration":1205,"type":"function (uint256,uint256) pure returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7985,"type":"uint256","value":"mint"},"id":8434,"name":"Identifier","src":"8303:4:13"}],"id":8435,"name":"MemberAccess","src":"8303:8:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7989,"type":"uint256","value":"mintDec"},"id":8436,"name":"Identifier","src":"8312:7:13"}],"id":8437,"name":"FunctionCall","src":"8303:17:13"}],"id":8438,"name":"Assignment","src":"8296:24:13"}],"id":8439,"name":"ExpressionStatement","src":"8296:24:13"}],"id":8440,"name":"Block","src":"7798:533:13"}],"id":8441,"name":"IfStatement","src":"7154:1177:13"},{"attributes":{"functionReturnParameters":7977},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7985,"type":"uint256","value":"mint"},"id":8442,"name":"Identifier","src":"8348:4:13"}],"id":8443,"name":"Return","src":"8341:11:13"}],"id":8444,"name":"Block","src":"2340:6019:13"}],"id":8445,"name":"FunctionDefinition","src":"2243:6116:13"}],"id":8446,"name":"ContractDefinition","src":"952:7409:13"}],"id":8447,"name":"SourceUnit","src":"777:7585:13"}},"internals/tokenWhitelist.sol":{"AST":{"attributes":{"absolutePath":"internals/tokenWhitelist.sol","exportedSymbols":{"ITokenWhitelist":[9678],"TokenWhitelist":[10191]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".25"]},"id":9616,"name":"PragmaDirective","src":"774:24:14"},{"attributes":{"SourceUnit":10349,"absolutePath":"internals/ownable.sol","file":"./ownable.sol","scope":10192,"symbolAliases":[null],"unitAlias":""},"id":9617,"name":"ImportDirective","src":"800:23:14"},{"attributes":{"SourceUnit":7683,"absolutePath":"internals/controllable.sol","file":"./controllable.sol","scope":10192,"symbolAliases":[null],"unitAlias":""},"id":9618,"name":"ImportDirective","src":"824:28:14"},{"attributes":{"SourceUnit":7627,"absolutePath":"internals/claimable.sol","file":"./claimable.sol","scope":10192,"symbolAliases":[null],"unitAlias":""},"id":9619,"name":"ImportDirective","src":"853:25:14"},{"attributes":{"SourceUnit":12044,"absolutePath":"externals/strings.sol","file":"../externals/strings.sol","scope":10192,"symbolAliases":[null],"unitAlias":""},"id":9620,"name":"ImportDirective","src":"879:34:14"},{"attributes":{"SourceUnit":1227,"absolutePath":"externals/SafeMath.sol","file":"../externals/SafeMath.sol","scope":10192,"symbolAliases":[null],"unitAlias":""},"id":9621,"name":"ImportDirective","src":"914:35:14"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"interface","documentation":"@title The ITokenWhitelist interface provides access to a whitelist of tokens.","fullyImplemented":false,"linearizedBaseContracts":[9678],"name":"ITokenWhitelist","scope":10192},"children":[{"attributes":{"body":null,"constant":true,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"getTokenInfo","payable":false,"scope":9678,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"","scope":9640,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":9622,"name":"ElementaryTypeName","src":"1088:7:14"}],"id":9623,"name":"VariableDeclaration","src":"1088:7:14"}],"id":9624,"name":"ParameterList","src":"1087:9:14"},{"children":[{"attributes":{"constant":false,"name":"","scope":9640,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":9625,"name":"ElementaryTypeName","src":"1120:6:14"}],"id":9626,"name":"VariableDeclaration","src":"1120:6:14"},{"attributes":{"constant":false,"name":"","scope":9640,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":9627,"name":"ElementaryTypeName","src":"1128:7:14"}],"id":9628,"name":"VariableDeclaration","src":"1128:7:14"},{"attributes":{"constant":false,"name":"","scope":9640,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":9629,"name":"ElementaryTypeName","src":"1137:7:14"}],"id":9630,"name":"VariableDeclaration","src":"1137:7:14"},{"attributes":{"constant":false,"name":"","scope":9640,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":9631,"name":"ElementaryTypeName","src":"1146:4:14"}],"id":9632,"name":"VariableDeclaration","src":"1146:4:14"},{"attributes":{"constant":false,"name":"","scope":9640,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":9633,"name":"ElementaryTypeName","src":"1152:4:14"}],"id":9634,"name":"VariableDeclaration","src":"1152:4:14"},{"attributes":{"constant":false,"name":"","scope":9640,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":9635,"name":"ElementaryTypeName","src":"1158:4:14"}],"id":9636,"name":"VariableDeclaration","src":"1158:4:14"},{"attributes":{"constant":false,"name":"","scope":9640,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":9637,"name":"ElementaryTypeName","src":"1164:7:14"}],"id":9638,"name":"VariableDeclaration","src":"1164:7:14"}],"id":9639,"name":"ParameterList","src":"1119:53:14"}],"id":9640,"name":"FunctionDefinition","src":"1066:107:14"},{"attributes":{"body":null,"constant":true,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"getStablecoinInfo","payable":false,"scope":9678,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":9641,"name":"ParameterList","src":"1204:2:14"},{"children":[{"attributes":{"constant":false,"name":"","scope":9657,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":9642,"name":"ElementaryTypeName","src":"1230:6:14"}],"id":9643,"name":"VariableDeclaration","src":"1230:6:14"},{"attributes":{"constant":false,"name":"","scope":9657,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":9644,"name":"ElementaryTypeName","src":"1238:7:14"}],"id":9645,"name":"VariableDeclaration","src":"1238:7:14"},{"attributes":{"constant":false,"name":"","scope":9657,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":9646,"name":"ElementaryTypeName","src":"1247:7:14"}],"id":9647,"name":"VariableDeclaration","src":"1247:7:14"},{"attributes":{"constant":false,"name":"","scope":9657,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":9648,"name":"ElementaryTypeName","src":"1256:4:14"}],"id":9649,"name":"VariableDeclaration","src":"1256:4:14"},{"attributes":{"constant":false,"name":"","scope":9657,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":9650,"name":"ElementaryTypeName","src":"1262:4:14"}],"id":9651,"name":"VariableDeclaration","src":"1262:4:14"},{"attributes":{"constant":false,"name":"","scope":9657,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":9652,"name":"ElementaryTypeName","src":"1268:4:14"}],"id":9653,"name":"VariableDeclaration","src":"1268:4:14"},{"attributes":{"constant":false,"name":"","scope":9657,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":9654,"name":"ElementaryTypeName","src":"1274:7:14"}],"id":9655,"name":"VariableDeclaration","src":"1274:7:14"}],"id":9656,"name":"ParameterList","src":"1229:53:14"}],"id":9657,"name":"FunctionDefinition","src":"1178:105:14"},{"attributes":{"body":null,"constant":true,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"tokenAddressArray","payable":false,"scope":9678,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":9658,"name":"ParameterList","src":"1314:2:14"},{"children":[{"attributes":{"constant":false,"name":"","scope":9663,"stateVariable":false,"storageLocation":"default","type":"address[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"address[]"},"children":[{"attributes":{"name":"address","type":"address"},"id":9659,"name":"ElementaryTypeName","src":"1340:7:14"}],"id":9660,"name":"ArrayTypeName","src":"1340:9:14"}],"id":9661,"name":"VariableDeclaration","src":"1340:9:14"}],"id":9662,"name":"ParameterList","src":"1339:11:14"}],"id":9663,"name":"FunctionDefinition","src":"1288:63:14"},{"attributes":{"body":null,"constant":false,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"updateTokenRate","payable":false,"scope":9678,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"","scope":9672,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":9664,"name":"ElementaryTypeName","src":"1381:7:14"}],"id":9665,"name":"VariableDeclaration","src":"1381:7:14"},{"attributes":{"constant":false,"name":"","scope":9672,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":9666,"name":"ElementaryTypeName","src":"1390:4:14"}],"id":9667,"name":"VariableDeclaration","src":"1390:4:14"},{"attributes":{"constant":false,"name":"","scope":9672,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":9668,"name":"ElementaryTypeName","src":"1396:4:14"}],"id":9669,"name":"VariableDeclaration","src":"1396:4:14"}],"id":9670,"name":"ParameterList","src":"1380:21:14"},{"attributes":{"parameters":[null]},"children":[],"id":9671,"name":"ParameterList","src":"1410:0:14"}],"id":9672,"name":"FunctionDefinition","src":"1356:55:14"},{"attributes":{"body":null,"constant":true,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"stablecoin","payable":false,"scope":9678,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":9673,"name":"ParameterList","src":"1435:2:14"},{"children":[{"attributes":{"constant":false,"name":"","scope":9677,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":9674,"name":"ElementaryTypeName","src":"1461:7:14"}],"id":9675,"name":"VariableDeclaration","src":"1461:7:14"}],"id":9676,"name":"ParameterList","src":"1460:9:14"}],"id":9677,"name":"FunctionDefinition","src":"1416:54:14"}],"id":9678,"name":"ContractDefinition","src":"1034:438:14"},{"attributes":{"contractDependencies":[7626,7682,7902,10348],"contractKind":"contract","documentation":"@title TokenWhitelist stores a list of tokens used by the Consumer Contract Wallet, the Oracle, the TKN Holder and the TKN Licence Contract","fullyImplemented":true,"linearizedBaseContracts":[10191,7626,10348,7682,7902],"name":"TokenWhitelist","scope":10192},"children":[{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"ENSResolvable","referencedDeclaration":7902,"type":"contract ENSResolvable"},"id":9679,"name":"UserDefinedTypeName","src":"1646:13:14"}],"id":9680,"name":"InheritanceSpecifier","src":"1646:13:14"},{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"Controllable","referencedDeclaration":7682,"type":"contract Controllable"},"id":9681,"name":"UserDefinedTypeName","src":"1661:12:14"}],"id":9682,"name":"InheritanceSpecifier","src":"1661:12:14"},{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"Ownable","referencedDeclaration":10348,"type":"contract Ownable"},"id":9683,"name":"UserDefinedTypeName","src":"1675:7:14"}],"id":9684,"name":"InheritanceSpecifier","src":"1675:7:14"},{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"Claimable","referencedDeclaration":7626,"type":"contract Claimable"},"id":9685,"name":"UserDefinedTypeName","src":"1684:9:14"}],"id":9686,"name":"InheritanceSpecifier","src":"1684:9:14"},{"attributes":{"typeName":null},"children":[{"attributes":{"contractScope":null,"name":"strings","referencedDeclaration":12043,"type":"library strings"},"id":9687,"name":"UserDefinedTypeName","src":"1706:7:14"}],"id":9688,"name":"UsingForDirective","src":"1700:20:14"},{"children":[{"attributes":{"contractScope":null,"name":"SafeMath","referencedDeclaration":1226,"type":"library SafeMath"},"id":9689,"name":"UserDefinedTypeName","src":"1731:8:14"},{"attributes":{"name":"uint256","type":"uint256"},"id":9690,"name":"ElementaryTypeName","src":"1744:7:14"}],"id":9691,"name":"UsingForDirective","src":"1725:27:14"},{"attributes":{"anonymous":false,"documentation":null,"name":"UpdatedTokenRate"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_sender","scope":9699,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":9692,"name":"ElementaryTypeName","src":"1781:7:14"}],"id":9693,"name":"VariableDeclaration","src":"1781:15:14"},{"attributes":{"constant":false,"indexed":false,"name":"_token","scope":9699,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":9694,"name":"ElementaryTypeName","src":"1798:7:14"}],"id":9695,"name":"VariableDeclaration","src":"1798:14:14"},{"attributes":{"constant":false,"indexed":false,"name":"_rate","scope":9699,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":9696,"name":"ElementaryTypeName","src":"1814:4:14"}],"id":9697,"name":"VariableDeclaration","src":"1814:10:14"}],"id":9698,"name":"ParameterList","src":"1780:45:14"}],"id":9699,"name":"EventDefinition","src":"1758:68:14"},{"attributes":{"anonymous":false,"documentation":null,"name":"AddedToken"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_sender","scope":9713,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":9700,"name":"ElementaryTypeName","src":"1849:7:14"}],"id":9701,"name":"VariableDeclaration","src":"1849:15:14"},{"attributes":{"constant":false,"indexed":false,"name":"_token","scope":9713,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":9702,"name":"ElementaryTypeName","src":"1866:7:14"}],"id":9703,"name":"VariableDeclaration","src":"1866:14:14"},{"attributes":{"constant":false,"indexed":false,"name":"_symbol","scope":9713,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":9704,"name":"ElementaryTypeName","src":"1882:6:14"}],"id":9705,"name":"VariableDeclaration","src":"1882:14:14"},{"attributes":{"constant":false,"indexed":false,"name":"_magnitude","scope":9713,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":9706,"name":"ElementaryTypeName","src":"1898:4:14"}],"id":9707,"name":"VariableDeclaration","src":"1898:15:14"},{"attributes":{"constant":false,"indexed":false,"name":"_loadable","scope":9713,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":9708,"name":"ElementaryTypeName","src":"1915:4:14"}],"id":9709,"name":"VariableDeclaration","src":"1915:14:14"},{"attributes":{"constant":false,"indexed":false,"name":"_burnable","scope":9713,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":9710,"name":"ElementaryTypeName","src":"1931:4:14"}],"id":9711,"name":"VariableDeclaration","src":"1931:14:14"}],"id":9712,"name":"ParameterList","src":"1848:98:14"}],"id":9713,"name":"EventDefinition","src":"1832:115:14"},{"attributes":{"anonymous":false,"documentation":null,"name":"RemovedToken"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_sender","scope":9719,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":9714,"name":"ElementaryTypeName","src":"1971:7:14"}],"id":9715,"name":"VariableDeclaration","src":"1971:15:14"},{"attributes":{"constant":false,"indexed":false,"name":"_token","scope":9719,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":9716,"name":"ElementaryTypeName","src":"1988:7:14"}],"id":9717,"name":"VariableDeclaration","src":"1988:14:14"}],"id":9718,"name":"ParameterList","src":"1970:33:14"}],"id":9719,"name":"EventDefinition","src":"1952:52:14"},{"attributes":{"canonicalName":"TokenWhitelist.Token","name":"Token","scope":10191,"visibility":"public"},"children":[{"attributes":{"constant":false,"name":"symbol","scope":9734,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":9720,"name":"ElementaryTypeName","src":"2033:6:14"}],"id":9721,"name":"VariableDeclaration","src":"2033:13:14"},{"attributes":{"constant":false,"name":"magnitude","scope":9734,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":9722,"name":"ElementaryTypeName","src":"2075:4:14"}],"id":9723,"name":"VariableDeclaration","src":"2075:14:14"},{"attributes":{"constant":false,"name":"rate","scope":9734,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":9724,"name":"ElementaryTypeName","src":"2116:4:14"}],"id":9725,"name":"VariableDeclaration","src":"2116:9:14"},{"attributes":{"constant":false,"name":"available","scope":9734,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":9726,"name":"ElementaryTypeName","src":"2172:4:14"}],"id":9727,"name":"VariableDeclaration","src":"2172:14:14"},{"attributes":{"constant":false,"name":"loadable","scope":9734,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":9728,"name":"ElementaryTypeName","src":"2240:4:14"}],"id":9729,"name":"VariableDeclaration","src":"2240:13:14"},{"attributes":{"constant":false,"name":"burnable","scope":9734,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":9730,"name":"ElementaryTypeName","src":"2313:4:14"}],"id":9731,"name":"VariableDeclaration","src":"2313:13:14"},{"attributes":{"constant":false,"name":"lastUpdate","scope":9734,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":9732,"name":"ElementaryTypeName","src":"2396:4:14"}],"id":9733,"name":"VariableDeclaration","src":"2396:15:14"}],"id":9734,"name":"StructDefinition","src":"2010:441:14"},{"attributes":{"constant":false,"name":"_tokenInfoMap","scope":10191,"stateVariable":true,"storageLocation":"default","type":"mapping(address => struct TokenWhitelist.Token)","value":null,"visibility":"private"},"children":[{"attributes":{"type":"mapping(address => struct TokenWhitelist.Token)"},"children":[{"attributes":{"name":"address","type":"address"},"id":9735,"name":"ElementaryTypeName","src":"2465:7:14"},{"attributes":{"contractScope":null,"name":"Token","referencedDeclaration":9734,"type":"struct TokenWhitelist.Token"},"id":9736,"name":"UserDefinedTypeName","src":"2476:5:14"}],"id":9737,"name":"Mapping","src":"2457:25:14"}],"id":9738,"name":"VariableDeclaration","src":"2457:47:14"},{"attributes":{"constant":false,"name":"_tokenAddressArray","scope":10191,"stateVariable":true,"storageLocation":"default","type":"address[]","value":null,"visibility":"private"},"children":[{"attributes":{"length":null,"type":"address[]"},"children":[{"attributes":{"name":"address","type":"address"},"id":9739,"name":"ElementaryTypeName","src":"2510:7:14"}],"id":9740,"name":"ArrayTypeName","src":"2510:9:14"}],"id":9741,"name":"VariableDeclaration","src":"2510:36:14"},{"attributes":{"documentation":null,"name":"onlyControllerOrOracle","visibility":"internal"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":9742,"name":"ParameterList","src":"2584:2:14"},{"children":[{"attributes":{"assignments":[9744]},"children":[{"attributes":{"constant":false,"name":"oracleAddress","scope":9764,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":9743,"name":"ElementaryTypeName","src":"2597:7:14"}],"id":9744,"name":"VariableDeclaration","src":"2597:21:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[null],"referencedDeclaration":7901,"type":"function (bytes32) view returns (address)","value":"_ensResolve"},"id":9745,"name":"Identifier","src":"2621:11:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9768,"type":"bytes32","value":"_oracleNode"},"id":9746,"name":"Identifier","src":"2633:11:14"}],"id":9747,"name":"FunctionCall","src":"2621:24:14"}],"id":9748,"name":"VariableDeclarationStatement","src":"2597:48:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7f651a1c3852ff2a697b659eaace9616ca61af623afbb095898c910cf89ec35f","typeString":"literal_string \"either oracle or controller\""}],"overloadedDeclarations":[12061,12062],"referencedDeclaration":12062,"type":"function (bool,string memory) pure","value":"require"},"id":9749,"name":"Identifier","src":"2655:7:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"||","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":7681,"type":"function (address) view returns (bool)","value":"_isController"},"id":9750,"name":"Identifier","src":"2664:13:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":12058,"type":"msg","value":"msg"},"id":9751,"name":"Identifier","src":"2678:3:14"}],"id":9752,"name":"MemberAccess","src":"2678:10:14"}],"id":9753,"name":"FunctionCall","src":"2664:25:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":12058,"type":"msg","value":"msg"},"id":9754,"name":"Identifier","src":"2693:3:14"}],"id":9755,"name":"MemberAccess","src":"2693:10:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9744,"type":"address","value":"oracleAddress"},"id":9756,"name":"Identifier","src":"2707:13:14"}],"id":9757,"name":"BinaryOperation","src":"2693:27:14"}],"id":9758,"name":"BinaryOperation","src":"2664:56:14"},{"attributes":{"argumentTypes":null,"hexvalue":"656974686572206f7261636c65206f7220636f6e74726f6c6c6572","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"either oracle or controller\"","value":"either oracle or controller"},"id":9759,"name":"Literal","src":"2722:29:14"}],"id":9760,"name":"FunctionCall","src":"2655:97:14"}],"id":9761,"name":"ExpressionStatement","src":"2655:97:14"},{"id":9762,"name":"PlaceholderStatement","src":"2762:1:14"}],"id":9763,"name":"Block","src":"2587:183:14"}],"id":9764,"name":"ModifierDefinition","src":"2553:217:14"},{"attributes":{"constant":false,"name":"_stablecoin","scope":10191,"stateVariable":true,"storageLocation":"default","type":"address","value":null,"visibility":"private"},"children":[{"attributes":{"name":"address","type":"address"},"id":9765,"name":"ElementaryTypeName","src":"2819:7:14"}],"id":9766,"name":"VariableDeclaration","src":"2819:27:14"},{"attributes":{"constant":false,"name":"_oracleNode","scope":10191,"stateVariable":true,"storageLocation":"default","type":"bytes32","value":null,"visibility":"private"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9767,"name":"ElementaryTypeName","src":"2930:7:14"}],"id":9768,"name":"VariableDeclaration","src":"2930:27:14"},{"attributes":{"constant":false,"documentation":"@notice Constructor initializes ENSResolvable, Controllable, and Ownable\n @param _oracleNameHash_ is the ENS name hash of the Oracle.\n @param _stabelcoinAddress_ is the address of the stablecoint used by the wallet","implemented":true,"isConstructor":true,"name":"","payable":false,"scope":10191,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"_ens_","scope":9802,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":9769,"name":"ElementaryTypeName","src":"3213:7:14"}],"id":9770,"name":"VariableDeclaration","src":"3213:13:14"},{"attributes":{"constant":false,"name":"_oracleNameHash_","scope":9802,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9771,"name":"ElementaryTypeName","src":"3228:7:14"}],"id":9772,"name":"VariableDeclaration","src":"3228:24:14"},{"attributes":{"constant":false,"name":"_controllerNameHash_","scope":9802,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9773,"name":"ElementaryTypeName","src":"3254:7:14"}],"id":9774,"name":"VariableDeclaration","src":"3254:28:14"},{"attributes":{"constant":false,"name":"_owner_","scope":9802,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":9775,"name":"ElementaryTypeName","src":"3284:7:14"}],"id":9776,"name":"VariableDeclaration","src":"3284:15:14"},{"attributes":{"constant":false,"name":"_transferable_","scope":9802,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":9777,"name":"ElementaryTypeName","src":"3301:4:14"}],"id":9778,"name":"VariableDeclaration","src":"3301:19:14"},{"attributes":{"constant":false,"name":"_stabelcoinAddress_","scope":9802,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":9779,"name":"ElementaryTypeName","src":"3322:7:14"}],"id":9780,"name":"VariableDeclaration","src":"3322:27:14"}],"id":9781,"name":"ParameterList","src":"3212:138:14"},{"attributes":{"parameters":[null]},"children":[],"id":9792,"name":"ParameterList","src":"3447:0:14"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7902,"type":"type(contract ENSResolvable)","value":"ENSResolvable"},"id":9782,"name":"Identifier","src":"3351:13:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9770,"type":"address","value":"_ens_"},"id":9783,"name":"Identifier","src":"3365:5:14"}],"id":9784,"name":"ModifierInvocation","src":"3351:20:14"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7682,"type":"type(contract Controllable)","value":"Controllable"},"id":9785,"name":"Identifier","src":"3372:12:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9774,"type":"bytes32","value":"_controllerNameHash_"},"id":9786,"name":"Identifier","src":"3385:20:14"}],"id":9787,"name":"ModifierInvocation","src":"3372:34:14"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10348,"type":"type(contract Ownable)","value":"Ownable"},"id":9788,"name":"Identifier","src":"3407:7:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9776,"type":"address","value":"_owner_"},"id":9789,"name":"Identifier","src":"3415:7:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9778,"type":"bool","value":"_transferable_"},"id":9790,"name":"Identifier","src":"3424:14:14"}],"id":9791,"name":"ModifierInvocation","src":"3407:32:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9768,"type":"bytes32","value":"_oracleNode"},"id":9793,"name":"Identifier","src":"3457:11:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9772,"type":"bytes32","value":"_oracleNameHash_"},"id":9794,"name":"Identifier","src":"3471:16:14"}],"id":9795,"name":"Assignment","src":"3457:30:14"}],"id":9796,"name":"ExpressionStatement","src":"3457:30:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9766,"type":"address","value":"_stablecoin"},"id":9797,"name":"Identifier","src":"3497:11:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9780,"type":"address","value":"_stabelcoinAddress_"},"id":9798,"name":"Identifier","src":"3511:19:14"}],"id":9799,"name":"Assignment","src":"3497:33:14"}],"id":9800,"name":"ExpressionStatement","src":"3497:33:14"}],"id":9801,"name":"Block","src":"3447:90:14"}],"id":9802,"name":"FunctionDefinition","src":"3201:336:14"},{"attributes":{"constant":false,"documentation":"@notice Add ERC20 tokens to the list of whitelisted tokens.\n @param _tokens ERC20 token contract addresses.\n @param _symbols ERC20 token names.\n @param _magnitude 10 to the power of number of decimal places used by each ERC20 token.\n @param _loadable is a bool that states whether or not a token is loadable to the TokenCard.\n @param _burnable is a bool that states whether or not a token is burnable in the TKN Holder Contract.\n @param _lastUpdate is a unit representing an ISO datetime e.g. 20180913153211","implemented":true,"isConstructor":false,"name":"addTokens","payable":false,"scope":10191,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_tokens","scope":9934,"stateVariable":false,"storageLocation":"default","type":"address[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"address[]"},"children":[{"attributes":{"name":"address","type":"address"},"id":9803,"name":"ElementaryTypeName","src":"4120:7:14"}],"id":9804,"name":"ArrayTypeName","src":"4120:9:14"}],"id":9805,"name":"VariableDeclaration","src":"4120:17:14"},{"attributes":{"constant":false,"name":"_symbols","scope":9934,"stateVariable":false,"storageLocation":"default","type":"bytes32[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"bytes32[]"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":9806,"name":"ElementaryTypeName","src":"4139:7:14"}],"id":9807,"name":"ArrayTypeName","src":"4139:9:14"}],"id":9808,"name":"VariableDeclaration","src":"4139:18:14"},{"attributes":{"constant":false,"name":"_magnitude","scope":9934,"stateVariable":false,"storageLocation":"default","type":"uint256[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"uint256[]"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":9809,"name":"ElementaryTypeName","src":"4159:4:14"}],"id":9810,"name":"ArrayTypeName","src":"4159:6:14"}],"id":9811,"name":"VariableDeclaration","src":"4159:17:14"},{"attributes":{"constant":false,"name":"_loadable","scope":9934,"stateVariable":false,"storageLocation":"default","type":"bool[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"bool[]"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":9812,"name":"ElementaryTypeName","src":"4178:4:14"}],"id":9813,"name":"ArrayTypeName","src":"4178:6:14"}],"id":9814,"name":"VariableDeclaration","src":"4178:16:14"},{"attributes":{"constant":false,"name":"_burnable","scope":9934,"stateVariable":false,"storageLocation":"default","type":"bool[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"bool[]"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":9815,"name":"ElementaryTypeName","src":"4196:4:14"}],"id":9816,"name":"ArrayTypeName","src":"4196:6:14"}],"id":9817,"name":"VariableDeclaration","src":"4196:16:14"},{"attributes":{"constant":false,"name":"_lastUpdate","scope":9934,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":9818,"name":"ElementaryTypeName","src":"4214:4:14"}],"id":9819,"name":"VariableDeclaration","src":"4214:16:14"}],"id":9820,"name":"ParameterList","src":"4119:112:14"},{"attributes":{"parameters":[null]},"children":[],"id":9823,"name":"ParameterList","src":"4256:0:14"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7656,"type":"modifier ()","value":"onlyController"},"id":9821,"name":"Identifier","src":"4241:14:14"}],"id":9822,"name":"ModifierInvocation","src":"4241:14:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_229d13192b5da189e34c035711b06ef00014d6b1ae3d20f5919a9f7f0dc28e53","typeString":"literal_string \"parameter lengths do not match\""}],"overloadedDeclarations":[12061,12062],"referencedDeclaration":12062,"type":"function (bool,string memory) pure","value":"require"},"id":9824,"name":"Identifier","src":"4327:7:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&&","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&&","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&&","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9805,"type":"address[] calldata","value":"_tokens"},"id":9825,"name":"Identifier","src":"4335:7:14"}],"id":9826,"name":"MemberAccess","src":"4335:14:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9808,"type":"bytes32[] calldata","value":"_symbols"},"id":9827,"name":"Identifier","src":"4353:8:14"}],"id":9828,"name":"MemberAccess","src":"4353:15:14"}],"id":9829,"name":"BinaryOperation","src":"4335:33:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9805,"type":"address[] calldata","value":"_tokens"},"id":9830,"name":"Identifier","src":"4372:7:14"}],"id":9831,"name":"MemberAccess","src":"4372:14:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9811,"type":"uint256[] calldata","value":"_magnitude"},"id":9832,"name":"Identifier","src":"4390:10:14"}],"id":9833,"name":"MemberAccess","src":"4390:17:14"}],"id":9834,"name":"BinaryOperation","src":"4372:35:14"}],"id":9835,"name":"BinaryOperation","src":"4335:72:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9805,"type":"address[] calldata","value":"_tokens"},"id":9836,"name":"Identifier","src":"4411:7:14"}],"id":9837,"name":"MemberAccess","src":"4411:14:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9814,"type":"bool[] calldata","value":"_loadable"},"id":9838,"name":"Identifier","src":"4429:9:14"}],"id":9839,"name":"MemberAccess","src":"4429:16:14"}],"id":9840,"name":"BinaryOperation","src":"4411:34:14"}],"id":9841,"name":"BinaryOperation","src":"4335:110:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9805,"type":"address[] calldata","value":"_tokens"},"id":9842,"name":"Identifier","src":"4449:7:14"}],"id":9843,"name":"MemberAccess","src":"4449:14:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9814,"type":"bool[] calldata","value":"_loadable"},"id":9844,"name":"Identifier","src":"4467:9:14"}],"id":9845,"name":"MemberAccess","src":"4467:16:14"}],"id":9846,"name":"BinaryOperation","src":"4449:34:14"}],"id":9847,"name":"BinaryOperation","src":"4335:148:14"},{"attributes":{"argumentTypes":null,"hexvalue":"706172616d65746572206c656e6774687320646f206e6f74206d61746368","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"parameter lengths do not match\"","value":"parameter lengths do not match"},"id":9848,"name":"Literal","src":"4485:32:14"}],"id":9849,"name":"FunctionCall","src":"4327:191:14"}],"id":9850,"name":"ExpressionStatement","src":"4327:191:14"},{"children":[{"attributes":{"assignments":[9852]},"children":[{"attributes":{"constant":false,"name":"i","scope":9934,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":9851,"name":"ElementaryTypeName","src":"4592:4:14"}],"id":9852,"name":"VariableDeclaration","src":"4592:6:14"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":9853,"name":"Literal","src":"4601:1:14"}],"id":9854,"name":"VariableDeclarationStatement","src":"4592:10:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9852,"type":"uint256","value":"i"},"id":9855,"name":"Identifier","src":"4604:1:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9805,"type":"address[] calldata","value":"_tokens"},"id":9856,"name":"Identifier","src":"4608:7:14"}],"id":9857,"name":"MemberAccess","src":"4608:14:14"}],"id":9858,"name":"BinaryOperation","src":"4604:18:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9852,"type":"uint256","value":"i"},"id":9859,"name":"Identifier","src":"4624:1:14"}],"id":9860,"name":"UnaryOperation","src":"4624:3:14"}],"id":9861,"name":"ExpressionStatement","src":"4624:3:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e7eb3a05df4990307bc322b918e16d072d8c2936ee70a5abacdb05979a5cec23","typeString":"literal_string \"token already available\""}],"overloadedDeclarations":[12061,12062],"referencedDeclaration":12062,"type":"function (bool,string memory) pure","value":"require"},"id":9862,"name":"Identifier","src":"4706:7:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"available","referencedDeclaration":9727,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct TokenWhitelist.Token storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9738,"type":"mapping(address => struct TokenWhitelist.Token storage ref)","value":"_tokenInfoMap"},"id":9863,"name":"Identifier","src":"4715:13:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9805,"type":"address[] calldata","value":"_tokens"},"id":9864,"name":"Identifier","src":"4729:7:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9852,"type":"uint256","value":"i"},"id":9865,"name":"Identifier","src":"4737:1:14"}],"id":9866,"name":"IndexAccess","src":"4729:10:14"}],"id":9867,"name":"IndexAccess","src":"4715:25:14"}],"id":9868,"name":"MemberAccess","src":"4715:35:14"}],"id":9869,"name":"UnaryOperation","src":"4714:36:14"},{"attributes":{"argumentTypes":null,"hexvalue":"746f6b656e20616c726561647920617661696c61626c65","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"token already available\"","value":"token already available"},"id":9870,"name":"Literal","src":"4752:25:14"}],"id":9871,"name":"FunctionCall","src":"4706:72:14"}],"id":9872,"name":"ExpressionStatement","src":"4706:72:14"},{"attributes":{"assignments":[9874]},"children":[{"attributes":{"constant":false,"name":"symbol","scope":9934,"stateVariable":false,"storageLocation":"memory","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":9873,"name":"ElementaryTypeName","src":"4838:6:14"}],"id":9874,"name":"VariableDeclaration","src":"4838:20:14"},{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"toString","referencedDeclaration":10593,"type":"function (struct strings.slice memory) pure returns (string memory)"},"children":[{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"struct strings.slice memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"toSliceB32","referencedDeclaration":10548,"type":"function (bytes32) pure returns (struct strings.slice memory)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9808,"type":"bytes32[] calldata","value":"_symbols"},"id":9875,"name":"Identifier","src":"4861:8:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9852,"type":"uint256","value":"i"},"id":9876,"name":"Identifier","src":"4870:1:14"}],"id":9877,"name":"IndexAccess","src":"4861:11:14"}],"id":9878,"name":"MemberAccess","src":"4861:22:14"}],"id":9879,"name":"FunctionCall","src":"4861:24:14"}],"id":9880,"name":"MemberAccess","src":"4861:33:14"}],"id":9881,"name":"FunctionCall","src":"4861:35:14"}],"id":9882,"name":"VariableDeclarationStatement","src":"4838:58:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"struct TokenWhitelist.Token storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"struct TokenWhitelist.Token storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9738,"type":"mapping(address => struct TokenWhitelist.Token storage ref)","value":"_tokenInfoMap"},"id":9883,"name":"Identifier","src":"4958:13:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9805,"type":"address[] calldata","value":"_tokens"},"id":9884,"name":"Identifier","src":"4972:7:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9852,"type":"uint256","value":"i"},"id":9885,"name":"Identifier","src":"4980:1:14"}],"id":9886,"name":"IndexAccess","src":"4972:10:14"}],"id":9887,"name":"IndexAccess","src":"4958:25:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":true,"lValueRequested":false,"names":["symbol","magnitude","rate","available","loadable","burnable","lastUpdate"],"type":"struct TokenWhitelist.Token memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9734,"type":"type(struct TokenWhitelist.Token storage pointer)","value":"Token"},"id":9888,"name":"Identifier","src":"4986:5:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9874,"type":"string memory","value":"symbol"},"id":9889,"name":"Identifier","src":"5019:6:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9811,"type":"uint256[] calldata","value":"_magnitude"},"id":9890,"name":"Identifier","src":"5055:10:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9852,"type":"uint256","value":"i"},"id":9891,"name":"Identifier","src":"5066:1:14"}],"id":9892,"name":"IndexAccess","src":"5055:13:14"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":9893,"name":"Literal","src":"5093:1:14"},{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":9894,"name":"Literal","src":"5124:4:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9814,"type":"bool[] calldata","value":"_loadable"},"id":9895,"name":"Identifier","src":"5157:9:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9852,"type":"uint256","value":"i"},"id":9896,"name":"Identifier","src":"5167:1:14"}],"id":9897,"name":"IndexAccess","src":"5157:12:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9817,"type":"bool[] calldata","value":"_burnable"},"id":9898,"name":"Identifier","src":"5197:9:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9852,"type":"uint256","value":"i"},"id":9899,"name":"Identifier","src":"5207:1:14"}],"id":9900,"name":"IndexAccess","src":"5197:12:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9819,"type":"uint256","value":"_lastUpdate"},"id":9901,"name":"Identifier","src":"5240:11:14"}],"id":9902,"name":"FunctionCall","src":"4986:284:14"}],"id":9903,"name":"Assignment","src":"4958:312:14"}],"id":9904,"name":"ExpressionStatement","src":"4958:312:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"push","referencedDeclaration":null,"type":"function (address) returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9741,"type":"address[] storage ref","value":"_tokenAddressArray"},"id":9905,"name":"Identifier","src":"5342:18:14"}],"id":9907,"name":"MemberAccess","src":"5342:23:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9805,"type":"address[] calldata","value":"_tokens"},"id":9908,"name":"Identifier","src":"5366:7:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9852,"type":"uint256","value":"i"},"id":9909,"name":"Identifier","src":"5374:1:14"}],"id":9910,"name":"IndexAccess","src":"5366:10:14"}],"id":9911,"name":"FunctionCall","src":"5342:35:14"}],"id":9912,"name":"ExpressionStatement","src":"5342:35:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"overloadedDeclarations":[null],"referencedDeclaration":9713,"type":"function (address,address,string memory,uint256,bool,bool)","value":"AddedToken"},"id":9913,"name":"Identifier","src":"5438:10:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":12058,"type":"msg","value":"msg"},"id":9914,"name":"Identifier","src":"5449:3:14"}],"id":9915,"name":"MemberAccess","src":"5449:10:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9805,"type":"address[] calldata","value":"_tokens"},"id":9916,"name":"Identifier","src":"5461:7:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9852,"type":"uint256","value":"i"},"id":9917,"name":"Identifier","src":"5469:1:14"}],"id":9918,"name":"IndexAccess","src":"5461:10:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9874,"type":"string memory","value":"symbol"},"id":9919,"name":"Identifier","src":"5473:6:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9811,"type":"uint256[] calldata","value":"_magnitude"},"id":9920,"name":"Identifier","src":"5481:10:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9852,"type":"uint256","value":"i"},"id":9921,"name":"Identifier","src":"5492:1:14"}],"id":9922,"name":"IndexAccess","src":"5481:13:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9814,"type":"bool[] calldata","value":"_loadable"},"id":9923,"name":"Identifier","src":"5496:9:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9852,"type":"uint256","value":"i"},"id":9924,"name":"Identifier","src":"5506:1:14"}],"id":9925,"name":"IndexAccess","src":"5496:12:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9817,"type":"bool[] calldata","value":"_burnable"},"id":9926,"name":"Identifier","src":"5510:9:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9852,"type":"uint256","value":"i"},"id":9927,"name":"Identifier","src":"5520:1:14"}],"id":9928,"name":"IndexAccess","src":"5510:12:14"}],"id":9929,"name":"FunctionCall","src":"5438:85:14"}],"id":9930,"name":"EmitStatement","src":"5433:90:14"}],"id":9931,"name":"Block","src":"4629:905:14"}],"id":9932,"name":"ForStatement","src":"4587:947:14"}],"id":9933,"name":"Block","src":"4256:1284:14"}],"id":9934,"name":"FunctionDefinition","src":"4101:1439:14"},{"attributes":{"constant":false,"documentation":"@notice Remove ERC20 tokens from the whitelist of tokens.\n @param _tokens ERC20 token contract addresses.","implemented":true,"isConstructor":false,"name":"removeTokens","payable":false,"scope":10191,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_tokens","scope":10024,"stateVariable":false,"storageLocation":"default","type":"address[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"address[]"},"children":[{"attributes":{"name":"address","type":"address"},"id":9935,"name":"ElementaryTypeName","src":"5689:7:14"}],"id":9936,"name":"ArrayTypeName","src":"5689:9:14"}],"id":9937,"name":"VariableDeclaration","src":"5689:17:14"}],"id":9938,"name":"ParameterList","src":"5688:19:14"},{"attributes":{"parameters":[null]},"children":[],"id":9941,"name":"ParameterList","src":"5732:0:14"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7656,"type":"modifier ()","value":"onlyController"},"id":9939,"name":"Identifier","src":"5717:14:14"}],"id":9940,"name":"ModifierInvocation","src":"5717:14:14"},{"children":[{"children":[{"attributes":{"assignments":[9943]},"children":[{"attributes":{"constant":false,"name":"i","scope":10024,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":9942,"name":"ElementaryTypeName","src":"5850:4:14"}],"id":9943,"name":"VariableDeclaration","src":"5850:6:14"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":9944,"name":"Literal","src":"5859:1:14"}],"id":9945,"name":"VariableDeclarationStatement","src":"5850:10:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9943,"type":"uint256","value":"i"},"id":9946,"name":"Identifier","src":"5862:1:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9937,"type":"address[] calldata","value":"_tokens"},"id":9947,"name":"Identifier","src":"5866:7:14"}],"id":9948,"name":"MemberAccess","src":"5866:14:14"}],"id":9949,"name":"BinaryOperation","src":"5862:18:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9943,"type":"uint256","value":"i"},"id":9950,"name":"Identifier","src":"5882:1:14"}],"id":9951,"name":"UnaryOperation","src":"5882:3:14"}],"id":9952,"name":"ExpressionStatement","src":"5882:3:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d487155ec60125f09758305e6de21696dc3e345a5b0edca0b920691dd5be4852","typeString":"literal_string \"token is not available\""}],"overloadedDeclarations":[12061,12062],"referencedDeclaration":12062,"type":"function (bool,string memory) pure","value":"require"},"id":9953,"name":"Identifier","src":"5970:7:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"available","referencedDeclaration":9727,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct TokenWhitelist.Token storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9738,"type":"mapping(address => struct TokenWhitelist.Token storage ref)","value":"_tokenInfoMap"},"id":9954,"name":"Identifier","src":"5978:13:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9937,"type":"address[] calldata","value":"_tokens"},"id":9955,"name":"Identifier","src":"5992:7:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9943,"type":"uint256","value":"i"},"id":9956,"name":"Identifier","src":"6000:1:14"}],"id":9957,"name":"IndexAccess","src":"5992:10:14"}],"id":9958,"name":"IndexAccess","src":"5978:25:14"}],"id":9959,"name":"MemberAccess","src":"5978:35:14"},{"attributes":{"argumentTypes":null,"hexvalue":"746f6b656e206973206e6f7420617661696c61626c65","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"token is not available\"","value":"token is not available"},"id":9960,"name":"Literal","src":"6015:24:14"}],"id":9961,"name":"FunctionCall","src":"5970:70:14"}],"id":9962,"name":"ExpressionStatement","src":"5970:70:14"},{"attributes":{"assignments":[9964]},"children":[{"attributes":{"constant":false,"name":"token","scope":10024,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":9963,"name":"ElementaryTypeName","src":"6094:7:14"}],"id":9964,"name":"VariableDeclaration","src":"6094:13:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9937,"type":"address[] calldata","value":"_tokens"},"id":9965,"name":"Identifier","src":"6110:7:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9943,"type":"uint256","value":"i"},"id":9966,"name":"Identifier","src":"6118:1:14"}],"id":9967,"name":"IndexAccess","src":"6110:10:14"}],"id":9968,"name":"VariableDeclarationStatement","src":"6094:26:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"delete","prefix":true,"type":"tuple()"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"struct TokenWhitelist.Token storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9738,"type":"mapping(address => struct TokenWhitelist.Token storage ref)","value":"_tokenInfoMap"},"id":9969,"name":"Identifier","src":"6181:13:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9964,"type":"address","value":"token"},"id":9970,"name":"Identifier","src":"6195:5:14"}],"id":9971,"name":"IndexAccess","src":"6181:20:14"}],"id":9972,"name":"UnaryOperation","src":"6174:27:14"}],"id":9973,"name":"ExpressionStatement","src":"6174:27:14"},{"children":[{"attributes":{"assignments":[9975]},"children":[{"attributes":{"constant":false,"name":"j","scope":10024,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":9974,"name":"ElementaryTypeName","src":"6283:4:14"}],"id":9975,"name":"VariableDeclaration","src":"6283:6:14"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":9976,"name":"Literal","src":"6292:1:14"}],"id":9977,"name":"VariableDeclarationStatement","src":"6283:10:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9975,"type":"uint256","value":"j"},"id":9978,"name":"Identifier","src":"6295:1:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sub","referencedDeclaration":1181,"type":"function (uint256,uint256) pure returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9741,"type":"address[] storage ref","value":"_tokenAddressArray"},"id":9979,"name":"Identifier","src":"6299:18:14"}],"id":9980,"name":"MemberAccess","src":"6299:25:14"}],"id":9981,"name":"MemberAccess","src":"6299:29:14"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":9982,"name":"Literal","src":"6329:1:14"}],"id":9983,"name":"FunctionCall","src":"6299:32:14"}],"id":9984,"name":"BinaryOperation","src":"6295:36:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9975,"type":"uint256","value":"j"},"id":9985,"name":"Identifier","src":"6333:1:14"}],"id":9986,"name":"UnaryOperation","src":"6333:3:14"}],"id":9987,"name":"ExpressionStatement","src":"6333:3:14"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9741,"type":"address[] storage ref","value":"_tokenAddressArray"},"id":9988,"name":"Identifier","src":"6360:18:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9975,"type":"uint256","value":"j"},"id":9989,"name":"Identifier","src":"6379:1:14"}],"id":9990,"name":"IndexAccess","src":"6360:21:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9964,"type":"address","value":"token"},"id":9991,"name":"Identifier","src":"6385:5:14"}],"id":9992,"name":"BinaryOperation","src":"6360:30:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"address"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9741,"type":"address[] storage ref","value":"_tokenAddressArray"},"id":9993,"name":"Identifier","src":"6414:18:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9975,"type":"uint256","value":"j"},"id":9994,"name":"Identifier","src":"6433:1:14"}],"id":9995,"name":"IndexAccess","src":"6414:21:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9741,"type":"address[] storage ref","value":"_tokenAddressArray"},"id":9996,"name":"Identifier","src":"6438:18:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sub","referencedDeclaration":1181,"type":"function (uint256,uint256) pure returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9741,"type":"address[] storage ref","value":"_tokenAddressArray"},"id":9997,"name":"Identifier","src":"6457:18:14"}],"id":9998,"name":"MemberAccess","src":"6457:25:14"}],"id":9999,"name":"MemberAccess","src":"6457:29:14"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":10000,"name":"Literal","src":"6487:1:14"}],"id":10001,"name":"FunctionCall","src":"6457:32:14"}],"id":10002,"name":"IndexAccess","src":"6438:52:14"}],"id":10003,"name":"Assignment","src":"6414:76:14"}],"id":10004,"name":"ExpressionStatement","src":"6414:76:14"},{"id":10005,"name":"Break","src":"6512:5:14"}],"id":10006,"name":"Block","src":"6392:144:14"}],"id":10007,"name":"IfStatement","src":"6356:180:14"}],"id":10008,"name":"Block","src":"6338:212:14"}],"id":10009,"name":"ForStatement","src":"6278:272:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"--","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9741,"type":"address[] storage ref","value":"_tokenAddressArray"},"id":10010,"name":"Identifier","src":"6563:18:14"}],"id":10012,"name":"MemberAccess","src":"6563:25:14"}],"id":10013,"name":"UnaryOperation","src":"6563:27:14"}],"id":10014,"name":"ExpressionStatement","src":"6563:27:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":9719,"type":"function (address,address)","value":"RemovedToken"},"id":10015,"name":"Identifier","src":"6650:12:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":12058,"type":"msg","value":"msg"},"id":10016,"name":"Identifier","src":"6663:3:14"}],"id":10017,"name":"MemberAccess","src":"6663:10:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9964,"type":"address","value":"token"},"id":10018,"name":"Identifier","src":"6675:5:14"}],"id":10019,"name":"FunctionCall","src":"6650:31:14"}],"id":10020,"name":"EmitStatement","src":"6645:36:14"}],"id":10021,"name":"Block","src":"5887:805:14"}],"id":10022,"name":"ForStatement","src":"5845:847:14"}],"id":10023,"name":"Block","src":"5732:966:14"}],"id":10024,"name":"FunctionDefinition","src":"5667:1031:14"},{"attributes":{"constant":false,"documentation":"@notice Update ERC20 token exchange rate.\n @param _token ERC20 token contract address.\n @param _rate ERC20 token exchange rate in wei.\n @param _updateDate date for the token updates. This will be compared to when oracle updates are received.","implemented":true,"isConstructor":false,"name":"updateTokenRate","payable":false,"scope":10191,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_token","scope":10065,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":10025,"name":"ElementaryTypeName","src":"7000:7:14"}],"id":10026,"name":"VariableDeclaration","src":"7000:14:14"},{"attributes":{"constant":false,"name":"_rate","scope":10065,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":10027,"name":"ElementaryTypeName","src":"7016:4:14"}],"id":10028,"name":"VariableDeclaration","src":"7016:10:14"},{"attributes":{"constant":false,"name":"_updateDate","scope":10065,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":10029,"name":"ElementaryTypeName","src":"7028:4:14"}],"id":10030,"name":"VariableDeclaration","src":"7028:16:14"}],"id":10031,"name":"ParameterList","src":"6999:46:14"},{"attributes":{"parameters":[null]},"children":[],"id":10034,"name":"ParameterList","src":"7078:0:14"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9764,"type":"modifier ()","value":"onlyControllerOrOracle"},"id":10032,"name":"Identifier","src":"7055:22:14"}],"id":10033,"name":"ModifierInvocation","src":"7055:22:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d487155ec60125f09758305e6de21696dc3e345a5b0edca0b920691dd5be4852","typeString":"literal_string \"token is not available\""}],"overloadedDeclarations":[12061,12062],"referencedDeclaration":12062,"type":"function (bool,string memory) pure","value":"require"},"id":10035,"name":"Identifier","src":"7130:7:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"available","referencedDeclaration":9727,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct TokenWhitelist.Token storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9738,"type":"mapping(address => struct TokenWhitelist.Token storage ref)","value":"_tokenInfoMap"},"id":10036,"name":"Identifier","src":"7138:13:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10026,"type":"address","value":"_token"},"id":10037,"name":"Identifier","src":"7152:6:14"}],"id":10038,"name":"IndexAccess","src":"7138:21:14"}],"id":10039,"name":"MemberAccess","src":"7138:31:14"},{"attributes":{"argumentTypes":null,"hexvalue":"746f6b656e206973206e6f7420617661696c61626c65","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"token is not available\"","value":"token is not available"},"id":10040,"name":"Literal","src":"7171:24:14"}],"id":10041,"name":"FunctionCall","src":"7130:66:14"}],"id":10042,"name":"ExpressionStatement","src":"7130:66:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"rate","referencedDeclaration":9725,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct TokenWhitelist.Token storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9738,"type":"mapping(address => struct TokenWhitelist.Token storage ref)","value":"_tokenInfoMap"},"id":10043,"name":"Identifier","src":"7242:13:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10026,"type":"address","value":"_token"},"id":10044,"name":"Identifier","src":"7256:6:14"}],"id":10045,"name":"IndexAccess","src":"7242:21:14"}],"id":10046,"name":"MemberAccess","src":"7242:26:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10028,"type":"uint256","value":"_rate"},"id":10047,"name":"Identifier","src":"7271:5:14"}],"id":10048,"name":"Assignment","src":"7242:34:14"}],"id":10049,"name":"ExpressionStatement","src":"7242:34:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"lastUpdate","referencedDeclaration":9733,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct TokenWhitelist.Token storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9738,"type":"mapping(address => struct TokenWhitelist.Token storage ref)","value":"_tokenInfoMap"},"id":10050,"name":"Identifier","src":"7339:13:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10026,"type":"address","value":"_token"},"id":10051,"name":"Identifier","src":"7353:6:14"}],"id":10052,"name":"IndexAccess","src":"7339:21:14"}],"id":10053,"name":"MemberAccess","src":"7339:32:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10030,"type":"uint256","value":"_updateDate"},"id":10054,"name":"Identifier","src":"7374:11:14"}],"id":10055,"name":"Assignment","src":"7339:46:14"}],"id":10056,"name":"ExpressionStatement","src":"7339:46:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":9699,"type":"function (address,address,uint256)","value":"UpdatedTokenRate"},"id":10057,"name":"Identifier","src":"7439:16:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":12058,"type":"msg","value":"msg"},"id":10058,"name":"Identifier","src":"7456:3:14"}],"id":10059,"name":"MemberAccess","src":"7456:10:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10026,"type":"address","value":"_token"},"id":10060,"name":"Identifier","src":"7468:6:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10028,"type":"uint256","value":"_rate"},"id":10061,"name":"Identifier","src":"7476:5:14"}],"id":10062,"name":"FunctionCall","src":"7439:43:14"}],"id":10063,"name":"EmitStatement","src":"7434:48:14"}],"id":10064,"name":"Block","src":"7078:411:14"}],"id":10065,"name":"FunctionDefinition","src":"6975:514:14"},{"attributes":{"constant":false,"documentation":"/ @notice Withdraw tokens from the smart contract to the specified account.","implemented":true,"isConstructor":false,"name":"claim","payable":false,"scope":10191,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_to","scope":10083,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":10066,"name":"ElementaryTypeName","src":"7593:7:14"}],"id":10067,"name":"VariableDeclaration","src":"7593:11:14"},{"attributes":{"constant":false,"name":"_asset","scope":10083,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":10068,"name":"ElementaryTypeName","src":"7606:7:14"}],"id":10069,"name":"VariableDeclaration","src":"7606:14:14"},{"attributes":{"constant":false,"name":"_amount","scope":10083,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":10070,"name":"ElementaryTypeName","src":"7622:4:14"}],"id":10071,"name":"VariableDeclaration","src":"7622:12:14"}],"id":10072,"name":"ParameterList","src":"7592:43:14"},{"attributes":{"parameters":[null]},"children":[],"id":10075,"name":"ParameterList","src":"7655:0:14"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10250,"type":"modifier ()","value":"onlyOwner"},"id":10073,"name":"Identifier","src":"7645:9:14"}],"id":10074,"name":"ModifierInvocation","src":"7645:9:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":7625,"type":"function (address,address,uint256)","value":"_claim"},"id":10076,"name":"Identifier","src":"7665:6:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10067,"type":"address","value":"_to"},"id":10077,"name":"Identifier","src":"7672:3:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10069,"type":"address","value":"_asset"},"id":10078,"name":"Identifier","src":"7677:6:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10071,"type":"uint256","value":"_amount"},"id":10079,"name":"Identifier","src":"7685:7:14"}],"id":10080,"name":"FunctionCall","src":"7665:28:14"}],"id":10081,"name":"ExpressionStatement","src":"7665:28:14"}],"id":10082,"name":"Block","src":"7655:45:14"}],"id":10083,"name":"FunctionDefinition","src":"7578:122:14"},{"attributes":{"constant":true,"documentation":"@notice This returns all of the fields for a given token\n @param _a is the address of a given token\n @return string of the token's symbol\n @return uint of the token's magnitude\n @return uint of the token's exchange rate to ETH\n @return bool whether the token is available\n @return bool whether the token is loadable to the TokenCard\n @return bool whether the token is burnable to the TKN Holder Contract\n @return uint of the lastUpdated time of the token's exchange rate","implemented":true,"isConstructor":false,"modifiers":[null],"name":"getTokenInfo","payable":false,"scope":10191,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_a","scope":10125,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":10084,"name":"ElementaryTypeName","src":"8263:7:14"}],"id":10085,"name":"VariableDeclaration","src":"8263:10:14"}],"id":10086,"name":"ParameterList","src":"8262:12:14"},{"children":[{"attributes":{"constant":false,"name":"","scope":10125,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":10087,"name":"ElementaryTypeName","src":"8298:6:14"}],"id":10088,"name":"VariableDeclaration","src":"8298:6:14"},{"attributes":{"constant":false,"name":"","scope":10125,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":10089,"name":"ElementaryTypeName","src":"8306:7:14"}],"id":10090,"name":"VariableDeclaration","src":"8306:7:14"},{"attributes":{"constant":false,"name":"","scope":10125,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":10091,"name":"ElementaryTypeName","src":"8315:7:14"}],"id":10092,"name":"VariableDeclaration","src":"8315:7:14"},{"attributes":{"constant":false,"name":"","scope":10125,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":10093,"name":"ElementaryTypeName","src":"8324:4:14"}],"id":10094,"name":"VariableDeclaration","src":"8324:4:14"},{"attributes":{"constant":false,"name":"","scope":10125,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":10095,"name":"ElementaryTypeName","src":"8330:4:14"}],"id":10096,"name":"VariableDeclaration","src":"8330:4:14"},{"attributes":{"constant":false,"name":"","scope":10125,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":10097,"name":"ElementaryTypeName","src":"8336:4:14"}],"id":10098,"name":"VariableDeclaration","src":"8336:4:14"},{"attributes":{"constant":false,"name":"","scope":10125,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":10099,"name":"ElementaryTypeName","src":"8342:7:14"}],"id":10100,"name":"VariableDeclaration","src":"8342:7:14"}],"id":10101,"name":"ParameterList","src":"8297:53:14"},{"children":[{"attributes":{"assignments":[10103]},"children":[{"attributes":{"constant":false,"name":"tokenInfo","scope":10125,"stateVariable":false,"storageLocation":"storage","type":"struct TokenWhitelist.Token","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"Token","referencedDeclaration":9734,"type":"struct TokenWhitelist.Token"},"id":10102,"name":"UserDefinedTypeName","src":"8361:5:14"}],"id":10103,"name":"VariableDeclaration","src":"8361:23:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct TokenWhitelist.Token storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9738,"type":"mapping(address => struct TokenWhitelist.Token storage ref)","value":"_tokenInfoMap"},"id":10104,"name":"Identifier","src":"8387:13:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10085,"type":"address","value":"_a"},"id":10105,"name":"Identifier","src":"8401:2:14"}],"id":10106,"name":"IndexAccess","src":"8387:17:14"}],"id":10107,"name":"VariableDeclarationStatement","src":"8361:43:14"},{"attributes":{"functionReturnParameters":10101},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"tuple(string storage ref,uint256,uint256,bool,bool,bool,uint256)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"symbol","referencedDeclaration":9721,"type":"string storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10103,"type":"struct TokenWhitelist.Token storage pointer","value":"tokenInfo"},"id":10108,"name":"Identifier","src":"8422:9:14"}],"id":10109,"name":"MemberAccess","src":"8422:16:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"magnitude","referencedDeclaration":9723,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10103,"type":"struct TokenWhitelist.Token storage pointer","value":"tokenInfo"},"id":10110,"name":"Identifier","src":"8440:9:14"}],"id":10111,"name":"MemberAccess","src":"8440:19:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"rate","referencedDeclaration":9725,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10103,"type":"struct TokenWhitelist.Token storage pointer","value":"tokenInfo"},"id":10112,"name":"Identifier","src":"8461:9:14"}],"id":10113,"name":"MemberAccess","src":"8461:14:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"available","referencedDeclaration":9727,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10103,"type":"struct TokenWhitelist.Token storage pointer","value":"tokenInfo"},"id":10114,"name":"Identifier","src":"8477:9:14"}],"id":10115,"name":"MemberAccess","src":"8477:19:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"loadable","referencedDeclaration":9729,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10103,"type":"struct TokenWhitelist.Token storage pointer","value":"tokenInfo"},"id":10116,"name":"Identifier","src":"8498:9:14"}],"id":10117,"name":"MemberAccess","src":"8498:18:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"burnable","referencedDeclaration":9731,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10103,"type":"struct TokenWhitelist.Token storage pointer","value":"tokenInfo"},"id":10118,"name":"Identifier","src":"8518:9:14"}],"id":10119,"name":"MemberAccess","src":"8518:18:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"lastUpdate","referencedDeclaration":9733,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10103,"type":"struct TokenWhitelist.Token storage pointer","value":"tokenInfo"},"id":10120,"name":"Identifier","src":"8538:9:14"}],"id":10121,"name":"MemberAccess","src":"8538:20:14"}],"id":10122,"name":"TupleExpression","src":"8421:138:14"}],"id":10123,"name":"Return","src":"8414:145:14"}],"id":10124,"name":"Block","src":"8351:215:14"}],"id":10125,"name":"FunctionDefinition","src":"8241:325:14"},{"attributes":{"constant":true,"documentation":"@notice This returns all of the fields for our StableCoin\n @return string of the token's symbol\n @return uint of the token's magnitude\n @return uint of the token's exchange rate to ETH\n @return bool whether the token is available\n @return bool whether the token is loadable to the TokenCard\n @return bool whether the token is burnable to the TKN Holder Contract\n @return uint of the lastUpdated time of the token's exchange rate","implemented":true,"isConstructor":false,"modifiers":[null],"name":"getStablecoinInfo","payable":false,"scope":10191,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":10126,"name":"ParameterList","src":"9084:2:14"},{"children":[{"attributes":{"constant":false,"name":"","scope":10165,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":10127,"name":"ElementaryTypeName","src":"9110:6:14"}],"id":10128,"name":"VariableDeclaration","src":"9110:6:14"},{"attributes":{"constant":false,"name":"","scope":10165,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":10129,"name":"ElementaryTypeName","src":"9118:7:14"}],"id":10130,"name":"VariableDeclaration","src":"9118:7:14"},{"attributes":{"constant":false,"name":"","scope":10165,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":10131,"name":"ElementaryTypeName","src":"9127:7:14"}],"id":10132,"name":"VariableDeclaration","src":"9127:7:14"},{"attributes":{"constant":false,"name":"","scope":10165,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":10133,"name":"ElementaryTypeName","src":"9136:4:14"}],"id":10134,"name":"VariableDeclaration","src":"9136:4:14"},{"attributes":{"constant":false,"name":"","scope":10165,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":10135,"name":"ElementaryTypeName","src":"9142:4:14"}],"id":10136,"name":"VariableDeclaration","src":"9142:4:14"},{"attributes":{"constant":false,"name":"","scope":10165,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":10137,"name":"ElementaryTypeName","src":"9148:4:14"}],"id":10138,"name":"VariableDeclaration","src":"9148:4:14"},{"attributes":{"constant":false,"name":"","scope":10165,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":10139,"name":"ElementaryTypeName","src":"9154:7:14"}],"id":10140,"name":"VariableDeclaration","src":"9154:7:14"}],"id":10141,"name":"ParameterList","src":"9109:53:14"},{"children":[{"attributes":{"assignments":[10143]},"children":[{"attributes":{"constant":false,"name":"stablecoinInfo","scope":10165,"stateVariable":false,"storageLocation":"storage","type":"struct TokenWhitelist.Token","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"Token","referencedDeclaration":9734,"type":"struct TokenWhitelist.Token"},"id":10142,"name":"UserDefinedTypeName","src":"9173:5:14"}],"id":10143,"name":"VariableDeclaration","src":"9173:28:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct TokenWhitelist.Token storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9738,"type":"mapping(address => struct TokenWhitelist.Token storage ref)","value":"_tokenInfoMap"},"id":10144,"name":"Identifier","src":"9204:13:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9766,"type":"address","value":"_stablecoin"},"id":10145,"name":"Identifier","src":"9218:11:14"}],"id":10146,"name":"IndexAccess","src":"9204:26:14"}],"id":10147,"name":"VariableDeclarationStatement","src":"9173:57:14"},{"attributes":{"functionReturnParameters":10141},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"tuple(string storage ref,uint256,uint256,bool,bool,bool,uint256)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"symbol","referencedDeclaration":9721,"type":"string storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10143,"type":"struct TokenWhitelist.Token storage pointer","value":"stablecoinInfo"},"id":10148,"name":"Identifier","src":"9248:14:14"}],"id":10149,"name":"MemberAccess","src":"9248:21:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"magnitude","referencedDeclaration":9723,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10143,"type":"struct TokenWhitelist.Token storage pointer","value":"stablecoinInfo"},"id":10150,"name":"Identifier","src":"9271:14:14"}],"id":10151,"name":"MemberAccess","src":"9271:24:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"rate","referencedDeclaration":9725,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10143,"type":"struct TokenWhitelist.Token storage pointer","value":"stablecoinInfo"},"id":10152,"name":"Identifier","src":"9297:14:14"}],"id":10153,"name":"MemberAccess","src":"9297:19:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"available","referencedDeclaration":9727,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10143,"type":"struct TokenWhitelist.Token storage pointer","value":"stablecoinInfo"},"id":10154,"name":"Identifier","src":"9318:14:14"}],"id":10155,"name":"MemberAccess","src":"9318:24:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"loadable","referencedDeclaration":9729,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10143,"type":"struct TokenWhitelist.Token storage pointer","value":"stablecoinInfo"},"id":10156,"name":"Identifier","src":"9344:14:14"}],"id":10157,"name":"MemberAccess","src":"9344:23:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"burnable","referencedDeclaration":9731,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10143,"type":"struct TokenWhitelist.Token storage pointer","value":"stablecoinInfo"},"id":10158,"name":"Identifier","src":"9369:14:14"}],"id":10159,"name":"MemberAccess","src":"9369:23:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"lastUpdate","referencedDeclaration":9733,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":10143,"type":"struct TokenWhitelist.Token storage pointer","value":"stablecoinInfo"},"id":10160,"name":"Identifier","src":"9394:14:14"}],"id":10161,"name":"MemberAccess","src":"9394:25:14"}],"id":10162,"name":"TupleExpression","src":"9247:173:14"}],"id":10163,"name":"Return","src":"9240:180:14"}],"id":10164,"name":"Block","src":"9163:264:14"}],"id":10165,"name":"FunctionDefinition","src":"9058:369:14"},{"attributes":{"constant":true,"documentation":"@notice This returns an array of our whitelisted address\n @return address[] of our whitelisted tokens","implemented":true,"isConstructor":false,"modifiers":[null],"name":"tokenAddressArray","payable":false,"scope":10191,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":10166,"name":"ParameterList","src":"9576:2:14"},{"children":[{"attributes":{"constant":false,"name":"","scope":10174,"stateVariable":false,"storageLocation":"default","type":"address[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"address[]"},"children":[{"attributes":{"name":"address","type":"address"},"id":10167,"name":"ElementaryTypeName","src":"9602:7:14"}],"id":10168,"name":"ArrayTypeName","src":"9602:9:14"}],"id":10169,"name":"VariableDeclaration","src":"9602:9:14"}],"id":10170,"name":"ParameterList","src":"9601:11:14"},{"children":[{"attributes":{"functionReturnParameters":10170},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9741,"type":"address[] storage ref","value":"_tokenAddressArray"},"id":10171,"name":"Identifier","src":"9630:18:14"}],"id":10172,"name":"Return","src":"9623:25:14"}],"id":10173,"name":"Block","src":"9613:42:14"}],"id":10174,"name":"FunctionDefinition","src":"9550:105:14"},{"attributes":{"constant":true,"documentation":"@notice This returns the address of our stablecoin of choice\n @return the address of the stablecoin contract.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"stablecoin","payable":false,"scope":10191,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":10175,"name":"ParameterList","src":"9805:2:14"},{"children":[{"attributes":{"constant":false,"name":"","scope":10182,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":10176,"name":"ElementaryTypeName","src":"9831:7:14"}],"id":10177,"name":"VariableDeclaration","src":"9831:7:14"}],"id":10178,"name":"ParameterList","src":"9830:9:14"},{"children":[{"attributes":{"functionReturnParameters":10178},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9766,"type":"address","value":"_stablecoin"},"id":10179,"name":"Identifier","src":"9857:11:14"}],"id":10180,"name":"Return","src":"9850:18:14"}],"id":10181,"name":"Block","src":"9840:35:14"}],"id":10182,"name":"FunctionDefinition","src":"9786:89:14"},{"attributes":{"constant":true,"documentation":"@notice this returns the node hash of our Oracle\n @return the oracle node registered in ENS.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"oracleNode","payable":false,"scope":10191,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":10183,"name":"ParameterList","src":"10008:2:14"},{"children":[{"attributes":{"constant":false,"name":"","scope":10190,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":10184,"name":"ElementaryTypeName","src":"10034:7:14"}],"id":10185,"name":"VariableDeclaration","src":"10034:7:14"}],"id":10186,"name":"ParameterList","src":"10033:9:14"},{"children":[{"attributes":{"functionReturnParameters":10186},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":9768,"type":"bytes32","value":"_oracleNode"},"id":10187,"name":"Identifier","src":"10060:11:14"}],"id":10188,"name":"Return","src":"10053:18:14"}],"id":10189,"name":"Block","src":"10043:35:14"}],"id":10190,"name":"FunctionDefinition","src":"9989:89:14"}],"id":10191,"name":"ContractDefinition","src":"1619:8461:14"}],"id":10192,"name":"SourceUnit","src":"774:9307:14"}},"internals/tokenWhitelistable.sol":{"AST":{"attributes":{"absolutePath":"internals/tokenWhitelistable.sol","exportedSymbols":{"TokenWhitelistable":[8626]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".25"]},"id":8448,"name":"PragmaDirective","src":"778:24:15"},{"attributes":{"SourceUnit":10192,"absolutePath":"internals/tokenWhitelist.sol","file":"./tokenWhitelist.sol","scope":8627,"symbolAliases":[null],"unitAlias":""},"id":8449,"name":"ImportDirective","src":"804:30:15"},{"attributes":{"SourceUnit":7903,"absolutePath":"internals/ensResolvable.sol","file":"../internals/ensResolvable.sol","scope":8627,"symbolAliases":[null],"unitAlias":""},"id":8450,"name":"ImportDirective","src":"835:40:15"},{"attributes":{"contractDependencies":[7902],"contractKind":"contract","documentation":"@title TokenWhitelistable implements access to the TokenWhitelist located behind ENS.","fullyImplemented":false,"linearizedBaseContracts":[8626,7902],"name":"TokenWhitelistable","scope":8627},"children":[{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"ENSResolvable","referencedDeclaration":7902,"type":"contract ENSResolvable"},"id":8451,"name":"UserDefinedTypeName","src":"999:13:15"}],"id":8452,"name":"InheritanceSpecifier","src":"999:13:15"},{"attributes":{"constant":false,"name":"_tokenWhitelistNode","scope":8626,"stateVariable":true,"storageLocation":"default","type":"bytes32","value":null,"visibility":"private"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":8453,"name":"ElementaryTypeName","src":"1104:7:15"}],"id":8454,"name":"VariableDeclaration","src":"1104:35:15"},{"attributes":{"constant":false,"documentation":"@notice Constructor initializes the TokenWhitelistable object.\n @param _tokenWhitelistNameHash_ is the ENS name hash of the TokenWhitelist.","implemented":true,"isConstructor":true,"modifiers":[null],"name":"","payable":false,"scope":8626,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_tokenWhitelistNameHash_","scope":8464,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":8455,"name":"ElementaryTypeName","src":"1313:7:15"}],"id":8456,"name":"VariableDeclaration","src":"1313:32:15"}],"id":8457,"name":"ParameterList","src":"1312:34:15"},{"attributes":{"parameters":[null]},"children":[],"id":8458,"name":"ParameterList","src":"1356:0:15"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8454,"type":"bytes32","value":"_tokenWhitelistNode"},"id":8459,"name":"Identifier","src":"1366:19:15"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8456,"type":"bytes32","value":"_tokenWhitelistNameHash_"},"id":8460,"name":"Identifier","src":"1388:24:15"}],"id":8461,"name":"Assignment","src":"1366:46:15"}],"id":8462,"name":"ExpressionStatement","src":"1366:46:15"}],"id":8463,"name":"Block","src":"1356:63:15"}],"id":8464,"name":"FunctionDefinition","src":"1301:118:15"},{"attributes":{"constant":true,"documentation":"@notice This shows what TokenWhitelist is being used\n @return the TokenWhitelist's name hash registered in ENS.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"tokenWhitelistNode","payable":false,"scope":8626,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":8465,"name":"ParameterList","src":"1579:2:15"},{"children":[{"attributes":{"constant":false,"name":"","scope":8472,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":8466,"name":"ElementaryTypeName","src":"1605:7:15"}],"id":8467,"name":"VariableDeclaration","src":"1605:7:15"}],"id":8468,"name":"ParameterList","src":"1604:9:15"},{"children":[{"attributes":{"functionReturnParameters":8468},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8454,"type":"bytes32","value":"_tokenWhitelistNode"},"id":8469,"name":"Identifier","src":"1631:19:15"}],"id":8470,"name":"Return","src":"1624:26:15"}],"id":8471,"name":"Block","src":"1614:43:15"}],"id":8472,"name":"FunctionDefinition","src":"1552:105:15"},{"attributes":{"constant":true,"documentation":"@notice This returns all of the fields for a given token\n @param _a is the address of a given token\n @return string of the token's symbol\n @return uint of the token's magnitude\n @return uint of the token's exchange rate to ETH\n @return bool whether the token is available\n @return bool whether the token is loadable to the TokenCard\n @return bool whether the token is burnable to the TKN Holder Contract\n @return uint of the lastUpdated time of the token's exchange rate","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_getTokenInfo","payable":false,"scope":8626,"stateMutability":"view","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_a","scope":8501,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":8473,"name":"ElementaryTypeName","src":"2221:7:15"}],"id":8474,"name":"VariableDeclaration","src":"2221:10:15"}],"id":8475,"name":"ParameterList","src":"2220:12:15"},{"children":[{"attributes":{"constant":false,"name":"","scope":8501,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":8476,"name":"ElementaryTypeName","src":"2256:6:15"}],"id":8477,"name":"VariableDeclaration","src":"2256:6:15"},{"attributes":{"constant":false,"name":"","scope":8501,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":8478,"name":"ElementaryTypeName","src":"2264:7:15"}],"id":8479,"name":"VariableDeclaration","src":"2264:7:15"},{"attributes":{"constant":false,"name":"","scope":8501,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":8480,"name":"ElementaryTypeName","src":"2273:7:15"}],"id":8481,"name":"VariableDeclaration","src":"2273:7:15"},{"attributes":{"constant":false,"name":"","scope":8501,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":8482,"name":"ElementaryTypeName","src":"2282:4:15"}],"id":8483,"name":"VariableDeclaration","src":"2282:4:15"},{"attributes":{"constant":false,"name":"","scope":8501,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":8484,"name":"ElementaryTypeName","src":"2288:4:15"}],"id":8485,"name":"VariableDeclaration","src":"2288:4:15"},{"attributes":{"constant":false,"name":"","scope":8501,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":8486,"name":"ElementaryTypeName","src":"2294:4:15"}],"id":8487,"name":"VariableDeclaration","src":"2294:4:15"},{"attributes":{"constant":false,"name":"","scope":8501,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":8488,"name":"ElementaryTypeName","src":"2300:7:15"}],"id":8489,"name":"VariableDeclaration","src":"2300:7:15"}],"id":8490,"name":"ParameterList","src":"2255:53:15"},{"children":[{"attributes":{"functionReturnParameters":8490},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple(string memory,uint256,uint256,bool,bool,bool,uint256)","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"getTokenInfo","referencedDeclaration":9640,"type":"function (address) view external returns (string memory,uint256,uint256,bool,bool,bool,uint256)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract ITokenWhitelist","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":9678,"type":"type(contract ITokenWhitelist)","value":"ITokenWhitelist"},"id":8491,"name":"Identifier","src":"2326:15:15"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[null],"referencedDeclaration":7901,"type":"function (bytes32) view returns (address)","value":"_ensResolve"},"id":8492,"name":"Identifier","src":"2342:11:15"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8454,"type":"bytes32","value":"_tokenWhitelistNode"},"id":8493,"name":"Identifier","src":"2354:19:15"}],"id":8494,"name":"FunctionCall","src":"2342:32:15"}],"id":8495,"name":"FunctionCall","src":"2326:49:15"}],"id":8496,"name":"MemberAccess","src":"2326:62:15"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8474,"type":"address","value":"_a"},"id":8497,"name":"Identifier","src":"2389:2:15"}],"id":8498,"name":"FunctionCall","src":"2326:66:15"}],"id":8499,"name":"Return","src":"2319:73:15"}],"id":8500,"name":"Block","src":"2309:90:15"}],"id":8501,"name":"FunctionDefinition","src":"2198:201:15"},{"attributes":{"constant":true,"documentation":"@notice This returns all of the fields for our stablecoin token\n @return string of the token's symbol\n @return uint of the token's magnitude\n @return uint of the token's exchange rate to ETH\n @return bool whether the token is available\n @return bool whether the token is loadable to the TokenCard\n @return bool whether the token is burnable to the TKN Holder Contract\n @return uint of the lastUpdated time of the token's exchange rate","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_getStablecoinInfo","payable":false,"scope":8626,"stateMutability":"view","superFunction":null,"visibility":"internal"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":8502,"name":"ParameterList","src":"2924:2:15"},{"children":[{"attributes":{"constant":false,"name":"","scope":8527,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":8503,"name":"ElementaryTypeName","src":"2950:6:15"}],"id":8504,"name":"VariableDeclaration","src":"2950:6:15"},{"attributes":{"constant":false,"name":"","scope":8527,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":8505,"name":"ElementaryTypeName","src":"2958:7:15"}],"id":8506,"name":"VariableDeclaration","src":"2958:7:15"},{"attributes":{"constant":false,"name":"","scope":8527,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":8507,"name":"ElementaryTypeName","src":"2967:7:15"}],"id":8508,"name":"VariableDeclaration","src":"2967:7:15"},{"attributes":{"constant":false,"name":"","scope":8527,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":8509,"name":"ElementaryTypeName","src":"2976:4:15"}],"id":8510,"name":"VariableDeclaration","src":"2976:4:15"},{"attributes":{"constant":false,"name":"","scope":8527,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":8511,"name":"ElementaryTypeName","src":"2982:4:15"}],"id":8512,"name":"VariableDeclaration","src":"2982:4:15"},{"attributes":{"constant":false,"name":"","scope":8527,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":8513,"name":"ElementaryTypeName","src":"2988:4:15"}],"id":8514,"name":"VariableDeclaration","src":"2988:4:15"},{"attributes":{"constant":false,"name":"","scope":8527,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":8515,"name":"ElementaryTypeName","src":"2994:7:15"}],"id":8516,"name":"VariableDeclaration","src":"2994:7:15"}],"id":8517,"name":"ParameterList","src":"2949:53:15"},{"children":[{"attributes":{"functionReturnParameters":8517},"children":[{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple(string memory,uint256,uint256,bool,bool,bool,uint256)","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"getStablecoinInfo","referencedDeclaration":9657,"type":"function () view external returns (string memory,uint256,uint256,bool,bool,bool,uint256)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract ITokenWhitelist","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":9678,"type":"type(contract ITokenWhitelist)","value":"ITokenWhitelist"},"id":8518,"name":"Identifier","src":"3020:15:15"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[null],"referencedDeclaration":7901,"type":"function (bytes32) view returns (address)","value":"_ensResolve"},"id":8519,"name":"Identifier","src":"3036:11:15"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8454,"type":"bytes32","value":"_tokenWhitelistNode"},"id":8520,"name":"Identifier","src":"3048:19:15"}],"id":8521,"name":"FunctionCall","src":"3036:32:15"}],"id":8522,"name":"FunctionCall","src":"3020:49:15"}],"id":8523,"name":"MemberAccess","src":"3020:67:15"}],"id":8524,"name":"FunctionCall","src":"3020:69:15"}],"id":8525,"name":"Return","src":"3013:76:15"}],"id":8526,"name":"Block","src":"3003:93:15"}],"id":8527,"name":"FunctionDefinition","src":"2897:199:15"},{"attributes":{"constant":true,"documentation":"@notice This returns an array of our whitelisted address\n @return address[] of our whitelisted tokens","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_tokenAddressArray","payable":false,"scope":8626,"stateMutability":"view","superFunction":null,"visibility":"internal"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":8528,"name":"ParameterList","src":"3246:2:15"},{"children":[{"attributes":{"constant":false,"name":"","scope":8542,"stateVariable":false,"storageLocation":"default","type":"address[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"address[]"},"children":[{"attributes":{"name":"address","type":"address"},"id":8529,"name":"ElementaryTypeName","src":"3272:7:15"}],"id":8530,"name":"ArrayTypeName","src":"3272:9:15"}],"id":8531,"name":"VariableDeclaration","src":"3272:9:15"}],"id":8532,"name":"ParameterList","src":"3271:11:15"},{"children":[{"attributes":{"functionReturnParameters":8532},"children":[{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address[] memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"tokenAddressArray","referencedDeclaration":9663,"type":"function () view external returns (address[] memory)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract ITokenWhitelist","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":9678,"type":"type(contract ITokenWhitelist)","value":"ITokenWhitelist"},"id":8533,"name":"Identifier","src":"3300:15:15"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[null],"referencedDeclaration":7901,"type":"function (bytes32) view returns (address)","value":"_ensResolve"},"id":8534,"name":"Identifier","src":"3316:11:15"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8454,"type":"bytes32","value":"_tokenWhitelistNode"},"id":8535,"name":"Identifier","src":"3328:19:15"}],"id":8536,"name":"FunctionCall","src":"3316:32:15"}],"id":8537,"name":"FunctionCall","src":"3300:49:15"}],"id":8538,"name":"MemberAccess","src":"3300:67:15"}],"id":8539,"name":"FunctionCall","src":"3300:69:15"}],"id":8540,"name":"Return","src":"3293:76:15"}],"id":8541,"name":"Block","src":"3283:93:15"}],"id":8542,"name":"FunctionDefinition","src":"3219:157:15"},{"attributes":{"constant":false,"documentation":"@notice Update ERC20 token exchange rate.\n @param _token ERC20 token contract address.\n @param _rate ERC20 token exchange rate in wei.\n @param _updateDate date for the token updates. This will be compared to when oracle updates are received.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_updateTokenRate","payable":false,"scope":8626,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_token","scope":8563,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":8543,"name":"ElementaryTypeName","src":"3679:7:15"}],"id":8544,"name":"VariableDeclaration","src":"3679:14:15"},{"attributes":{"constant":false,"name":"_rate","scope":8563,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":8545,"name":"ElementaryTypeName","src":"3695:4:15"}],"id":8546,"name":"VariableDeclaration","src":"3695:10:15"},{"attributes":{"constant":false,"name":"_updateDate","scope":8563,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":8547,"name":"ElementaryTypeName","src":"3707:4:15"}],"id":8548,"name":"VariableDeclaration","src":"3707:16:15"}],"id":8549,"name":"ParameterList","src":"3678:46:15"},{"attributes":{"parameters":[null]},"children":[],"id":8550,"name":"ParameterList","src":"3734:0:15"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"updateTokenRate","referencedDeclaration":9672,"type":"function (address,uint256,uint256) external"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract ITokenWhitelist","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":9678,"type":"type(contract ITokenWhitelist)","value":"ITokenWhitelist"},"id":8551,"name":"Identifier","src":"3744:15:15"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[null],"referencedDeclaration":7901,"type":"function (bytes32) view returns (address)","value":"_ensResolve"},"id":8552,"name":"Identifier","src":"3760:11:15"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8454,"type":"bytes32","value":"_tokenWhitelistNode"},"id":8553,"name":"Identifier","src":"3772:19:15"}],"id":8554,"name":"FunctionCall","src":"3760:32:15"}],"id":8555,"name":"FunctionCall","src":"3744:49:15"}],"id":8556,"name":"MemberAccess","src":"3744:65:15"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8544,"type":"address","value":"_token"},"id":8557,"name":"Identifier","src":"3810:6:15"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8546,"type":"uint256","value":"_rate"},"id":8558,"name":"Identifier","src":"3818:5:15"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8548,"type":"uint256","value":"_updateDate"},"id":8559,"name":"Identifier","src":"3825:11:15"}],"id":8560,"name":"FunctionCall","src":"3744:93:15"}],"id":8561,"name":"ExpressionStatement","src":"3744:93:15"}],"id":8562,"name":"Block","src":"3734:110:15"}],"id":8563,"name":"FunctionDefinition","src":"3653:191:15"},{"attributes":{"constant":true,"documentation":"@notice Checks whether a token is available\n @return bool available or not","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_isTokenAvailable","payable":false,"scope":8626,"stateMutability":"view","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_a","scope":8579,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":8564,"name":"ElementaryTypeName","src":"3967:7:15"}],"id":8565,"name":"VariableDeclaration","src":"3967:10:15"}],"id":8566,"name":"ParameterList","src":"3966:12:15"},{"children":[{"attributes":{"constant":false,"name":"","scope":8579,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":8567,"name":"ElementaryTypeName","src":"4002:4:15"}],"id":8568,"name":"VariableDeclaration","src":"4002:4:15"}],"id":8569,"name":"ParameterList","src":"4001:6:15"},{"children":[{"attributes":{"assignments":[null,null,null,8571,null,null,null]},"children":[{"attributes":{"constant":false,"name":"available","scope":8579,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":8570,"name":"ElementaryTypeName","src":"4026:4:15"}],"id":8571,"name":"VariableDeclaration","src":"4026:14:15"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple(string memory,uint256,uint256,bool,bool,bool,uint256)","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":8501,"type":"function (address) view returns (string memory,uint256,uint256,bool,bool,bool,uint256)","value":"_getTokenInfo"},"id":8572,"name":"Identifier","src":"4050:13:15"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8565,"type":"address","value":"_a"},"id":8573,"name":"Identifier","src":"4064:2:15"}],"id":8574,"name":"FunctionCall","src":"4050:17:15"}],"id":8575,"name":"VariableDeclarationStatement","src":"4018:49:15"},{"attributes":{"functionReturnParameters":8569},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8571,"type":"bool","value":"available"},"id":8576,"name":"Identifier","src":"4084:9:15"}],"id":8577,"name":"Return","src":"4077:16:15"}],"id":8578,"name":"Block","src":"4008:92:15"}],"id":8579,"name":"FunctionDefinition","src":"3940:160:15"},{"attributes":{"constant":true,"documentation":"@notice Checks whether a token is burnable\n @return bool burnable or not","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_isTokenBurnable","payable":false,"scope":8626,"stateMutability":"view","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_a","scope":8595,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":8580,"name":"ElementaryTypeName","src":"4220:7:15"}],"id":8581,"name":"VariableDeclaration","src":"4220:10:15"}],"id":8582,"name":"ParameterList","src":"4219:12:15"},{"children":[{"attributes":{"constant":false,"name":"","scope":8595,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":8583,"name":"ElementaryTypeName","src":"4255:4:15"}],"id":8584,"name":"VariableDeclaration","src":"4255:4:15"}],"id":8585,"name":"ParameterList","src":"4254:6:15"},{"children":[{"attributes":{"assignments":[null,null,null,null,null,8587,null]},"children":[{"attributes":{"constant":false,"name":"burnable","scope":8595,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":8586,"name":"ElementaryTypeName","src":"4283:4:15"}],"id":8587,"name":"VariableDeclaration","src":"4283:13:15"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple(string memory,uint256,uint256,bool,bool,bool,uint256)","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":8501,"type":"function (address) view returns (string memory,uint256,uint256,bool,bool,bool,uint256)","value":"_getTokenInfo"},"id":8588,"name":"Identifier","src":"4302:13:15"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8581,"type":"address","value":"_a"},"id":8589,"name":"Identifier","src":"4316:2:15"}],"id":8590,"name":"FunctionCall","src":"4302:17:15"}],"id":8591,"name":"VariableDeclarationStatement","src":"4271:48:15"},{"attributes":{"functionReturnParameters":8585},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8587,"type":"bool","value":"burnable"},"id":8592,"name":"Identifier","src":"4336:8:15"}],"id":8593,"name":"Return","src":"4329:15:15"}],"id":8594,"name":"Block","src":"4261:90:15"}],"id":8595,"name":"FunctionDefinition","src":"4194:157:15"},{"attributes":{"constant":true,"documentation":"@notice Checks whether a token is loadable\n @return bool loadable or not","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_isTokenLoadable","payable":false,"scope":8626,"stateMutability":"view","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_a","scope":8611,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":8596,"name":"ElementaryTypeName","src":"4471:7:15"}],"id":8597,"name":"VariableDeclaration","src":"4471:10:15"}],"id":8598,"name":"ParameterList","src":"4470:12:15"},{"children":[{"attributes":{"constant":false,"name":"","scope":8611,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":8599,"name":"ElementaryTypeName","src":"4506:4:15"}],"id":8600,"name":"VariableDeclaration","src":"4506:4:15"}],"id":8601,"name":"ParameterList","src":"4505:6:15"},{"children":[{"attributes":{"assignments":[null,null,null,null,8603,null,null]},"children":[{"attributes":{"constant":false,"name":"loadable","scope":8611,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":8602,"name":"ElementaryTypeName","src":"4532:4:15"}],"id":8603,"name":"VariableDeclaration","src":"4532:13:15"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple(string memory,uint256,uint256,bool,bool,bool,uint256)","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":8501,"type":"function (address) view returns (string memory,uint256,uint256,bool,bool,bool,uint256)","value":"_getTokenInfo"},"id":8604,"name":"Identifier","src":"4553:13:15"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8597,"type":"address","value":"_a"},"id":8605,"name":"Identifier","src":"4567:2:15"}],"id":8606,"name":"FunctionCall","src":"4553:17:15"}],"id":8607,"name":"VariableDeclarationStatement","src":"4522:48:15"},{"attributes":{"functionReturnParameters":8601},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8603,"type":"bool","value":"loadable"},"id":8608,"name":"Identifier","src":"4587:8:15"}],"id":8609,"name":"Return","src":"4580:15:15"}],"id":8610,"name":"Block","src":"4512:90:15"}],"id":8611,"name":"FunctionDefinition","src":"4445:157:15"},{"attributes":{"constant":true,"documentation":"@notice This gets the address of the stablecoin\n @return the address of the stablecoin contract.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_stablecoin","payable":false,"scope":8626,"stateMutability":"view","superFunction":null,"visibility":"internal"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":8612,"name":"ParameterList","src":"4740:2:15"},{"children":[{"attributes":{"constant":false,"name":"","scope":8625,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":8613,"name":"ElementaryTypeName","src":"4766:7:15"}],"id":8614,"name":"VariableDeclaration","src":"4766:7:15"}],"id":8615,"name":"ParameterList","src":"4765:9:15"},{"children":[{"attributes":{"functionReturnParameters":8615},"children":[{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"stablecoin","referencedDeclaration":9677,"type":"function () view external returns (address)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract ITokenWhitelist","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":9678,"type":"type(contract ITokenWhitelist)","value":"ITokenWhitelist"},"id":8616,"name":"Identifier","src":"4792:15:15"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[null],"referencedDeclaration":7901,"type":"function (bytes32) view returns (address)","value":"_ensResolve"},"id":8617,"name":"Identifier","src":"4808:11:15"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8454,"type":"bytes32","value":"_tokenWhitelistNode"},"id":8618,"name":"Identifier","src":"4820:19:15"}],"id":8619,"name":"FunctionCall","src":"4808:32:15"}],"id":8620,"name":"FunctionCall","src":"4792:49:15"}],"id":8621,"name":"MemberAccess","src":"4792:60:15"}],"id":8622,"name":"FunctionCall","src":"4792:62:15"}],"id":8623,"name":"Return","src":"4785:69:15"}],"id":8624,"name":"Block","src":"4775:86:15"}],"id":8625,"name":"FunctionDefinition","src":"4720:141:15"}],"id":8626,"name":"ContractDefinition","src":"968:3896:15"}],"id":8627,"name":"SourceUnit","src":"778:4087:15"}},"oracle.sol":{"AST":{"attributes":{"absolutePath":"oracle.sol","exportedSymbols":{"Oracle":[1098]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".25"]},"id":1,"name":"PragmaDirective","src":"770:24:16"},{"attributes":{"SourceUnit":7683,"absolutePath":"internals/controllable.sol","file":"./internals/controllable.sol","scope":1099,"symbolAliases":[null],"unitAlias":""},"id":2,"name":"ImportDirective","src":"796:38:16"},{"attributes":{"SourceUnit":7627,"absolutePath":"internals/claimable.sol","file":"./internals/claimable.sol","scope":1099,"symbolAliases":[null],"unitAlias":""},"id":3,"name":"ImportDirective","src":"835:35:16"},{"attributes":{"SourceUnit":7903,"absolutePath":"internals/ensResolvable.sol","file":"./internals/ensResolvable.sol","scope":1099,"symbolAliases":[null],"unitAlias":""},"id":4,"name":"ImportDirective","src":"871:39:16"},{"attributes":{"SourceUnit":7852,"absolutePath":"internals/date.sol","file":"./internals/date.sol","scope":1099,"symbolAliases":[null],"unitAlias":""},"id":5,"name":"ImportDirective","src":"911:30:16"},{"attributes":{"SourceUnit":8447,"absolutePath":"internals/parseIntScientific.sol","file":"./internals/parseIntScientific.sol","scope":1099,"symbolAliases":[null],"unitAlias":""},"id":6,"name":"ImportDirective","src":"942:44:16"},{"attributes":{"SourceUnit":8627,"absolutePath":"internals/tokenWhitelistable.sol","file":"./internals/tokenWhitelistable.sol","scope":1099,"symbolAliases":[null],"unitAlias":""},"id":7,"name":"ImportDirective","src":"987:44:16"},{"attributes":{"SourceUnit":1227,"absolutePath":"externals/SafeMath.sol","file":"./externals/SafeMath.sol","scope":1099,"symbolAliases":[null],"unitAlias":""},"id":8,"name":"ImportDirective","src":"1032:34:16"},{"attributes":{"SourceUnit":7574,"absolutePath":"externals/oraclizeAPI_0.4.25.sol","file":"./externals/oraclizeAPI_0.4.25.sol","scope":1099,"symbolAliases":[null],"unitAlias":""},"id":9,"name":"ImportDirective","src":"1067:44:16"},{"attributes":{"SourceUnit":1548,"absolutePath":"externals/base64.sol","file":"./externals/base64.sol","scope":1099,"symbolAliases":[null],"unitAlias":""},"id":10,"name":"ImportDirective","src":"1112:32:16"},{"attributes":{"contractDependencies":[1547,7573,7626,7682,7851,7902,8446,8626],"contractKind":"contract","documentation":"@title Oracle provides asset exchange rates and conversion functionality.","fullyImplemented":true,"linearizedBaseContracts":[1098,8626,8446,7682,7851,1547,7626,7573,7902],"name":"Oracle","scope":1099},"children":[{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"ENSResolvable","referencedDeclaration":7902,"type":"contract ENSResolvable"},"id":11,"name":"UserDefinedTypeName","src":"1244:13:16"}],"id":12,"name":"InheritanceSpecifier","src":"1244:13:16"},{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"usingOraclize","referencedDeclaration":7573,"type":"contract usingOraclize"},"id":13,"name":"UserDefinedTypeName","src":"1259:13:16"}],"id":14,"name":"InheritanceSpecifier","src":"1259:13:16"},{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"Claimable","referencedDeclaration":7626,"type":"contract Claimable"},"id":15,"name":"UserDefinedTypeName","src":"1274:9:16"}],"id":16,"name":"InheritanceSpecifier","src":"1274:9:16"},{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"Base64","referencedDeclaration":1547,"type":"contract Base64"},"id":17,"name":"UserDefinedTypeName","src":"1285:6:16"}],"id":18,"name":"InheritanceSpecifier","src":"1285:6:16"},{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"Date","referencedDeclaration":7851,"type":"contract Date"},"id":19,"name":"UserDefinedTypeName","src":"1293:4:16"}],"id":20,"name":"InheritanceSpecifier","src":"1293:4:16"},{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"Controllable","referencedDeclaration":7682,"type":"contract Controllable"},"id":21,"name":"UserDefinedTypeName","src":"1299:12:16"}],"id":22,"name":"InheritanceSpecifier","src":"1299:12:16"},{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"ParseIntScientific","referencedDeclaration":8446,"type":"contract ParseIntScientific"},"id":23,"name":"UserDefinedTypeName","src":"1313:18:16"}],"id":24,"name":"InheritanceSpecifier","src":"1313:18:16"},{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"TokenWhitelistable","referencedDeclaration":8626,"type":"contract TokenWhitelistable"},"id":25,"name":"UserDefinedTypeName","src":"1333:18:16"}],"id":26,"name":"InheritanceSpecifier","src":"1333:18:16"},{"attributes":{"typeName":null},"children":[{"attributes":{"contractScope":null,"name":"strings","referencedDeclaration":12043,"type":"library strings"},"id":27,"name":"UserDefinedTypeName","src":"1364:7:16"}],"id":28,"name":"UsingForDirective","src":"1358:20:16"},{"children":[{"attributes":{"contractScope":null,"name":"SafeMath","referencedDeclaration":1226,"type":"library SafeMath"},"id":29,"name":"UserDefinedTypeName","src":"1389:8:16"},{"attributes":{"name":"uint256","type":"uint256"},"id":30,"name":"ElementaryTypeName","src":"1402:7:16"}],"id":31,"name":"UsingForDirective","src":"1383:27:16"},{"attributes":{"anonymous":false,"documentation":"**************","name":"SetGasPrice"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_sender","scope":37,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":32,"name":"ElementaryTypeName","src":"1511:7:16"}],"id":33,"name":"VariableDeclaration","src":"1511:15:16"},{"attributes":{"constant":false,"indexed":false,"name":"_gasPrice","scope":37,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":34,"name":"ElementaryTypeName","src":"1528:4:16"}],"id":35,"name":"VariableDeclaration","src":"1528:14:16"}],"id":36,"name":"ParameterList","src":"1510:33:16"}],"id":37,"name":"EventDefinition","src":"1493:51:16"},{"attributes":{"anonymous":false,"documentation":null,"name":"RequestedUpdate"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_symbol","scope":41,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":38,"name":"ElementaryTypeName","src":"1572:6:16"}],"id":39,"name":"VariableDeclaration","src":"1572:14:16"}],"id":40,"name":"ParameterList","src":"1571:16:16"}],"id":41,"name":"EventDefinition","src":"1550:38:16"},{"attributes":{"anonymous":false,"documentation":null,"name":"FailedUpdateRequest"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_reason","scope":45,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":42,"name":"ElementaryTypeName","src":"1619:6:16"}],"id":43,"name":"VariableDeclaration","src":"1619:14:16"}],"id":44,"name":"ParameterList","src":"1618:16:16"}],"id":45,"name":"EventDefinition","src":"1593:42:16"},{"attributes":{"anonymous":false,"documentation":null,"name":"VerifiedProof"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_publicKey","scope":51,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":46,"name":"ElementaryTypeName","src":"1661:5:16"}],"id":47,"name":"VariableDeclaration","src":"1661:16:16"},{"attributes":{"constant":false,"indexed":false,"name":"_result","scope":51,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":48,"name":"ElementaryTypeName","src":"1679:6:16"}],"id":49,"name":"VariableDeclaration","src":"1679:14:16"}],"id":50,"name":"ParameterList","src":"1660:34:16"}],"id":51,"name":"EventDefinition","src":"1641:54:16"},{"attributes":{"anonymous":false,"documentation":null,"name":"SetCryptoComparePublicKey"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_sender","scope":57,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":52,"name":"ElementaryTypeName","src":"1733:7:16"}],"id":53,"name":"VariableDeclaration","src":"1733:15:16"},{"attributes":{"constant":false,"indexed":false,"name":"_publicKey","scope":57,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":54,"name":"ElementaryTypeName","src":"1750:5:16"}],"id":55,"name":"VariableDeclaration","src":"1750:16:16"}],"id":56,"name":"ParameterList","src":"1732:35:16"}],"id":57,"name":"EventDefinition","src":"1701:67:16"},{"attributes":{"constant":true,"name":"_PROOF_LEN","scope":1098,"stateVariable":true,"storageLocation":"default","type":"uint256","visibility":"private"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":58,"name":"ElementaryTypeName","src":"1859:4:16"},{"attributes":{"argumentTypes":null,"hexvalue":"313635","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 165","value":"165"},"id":59,"name":"Literal","src":"1894:3:16"}],"id":60,"name":"VariableDeclaration","src":"1859:38:16"},{"attributes":{"constant":true,"name":"_ECDSA_SIG_LEN","scope":1098,"stateVariable":true,"storageLocation":"default","type":"uint256","visibility":"private"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":61,"name":"ElementaryTypeName","src":"1903:4:16"},{"attributes":{"argumentTypes":null,"hexvalue":"3635","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 65","value":"65"},"id":62,"name":"Literal","src":"1942:2:16"}],"id":63,"name":"VariableDeclaration","src":"1903:41:16"},{"attributes":{"constant":true,"name":"_ENCODING_BYTES","scope":1098,"stateVariable":true,"storageLocation":"default","type":"uint256","visibility":"private"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":64,"name":"ElementaryTypeName","src":"1950:4:16"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":65,"name":"Literal","src":"1990:1:16"}],"id":66,"name":"VariableDeclaration","src":"1950:41:16"},{"attributes":{"constant":true,"name":"_HEADERS_LEN","scope":1098,"stateVariable":true,"storageLocation":"default","type":"uint256","visibility":"private"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":67,"name":"ElementaryTypeName","src":"1997:4:16"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":60,"type":"uint256","value":"_PROOF_LEN"},"id":68,"name":"Identifier","src":"2034:10:16"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":69,"name":"Literal","src":"2047:1:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":66,"type":"uint256","value":"_ENCODING_BYTES"},"id":70,"name":"Identifier","src":"2051:15:16"}],"id":71,"name":"BinaryOperation","src":"2047:19:16"}],"id":72,"name":"BinaryOperation","src":"2034:32:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":63,"type":"uint256","value":"_ECDSA_SIG_LEN"},"id":73,"name":"Identifier","src":"2069:14:16"}],"id":74,"name":"BinaryOperation","src":"2034:49:16"}],"id":75,"name":"VariableDeclaration","src":"1997:86:16"},{"attributes":{"constant":true,"name":"_DIGEST_BASE64_LEN","scope":1098,"stateVariable":true,"storageLocation":"default","type":"uint256","visibility":"private"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":76,"name":"ElementaryTypeName","src":"2143:4:16"},{"attributes":{"argumentTypes":null,"hexvalue":"3434","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 44","value":"44"},"id":77,"name":"Literal","src":"2186:2:16"}],"id":78,"name":"VariableDeclaration","src":"2143:45:16"},{"attributes":{"constant":true,"name":"_DIGEST_OFFSET","scope":1098,"stateVariable":true,"storageLocation":"default","type":"uint256","visibility":"private"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":79,"name":"ElementaryTypeName","src":"2271:4:16"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":75,"type":"uint256","value":"_HEADERS_LEN"},"id":80,"name":"Identifier","src":"2310:12:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":78,"type":"uint256","value":"_DIGEST_BASE64_LEN"},"id":81,"name":"Identifier","src":"2325:18:16"}],"id":82,"name":"BinaryOperation","src":"2310:33:16"}],"id":83,"name":"VariableDeclaration","src":"2271:72:16"},{"attributes":{"constant":true,"name":"_MAX_BYTE_SIZE","scope":1098,"stateVariable":true,"storageLocation":"default","type":"uint256","visibility":"private"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":84,"name":"ElementaryTypeName","src":"2417:4:16"},{"attributes":{"argumentTypes":null,"hexvalue":"323536","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 256","value":"256"},"id":85,"name":"Literal","src":"2456:3:16"}],"id":86,"name":"VariableDeclaration","src":"2417:42:16"},{"attributes":{"constant":true,"name":"_PREFIX_HASH","scope":1098,"stateVariable":true,"storageLocation":"default","type":"bytes32","visibility":"private"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":87,"name":"ElementaryTypeName","src":"2549:7:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7a2d79c44ec25893f1deb7192af566af2e14c179cce8e62e025bd750d6e078e2","typeString":"literal_string \"{\"ETH\":\""}],"overloadedDeclarations":[null],"referencedDeclaration":12052,"type":"function () pure returns (bytes32)","value":"keccak256"},"id":88,"name":"Identifier","src":"2589:9:16"},{"attributes":{"argumentTypes":null,"hexvalue":"7b22455448223a","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"{\"ETH\":\"","value":"{\"ETH\":"},"id":89,"name":"Literal","src":"2599:11:16"}],"id":90,"name":"FunctionCall","src":"2589:22:16"}],"id":91,"name":"VariableDeclaration","src":"2549:62:16"},{"attributes":{"constant":false,"name":"cryptoCompareAPIPublicKey","scope":1098,"stateVariable":true,"storageLocation":"default","type":"bytes","value":null,"visibility":"public"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":92,"name":"ElementaryTypeName","src":"2618:5:16"}],"id":93,"name":"VariableDeclaration","src":"2618:38:16"},{"attributes":{"constant":false,"name":"_queryToToken","scope":1098,"stateVariable":true,"storageLocation":"default","type":"mapping(bytes32 => address)","value":null,"visibility":"private"},"children":[{"attributes":{"type":"mapping(bytes32 => address)"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":94,"name":"ElementaryTypeName","src":"2670:7:16"},{"attributes":{"name":"address","type":"address"},"id":95,"name":"ElementaryTypeName","src":"2681:7:16"}],"id":96,"name":"Mapping","src":"2662:27:16"}],"id":97,"name":"VariableDeclaration","src":"2662:49:16"},{"attributes":{"constant":false,"documentation":"@notice Construct the oracle with multiple controllers, address resolver and custom gas price.\n @param _resolver_ is the address of the oraclize resolver\n @param _ens_ is the address of the ENS.\n @param _controllerNameHash_ is the ENS name hash of the Controller.\n @param _tokenWhitelistNameHash_ is the ENS name hash of the Token Whitelist.","implemented":true,"isConstructor":true,"name":"","payable":false,"scope":1098,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"_resolver_","scope":136,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":98,"name":"ElementaryTypeName","src":"3108:7:16"}],"id":99,"name":"VariableDeclaration","src":"3108:18:16"},{"attributes":{"constant":false,"name":"_ens_","scope":136,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":100,"name":"ElementaryTypeName","src":"3128:7:16"}],"id":101,"name":"VariableDeclaration","src":"3128:13:16"},{"attributes":{"constant":false,"name":"_controllerNameHash_","scope":136,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":102,"name":"ElementaryTypeName","src":"3143:7:16"}],"id":103,"name":"VariableDeclaration","src":"3143:28:16"},{"attributes":{"constant":false,"name":"_tokenWhitelistNameHash_","scope":136,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":104,"name":"ElementaryTypeName","src":"3173:7:16"}],"id":105,"name":"VariableDeclaration","src":"3173:32:16"}],"id":106,"name":"ParameterList","src":"3107:99:16"},{"attributes":{"parameters":[null]},"children":[],"id":116,"name":"ParameterList","src":"3315:0:16"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7902,"type":"type(contract ENSResolvable)","value":"ENSResolvable"},"id":107,"name":"Identifier","src":"3207:13:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":101,"type":"address","value":"_ens_"},"id":108,"name":"Identifier","src":"3221:5:16"}],"id":109,"name":"ModifierInvocation","src":"3207:20:16"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7682,"type":"type(contract Controllable)","value":"Controllable"},"id":110,"name":"Identifier","src":"3228:12:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":103,"type":"bytes32","value":"_controllerNameHash_"},"id":111,"name":"Identifier","src":"3241:20:16"}],"id":112,"name":"ModifierInvocation","src":"3228:34:16"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":8626,"type":"type(contract TokenWhitelistable)","value":"TokenWhitelistable"},"id":113,"name":"Identifier","src":"3263:18:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":105,"type":"bytes32","value":"_tokenWhitelistNameHash_"},"id":114,"name":"Identifier","src":"3282:24:16"}],"id":115,"name":"ModifierInvocation","src":"3263:44:16"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":93,"type":"bytes storage ref","value":"cryptoCompareAPIPublicKey"},"id":117,"name":"Identifier","src":"3325:25:16"},{"attributes":{"argumentTypes":null,"hexvalue":"a0f4f688350018ad1b9785991c0bde5f704b005dc79972b114dbed4a615a983710bfc647ebe5a320daa28771dce6a2d104f5efa2e4a85ba3760b76d46f8571ca","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string (contains invalid UTF-8 sequence at position 0)","value":null},"id":118,"name":"Literal","src":"3353:133:16"}],"id":119,"name":"Assignment","src":"3325:161:16"}],"id":120,"name":"ExpressionStatement","src":"3325:161:16"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"contract OraclizeAddrResolverI"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2255,"type":"contract OraclizeAddrResolverI","value":"OAR"},"id":121,"name":"Identifier","src":"3496:3:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract OraclizeAddrResolverI","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":1665,"type":"type(contract OraclizeAddrResolverI)","value":"OraclizeAddrResolverI"},"id":122,"name":"Identifier","src":"3502:21:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":99,"type":"address","value":"_resolver_"},"id":123,"name":"Identifier","src":"3524:10:16"}],"id":124,"name":"FunctionCall","src":"3502:33:16"}],"id":125,"name":"Assignment","src":"3496:39:16"}],"id":126,"name":"ExpressionStatement","src":"3496:39:16"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"}],"overloadedDeclarations":[null],"referencedDeclaration":5560,"type":"function (uint256)","value":"oraclize_setCustomGasPrice"},"id":127,"name":"Identifier","src":"3545:26:16"},{"attributes":{"argumentTypes":null,"hexvalue":"3130303030303030303030","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 10000000000","value":"10000000000"},"id":128,"name":"Literal","src":"3572:11:16"}],"id":129,"name":"FunctionCall","src":"3545:39:16"}],"id":130,"name":"ExpressionStatement","src":"3545:39:16"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"overloadedDeclarations":[null],"referencedDeclaration":5547,"type":"function (bytes1)","value":"oraclize_setProof"},"id":131,"name":"Identifier","src":"3594:17:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2235,"type":"bytes1","value":"proofType_Native"},"id":132,"name":"Identifier","src":"3612:16:16"}],"id":133,"name":"FunctionCall","src":"3594:35:16"}],"id":134,"name":"ExpressionStatement","src":"3594:35:16"}],"id":135,"name":"Block","src":"3315:321:16"}],"id":136,"name":"FunctionDefinition","src":"3096:540:16"},{"attributes":{"constant":false,"documentation":"@notice Updates the Crypto Compare public API key.\n @param _publicKey new Crypto Compare public API key","implemented":true,"isConstructor":false,"name":"updateCryptoCompareAPIPublicKey","payable":false,"scope":1098,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_publicKey","scope":154,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":137,"name":"ElementaryTypeName","src":"3802:5:16"}],"id":138,"name":"VariableDeclaration","src":"3802:16:16"}],"id":139,"name":"ParameterList","src":"3801:18:16"},{"attributes":{"parameters":[null]},"children":[],"id":142,"name":"ParameterList","src":"3844:0:16"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7656,"type":"modifier ()","value":"onlyController"},"id":140,"name":"Identifier","src":"3829:14:16"}],"id":141,"name":"ModifierInvocation","src":"3829:14:16"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":93,"type":"bytes storage ref","value":"cryptoCompareAPIPublicKey"},"id":143,"name":"Identifier","src":"3854:25:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":138,"type":"bytes calldata","value":"_publicKey"},"id":144,"name":"Identifier","src":"3882:10:16"}],"id":145,"name":"Assignment","src":"3854:38:16"}],"id":146,"name":"ExpressionStatement","src":"3854:38:16"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"overloadedDeclarations":[null],"referencedDeclaration":57,"type":"function (address,bytes memory)","value":"SetCryptoComparePublicKey"},"id":147,"name":"Identifier","src":"3907:25:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":12058,"type":"msg","value":"msg"},"id":148,"name":"Identifier","src":"3933:3:16"}],"id":149,"name":"MemberAccess","src":"3933:10:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":138,"type":"bytes calldata","value":"_publicKey"},"id":150,"name":"Identifier","src":"3945:10:16"}],"id":151,"name":"FunctionCall","src":"3907:49:16"}],"id":152,"name":"EmitStatement","src":"3902:54:16"}],"id":153,"name":"Block","src":"3844:119:16"}],"id":154,"name":"FunctionDefinition","src":"3761:202:16"},{"attributes":{"constant":false,"documentation":"@notice Sets the gas price used by Oraclize query.\n @param _gasPrice in wei for Oraclize","implemented":true,"isConstructor":false,"name":"setCustomGasPrice","payable":false,"scope":1098,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_gasPrice","scope":172,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":155,"name":"ElementaryTypeName","src":"4100:4:16"}],"id":156,"name":"VariableDeclaration","src":"4100:14:16"}],"id":157,"name":"ParameterList","src":"4099:16:16"},{"attributes":{"parameters":[null]},"children":[],"id":160,"name":"ParameterList","src":"4140:0:16"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7656,"type":"modifier ()","value":"onlyController"},"id":158,"name":"Identifier","src":"4125:14:16"}],"id":159,"name":"ModifierInvocation","src":"4125:14:16"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":5560,"type":"function (uint256)","value":"oraclize_setCustomGasPrice"},"id":161,"name":"Identifier","src":"4150:26:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":156,"type":"uint256","value":"_gasPrice"},"id":162,"name":"Identifier","src":"4177:9:16"}],"id":163,"name":"FunctionCall","src":"4150:37:16"}],"id":164,"name":"ExpressionStatement","src":"4150:37:16"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":37,"type":"function (address,uint256)","value":"SetGasPrice"},"id":165,"name":"Identifier","src":"4202:11:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":12058,"type":"msg","value":"msg"},"id":166,"name":"Identifier","src":"4214:3:16"}],"id":167,"name":"MemberAccess","src":"4214:10:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":156,"type":"uint256","value":"_gasPrice"},"id":168,"name":"Identifier","src":"4226:9:16"}],"id":169,"name":"FunctionCall","src":"4202:34:16"}],"id":170,"name":"EmitStatement","src":"4197:39:16"}],"id":171,"name":"Block","src":"4140:103:16"}],"id":172,"name":"FunctionDefinition","src":"4073:170:16"},{"attributes":{"constant":false,"documentation":"@notice Update ERC20 token exchange rates for all supported tokens.\n @param _gasLimit the gas limit is passed, this is used for the Oraclize callback","implemented":true,"isConstructor":false,"name":"updateTokenRates","payable":true,"scope":1098,"stateMutability":"payable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_gasLimit","scope":184,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":173,"name":"ElementaryTypeName","src":"4440:4:16"}],"id":174,"name":"VariableDeclaration","src":"4440:14:16"}],"id":175,"name":"ParameterList","src":"4439:16:16"},{"attributes":{"parameters":[null]},"children":[],"id":178,"name":"ParameterList","src":"4488:0:16"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7656,"type":"modifier ()","value":"onlyController"},"id":176,"name":"Identifier","src":"4473:14:16"}],"id":177,"name":"ModifierInvocation","src":"4473:14:16"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":521,"type":"function (uint256)","value":"_updateTokenRates"},"id":179,"name":"Identifier","src":"4498:17:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":174,"type":"uint256","value":"_gasLimit"},"id":180,"name":"Identifier","src":"4516:9:16"}],"id":181,"name":"FunctionCall","src":"4498:28:16"}],"id":182,"name":"ExpressionStatement","src":"4498:28:16"}],"id":183,"name":"Block","src":"4488:45:16"}],"id":184,"name":"FunctionDefinition","src":"4414:119:16"},{"attributes":{"constant":false,"documentation":"@notice Update ERC20 token exchange rates for the list of tokens provided.\n @param _gasLimit the gas limit is passed, this is used for the Oraclize callback\n @param _tokenList the list of tokens that need to be updated","implemented":true,"isConstructor":false,"name":"updateTokenRatesList","payable":true,"scope":1098,"stateMutability":"payable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_gasLimit","scope":200,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":185,"name":"ElementaryTypeName","src":"4810:4:16"}],"id":186,"name":"VariableDeclaration","src":"4810:14:16"},{"attributes":{"constant":false,"name":"_tokenList","scope":200,"stateVariable":false,"storageLocation":"default","type":"address[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"address[]"},"children":[{"attributes":{"name":"address","type":"address"},"id":187,"name":"ElementaryTypeName","src":"4826:7:16"}],"id":188,"name":"ArrayTypeName","src":"4826:9:16"}],"id":189,"name":"VariableDeclaration","src":"4826:20:16"}],"id":190,"name":"ParameterList","src":"4809:38:16"},{"attributes":{"parameters":[null]},"children":[],"id":193,"name":"ParameterList","src":"4880:0:16"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7656,"type":"modifier ()","value":"onlyController"},"id":191,"name":"Identifier","src":"4865:14:16"}],"id":192,"name":"ModifierInvocation","src":"4865:14:16"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}],"overloadedDeclarations":[null],"referencedDeclaration":640,"type":"function (uint256,address[] memory)","value":"_updateTokenRatesList"},"id":194,"name":"Identifier","src":"4890:21:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":186,"type":"uint256","value":"_gasLimit"},"id":195,"name":"Identifier","src":"4912:9:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":189,"type":"address[] calldata","value":"_tokenList"},"id":196,"name":"Identifier","src":"4923:10:16"}],"id":197,"name":"FunctionCall","src":"4890:44:16"}],"id":198,"name":"ExpressionStatement","src":"4890:44:16"}],"id":199,"name":"Block","src":"4880:61:16"}],"id":200,"name":"FunctionDefinition","src":"4780:161:16"},{"attributes":{"constant":false,"documentation":"@notice Withdraw tokens from the smart contract to the specified account.","implemented":true,"isConstructor":false,"name":"claim","payable":false,"scope":1098,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_to","scope":218,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":201,"name":"ElementaryTypeName","src":"5044:7:16"}],"id":202,"name":"VariableDeclaration","src":"5044:11:16"},{"attributes":{"constant":false,"name":"_asset","scope":218,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":203,"name":"ElementaryTypeName","src":"5057:7:16"}],"id":204,"name":"VariableDeclaration","src":"5057:14:16"},{"attributes":{"constant":false,"name":"_amount","scope":218,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":205,"name":"ElementaryTypeName","src":"5073:4:16"}],"id":206,"name":"VariableDeclaration","src":"5073:12:16"}],"id":207,"name":"ParameterList","src":"5043:43:16"},{"attributes":{"parameters":[null]},"children":[],"id":210,"name":"ParameterList","src":"5111:0:16"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":7656,"type":"modifier ()","value":"onlyController"},"id":208,"name":"Identifier","src":"5096:14:16"}],"id":209,"name":"ModifierInvocation","src":"5096:14:16"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":7625,"type":"function (address,address,uint256)","value":"_claim"},"id":211,"name":"Identifier","src":"5121:6:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":202,"type":"address","value":"_to"},"id":212,"name":"Identifier","src":"5128:3:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":204,"type":"address","value":"_asset"},"id":213,"name":"Identifier","src":"5133:6:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":206,"type":"uint256","value":"_amount"},"id":214,"name":"Identifier","src":"5141:7:16"}],"id":215,"name":"FunctionCall","src":"5121:28:16"}],"id":216,"name":"ExpressionStatement","src":"5121:28:16"}],"id":217,"name":"Block","src":"5111:45:16"}],"id":218,"name":"FunctionDefinition","src":"5029:127:16"},{"attributes":{"constant":false,"documentation":"@notice Handle Oraclize query callback and verifiy the provided origin proof.\n @param _queryID Oraclize query ID.\n @param _result query result in JSON format.\n @param _proof origin proof from crypto compare.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"__callback","payable":false,"scope":1098,"stateMutability":"nonpayable","superFunction":2493,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"_queryID","scope":308,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":219,"name":"ElementaryTypeName","src":"5461:7:16"}],"id":220,"name":"VariableDeclaration","src":"5461:16:16"},{"attributes":{"constant":false,"name":"_result","scope":308,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":221,"name":"ElementaryTypeName","src":"5479:6:16"}],"id":222,"name":"VariableDeclaration","src":"5479:14:16"},{"attributes":{"constant":false,"name":"_proof","scope":308,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":223,"name":"ElementaryTypeName","src":"5495:5:16"}],"id":224,"name":"VariableDeclaration","src":"5495:12:16"}],"id":225,"name":"ParameterList","src":"5460:48:16"},{"attributes":{"parameters":[null]},"children":[],"id":226,"name":"ParameterList","src":"5516:0:16"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b88758054e44c94be6565c93c4ac5c75fed82853608c6dcd41226b2e31aa5492","typeString":"literal_string \"sender is not oraclize\""}],"overloadedDeclarations":[12061,12062],"referencedDeclaration":12062,"type":"function (bool,string memory) pure","value":"require"},"id":227,"name":"Identifier","src":"5587:7:16"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":12058,"type":"msg","value":"msg"},"id":228,"name":"Identifier","src":"5595:3:16"}],"id":229,"name":"MemberAccess","src":"5595:10:16"},{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"overloadedDeclarations":[null],"referencedDeclaration":5534,"type":"function () returns (address)","value":"oraclize_cbAddress"},"id":230,"name":"Identifier","src":"5609:18:16"}],"id":231,"name":"FunctionCall","src":"5609:20:16"}],"id":232,"name":"BinaryOperation","src":"5595:34:16"},{"attributes":{"argumentTypes":null,"hexvalue":"73656e646572206973206e6f74206f7261636c697a65","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"sender is not oraclize\"","value":"sender is not oraclize"},"id":233,"name":"Literal","src":"5631:24:16"}],"id":234,"name":"FunctionCall","src":"5587:69:16"}],"id":235,"name":"ExpressionStatement","src":"5587:69:16"},{"attributes":{"assignments":[237]},"children":[{"attributes":{"constant":false,"name":"token","scope":308,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":236,"name":"ElementaryTypeName","src":"5730:7:16"}],"id":237,"name":"VariableDeclaration","src":"5730:13:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":97,"type":"mapping(bytes32 => address)","value":"_queryToToken"},"id":238,"name":"Identifier","src":"5746:13:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":220,"type":"bytes32","value":"_queryID"},"id":239,"name":"Identifier","src":"5760:8:16"}],"id":240,"name":"IndexAccess","src":"5746:23:16"}],"id":241,"name":"VariableDeclarationStatement","src":"5730:39:16"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6acb9a973d4692ff92bbe1a7ef94bbdc1ed7d2fabf86e6374ec6edd32e722bd6","typeString":"literal_string \"queryID matches to address 0\""}],"overloadedDeclarations":[12061,12062],"referencedDeclaration":12062,"type":"function (bool,string memory) pure","value":"require"},"id":242,"name":"Identifier","src":"5779:7:16"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":237,"type":"address","value":"token"},"id":243,"name":"Identifier","src":"5787:5:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":244,"name":"ElementaryTypeNameExpression","src":"5796:7:16"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":245,"name":"Literal","src":"5804:1:16"}],"id":246,"name":"FunctionCall","src":"5796:10:16"}],"id":247,"name":"BinaryOperation","src":"5787:19:16"},{"attributes":{"argumentTypes":null,"hexvalue":"71756572794944206d61746368657320746f20616464726573732030","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"queryID matches to address 0\"","value":"queryID matches to address 0"},"id":248,"name":"Literal","src":"5808:30:16"}],"id":249,"name":"FunctionCall","src":"5779:60:16"}],"id":250,"name":"ExpressionStatement","src":"5779:60:16"},{"attributes":{"assignments":[null,null,null,252,null,null,254]},"children":[{"attributes":{"constant":false,"name":"available","scope":308,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":251,"name":"ElementaryTypeName","src":"5904:4:16"}],"id":252,"name":"VariableDeclaration","src":"5904:14:16"},{"attributes":{"constant":false,"name":"lastUpdate","scope":308,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":253,"name":"ElementaryTypeName","src":"5924:7:16"}],"id":254,"name":"VariableDeclaration","src":"5924:18:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple(string memory,uint256,uint256,bool,bool,bool,uint256)","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":8501,"type":"function (address) view returns (string memory,uint256,uint256,bool,bool,bool,uint256)","value":"_getTokenInfo"},"id":255,"name":"Identifier","src":"5946:13:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":237,"type":"address","value":"token"},"id":256,"name":"Identifier","src":"5960:5:16"}],"id":257,"name":"FunctionCall","src":"5946:20:16"}],"id":258,"name":"VariableDeclarationStatement","src":"5896:70:16"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1ece3bb723b90e0cf52e7142c26cd1e8e9aeda26d377c85e0b1b64ab12879ce1","typeString":"literal_string \"token must be available\""}],"overloadedDeclarations":[12061,12062],"referencedDeclaration":12062,"type":"function (bool,string memory) pure","value":"require"},"id":259,"name":"Identifier","src":"5976:7:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":252,"type":"bool","value":"available"},"id":260,"name":"Identifier","src":"5984:9:16"},{"attributes":{"argumentTypes":null,"hexvalue":"746f6b656e206d75737420626520617661696c61626c65","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"token must be available\"","value":"token must be available"},"id":261,"name":"Literal","src":"5995:25:16"}],"id":262,"name":"FunctionCall","src":"5976:45:16"}],"id":263,"name":"ExpressionStatement","src":"5976:45:16"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"valid","scope":308,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":264,"name":"ElementaryTypeName","src":"6032:4:16"}],"id":265,"name":"VariableDeclaration","src":"6032:10:16"}],"id":266,"name":"VariableDeclarationStatement","src":"6032:10:16"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"timestamp","scope":308,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":267,"name":"ElementaryTypeName","src":"6052:4:16"}],"id":268,"name":"VariableDeclaration","src":"6052:14:16"}],"id":269,"name":"VariableDeclarationStatement","src":"6052:14:16"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"tuple()"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"tuple(bool,uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":265,"type":"bool","value":"valid"},"id":270,"name":"Identifier","src":"6077:5:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":268,"type":"uint256","value":"timestamp"},"id":271,"name":"Identifier","src":"6084:9:16"}],"id":272,"name":"TupleExpression","src":"6076:18:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple(bool,uint256)","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":847,"type":"function (string memory,bytes memory,bytes memory,uint256) returns (bool,uint256)","value":"_verifyProof"},"id":273,"name":"Identifier","src":"6097:12:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":222,"type":"string memory","value":"_result"},"id":274,"name":"Identifier","src":"6110:7:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":224,"type":"bytes memory","value":"_proof"},"id":275,"name":"Identifier","src":"6119:6:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":93,"type":"bytes storage ref","value":"cryptoCompareAPIPublicKey"},"id":276,"name":"Identifier","src":"6127:25:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":254,"type":"uint256","value":"lastUpdate"},"id":277,"name":"Identifier","src":"6154:10:16"}],"id":278,"name":"FunctionCall","src":"6097:68:16"}],"id":279,"name":"Assignment","src":"6076:89:16"}],"id":280,"name":"ExpressionStatement","src":"6076:89:16"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":265,"type":"bool","value":"valid"},"id":281,"name":"Identifier","src":"6224:5:16"},{"children":[{"attributes":{"assignments":[283]},"children":[{"attributes":{"constant":false,"name":"parsedRate","scope":308,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":282,"name":"ElementaryTypeName","src":"6306:7:16"}],"id":283,"name":"VariableDeclaration","src":"6306:18:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"overloadedDeclarations":[null],"referencedDeclaration":7969,"type":"function (string memory) pure returns (uint256)","value":"_parseIntScientificWei"},"id":284,"name":"Identifier","src":"6327:22:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"overloadedDeclarations":[null],"referencedDeclaration":405,"type":"function (string memory) pure returns (string memory)","value":"parseRate"},"id":285,"name":"Identifier","src":"6350:9:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":222,"type":"string memory","value":"_result"},"id":286,"name":"Identifier","src":"6360:7:16"}],"id":287,"name":"FunctionCall","src":"6350:18:16"}],"id":288,"name":"FunctionCall","src":"6327:42:16"}],"id":289,"name":"VariableDeclarationStatement","src":"6306:63:16"},{"attributes":{"assignments":[291]},"children":[{"attributes":{"constant":false,"name":"parsedLastUpdate","scope":308,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":290,"name":"ElementaryTypeName","src":"6437:7:16"}],"id":291,"name":"VariableDeclaration","src":"6437:24:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":268,"type":"uint256","value":"timestamp"},"id":292,"name":"Identifier","src":"6464:9:16"}],"id":293,"name":"VariableDeclarationStatement","src":"6437:36:16"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"delete","prefix":true,"type":"tuple()"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":97,"type":"mapping(bytes32 => address)","value":"_queryToToken"},"id":294,"name":"Identifier","src":"6537:13:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":220,"type":"bytes32","value":"_queryID"},"id":295,"name":"Identifier","src":"6551:8:16"}],"id":296,"name":"IndexAccess","src":"6537:23:16"}],"id":297,"name":"UnaryOperation","src":"6530:30:16"}],"id":298,"name":"ExpressionStatement","src":"6530:30:16"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":8563,"type":"function (address,uint256,uint256)","value":"_updateTokenRate"},"id":299,"name":"Identifier","src":"6575:16:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":237,"type":"address","value":"token"},"id":300,"name":"Identifier","src":"6592:5:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":283,"type":"uint256","value":"parsedRate"},"id":301,"name":"Identifier","src":"6599:10:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":291,"type":"uint256","value":"parsedLastUpdate"},"id":302,"name":"Identifier","src":"6611:16:16"}],"id":303,"name":"FunctionCall","src":"6575:53:16"}],"id":304,"name":"ExpressionStatement","src":"6575:53:16"}],"id":305,"name":"Block","src":"6231:408:16"}],"id":306,"name":"IfStatement","src":"6220:419:16"}],"id":307,"name":"Block","src":"5516:1129:16"}],"id":308,"name":"FunctionDefinition","src":"5441:1204:16"},{"attributes":{"constant":true,"documentation":"@notice Extracts JSON rate value from the response object.\n @param _json body of the JSON response from the CryptoCompare API.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"parseRate","payable":false,"scope":1098,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_json","scope":405,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":309,"name":"ElementaryTypeName","src":"6812:6:16"}],"id":310,"name":"VariableDeclaration","src":"6812:12:16"}],"id":311,"name":"ParameterList","src":"6811:14:16"},{"children":[{"attributes":{"constant":false,"name":"","scope":405,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":312,"name":"ElementaryTypeName","src":"6849:6:16"}],"id":313,"name":"VariableDeclaration","src":"6849:6:16"}],"id":314,"name":"ParameterList","src":"6848:8:16"},{"children":[{"attributes":{"assignments":[316]},"children":[{"attributes":{"constant":false,"name":"jsonLen","scope":405,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":315,"name":"ElementaryTypeName","src":"6868:4:16"}],"id":316,"name":"VariableDeclaration","src":"6868:12:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"member_name":"encodePacked","referencedDeclaration":null,"type":"function () pure returns (bytes memory)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":12045,"type":"abi","value":"abi"},"id":317,"name":"Identifier","src":"6883:3:16"}],"id":318,"name":"MemberAccess","src":"6883:16:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":310,"type":"string memory","value":"_json"},"id":319,"name":"Identifier","src":"6900:5:16"}],"id":320,"name":"FunctionCall","src":"6883:23:16"}],"id":321,"name":"MemberAccess","src":"6883:30:16"}],"id":322,"name":"VariableDeclarationStatement","src":"6868:45:16"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5fea2c2e32d1bae3c1f1ea614dd96ac75409f6d3eaf7da12bd0e75406b36d71f","typeString":"literal_string \"misformatted input\""}],"overloadedDeclarations":[12061,12062],"referencedDeclaration":12062,"type":"function (bool,string memory) pure","value":"require"},"id":323,"name":"Identifier","src":"6997:7:16"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&&","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":316,"type":"uint256","value":"jsonLen"},"id":324,"name":"Identifier","src":"7005:7:16"},{"attributes":{"argumentTypes":null,"hexvalue":"38","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 8","value":"8"},"id":325,"name":"Literal","src":"7015:1:16"}],"id":326,"name":"BinaryOperation","src":"7005:11:16"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":316,"type":"uint256","value":"jsonLen"},"id":327,"name":"Identifier","src":"7020:7:16"},{"attributes":{"argumentTypes":null,"hexvalue":"3238","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 28","value":"28"},"id":328,"name":"Literal","src":"7031:2:16"}],"id":329,"name":"BinaryOperation","src":"7020:13:16"}],"id":330,"name":"BinaryOperation","src":"7005:28:16"},{"attributes":{"argumentTypes":null,"hexvalue":"6d6973666f726d617474656420696e707574","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"misformatted input\"","value":"misformatted input"},"id":331,"name":"Literal","src":"7035:20:16"}],"id":332,"name":"FunctionCall","src":"6997:59:16"}],"id":333,"name":"ExpressionStatement","src":"6997:59:16"},{"attributes":{"assignments":[335]},"children":[{"attributes":{"constant":false,"name":"jsonPrefix","scope":405,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":334,"name":"ElementaryTypeName","src":"7067:5:16"}],"id":335,"name":"VariableDeclaration","src":"7067:23:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (bytes memory)"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":336,"name":"ElementaryTypeName","src":"7097:5:16"}],"id":337,"name":"NewExpression","src":"7093:9:16"},{"attributes":{"argumentTypes":null,"hexvalue":"37","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 7","value":"7"},"id":338,"name":"Literal","src":"7103:1:16"}],"id":339,"name":"FunctionCall","src":"7093:12:16"}],"id":340,"name":"VariableDeclarationStatement","src":"7067:38:16"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"overloadedDeclarations":[null],"referencedDeclaration":7482,"type":"function (bytes memory,uint256,uint256,bytes memory,uint256) pure returns (bytes memory)","value":"copyBytes"},"id":341,"name":"Identifier","src":"7115:9:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"member_name":"encodePacked","referencedDeclaration":null,"type":"function () pure returns (bytes memory)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":12045,"type":"abi","value":"abi"},"id":342,"name":"Identifier","src":"7125:3:16"}],"id":343,"name":"MemberAccess","src":"7125:16:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":310,"type":"string memory","value":"_json"},"id":344,"name":"Identifier","src":"7142:5:16"}],"id":345,"name":"FunctionCall","src":"7125:23:16"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":346,"name":"Literal","src":"7150:1:16"},{"attributes":{"argumentTypes":null,"hexvalue":"37","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 7","value":"7"},"id":347,"name":"Literal","src":"7153:1:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":335,"type":"bytes memory","value":"jsonPrefix"},"id":348,"name":"Identifier","src":"7156:10:16"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":349,"name":"Literal","src":"7168:1:16"}],"id":350,"name":"FunctionCall","src":"7115:55:16"}],"id":351,"name":"ExpressionStatement","src":"7115:55:16"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0c157f62a2cfe79594a26ef6a0987a0304469e42f07594a418ffcc08198b710d","typeString":"literal_string \"prefix mismatch\""}],"overloadedDeclarations":[12061,12062],"referencedDeclaration":12062,"type":"function (bool,string memory) pure","value":"require"},"id":352,"name":"Identifier","src":"7180:7:16"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"overloadedDeclarations":[null],"referencedDeclaration":12052,"type":"function () pure returns (bytes32)","value":"keccak256"},"id":353,"name":"Identifier","src":"7188:9:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":335,"type":"bytes memory","value":"jsonPrefix"},"id":354,"name":"Identifier","src":"7198:10:16"}],"id":355,"name":"FunctionCall","src":"7188:21:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":91,"type":"bytes32","value":"_PREFIX_HASH"},"id":356,"name":"Identifier","src":"7213:12:16"}],"id":357,"name":"BinaryOperation","src":"7188:37:16"},{"attributes":{"argumentTypes":null,"hexvalue":"707265666978206d69736d61746368","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"prefix mismatch\"","value":"prefix mismatch"},"id":358,"name":"Literal","src":"7227:17:16"}],"id":359,"name":"FunctionCall","src":"7180:65:16"}],"id":360,"name":"ExpressionStatement","src":"7180:65:16"},{"attributes":{"assignments":[364]},"children":[{"attributes":{"constant":false,"name":"body","scope":405,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"strings.slice","referencedDeclaration":10355,"type":"struct strings.slice"},"id":363,"name":"UserDefinedTypeName","src":"7256:13:16"}],"id":364,"name":"VariableDeclaration","src":"7256:25:16"},{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"struct strings.slice memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"toSlice","referencedDeclaration":10415,"type":"function (string memory) pure returns (struct strings.slice memory)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":310,"type":"string memory","value":"_json"},"id":365,"name":"Identifier","src":"7284:5:16"}],"id":366,"name":"MemberAccess","src":"7284:13:16"}],"id":367,"name":"FunctionCall","src":"7284:15:16"}],"id":368,"name":"VariableDeclarationStatement","src":"7256:43:16"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"struct strings.slice memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$10355_memory_ptr","typeString":"struct strings.slice memory"}],"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"split","referencedDeclaration":11714,"type":"function (struct strings.slice memory,struct strings.slice memory) pure returns (struct strings.slice memory)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":364,"type":"struct strings.slice memory","value":"body"},"id":369,"name":"Identifier","src":"7309:4:16"}],"id":371,"name":"MemberAccess","src":"7309:10:16"},{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"struct strings.slice memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"toSlice","referencedDeclaration":10415,"type":"function (string memory) pure returns (struct strings.slice memory)"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3a","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \":\"","value":":"},"id":372,"name":"Literal","src":"7320:3:16"}],"id":373,"name":"MemberAccess","src":"7320:11:16"}],"id":374,"name":"FunctionCall","src":"7320:13:16"}],"id":375,"name":"FunctionCall","src":"7309:25:16"}],"id":376,"name":"ExpressionStatement","src":"7309:25:16"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":316,"type":"uint256","value":"jsonLen"},"id":377,"name":"Identifier","src":"7433:7:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10352,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":364,"type":"struct strings.slice memory","value":"body"},"id":378,"name":"Identifier","src":"7443:4:16"}],"id":379,"name":"MemberAccess","src":"7443:9:16"}],"id":380,"name":"Assignment","src":"7433:19:16"}],"id":381,"name":"ExpressionStatement","src":"7433:19:16"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"struct strings.slice memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$10355_memory_ptr","typeString":"struct strings.slice memory"}],"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"until","referencedDeclaration":11308,"type":"function (struct strings.slice memory,struct strings.slice memory) pure returns (struct strings.slice memory)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":364,"type":"struct strings.slice memory","value":"body"},"id":382,"name":"Identifier","src":"7462:4:16"}],"id":384,"name":"MemberAccess","src":"7462:10:16"},{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"struct strings.slice memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"toSlice","referencedDeclaration":10415,"type":"function (string memory) pure returns (struct strings.slice memory)"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"7d","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"}\"","value":"}"},"id":385,"name":"Literal","src":"7473:3:16"}],"id":386,"name":"MemberAccess","src":"7473:11:16"}],"id":387,"name":"FunctionCall","src":"7473:13:16"}],"id":388,"name":"FunctionCall","src":"7462:25:16"}],"id":389,"name":"ExpressionStatement","src":"7462:25:16"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d0303ffd8acc80da90323135e4843159389d7ce85817f6f11f7897c9fa282156","typeString":"literal_string \"not json format\""}],"overloadedDeclarations":[12061,12062],"referencedDeclaration":12062,"type":"function (bool,string memory) pure","value":"require"},"id":390,"name":"Identifier","src":"7497:7:16"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":10352,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":364,"type":"struct strings.slice memory","value":"body"},"id":391,"name":"Identifier","src":"7505:4:16"}],"id":392,"name":"MemberAccess","src":"7505:9:16"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":316,"type":"uint256","value":"jsonLen"},"id":393,"name":"Identifier","src":"7518:7:16"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":394,"name":"Literal","src":"7528:1:16"}],"id":395,"name":"BinaryOperation","src":"7518:11:16"}],"id":396,"name":"BinaryOperation","src":"7505:24:16"},{"attributes":{"argumentTypes":null,"hexvalue":"6e6f74206a736f6e20666f726d6174","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"not json format\"","value":"not json format"},"id":397,"name":"Literal","src":"7531:17:16"}],"id":398,"name":"FunctionCall","src":"7497:52:16"}],"id":399,"name":"ExpressionStatement","src":"7497:52:16"},{"attributes":{"functionReturnParameters":314},"children":[{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"toString","referencedDeclaration":10593,"type":"function (struct strings.slice memory) pure returns (string memory)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":364,"type":"struct strings.slice memory","value":"body"},"id":400,"name":"Identifier","src":"7631:4:16"}],"id":401,"name":"MemberAccess","src":"7631:13:16"}],"id":402,"name":"FunctionCall","src":"7631:15:16"}],"id":403,"name":"Return","src":"7624:22:16"}],"id":404,"name":"Block","src":"6857:796:16"}],"id":405,"name":"FunctionDefinition","src":"6793:860:16"},{"attributes":{"constant":false,"documentation":"@notice Re-usable helper function that performs the Oraclize Query.\n @param _gasLimit the gas limit is passed, this is used for the Oraclize callback","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_updateTokenRates","payable":false,"scope":1098,"stateMutability":"nonpayable","superFunction":null,"visibility":"private"},"children":[{"children":[{"attributes":{"constant":false,"name":"_gasLimit","scope":521,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":406,"name":"ElementaryTypeName","src":"7851:4:16"}],"id":407,"name":"VariableDeclaration","src":"7851:14:16"}],"id":408,"name":"ParameterList","src":"7850:16:16"},{"attributes":{"parameters":[null]},"children":[],"id":409,"name":"ParameterList","src":"7875:0:16"},{"children":[{"attributes":{"assignments":[413]},"children":[{"attributes":{"constant":false,"name":"tokenAddresses","scope":521,"stateVariable":false,"storageLocation":"memory","type":"address[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"address[]"},"children":[{"attributes":{"name":"address","type":"address"},"id":411,"name":"ElementaryTypeName","src":"7885:7:16"}],"id":412,"name":"ArrayTypeName","src":"7885:9:16"}],"id":413,"name":"VariableDeclaration","src":"7885:31:16"},{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address[] memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"overloadedDeclarations":[null],"referencedDeclaration":8542,"type":"function () view returns (address[] memory)","value":"_tokenAddressArray"},"id":414,"name":"Identifier","src":"7919:18:16"}],"id":415,"name":"FunctionCall","src":"7919:20:16"}],"id":416,"name":"VariableDeclarationStatement","src":"7885:54:16"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":413,"type":"address[] memory","value":"tokenAddresses"},"id":417,"name":"Identifier","src":"8004:14:16"}],"id":418,"name":"MemberAccess","src":"8004:21:16"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":419,"name":"Literal","src":"8029:1:16"}],"id":420,"name":"BinaryOperation","src":"8004:26:16"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a0759e27e9e41d00f291554454ac32d0b694b4e532153623cf6f6e89a0f6bccb","typeString":"literal_string \"no tokens\""}],"overloadedDeclarations":[null],"referencedDeclaration":45,"type":"function (string memory)","value":"FailedUpdateRequest"},"id":421,"name":"Identifier","src":"8094:19:16"},{"attributes":{"argumentTypes":null,"hexvalue":"6e6f20746f6b656e73","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"no tokens\"","value":"no tokens"},"id":422,"name":"Literal","src":"8114:11:16"}],"id":423,"name":"FunctionCall","src":"8094:32:16"}],"id":424,"name":"EmitStatement","src":"8089:37:16"}],"id":425,"name":"Block","src":"8032:181:16"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_96388ed71ebb5d970d8c40d08f33931fc80bd2768fd60f12b78e085d12441b0e","typeString":"literal_string \"URL\""}],"overloadedDeclarations":[2508,2526],"referencedDeclaration":2508,"type":"function (string memory) returns (uint256)","value":"oraclize_getPrice"},"id":426,"name":"Identifier","src":"8223:17:16"},{"attributes":{"argumentTypes":null,"hexvalue":"55524c","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"URL\"","value":"URL"},"id":427,"name":"Literal","src":"8241:5:16"}],"id":428,"name":"FunctionCall","src":"8223:24:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":413,"type":"address[] memory","value":"tokenAddresses"},"id":429,"name":"Identifier","src":"8250:14:16"}],"id":430,"name":"MemberAccess","src":"8250:21:16"}],"id":431,"name":"BinaryOperation","src":"8223:48:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"balance","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_contract$_Oracle_$1098","typeString":"contract Oracle"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":432,"name":"ElementaryTypeNameExpression","src":"8274:7:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":12115,"type":"contract Oracle","value":"this"},"id":433,"name":"Identifier","src":"8282:4:16"}],"id":434,"name":"FunctionCall","src":"8274:13:16"}],"id":435,"name":"MemberAccess","src":"8274:21:16"}],"id":436,"name":"BinaryOperation","src":"8223:72:16"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a6d1ff1db3d0b9b8c60e12ccab5ce7431be9a2cd0518ac362f1c5c1e0b1cefee","typeString":"literal_string \"insufficient balance\""}],"overloadedDeclarations":[null],"referencedDeclaration":45,"type":"function (string memory)","value":"FailedUpdateRequest"},"id":437,"name":"Identifier","src":"8359:19:16"},{"attributes":{"argumentTypes":null,"hexvalue":"696e73756666696369656e742062616c616e6365","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"insufficient balance\"","value":"insufficient balance"},"id":438,"name":"Literal","src":"8379:22:16"}],"id":439,"name":"FunctionCall","src":"8359:43:16"}],"id":440,"name":"EmitStatement","src":"8354:48:16"}],"id":441,"name":"Block","src":"8297:116:16"},{"children":[{"attributes":{"assignments":[445]},"children":[{"attributes":{"constant":false,"name":"apiPrefix","scope":521,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"strings.slice","referencedDeclaration":10355,"type":"struct strings.slice"},"id":444,"name":"UserDefinedTypeName","src":"8492:13:16"}],"id":445,"name":"VariableDeclaration","src":"8492:30:16"},{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"struct strings.slice memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"toSlice","referencedDeclaration":10415,"type":"function (string memory) pure returns (struct strings.slice memory)"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"68747470733a2f2f6d696e2d6170692e63727970746f636f6d706172652e636f6d2f646174612f70726963653f6673796d3d","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"https://min-api.cryptocompare.com/data/price?fsym=\"","value":"https://min-api.cryptocompare.com/data/price?fsym="},"id":446,"name":"Literal","src":"8525:52:16"}],"id":447,"name":"MemberAccess","src":"8525:60:16"}],"id":448,"name":"FunctionCall","src":"8525:62:16"}],"id":449,"name":"VariableDeclarationStatement","src":"8492:95:16"},{"attributes":{"assignments":[453]},"children":[{"attributes":{"constant":false,"name":"apiSuffix","scope":521,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"strings.slice","referencedDeclaration":10355,"type":"struct strings.slice"},"id":452,"name":"UserDefinedTypeName","src":"8601:13:16"}],"id":453,"name":"VariableDeclaration","src":"8601:30:16"},{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"struct strings.slice memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"toSlice","referencedDeclaration":10415,"type":"function (string memory) pure returns (struct strings.slice memory)"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"267473796d733d455448267369676e3d74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"&tsyms=ETH&sign=true\"","value":"&tsyms=ETH&sign=true"},"id":454,"name":"Literal","src":"8634:22:16"}],"id":455,"name":"MemberAccess","src":"8634:30:16"}],"id":456,"name":"FunctionCall","src":"8634:32:16"}],"id":457,"name":"VariableDeclarationStatement","src":"8601:65:16"},{"children":[{"attributes":{"assignments":[459]},"children":[{"attributes":{"constant":false,"name":"i","scope":521,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":458,"name":"ElementaryTypeName","src":"8755:4:16"}],"id":459,"name":"VariableDeclaration","src":"8755:6:16"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":460,"name":"Literal","src":"8764:1:16"}],"id":461,"name":"VariableDeclarationStatement","src":"8755:10:16"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":459,"type":"uint256","value":"i"},"id":462,"name":"Identifier","src":"8767:1:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":413,"type":"address[] memory","value":"tokenAddresses"},"id":463,"name":"Identifier","src":"8771:14:16"}],"id":464,"name":"MemberAccess","src":"8771:21:16"}],"id":465,"name":"BinaryOperation","src":"8767:25:16"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":459,"type":"uint256","value":"i"},"id":466,"name":"Identifier","src":"8794:1:16"}],"id":467,"name":"UnaryOperation","src":"8794:3:16"}],"id":468,"name":"ExpressionStatement","src":"8794:3:16"},{"children":[{"attributes":{"assignments":[470,null,null,null,null,null,null]},"children":[{"attributes":{"constant":false,"name":"symbol","scope":521,"stateVariable":false,"storageLocation":"memory","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":469,"name":"ElementaryTypeName","src":"8879:6:16"}],"id":470,"name":"VariableDeclaration","src":"8879:20:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple(string memory,uint256,uint256,bool,bool,bool,uint256)","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":8501,"type":"function (address) view returns (string memory,uint256,uint256,bool,bool,bool,uint256)","value":"_getTokenInfo"},"id":471,"name":"Identifier","src":"8915:13:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":413,"type":"address[] memory","value":"tokenAddresses"},"id":472,"name":"Identifier","src":"8929:14:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":459,"type":"uint256","value":"i"},"id":473,"name":"Identifier","src":"8944:1:16"}],"id":474,"name":"IndexAccess","src":"8929:17:16"}],"id":475,"name":"FunctionCall","src":"8915:32:16"}],"id":476,"name":"VariableDeclarationStatement","src":"8878:69:16"},{"attributes":{"assignments":[480]},"children":[{"attributes":{"constant":false,"name":"sym","scope":521,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"strings.slice","referencedDeclaration":10355,"type":"struct strings.slice"},"id":479,"name":"UserDefinedTypeName","src":"8966:13:16"}],"id":480,"name":"VariableDeclaration","src":"8966:24:16"},{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"struct strings.slice memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"toSlice","referencedDeclaration":10415,"type":"function (string memory) pure returns (struct strings.slice memory)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":470,"type":"string memory","value":"symbol"},"id":481,"name":"Identifier","src":"8993:6:16"}],"id":482,"name":"MemberAccess","src":"8993:14:16"}],"id":483,"name":"FunctionCall","src":"8993:16:16"}],"id":484,"name":"VariableDeclarationStatement","src":"8966:43:16"},{"attributes":{"assignments":[486]},"children":[{"attributes":{"constant":false,"name":"queryID","scope":521,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":485,"name":"ElementaryTypeName","src":"9102:7:16"}],"id":486,"name":"VariableDeclaration","src":"9102:15:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_96388ed71ebb5d970d8c40d08f33931fc80bd2768fd60f12b78e085d12441b0e","typeString":"literal_string \"URL\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[2566,2608,2654,2698,2741,2786,2835,2882,2929,2978,3031,3082,3119,3159,3202,3242,3287,3335,3386,3434,3487,3543,3602,3658,3719,3783,3850,3914,3983,4055,4130,4202,4249,4298,4351,4402,4439,4479,4522,4562,4607,4655,4706,4754,4807,4863,4922,4978,5039,5103,5170,5234,5303,5375,5450,5522],"referencedDeclaration":2698,"type":"function (string memory,string memory,uint256) returns (bytes32)","value":"oraclize_query"},"id":487,"name":"Identifier","src":"9120:14:16"},{"attributes":{"argumentTypes":null,"hexvalue":"55524c","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"URL\"","value":"URL"},"id":488,"name":"Literal","src":"9135:5:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$10355_memory_ptr","typeString":"struct strings.slice memory"}],"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"concat","referencedDeclaration":11928,"type":"function (struct strings.slice memory,struct strings.slice memory) pure returns (string memory)"},"children":[{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"struct strings.slice memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"toSlice","referencedDeclaration":10415,"type":"function (string memory) pure returns (struct strings.slice memory)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$10355_memory_ptr","typeString":"struct strings.slice memory"}],"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"concat","referencedDeclaration":11928,"type":"function (struct strings.slice memory,struct strings.slice memory) pure returns (string memory)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":445,"type":"struct strings.slice memory","value":"apiPrefix"},"id":489,"name":"Identifier","src":"9142:9:16"}],"id":490,"name":"MemberAccess","src":"9142:16:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":480,"type":"struct strings.slice memory","value":"sym"},"id":491,"name":"Identifier","src":"9159:3:16"}],"id":492,"name":"FunctionCall","src":"9142:21:16"}],"id":493,"name":"MemberAccess","src":"9142:29:16"}],"id":494,"name":"FunctionCall","src":"9142:31:16"}],"id":495,"name":"MemberAccess","src":"9142:38:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":453,"type":"struct strings.slice memory","value":"apiSuffix"},"id":496,"name":"Identifier","src":"9181:9:16"}],"id":497,"name":"FunctionCall","src":"9142:49:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":407,"type":"uint256","value":"_gasLimit"},"id":498,"name":"Identifier","src":"9193:9:16"}],"id":499,"name":"FunctionCall","src":"9120:83:16"}],"id":500,"name":"VariableDeclarationStatement","src":"9102:101:16"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"address"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":97,"type":"mapping(bytes32 => address)","value":"_queryToToken"},"id":501,"name":"Identifier","src":"9303:13:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":486,"type":"bytes32","value":"queryID"},"id":502,"name":"Identifier","src":"9317:7:16"}],"id":503,"name":"IndexAccess","src":"9303:22:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":413,"type":"address[] memory","value":"tokenAddresses"},"id":504,"name":"Identifier","src":"9328:14:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":459,"type":"uint256","value":"i"},"id":505,"name":"Identifier","src":"9343:1:16"}],"id":506,"name":"IndexAccess","src":"9328:17:16"}],"id":507,"name":"Assignment","src":"9303:42:16"}],"id":508,"name":"ExpressionStatement","src":"9303:42:16"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"overloadedDeclarations":[null],"referencedDeclaration":41,"type":"function (string memory)","value":"RequestedUpdate"},"id":509,"name":"Identifier","src":"9417:15:16"},{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"toString","referencedDeclaration":10593,"type":"function (struct strings.slice memory) pure returns (string memory)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":480,"type":"struct strings.slice memory","value":"sym"},"id":510,"name":"Identifier","src":"9433:3:16"}],"id":511,"name":"MemberAccess","src":"9433:12:16"}],"id":512,"name":"FunctionCall","src":"9433:14:16"}],"id":513,"name":"FunctionCall","src":"9417:31:16"}],"id":514,"name":"EmitStatement","src":"9412:36:16"}],"id":515,"name":"Block","src":"8799:664:16"}],"id":516,"name":"ForStatement","src":"8750:713:16"}],"id":517,"name":"Block","src":"8419:1054:16"}],"id":518,"name":"IfStatement","src":"8219:1254:16"}],"id":519,"name":"IfStatement","src":"8000:1473:16"}],"id":520,"name":"Block","src":"7875:1604:16"}],"id":521,"name":"FunctionDefinition","src":"7824:1655:16"},{"attributes":{"constant":false,"documentation":"@notice Re-usable helper function that performs the Oraclize Query for a specific list of tokens.\n @param _gasLimit the gas limit is passed, this is used for the Oraclize callback.\n @param _tokenList the list of tokens that need to be updated.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_updateTokenRatesList","payable":false,"scope":1098,"stateMutability":"nonpayable","superFunction":null,"visibility":"private"},"children":[{"children":[{"attributes":{"constant":false,"name":"_gasLimit","scope":640,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":522,"name":"ElementaryTypeName","src":"9782:4:16"}],"id":523,"name":"VariableDeclaration","src":"9782:14:16"},{"attributes":{"constant":false,"name":"_tokenList","scope":640,"stateVariable":false,"storageLocation":"default","type":"address[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"address[]"},"children":[{"attributes":{"name":"address","type":"address"},"id":524,"name":"ElementaryTypeName","src":"9798:7:16"}],"id":525,"name":"ArrayTypeName","src":"9798:9:16"}],"id":526,"name":"VariableDeclaration","src":"9798:20:16"}],"id":527,"name":"ParameterList","src":"9781:38:16"},{"attributes":{"parameters":[null]},"children":[],"id":528,"name":"ParameterList","src":"9828:0:16"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":526,"type":"address[] memory","value":"_tokenList"},"id":529,"name":"Identifier","src":"9893:10:16"}],"id":530,"name":"MemberAccess","src":"9893:17:16"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":531,"name":"Literal","src":"9914:1:16"}],"id":532,"name":"BinaryOperation","src":"9893:22:16"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_17806a0786c207d6f85c3e1c4ecf5e91edf31bcc8527723223989c983294996b","typeString":"literal_string \"empty token list\""}],"overloadedDeclarations":[null],"referencedDeclaration":45,"type":"function (string memory)","value":"FailedUpdateRequest"},"id":533,"name":"Identifier","src":"9979:19:16"},{"attributes":{"argumentTypes":null,"hexvalue":"656d70747920746f6b656e206c697374","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"empty token list\"","value":"empty token list"},"id":534,"name":"Literal","src":"9999:18:16"}],"id":535,"name":"FunctionCall","src":"9979:39:16"}],"id":536,"name":"EmitStatement","src":"9974:44:16"}],"id":537,"name":"Block","src":"9917:184:16"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_96388ed71ebb5d970d8c40d08f33931fc80bd2768fd60f12b78e085d12441b0e","typeString":"literal_string \"URL\""}],"overloadedDeclarations":[2508,2526],"referencedDeclaration":2508,"type":"function (string memory) returns (uint256)","value":"oraclize_getPrice"},"id":538,"name":"Identifier","src":"10111:17:16"},{"attributes":{"argumentTypes":null,"hexvalue":"55524c","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"URL\"","value":"URL"},"id":539,"name":"Literal","src":"10129:5:16"}],"id":540,"name":"FunctionCall","src":"10111:24:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":526,"type":"address[] memory","value":"_tokenList"},"id":541,"name":"Identifier","src":"10138:10:16"}],"id":542,"name":"MemberAccess","src":"10138:17:16"}],"id":543,"name":"BinaryOperation","src":"10111:44:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"balance","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_contract$_Oracle_$1098","typeString":"contract Oracle"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":544,"name":"ElementaryTypeNameExpression","src":"10158:7:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":12115,"type":"contract Oracle","value":"this"},"id":545,"name":"Identifier","src":"10166:4:16"}],"id":546,"name":"FunctionCall","src":"10158:13:16"}],"id":547,"name":"MemberAccess","src":"10158:21:16"}],"id":548,"name":"BinaryOperation","src":"10111:68:16"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a6d1ff1db3d0b9b8c60e12ccab5ce7431be9a2cd0518ac362f1c5c1e0b1cefee","typeString":"literal_string \"insufficient balance\""}],"overloadedDeclarations":[null],"referencedDeclaration":45,"type":"function (string memory)","value":"FailedUpdateRequest"},"id":549,"name":"Identifier","src":"10243:19:16"},{"attributes":{"argumentTypes":null,"hexvalue":"696e73756666696369656e742062616c616e6365","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"insufficient balance\"","value":"insufficient balance"},"id":550,"name":"Literal","src":"10263:22:16"}],"id":551,"name":"FunctionCall","src":"10243:43:16"}],"id":552,"name":"EmitStatement","src":"10238:48:16"}],"id":553,"name":"Block","src":"10181:116:16"},{"children":[{"attributes":{"assignments":[557]},"children":[{"attributes":{"constant":false,"name":"apiPrefix","scope":640,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"strings.slice","referencedDeclaration":10355,"type":"struct strings.slice"},"id":556,"name":"UserDefinedTypeName","src":"10376:13:16"}],"id":557,"name":"VariableDeclaration","src":"10376:30:16"},{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"struct strings.slice memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"toSlice","referencedDeclaration":10415,"type":"function (string memory) pure returns (struct strings.slice memory)"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"68747470733a2f2f6d696e2d6170692e63727970746f636f6d706172652e636f6d2f646174612f70726963653f6673796d3d","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"https://min-api.cryptocompare.com/data/price?fsym=\"","value":"https://min-api.cryptocompare.com/data/price?fsym="},"id":558,"name":"Literal","src":"10409:52:16"}],"id":559,"name":"MemberAccess","src":"10409:60:16"}],"id":560,"name":"FunctionCall","src":"10409:62:16"}],"id":561,"name":"VariableDeclarationStatement","src":"10376:95:16"},{"attributes":{"assignments":[565]},"children":[{"attributes":{"constant":false,"name":"apiSuffix","scope":640,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"strings.slice","referencedDeclaration":10355,"type":"struct strings.slice"},"id":564,"name":"UserDefinedTypeName","src":"10485:13:16"}],"id":565,"name":"VariableDeclaration","src":"10485:30:16"},{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"struct strings.slice memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"toSlice","referencedDeclaration":10415,"type":"function (string memory) pure returns (struct strings.slice memory)"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"267473796d733d455448267369676e3d74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"&tsyms=ETH&sign=true\"","value":"&tsyms=ETH&sign=true"},"id":566,"name":"Literal","src":"10518:22:16"}],"id":567,"name":"MemberAccess","src":"10518:30:16"}],"id":568,"name":"FunctionCall","src":"10518:32:16"}],"id":569,"name":"VariableDeclarationStatement","src":"10485:65:16"},{"children":[{"attributes":{"assignments":[571]},"children":[{"attributes":{"constant":false,"name":"i","scope":640,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":570,"name":"ElementaryTypeName","src":"10639:4:16"}],"id":571,"name":"VariableDeclaration","src":"10639:6:16"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":572,"name":"Literal","src":"10648:1:16"}],"id":573,"name":"VariableDeclarationStatement","src":"10639:10:16"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":571,"type":"uint256","value":"i"},"id":574,"name":"Identifier","src":"10651:1:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":526,"type":"address[] memory","value":"_tokenList"},"id":575,"name":"Identifier","src":"10655:10:16"}],"id":576,"name":"MemberAccess","src":"10655:17:16"}],"id":577,"name":"BinaryOperation","src":"10651:21:16"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":571,"type":"uint256","value":"i"},"id":578,"name":"Identifier","src":"10674:1:16"}],"id":579,"name":"UnaryOperation","src":"10674:3:16"}],"id":580,"name":"ExpressionStatement","src":"10674:3:16"},{"children":[{"attributes":{"assignments":[582,null,null,584,null,null,null]},"children":[{"attributes":{"constant":false,"name":"tokenSymbol","scope":640,"stateVariable":false,"storageLocation":"memory","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":581,"name":"ElementaryTypeName","src":"10755:6:16"}],"id":582,"name":"VariableDeclaration","src":"10755:25:16"},{"attributes":{"constant":false,"name":"available","scope":640,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":583,"name":"ElementaryTypeName","src":"10786:4:16"}],"id":584,"name":"VariableDeclaration","src":"10786:14:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple(string memory,uint256,uint256,bool,bool,bool,uint256)","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":8501,"type":"function (address) view returns (string memory,uint256,uint256,bool,bool,bool,uint256)","value":"_getTokenInfo"},"id":585,"name":"Identifier","src":"10811:13:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":526,"type":"address[] memory","value":"_tokenList"},"id":586,"name":"Identifier","src":"10825:10:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":571,"type":"uint256","value":"i"},"id":587,"name":"Identifier","src":"10836:1:16"}],"id":588,"name":"IndexAccess","src":"10825:13:16"}],"id":589,"name":"FunctionCall","src":"10811:28:16"}],"id":590,"name":"VariableDeclarationStatement","src":"10754:85:16"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1ece3bb723b90e0cf52e7142c26cd1e8e9aeda26d377c85e0b1b64ab12879ce1","typeString":"literal_string \"token must be available\""}],"overloadedDeclarations":[12061,12062],"referencedDeclaration":12062,"type":"function (bool,string memory) pure","value":"require"},"id":591,"name":"Identifier","src":"10857:7:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":584,"type":"bool","value":"available"},"id":592,"name":"Identifier","src":"10865:9:16"},{"attributes":{"argumentTypes":null,"hexvalue":"746f6b656e206d75737420626520617661696c61626c65","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"token must be available\"","value":"token must be available"},"id":593,"name":"Literal","src":"10876:25:16"}],"id":594,"name":"FunctionCall","src":"10857:45:16"}],"id":595,"name":"ExpressionStatement","src":"10857:45:16"},{"attributes":{"assignments":[599]},"children":[{"attributes":{"constant":false,"name":"symbol","scope":640,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"strings.slice","referencedDeclaration":10355,"type":"struct strings.slice"},"id":598,"name":"UserDefinedTypeName","src":"10981:13:16"}],"id":599,"name":"VariableDeclaration","src":"10981:27:16"},{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"struct strings.slice memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"toSlice","referencedDeclaration":10415,"type":"function (string memory) pure returns (struct strings.slice memory)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":582,"type":"string memory","value":"tokenSymbol"},"id":600,"name":"Identifier","src":"11011:11:16"}],"id":601,"name":"MemberAccess","src":"11011:19:16"}],"id":602,"name":"FunctionCall","src":"11011:21:16"}],"id":603,"name":"VariableDeclarationStatement","src":"10981:51:16"},{"attributes":{"assignments":[605]},"children":[{"attributes":{"constant":false,"name":"queryID","scope":640,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":604,"name":"ElementaryTypeName","src":"11125:7:16"}],"id":605,"name":"VariableDeclaration","src":"11125:15:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_96388ed71ebb5d970d8c40d08f33931fc80bd2768fd60f12b78e085d12441b0e","typeString":"literal_string \"URL\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[2566,2608,2654,2698,2741,2786,2835,2882,2929,2978,3031,3082,3119,3159,3202,3242,3287,3335,3386,3434,3487,3543,3602,3658,3719,3783,3850,3914,3983,4055,4130,4202,4249,4298,4351,4402,4439,4479,4522,4562,4607,4655,4706,4754,4807,4863,4922,4978,5039,5103,5170,5234,5303,5375,5450,5522],"referencedDeclaration":2698,"type":"function (string memory,string memory,uint256) returns (bytes32)","value":"oraclize_query"},"id":606,"name":"Identifier","src":"11143:14:16"},{"attributes":{"argumentTypes":null,"hexvalue":"55524c","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"URL\"","value":"URL"},"id":607,"name":"Literal","src":"11158:5:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$10355_memory_ptr","typeString":"struct strings.slice memory"}],"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"concat","referencedDeclaration":11928,"type":"function (struct strings.slice memory,struct strings.slice memory) pure returns (string memory)"},"children":[{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"struct strings.slice memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"toSlice","referencedDeclaration":10415,"type":"function (string memory) pure returns (struct strings.slice memory)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$10355_memory_ptr","typeString":"struct strings.slice memory"}],"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"concat","referencedDeclaration":11928,"type":"function (struct strings.slice memory,struct strings.slice memory) pure returns (string memory)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":557,"type":"struct strings.slice memory","value":"apiPrefix"},"id":608,"name":"Identifier","src":"11165:9:16"}],"id":609,"name":"MemberAccess","src":"11165:16:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":599,"type":"struct strings.slice memory","value":"symbol"},"id":610,"name":"Identifier","src":"11182:6:16"}],"id":611,"name":"FunctionCall","src":"11165:24:16"}],"id":612,"name":"MemberAccess","src":"11165:32:16"}],"id":613,"name":"FunctionCall","src":"11165:34:16"}],"id":614,"name":"MemberAccess","src":"11165:41:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":565,"type":"struct strings.slice memory","value":"apiSuffix"},"id":615,"name":"Identifier","src":"11207:9:16"}],"id":616,"name":"FunctionCall","src":"11165:52:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":523,"type":"uint256","value":"_gasLimit"},"id":617,"name":"Identifier","src":"11219:9:16"}],"id":618,"name":"FunctionCall","src":"11143:86:16"}],"id":619,"name":"VariableDeclarationStatement","src":"11125:104:16"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"address"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":97,"type":"mapping(bytes32 => address)","value":"_queryToToken"},"id":620,"name":"Identifier","src":"11329:13:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":605,"type":"bytes32","value":"queryID"},"id":621,"name":"Identifier","src":"11343:7:16"}],"id":622,"name":"IndexAccess","src":"11329:22:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":526,"type":"address[] memory","value":"_tokenList"},"id":623,"name":"Identifier","src":"11354:10:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":571,"type":"uint256","value":"i"},"id":624,"name":"Identifier","src":"11365:1:16"}],"id":625,"name":"IndexAccess","src":"11354:13:16"}],"id":626,"name":"Assignment","src":"11329:38:16"}],"id":627,"name":"ExpressionStatement","src":"11329:38:16"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"overloadedDeclarations":[null],"referencedDeclaration":41,"type":"function (string memory)","value":"RequestedUpdate"},"id":628,"name":"Identifier","src":"11439:15:16"},{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"toString","referencedDeclaration":10593,"type":"function (struct strings.slice memory) pure returns (string memory)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":599,"type":"struct strings.slice memory","value":"symbol"},"id":629,"name":"Identifier","src":"11455:6:16"}],"id":630,"name":"MemberAccess","src":"11455:15:16"}],"id":631,"name":"FunctionCall","src":"11455:17:16"}],"id":632,"name":"FunctionCall","src":"11439:34:16"}],"id":633,"name":"EmitStatement","src":"11434:39:16"}],"id":634,"name":"Block","src":"10679:809:16"}],"id":635,"name":"ForStatement","src":"10634:854:16"}],"id":636,"name":"Block","src":"10303:1195:16"}],"id":637,"name":"IfStatement","src":"10107:1391:16"}],"id":638,"name":"IfStatement","src":"9889:1609:16"}],"id":639,"name":"Block","src":"9828:1676:16"}],"id":640,"name":"FunctionDefinition","src":"9751:1753:16"},{"attributes":{"constant":false,"documentation":"@notice Verify the origin proof returned by the cryptocompare API.\n @param _result query result in JSON format.\n @param _proof origin proof from cryptocompare.\n @param _publicKey cryptocompare public key.\n @param _lastUpdate timestamp of the last time the requested token was updated.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_verifyProof","payable":false,"scope":1098,"stateMutability":"nonpayable","superFunction":null,"visibility":"private"},"children":[{"children":[{"attributes":{"constant":false,"name":"_result","scope":847,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":641,"name":"ElementaryTypeName","src":"11853:6:16"}],"id":642,"name":"VariableDeclaration","src":"11853:14:16"},{"attributes":{"constant":false,"name":"_proof","scope":847,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":643,"name":"ElementaryTypeName","src":"11869:5:16"}],"id":644,"name":"VariableDeclaration","src":"11869:12:16"},{"attributes":{"constant":false,"name":"_publicKey","scope":847,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":645,"name":"ElementaryTypeName","src":"11883:5:16"}],"id":646,"name":"VariableDeclaration","src":"11883:16:16"},{"attributes":{"constant":false,"name":"_lastUpdate","scope":847,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":647,"name":"ElementaryTypeName","src":"11901:4:16"}],"id":648,"name":"VariableDeclaration","src":"11901:16:16"}],"id":649,"name":"ParameterList","src":"11852:66:16"},{"children":[{"attributes":{"constant":false,"name":"","scope":847,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":650,"name":"ElementaryTypeName","src":"11936:4:16"}],"id":651,"name":"VariableDeclaration","src":"11936:4:16"},{"attributes":{"constant":false,"name":"","scope":847,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":652,"name":"ElementaryTypeName","src":"11942:4:16"}],"id":653,"name":"VariableDeclaration","src":"11942:4:16"}],"id":654,"name":"ParameterList","src":"11935:12:16"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":644,"type":"bytes memory","value":"_proof"},"id":655,"name":"Identifier","src":"12004:6:16"}],"id":656,"name":"MemberAccess","src":"12004:13:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":60,"type":"uint256","value":"_PROOF_LEN"},"id":657,"name":"Identifier","src":"12021:10:16"}],"id":658,"name":"BinaryOperation","src":"12004:27:16"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_802b2e61d020a57797e2091a5d618cce14acf3620b9a166bf7a7136b69cb78fb","typeString":"literal_string \"invalid proof length\""}],"overloadedDeclarations":[12063,12064],"referencedDeclaration":12064,"type":"function (string memory) pure","value":"revert"},"id":659,"name":"Identifier","src":"12047:6:16"},{"attributes":{"argumentTypes":null,"hexvalue":"696e76616c69642070726f6f66206c656e677468","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"invalid proof length\"","value":"invalid proof length"},"id":660,"name":"Literal","src":"12054:22:16"}],"id":661,"name":"FunctionCall","src":"12047:30:16"}],"id":662,"name":"ExpressionStatement","src":"12047:30:16"}],"id":663,"name":"Block","src":"12033:55:16"}],"id":664,"name":"IfStatement","src":"12000:88:16"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint"},"id":665,"name":"ElementaryTypeNameExpression","src":"12185:4:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":644,"type":"bytes memory","value":"_proof"},"id":666,"name":"Identifier","src":"12190:6:16"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":667,"name":"Literal","src":"12197:1:16"}],"id":668,"name":"IndexAccess","src":"12190:9:16"}],"id":669,"name":"FunctionCall","src":"12185:15:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":63,"type":"uint256","value":"_ECDSA_SIG_LEN"},"id":670,"name":"Identifier","src":"12204:14:16"}],"id":671,"name":"BinaryOperation","src":"12185:33:16"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e0060b83051574ba40ded2ef248b0d17cb210e5fa4f776d436805ab1ebb12b87","typeString":"literal_string \"invalid signature length\""}],"overloadedDeclarations":[12063,12064],"referencedDeclaration":12064,"type":"function (string memory) pure","value":"revert"},"id":672,"name":"Identifier","src":"12234:6:16"},{"attributes":{"argumentTypes":null,"hexvalue":"696e76616c6964207369676e6174757265206c656e677468","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"invalid signature length\"","value":"invalid signature length"},"id":673,"name":"Literal","src":"12241:26:16"}],"id":674,"name":"FunctionCall","src":"12234:34:16"}],"id":675,"name":"ExpressionStatement","src":"12234:34:16"}],"id":676,"name":"Block","src":"12220:59:16"}],"id":677,"name":"IfStatement","src":"12181:98:16"},{"attributes":{"assignments":[679]},"children":[{"attributes":{"constant":false,"name":"signature","scope":847,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":678,"name":"ElementaryTypeName","src":"12289:5:16"}],"id":679,"name":"VariableDeclaration","src":"12289:22:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (bytes memory)"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":680,"name":"ElementaryTypeName","src":"12318:5:16"}],"id":681,"name":"NewExpression","src":"12314:9:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":63,"type":"uint256","value":"_ECDSA_SIG_LEN"},"id":682,"name":"Identifier","src":"12324:14:16"}],"id":683,"name":"FunctionCall","src":"12314:25:16"}],"id":684,"name":"VariableDeclarationStatement","src":"12289:50:16"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":679,"type":"bytes memory","value":"signature"},"id":685,"name":"Identifier","src":"12350:9:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"overloadedDeclarations":[null],"referencedDeclaration":7482,"type":"function (bytes memory,uint256,uint256,bytes memory,uint256) pure returns (bytes memory)","value":"copyBytes"},"id":686,"name":"Identifier","src":"12362:9:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":644,"type":"bytes memory","value":"_proof"},"id":687,"name":"Identifier","src":"12372:6:16"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":688,"name":"Literal","src":"12380:1:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":63,"type":"uint256","value":"_ECDSA_SIG_LEN"},"id":689,"name":"Identifier","src":"12383:14:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":679,"type":"bytes memory","value":"signature"},"id":690,"name":"Identifier","src":"12399:9:16"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":691,"name":"Literal","src":"12410:1:16"}],"id":692,"name":"FunctionCall","src":"12362:50:16"}],"id":693,"name":"Assignment","src":"12350:62:16"}],"id":694,"name":"ExpressionStatement","src":"12350:62:16"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint"},"id":695,"name":"ElementaryTypeNameExpression","src":"12497:4:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":644,"type":"bytes memory","value":"_proof"},"id":696,"name":"Identifier","src":"12502:6:16"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":66,"type":"uint256","value":"_ENCODING_BYTES"},"id":697,"name":"Identifier","src":"12509:15:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":63,"type":"uint256","value":"_ECDSA_SIG_LEN"},"id":698,"name":"Identifier","src":"12527:14:16"}],"id":699,"name":"BinaryOperation","src":"12509:32:16"}],"id":700,"name":"IndexAccess","src":"12502:40:16"}],"id":701,"name":"FunctionCall","src":"12497:46:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":86,"type":"uint256","value":"_MAX_BYTE_SIZE"},"id":702,"name":"Identifier","src":"12546:14:16"}],"id":703,"name":"BinaryOperation","src":"12497:63:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint"},"id":704,"name":"ElementaryTypeNameExpression","src":"12563:4:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":644,"type":"bytes memory","value":"_proof"},"id":705,"name":"Identifier","src":"12568:6:16"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":66,"type":"uint256","value":"_ENCODING_BYTES"},"id":706,"name":"Identifier","src":"12575:15:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":63,"type":"uint256","value":"_ECDSA_SIG_LEN"},"id":707,"name":"Identifier","src":"12593:14:16"}],"id":708,"name":"BinaryOperation","src":"12575:32:16"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":709,"name":"Literal","src":"12610:1:16"}],"id":710,"name":"BinaryOperation","src":"12575:36:16"}],"id":711,"name":"IndexAccess","src":"12568:44:16"}],"id":712,"name":"FunctionCall","src":"12563:50:16"}],"id":713,"name":"BinaryOperation","src":"12497:116:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":75,"type":"uint256","value":"_HEADERS_LEN"},"id":714,"name":"Identifier","src":"12617:12:16"}],"id":715,"name":"BinaryOperation","src":"12497:132:16"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5d328c796053a338c6354f22dd94fc5d8cc4893b6480e6cdfcce0560436e01ab","typeString":"literal_string \"invalid headers length\""}],"overloadedDeclarations":[12063,12064],"referencedDeclaration":12064,"type":"function (string memory) pure","value":"revert"},"id":716,"name":"Identifier","src":"12645:6:16"},{"attributes":{"argumentTypes":null,"hexvalue":"696e76616c69642068656164657273206c656e677468","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"invalid headers length\"","value":"invalid headers length"},"id":717,"name":"Literal","src":"12652:24:16"}],"id":718,"name":"FunctionCall","src":"12645:32:16"}],"id":719,"name":"ExpressionStatement","src":"12645:32:16"}],"id":720,"name":"Block","src":"12631:57:16"}],"id":721,"name":"IfStatement","src":"12493:195:16"},{"attributes":{"assignments":[723]},"children":[{"attributes":{"constant":false,"name":"headers","scope":847,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":722,"name":"ElementaryTypeName","src":"12698:5:16"}],"id":723,"name":"VariableDeclaration","src":"12698:20:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (bytes memory)"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":724,"name":"ElementaryTypeName","src":"12725:5:16"}],"id":725,"name":"NewExpression","src":"12721:9:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":75,"type":"uint256","value":"_HEADERS_LEN"},"id":726,"name":"Identifier","src":"12731:12:16"}],"id":727,"name":"FunctionCall","src":"12721:23:16"}],"id":728,"name":"VariableDeclarationStatement","src":"12698:46:16"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":723,"type":"bytes memory","value":"headers"},"id":729,"name":"Identifier","src":"12754:7:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"overloadedDeclarations":[null],"referencedDeclaration":7482,"type":"function (bytes memory,uint256,uint256,bytes memory,uint256) pure returns (bytes memory)","value":"copyBytes"},"id":730,"name":"Identifier","src":"12764:9:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":644,"type":"bytes memory","value":"_proof"},"id":731,"name":"Identifier","src":"12774:6:16"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":732,"name":"Literal","src":"12782:1:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":66,"type":"uint256","value":"_ENCODING_BYTES"},"id":733,"name":"Identifier","src":"12786:15:16"}],"id":734,"name":"BinaryOperation","src":"12782:19:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":63,"type":"uint256","value":"_ECDSA_SIG_LEN"},"id":735,"name":"Identifier","src":"12804:14:16"}],"id":736,"name":"BinaryOperation","src":"12782:36:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":75,"type":"uint256","value":"_HEADERS_LEN"},"id":737,"name":"Identifier","src":"12820:12:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":723,"type":"bytes memory","value":"headers"},"id":738,"name":"Identifier","src":"12834:7:16"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":739,"name":"Literal","src":"12843:1:16"}],"id":740,"name":"FunctionCall","src":"12764:81:16"}],"id":741,"name":"Assignment","src":"12754:91:16"}],"id":742,"name":"ExpressionStatement","src":"12754:91:16"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"overloadedDeclarations":[null],"referencedDeclaration":886,"type":"function (bytes memory,bytes memory,bytes memory) returns (bool)","value":"_verifySignature"},"id":743,"name":"Identifier","src":"12943:16:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":723,"type":"bytes memory","value":"headers"},"id":744,"name":"Identifier","src":"12960:7:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":679,"type":"bytes memory","value":"signature"},"id":745,"name":"Identifier","src":"12969:9:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":646,"type":"bytes memory","value":"_publicKey"},"id":746,"name":"Identifier","src":"12980:10:16"}],"id":747,"name":"FunctionCall","src":"12943:48:16"}],"id":748,"name":"UnaryOperation","src":"12942:49:16"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_12a179e1a73f41ef8e1ba2f259a99bc53b6ace3abb110ac2ea058e42c6104e1a","typeString":"literal_string \"invalid signature\""}],"overloadedDeclarations":[12063,12064],"referencedDeclaration":12064,"type":"function (string memory) pure","value":"revert"},"id":749,"name":"Identifier","src":"13007:6:16"},{"attributes":{"argumentTypes":null,"hexvalue":"696e76616c6964207369676e6174757265","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"invalid signature\"","value":"invalid signature"},"id":750,"name":"Literal","src":"13014:19:16"}],"id":751,"name":"FunctionCall","src":"13007:27:16"}],"id":752,"name":"ExpressionStatement","src":"13007:27:16"}],"id":753,"name":"Block","src":"12993:52:16"}],"id":754,"name":"IfStatement","src":"12938:107:16"},{"attributes":{"assignments":[756]},"children":[{"attributes":{"constant":false,"name":"dateHeader","scope":847,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":755,"name":"ElementaryTypeName","src":"13094:5:16"}],"id":756,"name":"VariableDeclaration","src":"13094:23:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (bytes memory)"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":757,"name":"ElementaryTypeName","src":"13124:5:16"}],"id":758,"name":"NewExpression","src":"13120:9:16"},{"attributes":{"argumentTypes":null,"hexvalue":"3230","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 20","value":"20"},"id":759,"name":"Literal","src":"13130:2:16"}],"id":760,"name":"FunctionCall","src":"13120:13:16"}],"id":761,"name":"VariableDeclarationStatement","src":"13094:39:16"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":756,"type":"bytes memory","value":"dateHeader"},"id":762,"name":"Identifier","src":"13213:10:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_11_by_1","typeString":"int_const 11"},{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"overloadedDeclarations":[null],"referencedDeclaration":7482,"type":"function (bytes memory,uint256,uint256,bytes memory,uint256) pure returns (bytes memory)","value":"copyBytes"},"id":763,"name":"Identifier","src":"13226:9:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":723,"type":"bytes memory","value":"headers"},"id":764,"name":"Identifier","src":"13236:7:16"},{"attributes":{"argumentTypes":null,"hexvalue":"3131","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 11","value":"11"},"id":765,"name":"Literal","src":"13245:2:16"},{"attributes":{"argumentTypes":null,"hexvalue":"3230","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 20","value":"20"},"id":766,"name":"Literal","src":"13249:2:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":756,"type":"bytes memory","value":"dateHeader"},"id":767,"name":"Identifier","src":"13253:10:16"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":768,"name":"Literal","src":"13265:1:16"}],"id":769,"name":"FunctionCall","src":"13226:41:16"}],"id":770,"name":"Assignment","src":"13213:54:16"}],"id":771,"name":"ExpressionStatement","src":"13213:54:16"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"dateValid","scope":847,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":772,"name":"ElementaryTypeName","src":"13278:4:16"}],"id":773,"name":"VariableDeclaration","src":"13278:14:16"}],"id":774,"name":"VariableDeclarationStatement","src":"13278:14:16"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"timestamp","scope":847,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":775,"name":"ElementaryTypeName","src":"13302:4:16"}],"id":776,"name":"VariableDeclaration","src":"13302:14:16"}],"id":777,"name":"VariableDeclarationStatement","src":"13302:14:16"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"tuple()"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"tuple(bool,uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":773,"type":"bool","value":"dateValid"},"id":778,"name":"Identifier","src":"13327:9:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":776,"type":"uint256","value":"timestamp"},"id":779,"name":"Identifier","src":"13338:9:16"}],"id":780,"name":"TupleExpression","src":"13326:22:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple(bool,uint256)","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":1097,"type":"function (string memory,uint256) pure returns (bool,uint256)","value":"_verifyDate"},"id":781,"name":"Identifier","src":"13351:11:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(string storage pointer)","value":"string"},"id":782,"name":"ElementaryTypeNameExpression","src":"13363:6:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":756,"type":"bytes memory","value":"dateHeader"},"id":783,"name":"Identifier","src":"13370:10:16"}],"id":784,"name":"FunctionCall","src":"13363:18:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":648,"type":"uint256","value":"_lastUpdate"},"id":785,"name":"Identifier","src":"13383:11:16"}],"id":786,"name":"FunctionCall","src":"13351:44:16"}],"id":787,"name":"Assignment","src":"13326:69:16"}],"id":788,"name":"ExpressionStatement","src":"13326:69:16"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":773,"type":"bool","value":"dateValid"},"id":789,"name":"Identifier","src":"13470:9:16"}],"id":790,"name":"UnaryOperation","src":"13469:10:16"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_bbecc4126e30eacd995bb0f9e9f3dc427c7af6aec4ece5c4f5310382377491ce","typeString":"literal_string \"invalid date\""}],"overloadedDeclarations":[12063,12064],"referencedDeclaration":12064,"type":"function (string memory) pure","value":"revert"},"id":791,"name":"Identifier","src":"13495:6:16"},{"attributes":{"argumentTypes":null,"hexvalue":"696e76616c69642064617465","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"invalid date\"","value":"invalid date"},"id":792,"name":"Literal","src":"13502:14:16"}],"id":793,"name":"FunctionCall","src":"13495:22:16"}],"id":794,"name":"ExpressionStatement","src":"13495:22:16"}],"id":795,"name":"Block","src":"13481:47:16"}],"id":796,"name":"IfStatement","src":"13465:63:16"},{"attributes":{"assignments":[798]},"children":[{"attributes":{"constant":false,"name":"digest","scope":847,"stateVariable":false,"storageLocation":"memory","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":797,"name":"ElementaryTypeName","src":"13606:5:16"}],"id":798,"name":"VariableDeclaration","src":"13606:19:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (bytes memory)"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":799,"name":"ElementaryTypeName","src":"13632:5:16"}],"id":800,"name":"NewExpression","src":"13628:9:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":78,"type":"uint256","value":"_DIGEST_BASE64_LEN"},"id":801,"name":"Identifier","src":"13638:18:16"}],"id":802,"name":"FunctionCall","src":"13628:29:16"}],"id":803,"name":"VariableDeclarationStatement","src":"13606:51:16"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":798,"type":"bytes memory","value":"digest"},"id":804,"name":"Identifier","src":"13667:6:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"overloadedDeclarations":[null],"referencedDeclaration":7482,"type":"function (bytes memory,uint256,uint256,bytes memory,uint256) pure returns (bytes memory)","value":"copyBytes"},"id":805,"name":"Identifier","src":"13676:9:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":723,"type":"bytes memory","value":"headers"},"id":806,"name":"Identifier","src":"13686:7:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":83,"type":"uint256","value":"_DIGEST_OFFSET"},"id":807,"name":"Identifier","src":"13695:14:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":78,"type":"uint256","value":"_DIGEST_BASE64_LEN"},"id":808,"name":"Identifier","src":"13711:18:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":798,"type":"bytes memory","value":"digest"},"id":809,"name":"Identifier","src":"13731:6:16"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":810,"name":"Literal","src":"13739:1:16"}],"id":811,"name":"FunctionCall","src":"13676:65:16"}],"id":812,"name":"Assignment","src":"13667:74:16"}],"id":813,"name":"ExpressionStatement","src":"13667:74:16"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"overloadedDeclarations":[null],"referencedDeclaration":12052,"type":"function () pure returns (bytes32)","value":"keccak256"},"id":814,"name":"Identifier","src":"13756:9:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"member_name":"encodePacked","referencedDeclaration":null,"type":"function () pure returns (bytes memory)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":12045,"type":"abi","value":"abi"},"id":815,"name":"Identifier","src":"13766:3:16"}],"id":816,"name":"MemberAccess","src":"13766:16:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"overloadedDeclarations":[null],"referencedDeclaration":12067,"type":"function () pure returns (bytes32)","value":"sha256"},"id":817,"name":"Identifier","src":"13783:6:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"member_name":"encodePacked","referencedDeclaration":null,"type":"function () pure returns (bytes memory)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":12045,"type":"abi","value":"abi"},"id":818,"name":"Identifier","src":"13790:3:16"}],"id":819,"name":"MemberAccess","src":"13790:16:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":642,"type":"string memory","value":"_result"},"id":820,"name":"Identifier","src":"13807:7:16"}],"id":821,"name":"FunctionCall","src":"13790:25:16"}],"id":822,"name":"FunctionCall","src":"13783:33:16"}],"id":823,"name":"FunctionCall","src":"13766:51:16"}],"id":824,"name":"FunctionCall","src":"13756:62:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"overloadedDeclarations":[null],"referencedDeclaration":12052,"type":"function () pure returns (bytes32)","value":"keccak256"},"id":825,"name":"Identifier","src":"13822:9:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"overloadedDeclarations":[null],"referencedDeclaration":1546,"type":"function (bytes memory) pure returns (bytes memory)","value":"_base64decode"},"id":826,"name":"Identifier","src":"13832:13:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":798,"type":"bytes memory","value":"digest"},"id":827,"name":"Identifier","src":"13846:6:16"}],"id":828,"name":"FunctionCall","src":"13832:21:16"}],"id":829,"name":"FunctionCall","src":"13822:32:16"}],"id":830,"name":"BinaryOperation","src":"13756:98:16"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d892d676e319d50e68a733eb2b14dc19c2350f0f2f1e2e0011eedd93c8ff152f","typeString":"literal_string \"result hash not matching\""}],"overloadedDeclarations":[12063,12064],"referencedDeclaration":12064,"type":"function (string memory) pure","value":"revert"},"id":831,"name":"Identifier","src":"13870:6:16"},{"attributes":{"argumentTypes":null,"hexvalue":"726573756c742068617368206e6f74206d61746368696e67","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"result hash not matching\"","value":"result hash not matching"},"id":832,"name":"Literal","src":"13877:26:16"}],"id":833,"name":"FunctionCall","src":"13870:34:16"}],"id":834,"name":"ExpressionStatement","src":"13870:34:16"}],"id":835,"name":"Block","src":"13856:59:16"}],"id":836,"name":"IfStatement","src":"13752:163:16"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"overloadedDeclarations":[null],"referencedDeclaration":51,"type":"function (bytes memory,string memory)","value":"VerifiedProof"},"id":837,"name":"Identifier","src":"13930:13:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":646,"type":"bytes memory","value":"_publicKey"},"id":838,"name":"Identifier","src":"13944:10:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":642,"type":"string memory","value":"_result"},"id":839,"name":"Identifier","src":"13956:7:16"}],"id":840,"name":"FunctionCall","src":"13930:34:16"}],"id":841,"name":"EmitStatement","src":"13925:39:16"},{"attributes":{"functionReturnParameters":654},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"tuple(bool,uint256)"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":842,"name":"Literal","src":"13982:4:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":776,"type":"uint256","value":"timestamp"},"id":843,"name":"Identifier","src":"13988:9:16"}],"id":844,"name":"TupleExpression","src":"13981:17:16"}],"id":845,"name":"Return","src":"13974:24:16"}],"id":846,"name":"Block","src":"11948:2057:16"}],"id":847,"name":"FunctionDefinition","src":"11831:2174:16"},{"attributes":{"constant":false,"documentation":"@notice Verify the HTTP headers and the signature\n @param _headers HTTP headers provided by the cryptocompare api\n @param _signature signature provided by the cryptocompare api\n @param _publicKey cryptocompare public key.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_verifySignature","payable":false,"scope":1098,"stateMutability":"nonpayable","superFunction":null,"visibility":"private"},"children":[{"children":[{"attributes":{"constant":false,"name":"_headers","scope":886,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":848,"name":"ElementaryTypeName","src":"14288:5:16"}],"id":849,"name":"VariableDeclaration","src":"14288:14:16"},{"attributes":{"constant":false,"name":"_signature","scope":886,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":850,"name":"ElementaryTypeName","src":"14304:5:16"}],"id":851,"name":"VariableDeclaration","src":"14304:16:16"},{"attributes":{"constant":false,"name":"_publicKey","scope":886,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":852,"name":"ElementaryTypeName","src":"14322:5:16"}],"id":853,"name":"VariableDeclaration","src":"14322:16:16"}],"id":854,"name":"ParameterList","src":"14287:52:16"},{"children":[{"attributes":{"constant":false,"name":"","scope":886,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":855,"name":"ElementaryTypeName","src":"14357:4:16"}],"id":856,"name":"VariableDeclaration","src":"14357:4:16"}],"id":857,"name":"ParameterList","src":"14356:6:16"},{"children":[{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"signer","scope":886,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":858,"name":"ElementaryTypeName","src":"14373:7:16"}],"id":859,"name":"VariableDeclaration","src":"14373:14:16"}],"id":860,"name":"VariableDeclarationStatement","src":"14373:14:16"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"signatureOK","scope":886,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":861,"name":"ElementaryTypeName","src":"14397:4:16"}],"id":862,"name":"VariableDeclaration","src":"14397:16:16"}],"id":863,"name":"VariableDeclarationStatement","src":"14397:16:16"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"tuple()"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"tuple(bool,address)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":862,"type":"bool","value":"signatureOK"},"id":864,"name":"Identifier","src":"14492:11:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":859,"type":"address","value":"signer"},"id":865,"name":"Identifier","src":"14505:6:16"}],"id":866,"name":"TupleExpression","src":"14491:21:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple(bool,address)","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"overloadedDeclarations":[null],"referencedDeclaration":7567,"type":"function (bytes32,bytes memory) returns (bool,address)","value":"ecrecovery"},"id":867,"name":"Identifier","src":"14515:10:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"overloadedDeclarations":[null],"referencedDeclaration":12067,"type":"function () pure returns (bytes32)","value":"sha256"},"id":868,"name":"Identifier","src":"14526:6:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":849,"type":"bytes memory","value":"_headers"},"id":869,"name":"Identifier","src":"14533:8:16"}],"id":870,"name":"FunctionCall","src":"14526:16:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":851,"type":"bytes memory","value":"_signature"},"id":871,"name":"Identifier","src":"14544:10:16"}],"id":872,"name":"FunctionCall","src":"14515:40:16"}],"id":873,"name":"Assignment","src":"14491:64:16"}],"id":874,"name":"ExpressionStatement","src":"14491:64:16"},{"attributes":{"functionReturnParameters":857},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&&","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":862,"type":"bool","value":"signatureOK"},"id":875,"name":"Identifier","src":"14572:11:16"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":859,"type":"address","value":"signer"},"id":876,"name":"Identifier","src":"14587:6:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":877,"name":"ElementaryTypeNameExpression","src":"14597:7:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"overloadedDeclarations":[null],"referencedDeclaration":12052,"type":"function () pure returns (bytes32)","value":"keccak256"},"id":878,"name":"Identifier","src":"14605:9:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":853,"type":"bytes memory","value":"_publicKey"},"id":879,"name":"Identifier","src":"14615:10:16"}],"id":880,"name":"FunctionCall","src":"14605:21:16"}],"id":881,"name":"FunctionCall","src":"14597:30:16"}],"id":882,"name":"BinaryOperation","src":"14587:40:16"}],"id":883,"name":"BinaryOperation","src":"14572:55:16"}],"id":884,"name":"Return","src":"14565:62:16"}],"id":885,"name":"Block","src":"14363:271:16"}],"id":886,"name":"FunctionDefinition","src":"14262:372:16"},{"attributes":{"constant":true,"documentation":"@notice Verify the signed HTTP date header.\n @param _dateHeader extracted date string e.g. Wed, 12 Sep 2018 15:18:14 GMT.\n @param _lastUpdate timestamp of the last time the requested token was updated.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_verifyDate","payable":false,"scope":1098,"stateMutability":"pure","superFunction":null,"visibility":"private"},"children":[{"children":[{"attributes":{"constant":false,"name":"_dateHeader","scope":1097,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":887,"name":"ElementaryTypeName","src":"14885:6:16"}],"id":888,"name":"VariableDeclaration","src":"14885:18:16"},{"attributes":{"constant":false,"name":"_lastUpdate","scope":1097,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":889,"name":"ElementaryTypeName","src":"14905:4:16"}],"id":890,"name":"VariableDeclaration","src":"14905:16:16"}],"id":891,"name":"ParameterList","src":"14884:38:16"},{"children":[{"attributes":{"constant":false,"name":"","scope":1097,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":892,"name":"ElementaryTypeName","src":"14945:4:16"}],"id":893,"name":"VariableDeclaration","src":"14945:4:16"},{"attributes":{"constant":false,"name":"","scope":1097,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":894,"name":"ElementaryTypeName","src":"14951:4:16"}],"id":895,"name":"VariableDeclaration","src":"14951:4:16"}],"id":896,"name":"ParameterList","src":"14944:12:16"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"overloadedDeclarations":[null],"referencedDeclaration":12047,"type":"function (bool) pure","value":"assert"},"id":897,"name":"Identifier","src":"15050:6:16"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"member_name":"encodePacked","referencedDeclaration":null,"type":"function () pure returns (bytes memory)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":12045,"type":"abi","value":"abi"},"id":898,"name":"Identifier","src":"15057:3:16"}],"id":899,"name":"MemberAccess","src":"15057:16:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":888,"type":"string memory","value":"_dateHeader"},"id":900,"name":"Identifier","src":"15074:11:16"}],"id":901,"name":"FunctionCall","src":"15057:29:16"}],"id":902,"name":"MemberAccess","src":"15057:36:16"},{"attributes":{"argumentTypes":null,"hexvalue":"3230","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 20","value":"20"},"id":903,"name":"Literal","src":"15097:2:16"}],"id":904,"name":"BinaryOperation","src":"15057:42:16"}],"id":905,"name":"FunctionCall","src":"15050:50:16"}],"id":906,"name":"ExpressionStatement","src":"15050:50:16"},{"attributes":{"assignments":[910]},"children":[{"attributes":{"constant":false,"name":"date","scope":1097,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"strings.slice","referencedDeclaration":10355,"type":"struct strings.slice"},"id":909,"name":"UserDefinedTypeName","src":"15180:13:16"}],"id":910,"name":"VariableDeclaration","src":"15180:25:16"},{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"struct strings.slice memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"toSlice","referencedDeclaration":10415,"type":"function (string memory) pure returns (struct strings.slice memory)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":888,"type":"string memory","value":"_dateHeader"},"id":911,"name":"Identifier","src":"15208:11:16"}],"id":912,"name":"MemberAccess","src":"15208:19:16"}],"id":913,"name":"FunctionCall","src":"15208:21:16"}],"id":914,"name":"VariableDeclarationStatement","src":"15180:49:16"},{"attributes":{"assignments":[918]},"children":[{"attributes":{"constant":false,"name":"timeDelimiter","scope":1097,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"strings.slice","referencedDeclaration":10355,"type":"struct strings.slice"},"id":917,"name":"UserDefinedTypeName","src":"15239:13:16"}],"id":918,"name":"VariableDeclaration","src":"15239:34:16"},{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"struct strings.slice memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"toSlice","referencedDeclaration":10415,"type":"function (string memory) pure returns (struct strings.slice memory)"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3a","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \":\"","value":":"},"id":919,"name":"Literal","src":"15276:3:16"}],"id":920,"name":"MemberAccess","src":"15276:11:16"}],"id":921,"name":"FunctionCall","src":"15276:13:16"}],"id":922,"name":"VariableDeclarationStatement","src":"15239:50:16"},{"attributes":{"assignments":[926]},"children":[{"attributes":{"constant":false,"name":"dateDelimiter","scope":1097,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"strings.slice","referencedDeclaration":10355,"type":"struct strings.slice"},"id":925,"name":"UserDefinedTypeName","src":"15299:13:16"}],"id":926,"name":"VariableDeclaration","src":"15299:34:16"},{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"struct strings.slice memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"toSlice","referencedDeclaration":10415,"type":"function (string memory) pure returns (struct strings.slice memory)"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"20","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \" \"","value":" "},"id":927,"name":"Literal","src":"15336:3:16"}],"id":928,"name":"MemberAccess","src":"15336:11:16"}],"id":929,"name":"FunctionCall","src":"15336:13:16"}],"id":930,"name":"VariableDeclarationStatement","src":"15299:50:16"},{"attributes":{"assignments":[932]},"children":[{"attributes":{"constant":false,"name":"day","scope":1097,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":931,"name":"ElementaryTypeName","src":"15360:4:16"}],"id":932,"name":"VariableDeclaration","src":"15360:8:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"overloadedDeclarations":[7956,8445],"referencedDeclaration":7956,"type":"function (string memory) pure returns (uint256)","value":"_parseIntScientific"},"id":933,"name":"Identifier","src":"15371:19:16"},{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"toString","referencedDeclaration":10593,"type":"function (struct strings.slice memory) pure returns (string memory)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"struct strings.slice memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$10355_memory_ptr","typeString":"struct strings.slice memory"}],"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"split","referencedDeclaration":11714,"type":"function (struct strings.slice memory,struct strings.slice memory) pure returns (struct strings.slice memory)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":910,"type":"struct strings.slice memory","value":"date"},"id":934,"name":"Identifier","src":"15391:4:16"}],"id":935,"name":"MemberAccess","src":"15391:10:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":926,"type":"struct strings.slice memory","value":"dateDelimiter"},"id":936,"name":"Identifier","src":"15402:13:16"}],"id":937,"name":"FunctionCall","src":"15391:25:16"}],"id":938,"name":"MemberAccess","src":"15391:34:16"}],"id":939,"name":"FunctionCall","src":"15391:36:16"}],"id":940,"name":"FunctionCall","src":"15371:57:16"}],"id":941,"name":"VariableDeclarationStatement","src":"15360:68:16"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_95a75b02e57058f7bbef7ee70d3873b2804ff7df40eb4e37bbf8661373f3d1ba","typeString":"literal_string \"day error\""}],"overloadedDeclarations":[12061,12062],"referencedDeclaration":12062,"type":"function (bool,string memory) pure","value":"require"},"id":942,"name":"Identifier","src":"15438:7:16"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&&","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":932,"type":"uint256","value":"day"},"id":943,"name":"Identifier","src":"15446:3:16"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":944,"name":"Literal","src":"15452:1:16"}],"id":945,"name":"BinaryOperation","src":"15446:7:16"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":932,"type":"uint256","value":"day"},"id":946,"name":"Identifier","src":"15457:3:16"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":947,"name":"Literal","src":"15463:2:16"}],"id":948,"name":"BinaryOperation","src":"15457:8:16"}],"id":949,"name":"BinaryOperation","src":"15446:19:16"},{"attributes":{"argumentTypes":null,"hexvalue":"646179206572726f72","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"day error\"","value":"day error"},"id":950,"name":"Literal","src":"15467:11:16"}],"id":951,"name":"FunctionCall","src":"15438:41:16"}],"id":952,"name":"ExpressionStatement","src":"15438:41:16"},{"attributes":{"assignments":[954]},"children":[{"attributes":{"constant":false,"name":"month","scope":1097,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":953,"name":"ElementaryTypeName","src":"15490:4:16"}],"id":954,"name":"VariableDeclaration","src":"15490:10:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint8","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"overloadedDeclarations":[null],"referencedDeclaration":7850,"type":"function (string memory) pure returns (uint8)","value":"_monthToNumber"},"id":955,"name":"Identifier","src":"15503:14:16"},{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"toString","referencedDeclaration":10593,"type":"function (struct strings.slice memory) pure returns (string memory)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"struct strings.slice memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$10355_memory_ptr","typeString":"struct strings.slice memory"}],"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"split","referencedDeclaration":11714,"type":"function (struct strings.slice memory,struct strings.slice memory) pure returns (struct strings.slice memory)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":910,"type":"struct strings.slice memory","value":"date"},"id":956,"name":"Identifier","src":"15518:4:16"}],"id":957,"name":"MemberAccess","src":"15518:10:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":926,"type":"struct strings.slice memory","value":"dateDelimiter"},"id":958,"name":"Identifier","src":"15529:13:16"}],"id":959,"name":"FunctionCall","src":"15518:25:16"}],"id":960,"name":"MemberAccess","src":"15518:34:16"}],"id":961,"name":"FunctionCall","src":"15518:36:16"}],"id":962,"name":"FunctionCall","src":"15503:52:16"}],"id":963,"name":"VariableDeclarationStatement","src":"15490:65:16"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a1177fbd3d9cf5cca68d736867c5e28749fe8032db444d9fa5da3d2ddd8f3f73","typeString":"literal_string \"month error\""}],"overloadedDeclarations":[12061,12062],"referencedDeclaration":12062,"type":"function (bool,string memory) pure","value":"require"},"id":964,"name":"Identifier","src":"15565:7:16"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&&","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":954,"type":"uint256","value":"month"},"id":965,"name":"Identifier","src":"15573:5:16"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":966,"name":"Literal","src":"15581:1:16"}],"id":967,"name":"BinaryOperation","src":"15573:9:16"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":954,"type":"uint256","value":"month"},"id":968,"name":"Identifier","src":"15586:5:16"},{"attributes":{"argumentTypes":null,"hexvalue":"3133","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 13","value":"13"},"id":969,"name":"Literal","src":"15594:2:16"}],"id":970,"name":"BinaryOperation","src":"15586:10:16"}],"id":971,"name":"BinaryOperation","src":"15573:23:16"},{"attributes":{"argumentTypes":null,"hexvalue":"6d6f6e7468206572726f72","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"month error\"","value":"month error"},"id":972,"name":"Literal","src":"15598:13:16"}],"id":973,"name":"FunctionCall","src":"15565:47:16"}],"id":974,"name":"ExpressionStatement","src":"15565:47:16"},{"attributes":{"assignments":[976]},"children":[{"attributes":{"constant":false,"name":"year","scope":1097,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":975,"name":"ElementaryTypeName","src":"15623:4:16"}],"id":976,"name":"VariableDeclaration","src":"15623:9:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"overloadedDeclarations":[7956,8445],"referencedDeclaration":7956,"type":"function (string memory) pure returns (uint256)","value":"_parseIntScientific"},"id":977,"name":"Identifier","src":"15635:19:16"},{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"toString","referencedDeclaration":10593,"type":"function (struct strings.slice memory) pure returns (string memory)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"struct strings.slice memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$10355_memory_ptr","typeString":"struct strings.slice memory"}],"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"split","referencedDeclaration":11714,"type":"function (struct strings.slice memory,struct strings.slice memory) pure returns (struct strings.slice memory)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":910,"type":"struct strings.slice memory","value":"date"},"id":978,"name":"Identifier","src":"15655:4:16"}],"id":979,"name":"MemberAccess","src":"15655:10:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":926,"type":"struct strings.slice memory","value":"dateDelimiter"},"id":980,"name":"Identifier","src":"15666:13:16"}],"id":981,"name":"FunctionCall","src":"15655:25:16"}],"id":982,"name":"MemberAccess","src":"15655:34:16"}],"id":983,"name":"FunctionCall","src":"15655:36:16"}],"id":984,"name":"FunctionCall","src":"15635:57:16"}],"id":985,"name":"VariableDeclarationStatement","src":"15623:69:16"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9d839699d3e7666d9e399390bf4d043a50156c35b49e48b95ba932560f4dddcd","typeString":"literal_string \"year error\""}],"overloadedDeclarations":[12061,12062],"referencedDeclaration":12062,"type":"function (bool,string memory) pure","value":"require"},"id":986,"name":"Identifier","src":"15702:7:16"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&&","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":976,"type":"uint256","value":"year"},"id":987,"name":"Identifier","src":"15710:4:16"},{"attributes":{"argumentTypes":null,"hexvalue":"32303137","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2017","value":"2017"},"id":988,"name":"Literal","src":"15717:4:16"}],"id":989,"name":"BinaryOperation","src":"15710:11:16"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":976,"type":"uint256","value":"year"},"id":990,"name":"Identifier","src":"15725:4:16"},{"attributes":{"argumentTypes":null,"hexvalue":"33303030","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3000","value":"3000"},"id":991,"name":"Literal","src":"15732:4:16"}],"id":992,"name":"BinaryOperation","src":"15725:11:16"}],"id":993,"name":"BinaryOperation","src":"15710:26:16"},{"attributes":{"argumentTypes":null,"hexvalue":"79656172206572726f72","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"year error\"","value":"year error"},"id":994,"name":"Literal","src":"15738:12:16"}],"id":995,"name":"FunctionCall","src":"15702:49:16"}],"id":996,"name":"ExpressionStatement","src":"15702:49:16"},{"attributes":{"assignments":[998]},"children":[{"attributes":{"constant":false,"name":"hour","scope":1097,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":997,"name":"ElementaryTypeName","src":"15762:4:16"}],"id":998,"name":"VariableDeclaration","src":"15762:9:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"overloadedDeclarations":[7956,8445],"referencedDeclaration":7956,"type":"function (string memory) pure returns (uint256)","value":"_parseIntScientific"},"id":999,"name":"Identifier","src":"15774:19:16"},{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"toString","referencedDeclaration":10593,"type":"function (struct strings.slice memory) pure returns (string memory)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"struct strings.slice memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$10355_memory_ptr","typeString":"struct strings.slice memory"}],"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"split","referencedDeclaration":11714,"type":"function (struct strings.slice memory,struct strings.slice memory) pure returns (struct strings.slice memory)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":910,"type":"struct strings.slice memory","value":"date"},"id":1000,"name":"Identifier","src":"15794:4:16"}],"id":1001,"name":"MemberAccess","src":"15794:10:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":918,"type":"struct strings.slice memory","value":"timeDelimiter"},"id":1002,"name":"Identifier","src":"15805:13:16"}],"id":1003,"name":"FunctionCall","src":"15794:25:16"}],"id":1004,"name":"MemberAccess","src":"15794:34:16"}],"id":1005,"name":"FunctionCall","src":"15794:36:16"}],"id":1006,"name":"FunctionCall","src":"15774:57:16"}],"id":1007,"name":"VariableDeclarationStatement","src":"15762:69:16"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ab056418919ffee98f625728a16422f4a36f7aa321eeee0b9e5360560378b27c","typeString":"literal_string \"hour error\""}],"overloadedDeclarations":[12061,12062],"referencedDeclaration":12062,"type":"function (bool,string memory) pure","value":"require"},"id":1008,"name":"Identifier","src":"15841:7:16"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":998,"type":"uint256","value":"hour"},"id":1009,"name":"Identifier","src":"15849:4:16"},{"attributes":{"argumentTypes":null,"hexvalue":"3235","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 25","value":"25"},"id":1010,"name":"Literal","src":"15856:2:16"}],"id":1011,"name":"BinaryOperation","src":"15849:9:16"},{"attributes":{"argumentTypes":null,"hexvalue":"686f7572206572726f72","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"hour error\"","value":"hour error"},"id":1012,"name":"Literal","src":"15860:12:16"}],"id":1013,"name":"FunctionCall","src":"15841:32:16"}],"id":1014,"name":"ExpressionStatement","src":"15841:32:16"},{"attributes":{"assignments":[1016]},"children":[{"attributes":{"constant":false,"name":"minute","scope":1097,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1015,"name":"ElementaryTypeName","src":"15884:4:16"}],"id":1016,"name":"VariableDeclaration","src":"15884:11:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"overloadedDeclarations":[7956,8445],"referencedDeclaration":7956,"type":"function (string memory) pure returns (uint256)","value":"_parseIntScientific"},"id":1017,"name":"Identifier","src":"15898:19:16"},{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"toString","referencedDeclaration":10593,"type":"function (struct strings.slice memory) pure returns (string memory)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"struct strings.slice memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$10355_memory_ptr","typeString":"struct strings.slice memory"}],"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"split","referencedDeclaration":11714,"type":"function (struct strings.slice memory,struct strings.slice memory) pure returns (struct strings.slice memory)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":910,"type":"struct strings.slice memory","value":"date"},"id":1018,"name":"Identifier","src":"15918:4:16"}],"id":1019,"name":"MemberAccess","src":"15918:10:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":918,"type":"struct strings.slice memory","value":"timeDelimiter"},"id":1020,"name":"Identifier","src":"15929:13:16"}],"id":1021,"name":"FunctionCall","src":"15918:25:16"}],"id":1022,"name":"MemberAccess","src":"15918:34:16"}],"id":1023,"name":"FunctionCall","src":"15918:36:16"}],"id":1024,"name":"FunctionCall","src":"15898:57:16"}],"id":1025,"name":"VariableDeclarationStatement","src":"15884:71:16"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c3c1ccf9a2b7bd2832b9ffd4cd2f682d3e60d7b053050a16568916bf28585299","typeString":"literal_string \"minute error\""}],"overloadedDeclarations":[12061,12062],"referencedDeclaration":12062,"type":"function (bool,string memory) pure","value":"require"},"id":1026,"name":"Identifier","src":"15965:7:16"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1016,"type":"uint256","value":"minute"},"id":1027,"name":"Identifier","src":"15973:6:16"},{"attributes":{"argumentTypes":null,"hexvalue":"3630","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 60","value":"60"},"id":1028,"name":"Literal","src":"15982:2:16"}],"id":1029,"name":"BinaryOperation","src":"15973:11:16"},{"attributes":{"argumentTypes":null,"hexvalue":"6d696e757465206572726f72","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"minute error\"","value":"minute error"},"id":1030,"name":"Literal","src":"15986:14:16"}],"id":1031,"name":"FunctionCall","src":"15965:36:16"}],"id":1032,"name":"ExpressionStatement","src":"15965:36:16"},{"attributes":{"assignments":[1034]},"children":[{"attributes":{"constant":false,"name":"second","scope":1097,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1033,"name":"ElementaryTypeName","src":"16012:4:16"}],"id":1034,"name":"VariableDeclaration","src":"16012:11:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"overloadedDeclarations":[7956,8445],"referencedDeclaration":7956,"type":"function (string memory) pure returns (uint256)","value":"_parseIntScientific"},"id":1035,"name":"Identifier","src":"16026:19:16"},{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"toString","referencedDeclaration":10593,"type":"function (struct strings.slice memory) pure returns (string memory)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"struct strings.slice memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$10355_memory_ptr","typeString":"struct strings.slice memory"}],"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"split","referencedDeclaration":11714,"type":"function (struct strings.slice memory,struct strings.slice memory) pure returns (struct strings.slice memory)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":910,"type":"struct strings.slice memory","value":"date"},"id":1036,"name":"Identifier","src":"16046:4:16"}],"id":1037,"name":"MemberAccess","src":"16046:10:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":918,"type":"struct strings.slice memory","value":"timeDelimiter"},"id":1038,"name":"Identifier","src":"16057:13:16"}],"id":1039,"name":"FunctionCall","src":"16046:25:16"}],"id":1040,"name":"MemberAccess","src":"16046:34:16"}],"id":1041,"name":"FunctionCall","src":"16046:36:16"}],"id":1042,"name":"FunctionCall","src":"16026:57:16"}],"id":1043,"name":"VariableDeclarationStatement","src":"16012:71:16"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_30566e2365c40c39b8cff6f6328671d3f74806dbf5a804b36e8ac7217a4f034c","typeString":"literal_string \"second error\""}],"overloadedDeclarations":[12061,12062],"referencedDeclaration":12062,"type":"function (bool,string memory) pure","value":"require"},"id":1044,"name":"Identifier","src":"16093:7:16"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1034,"type":"uint256","value":"second"},"id":1045,"name":"Identifier","src":"16101:6:16"},{"attributes":{"argumentTypes":null,"hexvalue":"3630","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 60","value":"60"},"id":1046,"name":"Literal","src":"16110:2:16"}],"id":1047,"name":"BinaryOperation","src":"16101:11:16"},{"attributes":{"argumentTypes":null,"hexvalue":"7365636f6e64206572726f72","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"second error\"","value":"second error"},"id":1048,"name":"Literal","src":"16114:14:16"}],"id":1049,"name":"FunctionCall","src":"16093:36:16"}],"id":1050,"name":"ExpressionStatement","src":"16093:36:16"},{"attributes":{"assignments":[1052]},"children":[{"attributes":{"constant":false,"name":"timestamp","scope":1097,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1051,"name":"ElementaryTypeName","src":"16140:4:16"}],"id":1052,"name":"VariableDeclaration","src":"16140:14:16"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":976,"type":"uint256","value":"year"},"id":1053,"name":"Identifier","src":"16157:4:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"int_const 10000000000"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"**","type":"int_const 10000000000"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3130","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 10","value":"10"},"id":1054,"name":"Literal","src":"16165:2:16"},{"attributes":{"argumentTypes":null,"hexvalue":"3130","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 10","value":"10"},"id":1055,"name":"Literal","src":"16171:2:16"}],"id":1056,"name":"BinaryOperation","src":"16165:8:16"}],"id":1057,"name":"TupleExpression","src":"16164:10:16"}],"id":1058,"name":"BinaryOperation","src":"16157:17:16"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":954,"type":"uint256","value":"month"},"id":1059,"name":"Identifier","src":"16177:5:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"int_const 100000000"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"**","type":"int_const 100000000"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3130","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 10","value":"10"},"id":1060,"name":"Literal","src":"16186:2:16"},{"attributes":{"argumentTypes":null,"hexvalue":"38","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 8","value":"8"},"id":1061,"name":"Literal","src":"16192:1:16"}],"id":1062,"name":"BinaryOperation","src":"16186:7:16"}],"id":1063,"name":"TupleExpression","src":"16185:9:16"}],"id":1064,"name":"BinaryOperation","src":"16177:17:16"}],"id":1065,"name":"BinaryOperation","src":"16157:37:16"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":932,"type":"uint256","value":"day"},"id":1066,"name":"Identifier","src":"16197:3:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"int_const 1000000"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_1000000_by_1","typeString":"int_const 1000000"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"**","type":"int_const 1000000"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3130","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 10","value":"10"},"id":1067,"name":"Literal","src":"16204:2:16"},{"attributes":{"argumentTypes":null,"hexvalue":"36","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 6","value":"6"},"id":1068,"name":"Literal","src":"16210:1:16"}],"id":1069,"name":"BinaryOperation","src":"16204:7:16"}],"id":1070,"name":"TupleExpression","src":"16203:9:16"}],"id":1071,"name":"BinaryOperation","src":"16197:15:16"}],"id":1072,"name":"BinaryOperation","src":"16157:55:16"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":998,"type":"uint256","value":"hour"},"id":1073,"name":"Identifier","src":"16215:4:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"int_const 10000"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"**","type":"int_const 10000"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3130","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 10","value":"10"},"id":1074,"name":"Literal","src":"16223:2:16"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":1075,"name":"Literal","src":"16229:1:16"}],"id":1076,"name":"BinaryOperation","src":"16223:7:16"}],"id":1077,"name":"TupleExpression","src":"16222:9:16"}],"id":1078,"name":"BinaryOperation","src":"16215:16:16"}],"id":1079,"name":"BinaryOperation","src":"16157:74:16"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1016,"type":"uint256","value":"minute"},"id":1080,"name":"Identifier","src":"16234:6:16"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"int_const 100"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"**","type":"int_const 100"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3130","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 10","value":"10"},"id":1081,"name":"Literal","src":"16244:2:16"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":1082,"name":"Literal","src":"16250:1:16"}],"id":1083,"name":"BinaryOperation","src":"16244:7:16"}],"id":1084,"name":"TupleExpression","src":"16243:9:16"}],"id":1085,"name":"BinaryOperation","src":"16234:18:16"}],"id":1086,"name":"BinaryOperation","src":"16157:95:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1034,"type":"uint256","value":"second"},"id":1087,"name":"Identifier","src":"16255:6:16"}],"id":1088,"name":"BinaryOperation","src":"16157:104:16"}],"id":1089,"name":"VariableDeclarationStatement","src":"16140:121:16"},{"attributes":{"functionReturnParameters":896},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"tuple(bool,uint256)"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1052,"type":"uint256","value":"timestamp"},"id":1090,"name":"Identifier","src":"16280:9:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":890,"type":"uint256","value":"_lastUpdate"},"id":1091,"name":"Identifier","src":"16292:11:16"}],"id":1092,"name":"BinaryOperation","src":"16280:23:16"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1052,"type":"uint256","value":"timestamp"},"id":1093,"name":"Identifier","src":"16305:9:16"}],"id":1094,"name":"TupleExpression","src":"16279:36:16"}],"id":1095,"name":"Return","src":"16272:43:16"}],"id":1096,"name":"Block","src":"14957:1365:16"}],"id":1097,"name":"FunctionDefinition","src":"14864:1458:16"}],"id":1098,"name":"ContractDefinition","src":"1225:15100:16"}],"id":1099,"name":"SourceUnit","src":"770:15556:16"}}},"version":"0.4.25+commit.59dbf8f1.Linux.g++"} \ No newline at end of file diff --git a/build/wallet/Controller.abi b/build/wallet/Controller.abi index 5df6cd3a..10bc0c9e 100644 --- a/build/wallet/Controller.abi +++ b/build/wallet/Controller.abi @@ -1 +1 @@ -[{"constant":true,"inputs":[],"name":"controllerCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_account","type":"address"}],"name":"removeAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isTransferable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_account","type":"address"}],"name":"isAdmin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"adminCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_account","type":"address"}],"name":"addAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_account","type":"address"}],"name":"addController","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_account","type":"address"},{"name":"_transferable","type":"bool"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_account","type":"address"}],"name":"isController","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_account","type":"address"}],"name":"removeController","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_ownerAddress_","type":"address"},{"name":"_transferable_","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_sender","type":"address"},{"indexed":false,"name":"_controller","type":"address"}],"name":"AddedController","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_sender","type":"address"},{"indexed":false,"name":"_controller","type":"address"}],"name":"RemovedController","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_sender","type":"address"},{"indexed":false,"name":"_admin","type":"address"}],"name":"AddedAdmin","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_sender","type":"address"},{"indexed":false,"name":"_admin","type":"address"}],"name":"RemovedAdmin","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_from","type":"address"},{"indexed":false,"name":"_to","type":"address"}],"name":"TransferredOwnership","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_locked","type":"address"}],"name":"LockedOwnership","type":"event"}] \ No newline at end of file +[{"constant":true,"inputs":[],"name":"controllerCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_account","type":"address"}],"name":"removeAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isTransferable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_account","type":"address"}],"name":"isAdmin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"adminCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_account","type":"address"}],"name":"addAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_asset","type":"address"},{"name":"_amount","type":"uint256"}],"name":"claim","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_account","type":"address"}],"name":"addController","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_account","type":"address"},{"name":"_transferable","type":"bool"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_account","type":"address"}],"name":"isController","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_account","type":"address"}],"name":"removeController","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_ownerAddress_","type":"address"},{"name":"_transferable_","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_sender","type":"address"},{"indexed":false,"name":"_controller","type":"address"}],"name":"AddedController","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_sender","type":"address"},{"indexed":false,"name":"_controller","type":"address"}],"name":"RemovedController","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_sender","type":"address"},{"indexed":false,"name":"_admin","type":"address"}],"name":"AddedAdmin","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_sender","type":"address"},{"indexed":false,"name":"_admin","type":"address"}],"name":"RemovedAdmin","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_to","type":"address"},{"indexed":false,"name":"_asset","type":"address"},{"indexed":false,"name":"_amount","type":"uint256"}],"name":"Claimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_from","type":"address"},{"indexed":false,"name":"_to","type":"address"}],"name":"TransferredOwnership","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_locked","type":"address"}],"name":"LockedOwnership","type":"event"}] \ No newline at end of file diff --git a/build/wallet/Controller.bin b/build/wallet/Controller.bin index bbc39dbe..afa63062 100644 --- a/build/wallet/Controller.bin +++ b/build/wallet/Controller.bin @@ -1 +1 @@ -608060405234801561001057600080fd5b5060405160408061103a83398101604052805160209091015160008054600160a060020a031916600160a060020a0384161760a060020a60ff02191674010000000000000000000000000000000000000000831515810291909117918290558391839160ff91041615156100bb5760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b6040805160008152600160a060020a038416602082015281517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea5929181900390910190a150505050610f28806101126000396000f3006080604052600436106100b95763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166315b9a8b881146100be5780631785f53c146100e55780632121dc751461010857806324d7806c146101315780632b7832b3146101525780637048027514610167578063715018a6146101885780638da5cb5b1461019d578063a7fc7a07146101ce578063b242e534146101ef578063b429afeb14610215578063f6a74ed714610236575b600080fd5b3480156100ca57600080fd5b506100d3610257565b60408051918252519081900360200190f35b3480156100f157600080fd5b50610106600160a060020a036004351661025d565b005b34801561011457600080fd5b5061011d6102b6565b604080519115158252519081900360200190f35b34801561013d57600080fd5b5061011d600160a060020a03600435166102d7565b34801561015e57600080fd5b506100d36102f5565b34801561017357600080fd5b50610106600160a060020a03600435166102fb565b34801561019457600080fd5b50610106610351565b3480156101a957600080fd5b506101b261046c565b60408051600160a060020a039092168252519081900360200190f35b3480156101da57600080fd5b50610106600160a060020a036004351661047b565b3480156101fb57600080fd5b50610106600160a060020a036004351660243515156104e3565b34801561022157600080fd5b5061011d600160a060020a0360043516610722565b34801561024257600080fd5b50610106600160a060020a0360043516610740565b60045490565b610266336107a8565b15156102aa576040805160e560020a62461bcd0281526020600482015260166024820152600080516020610edd833981519152604482015290519081900360640190fd5b6102b3816107bc565b50565b60005474010000000000000000000000000000000000000000900460ff1690565b600160a060020a031660009081526001602052604090205460ff1690565b60025490565b610304336107a8565b1515610348576040805160e560020a62461bcd0281526020600482015260166024820152600080516020610edd833981519152604482015290519081900360640190fd5b6102b381610897565b61035a336107a8565b151561039e576040805160e560020a62461bcd0281526020600482015260166024820152600080516020610edd833981519152604482015290519081900360640190fd5b60005474010000000000000000000000000000000000000000900460ff161515610412576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916815560408051828152602081019290925280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1565b600054600160a060020a031690565b610484336102d7565b15156104da576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e2061646d696e00000000000000000000604482015290519081900360640190fd5b6102b381610b38565b6104ec336107a8565b1515610530576040805160e560020a62461bcd0281526020600482015260166024820152600080516020610edd833981519152604482015290519081900360640190fd5b60005474010000000000000000000000000000000000000000900460ff1615156105a4576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b600160a060020a038216151561062a576040805160e560020a62461bcd02815260206004820152602360248201527f6f776e65722063616e6e6f742062652073657420746f207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6000805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000831515908102919091179091556106aa5760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b60005460408051600160a060020a039283168152918416602083015280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1506000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a031660009081526003602052604090205460ff1690565b610749336102d7565b151561079f576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e2061646d696e00000000000000000000604482015290519081900360640190fd5b6102b381610ddc565b600054600160a060020a0390811691161490565b600160a060020a03811660009081526001602052604090205460ff16151561082e576040805160e560020a62461bcd02815260206004820181905260248201527f70726f7669646564206163636f756e74206973206e6f7420616e2061646d696e604482015290519081900360640190fd5b600160a060020a038116600081815260016020908152604091829020805460ff191690556002805460001901905581513381529081019290925280517f787a2e12f4a55b658b8f573c32432ee11a5e8b51677d1e1e937aaf6a0bb5776e9281900390910190a150565b600160a060020a03811660009081526001602052604090205460ff161561092d576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320616c726561647920616e206160448201527f646d696e00000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a03811660009081526003602052604090205460ff16156109c4576040805160e560020a62461bcd02815260206004820152602860248201527f70726f7669646564206163636f756e7420697320616c7265616479206120636f60448201527f6e74726f6c6c6572000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6109cd816107a8565b15610a48576040805160e560020a62461bcd02815260206004820152602560248201527f70726f7669646564206163636f756e7420697320616c7265616479207468652060448201527f6f776e6572000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0381161515610acd576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260016020818152604092839020805460ff1916831790556002805490920190915581513381529081019290925280517fc58b647b8ba5a8cab2f11f32673636cc1061324240972ed05e8cc005b81a4b7a9281900390910190a150565b600160a060020a03811660009081526001602052604090205460ff1615610bce576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320616c726561647920616e206160448201527f646d696e00000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a03811660009081526003602052604090205460ff1615610c65576040805160e560020a62461bcd02815260206004820152602860248201527f70726f7669646564206163636f756e7420697320616c7265616479206120636f60448201527f6e74726f6c6c6572000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b610c6e816107a8565b15610ce9576040805160e560020a62461bcd02815260206004820152602560248201527f70726f7669646564206163636f756e7420697320616c7265616479207468652060448201527f6f776e6572000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0381161515610d6e576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260036020908152604091829020805460ff1916600190811790915560048054909101905581513381529081019290925280517fb890d5abdcd5c2b61ce8bbc2cf6af9b6d7f7451830cbc85037cbdd182c86fe1d9281900390910190a150565b600160a060020a03811660009081526003602052604090205460ff161515610e73576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e74206973206e6f74206120636f6e74726f60448201527f6c6c657200000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260036020908152604091829020805460ff191690556004805460001901905581513381529081019290925280517fb6a283aaede08e15ef55c74e3014e30eb0c0040d4b156cccb77391268ea373949281900390910190a150560073656e646572206973206e6f7420616e206f776e657200000000000000000000a165627a7a72305820e3381d505607ee63056d5ba42a87e53a7b0dab423e773fa53f1e050ccb6949390029 \ No newline at end of file +608060405234801561001057600080fd5b5060405160408061128b83398101604052805160209091015160008054600160a060020a031916600160a060020a0384161760a060020a60ff02191674010000000000000000000000000000000000000000831515810291909117918290558391839160ff91041615156100bb5760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b6040805160008152600160a060020a038416602082015281517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea5929181900390910190a150505050611179806101126000396000f3006080604052600436106100c45763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166315b9a8b881146100c95780631785f53c146100f05780632121dc751461011357806324d7806c1461013c5780632b7832b31461015d5780637048027514610172578063715018a6146101935780638da5cb5b146101a8578063996cba68146101d9578063a7fc7a0714610203578063b242e53414610224578063b429afeb1461024a578063f6a74ed71461026b575b600080fd5b3480156100d557600080fd5b506100de61028c565b60408051918252519081900360200190f35b3480156100fc57600080fd5b50610111600160a060020a0360043516610292565b005b34801561011f57600080fd5b506101286102eb565b604080519115158252519081900360200190f35b34801561014857600080fd5b50610128600160a060020a036004351661030c565b34801561016957600080fd5b506100de61032a565b34801561017e57600080fd5b50610111600160a060020a0360043516610330565b34801561019f57600080fd5b50610111610386565b3480156101b457600080fd5b506101bd6104a1565b60408051600160a060020a039092168252519081900360200190f35b3480156101e557600080fd5b50610111600160a060020a03600435811690602435166044356104b0565b34801561020f57600080fd5b50610111600160a060020a036004351661050d565b34801561023057600080fd5b50610111600160a060020a03600435166024351515610575565b34801561025657600080fd5b50610128600160a060020a03600435166107b4565b34801561027757600080fd5b50610111600160a060020a03600435166107d2565b60045490565b61029b3361083a565b15156102df576040805160e560020a62461bcd028152602060048201526016602482015260008051602061112e833981519152604482015290519081900360640190fd5b6102e88161084e565b50565b60005474010000000000000000000000000000000000000000900460ff1690565b600160a060020a031660009081526001602052604090205460ff1690565b60025490565b6103393361083a565b151561037d576040805160e560020a62461bcd028152602060048201526016602482015260008051602061112e833981519152604482015290519081900360640190fd5b6102e881610929565b61038f3361083a565b15156103d3576040805160e560020a62461bcd028152602060048201526016602482015260008051602061112e833981519152604482015290519081900360640190fd5b60005474010000000000000000000000000000000000000000900460ff161515610447576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916815560408051828152602081019290925280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1565b600054600160a060020a031690565b6104b93361083a565b15156104fd576040805160e560020a62461bcd028152602060048201526016602482015260008051602061112e833981519152604482015290519081900360640190fd5b610508838383610bca565b505050565b6105163361030c565b151561056c576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e2061646d696e00000000000000000000604482015290519081900360640190fd5b6102e881610d89565b61057e3361083a565b15156105c2576040805160e560020a62461bcd028152602060048201526016602482015260008051602061112e833981519152604482015290519081900360640190fd5b60005474010000000000000000000000000000000000000000900460ff161515610636576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b600160a060020a03821615156106bc576040805160e560020a62461bcd02815260206004820152602360248201527f6f776e65722063616e6e6f742062652073657420746f207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6000805474ff00000000000000000000000000000000000000001916740100000000000000000000000000000000000000008315159081029190911790915561073c5760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b60005460408051600160a060020a039283168152918416602083015280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1506000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a031660009081526003602052604090205460ff1690565b6107db3361030c565b1515610831576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e2061646d696e00000000000000000000604482015290519081900360640190fd5b6102e88161102d565b600054600160a060020a0390811691161490565b600160a060020a03811660009081526001602052604090205460ff1615156108c0576040805160e560020a62461bcd02815260206004820181905260248201527f70726f7669646564206163636f756e74206973206e6f7420616e2061646d696e604482015290519081900360640190fd5b600160a060020a038116600081815260016020908152604091829020805460ff191690556002805460001901905581513381529081019290925280517f787a2e12f4a55b658b8f573c32432ee11a5e8b51677d1e1e937aaf6a0bb5776e9281900390910190a150565b600160a060020a03811660009081526001602052604090205460ff16156109bf576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320616c726561647920616e206160448201527f646d696e00000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a03811660009081526003602052604090205460ff1615610a56576040805160e560020a62461bcd02815260206004820152602860248201527f70726f7669646564206163636f756e7420697320616c7265616479206120636f60448201527f6e74726f6c6c6572000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b610a5f8161083a565b15610ada576040805160e560020a62461bcd02815260206004820152602560248201527f70726f7669646564206163636f756e7420697320616c7265616479207468652060448201527f6f776e6572000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0381161515610b5f576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260016020818152604092839020805460ff1916831790556002805490920190915581513381529081019290925280517fc58b647b8ba5a8cab2f11f32673636cc1061324240972ed05e8cc005b81a4b7a9281900390910190a150565b600160a060020a0382161515610c1657604051600160a060020a0384169082156108fc029083906000818181858888f19350505050158015610c10573d6000803e3d6000fd5b50610d3a565b81600160a060020a031663a9059cbb84836040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b158015610c9257600080fd5b505af1158015610ca6573d6000803e3d6000fd5b505050506040513d6020811015610cbc57600080fd5b50511515610d3a576040805160e560020a62461bcd02815260206004820152602560248201527f455243323020746f6b656e207472616e736665722077617320756e737563636560448201527f737366756c000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60408051600160a060020a0380861682528416602082015280820183905290517ff7a40077ff7a04c7e61f6f26fb13774259ddf1b6bce9ecf26a8276cdd39926839181900360600190a1505050565b600160a060020a03811660009081526001602052604090205460ff1615610e1f576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320616c726561647920616e206160448201527f646d696e00000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a03811660009081526003602052604090205460ff1615610eb6576040805160e560020a62461bcd02815260206004820152602860248201527f70726f7669646564206163636f756e7420697320616c7265616479206120636f60448201527f6e74726f6c6c6572000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b610ebf8161083a565b15610f3a576040805160e560020a62461bcd02815260206004820152602560248201527f70726f7669646564206163636f756e7420697320616c7265616479207468652060448201527f6f776e6572000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0381161515610fbf576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260036020908152604091829020805460ff1916600190811790915560048054909101905581513381529081019290925280517fb890d5abdcd5c2b61ce8bbc2cf6af9b6d7f7451830cbc85037cbdd182c86fe1d9281900390910190a150565b600160a060020a03811660009081526003602052604090205460ff1615156110c4576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e74206973206e6f74206120636f6e74726f60448201527f6c6c657200000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260036020908152604091829020805460ff191690556004805460001901905581513381529081019290925280517fb6a283aaede08e15ef55c74e3014e30eb0c0040d4b156cccb77391268ea373949281900390910190a150560073656e646572206973206e6f7420616e206f776e657200000000000000000000a165627a7a723058200e752e3a88decc3d8c5d0c377c032b4fe39f5eb66a5b9fe8ce60f184698d72480029 \ No newline at end of file diff --git a/build/wallet/DailyLimitTrait.bin b/build/wallet/DailyLimitTrait.bin index d4d194e9..f203f4de 100644 --- a/build/wallet/DailyLimitTrait.bin +++ b/build/wallet/DailyLimitTrait.bin @@ -1 +1 @@ -6080604052348015600f57600080fd5b50603580601d6000396000f3006080604052600080fd00a165627a7a723058201ad3e6d1353f6ee346bd8d52d942b057fbafc0f7410febf286a76da1472468fc0029 \ No newline at end of file +6080604052348015600f57600080fd5b50603580601d6000396000f3006080604052600080fd00a165627a7a72305820517417f312f95dcc961376b13ee947e6c0c54ca43c0bce814eb16ccdf73663f70029 \ No newline at end of file diff --git a/build/wallet/TokenWhitelist.abi b/build/wallet/TokenWhitelist.abi index b9f49cf9..09993a1c 100644 --- a/build/wallet/TokenWhitelist.abi +++ b/build/wallet/TokenWhitelist.abi @@ -1 +1 @@ -[{"constant":true,"inputs":[{"name":"_a","type":"address"}],"name":"getTokenInfo","outputs":[{"name":"","type":"string"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"bool"},{"name":"","type":"bool"},{"name":"","type":"bool"},{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isTransferable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_tokens","type":"address[]"},{"name":"_symbols","type":"bytes32[]"},{"name":"_magnitude","type":"uint256[]"},{"name":"_loadable","type":"bool[]"},{"name":"_burnable","type":"bool[]"},{"name":"_lastUpdate","type":"uint256"}],"name":"addTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getStablecoinInfo","outputs":[{"name":"","type":"string"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"bool"},{"name":"","type":"bool"},{"name":"","type":"bool"},{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokenAddressArray","outputs":[{"name":"","type":"address[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_tokens","type":"address[]"}],"name":"removeTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ensRegistry","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"oracleNode","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_account","type":"address"},{"name":"_transferable","type":"bool"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"},{"name":"_rate","type":"uint256"},{"name":"_updateDate","type":"uint256"}],"name":"updateTokenRate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"controllerNode","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"stablecoin","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_ens_","type":"address"},{"name":"_oracleNameHash_","type":"bytes32"},{"name":"_controllerNameHash_","type":"bytes32"},{"name":"_owner_","type":"address"},{"name":"_transferable_","type":"bool"},{"name":"_stabelcoinAddress_","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_sender","type":"address"},{"indexed":false,"name":"_token","type":"address"},{"indexed":false,"name":"_rate","type":"uint256"}],"name":"UpdatedTokenRate","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_sender","type":"address"},{"indexed":false,"name":"_token","type":"address"},{"indexed":false,"name":"_symbol","type":"string"},{"indexed":false,"name":"_magnitude","type":"uint256"},{"indexed":false,"name":"_loadable","type":"bool"},{"indexed":false,"name":"_burnable","type":"bool"}],"name":"AddedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_sender","type":"address"},{"indexed":false,"name":"_token","type":"address"}],"name":"RemovedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_from","type":"address"},{"indexed":false,"name":"_to","type":"address"}],"name":"TransferredOwnership","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_locked","type":"address"}],"name":"LockedOwnership","type":"event"}] \ No newline at end of file +[{"constant":true,"inputs":[{"name":"_a","type":"address"}],"name":"getTokenInfo","outputs":[{"name":"","type":"string"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"bool"},{"name":"","type":"bool"},{"name":"","type":"bool"},{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isTransferable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_tokens","type":"address[]"},{"name":"_symbols","type":"bytes32[]"},{"name":"_magnitude","type":"uint256[]"},{"name":"_loadable","type":"bool[]"},{"name":"_burnable","type":"bool[]"},{"name":"_lastUpdate","type":"uint256"}],"name":"addTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getStablecoinInfo","outputs":[{"name":"","type":"string"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"bool"},{"name":"","type":"bool"},{"name":"","type":"bool"},{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokenAddressArray","outputs":[{"name":"","type":"address[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_tokens","type":"address[]"}],"name":"removeTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ensRegistry","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"oracleNode","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_asset","type":"address"},{"name":"_amount","type":"uint256"}],"name":"claim","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_account","type":"address"},{"name":"_transferable","type":"bool"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"},{"name":"_rate","type":"uint256"},{"name":"_updateDate","type":"uint256"}],"name":"updateTokenRate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"controllerNode","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"stablecoin","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_ens_","type":"address"},{"name":"_oracleNameHash_","type":"bytes32"},{"name":"_controllerNameHash_","type":"bytes32"},{"name":"_owner_","type":"address"},{"name":"_transferable_","type":"bool"},{"name":"_stabelcoinAddress_","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_sender","type":"address"},{"indexed":false,"name":"_token","type":"address"},{"indexed":false,"name":"_rate","type":"uint256"}],"name":"UpdatedTokenRate","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_sender","type":"address"},{"indexed":false,"name":"_token","type":"address"},{"indexed":false,"name":"_symbol","type":"string"},{"indexed":false,"name":"_magnitude","type":"uint256"},{"indexed":false,"name":"_loadable","type":"bool"},{"indexed":false,"name":"_burnable","type":"bool"}],"name":"AddedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_sender","type":"address"},{"indexed":false,"name":"_token","type":"address"}],"name":"RemovedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_to","type":"address"},{"indexed":false,"name":"_asset","type":"address"},{"indexed":false,"name":"_amount","type":"uint256"}],"name":"Claimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_from","type":"address"},{"indexed":false,"name":"_to","type":"address"}],"name":"TransferredOwnership","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_locked","type":"address"}],"name":"LockedOwnership","type":"event"}] \ No newline at end of file diff --git a/build/wallet/TokenWhitelist.bin b/build/wallet/TokenWhitelist.bin index 6d008f22..fd906e9e 100644 --- a/build/wallet/TokenWhitelist.bin +++ b/build/wallet/TokenWhitelist.bin @@ -1 +1 @@ -608060405234801561001057600080fd5b5060405160c08061189f83398101604090815281516020830151918301516060840151608085015160a09095015160018054600160a060020a03808716600160a060020a03199283161792839055600080548316938216939093179092556002859055600380548915157401000000000000000000000000000000000000000090810260a060020a60ff0219958816929094169190911793909316919091179081905594969394929392849184910460ff1615156101055760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b6040805160008152600160a060020a038416602082015281517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea5929181900390910190a15050600794909455505060068054600160a060020a031916600160a060020a03909316929092179091555061171a9050806101856000396000f3006080604052600436106100cf5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631f69565f81146100d45780632121dc751461019f57806334c73edc146101c85780633efec5e91461021d578063443dd2a4146102325780636c3824ef14610297578063715018a6146102b75780637d73b231146102cc57806380cc0dda146102fd5780638da5cb5b14610324578063b242e53414610339578063d545782e1461035f578063e2b4ce9714610386578063e9cbd8221461039b575b600080fd5b3480156100e057600080fd5b506100f5600160a060020a03600435166103b0565b6040805160208082018990529181018790528515156060820152841515608082015283151560a082015260c0810183905260e08082528951908201528851909182916101008301918b019080838360005b8381101561015e578181015183820152602001610146565b50505050905090810190601f16801561018b5780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b3480156101ab57600080fd5b506101b46104ac565b604080519115158252519081900360200190f35b3480156101d457600080fd5b5061021b602460048035828101929082013591813580830192908201359160443580830192908201359160643580830192908201359160843591820191013560a4356104ce565b005b34801561022957600080fd5b506100f5610965565b34801561023e57600080fd5b50610247610a61565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561028357818101518382015260200161026b565b505050509050019250505060405180910390f35b3480156102a357600080fd5b5061021b6004803560248101910135610ac3565b3480156102c357600080fd5b5061021b610d62565b3480156102d857600080fd5b506102e1610e8f565b60408051600160a060020a039092168252519081900360200190f35b34801561030957600080fd5b50610312610e9e565b60408051918252519081900360200190f35b34801561033057600080fd5b506102e1610ea4565b34801561034557600080fd5b5061021b600160a060020a03600435166024351515610eb3565b34801561036b57600080fd5b5061021b600160a060020a0360043516602435604435611104565b34801561039257600080fd5b50610312611266565b3480156103a757600080fd5b506102e161126c565b600160a060020a0381166000908152600460208181526040808420600180820154600280840154600385015497850154855487516101009682161587026000190190911693909304601f81018990048902840189019097528683526060999889988998899889988998919788979296929560ff808216969382048116956201000090920416939289919083018282801561048b5780601f106104605761010080835404028352916020019161048b565b820191906000526020600020905b81548152906001019060200180831161046e57829003601f168201915b50505050509650975097509750975097509750975050919395979092949650565b60035474010000000000000000000000000000000000000000900460ff165b90565b600060606104db3361127b565b1515610531576040805160e560020a62461bcd02815260206004820152601a60248201527f73656e646572206973206e6f74206120636f6e74726f6c6c6572000000000000604482015290519081900360640190fd5b8b8a14801561053f57508b88145b801561054a57508b86145b801561055557508b86145b15156105ab576040805160e560020a62461bcd02815260206004820152601e60248201527f706172616d65746572206c656e6774687320646f206e6f74206d617463680000604482015290519081900360640190fd5b600091505b8b82101561095657600460008e8e858181106105c857fe5b60209081029290920135600160a060020a03168352508101919091526040016000206003015460ff1615610646576040805160e560020a62461bcd02815260206004820152601760248201527f746f6b656e20616c726561647920617661696c61626c65000000000000000000604482015290519081900360640190fd5b61066c6106678c8c8581811061065857fe5b6020029190910135905061132d565b611359565b905060e0604051908101604052808281526020018a8a85818110151561068e57fe5b9050602002013581526020016000815260200160011515815260200188888581811015156106b857fe5b602090810292909201351515835250018686858181106106d457fe5b60209081029290920135151583525001849052600460008f8f868181106106f757fe5b90506020020135600160a060020a0316600160a060020a0316600160a060020a0316815260200190815260200160002060008201518160000190805190602001906107439291906115cf565b5060208201516001820155604082015160028201556060820151600382018054608085015160a08601511515620100000262ff0000199115156101000261ff001995151560ff199094169390931794909416919091171691909117905560c09091015160049091015560058d8d848181106107ba57fe5b8354600181018555600094855260209485902001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0395909202939093013593909316929092179055507f1802e89da3f6ef84e024e37454c226b1e13bf846ce71cd2a1d24faef9cbf779b338e8e8581811061083157fe5b90506020020135600160a060020a0316838c8c87818110151561085057fe5b905060200201358b8b88818110151561086557fe5b9050602002013515158a8a89818110151561087c57fe5b9050602002013515156040518087600160a060020a0316600160a060020a0316815260200186600160a060020a0316600160a060020a03168152602001806020018581526020018415151515815260200183151515158152602001828103825286818151815260200191508051906020019080838360005b8381101561090c5781810151838201526020016108f4565b50505050905090810190601f1680156109395780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390a16001909101906105b0565b50505050505050505050505050565b600654600160a060020a03166000908152600460208181526040808420600180820154600280840154600385015497850154855487516101009682161587026000190190911693909304601f81018990048902840189019097528683526060999889988998899889988998919788979296929560ff8082169693820481169562010000909204169392899190830182828015610a425780601f10610a1757610100808354040283529160200191610a42565b820191906000526020600020905b815481529060010190602001808311610a2557829003601f168201915b5050505050965097509750975097509750975097505090919293949596565b60606005805480602002602001604051908101604052809291908181526020018280548015610ab957602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610a9b575b5050505050905090565b6000806000610ad13361127b565b1515610b27576040805160e560020a62461bcd02815260206004820152601a60248201527f73656e646572206973206e6f74206120636f6e74726f6c6c6572000000000000604482015290519081900360640190fd5b600092505b83831015610d5b5760046000868686818110610b4457fe5b60209081029290920135600160a060020a03168352508101919091526040016000206003015460ff161515610bc3576040805160e560020a62461bcd02815260206004820152601660248201527f746f6b656e206973206e6f7420617661696c61626c6500000000000000000000604482015290519081900360640190fd5b848484818110610bcf57fe5b60209081029290920135600160a060020a03166000818152600490935260408320909450919050610c00828261164d565b506000600182018190556002820181905560038201805462ffffff19169055600490910181905590505b600554610c3e90600163ffffffff6113b316565b811015610cf95781600160a060020a0316600582815481101515610c5e57fe5b600091825260209091200154600160a060020a03161415610cf15760058054610c8e90600163ffffffff6113b316565b81548110610c9857fe5b60009182526020909120015460058054600160a060020a039092169183908110610cbe57fe5b9060005260206000200160006101000a815481600160a060020a030219169083600160a060020a03160217905550610cf9565b600101610c2a565b6005805490610d0c906000198301611694565b5060408051338152600160a060020a038416602082015281517f703f7e3f084d5b8dcc12fddcfd9a70d65b6b21ec7659e4608dbaf4419ede3ad0929181900390910190a1600190920191610b2c565b5050505050565b610d6b336113ca565b1515610dc1576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e206f776e657200000000000000000000604482015290519081900360640190fd5b60035474010000000000000000000000000000000000000000900460ff161515610e35576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b6003805473ffffffffffffffffffffffffffffffffffffffff19169055604080516000808252602082015281517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea5929181900390910190a1565b600154600160a060020a031690565b60075490565b600354600160a060020a031690565b610ebc336113ca565b1515610f12576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e206f776e657200000000000000000000604482015290519081900360640190fd5b60035474010000000000000000000000000000000000000000900460ff161515610f86576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b600160a060020a038216151561100c576040805160e560020a62461bcd02815260206004820152602360248201527f6f776e65722063616e6e6f742062652073657420746f207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6003805474ff00000000000000000000000000000000000000001916740100000000000000000000000000000000000000008315159081029190911790915561108c5760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b60035460408051600160a060020a039283168152918416602083015280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1506003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60006111116007546113de565b905061111c3361127b565b8061112f575033600160a060020a038216145b1515611185576040805160e560020a62461bcd02815260206004820152601b60248201527f656974686572206f7261636c65206f7220636f6e74726f6c6c65720000000000604482015290519081900360640190fd5b600160a060020a03841660009081526004602052604090206003015460ff1615156111fa576040805160e560020a62461bcd02815260206004820152601660248201527f746f6b656e206973206e6f7420617661696c61626c6500000000000000000000604482015290519081900360640190fd5b600160a060020a03841660008181526004602081815260409283902060028101889055909101859055815133815290810192909252818101859052517fdb3a4cfb4cd8ac94343ff7440cee8d05ade309056203f0e53ca49b6db8197c7d9181900360600190a150505050565b60025490565b600654600160a060020a031690565b60006112886002546113de565b600160a060020a031663b429afeb836040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b1580156112fb57600080fd5b505af115801561130f573d6000803e3d6000fd5b505050506040513d602081101561132557600080fd5b505192915050565b6113356116bd565b6040516020810160405282815280602083015250611352826114d5565b8152919050565b606080600083600001516040519080825280601f01601f191660200182016040528015611390578160200160208202803883390190505b5091506020820190506113ac818560200151866000015161158b565b5092915050565b600080838311156113c357600080fd5b5050900390565b600354600160a060020a0390811691161490565b60008054604080517f0178b8bf000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691630178b8bf9160248082019260209290919082900301818787803b15801561144557600080fd5b505af1158015611459573d6000803e3d6000fd5b505050506040513d602081101561146f57600080fd5b5051604080517f3b3b57de000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691633b3b57de916024808201926020929091908290030181600087803b1580156112fb57600080fd5b6000808215156114e85760009150611585565b6fffffffffffffffffffffffffffffffff8316151561151b57601001700100000000000000000000000000000000830492505b67ffffffffffffffff8316151561153e5760080168010000000000000000830492505b63ffffffff8316151561155957600401640100000000830492505b61ffff831615156115705760020162010000830492505b60ff8316151561157e576001015b8060200391505b50919050565b60005b602082106115b0578251845260209384019390920191601f199091019061158e565b50905182516020929092036101000a6000190180199091169116179052565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061161057805160ff191683800117855561163d565b8280016001018555821561163d579182015b8281111561163d578251825591602001919060010190611622565b506116499291506116d4565b5090565b50805460018160011615610100020316600290046000825580601f106116735750611691565b601f01602090049060005260206000209081019061169191906116d4565b50565b8154818355818111156116b8576000838152602090206116b89181019083016116d4565b505050565b604080518082019091526000808252602082015290565b6104cb91905b8082111561164957600081556001016116da5600a165627a7a7230582093b6ea30833eac9793938fe8dab81d00e6ef1dbb9489c89e10258ba8847c4c870029 \ No newline at end of file +608060405234801561001057600080fd5b5060405160c080611ab283398101604090815281516020830151918301516060840151608085015160a09095015160018054600160a060020a03808716600160a060020a03199283161792839055600080548316938216939093179092556002859055600380548915157401000000000000000000000000000000000000000090810260a060020a60ff0219958816929094169190911793909316919091179081905594969394929392849184910460ff1615156101055760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b6040805160008152600160a060020a038416602082015281517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea5929181900390910190a15050600794909455505060068054600160a060020a031916600160a060020a03909316929092179091555061192d9050806101856000396000f3006080604052600436106100c15763ffffffff60e060020a6000350416631f69565f81146100c65780632121dc751461019157806334c73edc146101ba5780633efec5e91461020f578063443dd2a4146102245780636c3824ef14610289578063715018a6146102a95780637d73b231146102be57806380cc0dda146102ef5780638da5cb5b14610316578063996cba681461032b578063b242e53414610355578063d545782e1461037b578063e2b4ce97146103a2578063e9cbd822146103b7575b600080fd5b3480156100d257600080fd5b506100e7600160a060020a03600435166103cc565b6040805160208082018990529181018790528515156060820152841515608082015283151560a082015260c0810183905260e08082528951908201528851909182916101008301918b019080838360005b83811015610150578181015183820152602001610138565b50505050905090810190601f16801561017d5780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b34801561019d57600080fd5b506101a66104c8565b604080519115158252519081900360200190f35b3480156101c657600080fd5b5061020d602460048035828101929082013591813580830192908201359160443580830192908201359160643580830192908201359160843591820191013560a4356104ea565b005b34801561021b57600080fd5b506100e7610981565b34801561023057600080fd5b50610239610a7d565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561027557818101518382015260200161025d565b505050509050019250505060405180910390f35b34801561029557600080fd5b5061020d6004803560248101910135610adf565b3480156102b557600080fd5b5061020d610d7e565b3480156102ca57600080fd5b506102d3610eab565b60408051600160a060020a039092168252519081900360200190f35b3480156102fb57600080fd5b50610304610eba565b60408051918252519081900360200190f35b34801561032257600080fd5b506102d3610ec0565b34801561033757600080fd5b5061020d600160a060020a0360043581169060243516604435610ecf565b34801561036157600080fd5b5061020d600160a060020a03600435166024351515610f3e565b34801561038757600080fd5b5061020d600160a060020a036004351660243560443561118f565b3480156103ae57600080fd5b506103046112f1565b3480156103c357600080fd5b506102d36112f7565b600160a060020a0381166000908152600460208181526040808420600180820154600280840154600385015497850154855487516101009682161587026000190190911693909304601f81018990048902840189019097528683526060999889988998899889988998919788979296929560ff80821696938204811695620100009092041693928991908301828280156104a75780601f1061047c576101008083540402835291602001916104a7565b820191906000526020600020905b81548152906001019060200180831161048a57829003601f168201915b50505050509650975097509750975097509750975050919395979092949650565b60035474010000000000000000000000000000000000000000900460ff165b90565b600060606104f733611306565b151561054d576040805160e560020a62461bcd02815260206004820152601a60248201527f73656e646572206973206e6f74206120636f6e74726f6c6c6572000000000000604482015290519081900360640190fd5b8b8a14801561055b57508b88145b801561056657508b86145b801561057157508b86145b15156105c7576040805160e560020a62461bcd02815260206004820152601e60248201527f706172616d65746572206c656e6774687320646f206e6f74206d617463680000604482015290519081900360640190fd5b600091505b8b82101561097257600460008e8e858181106105e457fe5b60209081029290920135600160a060020a03168352508101919091526040016000206003015460ff1615610662576040805160e560020a62461bcd02815260206004820152601760248201527f746f6b656e20616c726561647920617661696c61626c65000000000000000000604482015290519081900360640190fd5b6106886106838c8c8581811061067457fe5b6020029190910135905061139f565b6113cb565b905060e0604051908101604052808281526020018a8a8581811015156106aa57fe5b9050602002013581526020016000815260200160011515815260200188888581811015156106d457fe5b602090810292909201351515835250018686858181106106f057fe5b60209081029290920135151583525001849052600460008f8f8681811061071357fe5b90506020020135600160a060020a0316600160a060020a0316600160a060020a03168152602001908152602001600020600082015181600001908051906020019061075f9291906117e7565b5060208201516001820155604082015160028201556060820151600382018054608085015160a08601511515620100000262ff0000199115156101000261ff001995151560ff199094169390931794909416919091171691909117905560c09091015160049091015560058d8d848181106107d657fe5b8354600181018555600094855260209485902001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0395909202939093013593909316929092179055507f1802e89da3f6ef84e024e37454c226b1e13bf846ce71cd2a1d24faef9cbf779b338e8e8581811061084d57fe5b90506020020135600160a060020a0316838c8c87818110151561086c57fe5b905060200201358b8b88818110151561088157fe5b9050602002013515158a8a89818110151561089857fe5b9050602002013515156040518087600160a060020a0316600160a060020a0316815260200186600160a060020a0316600160a060020a03168152602001806020018581526020018415151515815260200183151515158152602001828103825286818151815260200191508051906020019080838360005b83811015610928578181015183820152602001610910565b50505050905090810190601f1680156109555780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390a16001909101906105cc565b50505050505050505050505050565b600654600160a060020a03166000908152600460208181526040808420600180820154600280840154600385015497850154855487516101009682161587026000190190911693909304601f81018990048902840189019097528683526060999889988998899889988998919788979296929560ff8082169693820481169562010000909204169392899190830182828015610a5e5780601f10610a3357610100808354040283529160200191610a5e565b820191906000526020600020905b815481529060010190602001808311610a4157829003601f168201915b5050505050965097509750975097509750975097505090919293949596565b60606005805480602002602001604051908101604052809291908181526020018280548015610ad557602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610ab7575b5050505050905090565b6000806000610aed33611306565b1515610b43576040805160e560020a62461bcd02815260206004820152601a60248201527f73656e646572206973206e6f74206120636f6e74726f6c6c6572000000000000604482015290519081900360640190fd5b600092505b83831015610d775760046000868686818110610b6057fe5b60209081029290920135600160a060020a03168352508101919091526040016000206003015460ff161515610bdf576040805160e560020a62461bcd02815260206004820152601660248201527f746f6b656e206973206e6f7420617661696c61626c6500000000000000000000604482015290519081900360640190fd5b848484818110610beb57fe5b60209081029290920135600160a060020a03166000818152600490935260408320909450919050610c1c8282611865565b506000600182018190556002820181905560038201805462ffffff19169055600490910181905590505b600554610c5a90600163ffffffff61142516565b811015610d155781600160a060020a0316600582815481101515610c7a57fe5b600091825260209091200154600160a060020a03161415610d0d5760058054610caa90600163ffffffff61142516565b81548110610cb457fe5b60009182526020909120015460058054600160a060020a039092169183908110610cda57fe5b9060005260206000200160006101000a815481600160a060020a030219169083600160a060020a03160217905550610d15565b600101610c46565b6005805490610d289060001983016118ac565b5060408051338152600160a060020a038416602082015281517f703f7e3f084d5b8dcc12fddcfd9a70d65b6b21ec7659e4608dbaf4419ede3ad0929181900390910190a1600190920191610b48565b5050505050565b610d873361143c565b1515610ddd576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e206f776e657200000000000000000000604482015290519081900360640190fd5b60035474010000000000000000000000000000000000000000900460ff161515610e51576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b6003805473ffffffffffffffffffffffffffffffffffffffff19169055604080516000808252602082015281517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea5929181900390910190a1565b600154600160a060020a031690565b60075490565b600354600160a060020a031690565b610ed83361143c565b1515610f2e576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e206f776e657200000000000000000000604482015290519081900360640190fd5b610f39838383611450565b505050565b610f473361143c565b1515610f9d576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e206f776e657200000000000000000000604482015290519081900360640190fd5b60035474010000000000000000000000000000000000000000900460ff161515611011576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b600160a060020a0382161515611097576040805160e560020a62461bcd02815260206004820152602360248201527f6f776e65722063616e6e6f742062652073657420746f207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6003805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000831515908102919091179091556111175760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b60035460408051600160a060020a039283168152918416602083015280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1506003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600061119c6007546115f6565b90506111a733611306565b806111ba575033600160a060020a038216145b1515611210576040805160e560020a62461bcd02815260206004820152601b60248201527f656974686572206f7261636c65206f7220636f6e74726f6c6c65720000000000604482015290519081900360640190fd5b600160a060020a03841660009081526004602052604090206003015460ff161515611285576040805160e560020a62461bcd02815260206004820152601660248201527f746f6b656e206973206e6f7420617661696c61626c6500000000000000000000604482015290519081900360640190fd5b600160a060020a03841660008181526004602081815260409283902060028101889055909101859055815133815290810192909252818101859052517fdb3a4cfb4cd8ac94343ff7440cee8d05ade309056203f0e53ca49b6db8197c7d9181900360600190a150505050565b60025490565b600654600160a060020a031690565b60006113136002546115f6565b600160a060020a031663b429afeb836040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b15801561136d57600080fd5b505af1158015611381573d6000803e3d6000fd5b505050506040513d602081101561139757600080fd5b505192915050565b6113a76118d0565b60405160208101604052828152806020830152506113c4826116ed565b8152919050565b606080600083600001516040519080825280601f01601f191660200182016040528015611402578160200160208202803883390190505b50915060208201905061141e81856020015186600001516117a3565b5092915050565b6000808383111561143557600080fd5b5050900390565b600354600160a060020a0390811691161490565b600160a060020a038216151561149c57604051600160a060020a0384169082156108fc029083906000818181858888f19350505050158015611496573d6000803e3d6000fd5b506115a7565b81600160a060020a031663a9059cbb84836040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b1580156114ff57600080fd5b505af1158015611513573d6000803e3d6000fd5b505050506040513d602081101561152957600080fd5b505115156115a7576040805160e560020a62461bcd02815260206004820152602560248201527f455243323020746f6b656e207472616e736665722077617320756e737563636560448201527f737366756c000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60408051600160a060020a0380861682528416602082015280820183905290517ff7a40077ff7a04c7e61f6f26fb13774259ddf1b6bce9ecf26a8276cdd39926839181900360600190a1505050565b60008054604080517f0178b8bf000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691630178b8bf9160248082019260209290919082900301818787803b15801561165d57600080fd5b505af1158015611671573d6000803e3d6000fd5b505050506040513d602081101561168757600080fd5b5051604080517f3b3b57de000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691633b3b57de916024808201926020929091908290030181600087803b15801561136d57600080fd5b600080821515611700576000915061179d565b6fffffffffffffffffffffffffffffffff8316151561173357601001700100000000000000000000000000000000830492505b67ffffffffffffffff831615156117565760080168010000000000000000830492505b63ffffffff8316151561177157600401640100000000830492505b61ffff831615156117885760020162010000830492505b60ff83161515611796576001015b8060200391505b50919050565b60005b602082106117c8578251845260209384019390920191601f19909101906117a6565b50905182516020929092036101000a6000190180199091169116179052565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061182857805160ff1916838001178555611855565b82800160010185558215611855579182015b8281111561185557825182559160200191906001019061183a565b506118619291506118e7565b5090565b50805460018160011615610100020316600290046000825580601f1061188b57506118a9565b601f0160209004906000526020600020908101906118a991906118e7565b50565b815481835581811115610f3957600083815260209020610f399181019083016118e7565b604080518082019091526000808252602082015290565b6104e791905b8082111561186157600081556001016118ed5600a165627a7a723058208c4be71ac085882be552fd06a3c105b468b8d2bbdf25c86681a98320fb418c500029 \ No newline at end of file diff --git a/build/wallet/Wallet.bin b/build/wallet/Wallet.bin index 6c371789..7f74b3bb 100644 --- a/build/wallet/Wallet.bin +++ b/build/wallet/Wallet.bin @@ -1 +1 @@ -60806040523480156200001157600080fd5b5060405160e08062004adb83398101604090815281516020830151918301516060840151608085015160a086015160c09096015160018054600160a060020a0319908116600160a060020a038088169190911792839055600080549382169383169390931783556002859055600380549092169088161760a060020a60ff0219167401000000000000000000000000000000000000000089151581029190911791829055969895969495939489918991889188918791849183918891889160ff919004161515620001195760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b6040805160008152600160a060020a038416602082015281517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea5929181900390910190a150506040805160a081810183528382526020808301859052428385018190526000606080860182905260809586018290526009889055600a97909755600b829055600c819055600d805460ff19908116909155600e98909855855193840186526706f05b59d3b200008085529284018390529483018190529482018490529101829052600f8190556010556011919091556012556013805490911690555062000214935050640100000000620002b7810204915050565b50505050509150506000811115156200028e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f737461626c65636f696e206e6f74207365740000000000000000000000000000604482015290519081900360640190fd5b620002a66127108202640100000000620003f4810204565b5050601a5550620005719350505050565b6060600080600080600080620002de600e5462000442640100000000026401000000009004565b600160a060020a0316633efec5e96040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b1580156200033557600080fd5b505af11580156200034a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260e08110156200037457600080fd5b8101908080516401000000008111156200038d57600080fd5b82016020810184811115620003a157600080fd5b8151640100000000811182820187101715620003bc57600080fd5b5050602082015160408301516060840151608085015160a086015160c090960151949f939e50919c509a509850919650945092505050565b60148190556040805160a0810182528281526020810183905242918101829052600060608201819052608090910181905260158390556016929092556017556018556019805460ff19169055565b60008054604080517f0178b8bf000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691630178b8bf9160248082019260209290919082900301818787803b158015620004aa57600080fd5b505af1158015620004bf573d6000803e3d6000fd5b505050506040513d6020811015620004d657600080fd5b5051604080517f3b3b57de000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691633b3b57de916024808201926020929091908290030181600087803b1580156200053d57600080fd5b505af115801562000552573d6000803e3d6000fd5b505050506040513d60208110156200056957600080fd5b505192915050565b61455a80620005816000396000f3006080604052600436106102585763ffffffff60e060020a60003504166301ffc9a781146102ea578063027ef3eb146103355780630f3a85d81461035c578063100f23fd146103765780631efd02991461038e5780632121dc75146103a357806321ce918d146103b85780632587a6a2146103d057806326d05ab2146103e5578063294f4025146103fa578063324e9f531461045f57806332531c3c146104745780633a43199f146104955780633bfec254146104ac5780633c672eb7146104c45780633f579f42146104dc57806347b55a9d1461050d5780635adc02ab146105225780635d2362a81461053a5780636137d6701461054f57806365e6bd8a1461056f578063715018a61461058457806374624c5514610599578063747c31d6146105b15780637d73b231146105c65780637d7d0046146105f75780637fd004fa1461060c578063877337b01461062c5780638da5cb5b146106415780639b0dfd2714610656578063b221f3161461066b578063b242e53414610683578063b87e21ef146106a9578063be40ba79146106cd578063beabacc8146106e2578063c4856cd91461070c578063c583143814610721578063cbd2ac6814610736578063cc0e7e561461074e578063cd7958dd14610763578063ce0b5bd5146107b8578063d251fefc146107d0578063da84b1ed146107e8578063de212bf3146107fd578063e2b4ce9714610812578063e3d670d714610827578063e61c51ca14610848578063eadd3cea14610860578063f36febda14610878578063f40b51f81461089c578063f41c4319146108b4578063f4217648146108cc575b36156102ae576040805160e560020a62461bcd02815260206004820152601a60248201527f6d73672064617461206e6565647320746f20626520656d707479000000000000604482015290519081900360640190fd5b6040805133815234602082015281517f88a5966d370b9919b20f3e2c13ff65706f196a4e32cc2c12bf57088f88525874929181900390910190a1005b3480156102f657600080fd5b506103217bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19600435166108ec565b604080519115158252519081900360200190f35b34801561034157600080fd5b5061034a610934565b60408051918252519081900360200190f35b34801561036857600080fd5b5061037460043561093b565b005b34801561038257600080fd5b50610374600435610a6c565b34801561039a57600080fd5b5061034a610c8f565b3480156103af57600080fd5b50610321610ca0565b3480156103c457600080fd5b50610374600435610cc1565b3480156103dc57600080fd5b5061034a610d4f565b3480156103f157600080fd5b50610321610d55565b34801561040657600080fd5b5061040f610d5e565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561044b578181015183820152602001610433565b505050509050019250505060405180910390f35b34801561046b57600080fd5b50610321610dc0565b34801561048057600080fd5b50610321600160a060020a0360043516610dc9565b610374600160a060020a0360043516602435610dde565b3480156104b857600080fd5b50610374600435611112565b3480156104d057600080fd5b5061037460043561123d565b3480156104e857600080fd5b5061037460048035600160a060020a03169060248035916044359182019101356112d3565b34801561051957600080fd5b5061040f611605565b34801561052e57600080fd5b50610374600435611665565b34801561054657600080fd5b5061034a6119c2565b34801561055b57600080fd5b5061037460048035602481019101356119ce565b34801561057b57600080fd5b50610321611c68565b34801561059057600080fd5b50610374611c71565b3480156105a557600080fd5b50610374600435611d8c565b3480156105bd57600080fd5b5061034a611eb5565b3480156105d257600080fd5b506105db611ebb565b60408051600160a060020a039092168252519081900360200190f35b34801561060357600080fd5b5061034a611eca565b34801561061857600080fd5b506103746004803560248101910135611ed6565b34801561063857600080fd5b5061034a6122c9565b34801561064d57600080fd5b506105db6122cf565b34801561066257600080fd5b5061034a6122de565b34801561067757600080fd5b506103746004356122e4565b34801561068f57600080fd5b50610374600160a060020a03600435166024351515612407565b3480156106b557600080fd5b5061034a600160a060020a0360043516602435612646565b3480156106d957600080fd5b506103216126f1565b3480156106ee57600080fd5b50610374600160a060020a0360043581169060243516604435612700565b34801561071857600080fd5b5061034a6129fb565b34801561072d57600080fd5b50610321612a01565b34801561074257600080fd5b50610374600435612a0a565b34801561075a57600080fd5b5061034a612e33565b34801561076f57600080fd5b506040805160206004803580820135838102808601850190965280855261034a95369593946024949385019291829185019084908082843750949750612e399650505050505050565b3480156107c457600080fd5b50610374600435612ee6565b3480156107dc57600080fd5b506105db60043561310d565b3480156107f457600080fd5b5061034a613135565b34801561080957600080fd5b5061032161313b565b34801561081e57600080fd5b5061034a613149565b34801561083357600080fd5b5061034a600160a060020a036004351661314f565b34801561085457600080fd5b506103746004356131fc565b34801561086c57600080fd5b50610374600435613367565b34801561088457600080fd5b5061034a600160a060020a03600435166024356133bf565b3480156108a857600080fd5b506103746004356135bd565b3480156108c057600080fd5b50610374600435613615565b3480156108d857600080fd5b50610374600480356024810191013561366d565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1981167f01ffc9a700000000000000000000000000000000000000000000000000000000145b919050565b600c545b90565b610944336139b3565b1515610988576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b8066038d7ea4c68000111580156109a757506706f05b59d3b200008111155b1515610a23576040805160e560020a62461bcd02815260206004820152602e60248201527f67617320746f7020757020616d6f756e74206973206f7574736964652074686560448201527f206d696e2f6d61782072616e6765000000000000000000000000000000000000606482015290519081900360840190fd5b610a2e600f826139c7565b604080513381526020810183905281517f41ff5d5ce3b7935893a4e7269ec5caae9cca5e3bf0eb4b21d2f443489667112e929181900390910190a150565b610a75336139b3565b80610a845750610a8433613a3f565b1515610ada576040805160e560020a62461bcd02815260206004820152601a60248201527f656974686572206f776e6572206f7220636f6e74726f6c6c6572000000000000604482015290519081900360640190fd5b60085460ff161515610b5c576040805160e560020a62461bcd02815260206004820152602960248201527f77686974656c697374206164646974696f6e20686173206e6f74206265656e2060448201527f7375626d69747465640000000000000000000000000000000000000000000000606482015290519081900360840190fd5b610bbf6006805480602002602001604051908101604052809291908181526020018280548015610bb557602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610b97575b5050505050612e39565b8114610c3b576040805160e560020a62461bcd02815260206004820152603560248201527f68617368206f66207468652070656e64696e672077686974656c69737420616460448201527f646974696f6e20646f6573206e6f74206d617463680000000000000000000000606482015290519081900360840190fd5b610c47600660006143c9565b6008805460ff19169055604080513381526020810183905281517f7794eff834d760583543e6e510e717a5e66d2c064e225f4db448343c3e66afcf929181900390910190a150565b6000610c9b6015613ad8565b905090565b60035474010000000000000000000000000000000000000000900460ff1690565b610cca336139b3565b1515610d0e576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b610d19600982613afe565b6040805182815290517f4b1b970c8a0fa761e7803ed70c13d7aca71904b13df60fbe03f981da1730da919181900360200190a150565b600f5490565b60085460ff1681565b60606007805480602002602001604051908101604052809291908181526020018280548015610db657602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610d98575b5050505050905090565b60195460ff1690565b60046020526000908152604090205460ff1681565b600080610dea336139b3565b1515610e2e576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b610e3784613b64565b1515610e8d576040805160e560020a62461bcd02815260206004820152601260248201527f746f6b656e206e6f74206c6f616461626c650000000000000000000000000000604482015290519081900360640190fd5b610e9784846133bf565b9150610ea4601583613b7e565b610eaf601a54613c2a565b9050600160a060020a0384161561104b5783600160a060020a031663095ea7b382856040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b158015610f2357600080fd5b505af1158015610f37573d6000803e3d6000fd5b505050506040513d6020811015610f4d57600080fd5b50511515610fcb576040805160e560020a62461bcd02815260206004820152602560248201527f455243323020746f6b656e20617070726f76616c2077617320756e737563636560448201527f737366756c000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b80600160a060020a0316631b3c96b485856040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050600060405180830381600087803b15801561102e57600080fd5b505af1158015611042573d6000803e3d6000fd5b505050506110c8565b80600160a060020a0316631b3c96b48486866040518463ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a03168152602001828152602001925050506000604051808303818588803b1580156110ae57600080fd5b505af11580156110c2573d6000803e3d6000fd5b50505050505b60408051600160a060020a03861681526020810185905281517f5f65674bec9af81f71be68674135a0ea3f163fb91984e3893d06da9f6ea2ce8a929181900390910190a150505050565b61111b336139b3565b151561115f576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b8066038d7ea4c680001115801561117857506014548111155b15156111f4576040805160e560020a62461bcd02815260206004820152602d60248201527f63617264206c6f616420616d6f756e74206973206f757473696465207468652060448201527f6d696e2f6d61782072616e676500000000000000000000000000000000000000606482015290519081900360840190fd5b6111ff6015826139c7565b604080513381526020810183905281517f0b05243483e17c3f3377aee82b7d47e5700b48288695fc08b7ecc2759afa44ef929181900390910190a150565b611246336139b3565b151561128a576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b6112956009826139c7565b604080513381526020810183905281517f068f112e5ec923d412be64779fe69e0fcbb6784c6617e94cccc8fd348f2e0f21929181900390910190a150565b6000806000806112e2336139b3565b1515611326576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b600485106114c75761136a86868080601f0160208091040260200160405190810160405280939291908181526020018383808284375060009450613d219350505050565b935063ffffffff841663a9059cbb148061138d575063ffffffff841663095ea7b3145b156114c7576044851015611411576040805160e560020a62461bcd02815260206004820152602b60248201527f696e76616c6964207472616e73666572202f20617070726f7665207472616e7360448201527f616374696f6e2064617461000000000000000000000000000000000000000000606482015290519081900360840190fd5b61144d86868080601f0160208091040260200160405190810160405280939291908181526020018383808284375060249450613dfa9350505050565b925061148b86868080601f0160208091040260200160405190810160405280939291908181526020018383808284375060109450613e6d9350505050565b600160a060020a03811660009081526004602052604090205490925060ff1615156114c7576114ba8884612646565b90506114c7600982613b7e565b600160a060020a03881660009081526004602052604090205460ff1615156114f4576114f4600988613b7e565b61153388888888905089898080601f01602080910402602001604051908101604052809392919081815260200183838082843750613f3c945050505050565b1515611589576040805160e560020a62461bcd02815260206004820152601c60248201527f657865637574696e67207472616e73616374696f6e206661696c656400000000604482015290519081900360640190fd5b7faf022f6b53b11c364e2dfc0aea08eb9416c94f2661451ea82ead8831385617a6888888886040518085600160a060020a0316600160a060020a03168152602001848152602001806020018281038252848482818152602001925080828437604051920182900397509095505050505050a15050505050505050565b60606006805480602002602001604051908101604052809291908181526020018280548015610db657602002820191906000526020600020908154600160a060020a03168152600190910190602001808311610d98575050505050905090565b600061167033613a3f565b15156116b4576040805160e560020a62461bcd02815260206004820152601a60248201526000805160206144ef833981519152604482015290519081900360640190fd5b60085460ff161515611736576040805160e560020a62461bcd02815260206004820152602960248201527f77686974656c697374206164646974696f6e20686173206e6f74206265656e2060448201527f7375626d69747465640000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6117976006805480602002602001604051908101604052809291908181526020018280548015610bb557602002820191906000526020600020908154600160a060020a03168152600190910190602001808311610b97575050505050612e39565b8214611813576040805160e560020a62461bcd02815260206004820152603360248201527f68617368206f66207468652070656e64696e672077686974656c69737420616460448201527f646974696f6e20646f206e6f74206d6174636800000000000000000000000000606482015290519081900360840190fd5b5060005b60065481101561190e576004600060068381548110151561183457fe5b6000918252602080832090910154600160a060020a0316835282019290925260400190205460ff1615156119065760016004600060068481548110151561187757fe5b600091825260208083209190910154600160a060020a031683528201929092526040019020805460ff19169115159190911790556006805460059190839081106118bd57fe5b600091825260208083209091015483546001810185559383529120909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039092169190911790555b600101611817565b7fb2f6cccee7a369e23e293c25aa19bef80af11eb26deba3ea0f2a02783f752e4a3360066040518083600160a060020a0316600160a060020a0316815260200180602001828103825283818154815260200191508054801561199957602002820191906000526020600020905b8154600160a060020a0316815260019091019060200180831161197b575b5050935050505060405180910390a16119b4600660006143c9565b50506008805460ff19169055565b6000610c9b6009613ad8565b6119d7336139b3565b1515611a1b576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b60085460ff16158015611a365750600854610100900460ff16155b1515611ab2576040805160e560020a62461bcd02815260206004820152602e60248201527f77686974656c697374206f7065726174696f6e2068617320616c72656164792060448201527f6265656e207375626d6974746564000000000000000000000000000000000000606482015290519081900360840190fd5b60085462010000900460ff161515611b3a576040805160e560020a62461bcd02815260206004820152602260248201527f77686974656c69737420686173206e6f74206265656e20696e697469616c697a60448201527f6564000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60008111611bb8576040805160e560020a62461bcd02815260206004820152602260248201527f70656e64696e672077686974656c6973742072656d6f76616c20697320656d7060448201527f7479000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b611bc4600783836143ea565b506008805461ff00191661010017905560408051602080840282810182019093528382527ffbc0e5ca6c7e4858daf0fdb185ef5186203e74ec9c64737e93c0aeaec596e1d19285928592611c2d9285918591829185019084908082843750612e39945050505050565b604080516020808201849052828252918101849052908190606082019086908602808284376040519201829003965090945050505050a15050565b600d5460ff1690565b611c7a336139b3565b1515611cbe576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b60035474010000000000000000000000000000000000000000900460ff161515611d32576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b6003805473ffffffffffffffffffffffffffffffffffffffff19169055604080516000808252602082015281517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea5929181900390910190a1565b611d95336139b3565b1515611dd9576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b8066038d7ea4c6800011158015611df857506706f05b59d3b200008111155b1515611e74576040805160e560020a62461bcd02815260206004820152602e60248201527f67617320746f7020757020616d6f756e74206973206f7574736964652074686560448201527f206d696e2f6d61782072616e6765000000000000000000000000000000000000606482015290519081900360840190fd5b611e7f600f82613afe565b6040805182815290517faf2a77cd04c3cc155588dd3bf67b310ab4fb3b1da3cf6b8d7d4d2aa1d09b794c9181900360200190a150565b601a5490565b600154600160a060020a031690565b6000610c9b600f613ad8565b611edf336139b3565b1515611f23576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b60085460ff16158015611f3e5750600854610100900460ff16155b1515611fba576040805160e560020a62461bcd02815260206004820152602e60248201527f77686974656c697374206f7065726174696f6e2068617320616c72656164792060448201527f6265656e207375626d6974746564000000000000000000000000000000000000606482015290519081900360840190fd5b8181808060200260200160405190810160405280939291908181526020018383602002808284375060009450505050505b815181101561211357612014828281518110151561200557fe5b906020019060200201516139b3565b1561207d576040805160e560020a62461bcd02815260206004820152602d602482015260008051602061450f83398151915260448201527f6f776e6572206164647265737300000000000000000000000000000000000000606482015290519081900360840190fd5b815160009083908390811061208e57fe5b60209081029091010151600160a060020a0316141561210b576040805160e560020a62461bcd02815260206004820152602c602482015260008051602061450f83398151915260448201527f7a65726f20616464726573730000000000000000000000000000000000000000606482015290519081900360840190fd5b600101611feb565b60085462010000900460ff16151561219b576040805160e560020a62461bcd02815260206004820152602260248201527f77686974656c69737420686173206e6f74206265656e20696e697469616c697a60448201527f6564000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60008311612219576040805160e560020a62461bcd02815260206004820152602360248201527f70656e64696e672077686974656c697374206164646974696f6e20697320656d60448201527f7074790000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b612225600685856143ea565b506008805460ff1916600117905560408051602080860282810182019093528582527f9c80b3b5f68b3e017766d59e8d09b34efe6462b05c398f35cab9e271d9bc3b9c928792879261228c9285918591829185019084908082843750612e39945050505050565b604080516020808201849052828252918101849052908190606082019086908602808284376040519201829003965090945050505050a150505050565b600e5490565b600354600160a060020a031690565b60095490565b6122ed336139b3565b1515612331576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b8066038d7ea4c680001115801561234a57506014548111155b15156123c6576040805160e560020a62461bcd02815260206004820152602d60248201527f63617264206c6f616420616d6f756e74206973206f757473696465207468652060448201527f6d696e2f6d61782072616e676500000000000000000000000000000000000000606482015290519081900360840190fd5b6123d1601582613afe565b6040805182815290517fc178d379965e5657b6fc57494e392f121a14119215dfb422aad7db4cc03f2d109181900360200190a150565b612410336139b3565b1515612454576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b60035474010000000000000000000000000000000000000000900460ff1615156124c8576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b600160a060020a038216151561254e576040805160e560020a62461bcd02815260206004820152602360248201527f6f776e65722063616e6e6f742062652073657420746f207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6003805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000831515908102919091179091556125ce5760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b60035460408051600160a060020a039283168152918416602083015280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1506003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60008060008061265586613f5f565b5050509350935093505080156126e3578115156126bc576040805160e560020a62461bcd02815260206004820152600f60248201527f746f6b656e207261746520697320300000000000000000000000000000000000604482015290519081900360640190fd5b6126dc836126d0878563ffffffff61409116565b9063ffffffff6140c616565b93506126e8565b600093505b50505092915050565b60085462010000900460ff1681565b600061270b336139b3565b151561274f576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b818015156127a7576040805160e560020a62461bcd02815260206004820152601d60248201527f70726f76696465642076616c75652063616e6e6f74206265207a65726f000000604482015290519081900360640190fd5b600160a060020a0385161515612807576040805160e560020a62461bcd02815260206004820181905260248201527f5f746f20616464726573732063616e6e6f742062652073657420746f20307830604482015290519081900360640190fd5b600160a060020a03851660009081526004602052604090205460ff16151561285357829150600160a060020a03841615612848576128458484612646565b91505b612853600983613b7e565b600160a060020a038416156129725783600160a060020a031663a9059cbb86856040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b1580156128c557600080fd5b505af11580156128d9573d6000803e3d6000fd5b505050506040513d60208110156128ef57600080fd5b5051151561296d576040805160e560020a62461bcd02815260206004820152602560248201527f455243323020746f6b656e207472616e736665722077617320756e737563636560448201527f737366756c000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6129aa565b604051600160a060020a0386169084156108fc029085906000818181858888f193505050501580156129a8573d6000803e3d6000fd5b505b60408051600160a060020a0380881682528616602082015280820185905290517fd1ba4ac2e2a11b5101f6cb4d978f514a155b421e8ec396d2d9abaf0bb02917ee9181900360600190a15050505050565b60185490565b60135460ff1690565b600080612a1633613a3f565b1515612a5a576040805160e560020a62461bcd02815260206004820152601a60248201526000805160206144ef833981519152604482015290519081900360640190fd5b600854610100900460ff161515612ae1576040805160e560020a62461bcd02815260206004820152602860248201527f77686974656c6973742072656d6f76616c20686173206e6f74206265656e207360448201527f75626d6974746564000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b612b426007805480602002602001604051908101604052809291908181526020018280548015610bb557602002820191906000526020600020908154600160a060020a03168152600190910190602001808311610b97575050505050612e39565b8314612be4576040805160e560020a62461bcd02815260206004820152604760248201527f68617368206f66207468652070656e64696e672077686974656c69737420726560448201527f6d6f76616c20646f6573206e6f74206d617463682074686520636f6e6669726d60648201527f6564206861736800000000000000000000000000000000000000000000000000608482015290519081900360a40190fd5b600091505b600754821015612d7d5760046000600784815481101515612c0657fe5b6000918252602080832090910154600160a060020a0316835282019290925260400190205460ff1615612d7257600060046000600785815481101515612c4857fe5b600091825260208083209190910154600160a060020a031683528201929092526040018120805460ff19169215159290921790915590505b600554612c9490600163ffffffff6140e916565b811015612d5d576007805483908110612ca957fe5b60009182526020909120015460058054600160a060020a039092169183908110612ccf57fe5b600091825260209091200154600160a060020a03161415612d5557600580546000198101908110612cfc57fe5b60009182526020909120015460058054600160a060020a039092169183908110612d2257fe5b9060005260206000200160006101000a815481600160a060020a030219169083600160a060020a03160217905550612d5d565b600101612c80565b6005805490612d7090600019830161445a565b505b600190910190612be9565b7fd218c430fa348f4ce67791021b6b89c0c3eacd4ead1d8f5b83c60038ec28249b3360076040518083600160a060020a0316600160a060020a03168152602001806020018281038252838181548152602001915080548015612e0857602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311612dea575b5050935050505060405180910390a1612e23600760006143c9565b50506008805461ff001916905550565b60125490565b60008160405160200180828051906020019060200280838360005b83811015612e6c578181015183820152602001612e54565b505050509050019150506040516020818303038152906040526040518082805190602001908083835b60208310612eb45780518252601f199092019160209182019101612e95565b5181516020939093036101000a6000190180199091169216919091179052604051920182900390912095945050505050565b612eef336139b3565b80612efe5750612efe33613a3f565b1515612f54576040805160e560020a62461bcd02815260206004820152601a60248201527f656974686572206f776e6572206f7220636f6e74726f6c6c6572000000000000604482015290519081900360640190fd5b600854610100900460ff161515612fdb576040805160e560020a62461bcd02815260206004820152602860248201527f77686974656c6973742072656d6f76616c20686173206e6f74206265656e207360448201527f75626d6974746564000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b61303c6007805480602002602001604051908101604052809291908181526020018280548015610bb557602002820191906000526020600020908154600160a060020a03168152600190910190602001808311610b97575050505050612e39565b81146130b8576040805160e560020a62461bcd02815260206004820152603260248201527f68617368206f66207468652070656e64696e672077686974656c69737420726560448201527f6d6f76616c20646f206e6f74206d617463680000000000000000000000000000606482015290519081900360840190fd5b6130c4600760006143c9565b6008805461ff0019169055604080513381526020810183905281517f13c935eb475aa0f6e931fece83e2ac44569ce2d53460d29a6dedab40b965c8a3929181900390910190a150565b600580548290811061311b57fe5b600091825260209091200154600160a060020a0316905081565b60155490565b600854610100900460ff1681565b60025490565b6000600160a060020a038216156131f457604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a038416916370a082319160248083019260209291908290030181600087803b1580156131c157600080fd5b505af11580156131d5573d6000803e3d6000fd5b505050506040513d60208110156131eb57600080fd5b5051905061092f565b50303161092f565b80801515613254576040805160e560020a62461bcd02815260206004820152601d60248201527f70726f76696465642076616c75652063616e6e6f74206265207a65726f000000604482015290519081900360640190fd5b61325d336139b3565b8061326c575061326c33613a3f565b15156132c2576040805160e560020a62461bcd02815260206004820152601a60248201527f656974686572206f776e6572206f7220636f6e74726f6c6c6572000000000000604482015290519081900360640190fd5b6132cd600f83613b7e565b6132d56122cf565b600160a060020a03166108fc839081150290604051600060405180830381858888f1935050505015801561330d573d6000803e3d6000fd5b507f611b7c0d84fda988026215bef9b3e4d81cbceced7e679be6d5e044b588467c0e336133386122cf565b60408051600160a060020a03938416815291909216602082015280820185905290519081900360600190a15050565b61337033613a3f565b15156133b4576040805160e560020a62461bcd02815260206004820152601a60248201526000805160206144ef833981519152604482015290519081900360640190fd5b611295600982614100565b60008060008060008060006133d2614193565b600160a060020a031689600160a060020a031614156133f3578796506135b1565b600160a060020a038916156134da5761340b89613f5f565b5050509650965096505083151561346c576040805160e560020a62461bcd02815260206004820152601660248201527f746f6b656e206973206e6f7420617661696c61626c6500000000000000000000604482015290519081900360640190fd5b8415156134c3576040805160e560020a62461bcd02815260206004820152600f60248201527f746f6b656e207261746520697320300000000000000000000000000000000000604482015290519081900360640190fd5b6134d7866126d08a8863ffffffff61409116565b97505b6134e261420e565b50505093509350935050801515613543576040805160e560020a62461bcd02815260206004820152601660248201527f746f6b656e206973206e6f7420617661696c61626c6500000000000000000000604482015290519081900360640190fd5b81151561359a576040805160e560020a62461bcd02815260206004820152601460248201527f737461626c65636f696e20726174652069732030000000000000000000000000604482015290519081900360640190fd5b6135ae826126d08a8663ffffffff61409116565b96505b50505050505092915050565b6135c633613a3f565b151561360a576040805160e560020a62461bcd02815260206004820152601a60248201526000805160206144ef833981519152604482015290519081900360640190fd5b6111ff601582614100565b61361e33613a3f565b1515613662576040805160e560020a62461bcd02815260206004820152601a60248201526000805160206144ef833981519152604482015290519081900360640190fd5b610a2e600f82614100565b6000613678336139b3565b15156136bc576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b8282808060200260200160405190810160405280939291908181526020018383602002808284375060009450505050505b815181101561380657613707828281518110151561200557fe5b15613770576040805160e560020a62461bcd02815260206004820152602d602482015260008051602061450f83398151915260448201527f6f776e6572206164647265737300000000000000000000000000000000000000606482015290519081900360840190fd5b815160009083908390811061378157fe5b60209081029091010151600160a060020a031614156137fe576040805160e560020a62461bcd02815260206004820152602c602482015260008051602061450f83398151915260448201527f7a65726f20616464726573730000000000000000000000000000000000000000606482015290519081900360840190fd5b6001016136ed565b60085462010000900460ff161561388d576040805160e560020a62461bcd02815260206004820152602660248201527f77686974656c6973742068617320616c7265616479206265656e20696e69746960448201527f616c697a65640000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600092505b8383101561393e576001600460008787878181106138ac57fe5b60209081029290920135600160a060020a0316835250810191909152604001600020805460ff191691151591909117905560058585858181106138eb57fe5b83546001808201865560009586526020958690209091018054929095029390930135600160a060020a031673ffffffffffffffffffffffffffffffffffffffff1990911617909255939093019250613892565b6008805462ff0000191662010000179055604080513380825260208083018481529383018890527fb2f6cccee7a369e23e293c25aa19bef80af11eb26deba3ea0f2a02783f752e4a93919289928992606083019085908502808284376040519201829003965090945050505050a15050505050565b600354600160a060020a0390811691161490565b600482015460ff1615613a24576040805160e560020a62461bcd02815260206004820181905260248201527f6461696c79206c696d69742068617320616c7265616479206265656e20736574604482015290519081900360640190fd5b613a2e828261431b565b50600401805460ff19166001179055565b6000613a4c600254613c2a565b600160a060020a031663b429afeb836040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b158015613aa657600080fd5b505af1158015613aba573d6000803e3d6000fd5b505050506040513d6020811015613ad057600080fd5b505192915050565b600081600201546201518001421115613af35750805461092f565b50600181015461092f565b600482015460ff161515613b5c576040805160e560020a62461bcd02815260206004820152601660248201527f6c696d697420686173206e6f74206265656e2073657400000000000000000000604482015290519081900360640190fd5b600390910155565b600080613b7083613f5f565b509098975050505050505050565b613b878261433e565b6001820154811115613c09576040805160e560020a62461bcd02815260206004820152603260248201527f617661696c61626c652068617320746f2062652067726561746572206f72206560448201527f7175616c20746f2075736520616d6f756e740000000000000000000000000000606482015290519081900360840190fd5b6001820154613c1e908263ffffffff6140e916565b82600101819055505050565b60008054604080517f0178b8bf000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691630178b8bf9160248082019260209290919082900301818787803b158015613c9157600080fd5b505af1158015613ca5573d6000803e3d6000fd5b505050506040513d6020811015613cbb57600080fd5b5051604080517f3b3b57de000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691633b3b57de916024808201926020929091908290030181600087803b158015613aa657600080fd5b60008060008084600401865110151515613d85576040805160e560020a62461bcd02815260206004820152601460248201527f736c6963696e67206f7574206f662072616e6765000000000000000000000000604482015290519081900360640190fd5b5060009150819050805b60048160ff161015613df05761010083029250858160ff168601815181101515613db557fe5b01602001517f010000000000000000000000000000000000000000000000000000000000000090819004810204928301929150600101613d8f565b5090949350505050565b60008082602001845110151515613e5b576040805160e560020a62461bcd02815260206004820152601460248201527f736c6963696e67206f7574206f662072616e6765000000000000000000000000604482015290519081900360640190fd5b505081810160200151805b5092915050565b60008060008084601401865110151515613ed1576040805160e560020a62461bcd02815260206004820152601460248201527f736c6963696e67206f7574206f662072616e6765000000000000000000000000604482015290519081900360640190fd5b5060009150819050805b60148160ff161015613df05761010083029250858160ff168601815181101515613f0157fe5b01602001517f010000000000000000000000000000000000000000000000000000000000000090819004810204928301929150600101613edb565b6000806040516020840160008287838a8c6187965a03f198975050505050505050565b6060600080600080600080613f75600e54613c2a565b600160a060020a0316631f69565f896040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b158015613fcf57600080fd5b505af1158015613fe3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260e081101561400c57600080fd5b81019080805164010000000081111561402457600080fd5b8201602081018481111561403757600080fd5b815164010000000081118282018710171561405157600080fd5b5050602082015160408301516060840151608085015160a086015160c090960151949e50929c50909a509850965090945092505050919395979092949650565b6000808315156140a45760009150613e66565b508282028284828115156140b457fe5b04146140bf57600080fd5b9392505050565b6000808083116140d557600080fd5b82848115156140e057fe5b04949350505050565b600080838311156140f957600080fd5b5050900390565b60038201548114614181576040805160e560020a62461bcd02815260206004820152602960248201527f636f6e6669726d656420616e64207375626d6974746564206c696d697473206460448201527f6f6e74206d617463680000000000000000000000000000000000000000000000606482015290519081900360840190fd5b61418f82836003015461431b565b5050565b60006141a0600e54613c2a565b600160a060020a031663e9cbd8226040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156141dd57600080fd5b505af11580156141f1573d6000803e3d6000fd5b505050506040513d602081101561420757600080fd5b5051905090565b6060600080600080600080614224600e54613c2a565b600160a060020a0316633efec5e96040518163ffffffff1660e060020a028152600401600060405180830381600087803b15801561426157600080fd5b505af1158015614275573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260e081101561429e57600080fd5b8101908080516401000000008111156142b657600080fd5b820160208101848111156142c957600080fd5b81516401000000008111828201871017156142e357600080fd5b5050602082015160408301516060840151608085015160a086015160c090960151949f939e50919c509a509850919650945092505050565b6143248261433e565b808255600182015481101561418f57815460018301555050565b6002810154600090614359906201518063ffffffff6143b716565b42111561418f5761437e620151806126d08460020154426140e990919063ffffffff16565b90506143a7614396826201518063ffffffff61409116565b60028401549063ffffffff6143b716565b6002830155815460018301555050565b6000828201838110156140bf57600080fd5b50805460008255906000526020600020908101906143e79190614483565b50565b82805482825590600052602060002090810192821561444a579160200282015b8281111561444a57815473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0384351617825560209092019160019091019061440a565b5061445692915061449d565b5090565b81548183558181111561447e5760008381526020902061447e918101908301614483565b505050565b61093891905b808211156144565760008155600101614489565b61093891905b8082111561445657805473ffffffffffffffffffffffffffffffffffffffff191681556001016144a3560073656e646572206973206e6f7420616e206f776e65720000000000000000000073656e646572206973206e6f74206120636f6e74726f6c6c657200000000000070726f76696465642077686974656c69737420636f6e7461696e732074686520a165627a7a72305820c601896aac0a8caea2406e408a1ac329c9ce21c1397ce61e69091617745328f20029 \ No newline at end of file +60806040523480156200001157600080fd5b5060405160e08062004adb83398101604090815281516020830151918301516060840151608085015160a086015160c09096015160018054600160a060020a0319908116600160a060020a038088169190911792839055600080549382169383169390931783556002859055600380549092169088161760a060020a60ff0219167401000000000000000000000000000000000000000089151581029190911791829055969895969495939489918991889188918791849183918891889160ff919004161515620001195760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b6040805160008152600160a060020a038416602082015281517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea5929181900390910190a150506040805160a081810183528382526020808301859052428385018190526000606080860182905260809586018290526009889055600a97909755600b829055600c819055600d805460ff19908116909155600e98909855855193840186526706f05b59d3b200008085529284018390529483018190529482018490529101829052600f8190556010556011919091556012556013805490911690555062000214935050640100000000620002b7810204915050565b50505050509150506000811115156200028e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f737461626c65636f696e206e6f74207365740000000000000000000000000000604482015290519081900360640190fd5b620002a66127108202640100000000620003f4810204565b5050601a5550620005719350505050565b6060600080600080600080620002de600e5462000442640100000000026401000000009004565b600160a060020a0316633efec5e96040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b1580156200033557600080fd5b505af11580156200034a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260e08110156200037457600080fd5b8101908080516401000000008111156200038d57600080fd5b82016020810184811115620003a157600080fd5b8151640100000000811182820187101715620003bc57600080fd5b5050602082015160408301516060840151608085015160a086015160c090960151949f939e50919c509a509850919650945092505050565b60148190556040805160a0810182528281526020810183905242918101829052600060608201819052608090910181905260158390556016929092556017556018556019805460ff19169055565b60008054604080517f0178b8bf000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691630178b8bf9160248082019260209290919082900301818787803b158015620004aa57600080fd5b505af1158015620004bf573d6000803e3d6000fd5b505050506040513d6020811015620004d657600080fd5b5051604080517f3b3b57de000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691633b3b57de916024808201926020929091908290030181600087803b1580156200053d57600080fd5b505af115801562000552573d6000803e3d6000fd5b505050506040513d60208110156200056957600080fd5b505192915050565b61455a80620005816000396000f3006080604052600436106102585763ffffffff60e060020a60003504166301ffc9a781146102ea578063027ef3eb146103355780630f3a85d81461035c578063100f23fd146103765780631efd02991461038e5780632121dc75146103a357806321ce918d146103b85780632587a6a2146103d057806326d05ab2146103e5578063294f4025146103fa578063324e9f531461045f57806332531c3c146104745780633a43199f146104955780633bfec254146104ac5780633c672eb7146104c45780633f579f42146104dc57806347b55a9d1461050d5780635adc02ab146105225780635d2362a81461053a5780636137d6701461054f57806365e6bd8a1461056f578063715018a61461058457806374624c5514610599578063747c31d6146105b15780637d73b231146105c65780637d7d0046146105f75780637fd004fa1461060c578063877337b01461062c5780638da5cb5b146106415780639b0dfd2714610656578063b221f3161461066b578063b242e53414610683578063b87e21ef146106a9578063be40ba79146106cd578063beabacc8146106e2578063c4856cd91461070c578063c583143814610721578063cbd2ac6814610736578063cc0e7e561461074e578063cd7958dd14610763578063ce0b5bd5146107b8578063d251fefc146107d0578063da84b1ed146107e8578063de212bf3146107fd578063e2b4ce9714610812578063e3d670d714610827578063e61c51ca14610848578063eadd3cea14610860578063f36febda14610878578063f40b51f81461089c578063f41c4319146108b4578063f4217648146108cc575b36156102ae576040805160e560020a62461bcd02815260206004820152601a60248201527f6d73672064617461206e6565647320746f20626520656d707479000000000000604482015290519081900360640190fd5b6040805133815234602082015281517f88a5966d370b9919b20f3e2c13ff65706f196a4e32cc2c12bf57088f88525874929181900390910190a1005b3480156102f657600080fd5b506103217bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19600435166108ec565b604080519115158252519081900360200190f35b34801561034157600080fd5b5061034a610934565b60408051918252519081900360200190f35b34801561036857600080fd5b5061037460043561093b565b005b34801561038257600080fd5b50610374600435610a6c565b34801561039a57600080fd5b5061034a610c8f565b3480156103af57600080fd5b50610321610ca0565b3480156103c457600080fd5b50610374600435610cc1565b3480156103dc57600080fd5b5061034a610d4f565b3480156103f157600080fd5b50610321610d55565b34801561040657600080fd5b5061040f610d5e565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561044b578181015183820152602001610433565b505050509050019250505060405180910390f35b34801561046b57600080fd5b50610321610dc0565b34801561048057600080fd5b50610321600160a060020a0360043516610dc9565b610374600160a060020a0360043516602435610dde565b3480156104b857600080fd5b50610374600435611112565b3480156104d057600080fd5b5061037460043561123d565b3480156104e857600080fd5b5061037460048035600160a060020a03169060248035916044359182019101356112d3565b34801561051957600080fd5b5061040f611605565b34801561052e57600080fd5b50610374600435611665565b34801561054657600080fd5b5061034a6119c2565b34801561055b57600080fd5b5061037460048035602481019101356119ce565b34801561057b57600080fd5b50610321611c68565b34801561059057600080fd5b50610374611c71565b3480156105a557600080fd5b50610374600435611d8c565b3480156105bd57600080fd5b5061034a611eb5565b3480156105d257600080fd5b506105db611ebb565b60408051600160a060020a039092168252519081900360200190f35b34801561060357600080fd5b5061034a611eca565b34801561061857600080fd5b506103746004803560248101910135611ed6565b34801561063857600080fd5b5061034a6122c9565b34801561064d57600080fd5b506105db6122cf565b34801561066257600080fd5b5061034a6122de565b34801561067757600080fd5b506103746004356122e4565b34801561068f57600080fd5b50610374600160a060020a03600435166024351515612407565b3480156106b557600080fd5b5061034a600160a060020a0360043516602435612646565b3480156106d957600080fd5b506103216126f1565b3480156106ee57600080fd5b50610374600160a060020a0360043581169060243516604435612700565b34801561071857600080fd5b5061034a6129fb565b34801561072d57600080fd5b50610321612a01565b34801561074257600080fd5b50610374600435612a0a565b34801561075a57600080fd5b5061034a612e33565b34801561076f57600080fd5b506040805160206004803580820135838102808601850190965280855261034a95369593946024949385019291829185019084908082843750949750612e399650505050505050565b3480156107c457600080fd5b50610374600435612ee6565b3480156107dc57600080fd5b506105db60043561310d565b3480156107f457600080fd5b5061034a613135565b34801561080957600080fd5b5061032161313b565b34801561081e57600080fd5b5061034a613149565b34801561083357600080fd5b5061034a600160a060020a036004351661314f565b34801561085457600080fd5b506103746004356131fc565b34801561086c57600080fd5b50610374600435613367565b34801561088457600080fd5b5061034a600160a060020a03600435166024356133bf565b3480156108a857600080fd5b506103746004356135bd565b3480156108c057600080fd5b50610374600435613615565b3480156108d857600080fd5b50610374600480356024810191013561366d565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1981167f01ffc9a700000000000000000000000000000000000000000000000000000000145b919050565b600c545b90565b610944336139b3565b1515610988576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b8066038d7ea4c68000111580156109a757506706f05b59d3b200008111155b1515610a23576040805160e560020a62461bcd02815260206004820152602e60248201527f67617320746f7020757020616d6f756e74206973206f7574736964652074686560448201527f206d696e2f6d61782072616e6765000000000000000000000000000000000000606482015290519081900360840190fd5b610a2e600f826139c7565b604080513381526020810183905281517f41ff5d5ce3b7935893a4e7269ec5caae9cca5e3bf0eb4b21d2f443489667112e929181900390910190a150565b610a75336139b3565b80610a845750610a8433613a3f565b1515610ada576040805160e560020a62461bcd02815260206004820152601a60248201527f656974686572206f776e6572206f7220636f6e74726f6c6c6572000000000000604482015290519081900360640190fd5b60085460ff161515610b5c576040805160e560020a62461bcd02815260206004820152602960248201527f77686974656c697374206164646974696f6e20686173206e6f74206265656e2060448201527f7375626d69747465640000000000000000000000000000000000000000000000606482015290519081900360840190fd5b610bbf6006805480602002602001604051908101604052809291908181526020018280548015610bb557602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610b97575b5050505050612e39565b8114610c3b576040805160e560020a62461bcd02815260206004820152603560248201527f68617368206f66207468652070656e64696e672077686974656c69737420616460448201527f646974696f6e20646f6573206e6f74206d617463680000000000000000000000606482015290519081900360840190fd5b610c47600660006143c9565b6008805460ff19169055604080513381526020810183905281517f7794eff834d760583543e6e510e717a5e66d2c064e225f4db448343c3e66afcf929181900390910190a150565b6000610c9b6015613ad8565b905090565b60035474010000000000000000000000000000000000000000900460ff1690565b610cca336139b3565b1515610d0e576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b610d19600982613afe565b6040805182815290517f4b1b970c8a0fa761e7803ed70c13d7aca71904b13df60fbe03f981da1730da919181900360200190a150565b600f5490565b60085460ff1681565b60606007805480602002602001604051908101604052809291908181526020018280548015610db657602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610d98575b5050505050905090565b60195460ff1690565b60046020526000908152604090205460ff1681565b600080610dea336139b3565b1515610e2e576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b610e3784613b64565b1515610e8d576040805160e560020a62461bcd02815260206004820152601260248201527f746f6b656e206e6f74206c6f616461626c650000000000000000000000000000604482015290519081900360640190fd5b610e9784846133bf565b9150610ea4601583613b7e565b610eaf601a54613c2a565b9050600160a060020a0384161561104b5783600160a060020a031663095ea7b382856040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b158015610f2357600080fd5b505af1158015610f37573d6000803e3d6000fd5b505050506040513d6020811015610f4d57600080fd5b50511515610fcb576040805160e560020a62461bcd02815260206004820152602560248201527f455243323020746f6b656e20617070726f76616c2077617320756e737563636560448201527f737366756c000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b80600160a060020a0316631b3c96b485856040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050600060405180830381600087803b15801561102e57600080fd5b505af1158015611042573d6000803e3d6000fd5b505050506110c8565b80600160a060020a0316631b3c96b48486866040518463ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a03168152602001828152602001925050506000604051808303818588803b1580156110ae57600080fd5b505af11580156110c2573d6000803e3d6000fd5b50505050505b60408051600160a060020a03861681526020810185905281517f5f65674bec9af81f71be68674135a0ea3f163fb91984e3893d06da9f6ea2ce8a929181900390910190a150505050565b61111b336139b3565b151561115f576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b8066038d7ea4c680001115801561117857506014548111155b15156111f4576040805160e560020a62461bcd02815260206004820152602d60248201527f63617264206c6f616420616d6f756e74206973206f757473696465207468652060448201527f6d696e2f6d61782072616e676500000000000000000000000000000000000000606482015290519081900360840190fd5b6111ff6015826139c7565b604080513381526020810183905281517f0b05243483e17c3f3377aee82b7d47e5700b48288695fc08b7ecc2759afa44ef929181900390910190a150565b611246336139b3565b151561128a576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b6112956009826139c7565b604080513381526020810183905281517f068f112e5ec923d412be64779fe69e0fcbb6784c6617e94cccc8fd348f2e0f21929181900390910190a150565b6000806000806112e2336139b3565b1515611326576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b600485106114c75761136a86868080601f0160208091040260200160405190810160405280939291908181526020018383808284375060009450613d219350505050565b935063ffffffff841663a9059cbb148061138d575063ffffffff841663095ea7b3145b156114c7576044851015611411576040805160e560020a62461bcd02815260206004820152602b60248201527f696e76616c6964207472616e73666572202f20617070726f7665207472616e7360448201527f616374696f6e2064617461000000000000000000000000000000000000000000606482015290519081900360840190fd5b61144d86868080601f0160208091040260200160405190810160405280939291908181526020018383808284375060249450613dfa9350505050565b925061148b86868080601f0160208091040260200160405190810160405280939291908181526020018383808284375060109450613e6d9350505050565b600160a060020a03811660009081526004602052604090205490925060ff1615156114c7576114ba8884612646565b90506114c7600982613b7e565b600160a060020a03881660009081526004602052604090205460ff1615156114f4576114f4600988613b7e565b61153388888888905089898080601f01602080910402602001604051908101604052809392919081815260200183838082843750613f3c945050505050565b1515611589576040805160e560020a62461bcd02815260206004820152601c60248201527f657865637574696e67207472616e73616374696f6e206661696c656400000000604482015290519081900360640190fd5b7faf022f6b53b11c364e2dfc0aea08eb9416c94f2661451ea82ead8831385617a6888888886040518085600160a060020a0316600160a060020a03168152602001848152602001806020018281038252848482818152602001925080828437604051920182900397509095505050505050a15050505050505050565b60606006805480602002602001604051908101604052809291908181526020018280548015610db657602002820191906000526020600020908154600160a060020a03168152600190910190602001808311610d98575050505050905090565b600061167033613a3f565b15156116b4576040805160e560020a62461bcd02815260206004820152601a60248201526000805160206144ef833981519152604482015290519081900360640190fd5b60085460ff161515611736576040805160e560020a62461bcd02815260206004820152602960248201527f77686974656c697374206164646974696f6e20686173206e6f74206265656e2060448201527f7375626d69747465640000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6117976006805480602002602001604051908101604052809291908181526020018280548015610bb557602002820191906000526020600020908154600160a060020a03168152600190910190602001808311610b97575050505050612e39565b8214611813576040805160e560020a62461bcd02815260206004820152603360248201527f68617368206f66207468652070656e64696e672077686974656c69737420616460448201527f646974696f6e20646f206e6f74206d6174636800000000000000000000000000606482015290519081900360840190fd5b5060005b60065481101561190e576004600060068381548110151561183457fe5b6000918252602080832090910154600160a060020a0316835282019290925260400190205460ff1615156119065760016004600060068481548110151561187757fe5b600091825260208083209190910154600160a060020a031683528201929092526040019020805460ff19169115159190911790556006805460059190839081106118bd57fe5b600091825260208083209091015483546001810185559383529120909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039092169190911790555b600101611817565b7fb2f6cccee7a369e23e293c25aa19bef80af11eb26deba3ea0f2a02783f752e4a3360066040518083600160a060020a0316600160a060020a0316815260200180602001828103825283818154815260200191508054801561199957602002820191906000526020600020905b8154600160a060020a0316815260019091019060200180831161197b575b5050935050505060405180910390a16119b4600660006143c9565b50506008805460ff19169055565b6000610c9b6009613ad8565b6119d7336139b3565b1515611a1b576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b60085460ff16158015611a365750600854610100900460ff16155b1515611ab2576040805160e560020a62461bcd02815260206004820152602e60248201527f77686974656c697374206f7065726174696f6e2068617320616c72656164792060448201527f6265656e207375626d6974746564000000000000000000000000000000000000606482015290519081900360840190fd5b60085462010000900460ff161515611b3a576040805160e560020a62461bcd02815260206004820152602260248201527f77686974656c69737420686173206e6f74206265656e20696e697469616c697a60448201527f6564000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60008111611bb8576040805160e560020a62461bcd02815260206004820152602260248201527f70656e64696e672077686974656c6973742072656d6f76616c20697320656d7060448201527f7479000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b611bc4600783836143ea565b506008805461ff00191661010017905560408051602080840282810182019093528382527ffbc0e5ca6c7e4858daf0fdb185ef5186203e74ec9c64737e93c0aeaec596e1d19285928592611c2d9285918591829185019084908082843750612e39945050505050565b604080516020808201849052828252918101849052908190606082019086908602808284376040519201829003965090945050505050a15050565b600d5460ff1690565b611c7a336139b3565b1515611cbe576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b60035474010000000000000000000000000000000000000000900460ff161515611d32576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b6003805473ffffffffffffffffffffffffffffffffffffffff19169055604080516000808252602082015281517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea5929181900390910190a1565b611d95336139b3565b1515611dd9576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b8066038d7ea4c6800011158015611df857506706f05b59d3b200008111155b1515611e74576040805160e560020a62461bcd02815260206004820152602e60248201527f67617320746f7020757020616d6f756e74206973206f7574736964652074686560448201527f206d696e2f6d61782072616e6765000000000000000000000000000000000000606482015290519081900360840190fd5b611e7f600f82613afe565b6040805182815290517faf2a77cd04c3cc155588dd3bf67b310ab4fb3b1da3cf6b8d7d4d2aa1d09b794c9181900360200190a150565b601a5490565b600154600160a060020a031690565b6000610c9b600f613ad8565b611edf336139b3565b1515611f23576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b60085460ff16158015611f3e5750600854610100900460ff16155b1515611fba576040805160e560020a62461bcd02815260206004820152602e60248201527f77686974656c697374206f7065726174696f6e2068617320616c72656164792060448201527f6265656e207375626d6974746564000000000000000000000000000000000000606482015290519081900360840190fd5b8181808060200260200160405190810160405280939291908181526020018383602002808284375060009450505050505b815181101561211357612014828281518110151561200557fe5b906020019060200201516139b3565b1561207d576040805160e560020a62461bcd02815260206004820152602d602482015260008051602061450f83398151915260448201527f6f776e6572206164647265737300000000000000000000000000000000000000606482015290519081900360840190fd5b815160009083908390811061208e57fe5b60209081029091010151600160a060020a0316141561210b576040805160e560020a62461bcd02815260206004820152602c602482015260008051602061450f83398151915260448201527f7a65726f20616464726573730000000000000000000000000000000000000000606482015290519081900360840190fd5b600101611feb565b60085462010000900460ff16151561219b576040805160e560020a62461bcd02815260206004820152602260248201527f77686974656c69737420686173206e6f74206265656e20696e697469616c697a60448201527f6564000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60008311612219576040805160e560020a62461bcd02815260206004820152602360248201527f70656e64696e672077686974656c697374206164646974696f6e20697320656d60448201527f7074790000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b612225600685856143ea565b506008805460ff1916600117905560408051602080860282810182019093528582527f9c80b3b5f68b3e017766d59e8d09b34efe6462b05c398f35cab9e271d9bc3b9c928792879261228c9285918591829185019084908082843750612e39945050505050565b604080516020808201849052828252918101849052908190606082019086908602808284376040519201829003965090945050505050a150505050565b600e5490565b600354600160a060020a031690565b60095490565b6122ed336139b3565b1515612331576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b8066038d7ea4c680001115801561234a57506014548111155b15156123c6576040805160e560020a62461bcd02815260206004820152602d60248201527f63617264206c6f616420616d6f756e74206973206f757473696465207468652060448201527f6d696e2f6d61782072616e676500000000000000000000000000000000000000606482015290519081900360840190fd5b6123d1601582613afe565b6040805182815290517fc178d379965e5657b6fc57494e392f121a14119215dfb422aad7db4cc03f2d109181900360200190a150565b612410336139b3565b1515612454576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b60035474010000000000000000000000000000000000000000900460ff1615156124c8576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b600160a060020a038216151561254e576040805160e560020a62461bcd02815260206004820152602360248201527f6f776e65722063616e6e6f742062652073657420746f207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6003805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000831515908102919091179091556125ce5760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b60035460408051600160a060020a039283168152918416602083015280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1506003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60008060008061265586613f5f565b5050509350935093505080156126e3578115156126bc576040805160e560020a62461bcd02815260206004820152600f60248201527f746f6b656e207261746520697320300000000000000000000000000000000000604482015290519081900360640190fd5b6126dc836126d0878563ffffffff61409116565b9063ffffffff6140c616565b93506126e8565b600093505b50505092915050565b60085462010000900460ff1681565b600061270b336139b3565b151561274f576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b818015156127a7576040805160e560020a62461bcd02815260206004820152601d60248201527f70726f76696465642076616c75652063616e6e6f74206265207a65726f000000604482015290519081900360640190fd5b600160a060020a0385161515612807576040805160e560020a62461bcd02815260206004820181905260248201527f5f746f20616464726573732063616e6e6f742062652073657420746f20307830604482015290519081900360640190fd5b600160a060020a03851660009081526004602052604090205460ff16151561285357829150600160a060020a03841615612848576128458484612646565b91505b612853600983613b7e565b600160a060020a038416156129725783600160a060020a031663a9059cbb86856040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b1580156128c557600080fd5b505af11580156128d9573d6000803e3d6000fd5b505050506040513d60208110156128ef57600080fd5b5051151561296d576040805160e560020a62461bcd02815260206004820152602560248201527f455243323020746f6b656e207472616e736665722077617320756e737563636560448201527f737366756c000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6129aa565b604051600160a060020a0386169084156108fc029085906000818181858888f193505050501580156129a8573d6000803e3d6000fd5b505b60408051600160a060020a0380881682528616602082015280820185905290517fd1ba4ac2e2a11b5101f6cb4d978f514a155b421e8ec396d2d9abaf0bb02917ee9181900360600190a15050505050565b60185490565b60135460ff1690565b600080612a1633613a3f565b1515612a5a576040805160e560020a62461bcd02815260206004820152601a60248201526000805160206144ef833981519152604482015290519081900360640190fd5b600854610100900460ff161515612ae1576040805160e560020a62461bcd02815260206004820152602860248201527f77686974656c6973742072656d6f76616c20686173206e6f74206265656e207360448201527f75626d6974746564000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b612b426007805480602002602001604051908101604052809291908181526020018280548015610bb557602002820191906000526020600020908154600160a060020a03168152600190910190602001808311610b97575050505050612e39565b8314612be4576040805160e560020a62461bcd02815260206004820152604760248201527f68617368206f66207468652070656e64696e672077686974656c69737420726560448201527f6d6f76616c20646f6573206e6f74206d617463682074686520636f6e6669726d60648201527f6564206861736800000000000000000000000000000000000000000000000000608482015290519081900360a40190fd5b600091505b600754821015612d7d5760046000600784815481101515612c0657fe5b6000918252602080832090910154600160a060020a0316835282019290925260400190205460ff1615612d7257600060046000600785815481101515612c4857fe5b600091825260208083209190910154600160a060020a031683528201929092526040018120805460ff19169215159290921790915590505b600554612c9490600163ffffffff6140e916565b811015612d5d576007805483908110612ca957fe5b60009182526020909120015460058054600160a060020a039092169183908110612ccf57fe5b600091825260209091200154600160a060020a03161415612d5557600580546000198101908110612cfc57fe5b60009182526020909120015460058054600160a060020a039092169183908110612d2257fe5b9060005260206000200160006101000a815481600160a060020a030219169083600160a060020a03160217905550612d5d565b600101612c80565b6005805490612d7090600019830161445a565b505b600190910190612be9565b7fd218c430fa348f4ce67791021b6b89c0c3eacd4ead1d8f5b83c60038ec28249b3360076040518083600160a060020a0316600160a060020a03168152602001806020018281038252838181548152602001915080548015612e0857602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311612dea575b5050935050505060405180910390a1612e23600760006143c9565b50506008805461ff001916905550565b60125490565b60008160405160200180828051906020019060200280838360005b83811015612e6c578181015183820152602001612e54565b505050509050019150506040516020818303038152906040526040518082805190602001908083835b60208310612eb45780518252601f199092019160209182019101612e95565b5181516020939093036101000a6000190180199091169216919091179052604051920182900390912095945050505050565b612eef336139b3565b80612efe5750612efe33613a3f565b1515612f54576040805160e560020a62461bcd02815260206004820152601a60248201527f656974686572206f776e6572206f7220636f6e74726f6c6c6572000000000000604482015290519081900360640190fd5b600854610100900460ff161515612fdb576040805160e560020a62461bcd02815260206004820152602860248201527f77686974656c6973742072656d6f76616c20686173206e6f74206265656e207360448201527f75626d6974746564000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b61303c6007805480602002602001604051908101604052809291908181526020018280548015610bb557602002820191906000526020600020908154600160a060020a03168152600190910190602001808311610b97575050505050612e39565b81146130b8576040805160e560020a62461bcd02815260206004820152603260248201527f68617368206f66207468652070656e64696e672077686974656c69737420726560448201527f6d6f76616c20646f206e6f74206d617463680000000000000000000000000000606482015290519081900360840190fd5b6130c4600760006143c9565b6008805461ff0019169055604080513381526020810183905281517f13c935eb475aa0f6e931fece83e2ac44569ce2d53460d29a6dedab40b965c8a3929181900390910190a150565b600580548290811061311b57fe5b600091825260209091200154600160a060020a0316905081565b60155490565b600854610100900460ff1681565b60025490565b6000600160a060020a038216156131f457604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a038416916370a082319160248083019260209291908290030181600087803b1580156131c157600080fd5b505af11580156131d5573d6000803e3d6000fd5b505050506040513d60208110156131eb57600080fd5b5051905061092f565b50303161092f565b80801515613254576040805160e560020a62461bcd02815260206004820152601d60248201527f70726f76696465642076616c75652063616e6e6f74206265207a65726f000000604482015290519081900360640190fd5b61325d336139b3565b8061326c575061326c33613a3f565b15156132c2576040805160e560020a62461bcd02815260206004820152601a60248201527f656974686572206f776e6572206f7220636f6e74726f6c6c6572000000000000604482015290519081900360640190fd5b6132cd600f83613b7e565b6132d56122cf565b600160a060020a03166108fc839081150290604051600060405180830381858888f1935050505015801561330d573d6000803e3d6000fd5b507f611b7c0d84fda988026215bef9b3e4d81cbceced7e679be6d5e044b588467c0e336133386122cf565b60408051600160a060020a03938416815291909216602082015280820185905290519081900360600190a15050565b61337033613a3f565b15156133b4576040805160e560020a62461bcd02815260206004820152601a60248201526000805160206144ef833981519152604482015290519081900360640190fd5b611295600982614100565b60008060008060008060006133d2614193565b600160a060020a031689600160a060020a031614156133f3578796506135b1565b600160a060020a038916156134da5761340b89613f5f565b5050509650965096505083151561346c576040805160e560020a62461bcd02815260206004820152601660248201527f746f6b656e206973206e6f7420617661696c61626c6500000000000000000000604482015290519081900360640190fd5b8415156134c3576040805160e560020a62461bcd02815260206004820152600f60248201527f746f6b656e207261746520697320300000000000000000000000000000000000604482015290519081900360640190fd5b6134d7866126d08a8863ffffffff61409116565b97505b6134e261420e565b50505093509350935050801515613543576040805160e560020a62461bcd02815260206004820152601660248201527f746f6b656e206973206e6f7420617661696c61626c6500000000000000000000604482015290519081900360640190fd5b81151561359a576040805160e560020a62461bcd02815260206004820152601460248201527f737461626c65636f696e20726174652069732030000000000000000000000000604482015290519081900360640190fd5b6135ae826126d08a8663ffffffff61409116565b96505b50505050505092915050565b6135c633613a3f565b151561360a576040805160e560020a62461bcd02815260206004820152601a60248201526000805160206144ef833981519152604482015290519081900360640190fd5b6111ff601582614100565b61361e33613a3f565b1515613662576040805160e560020a62461bcd02815260206004820152601a60248201526000805160206144ef833981519152604482015290519081900360640190fd5b610a2e600f82614100565b6000613678336139b3565b15156136bc576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b8282808060200260200160405190810160405280939291908181526020018383602002808284375060009450505050505b815181101561380657613707828281518110151561200557fe5b15613770576040805160e560020a62461bcd02815260206004820152602d602482015260008051602061450f83398151915260448201527f6f776e6572206164647265737300000000000000000000000000000000000000606482015290519081900360840190fd5b815160009083908390811061378157fe5b60209081029091010151600160a060020a031614156137fe576040805160e560020a62461bcd02815260206004820152602c602482015260008051602061450f83398151915260448201527f7a65726f20616464726573730000000000000000000000000000000000000000606482015290519081900360840190fd5b6001016136ed565b60085462010000900460ff161561388d576040805160e560020a62461bcd02815260206004820152602660248201527f77686974656c6973742068617320616c7265616479206265656e20696e69746960448201527f616c697a65640000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600092505b8383101561393e576001600460008787878181106138ac57fe5b60209081029290920135600160a060020a0316835250810191909152604001600020805460ff191691151591909117905560058585858181106138eb57fe5b83546001808201865560009586526020958690209091018054929095029390930135600160a060020a031673ffffffffffffffffffffffffffffffffffffffff1990911617909255939093019250613892565b6008805462ff0000191662010000179055604080513380825260208083018481529383018890527fb2f6cccee7a369e23e293c25aa19bef80af11eb26deba3ea0f2a02783f752e4a93919289928992606083019085908502808284376040519201829003965090945050505050a15050505050565b600354600160a060020a0390811691161490565b600482015460ff1615613a24576040805160e560020a62461bcd02815260206004820181905260248201527f6461696c79206c696d69742068617320616c7265616479206265656e20736574604482015290519081900360640190fd5b613a2e828261431b565b50600401805460ff19166001179055565b6000613a4c600254613c2a565b600160a060020a031663b429afeb836040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b158015613aa657600080fd5b505af1158015613aba573d6000803e3d6000fd5b505050506040513d6020811015613ad057600080fd5b505192915050565b600081600201546201518001421115613af35750805461092f565b50600181015461092f565b600482015460ff161515613b5c576040805160e560020a62461bcd02815260206004820152601660248201527f6c696d697420686173206e6f74206265656e2073657400000000000000000000604482015290519081900360640190fd5b600390910155565b600080613b7083613f5f565b509098975050505050505050565b613b878261433e565b6001820154811115613c09576040805160e560020a62461bcd02815260206004820152603260248201527f617661696c61626c652068617320746f2062652067726561746572206f72206560448201527f7175616c20746f2075736520616d6f756e740000000000000000000000000000606482015290519081900360840190fd5b6001820154613c1e908263ffffffff6140e916565b82600101819055505050565b60008054604080517f0178b8bf000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691630178b8bf9160248082019260209290919082900301818787803b158015613c9157600080fd5b505af1158015613ca5573d6000803e3d6000fd5b505050506040513d6020811015613cbb57600080fd5b5051604080517f3b3b57de000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691633b3b57de916024808201926020929091908290030181600087803b158015613aa657600080fd5b60008060008084600401865110151515613d85576040805160e560020a62461bcd02815260206004820152601460248201527f736c6963696e67206f7574206f662072616e6765000000000000000000000000604482015290519081900360640190fd5b5060009150819050805b60048160ff161015613df05761010083029250858160ff168601815181101515613db557fe5b01602001517f010000000000000000000000000000000000000000000000000000000000000090819004810204928301929150600101613d8f565b5090949350505050565b60008082602001845110151515613e5b576040805160e560020a62461bcd02815260206004820152601460248201527f736c6963696e67206f7574206f662072616e6765000000000000000000000000604482015290519081900360640190fd5b505081810160200151805b5092915050565b60008060008084601401865110151515613ed1576040805160e560020a62461bcd02815260206004820152601460248201527f736c6963696e67206f7574206f662072616e6765000000000000000000000000604482015290519081900360640190fd5b5060009150819050805b60148160ff161015613df05761010083029250858160ff168601815181101515613f0157fe5b01602001517f010000000000000000000000000000000000000000000000000000000000000090819004810204928301929150600101613edb565b6000806040516020840160008287838a8c6187965a03f198975050505050505050565b6060600080600080600080613f75600e54613c2a565b600160a060020a0316631f69565f896040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b158015613fcf57600080fd5b505af1158015613fe3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260e081101561400c57600080fd5b81019080805164010000000081111561402457600080fd5b8201602081018481111561403757600080fd5b815164010000000081118282018710171561405157600080fd5b5050602082015160408301516060840151608085015160a086015160c090960151949e50929c50909a509850965090945092505050919395979092949650565b6000808315156140a45760009150613e66565b508282028284828115156140b457fe5b04146140bf57600080fd5b9392505050565b6000808083116140d557600080fd5b82848115156140e057fe5b04949350505050565b600080838311156140f957600080fd5b5050900390565b60038201548114614181576040805160e560020a62461bcd02815260206004820152602960248201527f636f6e6669726d656420616e64207375626d6974746564206c696d697473206460448201527f6f6e74206d617463680000000000000000000000000000000000000000000000606482015290519081900360840190fd5b61418f82836003015461431b565b5050565b60006141a0600e54613c2a565b600160a060020a031663e9cbd8226040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156141dd57600080fd5b505af11580156141f1573d6000803e3d6000fd5b505050506040513d602081101561420757600080fd5b5051905090565b6060600080600080600080614224600e54613c2a565b600160a060020a0316633efec5e96040518163ffffffff1660e060020a028152600401600060405180830381600087803b15801561426157600080fd5b505af1158015614275573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260e081101561429e57600080fd5b8101908080516401000000008111156142b657600080fd5b820160208101848111156142c957600080fd5b81516401000000008111828201871017156142e357600080fd5b5050602082015160408301516060840151608085015160a086015160c090960151949f939e50919c509a509850919650945092505050565b6143248261433e565b808255600182015481101561418f57815460018301555050565b6002810154600090614359906201518063ffffffff6143b716565b42111561418f5761437e620151806126d08460020154426140e990919063ffffffff16565b90506143a7614396826201518063ffffffff61409116565b60028401549063ffffffff6143b716565b6002830155815460018301555050565b6000828201838110156140bf57600080fd5b50805460008255906000526020600020908101906143e79190614483565b50565b82805482825590600052602060002090810192821561444a579160200282015b8281111561444a57815473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0384351617825560209092019160019091019061440a565b5061445692915061449d565b5090565b81548183558181111561447e5760008381526020902061447e918101908301614483565b505050565b61093891905b808211156144565760008155600101614489565b61093891905b8082111561445657805473ffffffffffffffffffffffffffffffffffffffff191681556001016144a3560073656e646572206973206e6f7420616e206f776e65720000000000000000000073656e646572206973206e6f74206120636f6e74726f6c6c657200000000000070726f76696465642077686974656c69737420636f6e7461696e732074686520a165627a7a72305820088d8f3def4506637bda6d36374fb74cb4bbc7c2550ce8c58aba78a2564232eb0029 \ No newline at end of file diff --git a/build/wallet/combined.json b/build/wallet/combined.json index 5f7c3b47..9398de18 100644 --- a/build/wallet/combined.json +++ b/build/wallet/combined.json @@ -1 +1 @@ -{"contracts":{"externals/ERC165.sol:ERC165":{"bin":"","bin-runtime":"","srcmap":"","srcmap-runtime":""},"externals/ERC20.sol:ERC20":{"bin":"","bin-runtime":"","srcmap":"","srcmap-runtime":""},"externals/SafeMath.sol:SafeMath":{"bin":"604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820564cf9c59188bb4d206d867a51ebdc48341c3b90a16491599b74ecfe95674b940029","bin-runtime":"73000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820564cf9c59188bb4d206d867a51ebdc48341c3b90a16491599b74ecfe95674b940029","srcmap":"1289:1531:2:-;;132:2:-1;166:7;155:9;146:7;137:37;252:7;246:14;243:1;238:23;232:4;229:33;270:1;265:20;;;;222:63;;265:20;274:9;222:63;;298:9;295:1;288:20;328:4;319:7;311:22;352:7;343;336:24","srcmap-runtime":"1289:1531:2:-;;;;;;;;"},"externals/ens/ENS.sol:ENS":{"bin":"","bin-runtime":"","srcmap":"","srcmap-runtime":""},"externals/ens/PublicResolver.sol:PublicResolver":{"bin":"608060405234801561001057600080fd5b50604051602080611400833981016040525160008054600160a060020a03909216600160a060020a03199092169190911790556113ae806100526000396000f3006080604052600436106100da5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166301ffc9a781146100df57806310f13a8c146101155780632203ab56146101b357806329cd62ea1461024d5780632dff69411461026b5780633b3b57de1461029557806359d1d43c146102c9578063623195b01461039c578063691f3431146103fc5780637737221314610414578063aa4cb54714610472578063c3d014d6146104d0578063c8690233146104eb578063d5fa2b001461051c578063e89401a114610540575b600080fd5b3480156100eb57600080fd5b50610101600160e060020a031960043516610558565b604080519115158252519081900360200190f35b34801561012157600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526101b195833595369560449491939091019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437509497506106f99650505050505050565b005b3480156101bf57600080fd5b506101ce60043560243561091f565b6040518083815260200180602001828103825283818151815260200191508051906020019080838360005b838110156102115781810151838201526020016101f9565b50505050905090810190601f16801561023e5780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b34801561025957600080fd5b506101b1600435602435604435610a2b565b34801561027757600080fd5b50610283600435610b2b565b60408051918252519081900360200190f35b3480156102a157600080fd5b506102ad600435610b41565b60408051600160a060020a039092168252519081900360200190f35b3480156102d557600080fd5b5060408051602060046024803582810135601f8101859004850286018501909652858552610327958335953695604494919390910191908190840183828082843750949750610b5c9650505050505050565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610361578181015183820152602001610349565b50505050905090810190601f16801561038e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103a857600080fd5b50604080516020600460443581810135601f81018490048402850184019095528484526101b1948235946024803595369594606494920191908190840183828082843750949750610c659650505050505050565b34801561040857600080fd5b50610327600435610d66565b34801561042057600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526101b1958335953695604494919390910191908190840183828082843750949750610e0a9650505050505050565b34801561047e57600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526101b1958335953695604494919390910191908190840183828082843750949750610f609650505050505050565b3480156104dc57600080fd5b506101b1600435602435611076565b3480156104f757600080fd5b50610503600435611157565b6040805192835260208301919091528051918290030190f35b34801561052857600080fd5b506101b1600435600160a060020a0360243516611174565b34801561054c57600080fd5b50610327600435611278565b6000600160e060020a031982167f3b3b57de0000000000000000000000000000000000000000000000000000000014806105bb5750600160e060020a031982167fd8389dc500000000000000000000000000000000000000000000000000000000145b806105ef5750600160e060020a031982167f691f343100000000000000000000000000000000000000000000000000000000145b806106235750600160e060020a031982167f2203ab5600000000000000000000000000000000000000000000000000000000145b806106575750600160e060020a031982167fc869023300000000000000000000000000000000000000000000000000000000145b8061068b5750600160e060020a031982167f59d1d43c00000000000000000000000000000000000000000000000000000000145b806106bf5750600160e060020a031982167fe89401a100000000000000000000000000000000000000000000000000000000145b806106f35750600160e060020a031982167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b600080546040805160e060020a6302571be302815260048101879052905186933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b15801561074c57600080fd5b505af1158015610760573d6000803e3d6000fd5b505050506040513d602081101561077657600080fd5b5051600160a060020a03161461078b57600080fd5b6000848152600160209081526040918290209151855185936005019287929182918401908083835b602083106107d25780518252601f1990920191602091820191016107b3565b51815160209384036101000a6000190180199092169116179052920194855250604051938490038101909320845161081395919491909101925090506112e7565b5083600019167fd8c9334b1a9c2f9da342a0a2b32629c1a229b6445dad78947f674b44444a75508485604051808060200180602001838103835285818151815260200191508051906020019080838360005b8381101561087d578181015183820152602001610865565b50505050905090810190601f1680156108aa5780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b838110156108dd5781810151838201526020016108c5565b50505050905090810190601f16801561090a5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a250505050565b60008281526001602081905260409091206060905b838311610a1e578284161580159061096d5750600083815260068201602052604081205460026000196101006001841615020190911604115b15610a1357600083815260068201602090815260409182902080548351601f600260001961010060018616150201909316929092049182018490048402810184019094528084529091830182828015610a075780601f106109dc57610100808354040283529160200191610a07565b820191906000526020600020905b8154815290600101906020018083116109ea57829003601f168201915b50505050509150610a23565b600290920291610934565b600092505b509250929050565b600080546040805160e060020a6302571be302815260048101879052905186933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b158015610a7e57600080fd5b505af1158015610a92573d6000803e3d6000fd5b505050506040513d6020811015610aa857600080fd5b5051600160a060020a031614610abd57600080fd5b604080518082018252848152602080820185815260008881526001835284902092516003840155516004909201919091558151858152908101849052815186927f1d6f5e03d3f63eb58751986629a5439baee5079ff04f345becb66e23eb154e46928290030190a250505050565b6000908152600160208190526040909120015490565b600090815260016020526040902054600160a060020a031690565b600082815260016020908152604091829020915183516060936005019285929182918401908083835b60208310610ba45780518252601f199092019160209182019101610b85565b518151600019602094850361010090810a820192831692199390931691909117909252949092019687526040805197889003820188208054601f6002600183161590980290950116959095049283018290048202880182019052818752929450925050830182828015610c585780601f10610c2d57610100808354040283529160200191610c58565b820191906000526020600020905b815481529060010190602001808311610c3b57829003601f168201915b5050505050905092915050565b600080546040805160e060020a6302571be302815260048101879052905186933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b158015610cb857600080fd5b505af1158015610ccc573d6000803e3d6000fd5b505050506040513d6020811015610ce257600080fd5b5051600160a060020a031614610cf757600080fd5b6000198301831615610d0857600080fd5b600084815260016020908152604080832086845260060182529091208351610d32928501906112e7565b50604051839085907faa121bbeef5f32f5961a2a28966e769023910fc9479059ee3495d4c1a696efe390600090a350505050565b6000818152600160208181526040928390206002908101805485516000199582161561010002959095011691909104601f81018390048302840183019094528383526060939091830182828015610dfe5780601f10610dd357610100808354040283529160200191610dfe565b820191906000526020600020905b815481529060010190602001808311610de157829003601f168201915b50505050509050919050565b600080546040805160e060020a6302571be302815260048101869052905185933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b158015610e5d57600080fd5b505af1158015610e71573d6000803e3d6000fd5b505050506040513d6020811015610e8757600080fd5b5051600160a060020a031614610e9c57600080fd5b60008381526001602090815260409091208351610ec1926002909201918501906112e7565b50604080516020808252845181830152845186937fb7d29e911041e8d9b843369e890bcb72c9388692ba48b65ac54e7214c4c348f79387939092839283019185019080838360005b83811015610f21578181015183820152602001610f09565b50505050905090810190601f168015610f4e5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505050565b600080546040805160e060020a6302571be302815260048101869052905185933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b158015610fb357600080fd5b505af1158015610fc7573d6000803e3d6000fd5b505050506040513d6020811015610fdd57600080fd5b5051600160a060020a031614610ff257600080fd5b60008381526001602090815260409091208351611017926007909201918501906112e7565b50604080516020808252845181830152845186937fc0b0fc07269fc2749adada3221c095a1d2187b2d075b51c915857b520f3a502193879390928392830191850190808383600083811015610f21578181015183820152602001610f09565b600080546040805160e060020a6302571be302815260048101869052905185933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b1580156110c957600080fd5b505af11580156110dd573d6000803e3d6000fd5b505050506040513d60208110156110f357600080fd5b5051600160a060020a03161461110857600080fd5b6000838152600160208181526040928390209091018490558151848152915185927f0424b6fe0d9c3bdbece0e7879dc241bb0c22e900be8b6c168b4ee08bd9bf83bc92908290030190a2505050565b600090815260016020526040902060038101546004909101549091565b600080546040805160e060020a6302571be302815260048101869052905185933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b1580156111c757600080fd5b505af11580156111db573d6000803e3d6000fd5b505050506040513d60208110156111f157600080fd5b5051600160a060020a03161461120657600080fd5b600083815260016020908152604091829020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386169081179091558251908152915185927f52d7d861f09ab3d26239d492e8968629f95e9e318cf0b73bfddc441522a15fd292908290030190a2505050565b60008181526001602081815260409283902060070180548451600260001995831615610100029590950190911693909304601f81018390048302840183019094528383526060939091830182828015610dfe5780601f10610dd357610100808354040283529160200191610dfe565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061132857805160ff1916838001178555611355565b82800160010185558215611355579182015b8281111561135557825182559160200191906001019061133a565b50611361929150611365565b5090565b61137f91905b80821115611361576000815560010161136b565b905600a165627a7a72305820bf76237672851602565e309e20eddff44fc668000bb45495e385fdd9e24f4e310029","bin-runtime":"6080604052600436106100da5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166301ffc9a781146100df57806310f13a8c146101155780632203ab56146101b357806329cd62ea1461024d5780632dff69411461026b5780633b3b57de1461029557806359d1d43c146102c9578063623195b01461039c578063691f3431146103fc5780637737221314610414578063aa4cb54714610472578063c3d014d6146104d0578063c8690233146104eb578063d5fa2b001461051c578063e89401a114610540575b600080fd5b3480156100eb57600080fd5b50610101600160e060020a031960043516610558565b604080519115158252519081900360200190f35b34801561012157600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526101b195833595369560449491939091019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437509497506106f99650505050505050565b005b3480156101bf57600080fd5b506101ce60043560243561091f565b6040518083815260200180602001828103825283818151815260200191508051906020019080838360005b838110156102115781810151838201526020016101f9565b50505050905090810190601f16801561023e5780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b34801561025957600080fd5b506101b1600435602435604435610a2b565b34801561027757600080fd5b50610283600435610b2b565b60408051918252519081900360200190f35b3480156102a157600080fd5b506102ad600435610b41565b60408051600160a060020a039092168252519081900360200190f35b3480156102d557600080fd5b5060408051602060046024803582810135601f8101859004850286018501909652858552610327958335953695604494919390910191908190840183828082843750949750610b5c9650505050505050565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610361578181015183820152602001610349565b50505050905090810190601f16801561038e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103a857600080fd5b50604080516020600460443581810135601f81018490048402850184019095528484526101b1948235946024803595369594606494920191908190840183828082843750949750610c659650505050505050565b34801561040857600080fd5b50610327600435610d66565b34801561042057600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526101b1958335953695604494919390910191908190840183828082843750949750610e0a9650505050505050565b34801561047e57600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526101b1958335953695604494919390910191908190840183828082843750949750610f609650505050505050565b3480156104dc57600080fd5b506101b1600435602435611076565b3480156104f757600080fd5b50610503600435611157565b6040805192835260208301919091528051918290030190f35b34801561052857600080fd5b506101b1600435600160a060020a0360243516611174565b34801561054c57600080fd5b50610327600435611278565b6000600160e060020a031982167f3b3b57de0000000000000000000000000000000000000000000000000000000014806105bb5750600160e060020a031982167fd8389dc500000000000000000000000000000000000000000000000000000000145b806105ef5750600160e060020a031982167f691f343100000000000000000000000000000000000000000000000000000000145b806106235750600160e060020a031982167f2203ab5600000000000000000000000000000000000000000000000000000000145b806106575750600160e060020a031982167fc869023300000000000000000000000000000000000000000000000000000000145b8061068b5750600160e060020a031982167f59d1d43c00000000000000000000000000000000000000000000000000000000145b806106bf5750600160e060020a031982167fe89401a100000000000000000000000000000000000000000000000000000000145b806106f35750600160e060020a031982167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b600080546040805160e060020a6302571be302815260048101879052905186933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b15801561074c57600080fd5b505af1158015610760573d6000803e3d6000fd5b505050506040513d602081101561077657600080fd5b5051600160a060020a03161461078b57600080fd5b6000848152600160209081526040918290209151855185936005019287929182918401908083835b602083106107d25780518252601f1990920191602091820191016107b3565b51815160209384036101000a6000190180199092169116179052920194855250604051938490038101909320845161081395919491909101925090506112e7565b5083600019167fd8c9334b1a9c2f9da342a0a2b32629c1a229b6445dad78947f674b44444a75508485604051808060200180602001838103835285818151815260200191508051906020019080838360005b8381101561087d578181015183820152602001610865565b50505050905090810190601f1680156108aa5780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b838110156108dd5781810151838201526020016108c5565b50505050905090810190601f16801561090a5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a250505050565b60008281526001602081905260409091206060905b838311610a1e578284161580159061096d5750600083815260068201602052604081205460026000196101006001841615020190911604115b15610a1357600083815260068201602090815260409182902080548351601f600260001961010060018616150201909316929092049182018490048402810184019094528084529091830182828015610a075780601f106109dc57610100808354040283529160200191610a07565b820191906000526020600020905b8154815290600101906020018083116109ea57829003601f168201915b50505050509150610a23565b600290920291610934565b600092505b509250929050565b600080546040805160e060020a6302571be302815260048101879052905186933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b158015610a7e57600080fd5b505af1158015610a92573d6000803e3d6000fd5b505050506040513d6020811015610aa857600080fd5b5051600160a060020a031614610abd57600080fd5b604080518082018252848152602080820185815260008881526001835284902092516003840155516004909201919091558151858152908101849052815186927f1d6f5e03d3f63eb58751986629a5439baee5079ff04f345becb66e23eb154e46928290030190a250505050565b6000908152600160208190526040909120015490565b600090815260016020526040902054600160a060020a031690565b600082815260016020908152604091829020915183516060936005019285929182918401908083835b60208310610ba45780518252601f199092019160209182019101610b85565b518151600019602094850361010090810a820192831692199390931691909117909252949092019687526040805197889003820188208054601f6002600183161590980290950116959095049283018290048202880182019052818752929450925050830182828015610c585780601f10610c2d57610100808354040283529160200191610c58565b820191906000526020600020905b815481529060010190602001808311610c3b57829003601f168201915b5050505050905092915050565b600080546040805160e060020a6302571be302815260048101879052905186933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b158015610cb857600080fd5b505af1158015610ccc573d6000803e3d6000fd5b505050506040513d6020811015610ce257600080fd5b5051600160a060020a031614610cf757600080fd5b6000198301831615610d0857600080fd5b600084815260016020908152604080832086845260060182529091208351610d32928501906112e7565b50604051839085907faa121bbeef5f32f5961a2a28966e769023910fc9479059ee3495d4c1a696efe390600090a350505050565b6000818152600160208181526040928390206002908101805485516000199582161561010002959095011691909104601f81018390048302840183019094528383526060939091830182828015610dfe5780601f10610dd357610100808354040283529160200191610dfe565b820191906000526020600020905b815481529060010190602001808311610de157829003601f168201915b50505050509050919050565b600080546040805160e060020a6302571be302815260048101869052905185933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b158015610e5d57600080fd5b505af1158015610e71573d6000803e3d6000fd5b505050506040513d6020811015610e8757600080fd5b5051600160a060020a031614610e9c57600080fd5b60008381526001602090815260409091208351610ec1926002909201918501906112e7565b50604080516020808252845181830152845186937fb7d29e911041e8d9b843369e890bcb72c9388692ba48b65ac54e7214c4c348f79387939092839283019185019080838360005b83811015610f21578181015183820152602001610f09565b50505050905090810190601f168015610f4e5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505050565b600080546040805160e060020a6302571be302815260048101869052905185933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b158015610fb357600080fd5b505af1158015610fc7573d6000803e3d6000fd5b505050506040513d6020811015610fdd57600080fd5b5051600160a060020a031614610ff257600080fd5b60008381526001602090815260409091208351611017926007909201918501906112e7565b50604080516020808252845181830152845186937fc0b0fc07269fc2749adada3221c095a1d2187b2d075b51c915857b520f3a502193879390928392830191850190808383600083811015610f21578181015183820152602001610f09565b600080546040805160e060020a6302571be302815260048101869052905185933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b1580156110c957600080fd5b505af11580156110dd573d6000803e3d6000fd5b505050506040513d60208110156110f357600080fd5b5051600160a060020a03161461110857600080fd5b6000838152600160208181526040928390209091018490558151848152915185927f0424b6fe0d9c3bdbece0e7879dc241bb0c22e900be8b6c168b4ee08bd9bf83bc92908290030190a2505050565b600090815260016020526040902060038101546004909101549091565b600080546040805160e060020a6302571be302815260048101869052905185933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b1580156111c757600080fd5b505af11580156111db573d6000803e3d6000fd5b505050506040513d60208110156111f157600080fd5b5051600160a060020a03161461120657600080fd5b600083815260016020908152604091829020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386169081179091558251908152915185927f52d7d861f09ab3d26239d492e8968629f95e9e318cf0b73bfddc441522a15fd292908290030190a2505050565b60008181526001602081815260409283902060070180548451600260001995831615610100029590950190911693909304601f81018390048302840183019094528383526060939091830182828015610dfe5780601f10610dd357610100808354040283529160200191610dfe565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061132857805160ff1916838001178555611355565b82800160010185558215611355579182015b8281111561135557825182559160200191906001019061133a565b50611361929150611365565b5090565b61137f91905b80821115611361576000815560010161136b565b905600a165627a7a72305820bf76237672851602565e309e20eddff44fc668000bb45495e385fdd9e24f4e310029","srcmap":"1553:8134:4:-;;;3005:62;8:9:-1;5:2;;;30:1;27;20:12;5:2;3005:62:4;;;;;;;;;;;;;3047:3;:13;;-1:-1:-1;;;;;3047:13:4;;;-1:-1:-1;;;;;;3047:13:4;;;;;;;;;1553:8134;;;;;;","srcmap-runtime":"1553:8134:4:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9238:447;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9238:447:4;-1:-1:-1;;;;;;9238:447:4;;;;;;;;;;;;;;;;;;;;;;;6084:171;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6084:171:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6084:171:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6084:171:4;;;;-1:-1:-1;6084:171:4;-1:-1:-1;6084:171:4;;-1:-1:-1;6084:171:4;;;;;;;;-1:-1:-1;6084:171:4;;-1:-1:-1;6084:171:4;;-1:-1:-1;;;;;;;6084:171:4;;;7296:451;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7296:451:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;7296:451:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5631:174;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5631:174:4;;;;;;;;;8351:106;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8351:106:4;;;;;;;;;;;;;;;;;;;;;8887:100;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8887:100:4;;;;;;;;;-1:-1:-1;;;;;8887:100:4;;;;;;;;;;;;;;6472:116;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6472:116:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6472:116:4;;-1:-1:-1;6472:116:4;;-1:-1:-1;;;;;;;6472:116:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;6472:116:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5057:297;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5057:297:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5057:297:4;;-1:-1:-1;5057:297:4;;-1:-1:-1;;;;;;;5057:297:4;7947:99;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7947:99:4;;;;;4607:148;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4607:148:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4607:148:4;;-1:-1:-1;4607:148:4;;-1:-1:-1;;;;;;;4607:148:4;4200:162;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4200:162:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4200:162:4;;-1:-1:-1;4200:162:4;;-1:-1:-1;;;;;;;4200:162:4;3813:158;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3813:158:4;;;;;;;6830:145;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6830:145:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;3293:149;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3293:149:4;;;-1:-1:-1;;;;;3293:149:4;;;;;8620:108;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8620:108:4;;;;;9238:447;9306:4;-1:-1:-1;;;;;;9329:32:4;;9344:17;9329:32;;:79;;-1:-1:-1;;;;;;;9373:35:4;;9388:20;9373:35;9329:79;:123;;;-1:-1:-1;;;;;;;9420:32:4;;9435:17;9420:32;9329:123;:166;;;-1:-1:-1;;;;;;;9464:31:4;;9479:16;9464:31;9329:166;:212;;;-1:-1:-1;;;;;;;9507:34:4;;9522:19;9507:34;9329:212;:256;;;-1:-1:-1;;;;;;;9553:32:4;;9568:17;9553:32;9329:256;:305;;;-1:-1:-1;;;;;;;9597:37:4;;9612:22;9597:37;9329:305;:349;;;-1:-1:-1;;;;;;;9646:32:4;;9661:17;9646:32;9329:349;9322:356;9238:447;-1:-1:-1;;9238:447:4:o;6084:171::-;2865:3;;;:15;;;-1:-1:-1;;;;;2865:15:4;;;;;;;;;;6159:4;;2884:10;;-1:-1:-1;;;;;2865:3:4;;:9;;:15;;;;;;;;;;;;;;;;:3;:15;;;5:2:-1;;;;30:1;27;20:12;5:2;2865:15:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2865:15:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2865:15:4;-1:-1:-1;;;;;2865:29:4;;2857:38;;;;;;6175:13;;;;:7;:13;;;;;;;;;:23;;;;6201:5;;6175:18;;;6194:3;;6175:23;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;6175:23:4;;;;;-1:-1:-1;6175:23:4;;;;;;;;;;;:31;;;;:23;;:31;;;;;-1:-1:-1;6175:31:4;-1:-1:-1;6175:31:4;:::i;:::-;;6233:4;6221:27;;;;6239:3;6244;6221:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;6221:27:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6221:27:4;;;;;;;;;;;;;;;;;;;;;;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;6221:27:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6084:171;;;;:::o;7296:451::-;7366:19;7433:13;;;:7;:13;;;;;;;;7387:10;;7456:260;7478:27;;;7456:260;;7545:26;;;7544:33;;;;:72;;-1:-1:-1;7615:1:4;7581:24;;;:11;;;:24;;;;;:31;;-1:-1:-1;;7581:31:4;;;;;;;;;;;:35;7544:72;7540:166;;;7643:24;;;;:11;;;:24;;;;;;;;;7636:31;;;;;;-1:-1:-1;;7636:31:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7643:24;;7636:31;;7643:24;7636:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7685:7;;7540:166;7507:17;;;;;7456:260;;;7739:1;7725:15;;7296:451;;;;;;;:::o;5631:174::-;2865:3;;;:15;;;-1:-1:-1;;;;;2865:15:4;;;;;;;;;;5704:4;;2884:10;;-1:-1:-1;;;;;2865:3:4;;:9;;:15;;;;;;;;;;;;;;;;:3;:15;;;5:2:-1;;;;30:1;27;20:12;5:2;2865:15:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2865:15:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2865:15:4;-1:-1:-1;;;;;2865:29:4;;2857:38;;;;;;5743:15;;;;;;;;;;;;;;;;;;-1:-1:-1;5720:13:4;;;:7;:13;;;;;:38;;:20;;;:38;;;;;;;;;;5773:25;;;;;;;;;;;;;5728:4;;5773:25;;;;;;;;5631:174;;;;:::o;8351:106::-;8403:7;8429:13;;;:7;:13;;;;;;;;:21;;;8351:106::o;8887:100::-;8936:7;8962:13;;;:7;:13;;;;;:18;-1:-1:-1;;;;;8962:18:4;;8887:100::o;6472:116::-;6558:13;;;;:7;:13;;;;;;;;;:23;;;;6533:6;;6558:18;;;6577:3;;6558:23;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;-1:-1;;263:2;259:12;;;254:3;250:22;;;246:30;;340:21;;;311:9;;295:26;;;;377:20;;;;365:33;;;6558:23:4;;;;;;;;;;;;;;;;;;6551:30;;;;274:1:-1;6551:30:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6558:23;;-1:-1:-1;6551:30:4;-1:-1:-1;;6551:30:4;;6558:23;6551:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6472:116;;;;:::o;5057:297::-;2865:3;;;:15;;;-1:-1:-1;;;;;2865:15:4;;;;;;;;;;5138:4;;2884:10;;-1:-1:-1;;;;;2865:3:4;;:9;;:15;;;;;;;;;;;;;;;;:3;:15;;;5:2:-1;;;;30:1;27;20:12;5:2;2865:15:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2865:15:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2865:15:4;-1:-1:-1;;;;;2865:29:4;;2857:38;;;;;;-1:-1:-1;;5209:15:4;;5208:31;;5207:38;5199:47;;;;;;5265:13;;;;:7;:13;;;;;;;;:31;;;:18;;:31;;;;;:38;;;;;;;;:::i;:::-;-1:-1:-1;5318:29:4;;5335:11;;5329:4;;5318:29;;;;;5057:297;;;;:::o;7947:99::-;8021:13;;;;:7;:13;;;;;;;;;:18;;;;8014:25;;;;-1:-1:-1;;8014:25:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7996:6;;8021:18;;8014:25;;8021:18;8014:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7947:99;;;:::o;4607:148::-;2865:3;;;:15;;;-1:-1:-1;;;;;2865:15:4;;;;;;;;;;4669:4;;2884:10;;-1:-1:-1;;;;;2865:3:4;;:9;;:15;;;;;;;;;;;;;;;;:3;:15;;;5:2:-1;;;;30:1;27;20:12;5:2;2865:15:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2865:15:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2865:15:4;-1:-1:-1;;;;;2865:29:4;;2857:38;;;;;;4685:13;;;;:7;:13;;;;;;;;:25;;;;:18;;;;;:25;;;;:::i;:::-;-1:-1:-1;4725:23:4;;;;;;;;;;;;;;;4737:4;;4725:23;;4743:4;;4725:23;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;4725:23:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4607:148;;;:::o;4200:162::-;2865:3;;;:15;;;-1:-1:-1;;;;;2865:15:4;;;;;;;;;;4266:4;;2884:10;;-1:-1:-1;;;;;2865:3:4;;:9;;:15;;;;;;;;;;;;;;;;:3;:15;;;5:2:-1;;;;30:1;27;20:12;5:2;2865:15:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2865:15:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2865:15:4;-1:-1:-1;;;;;2865:29:4;;2857:38;;;;;;4282:13;;;;:7;:13;;;;;;;;:30;;;;:23;;;;;:30;;;;:::i;:::-;-1:-1:-1;4327:28:4;;;;;;;;;;;;;;;4344:4;;4327:28;;4350:4;;4327:28;;;;;;;;;;;;;;33:3:-1;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;3813:158:4;2865:3;;;:15;;;-1:-1:-1;;;;;2865:15:4;;;;;;;;;;3879:4;;2884:10;;-1:-1:-1;;;;;2865:3:4;;:9;;:15;;;;;;;;;;;;;;;;:3;:15;;;5:2:-1;;;;30:1;27;20:12;5:2;2865:15:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2865:15:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2865:15:4;-1:-1:-1;;;;;2865:29:4;;2857:38;;;;;;3895:13;;;;:7;:13;;;;;;;;;:21;;;:28;;;3938:26;;;;;;;3903:4;;3938:26;;;;;;;;;3813:158;;;:::o;6830:145::-;6881:9;6921:13;;;:7;:13;;;;;:20;;;:22;6945;;;;;6921;;6830:145::o;3293:149::-;2865:3;;;:15;;;-1:-1:-1;;;;;2865:15:4;;;;;;;;;;3356:4;;2884:10;;-1:-1:-1;;;;;2865:3:4;;:9;;:15;;;;;;;;;;;;;;;;:3;:15;;;5:2:-1;;;;30:1;27;20:12;5:2;2865:15:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2865:15:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2865:15:4;-1:-1:-1;;;;;2865:29:4;;2857:38;;;;;;3372:13;;;;:7;:13;;;;;;;;;:25;;-1:-1:-1;;3372:25:4;-1:-1:-1;;;;;3372:25:4;;;;;;;;3412:23;;;;;;;3372:13;;3412:23;;;;;;;;;3293:149;;;:::o;8620:108::-;8698:13;;;;:7;:13;;;;;;;;;:23;;8691:30;;;;;-1:-1:-1;;8691:30:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8674:5;;8698:23;;8691:30;;8698:23;8691:30;;;;;;;;;;;;;;;;;;;;;;;;1553:8134;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1553:8134:4;;;-1:-1:-1;1553:8134:4;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o"},"externals/strings.sol:strings":{"bin":"604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a7230582024a2b0f9f886001e5fd3db71aa4fb1e8f4254fc3db05e9d54265f7c101091af20029","bin-runtime":"73000000000000000000000000000000000000000030146080604052600080fd00a165627a7a7230582024a2b0f9f886001e5fd3db71aa4fb1e8f4254fc3db05e9d54265f7c101091af20029","srcmap":"2600:23355:5:-;;132:2:-1;166:7;155:9;146:7;137:37;252:7;246:14;243:1;238:23;232:4;229:33;270:1;265:20;;;;222:63;;265:20;274:9;222:63;;298:9;295:1;288:20;328:4;319:7;311:22;352:7;343;336:24","srcmap-runtime":"2600:23355:5:-;;;;;;;;"},"internals/claimable.sol:Claimable":{"bin":"6080604052348015600f57600080fd5b50603580601d6000396000f3006080604052600080fd00a165627a7a72305820395b628221b28dc04b0498f55415adf15a37b484bd593b1cfd29b4eab19dc5300029","bin-runtime":"6080604052600080fd00a165627a7a72305820395b628221b28dc04b0498f55415adf15a37b484bd593b1cfd29b4eab19dc5300029","srcmap":"917:797:6:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;917:797:6;;;;;;;","srcmap-runtime":"917:797:6:-;;;;;"},"internals/controllable.sol:Controllable":{"bin":"","bin-runtime":"","srcmap":"","srcmap-runtime":""},"internals/controller.sol:Controller":{"bin":"608060405234801561001057600080fd5b5060405160408061103a83398101604052805160209091015160008054600160a060020a031916600160a060020a0384161760a060020a60ff02191674010000000000000000000000000000000000000000831515810291909117918290558391839160ff91041615156100bb5760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b6040805160008152600160a060020a038416602082015281517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea5929181900390910190a150505050610f28806101126000396000f3006080604052600436106100b95763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166315b9a8b881146100be5780631785f53c146100e55780632121dc751461010857806324d7806c146101315780632b7832b3146101525780637048027514610167578063715018a6146101885780638da5cb5b1461019d578063a7fc7a07146101ce578063b242e534146101ef578063b429afeb14610215578063f6a74ed714610236575b600080fd5b3480156100ca57600080fd5b506100d3610257565b60408051918252519081900360200190f35b3480156100f157600080fd5b50610106600160a060020a036004351661025d565b005b34801561011457600080fd5b5061011d6102b6565b604080519115158252519081900360200190f35b34801561013d57600080fd5b5061011d600160a060020a03600435166102d7565b34801561015e57600080fd5b506100d36102f5565b34801561017357600080fd5b50610106600160a060020a03600435166102fb565b34801561019457600080fd5b50610106610351565b3480156101a957600080fd5b506101b261046c565b60408051600160a060020a039092168252519081900360200190f35b3480156101da57600080fd5b50610106600160a060020a036004351661047b565b3480156101fb57600080fd5b50610106600160a060020a036004351660243515156104e3565b34801561022157600080fd5b5061011d600160a060020a0360043516610722565b34801561024257600080fd5b50610106600160a060020a0360043516610740565b60045490565b610266336107a8565b15156102aa576040805160e560020a62461bcd0281526020600482015260166024820152600080516020610edd833981519152604482015290519081900360640190fd5b6102b3816107bc565b50565b60005474010000000000000000000000000000000000000000900460ff1690565b600160a060020a031660009081526001602052604090205460ff1690565b60025490565b610304336107a8565b1515610348576040805160e560020a62461bcd0281526020600482015260166024820152600080516020610edd833981519152604482015290519081900360640190fd5b6102b381610897565b61035a336107a8565b151561039e576040805160e560020a62461bcd0281526020600482015260166024820152600080516020610edd833981519152604482015290519081900360640190fd5b60005474010000000000000000000000000000000000000000900460ff161515610412576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916815560408051828152602081019290925280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1565b600054600160a060020a031690565b610484336102d7565b15156104da576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e2061646d696e00000000000000000000604482015290519081900360640190fd5b6102b381610b38565b6104ec336107a8565b1515610530576040805160e560020a62461bcd0281526020600482015260166024820152600080516020610edd833981519152604482015290519081900360640190fd5b60005474010000000000000000000000000000000000000000900460ff1615156105a4576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b600160a060020a038216151561062a576040805160e560020a62461bcd02815260206004820152602360248201527f6f776e65722063616e6e6f742062652073657420746f207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6000805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000831515908102919091179091556106aa5760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b60005460408051600160a060020a039283168152918416602083015280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1506000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a031660009081526003602052604090205460ff1690565b610749336102d7565b151561079f576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e2061646d696e00000000000000000000604482015290519081900360640190fd5b6102b381610ddc565b600054600160a060020a0390811691161490565b600160a060020a03811660009081526001602052604090205460ff16151561082e576040805160e560020a62461bcd02815260206004820181905260248201527f70726f7669646564206163636f756e74206973206e6f7420616e2061646d696e604482015290519081900360640190fd5b600160a060020a038116600081815260016020908152604091829020805460ff191690556002805460001901905581513381529081019290925280517f787a2e12f4a55b658b8f573c32432ee11a5e8b51677d1e1e937aaf6a0bb5776e9281900390910190a150565b600160a060020a03811660009081526001602052604090205460ff161561092d576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320616c726561647920616e206160448201527f646d696e00000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a03811660009081526003602052604090205460ff16156109c4576040805160e560020a62461bcd02815260206004820152602860248201527f70726f7669646564206163636f756e7420697320616c7265616479206120636f60448201527f6e74726f6c6c6572000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6109cd816107a8565b15610a48576040805160e560020a62461bcd02815260206004820152602560248201527f70726f7669646564206163636f756e7420697320616c7265616479207468652060448201527f6f776e6572000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0381161515610acd576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260016020818152604092839020805460ff1916831790556002805490920190915581513381529081019290925280517fc58b647b8ba5a8cab2f11f32673636cc1061324240972ed05e8cc005b81a4b7a9281900390910190a150565b600160a060020a03811660009081526001602052604090205460ff1615610bce576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320616c726561647920616e206160448201527f646d696e00000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a03811660009081526003602052604090205460ff1615610c65576040805160e560020a62461bcd02815260206004820152602860248201527f70726f7669646564206163636f756e7420697320616c7265616479206120636f60448201527f6e74726f6c6c6572000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b610c6e816107a8565b15610ce9576040805160e560020a62461bcd02815260206004820152602560248201527f70726f7669646564206163636f756e7420697320616c7265616479207468652060448201527f6f776e6572000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0381161515610d6e576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260036020908152604091829020805460ff1916600190811790915560048054909101905581513381529081019290925280517fb890d5abdcd5c2b61ce8bbc2cf6af9b6d7f7451830cbc85037cbdd182c86fe1d9281900390910190a150565b600160a060020a03811660009081526003602052604090205460ff161515610e73576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e74206973206e6f74206120636f6e74726f60448201527f6c6c657200000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260036020908152604091829020805460ff191690556004805460001901905581513381529081019290925280517fb6a283aaede08e15ef55c74e3014e30eb0c0040d4b156cccb77391268ea373949281900390910190a150560073656e646572206973206e6f7420616e206f776e657200000000000000000000a165627a7a72305820e3381d505607ee63056d5ba42a87e53a7b0dab423e773fa53f1e050ccb6949390029","bin-runtime":"6080604052600436106100b95763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166315b9a8b881146100be5780631785f53c146100e55780632121dc751461010857806324d7806c146101315780632b7832b3146101525780637048027514610167578063715018a6146101885780638da5cb5b1461019d578063a7fc7a07146101ce578063b242e534146101ef578063b429afeb14610215578063f6a74ed714610236575b600080fd5b3480156100ca57600080fd5b506100d3610257565b60408051918252519081900360200190f35b3480156100f157600080fd5b50610106600160a060020a036004351661025d565b005b34801561011457600080fd5b5061011d6102b6565b604080519115158252519081900360200190f35b34801561013d57600080fd5b5061011d600160a060020a03600435166102d7565b34801561015e57600080fd5b506100d36102f5565b34801561017357600080fd5b50610106600160a060020a03600435166102fb565b34801561019457600080fd5b50610106610351565b3480156101a957600080fd5b506101b261046c565b60408051600160a060020a039092168252519081900360200190f35b3480156101da57600080fd5b50610106600160a060020a036004351661047b565b3480156101fb57600080fd5b50610106600160a060020a036004351660243515156104e3565b34801561022157600080fd5b5061011d600160a060020a0360043516610722565b34801561024257600080fd5b50610106600160a060020a0360043516610740565b60045490565b610266336107a8565b15156102aa576040805160e560020a62461bcd0281526020600482015260166024820152600080516020610edd833981519152604482015290519081900360640190fd5b6102b3816107bc565b50565b60005474010000000000000000000000000000000000000000900460ff1690565b600160a060020a031660009081526001602052604090205460ff1690565b60025490565b610304336107a8565b1515610348576040805160e560020a62461bcd0281526020600482015260166024820152600080516020610edd833981519152604482015290519081900360640190fd5b6102b381610897565b61035a336107a8565b151561039e576040805160e560020a62461bcd0281526020600482015260166024820152600080516020610edd833981519152604482015290519081900360640190fd5b60005474010000000000000000000000000000000000000000900460ff161515610412576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916815560408051828152602081019290925280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1565b600054600160a060020a031690565b610484336102d7565b15156104da576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e2061646d696e00000000000000000000604482015290519081900360640190fd5b6102b381610b38565b6104ec336107a8565b1515610530576040805160e560020a62461bcd0281526020600482015260166024820152600080516020610edd833981519152604482015290519081900360640190fd5b60005474010000000000000000000000000000000000000000900460ff1615156105a4576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b600160a060020a038216151561062a576040805160e560020a62461bcd02815260206004820152602360248201527f6f776e65722063616e6e6f742062652073657420746f207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6000805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000831515908102919091179091556106aa5760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b60005460408051600160a060020a039283168152918416602083015280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1506000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a031660009081526003602052604090205460ff1690565b610749336102d7565b151561079f576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e2061646d696e00000000000000000000604482015290519081900360640190fd5b6102b381610ddc565b600054600160a060020a0390811691161490565b600160a060020a03811660009081526001602052604090205460ff16151561082e576040805160e560020a62461bcd02815260206004820181905260248201527f70726f7669646564206163636f756e74206973206e6f7420616e2061646d696e604482015290519081900360640190fd5b600160a060020a038116600081815260016020908152604091829020805460ff191690556002805460001901905581513381529081019290925280517f787a2e12f4a55b658b8f573c32432ee11a5e8b51677d1e1e937aaf6a0bb5776e9281900390910190a150565b600160a060020a03811660009081526001602052604090205460ff161561092d576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320616c726561647920616e206160448201527f646d696e00000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a03811660009081526003602052604090205460ff16156109c4576040805160e560020a62461bcd02815260206004820152602860248201527f70726f7669646564206163636f756e7420697320616c7265616479206120636f60448201527f6e74726f6c6c6572000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6109cd816107a8565b15610a48576040805160e560020a62461bcd02815260206004820152602560248201527f70726f7669646564206163636f756e7420697320616c7265616479207468652060448201527f6f776e6572000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0381161515610acd576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260016020818152604092839020805460ff1916831790556002805490920190915581513381529081019290925280517fc58b647b8ba5a8cab2f11f32673636cc1061324240972ed05e8cc005b81a4b7a9281900390910190a150565b600160a060020a03811660009081526001602052604090205460ff1615610bce576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320616c726561647920616e206160448201527f646d696e00000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a03811660009081526003602052604090205460ff1615610c65576040805160e560020a62461bcd02815260206004820152602860248201527f70726f7669646564206163636f756e7420697320616c7265616479206120636f60448201527f6e74726f6c6c6572000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b610c6e816107a8565b15610ce9576040805160e560020a62461bcd02815260206004820152602560248201527f70726f7669646564206163636f756e7420697320616c7265616479207468652060448201527f6f776e6572000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0381161515610d6e576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260036020908152604091829020805460ff1916600190811790915560048054909101905581513381529081019290925280517fb890d5abdcd5c2b61ce8bbc2cf6af9b6d7f7451830cbc85037cbdd182c86fe1d9281900390910190a150565b600160a060020a03811660009081526003602052604090205460ff161515610e73576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e74206973206e6f74206120636f6e74726f60448201527f6c6c657200000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260036020908152604091829020805460ff191690556004805460001901905581513381529081019290925280517fb6a283aaede08e15ef55c74e3014e30eb0c0040d4b156cccb77391268ea373949281900390910190a150560073656e646572206973206e6f7420616e206f776e657200000000000000000000a165627a7a72305820e3381d505607ee63056d5ba42a87e53a7b0dab423e773fa53f1e050ccb6949390029","srcmap":"1335:4616:8:-;;;2020:107;8:9:-1;5:2;;;30:1;27;20:12;5:2;2020:107:8;;;;;;;;;;;;;;;;;;;1527:6:10;:18;;-1:-1:-1;;;;;;1527:18:10;-1:-1:-1;;;;;1527:18:10;;;-1:-1:-1;;;;;;1555:32:10;;;;;;;;;;;;;;;2020:107:8;;;;1555:32:10;1671:15;;;1670:16;1666:78;;;1707:26;;;-1:-1:-1;;;;;1707:26:10;;;;;;;;;;;;;;;1666:78;1758:43;;;1787:1;1758:43;;-1:-1:-1;;;;;1758:43:10;;;;;;;;;;;;;;;;;;;1456:352;;2020:107:8;;1335:4616;;;;;;","srcmap-runtime":"1335:4616:8:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3634:96;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3634:96:8;;;;;;;;;;;;;;;;;;;;2814:97;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2814:97:8;-1:-1:-1;;;;;2814:97:8;;;;;;;3149:94:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3149:94:10;;;;;;;;;;;;;;;;;;;;;;3834:104:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3834:104:8;-1:-1:-1;;;;;3834:104:8;;;;;2963:86;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2963:86:8;;;;2594:91;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2594:91:8;-1:-1:-1;;;;;2594:91:8;;;;;3519:306:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3519:306:10;;;;3908:77;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3908:77:10;;;;;;;;-1:-1:-1;;;;;3908:77:10;;;;;;;;;;;;;;3187:101:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3187:101:8;-1:-1:-1;;;;;3187:101:8;;;;;2231:801:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2231:801:10;-1:-1:-1;;;;;2231:801:10;;;;;;;;;4050:114:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4050:114:8;-1:-1:-1;;;;;4050:114:8;;;;;3432:107;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3432:107:8;-1:-1:-1;;;;;3432:107:8;;;;;3634:96;3707:16;;3634:96;:::o;2814:97::-;1924:20:10;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1916:55:10;;;;;;;;;;;;;;;2882:22:8;2895:8;2882:12;:22::i;:::-;2814:97;:::o;3149:94:10:-;3198:4;3221:15;;;;;;;3149:94::o;3834:104:8:-;-1:-1:-1;;;;;3913:18:8;3890:4;3913:18;;;:8;:18;;;;;;;;;3834:104::o;2963:86::-;3031:11;;2963:86;:::o;2594:91::-;1924:20:10;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1916:55:10;;;;;;;;;;;;;;;2659:19:8;2669:8;2659:9;:19::i;3519:306:10:-;1924:20;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1916:55:10;;;;;;;;;;;;;;;3640:15;;;;;;;3632:57;;;;;;;-1:-1:-1;;;;;3632:57:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;3760:1;3743:19;;-1:-1:-1;;3743:19:10;;;3778:40;;;;;;;;;;;;;;;;;;;;;;;;;3519:306::o;3908:77::-;3946:7;3972:6;-1:-1:-1;;;;;3972:6:10;3908:77;:::o;3187:101:8:-;2226:19;2234:10;2226:7;:19::i;:::-;2218:54;;;;;;;-1:-1:-1;;;;;2218:54:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;3257:24;3272:8;3257:14;:24::i;2231:801:10:-;1924:20;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1916:55:10;;;;;;;;;;;;;;;2388:15;;;;;;;2380:57;;;;;;;-1:-1:-1;;;;;2380:57:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2518:22:10;;;;2510:70;;;;;-1:-1:-1;;;;;2510:70:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2665:15;:31;;-1:-1:-1;;2665:31:10;;;;;;;;;;;;;;;2775:75;;2814:25;;;-1:-1:-1;;;;;2814:25:10;;;;;;;;;;;;;;;2775:75;2931:6;;2910:38;;;-1:-1:-1;;;;;2931:6:10;;;2910:38;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3008:6:10;:17;;-1:-1:-1;;3008:17:10;-1:-1:-1;;;;;3008:17:10;;;;;;;;;;2231:801::o;4050:114:8:-;-1:-1:-1;;;;;4134:23:8;4111:4;4134:23;;;:13;:23;;;;;;;;;4050:114::o;3432:107::-;2226:19;2234:10;2226:7;:19::i;:::-;2218:54;;;;;;;-1:-1:-1;;;;;2218:54:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;3505:27;3523:8;3505:17;:27::i;4091:107:10:-;4150:4;4185:6;-1:-1:-1;;;;;4185:6:10;;;4173:18;;;;4091:107::o;4791:236:8:-;-1:-1:-1;;;;;4857:18:8;;;;;;:8;:18;;;;;;;;4849:63;;;;;;;-1:-1:-1;;;;;4849:63:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4922:18:8;;4943:5;4922:18;;;:8;:18;;;;;;;;;:26;;-1:-1:-1;;4922:26:8;;;4958:11;:13;;-1:-1:-1;;4958:13:8;;;4986:34;;4999:10;4986:34;;;;;;;;;;;;;;;;;;;;;4791:236;:::o;4232:482::-;-1:-1:-1;;;;;4296:18:8;;;;;;:8;:18;;;;;;;;4295:19;4287:68;;;;;-1:-1:-1;;;;;4287:68:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4374:23:8;;;;;;:13;:23;;;;;;;;4373:24;4365:77;;;;;-1:-1:-1;;;;;4365:77:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4461:18;4470:8;4461;:18::i;:::-;4460:19;4452:69;;;;;-1:-1:-1;;;;;4452:69:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4539:22:8;;;;4531:71;;;;;-1:-1:-1;;;;;4531:71:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4612:18:8;;;;;;4633:4;4612:18;;;;;;;;;:25;;-1:-1:-1;;4612:25:8;;;;;4647:11;:13;;;;;;;;4675:32;;4686:10;4675:32;;;;;;;;;;;;;;;;;;;;;4232:482;:::o;5100:502::-;-1:-1:-1;;;;;5169:18:8;;;;;;:8;:18;;;;;;;;5168:19;5160:68;;;;;-1:-1:-1;;;;;5160:68:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5247:23:8;;;;;;:13;:23;;;;;;;;5246:24;5238:77;;;;;-1:-1:-1;;;;;5238:77:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5334:18;5343:8;5334;:18::i;:::-;5333:19;5325:69;;;;;-1:-1:-1;;;;;5325:69:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5412:22:8;;;;5404:71;;;;;-1:-1:-1;;;;;5404:71:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5485:23:8;;;;;;:13;:23;;;;;;;;;:30;;-1:-1:-1;;5485:30:8;5511:4;5485:30;;;;;;5525:16;:18;;;;;;;5558:37;;5574:10;5558:37;;;;;;;;;;;;;;;;;;;;;5100:502;:::o;5684:265::-;-1:-1:-1;;;;;5755:23:8;;;;;;:13;:23;;;;;;;;5747:72;;;;;;;-1:-1:-1;;;;;5747:72:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5829:23:8;;5855:5;5829:23;;;:13;:23;;;;;;;;;:31;;-1:-1:-1;;5829:31:8;;;5870:16;:18;;-1:-1:-1;;5870:18:8;;;5903:39;;5921:10;5903:39;;;;;;;;;;;;;;;;;;;;;5684:265;:::o"},"internals/controller.sol:IController":{"bin":"","bin-runtime":"","srcmap":"","srcmap-runtime":""},"internals/ensResolvable.sol:ENSResolvable":{"bin":"","bin-runtime":"","srcmap":"","srcmap-runtime":""},"internals/ownable.sol:Ownable":{"bin":"","bin-runtime":"","srcmap":"","srcmap-runtime":""},"internals/tokenWhitelist.sol:ITokenWhitelist":{"bin":"","bin-runtime":"","srcmap":"","srcmap-runtime":""},"internals/tokenWhitelist.sol:TokenWhitelist":{"bin":"608060405234801561001057600080fd5b5060405160c08061189f83398101604090815281516020830151918301516060840151608085015160a09095015160018054600160a060020a03808716600160a060020a03199283161792839055600080548316938216939093179092556002859055600380548915157401000000000000000000000000000000000000000090810260a060020a60ff0219958816929094169190911793909316919091179081905594969394929392849184910460ff1615156101055760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b6040805160008152600160a060020a038416602082015281517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea5929181900390910190a15050600794909455505060068054600160a060020a031916600160a060020a03909316929092179091555061171a9050806101856000396000f3006080604052600436106100cf5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631f69565f81146100d45780632121dc751461019f57806334c73edc146101c85780633efec5e91461021d578063443dd2a4146102325780636c3824ef14610297578063715018a6146102b75780637d73b231146102cc57806380cc0dda146102fd5780638da5cb5b14610324578063b242e53414610339578063d545782e1461035f578063e2b4ce9714610386578063e9cbd8221461039b575b600080fd5b3480156100e057600080fd5b506100f5600160a060020a03600435166103b0565b6040805160208082018990529181018790528515156060820152841515608082015283151560a082015260c0810183905260e08082528951908201528851909182916101008301918b019080838360005b8381101561015e578181015183820152602001610146565b50505050905090810190601f16801561018b5780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b3480156101ab57600080fd5b506101b46104ac565b604080519115158252519081900360200190f35b3480156101d457600080fd5b5061021b602460048035828101929082013591813580830192908201359160443580830192908201359160643580830192908201359160843591820191013560a4356104ce565b005b34801561022957600080fd5b506100f5610965565b34801561023e57600080fd5b50610247610a61565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561028357818101518382015260200161026b565b505050509050019250505060405180910390f35b3480156102a357600080fd5b5061021b6004803560248101910135610ac3565b3480156102c357600080fd5b5061021b610d62565b3480156102d857600080fd5b506102e1610e8f565b60408051600160a060020a039092168252519081900360200190f35b34801561030957600080fd5b50610312610e9e565b60408051918252519081900360200190f35b34801561033057600080fd5b506102e1610ea4565b34801561034557600080fd5b5061021b600160a060020a03600435166024351515610eb3565b34801561036b57600080fd5b5061021b600160a060020a0360043516602435604435611104565b34801561039257600080fd5b50610312611266565b3480156103a757600080fd5b506102e161126c565b600160a060020a0381166000908152600460208181526040808420600180820154600280840154600385015497850154855487516101009682161587026000190190911693909304601f81018990048902840189019097528683526060999889988998899889988998919788979296929560ff808216969382048116956201000090920416939289919083018282801561048b5780601f106104605761010080835404028352916020019161048b565b820191906000526020600020905b81548152906001019060200180831161046e57829003601f168201915b50505050509650975097509750975097509750975050919395979092949650565b60035474010000000000000000000000000000000000000000900460ff165b90565b600060606104db3361127b565b1515610531576040805160e560020a62461bcd02815260206004820152601a60248201527f73656e646572206973206e6f74206120636f6e74726f6c6c6572000000000000604482015290519081900360640190fd5b8b8a14801561053f57508b88145b801561054a57508b86145b801561055557508b86145b15156105ab576040805160e560020a62461bcd02815260206004820152601e60248201527f706172616d65746572206c656e6774687320646f206e6f74206d617463680000604482015290519081900360640190fd5b600091505b8b82101561095657600460008e8e858181106105c857fe5b60209081029290920135600160a060020a03168352508101919091526040016000206003015460ff1615610646576040805160e560020a62461bcd02815260206004820152601760248201527f746f6b656e20616c726561647920617661696c61626c65000000000000000000604482015290519081900360640190fd5b61066c6106678c8c8581811061065857fe5b6020029190910135905061132d565b611359565b905060e0604051908101604052808281526020018a8a85818110151561068e57fe5b9050602002013581526020016000815260200160011515815260200188888581811015156106b857fe5b602090810292909201351515835250018686858181106106d457fe5b60209081029290920135151583525001849052600460008f8f868181106106f757fe5b90506020020135600160a060020a0316600160a060020a0316600160a060020a0316815260200190815260200160002060008201518160000190805190602001906107439291906115cf565b5060208201516001820155604082015160028201556060820151600382018054608085015160a08601511515620100000262ff0000199115156101000261ff001995151560ff199094169390931794909416919091171691909117905560c09091015160049091015560058d8d848181106107ba57fe5b8354600181018555600094855260209485902001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0395909202939093013593909316929092179055507f1802e89da3f6ef84e024e37454c226b1e13bf846ce71cd2a1d24faef9cbf779b338e8e8581811061083157fe5b90506020020135600160a060020a0316838c8c87818110151561085057fe5b905060200201358b8b88818110151561086557fe5b9050602002013515158a8a89818110151561087c57fe5b9050602002013515156040518087600160a060020a0316600160a060020a0316815260200186600160a060020a0316600160a060020a03168152602001806020018581526020018415151515815260200183151515158152602001828103825286818151815260200191508051906020019080838360005b8381101561090c5781810151838201526020016108f4565b50505050905090810190601f1680156109395780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390a16001909101906105b0565b50505050505050505050505050565b600654600160a060020a03166000908152600460208181526040808420600180820154600280840154600385015497850154855487516101009682161587026000190190911693909304601f81018990048902840189019097528683526060999889988998899889988998919788979296929560ff8082169693820481169562010000909204169392899190830182828015610a425780601f10610a1757610100808354040283529160200191610a42565b820191906000526020600020905b815481529060010190602001808311610a2557829003601f168201915b5050505050965097509750975097509750975097505090919293949596565b60606005805480602002602001604051908101604052809291908181526020018280548015610ab957602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610a9b575b5050505050905090565b6000806000610ad13361127b565b1515610b27576040805160e560020a62461bcd02815260206004820152601a60248201527f73656e646572206973206e6f74206120636f6e74726f6c6c6572000000000000604482015290519081900360640190fd5b600092505b83831015610d5b5760046000868686818110610b4457fe5b60209081029290920135600160a060020a03168352508101919091526040016000206003015460ff161515610bc3576040805160e560020a62461bcd02815260206004820152601660248201527f746f6b656e206973206e6f7420617661696c61626c6500000000000000000000604482015290519081900360640190fd5b848484818110610bcf57fe5b60209081029290920135600160a060020a03166000818152600490935260408320909450919050610c00828261164d565b506000600182018190556002820181905560038201805462ffffff19169055600490910181905590505b600554610c3e90600163ffffffff6113b316565b811015610cf95781600160a060020a0316600582815481101515610c5e57fe5b600091825260209091200154600160a060020a03161415610cf15760058054610c8e90600163ffffffff6113b316565b81548110610c9857fe5b60009182526020909120015460058054600160a060020a039092169183908110610cbe57fe5b9060005260206000200160006101000a815481600160a060020a030219169083600160a060020a03160217905550610cf9565b600101610c2a565b6005805490610d0c906000198301611694565b5060408051338152600160a060020a038416602082015281517f703f7e3f084d5b8dcc12fddcfd9a70d65b6b21ec7659e4608dbaf4419ede3ad0929181900390910190a1600190920191610b2c565b5050505050565b610d6b336113ca565b1515610dc1576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e206f776e657200000000000000000000604482015290519081900360640190fd5b60035474010000000000000000000000000000000000000000900460ff161515610e35576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b6003805473ffffffffffffffffffffffffffffffffffffffff19169055604080516000808252602082015281517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea5929181900390910190a1565b600154600160a060020a031690565b60075490565b600354600160a060020a031690565b610ebc336113ca565b1515610f12576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e206f776e657200000000000000000000604482015290519081900360640190fd5b60035474010000000000000000000000000000000000000000900460ff161515610f86576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b600160a060020a038216151561100c576040805160e560020a62461bcd02815260206004820152602360248201527f6f776e65722063616e6e6f742062652073657420746f207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6003805474ff00000000000000000000000000000000000000001916740100000000000000000000000000000000000000008315159081029190911790915561108c5760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b60035460408051600160a060020a039283168152918416602083015280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1506003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60006111116007546113de565b905061111c3361127b565b8061112f575033600160a060020a038216145b1515611185576040805160e560020a62461bcd02815260206004820152601b60248201527f656974686572206f7261636c65206f7220636f6e74726f6c6c65720000000000604482015290519081900360640190fd5b600160a060020a03841660009081526004602052604090206003015460ff1615156111fa576040805160e560020a62461bcd02815260206004820152601660248201527f746f6b656e206973206e6f7420617661696c61626c6500000000000000000000604482015290519081900360640190fd5b600160a060020a03841660008181526004602081815260409283902060028101889055909101859055815133815290810192909252818101859052517fdb3a4cfb4cd8ac94343ff7440cee8d05ade309056203f0e53ca49b6db8197c7d9181900360600190a150505050565b60025490565b600654600160a060020a031690565b60006112886002546113de565b600160a060020a031663b429afeb836040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b1580156112fb57600080fd5b505af115801561130f573d6000803e3d6000fd5b505050506040513d602081101561132557600080fd5b505192915050565b6113356116bd565b6040516020810160405282815280602083015250611352826114d5565b8152919050565b606080600083600001516040519080825280601f01601f191660200182016040528015611390578160200160208202803883390190505b5091506020820190506113ac818560200151866000015161158b565b5092915050565b600080838311156113c357600080fd5b5050900390565b600354600160a060020a0390811691161490565b60008054604080517f0178b8bf000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691630178b8bf9160248082019260209290919082900301818787803b15801561144557600080fd5b505af1158015611459573d6000803e3d6000fd5b505050506040513d602081101561146f57600080fd5b5051604080517f3b3b57de000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691633b3b57de916024808201926020929091908290030181600087803b1580156112fb57600080fd5b6000808215156114e85760009150611585565b6fffffffffffffffffffffffffffffffff8316151561151b57601001700100000000000000000000000000000000830492505b67ffffffffffffffff8316151561153e5760080168010000000000000000830492505b63ffffffff8316151561155957600401640100000000830492505b61ffff831615156115705760020162010000830492505b60ff8316151561157e576001015b8060200391505b50919050565b60005b602082106115b0578251845260209384019390920191601f199091019061158e565b50905182516020929092036101000a6000190180199091169116179052565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061161057805160ff191683800117855561163d565b8280016001018555821561163d579182015b8281111561163d578251825591602001919060010190611622565b506116499291506116d4565b5090565b50805460018160011615610100020316600290046000825580601f106116735750611691565b601f01602090049060005260206000209081019061169191906116d4565b50565b8154818355818111156116b8576000838152602090206116b89181019083016116d4565b505050565b604080518082019091526000808252602082015290565b6104cb91905b8082111561164957600081556001016116da5600a165627a7a7230582093b6ea30833eac9793938fe8dab81d00e6ef1dbb9489c89e10258ba8847c4c870029","bin-runtime":"6080604052600436106100cf5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631f69565f81146100d45780632121dc751461019f57806334c73edc146101c85780633efec5e91461021d578063443dd2a4146102325780636c3824ef14610297578063715018a6146102b75780637d73b231146102cc57806380cc0dda146102fd5780638da5cb5b14610324578063b242e53414610339578063d545782e1461035f578063e2b4ce9714610386578063e9cbd8221461039b575b600080fd5b3480156100e057600080fd5b506100f5600160a060020a03600435166103b0565b6040805160208082018990529181018790528515156060820152841515608082015283151560a082015260c0810183905260e08082528951908201528851909182916101008301918b019080838360005b8381101561015e578181015183820152602001610146565b50505050905090810190601f16801561018b5780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b3480156101ab57600080fd5b506101b46104ac565b604080519115158252519081900360200190f35b3480156101d457600080fd5b5061021b602460048035828101929082013591813580830192908201359160443580830192908201359160643580830192908201359160843591820191013560a4356104ce565b005b34801561022957600080fd5b506100f5610965565b34801561023e57600080fd5b50610247610a61565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561028357818101518382015260200161026b565b505050509050019250505060405180910390f35b3480156102a357600080fd5b5061021b6004803560248101910135610ac3565b3480156102c357600080fd5b5061021b610d62565b3480156102d857600080fd5b506102e1610e8f565b60408051600160a060020a039092168252519081900360200190f35b34801561030957600080fd5b50610312610e9e565b60408051918252519081900360200190f35b34801561033057600080fd5b506102e1610ea4565b34801561034557600080fd5b5061021b600160a060020a03600435166024351515610eb3565b34801561036b57600080fd5b5061021b600160a060020a0360043516602435604435611104565b34801561039257600080fd5b50610312611266565b3480156103a757600080fd5b506102e161126c565b600160a060020a0381166000908152600460208181526040808420600180820154600280840154600385015497850154855487516101009682161587026000190190911693909304601f81018990048902840189019097528683526060999889988998899889988998919788979296929560ff808216969382048116956201000090920416939289919083018282801561048b5780601f106104605761010080835404028352916020019161048b565b820191906000526020600020905b81548152906001019060200180831161046e57829003601f168201915b50505050509650975097509750975097509750975050919395979092949650565b60035474010000000000000000000000000000000000000000900460ff165b90565b600060606104db3361127b565b1515610531576040805160e560020a62461bcd02815260206004820152601a60248201527f73656e646572206973206e6f74206120636f6e74726f6c6c6572000000000000604482015290519081900360640190fd5b8b8a14801561053f57508b88145b801561054a57508b86145b801561055557508b86145b15156105ab576040805160e560020a62461bcd02815260206004820152601e60248201527f706172616d65746572206c656e6774687320646f206e6f74206d617463680000604482015290519081900360640190fd5b600091505b8b82101561095657600460008e8e858181106105c857fe5b60209081029290920135600160a060020a03168352508101919091526040016000206003015460ff1615610646576040805160e560020a62461bcd02815260206004820152601760248201527f746f6b656e20616c726561647920617661696c61626c65000000000000000000604482015290519081900360640190fd5b61066c6106678c8c8581811061065857fe5b6020029190910135905061132d565b611359565b905060e0604051908101604052808281526020018a8a85818110151561068e57fe5b9050602002013581526020016000815260200160011515815260200188888581811015156106b857fe5b602090810292909201351515835250018686858181106106d457fe5b60209081029290920135151583525001849052600460008f8f868181106106f757fe5b90506020020135600160a060020a0316600160a060020a0316600160a060020a0316815260200190815260200160002060008201518160000190805190602001906107439291906115cf565b5060208201516001820155604082015160028201556060820151600382018054608085015160a08601511515620100000262ff0000199115156101000261ff001995151560ff199094169390931794909416919091171691909117905560c09091015160049091015560058d8d848181106107ba57fe5b8354600181018555600094855260209485902001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0395909202939093013593909316929092179055507f1802e89da3f6ef84e024e37454c226b1e13bf846ce71cd2a1d24faef9cbf779b338e8e8581811061083157fe5b90506020020135600160a060020a0316838c8c87818110151561085057fe5b905060200201358b8b88818110151561086557fe5b9050602002013515158a8a89818110151561087c57fe5b9050602002013515156040518087600160a060020a0316600160a060020a0316815260200186600160a060020a0316600160a060020a03168152602001806020018581526020018415151515815260200183151515158152602001828103825286818151815260200191508051906020019080838360005b8381101561090c5781810151838201526020016108f4565b50505050905090810190601f1680156109395780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390a16001909101906105b0565b50505050505050505050505050565b600654600160a060020a03166000908152600460208181526040808420600180820154600280840154600385015497850154855487516101009682161587026000190190911693909304601f81018990048902840189019097528683526060999889988998899889988998919788979296929560ff8082169693820481169562010000909204169392899190830182828015610a425780601f10610a1757610100808354040283529160200191610a42565b820191906000526020600020905b815481529060010190602001808311610a2557829003601f168201915b5050505050965097509750975097509750975097505090919293949596565b60606005805480602002602001604051908101604052809291908181526020018280548015610ab957602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610a9b575b5050505050905090565b6000806000610ad13361127b565b1515610b27576040805160e560020a62461bcd02815260206004820152601a60248201527f73656e646572206973206e6f74206120636f6e74726f6c6c6572000000000000604482015290519081900360640190fd5b600092505b83831015610d5b5760046000868686818110610b4457fe5b60209081029290920135600160a060020a03168352508101919091526040016000206003015460ff161515610bc3576040805160e560020a62461bcd02815260206004820152601660248201527f746f6b656e206973206e6f7420617661696c61626c6500000000000000000000604482015290519081900360640190fd5b848484818110610bcf57fe5b60209081029290920135600160a060020a03166000818152600490935260408320909450919050610c00828261164d565b506000600182018190556002820181905560038201805462ffffff19169055600490910181905590505b600554610c3e90600163ffffffff6113b316565b811015610cf95781600160a060020a0316600582815481101515610c5e57fe5b600091825260209091200154600160a060020a03161415610cf15760058054610c8e90600163ffffffff6113b316565b81548110610c9857fe5b60009182526020909120015460058054600160a060020a039092169183908110610cbe57fe5b9060005260206000200160006101000a815481600160a060020a030219169083600160a060020a03160217905550610cf9565b600101610c2a565b6005805490610d0c906000198301611694565b5060408051338152600160a060020a038416602082015281517f703f7e3f084d5b8dcc12fddcfd9a70d65b6b21ec7659e4608dbaf4419ede3ad0929181900390910190a1600190920191610b2c565b5050505050565b610d6b336113ca565b1515610dc1576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e206f776e657200000000000000000000604482015290519081900360640190fd5b60035474010000000000000000000000000000000000000000900460ff161515610e35576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b6003805473ffffffffffffffffffffffffffffffffffffffff19169055604080516000808252602082015281517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea5929181900390910190a1565b600154600160a060020a031690565b60075490565b600354600160a060020a031690565b610ebc336113ca565b1515610f12576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e206f776e657200000000000000000000604482015290519081900360640190fd5b60035474010000000000000000000000000000000000000000900460ff161515610f86576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b600160a060020a038216151561100c576040805160e560020a62461bcd02815260206004820152602360248201527f6f776e65722063616e6e6f742062652073657420746f207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6003805474ff00000000000000000000000000000000000000001916740100000000000000000000000000000000000000008315159081029190911790915561108c5760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b60035460408051600160a060020a039283168152918416602083015280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1506003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60006111116007546113de565b905061111c3361127b565b8061112f575033600160a060020a038216145b1515611185576040805160e560020a62461bcd02815260206004820152601b60248201527f656974686572206f7261636c65206f7220636f6e74726f6c6c65720000000000604482015290519081900360640190fd5b600160a060020a03841660009081526004602052604090206003015460ff1615156111fa576040805160e560020a62461bcd02815260206004820152601660248201527f746f6b656e206973206e6f7420617661696c61626c6500000000000000000000604482015290519081900360640190fd5b600160a060020a03841660008181526004602081815260409283902060028101889055909101859055815133815290810192909252818101859052517fdb3a4cfb4cd8ac94343ff7440cee8d05ade309056203f0e53ca49b6db8197c7d9181900360600190a150505050565b60025490565b600654600160a060020a031690565b60006112886002546113de565b600160a060020a031663b429afeb836040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b1580156112fb57600080fd5b505af115801561130f573d6000803e3d6000fd5b505050506040513d602081101561132557600080fd5b505192915050565b6113356116bd565b6040516020810160405282815280602083015250611352826114d5565b8152919050565b606080600083600001516040519080825280601f01601f191660200182016040528015611390578160200160208202803883390190505b5091506020820190506113ac818560200151866000015161158b565b5092915050565b600080838311156113c357600080fd5b5050900390565b600354600160a060020a0390811691161490565b60008054604080517f0178b8bf000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691630178b8bf9160248082019260209290919082900301818787803b15801561144557600080fd5b505af1158015611459573d6000803e3d6000fd5b505050506040513d602081101561146f57600080fd5b5051604080517f3b3b57de000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691633b3b57de916024808201926020929091908290030181600087803b1580156112fb57600080fd5b6000808215156114e85760009150611585565b6fffffffffffffffffffffffffffffffff8316151561151b57601001700100000000000000000000000000000000830492505b67ffffffffffffffff8316151561153e5760080168010000000000000000830492505b63ffffffff8316151561155957600401640100000000830492505b61ffff831615156115705760020162010000830492505b60ff8316151561157e576001015b8060200391505b50919050565b60005b602082106115b0578251845260209384019390920191601f199091019061158e565b50905182516020929092036101000a6000190180199091169116179052565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061161057805160ff191683800117855561163d565b8280016001018555821561163d579182015b8281111561163d578251825591602001919060010190611622565b506116499291506116d4565b5090565b50805460018160011615610100020316600290046000825580601f106116735750611691565b601f01602090049060005260206000209081019061169191906116d4565b50565b8154818355818111156116b8576000838152602090206116b89181019083016116d4565b505050565b604080518082019091526000808252602082015290565b6104cb91905b8082111561164957600081556001016116da5600a165627a7a7230582093b6ea30833eac9793938fe8dab81d00e6ef1dbb9489c89e10258ba8847c4c870029","srcmap":"1593:8239:11:-;;;3164:336;8:9:-1;5:2;;;30:1;27;20:12;5:2;3164:336:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1312:12:9;:23;;-1:-1:-1;;;;;1312:23:9;;;-1:-1:-1;;;;;;1312:23:9;;;;;;;;:12;1345:24;;;;1356:12;;;1345:24;;;;;;;1334:15:7;:38;;;1527:6:10;:18;;1555:32;;;;;;;-1:-1:-1;;;;;;1527:18:10;;;;;;;;;;;1555:32;;;;;;;;;;;;3164:336:11;;;;;;;;;;;1671:15:10;1555:32;1671:15;1670:16;1666:78;;;1707:26;;;-1:-1:-1;;;;;1707:26:10;;;;;;;;;;;;;;;1666:78;1758:43;;;1787:1;1758:43;;-1:-1:-1;;;;;1758:43:10;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3420:11:11;:30;;;;-1:-1:-1;;3460:11:11;:33;;-1:-1:-1;;;;;;3460:33:11;-1:-1:-1;;;;;3460:33:11;;;;;;;;;;-1:-1:-1;1593:8239:11;;-1:-1:-1;1593:8239:11;;-1:-1:-1;1593:8239:11;;","srcmap-runtime":"1593:8239:11:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7993:325;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7993:325:11;-1:-1:-1;;;;;7993:325:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-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;7993:325:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3149:94:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3149:94:10;;;;;;;;;;;;;;;;;;;;;;4064:1439:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4064:1439:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8810:369;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8810:369:11;;;;9302:105;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9302:105:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;9302:105:11;;;;;;;;;;;;;;;;;5630:1031;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5630:1031:11;;;;;;;;;;;;3519:306:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3519:306:10;;;;1468:91:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1468:91:9;;;;;;;;-1:-1:-1;;;;;1468:91:9;;;;;;;;;;;;;;9741:89:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9741:89:11;;;;;;;;;;;;;;;;;;;;3908:77:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3908:77:10;;;;2231:801;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2231:801:10;-1:-1:-1;;;;;2231:801:10;;;;;;;;;6938:514:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6938:514:11;-1:-1:-1;;;;;6938:514:11;;;;;;;;;1629:97:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1629:97:7;;;;9538:89:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9538:89:11;;;;7993:325;-1:-1:-1;;;;;8139:17:11;;8058:7;8139:17;;;:13;:17;;;;;;;;8192:19;;;;;8213:14;;;;;8229:19;;;;8290:20;;;;8166:145;;;;8229:19;8166:145;;;;;;-1:-1:-1;;8166:145:11;;;;;;;;;;;;;;;;;;;;;;;;;;8050:6;;8058:7;;;;;;;;;;;8139:17;;;;8192:19;;8213:14;;8229:19;;;;;8250:18;;;;;;8270;;;;;;8290:20;8139:17;;8166:145;;;8139:17;8166:145;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7993:325;;;;;;;;;;:::o;3149:94:10:-;3221:15;;;;;;;3149:94;;:::o;4064:1439:11:-;4555:6;4801:20;1489:25:7;1503:10;1489:13;:25::i;:::-;1481:64;;;;;;;-1:-1:-1;;;;;1481:64:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;4298:33:11;;;:72;;;;-1:-1:-1;4335:35:11;;;4298:72;:110;;;;-1:-1:-1;4374:34:11;;;4298:110;:148;;;;-1:-1:-1;4412:34:11;;;4298:148;4290:191;;;;;;;-1:-1:-1;;;;;4290:191:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;4564:1;4555:10;;4550:947;4567:18;;;4550:947;;;4678:13;:25;4692:7;;4700:1;4692:10;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4692:10:11;4678:25;;-1:-1:-1;4678:25:11;;;;;;;;-1:-1:-1;4678:25:11;:35;;;;;4677:36;4669:72;;;;;-1:-1:-1;;;;;4669:72:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;4824:35;:24;:8;;4833:1;4824:11;;;;;;;;;;;;;;;-1:-1:-1;4824:22:11;:24::i;:::-;:33;:35::i;:::-;4801:58;;4949:284;;;;;;;;;4982:6;4949:284;;;;5018:10;;5029:1;5018:13;;;;;;;;;;;;;;;4949:284;;;;5056:1;4949:284;;;;5087:4;4949:284;;;;;;5120:9;;5130:1;5120:12;;;;;;;;;;;;;;;;;;;;4949:284;;-1:-1:-1;4949:284:11;5160:9;;5170:1;5160:12;;;;;;;;;;;;;;;;;;4949:284;;-1:-1:-1;4949:284:11;;;;4921:13;-1:-1:-1;4935:7:11;;4943:1;4935:10;;;;;;;;;;;;;-1:-1:-1;;;;;4935:10:11;-1:-1:-1;;;;;4921:25:11;-1:-1:-1;;;;;4921:25:11;;;;;;;;;;;;:312;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;4921:312:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4921:312:11;;;;;-1:-1:-1;;4921:312:11;;;-1:-1:-1;;4921:312:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5305:18;5329:7;;5337:1;5329:10;;;;;;;27::-1;;39:1;23:18;;45:23;;-1:-1;5305:35:11;;;5329:10;5305:35;;;;;;;-1:-1:-1;;5305:35:11;-1:-1:-1;;;;;5329:10:11;;;;;;;;;;;;;5305:35;;;;;;-1:-1:-1;5401:85:11;5412:10;5424:7;;5432:1;5424:10;;;;;;;;;;;;;-1:-1:-1;;;;;5424:10:11;5436:6;5444:10;;5455:1;5444:13;;;;;;;;;;;;;;;5459:9;;5469:1;5459:12;;;;;;;;;;;;;;;;;5473:9;;5483:1;5473:12;;;;;;;;;;;;;;;;;5401:85;;;;-1:-1:-1;;;;;5401:85:11;-1:-1:-1;;;;;5401:85:11;;;;;;-1:-1:-1;;;;;5401:85:11;-1:-1:-1;;;;;5401:85:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;5401:85:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4587:3;;;;;4550:947;;;4064:1439;;;;;;;;;;;;;:::o;8810:369::-;8970:11;;-1:-1:-1;;;;;8970:11:11;8870:7;8956:26;;;:13;:26;;;;;;;;8970:11;9023:24;;;;9049:19;;;;;9070:24;;;;9146:25;;;;8992:180;;;;8970:11;8992:180;;;;;;-1:-1:-1;;8992:180:11;;;;;;;;;;;;;;;;;;;;;;;;;;8862:6;;8870:7;;;;;;;;;;;8956:26;;;;9023:24;;9049:19;;9070:24;;;;;9096:23;;;;;;9121;;;;;;9146:25;8956:26;;8992:180;;;8956:26;8992:180;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8810:369;;;;;;;;:::o;9302:105::-;9354:9;9382:18;9375:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9375:25:11;;;;;;;;;;;;;;;;;;;;;;;9302:105;:::o;5630:1031::-;5813:6;6057:13;6246:6;1489:25:7;1503:10;1489:13;:25::i;:::-;1481:64;;;;;;;-1:-1:-1;;;;;1481:64:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;5822:1:11;5813:10;;5808:847;5825:18;;;5808:847;;;5941:13;:25;5955:7;;5963:1;5955:10;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5955:10:11;5941:25;;-1:-1:-1;5941:25:11;;;;;;;;-1:-1:-1;5941:25:11;:35;;;;;5933:70;;;;;;;-1:-1:-1;;;;;5933:70:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;6073:7;;6081:1;6073:10;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6073:10:11;6144:20;;;;:13;:20;;;;;;6073:10;;-1:-1:-1;6144:20:11;;-1:-1:-1;6137:27:11;6144:20;;6137:27;:::i;:::-;-1:-1:-1;6137:27:11;;;;;;;;;;;;;;;;;;-1:-1:-1;;6137:27:11;;;;;;;;;;;-1:-1:-1;6241:272:11;6262:18;:25;:32;;6292:1;6262:32;:29;:32;:::i;:::-;6258:1;:36;6241:272;;;6348:5;-1:-1:-1;;;;;6323:30:11;:18;6342:1;6323:21;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6323:21:11;:30;6319:180;;;6401:18;6420:25;;:32;;6450:1;6420:32;:29;:32;:::i;:::-;6401:52;;;;;;;;;;;;;;;;;;6377:18;:21;;-1:-1:-1;;;;;6401:52:11;;;;6396:1;;6377:21;;;;;;;;;;;;;;:76;;;;;-1:-1:-1;;;;;6377:76:11;;;;;-1:-1:-1;;;;;6377:76:11;;;;;;6475:5;;6319:180;6296:3;;6241:272;;;6526:18;:27;;;;;-1:-1:-1;;6526:27:11;;;:::i;:::-;-1:-1:-1;6613:31:11;;;6626:10;6613:31;;-1:-1:-1;;;;;6613:31:11;;;;;;;;;;;;;;;;;;;5845:3;;;;;5808:847;;;5630:1031;;;;;:::o;3519:306:10:-;1924:20;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;3640:15;;;;;;;3632:57;;;;;;;-1:-1:-1;;;;;3632:57:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;3743:6;:19;;-1:-1:-1;;3743:19:10;;;3778:40;;;3760:1;3778:40;;;;;;;;;;;;;;;;;;;;3519:306::o;1468:91:9:-;1540:12;;-1:-1:-1;;;;;1540:12:9;1468:91;:::o;9741:89:11:-;9812:11;;9741:89;:::o;3908:77:10:-;3972:6;;-1:-1:-1;;;;;3972:6:10;3908:77;:::o;2231:801::-;1924:20;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;2388:15;;;;;;;2380:57;;;;;;;-1:-1:-1;;;;;2380:57:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2518:22:10;;;;2510:70;;;;;-1:-1:-1;;;;;2510:70:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2665:15;:31;;-1:-1:-1;;2665:31:10;;;;;;;;;;;;;;;2775:75;;2814:25;;;-1:-1:-1;;;;;2814:25:10;;;;;;;;;;;;;;;2775:75;2931:6;;2910:38;;;-1:-1:-1;;;;;2931:6:10;;;2910:38;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3008:6:10;:17;;-1:-1:-1;;3008:17:10;-1:-1:-1;;;;;3008:17:10;;;;;;;;;;2231:801::o;6938:514:11:-;2560:21;2584:24;2596:11;;2584;:24::i;:::-;2560:48;;2627:25;2641:10;2627:13;:25::i;:::-;:56;;;-1:-1:-1;2656:10:11;-1:-1:-1;;;;;2656:27:11;;;2627:56;2618:97;;;;;;;-1:-1:-1;;;;;2618:97:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7101:21:11;;;;;;:13;:21;;;;;:31;;;;;7093:66;;;;;;;-1:-1:-1;;;;;7093:66:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7205:21:11;;;;;;:13;:21;;;;;;;;;:26;;;:34;;;7302:32;;;:46;;;7402:43;;7419:10;7402:43;;;;;;;;;;;;;;;;;;;;;;;;;6938:514;;;;:::o;1629:97:7:-;1704:15;;1629:97;:::o;9538:89:11:-;9609:11;;-1:-1:-1;;;;;9609:11:11;9538:89;:::o;1796:158:7:-;1860:4;1895:28;1907:15;;1895:11;:28::i;:::-;-1:-1:-1;;;;;1883:54:7;;1938:8;1883:64;;;;;;;;;;;;;-1:-1:-1;;;;;1883:64:7;-1:-1:-1;;;;;1883:64:7;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1883:64:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1883:64:7;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1883:64:7;;1796:158;-1:-1:-1;;1796:158:7:o;4914:370:5:-;4971:16;;:::i;:::-;5122:4;5116:11;5162:4;5157:3;5153:14;5147:4;5140:28;5193:4;5188:3;5181:17;5234:3;5227:4;5222:3;5218:14;5211:27;5091:157;5268:9;5272:4;5268:3;:9::i;:::-;5257:20;;:3;4914:370;-1:-1:-1;4914:370:5:o;5778:265::-;5838:6;5863:17;5914:11;5894:4;:9;;;5883:21;;;;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;5883:21:5;;5863:41;;5965:2;5960:3;5956:12;5946:22;;5980:36;5987:6;5995:4;:9;;;6006:4;:9;;;5980:6;:36::i;:::-;-1:-1:-1;6033:3:5;5778:265;-1:-1:-1;;5778:265:5:o;2250:131:2:-;2308:7;;2331:6;;;;2323:15;;;;;;-1:-1:-1;;2356:5:2;;;2250:131::o;4091:107:10:-;4185:6;;-1:-1:-1;;;;;4185:6:10;;;4173:18;;;;4091:107::o;1748:152:9:-;1811:7;1852:4;;:24;;;;;;;;;;;;;;-1:-1:-1;;;;;1852:4:9;;;;:13;;:24;;;;;;;;;;;;;;;1811:7;1852:4;:24;;;5:2:-1;;;;30:1;27;20:12;5:2;1852:24:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1852:24:9;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1852:24:9;1837:56;;;;;;;;;;;;;;-1:-1:-1;;;;;1837:45:9;;;;;;:56;;;;;1852:24;;1837:56;;;;;;;;;:45;:56;;;5:2:-1;;;;30:1;27;20:12;3840:768:5;3890:4;;3928:9;;3924:35;;;3958:1;3951:8;;;;3924:35;3980:34;3973:41;;:46;3969:164;;;4042:2;4035:9;4086:35;4078:4;4073:48;;-1:-1:-1;3969:164:5;4153:18;4146:25;;:30;4142:131;;;4199:1;4192:8;4242:19;4234:4;4229:32;;-1:-1:-1;4142:131:5;4293:10;4286:17;;:22;4282:115;;;4331:1;4324:8;4374:11;4366:4;4361:24;;-1:-1:-1;4282:115:5;4417:6;4410:13;;:18;4406:107;;;4451:1;4444:8;4494:7;4486:4;4481:20;;-1:-1:-1;4406:107:5;4533:4;4526:11;;:16;4522:55;;;4565:1;4558:8;4522:55;4598:3;4593:2;:8;4586:15;;3840:768;;;;;:::o;2686:548::-;3012:9;2806:164;2819:2;2812:9;;2806:164;;2888:10;;2875:24;;2934:2;2926:10;;;;2950:9;;;;-1:-1:-1;;2823:9:5;;;;2806:164;;;-1:-1:-1;3097:10:5;;3152:11;;3032:2;:8;;;;3024:3;:17;-1:-1:-1;;3024:21:5;3109:9;;3093:26;;;3148:22;;3196:21;3183:35;;3064:164::o;1593:8239:11:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1593:8239:11;;;-1:-1:-1;1593:8239:11;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;1593:8239:11;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;"},"internals/tokenWhitelistable.sol:TokenWhitelistable":{"bin":"","bin-runtime":"","srcmap":"","srcmap-runtime":""},"licence.sol:ILicence":{"bin":"","bin-runtime":"","srcmap":"","srcmap-runtime":""},"licence.sol:Licence":{"bin":"608060405260018054600160a060020a03191673aaaf91d9b90df800df4f55c205fd6989c977e73a17905534801561003657600080fd5b5060405160c0806119d283398101604090815281516020830151918301516060840151608085015160a09095015160008054600160a060020a031916600160a060020a0386161760a060020a60ff0219167401000000000000000000000000000000000000000087151581029190911791829055949693949293928791879160ff91041615156100fd5760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b6040805160008152600160a060020a038416602082015281517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea5929181900390910190a15050600584905560028054600160a060020a03808616600160a060020a0319928316179092556003805485841692169190911790558116156101995760018054600160a060020a031916600160a060020a0383161790555b505050505050611824806101ae6000396000f3006080604052600436106101485763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630bf25c9181146101da5780630d42e82f146101f15780631b3c96b4146102125780632121dc75146102295780633a7afe0214610252578063420a83e71461028357806342719faa146102985780634ac22b3c146102b957806368ce74e7146102ce578063715018a6146102e6578063837c70ef146102fb5780638da5cb5b14610310578063940b9c3b14610325578063996cba681461033a57806399a5e1d014610364578063a036ba6014610379578063ac904c631461038e578063b242e534146103b5578063ca0e2e20146103db578063d08b4ecc146103f0578063d0cddd6714610405578063d1696b1614610426578063e30c5fa81461043b578063e3d8024214610450578063f15ff45514610471575b361561019e576040805160e560020a62461bcd02815260206004820152601b60248201527f6d73672064617461206c656e6774682073686f756c6420626520300000000000604482015290519081900360640190fd5b6040805133815234602082015281517f88a5966d370b9919b20f3e2c13ff65706f196a4e32cc2c12bf57088f88525874929181900390910190a1005b3480156101e657600080fd5b506101ef610486565b005b3480156101fd57600080fd5b506101ef600160a060020a0360043516610510565b6101ef600160a060020a036004351660243561061b565b34801561023557600080fd5b5061023e610b86565b604080519115158252519081900360200190f35b34801561025e57600080fd5b50610267610b96565b60408051600160a060020a039092168252519081900360200190f35b34801561028f57600080fd5b50610267610ba5565b3480156102a457600080fd5b506101ef600160a060020a0360043516610bb4565b3480156102c557600080fd5b506101ef610cbf565b3480156102da57600080fd5b506101ef600435610d47565b3480156102f257600080fd5b506101ef610e4d565b34801561030757600080fd5b5061023e610f57565b34801561031c57600080fd5b50610267610f7b565b34801561033157600080fd5b5061023e610f8a565b34801561034657600080fd5b506101ef600160a060020a0360043581169060243516604435610f9a565b34801561037057600080fd5b50610267610ff7565b34801561038557600080fd5b50610267611006565b34801561039a57600080fd5b506103a3611015565b60408051918252519081900360200190f35b3480156103c157600080fd5b506101ef600160a060020a0360043516602435151561101b565b3480156103e757600080fd5b506103a3611238565b3480156103fc57600080fd5b506101ef61123e565b34801561041157600080fd5b506101ef600160a060020a03600435166112b1565b34801561043257600080fd5b506101ef6113bc565b34801561044757600080fd5b5061023e611442565b34801561045c57600080fd5b506101ef600160a060020a0360043516611465565b34801561047d57600080fd5b5061023e611570565b61048f33611592565b15156104d3576040805160e560020a62461bcd02815260206004820152601660248201526000805160206117d9833981519152604482015290519081900360640190fd5b6004805477ff0000000000000000000000000000000000000000000000191677010000000000000000000000000000000000000000000000179055565b61051933611592565b151561055d576040805160e560020a62461bcd02815260206004820152601660248201526000805160206117d9833981519152604482015290519081900360640190fd5b610565610f57565b156105ba576040805160e560020a62461bcd02815260206004820152600d60248201527f544b4e206973206c6f636b656400000000000000000000000000000000000000604482015290519081900360640190fd5b60018054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff19909116811790915560408051918252517f2aeed92123e61fe64748a447c2ba122c4bfc0201d1ed5149e9ce9ede5adda5459181900360200190a150565b6001548190600090600160a060020a038581169116141561075857600254604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152600160a060020a039283166024820152604481018590529051918616916323b872dd916064808201926020929091908290030181600087803b1580156106ab57600080fd5b505af11580156106bf573d6000803e3d6000fd5b505050506040513d60208110156106d557600080fd5b50511515610753576040805160e560020a62461bcd02815260206004820152603360248201527f544b4e207472616e736665722066726f6d2065787465726e616c206163636f7560448201527f6e742077617320756e7375636365737366756c00000000000000000000000000606482015290519081900360840190fd5b610b2d565b6107836103e8600554016107776103e8866115a690919063ffffffff16565b9063ffffffff6115df16565b9150610795838363ffffffff61160216565b9050600160a060020a03841615610a0b57600354604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152600160a060020a039283166024820152604481018490529051918616916323b872dd916064808201926020929091908290030181600087803b15801561081b57600080fd5b505af115801561082f573d6000803e3d6000fd5b505050506040513d602081101561084557600080fd5b505115156108e9576040805160e560020a62461bcd02815260206004820152604360248201527f4552433230206c6963656e6365416d6f756e74207472616e736665722066726f60448201527f6d2065787465726e616c206163636f756e742077617320756e7375636365737360648201527f66756c0000000000000000000000000000000000000000000000000000000000608482015290519081900360a40190fd5b600254604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152600160a060020a039283166024820152604481018590529051918616916323b872dd916064808201926020929091908290030181600087803b15801561095e57600080fd5b505af1158015610972573d6000803e3d6000fd5b505050506040513d602081101561098857600080fd5b50511515610a06576040805160e560020a62461bcd02815260206004820152603b60248201527f455243323020746f6b656e207472616e736665722066726f6d2065787465726e60448201527f616c206163636f756e742077617320756e7375636365737366756c0000000000606482015290519081900360840190fd5b610ad9565b348314610a62576040805160e560020a62461bcd02815260206004820152601f60248201527f4554482073656e74206973206e6f7420657175616c20746f20616d6f756e7400604482015290519081900360640190fd5b600354604051600160a060020a039091169082156108fc029083906000818181858888f19350505050158015610a9c573d6000803e3d6000fd5b50600254604051600160a060020a039091169083156108fc029084906000818181858888f19350505050158015610ad7573d6000803e3d6000fd5b505b60035460408051338152600160a060020a0392831660208201529186168282015260608201839052517fdd9dfad7b30d6b224e235f89565871419d3dec3b563a4e231f12d2cc97f9acfc9181900360800190a15b60025460408051338152600160a060020a0392831660208201529186168282015260608201849052517fc8a7b0bd71097b47b2cad75e4e939d2aeb7fae88110e68f93b83fed08e9d3c389181900360800190a150505050565b60005460a060020a900460ff1690565b600454600160a060020a031690565b600354600160a060020a031690565b610bbd33611592565b1515610c01576040805160e560020a62461bcd02815260206004820152601660248201526000805160206117d9833981519152604482015290519081900360640190fd5b610c09611570565b15610c5e576040805160e560020a62461bcd02815260206004820152601960248201527f686f6c64657220636f6e7472616374206973206c6f636b656400000000000000604482015290519081900360640190fd5b60038054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff19909116811790915560408051918252517ffa6bae0f250db86534a013b1c7a6c4076aa8f8d1ac248771a1c73f4ba366922a9181900360200190a150565b610cc833611592565b1515610d0c576040805160e560020a62461bcd02815260206004820152601660248201526000805160206117d9833981519152604482015290519081900360640190fd5b6004805476ff000000000000000000000000000000000000000000001916760100000000000000000000000000000000000000000000179055565b600454600160a060020a03163314610da9576040805160e560020a62461bcd02815260206004820152601860248201527f7468652073656e6465722069736e2774207468652044414f0000000000000000604482015290519081900360640190fd5b80600111158015610dbc57506103e88111155b1515610e12576040805160e560020a62461bcd02815260206004820152601b60248201527f6c6963656e636520616d6f756e74206f7574206f662072616e67650000000000604482015290519081900360640190fd5b60058190556040805182815290517f587b6068be8c555e2cddc6ad8a56df5e8dfb1533cc063d6703f79c791de151489181900360200190a150565b610e5633611592565b1515610e9a576040805160e560020a62461bcd02815260206004820152601660248201526000805160206117d9833981519152604482015290519081900360640190fd5b60005460a060020a900460ff161515610efd576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916815560408051828152602081019290925280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1565b60045477010000000000000000000000000000000000000000000000900460ff1690565b600054600160a060020a031690565b60045460a060020a900460ff1690565b610fa333611592565b1515610fe7576040805160e560020a62461bcd02815260206004820152601660248201526000805160206117d9833981519152604482015290519081900360640190fd5b610ff2838383611619565b505050565b600154600160a060020a031690565b600254600160a060020a031690565b60055490565b61102433611592565b1515611068576040805160e560020a62461bcd02815260206004820152601660248201526000805160206117d9833981519152604482015290519081900360640190fd5b60005460a060020a900460ff1615156110cb576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b600160a060020a0382161515611151576040805160e560020a62461bcd02815260206004820152602360248201527f6f776e65722063616e6e6f742062652073657420746f207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6000805474ff0000000000000000000000000000000000000000191660a060020a831515908102919091179091556111c05760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b60005460408051600160a060020a039283168152918416602083015280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1506000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6103e881565b61124733611592565b151561128b576040805160e560020a62461bcd02815260206004820152601660248201526000805160206117d9833981519152604482015290519081900360640190fd5b6004805474ff0000000000000000000000000000000000000000191660a060020a179055565b6112ba33611592565b15156112fe576040805160e560020a62461bcd02815260206004820152601660248201526000805160206117d9833981519152604482015290519081900360640190fd5b611306610f8a565b1561135b576040805160e560020a62461bcd02815260206004820152600f60248201527f666c6f6174206973206c6f636b65640000000000000000000000000000000000604482015290519081900360640190fd5b60028054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff19909116811790915560408051918252517f9af2841b0db134bda87280e2a9cababb156f95023c87023d708a677d61b4b6d89181900360200190a150565b6113c533611592565b1515611409576040805160e560020a62461bcd02815260206004820152601660248201526000805160206117d9833981519152604482015290519081900360640190fd5b6004805475ff00000000000000000000000000000000000000000019167501000000000000000000000000000000000000000000179055565b600454760100000000000000000000000000000000000000000000900460ff1690565b61146e33611592565b15156114b2576040805160e560020a62461bcd02815260206004820152601660248201526000805160206117d9833981519152604482015290519081900360640190fd5b6114ba611442565b1561150f576040805160e560020a62461bcd02815260206004820152600d60248201527f44414f206973206c6f636b656400000000000000000000000000000000000000604482015290519081900360640190fd5b60048054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff19909116811790915560408051918252517fd32c17b277c7e87842861153d758814a267634f4308ec2461f88756df7dd70689181900360200190a150565b6004547501000000000000000000000000000000000000000000900460ff1690565b600054600160a060020a0390811691161490565b6000808315156115b957600091506115d8565b508282028284828115156115c957fe5b04146115d457600080fd5b8091505b5092915050565b6000808083116115ee57600080fd5b82848115156115f957fe5b04949350505050565b6000808383111561161257600080fd5b5050900390565b600160a060020a038216151561166557604051600160a060020a0384169082156108fc029083906000818181858888f1935050505015801561165f573d6000803e3d6000fd5b50611789565b81600160a060020a031663a9059cbb84836040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b1580156116e157600080fd5b505af11580156116f5573d6000803e3d6000fd5b505050506040513d602081101561170b57600080fd5b50511515611789576040805160e560020a62461bcd02815260206004820152602560248201527f455243323020746f6b656e207472616e736665722077617320756e737563636560448201527f737366756c000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60408051600160a060020a0380861682528416602082015280820183905290517ff7a40077ff7a04c7e61f6f26fb13774259ddf1b6bce9ecf26a8276cdd39926839181900360600190a1505050560073656e646572206973206e6f7420616e206f776e657200000000000000000000a165627a7a72305820c730e6bd6e321957cab9813e7774e9d7bba014408eb0ad114becdf9c6bb6d0500029","bin-runtime":"6080604052600436106101485763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630bf25c9181146101da5780630d42e82f146101f15780631b3c96b4146102125780632121dc75146102295780633a7afe0214610252578063420a83e71461028357806342719faa146102985780634ac22b3c146102b957806368ce74e7146102ce578063715018a6146102e6578063837c70ef146102fb5780638da5cb5b14610310578063940b9c3b14610325578063996cba681461033a57806399a5e1d014610364578063a036ba6014610379578063ac904c631461038e578063b242e534146103b5578063ca0e2e20146103db578063d08b4ecc146103f0578063d0cddd6714610405578063d1696b1614610426578063e30c5fa81461043b578063e3d8024214610450578063f15ff45514610471575b361561019e576040805160e560020a62461bcd02815260206004820152601b60248201527f6d73672064617461206c656e6774682073686f756c6420626520300000000000604482015290519081900360640190fd5b6040805133815234602082015281517f88a5966d370b9919b20f3e2c13ff65706f196a4e32cc2c12bf57088f88525874929181900390910190a1005b3480156101e657600080fd5b506101ef610486565b005b3480156101fd57600080fd5b506101ef600160a060020a0360043516610510565b6101ef600160a060020a036004351660243561061b565b34801561023557600080fd5b5061023e610b86565b604080519115158252519081900360200190f35b34801561025e57600080fd5b50610267610b96565b60408051600160a060020a039092168252519081900360200190f35b34801561028f57600080fd5b50610267610ba5565b3480156102a457600080fd5b506101ef600160a060020a0360043516610bb4565b3480156102c557600080fd5b506101ef610cbf565b3480156102da57600080fd5b506101ef600435610d47565b3480156102f257600080fd5b506101ef610e4d565b34801561030757600080fd5b5061023e610f57565b34801561031c57600080fd5b50610267610f7b565b34801561033157600080fd5b5061023e610f8a565b34801561034657600080fd5b506101ef600160a060020a0360043581169060243516604435610f9a565b34801561037057600080fd5b50610267610ff7565b34801561038557600080fd5b50610267611006565b34801561039a57600080fd5b506103a3611015565b60408051918252519081900360200190f35b3480156103c157600080fd5b506101ef600160a060020a0360043516602435151561101b565b3480156103e757600080fd5b506103a3611238565b3480156103fc57600080fd5b506101ef61123e565b34801561041157600080fd5b506101ef600160a060020a03600435166112b1565b34801561043257600080fd5b506101ef6113bc565b34801561044757600080fd5b5061023e611442565b34801561045c57600080fd5b506101ef600160a060020a0360043516611465565b34801561047d57600080fd5b5061023e611570565b61048f33611592565b15156104d3576040805160e560020a62461bcd02815260206004820152601660248201526000805160206117d9833981519152604482015290519081900360640190fd5b6004805477ff0000000000000000000000000000000000000000000000191677010000000000000000000000000000000000000000000000179055565b61051933611592565b151561055d576040805160e560020a62461bcd02815260206004820152601660248201526000805160206117d9833981519152604482015290519081900360640190fd5b610565610f57565b156105ba576040805160e560020a62461bcd02815260206004820152600d60248201527f544b4e206973206c6f636b656400000000000000000000000000000000000000604482015290519081900360640190fd5b60018054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff19909116811790915560408051918252517f2aeed92123e61fe64748a447c2ba122c4bfc0201d1ed5149e9ce9ede5adda5459181900360200190a150565b6001548190600090600160a060020a038581169116141561075857600254604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152600160a060020a039283166024820152604481018590529051918616916323b872dd916064808201926020929091908290030181600087803b1580156106ab57600080fd5b505af11580156106bf573d6000803e3d6000fd5b505050506040513d60208110156106d557600080fd5b50511515610753576040805160e560020a62461bcd02815260206004820152603360248201527f544b4e207472616e736665722066726f6d2065787465726e616c206163636f7560448201527f6e742077617320756e7375636365737366756c00000000000000000000000000606482015290519081900360840190fd5b610b2d565b6107836103e8600554016107776103e8866115a690919063ffffffff16565b9063ffffffff6115df16565b9150610795838363ffffffff61160216565b9050600160a060020a03841615610a0b57600354604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152600160a060020a039283166024820152604481018490529051918616916323b872dd916064808201926020929091908290030181600087803b15801561081b57600080fd5b505af115801561082f573d6000803e3d6000fd5b505050506040513d602081101561084557600080fd5b505115156108e9576040805160e560020a62461bcd02815260206004820152604360248201527f4552433230206c6963656e6365416d6f756e74207472616e736665722066726f60448201527f6d2065787465726e616c206163636f756e742077617320756e7375636365737360648201527f66756c0000000000000000000000000000000000000000000000000000000000608482015290519081900360a40190fd5b600254604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152600160a060020a039283166024820152604481018590529051918616916323b872dd916064808201926020929091908290030181600087803b15801561095e57600080fd5b505af1158015610972573d6000803e3d6000fd5b505050506040513d602081101561098857600080fd5b50511515610a06576040805160e560020a62461bcd02815260206004820152603b60248201527f455243323020746f6b656e207472616e736665722066726f6d2065787465726e60448201527f616c206163636f756e742077617320756e7375636365737366756c0000000000606482015290519081900360840190fd5b610ad9565b348314610a62576040805160e560020a62461bcd02815260206004820152601f60248201527f4554482073656e74206973206e6f7420657175616c20746f20616d6f756e7400604482015290519081900360640190fd5b600354604051600160a060020a039091169082156108fc029083906000818181858888f19350505050158015610a9c573d6000803e3d6000fd5b50600254604051600160a060020a039091169083156108fc029084906000818181858888f19350505050158015610ad7573d6000803e3d6000fd5b505b60035460408051338152600160a060020a0392831660208201529186168282015260608201839052517fdd9dfad7b30d6b224e235f89565871419d3dec3b563a4e231f12d2cc97f9acfc9181900360800190a15b60025460408051338152600160a060020a0392831660208201529186168282015260608201849052517fc8a7b0bd71097b47b2cad75e4e939d2aeb7fae88110e68f93b83fed08e9d3c389181900360800190a150505050565b60005460a060020a900460ff1690565b600454600160a060020a031690565b600354600160a060020a031690565b610bbd33611592565b1515610c01576040805160e560020a62461bcd02815260206004820152601660248201526000805160206117d9833981519152604482015290519081900360640190fd5b610c09611570565b15610c5e576040805160e560020a62461bcd02815260206004820152601960248201527f686f6c64657220636f6e7472616374206973206c6f636b656400000000000000604482015290519081900360640190fd5b60038054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff19909116811790915560408051918252517ffa6bae0f250db86534a013b1c7a6c4076aa8f8d1ac248771a1c73f4ba366922a9181900360200190a150565b610cc833611592565b1515610d0c576040805160e560020a62461bcd02815260206004820152601660248201526000805160206117d9833981519152604482015290519081900360640190fd5b6004805476ff000000000000000000000000000000000000000000001916760100000000000000000000000000000000000000000000179055565b600454600160a060020a03163314610da9576040805160e560020a62461bcd02815260206004820152601860248201527f7468652073656e6465722069736e2774207468652044414f0000000000000000604482015290519081900360640190fd5b80600111158015610dbc57506103e88111155b1515610e12576040805160e560020a62461bcd02815260206004820152601b60248201527f6c6963656e636520616d6f756e74206f7574206f662072616e67650000000000604482015290519081900360640190fd5b60058190556040805182815290517f587b6068be8c555e2cddc6ad8a56df5e8dfb1533cc063d6703f79c791de151489181900360200190a150565b610e5633611592565b1515610e9a576040805160e560020a62461bcd02815260206004820152601660248201526000805160206117d9833981519152604482015290519081900360640190fd5b60005460a060020a900460ff161515610efd576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916815560408051828152602081019290925280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1565b60045477010000000000000000000000000000000000000000000000900460ff1690565b600054600160a060020a031690565b60045460a060020a900460ff1690565b610fa333611592565b1515610fe7576040805160e560020a62461bcd02815260206004820152601660248201526000805160206117d9833981519152604482015290519081900360640190fd5b610ff2838383611619565b505050565b600154600160a060020a031690565b600254600160a060020a031690565b60055490565b61102433611592565b1515611068576040805160e560020a62461bcd02815260206004820152601660248201526000805160206117d9833981519152604482015290519081900360640190fd5b60005460a060020a900460ff1615156110cb576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b600160a060020a0382161515611151576040805160e560020a62461bcd02815260206004820152602360248201527f6f776e65722063616e6e6f742062652073657420746f207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6000805474ff0000000000000000000000000000000000000000191660a060020a831515908102919091179091556111c05760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b60005460408051600160a060020a039283168152918416602083015280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1506000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6103e881565b61124733611592565b151561128b576040805160e560020a62461bcd02815260206004820152601660248201526000805160206117d9833981519152604482015290519081900360640190fd5b6004805474ff0000000000000000000000000000000000000000191660a060020a179055565b6112ba33611592565b15156112fe576040805160e560020a62461bcd02815260206004820152601660248201526000805160206117d9833981519152604482015290519081900360640190fd5b611306610f8a565b1561135b576040805160e560020a62461bcd02815260206004820152600f60248201527f666c6f6174206973206c6f636b65640000000000000000000000000000000000604482015290519081900360640190fd5b60028054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff19909116811790915560408051918252517f9af2841b0db134bda87280e2a9cababb156f95023c87023d708a677d61b4b6d89181900360200190a150565b6113c533611592565b1515611409576040805160e560020a62461bcd02815260206004820152601660248201526000805160206117d9833981519152604482015290519081900360640190fd5b6004805475ff00000000000000000000000000000000000000000019167501000000000000000000000000000000000000000000179055565b600454760100000000000000000000000000000000000000000000900460ff1690565b61146e33611592565b15156114b2576040805160e560020a62461bcd02815260206004820152601660248201526000805160206117d9833981519152604482015290519081900360640190fd5b6114ba611442565b1561150f576040805160e560020a62461bcd02815260206004820152600d60248201527f44414f206973206c6f636b656400000000000000000000000000000000000000604482015290519081900360640190fd5b60048054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff19909116811790915560408051918252517fd32c17b277c7e87842861153d758814a267634f4308ec2461f88756df7dd70689181900360200190a150565b6004547501000000000000000000000000000000000000000000900460ff1690565b600054600160a060020a0390811691161490565b6000808315156115b957600091506115d8565b508282028284828115156115c957fe5b04146115d457600080fd5b8091505b5092915050565b6000808083116115ee57600080fd5b82848115156115f957fe5b04949350505050565b6000808383111561161257600080fd5b5050900390565b600160a060020a038216151561166557604051600160a060020a0384169082156108fc029083906000818181858888f1935050505015801561165f573d6000803e3d6000fd5b50611789565b81600160a060020a031663a9059cbb84836040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b1580156116e157600080fd5b505af11580156116f5573d6000803e3d6000fd5b505050506040513d602081101561170b57600080fd5b50511515611789576040805160e560020a62461bcd02815260206004820152602560248201527f455243323020746f6b656e207472616e736665722077617320756e737563636560448201527f737366756c000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60408051600160a060020a0380861682528416602082015280820183905290517ff7a40077ff7a04c7e61f6f26fb13774259ddf1b6bce9ecf26a8276cdd39926839181900360600190a1505050560073656e646572206973206e6f7420616e206f776e657200000000000000000000a165627a7a72305820c730e6bd6e321957cab9813e7774e9d7bba014408eb0ad114becdf9c6bb6d0500029","srcmap":"1320:8846:13:-;;;2192:80;;;-1:-1:-1;;;;;;2192:80:13;2230:42;2192:80;;;3430:377;5:2:-1;;;;30:1;27;20:12;5:2;3430:377:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1527:6:10;:18;;-1:-1:-1;;;;;;1527:18:10;-1:-1:-1;;;;;1527:18:10;;;-1:-1:-1;;;;;;1555:32:10;;;;;;;;;;;;;;;3430:377:13;;;;;;;;;;;1555:32:10;1671:15;;;1670:16;1666:78;;;1707:26;;;-1:-1:-1;;;;;1707:26:10;;;;;;;;;;;;;;;1666:78;1758:43;;;1787:1;1758:43;;-1:-1:-1;;;;;1758:43:10;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3603:20:13;:32;;;3645:12;:22;;-1:-1:-1;;;;;3645:22:13;;;-1:-1:-1;;;;;;3645:22:13;;;;;;;-1:-1:-1;3677:23:13;;;;;;;;;;;;;3714:26;;;3710:91;;3756:19;:34;;-1:-1:-1;;;;;;3756:34:13;-1:-1:-1;;;;;3756:34:13;;;;;3710:91;3430:377;;;;;;1320:8846;;;;;;","srcmap-runtime":"1320:8846:13:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3961:8;:20;3953:60;;;;;-1:-1:-1;;;;;3953:60:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;4028:31;;;4037:10;4028:31;;4049:9;4028:31;;;;;;;;;;;;;;;;;1320:8846;5857:102;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5857:102:13;;;;;;7089:228;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7089:228:13;-1:-1:-1;;;;;7089:228:13;;;;;7970:1282;;-1:-1:-1;;;;;7970:1282:13;;;;;;;3149:94:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3149:94:10;;;;;;;;;;;;;;;;;;;;;;4904:89:13;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4904:89:13;;;;;;;;-1:-1:-1;;;;;4904:89:13;;;;;;;;;;;;;;4701:91;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4701:91:13;;;;6421:211;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6421:211:13;-1:-1:-1;;;;;6421:211:13;;;;;5673:86;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5673:86:13;;;;7439:259;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7439:259:13;;;;;3519:306:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3519:306:10;;;;10052:112:13;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10052:112:13;;;;3908:77:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3908:77:10;;;;9542:92:13;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9542:92:13;;;;9341:122;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9341:122:13;-1:-1:-1;;;;;9341:122:13;;;;;;;;;;;;5093:105;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5093:105:13;;;;4480:91;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4480:91:13;;;;4229:104;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4229:104:13;;;;;;;;;;;;;;;;;;;;2231:801:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2231:801:10;-1:-1:-1;;;;;2231:801:10;;;;;;;;;2141:44:13;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2141:44:13;;;;5304:82;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5304:82:13;;;;6089:196;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6089:196:13;-1:-1:-1;;;;;6089:196:13;;;;;5492:83;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5492:83:13;;;;9885:96;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9885:96:13;;;;6762:196;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6762:196:13;-1:-1:-1;;;;;6762:196:13;;;;;9713:93;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9713:93:13;;;;5857:102;1924:20:10;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1916:55:10;;;;;;;;;;;;;;;5920:25:13;:32;;-1:-1:-1;;5920:32:13;;;;;5857:102::o;7089:228::-;1924:20:10;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1916:55:10;;;;;;;;;;;;;;;7178:26:13;:24;:26::i;:::-;7177:27;7169:53;;;;;-1:-1:-1;;;;;7169:53:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;7232:19;:29;;-1:-1:-1;;;;;7232:29:13;;-1:-1:-1;;7232:29:13;;;;;;;;7276:34;;;;;;;;;;;;;;;;7089:228;:::o;7970:1282::-;8135:19;;8059:7;;8041:15;;-1:-1:-1;;;;;8125:29:13;;;8135:19;;8125:29;8121:1039;;;8217:12;;8178:64;;;;;;8205:10;8178:64;;;;-1:-1:-1;;;;;8217:12:13;;;8178:64;;;;;;;;;;;;:26;;;;;;:64;;;;;;;;;;;;;;;8217:12;8178:26;:64;;;5:2:-1;;;;30:1;27;20:12;5:2;8178:64:13;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8178:64:13;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8178:64:13;8170:128;;;;;;;-1:-1:-1;;;;;8170:128:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8121:1039;;;8342:74;2181:4;8376:20;;:39;8342:29;2181:4;8342:7;:11;;:29;;;;:::i;:::-;:33;:74;:33;:74;:::i;:::-;8329:87;-1:-1:-1;8451:23:13;:7;8329:87;8451:23;:11;:23;:::i;:::-;8430:44;-1:-1:-1;;;;;;8493:20:13;;;8489:568;;8580:12;;8541:67;;;;;;8568:10;8541:67;;;;-1:-1:-1;;;;;8580:12:13;;;8541:67;;;;;;;;;;;;:26;;;;;;:67;;;;;;;;;;;;;;;8580:12;8541:26;:67;;;5:2:-1;;;;30:1;27;20:12;5:2;8541:67:13;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8541:67:13;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8541:67:13;8533:147;;;;;;;-1:-1:-1;;;;;8533:147:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8745:12;;8706:64;;;;;;8733:10;8706:64;;;;-1:-1:-1;;;;;8745:12:13;;;8706:64;;;;;;;;;;;;:26;;;;;;:64;;;;;;;;;;;;;;;8745:12;8706:26;:64;;;5:2:-1;;;;30:1;27;20:12;5:2;8706:64:13;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8706:64:13;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8706:64:13;8698:136;;;;;;;-1:-1:-1;;;;;8698:136:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8489:568;;;8881:9;:20;;8873:64;;;;;-1:-1:-1;;;;;8873:64:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;8955:12;;:36;;-1:-1:-1;;;;;8955:12:13;;;;:36;;;;;8977:13;;8955:12;:36;:12;:36;8977:13;8955:12;:36;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;9009:12:13;;:33;;-1:-1:-1;;;;;9009:12:13;;;;:33;;;;;9031:10;;9009:12;:33;:12;:33;9031:10;9009:12;:33;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9009:33:13;8489:568;9113:12;;9076:73;;;9101:10;9076:73;;-1:-1:-1;;;;;9113:12:13;;;9076:73;;;;;;;;;;;;;;;;;;;;;;;;;;;8121:1039;9212:12;;9175:70;;;9200:10;9175:70;;-1:-1:-1;;;;;9212:12:13;;;9175:70;;;;;;;;;;;;;;;;;;;;;;;;;;;7970:1282;;;;:::o;3149:94:10:-;3198:4;3221:15;-1:-1:-1;;;3221:15:10;;;;;3149:94::o;4904:89:13:-;4975:11;;-1:-1:-1;;;;;4975:11:13;4904:89;:::o;4701:91::-;4773:12;;-1:-1:-1;;;;;4773:12:13;4701:91;:::o;6421:211::-;1924:20:10;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1916:55:10;;;;;;;;;;;;;;;6501:14:13;:12;:14::i;:::-;6500:15;6492:53;;;;;-1:-1:-1;;;;;6492:53:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;6555:12;:25;;-1:-1:-1;;;;;6555:25:13;;-1:-1:-1;;6555:25:13;;;;;;;;6595:30;;;;;;;;;;;;;;;;6421:211;:::o;5673:86::-;1924:20:10;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1916:55:10;;;;;;;;;;;;;;;5728:17:13;:24;;-1:-1:-1;;5728:24:13;;;;;5673:86::o;7439:259::-;2885:11;;-1:-1:-1;;;;;2885:11:13;2871:10;:25;2863:62;;;;;-1:-1:-1;;;;;2863:62:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;7525:10;7520:1;:15;;:49;;;;;2181:4;7539:10;:30;;7520:49;7512:89;;;;;;;-1:-1:-1;;;;;7512:89:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;7611:20;:33;;;7659:32;;;;;;;;;;;;;;;;;7439:259;:::o;3519:306:10:-;1924:20;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1916:55:10;;;;;;;;;;;;;;;3640:15;;-1:-1:-1;;;3640:15:10;;;;3632:57;;;;;;;-1:-1:-1;;;;;3632:57:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;3760:1;3743:19;;-1:-1:-1;;3743:19:10;;;3778:40;;;;;;;;;;;;;;;;;;;;;;;;;3519:306::o;10052:112:13:-;10132:25;;;;;;;;10052:112::o;3908:77:10:-;3946:7;3972:6;-1:-1:-1;;;;;3972:6:10;3908:77;:::o;9542:92:13:-;9609:18;;-1:-1:-1;;;9609:18:13;;;;;9542:92::o;9341:122::-;1924:20:10;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1916:55:10;;;;;;;;;;;;;;;9428:28:13;9435:3;9440:6;9448:7;9428:6;:28::i;:::-;9341:122;;;:::o;5093:105::-;5172:19;;-1:-1:-1;;;;;5172:19:13;5093:105;:::o;4480:91::-;4552:12;;-1:-1:-1;;;;;4552:12:13;4480:91;:::o;4229:104::-;4306:20;;4229:104;:::o;2231:801:10:-;1924:20;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1916:55:10;;;;;;;;;;;;;;;2388:15;;-1:-1:-1;;;2388:15:10;;;;2380:57;;;;;;;-1:-1:-1;;;;;2380:57:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2518:22:10;;;;2510:70;;;;;-1:-1:-1;;;;;2510:70:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2665:15;:31;;-1:-1:-1;;2665:31:10;-1:-1:-1;;;2665:31:10;;;;;;;;;;;;;2775:75;;2814:25;;;-1:-1:-1;;;;;2814:25:10;;;;;;;;;;;;;;;2775:75;2931:6;;2910:38;;;-1:-1:-1;;;;;2931:6:10;;;2910:38;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3008:6:10;:17;;-1:-1:-1;;3008:17:10;-1:-1:-1;;;;;3008:17:10;;;;;;;;;;2231:801::o;2141:44:13:-;2181:4;2141:44;:::o;5304:82::-;1924:20:10;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1916:55:10;;;;;;;;;;;;;;;5354:18:13;:25;;-1:-1:-1;;5354:25:13;-1:-1:-1;;;5354:25:13;;;5304:82::o;6089:196::-;1924:20:10;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1916:55:10;;;;;;;;;;;;;;;6167:13:13;:11;:13::i;:::-;6166:14;6158:42;;;;;-1:-1:-1;;;;;6158:42:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;6210:12;:24;;-1:-1:-1;;;;;6210:24:13;;-1:-1:-1;;6210:24:13;;;;;;;;6249:29;;;;;;;;;;;;;;;;6089:196;:::o;5492:83::-;1924:20:10;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1916:55:10;;;;;;;;;;;;;;;5543:18:13;:25;;-1:-1:-1;;5543:25:13;;;;;5492:83::o;9885:96::-;9957:17;;;;;;;;9885:96::o;6762:196::-;1924:20:10;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1916:55:10;;;;;;;;;;;;;;;6843:18:13;:16;:18::i;:::-;6842:19;6834:45;;;;;-1:-1:-1;;;;;6834:45:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;6889:11;:21;;-1:-1:-1;;;;;6889:21:13;;-1:-1:-1;;6889:21:13;;;;;;;;6925:26;;;;;;;;;;;;;;;;6762:196;:::o;9713:93::-;9781:18;;;;;;;;9713:93::o;4091:107:10:-;4150:4;4185:6;-1:-1:-1;;;;;4185:6:10;;;4173:18;;;;4091:107::o;1376:381:2:-;1434:7;;1658:6;;1654:35;;;1681:1;1674:8;;;;1654:35;-1:-1:-1;1707:5:2;;;1711:1;1707;:5;1726;;;;;;;;:10;1718:19;;;;;;1751:1;1744:8;;1376:381;;;;;;:::o;1867:270::-;1925:7;;1948:5;;;1940:14;;;;;;2034:1;2030;:5;;;;;;;;;1867:270;-1:-1:-1;;;;1867:270:2:o;2250:131::-;2308:7;;2331:6;;;;2323:15;;;;;;-1:-1:-1;;2356:5:2;;;2250:131::o;1350:362:6:-;-1:-1:-1;;;;;1476:20:6;;;1472:189;;;1512:21;;-1:-1:-1;;;;;1512:12:6;;;:21;;;;;1525:7;;1512:21;;;;1525:7;1512:12;:21;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1512:21:6;1472:189;;;1578:6;-1:-1:-1;;;;;1572:22:6;;1595:3;1600:7;1572:36;;;;;;;;;;;;;-1:-1:-1;;;;;1572:36:6;-1:-1:-1;;;;;1572:36:6;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1572:36:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1572:36:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1572:36:6;1564:86;;;;;;;-1:-1:-1;;;;;1564:86:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1676:29;;;-1:-1:-1;;;;;1676:29:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;1350:362;;;:::o"},"wallet.sol:AddressWhitelist":{"bin":"","bin-runtime":"","srcmap":"","srcmap-runtime":""},"wallet.sol:ControllableOwnable":{"bin":"","bin-runtime":"","srcmap":"","srcmap-runtime":""},"wallet.sol:DailyLimitTrait":{"bin":"6080604052348015600f57600080fd5b50603580601d6000396000f3006080604052600080fd00a165627a7a723058201ad3e6d1353f6ee346bd8d52d942b057fbafc0f7410febf286a76da1472468fc0029","bin-runtime":"6080604052600080fd00a165627a7a723058201ad3e6d1353f6ee346bd8d52d942b057fbafc0f7410febf286a76da1472468fc0029","srcmap":"10813:3328:14:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10813:3328:14;;;;;;;","srcmap-runtime":"10813:3328:14:-;;;;;"},"wallet.sol:GasTopUpLimit":{"bin":"","bin-runtime":"","srcmap":"","srcmap-runtime":""},"wallet.sol:LoadLimit":{"bin":"","bin-runtime":"","srcmap":"","srcmap-runtime":""},"wallet.sol:SpendLimit":{"bin":"","bin-runtime":"","srcmap":"","srcmap-runtime":""},"wallet.sol:Vault":{"bin":"","bin-runtime":"","srcmap":"","srcmap-runtime":""},"wallet.sol:Wallet":{"bin":"60806040523480156200001157600080fd5b5060405160e08062004adb83398101604090815281516020830151918301516060840151608085015160a086015160c09096015160018054600160a060020a0319908116600160a060020a038088169190911792839055600080549382169383169390931783556002859055600380549092169088161760a060020a60ff0219167401000000000000000000000000000000000000000089151581029190911791829055969895969495939489918991889188918791849183918891889160ff919004161515620001195760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b6040805160008152600160a060020a038416602082015281517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea5929181900390910190a150506040805160a081810183528382526020808301859052428385018190526000606080860182905260809586018290526009889055600a97909755600b829055600c819055600d805460ff19908116909155600e98909855855193840186526706f05b59d3b200008085529284018390529483018190529482018490529101829052600f8190556010556011919091556012556013805490911690555062000214935050640100000000620002b7810204915050565b50505050509150506000811115156200028e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f737461626c65636f696e206e6f74207365740000000000000000000000000000604482015290519081900360640190fd5b620002a66127108202640100000000620003f4810204565b5050601a5550620005719350505050565b6060600080600080600080620002de600e5462000442640100000000026401000000009004565b600160a060020a0316633efec5e96040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b1580156200033557600080fd5b505af11580156200034a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260e08110156200037457600080fd5b8101908080516401000000008111156200038d57600080fd5b82016020810184811115620003a157600080fd5b8151640100000000811182820187101715620003bc57600080fd5b5050602082015160408301516060840151608085015160a086015160c090960151949f939e50919c509a509850919650945092505050565b60148190556040805160a0810182528281526020810183905242918101829052600060608201819052608090910181905260158390556016929092556017556018556019805460ff19169055565b60008054604080517f0178b8bf000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691630178b8bf9160248082019260209290919082900301818787803b158015620004aa57600080fd5b505af1158015620004bf573d6000803e3d6000fd5b505050506040513d6020811015620004d657600080fd5b5051604080517f3b3b57de000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691633b3b57de916024808201926020929091908290030181600087803b1580156200053d57600080fd5b505af115801562000552573d6000803e3d6000fd5b505050506040513d60208110156200056957600080fd5b505192915050565b61455a80620005816000396000f3006080604052600436106102585763ffffffff60e060020a60003504166301ffc9a781146102ea578063027ef3eb146103355780630f3a85d81461035c578063100f23fd146103765780631efd02991461038e5780632121dc75146103a357806321ce918d146103b85780632587a6a2146103d057806326d05ab2146103e5578063294f4025146103fa578063324e9f531461045f57806332531c3c146104745780633a43199f146104955780633bfec254146104ac5780633c672eb7146104c45780633f579f42146104dc57806347b55a9d1461050d5780635adc02ab146105225780635d2362a81461053a5780636137d6701461054f57806365e6bd8a1461056f578063715018a61461058457806374624c5514610599578063747c31d6146105b15780637d73b231146105c65780637d7d0046146105f75780637fd004fa1461060c578063877337b01461062c5780638da5cb5b146106415780639b0dfd2714610656578063b221f3161461066b578063b242e53414610683578063b87e21ef146106a9578063be40ba79146106cd578063beabacc8146106e2578063c4856cd91461070c578063c583143814610721578063cbd2ac6814610736578063cc0e7e561461074e578063cd7958dd14610763578063ce0b5bd5146107b8578063d251fefc146107d0578063da84b1ed146107e8578063de212bf3146107fd578063e2b4ce9714610812578063e3d670d714610827578063e61c51ca14610848578063eadd3cea14610860578063f36febda14610878578063f40b51f81461089c578063f41c4319146108b4578063f4217648146108cc575b36156102ae576040805160e560020a62461bcd02815260206004820152601a60248201527f6d73672064617461206e6565647320746f20626520656d707479000000000000604482015290519081900360640190fd5b6040805133815234602082015281517f88a5966d370b9919b20f3e2c13ff65706f196a4e32cc2c12bf57088f88525874929181900390910190a1005b3480156102f657600080fd5b506103217bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19600435166108ec565b604080519115158252519081900360200190f35b34801561034157600080fd5b5061034a610934565b60408051918252519081900360200190f35b34801561036857600080fd5b5061037460043561093b565b005b34801561038257600080fd5b50610374600435610a6c565b34801561039a57600080fd5b5061034a610c8f565b3480156103af57600080fd5b50610321610ca0565b3480156103c457600080fd5b50610374600435610cc1565b3480156103dc57600080fd5b5061034a610d4f565b3480156103f157600080fd5b50610321610d55565b34801561040657600080fd5b5061040f610d5e565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561044b578181015183820152602001610433565b505050509050019250505060405180910390f35b34801561046b57600080fd5b50610321610dc0565b34801561048057600080fd5b50610321600160a060020a0360043516610dc9565b610374600160a060020a0360043516602435610dde565b3480156104b857600080fd5b50610374600435611112565b3480156104d057600080fd5b5061037460043561123d565b3480156104e857600080fd5b5061037460048035600160a060020a03169060248035916044359182019101356112d3565b34801561051957600080fd5b5061040f611605565b34801561052e57600080fd5b50610374600435611665565b34801561054657600080fd5b5061034a6119c2565b34801561055b57600080fd5b5061037460048035602481019101356119ce565b34801561057b57600080fd5b50610321611c68565b34801561059057600080fd5b50610374611c71565b3480156105a557600080fd5b50610374600435611d8c565b3480156105bd57600080fd5b5061034a611eb5565b3480156105d257600080fd5b506105db611ebb565b60408051600160a060020a039092168252519081900360200190f35b34801561060357600080fd5b5061034a611eca565b34801561061857600080fd5b506103746004803560248101910135611ed6565b34801561063857600080fd5b5061034a6122c9565b34801561064d57600080fd5b506105db6122cf565b34801561066257600080fd5b5061034a6122de565b34801561067757600080fd5b506103746004356122e4565b34801561068f57600080fd5b50610374600160a060020a03600435166024351515612407565b3480156106b557600080fd5b5061034a600160a060020a0360043516602435612646565b3480156106d957600080fd5b506103216126f1565b3480156106ee57600080fd5b50610374600160a060020a0360043581169060243516604435612700565b34801561071857600080fd5b5061034a6129fb565b34801561072d57600080fd5b50610321612a01565b34801561074257600080fd5b50610374600435612a0a565b34801561075a57600080fd5b5061034a612e33565b34801561076f57600080fd5b506040805160206004803580820135838102808601850190965280855261034a95369593946024949385019291829185019084908082843750949750612e399650505050505050565b3480156107c457600080fd5b50610374600435612ee6565b3480156107dc57600080fd5b506105db60043561310d565b3480156107f457600080fd5b5061034a613135565b34801561080957600080fd5b5061032161313b565b34801561081e57600080fd5b5061034a613149565b34801561083357600080fd5b5061034a600160a060020a036004351661314f565b34801561085457600080fd5b506103746004356131fc565b34801561086c57600080fd5b50610374600435613367565b34801561088457600080fd5b5061034a600160a060020a03600435166024356133bf565b3480156108a857600080fd5b506103746004356135bd565b3480156108c057600080fd5b50610374600435613615565b3480156108d857600080fd5b50610374600480356024810191013561366d565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1981167f01ffc9a700000000000000000000000000000000000000000000000000000000145b919050565b600c545b90565b610944336139b3565b1515610988576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b8066038d7ea4c68000111580156109a757506706f05b59d3b200008111155b1515610a23576040805160e560020a62461bcd02815260206004820152602e60248201527f67617320746f7020757020616d6f756e74206973206f7574736964652074686560448201527f206d696e2f6d61782072616e6765000000000000000000000000000000000000606482015290519081900360840190fd5b610a2e600f826139c7565b604080513381526020810183905281517f41ff5d5ce3b7935893a4e7269ec5caae9cca5e3bf0eb4b21d2f443489667112e929181900390910190a150565b610a75336139b3565b80610a845750610a8433613a3f565b1515610ada576040805160e560020a62461bcd02815260206004820152601a60248201527f656974686572206f776e6572206f7220636f6e74726f6c6c6572000000000000604482015290519081900360640190fd5b60085460ff161515610b5c576040805160e560020a62461bcd02815260206004820152602960248201527f77686974656c697374206164646974696f6e20686173206e6f74206265656e2060448201527f7375626d69747465640000000000000000000000000000000000000000000000606482015290519081900360840190fd5b610bbf6006805480602002602001604051908101604052809291908181526020018280548015610bb557602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610b97575b5050505050612e39565b8114610c3b576040805160e560020a62461bcd02815260206004820152603560248201527f68617368206f66207468652070656e64696e672077686974656c69737420616460448201527f646974696f6e20646f6573206e6f74206d617463680000000000000000000000606482015290519081900360840190fd5b610c47600660006143c9565b6008805460ff19169055604080513381526020810183905281517f7794eff834d760583543e6e510e717a5e66d2c064e225f4db448343c3e66afcf929181900390910190a150565b6000610c9b6015613ad8565b905090565b60035474010000000000000000000000000000000000000000900460ff1690565b610cca336139b3565b1515610d0e576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b610d19600982613afe565b6040805182815290517f4b1b970c8a0fa761e7803ed70c13d7aca71904b13df60fbe03f981da1730da919181900360200190a150565b600f5490565b60085460ff1681565b60606007805480602002602001604051908101604052809291908181526020018280548015610db657602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610d98575b5050505050905090565b60195460ff1690565b60046020526000908152604090205460ff1681565b600080610dea336139b3565b1515610e2e576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b610e3784613b64565b1515610e8d576040805160e560020a62461bcd02815260206004820152601260248201527f746f6b656e206e6f74206c6f616461626c650000000000000000000000000000604482015290519081900360640190fd5b610e9784846133bf565b9150610ea4601583613b7e565b610eaf601a54613c2a565b9050600160a060020a0384161561104b5783600160a060020a031663095ea7b382856040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b158015610f2357600080fd5b505af1158015610f37573d6000803e3d6000fd5b505050506040513d6020811015610f4d57600080fd5b50511515610fcb576040805160e560020a62461bcd02815260206004820152602560248201527f455243323020746f6b656e20617070726f76616c2077617320756e737563636560448201527f737366756c000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b80600160a060020a0316631b3c96b485856040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050600060405180830381600087803b15801561102e57600080fd5b505af1158015611042573d6000803e3d6000fd5b505050506110c8565b80600160a060020a0316631b3c96b48486866040518463ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a03168152602001828152602001925050506000604051808303818588803b1580156110ae57600080fd5b505af11580156110c2573d6000803e3d6000fd5b50505050505b60408051600160a060020a03861681526020810185905281517f5f65674bec9af81f71be68674135a0ea3f163fb91984e3893d06da9f6ea2ce8a929181900390910190a150505050565b61111b336139b3565b151561115f576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b8066038d7ea4c680001115801561117857506014548111155b15156111f4576040805160e560020a62461bcd02815260206004820152602d60248201527f63617264206c6f616420616d6f756e74206973206f757473696465207468652060448201527f6d696e2f6d61782072616e676500000000000000000000000000000000000000606482015290519081900360840190fd5b6111ff6015826139c7565b604080513381526020810183905281517f0b05243483e17c3f3377aee82b7d47e5700b48288695fc08b7ecc2759afa44ef929181900390910190a150565b611246336139b3565b151561128a576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b6112956009826139c7565b604080513381526020810183905281517f068f112e5ec923d412be64779fe69e0fcbb6784c6617e94cccc8fd348f2e0f21929181900390910190a150565b6000806000806112e2336139b3565b1515611326576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b600485106114c75761136a86868080601f0160208091040260200160405190810160405280939291908181526020018383808284375060009450613d219350505050565b935063ffffffff841663a9059cbb148061138d575063ffffffff841663095ea7b3145b156114c7576044851015611411576040805160e560020a62461bcd02815260206004820152602b60248201527f696e76616c6964207472616e73666572202f20617070726f7665207472616e7360448201527f616374696f6e2064617461000000000000000000000000000000000000000000606482015290519081900360840190fd5b61144d86868080601f0160208091040260200160405190810160405280939291908181526020018383808284375060249450613dfa9350505050565b925061148b86868080601f0160208091040260200160405190810160405280939291908181526020018383808284375060109450613e6d9350505050565b600160a060020a03811660009081526004602052604090205490925060ff1615156114c7576114ba8884612646565b90506114c7600982613b7e565b600160a060020a03881660009081526004602052604090205460ff1615156114f4576114f4600988613b7e565b61153388888888905089898080601f01602080910402602001604051908101604052809392919081815260200183838082843750613f3c945050505050565b1515611589576040805160e560020a62461bcd02815260206004820152601c60248201527f657865637574696e67207472616e73616374696f6e206661696c656400000000604482015290519081900360640190fd5b7faf022f6b53b11c364e2dfc0aea08eb9416c94f2661451ea82ead8831385617a6888888886040518085600160a060020a0316600160a060020a03168152602001848152602001806020018281038252848482818152602001925080828437604051920182900397509095505050505050a15050505050505050565b60606006805480602002602001604051908101604052809291908181526020018280548015610db657602002820191906000526020600020908154600160a060020a03168152600190910190602001808311610d98575050505050905090565b600061167033613a3f565b15156116b4576040805160e560020a62461bcd02815260206004820152601a60248201526000805160206144ef833981519152604482015290519081900360640190fd5b60085460ff161515611736576040805160e560020a62461bcd02815260206004820152602960248201527f77686974656c697374206164646974696f6e20686173206e6f74206265656e2060448201527f7375626d69747465640000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6117976006805480602002602001604051908101604052809291908181526020018280548015610bb557602002820191906000526020600020908154600160a060020a03168152600190910190602001808311610b97575050505050612e39565b8214611813576040805160e560020a62461bcd02815260206004820152603360248201527f68617368206f66207468652070656e64696e672077686974656c69737420616460448201527f646974696f6e20646f206e6f74206d6174636800000000000000000000000000606482015290519081900360840190fd5b5060005b60065481101561190e576004600060068381548110151561183457fe5b6000918252602080832090910154600160a060020a0316835282019290925260400190205460ff1615156119065760016004600060068481548110151561187757fe5b600091825260208083209190910154600160a060020a031683528201929092526040019020805460ff19169115159190911790556006805460059190839081106118bd57fe5b600091825260208083209091015483546001810185559383529120909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039092169190911790555b600101611817565b7fb2f6cccee7a369e23e293c25aa19bef80af11eb26deba3ea0f2a02783f752e4a3360066040518083600160a060020a0316600160a060020a0316815260200180602001828103825283818154815260200191508054801561199957602002820191906000526020600020905b8154600160a060020a0316815260019091019060200180831161197b575b5050935050505060405180910390a16119b4600660006143c9565b50506008805460ff19169055565b6000610c9b6009613ad8565b6119d7336139b3565b1515611a1b576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b60085460ff16158015611a365750600854610100900460ff16155b1515611ab2576040805160e560020a62461bcd02815260206004820152602e60248201527f77686974656c697374206f7065726174696f6e2068617320616c72656164792060448201527f6265656e207375626d6974746564000000000000000000000000000000000000606482015290519081900360840190fd5b60085462010000900460ff161515611b3a576040805160e560020a62461bcd02815260206004820152602260248201527f77686974656c69737420686173206e6f74206265656e20696e697469616c697a60448201527f6564000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60008111611bb8576040805160e560020a62461bcd02815260206004820152602260248201527f70656e64696e672077686974656c6973742072656d6f76616c20697320656d7060448201527f7479000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b611bc4600783836143ea565b506008805461ff00191661010017905560408051602080840282810182019093528382527ffbc0e5ca6c7e4858daf0fdb185ef5186203e74ec9c64737e93c0aeaec596e1d19285928592611c2d9285918591829185019084908082843750612e39945050505050565b604080516020808201849052828252918101849052908190606082019086908602808284376040519201829003965090945050505050a15050565b600d5460ff1690565b611c7a336139b3565b1515611cbe576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b60035474010000000000000000000000000000000000000000900460ff161515611d32576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b6003805473ffffffffffffffffffffffffffffffffffffffff19169055604080516000808252602082015281517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea5929181900390910190a1565b611d95336139b3565b1515611dd9576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b8066038d7ea4c6800011158015611df857506706f05b59d3b200008111155b1515611e74576040805160e560020a62461bcd02815260206004820152602e60248201527f67617320746f7020757020616d6f756e74206973206f7574736964652074686560448201527f206d696e2f6d61782072616e6765000000000000000000000000000000000000606482015290519081900360840190fd5b611e7f600f82613afe565b6040805182815290517faf2a77cd04c3cc155588dd3bf67b310ab4fb3b1da3cf6b8d7d4d2aa1d09b794c9181900360200190a150565b601a5490565b600154600160a060020a031690565b6000610c9b600f613ad8565b611edf336139b3565b1515611f23576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b60085460ff16158015611f3e5750600854610100900460ff16155b1515611fba576040805160e560020a62461bcd02815260206004820152602e60248201527f77686974656c697374206f7065726174696f6e2068617320616c72656164792060448201527f6265656e207375626d6974746564000000000000000000000000000000000000606482015290519081900360840190fd5b8181808060200260200160405190810160405280939291908181526020018383602002808284375060009450505050505b815181101561211357612014828281518110151561200557fe5b906020019060200201516139b3565b1561207d576040805160e560020a62461bcd02815260206004820152602d602482015260008051602061450f83398151915260448201527f6f776e6572206164647265737300000000000000000000000000000000000000606482015290519081900360840190fd5b815160009083908390811061208e57fe5b60209081029091010151600160a060020a0316141561210b576040805160e560020a62461bcd02815260206004820152602c602482015260008051602061450f83398151915260448201527f7a65726f20616464726573730000000000000000000000000000000000000000606482015290519081900360840190fd5b600101611feb565b60085462010000900460ff16151561219b576040805160e560020a62461bcd02815260206004820152602260248201527f77686974656c69737420686173206e6f74206265656e20696e697469616c697a60448201527f6564000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60008311612219576040805160e560020a62461bcd02815260206004820152602360248201527f70656e64696e672077686974656c697374206164646974696f6e20697320656d60448201527f7074790000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b612225600685856143ea565b506008805460ff1916600117905560408051602080860282810182019093528582527f9c80b3b5f68b3e017766d59e8d09b34efe6462b05c398f35cab9e271d9bc3b9c928792879261228c9285918591829185019084908082843750612e39945050505050565b604080516020808201849052828252918101849052908190606082019086908602808284376040519201829003965090945050505050a150505050565b600e5490565b600354600160a060020a031690565b60095490565b6122ed336139b3565b1515612331576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b8066038d7ea4c680001115801561234a57506014548111155b15156123c6576040805160e560020a62461bcd02815260206004820152602d60248201527f63617264206c6f616420616d6f756e74206973206f757473696465207468652060448201527f6d696e2f6d61782072616e676500000000000000000000000000000000000000606482015290519081900360840190fd5b6123d1601582613afe565b6040805182815290517fc178d379965e5657b6fc57494e392f121a14119215dfb422aad7db4cc03f2d109181900360200190a150565b612410336139b3565b1515612454576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b60035474010000000000000000000000000000000000000000900460ff1615156124c8576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b600160a060020a038216151561254e576040805160e560020a62461bcd02815260206004820152602360248201527f6f776e65722063616e6e6f742062652073657420746f207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6003805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000831515908102919091179091556125ce5760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b60035460408051600160a060020a039283168152918416602083015280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1506003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60008060008061265586613f5f565b5050509350935093505080156126e3578115156126bc576040805160e560020a62461bcd02815260206004820152600f60248201527f746f6b656e207261746520697320300000000000000000000000000000000000604482015290519081900360640190fd5b6126dc836126d0878563ffffffff61409116565b9063ffffffff6140c616565b93506126e8565b600093505b50505092915050565b60085462010000900460ff1681565b600061270b336139b3565b151561274f576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b818015156127a7576040805160e560020a62461bcd02815260206004820152601d60248201527f70726f76696465642076616c75652063616e6e6f74206265207a65726f000000604482015290519081900360640190fd5b600160a060020a0385161515612807576040805160e560020a62461bcd02815260206004820181905260248201527f5f746f20616464726573732063616e6e6f742062652073657420746f20307830604482015290519081900360640190fd5b600160a060020a03851660009081526004602052604090205460ff16151561285357829150600160a060020a03841615612848576128458484612646565b91505b612853600983613b7e565b600160a060020a038416156129725783600160a060020a031663a9059cbb86856040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b1580156128c557600080fd5b505af11580156128d9573d6000803e3d6000fd5b505050506040513d60208110156128ef57600080fd5b5051151561296d576040805160e560020a62461bcd02815260206004820152602560248201527f455243323020746f6b656e207472616e736665722077617320756e737563636560448201527f737366756c000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6129aa565b604051600160a060020a0386169084156108fc029085906000818181858888f193505050501580156129a8573d6000803e3d6000fd5b505b60408051600160a060020a0380881682528616602082015280820185905290517fd1ba4ac2e2a11b5101f6cb4d978f514a155b421e8ec396d2d9abaf0bb02917ee9181900360600190a15050505050565b60185490565b60135460ff1690565b600080612a1633613a3f565b1515612a5a576040805160e560020a62461bcd02815260206004820152601a60248201526000805160206144ef833981519152604482015290519081900360640190fd5b600854610100900460ff161515612ae1576040805160e560020a62461bcd02815260206004820152602860248201527f77686974656c6973742072656d6f76616c20686173206e6f74206265656e207360448201527f75626d6974746564000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b612b426007805480602002602001604051908101604052809291908181526020018280548015610bb557602002820191906000526020600020908154600160a060020a03168152600190910190602001808311610b97575050505050612e39565b8314612be4576040805160e560020a62461bcd02815260206004820152604760248201527f68617368206f66207468652070656e64696e672077686974656c69737420726560448201527f6d6f76616c20646f6573206e6f74206d617463682074686520636f6e6669726d60648201527f6564206861736800000000000000000000000000000000000000000000000000608482015290519081900360a40190fd5b600091505b600754821015612d7d5760046000600784815481101515612c0657fe5b6000918252602080832090910154600160a060020a0316835282019290925260400190205460ff1615612d7257600060046000600785815481101515612c4857fe5b600091825260208083209190910154600160a060020a031683528201929092526040018120805460ff19169215159290921790915590505b600554612c9490600163ffffffff6140e916565b811015612d5d576007805483908110612ca957fe5b60009182526020909120015460058054600160a060020a039092169183908110612ccf57fe5b600091825260209091200154600160a060020a03161415612d5557600580546000198101908110612cfc57fe5b60009182526020909120015460058054600160a060020a039092169183908110612d2257fe5b9060005260206000200160006101000a815481600160a060020a030219169083600160a060020a03160217905550612d5d565b600101612c80565b6005805490612d7090600019830161445a565b505b600190910190612be9565b7fd218c430fa348f4ce67791021b6b89c0c3eacd4ead1d8f5b83c60038ec28249b3360076040518083600160a060020a0316600160a060020a03168152602001806020018281038252838181548152602001915080548015612e0857602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311612dea575b5050935050505060405180910390a1612e23600760006143c9565b50506008805461ff001916905550565b60125490565b60008160405160200180828051906020019060200280838360005b83811015612e6c578181015183820152602001612e54565b505050509050019150506040516020818303038152906040526040518082805190602001908083835b60208310612eb45780518252601f199092019160209182019101612e95565b5181516020939093036101000a6000190180199091169216919091179052604051920182900390912095945050505050565b612eef336139b3565b80612efe5750612efe33613a3f565b1515612f54576040805160e560020a62461bcd02815260206004820152601a60248201527f656974686572206f776e6572206f7220636f6e74726f6c6c6572000000000000604482015290519081900360640190fd5b600854610100900460ff161515612fdb576040805160e560020a62461bcd02815260206004820152602860248201527f77686974656c6973742072656d6f76616c20686173206e6f74206265656e207360448201527f75626d6974746564000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b61303c6007805480602002602001604051908101604052809291908181526020018280548015610bb557602002820191906000526020600020908154600160a060020a03168152600190910190602001808311610b97575050505050612e39565b81146130b8576040805160e560020a62461bcd02815260206004820152603260248201527f68617368206f66207468652070656e64696e672077686974656c69737420726560448201527f6d6f76616c20646f206e6f74206d617463680000000000000000000000000000606482015290519081900360840190fd5b6130c4600760006143c9565b6008805461ff0019169055604080513381526020810183905281517f13c935eb475aa0f6e931fece83e2ac44569ce2d53460d29a6dedab40b965c8a3929181900390910190a150565b600580548290811061311b57fe5b600091825260209091200154600160a060020a0316905081565b60155490565b600854610100900460ff1681565b60025490565b6000600160a060020a038216156131f457604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a038416916370a082319160248083019260209291908290030181600087803b1580156131c157600080fd5b505af11580156131d5573d6000803e3d6000fd5b505050506040513d60208110156131eb57600080fd5b5051905061092f565b50303161092f565b80801515613254576040805160e560020a62461bcd02815260206004820152601d60248201527f70726f76696465642076616c75652063616e6e6f74206265207a65726f000000604482015290519081900360640190fd5b61325d336139b3565b8061326c575061326c33613a3f565b15156132c2576040805160e560020a62461bcd02815260206004820152601a60248201527f656974686572206f776e6572206f7220636f6e74726f6c6c6572000000000000604482015290519081900360640190fd5b6132cd600f83613b7e565b6132d56122cf565b600160a060020a03166108fc839081150290604051600060405180830381858888f1935050505015801561330d573d6000803e3d6000fd5b507f611b7c0d84fda988026215bef9b3e4d81cbceced7e679be6d5e044b588467c0e336133386122cf565b60408051600160a060020a03938416815291909216602082015280820185905290519081900360600190a15050565b61337033613a3f565b15156133b4576040805160e560020a62461bcd02815260206004820152601a60248201526000805160206144ef833981519152604482015290519081900360640190fd5b611295600982614100565b60008060008060008060006133d2614193565b600160a060020a031689600160a060020a031614156133f3578796506135b1565b600160a060020a038916156134da5761340b89613f5f565b5050509650965096505083151561346c576040805160e560020a62461bcd02815260206004820152601660248201527f746f6b656e206973206e6f7420617661696c61626c6500000000000000000000604482015290519081900360640190fd5b8415156134c3576040805160e560020a62461bcd02815260206004820152600f60248201527f746f6b656e207261746520697320300000000000000000000000000000000000604482015290519081900360640190fd5b6134d7866126d08a8863ffffffff61409116565b97505b6134e261420e565b50505093509350935050801515613543576040805160e560020a62461bcd02815260206004820152601660248201527f746f6b656e206973206e6f7420617661696c61626c6500000000000000000000604482015290519081900360640190fd5b81151561359a576040805160e560020a62461bcd02815260206004820152601460248201527f737461626c65636f696e20726174652069732030000000000000000000000000604482015290519081900360640190fd5b6135ae826126d08a8663ffffffff61409116565b96505b50505050505092915050565b6135c633613a3f565b151561360a576040805160e560020a62461bcd02815260206004820152601a60248201526000805160206144ef833981519152604482015290519081900360640190fd5b6111ff601582614100565b61361e33613a3f565b1515613662576040805160e560020a62461bcd02815260206004820152601a60248201526000805160206144ef833981519152604482015290519081900360640190fd5b610a2e600f82614100565b6000613678336139b3565b15156136bc576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b8282808060200260200160405190810160405280939291908181526020018383602002808284375060009450505050505b815181101561380657613707828281518110151561200557fe5b15613770576040805160e560020a62461bcd02815260206004820152602d602482015260008051602061450f83398151915260448201527f6f776e6572206164647265737300000000000000000000000000000000000000606482015290519081900360840190fd5b815160009083908390811061378157fe5b60209081029091010151600160a060020a031614156137fe576040805160e560020a62461bcd02815260206004820152602c602482015260008051602061450f83398151915260448201527f7a65726f20616464726573730000000000000000000000000000000000000000606482015290519081900360840190fd5b6001016136ed565b60085462010000900460ff161561388d576040805160e560020a62461bcd02815260206004820152602660248201527f77686974656c6973742068617320616c7265616479206265656e20696e69746960448201527f616c697a65640000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600092505b8383101561393e576001600460008787878181106138ac57fe5b60209081029290920135600160a060020a0316835250810191909152604001600020805460ff191691151591909117905560058585858181106138eb57fe5b83546001808201865560009586526020958690209091018054929095029390930135600160a060020a031673ffffffffffffffffffffffffffffffffffffffff1990911617909255939093019250613892565b6008805462ff0000191662010000179055604080513380825260208083018481529383018890527fb2f6cccee7a369e23e293c25aa19bef80af11eb26deba3ea0f2a02783f752e4a93919289928992606083019085908502808284376040519201829003965090945050505050a15050505050565b600354600160a060020a0390811691161490565b600482015460ff1615613a24576040805160e560020a62461bcd02815260206004820181905260248201527f6461696c79206c696d69742068617320616c7265616479206265656e20736574604482015290519081900360640190fd5b613a2e828261431b565b50600401805460ff19166001179055565b6000613a4c600254613c2a565b600160a060020a031663b429afeb836040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b158015613aa657600080fd5b505af1158015613aba573d6000803e3d6000fd5b505050506040513d6020811015613ad057600080fd5b505192915050565b600081600201546201518001421115613af35750805461092f565b50600181015461092f565b600482015460ff161515613b5c576040805160e560020a62461bcd02815260206004820152601660248201527f6c696d697420686173206e6f74206265656e2073657400000000000000000000604482015290519081900360640190fd5b600390910155565b600080613b7083613f5f565b509098975050505050505050565b613b878261433e565b6001820154811115613c09576040805160e560020a62461bcd02815260206004820152603260248201527f617661696c61626c652068617320746f2062652067726561746572206f72206560448201527f7175616c20746f2075736520616d6f756e740000000000000000000000000000606482015290519081900360840190fd5b6001820154613c1e908263ffffffff6140e916565b82600101819055505050565b60008054604080517f0178b8bf000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691630178b8bf9160248082019260209290919082900301818787803b158015613c9157600080fd5b505af1158015613ca5573d6000803e3d6000fd5b505050506040513d6020811015613cbb57600080fd5b5051604080517f3b3b57de000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691633b3b57de916024808201926020929091908290030181600087803b158015613aa657600080fd5b60008060008084600401865110151515613d85576040805160e560020a62461bcd02815260206004820152601460248201527f736c6963696e67206f7574206f662072616e6765000000000000000000000000604482015290519081900360640190fd5b5060009150819050805b60048160ff161015613df05761010083029250858160ff168601815181101515613db557fe5b01602001517f010000000000000000000000000000000000000000000000000000000000000090819004810204928301929150600101613d8f565b5090949350505050565b60008082602001845110151515613e5b576040805160e560020a62461bcd02815260206004820152601460248201527f736c6963696e67206f7574206f662072616e6765000000000000000000000000604482015290519081900360640190fd5b505081810160200151805b5092915050565b60008060008084601401865110151515613ed1576040805160e560020a62461bcd02815260206004820152601460248201527f736c6963696e67206f7574206f662072616e6765000000000000000000000000604482015290519081900360640190fd5b5060009150819050805b60148160ff161015613df05761010083029250858160ff168601815181101515613f0157fe5b01602001517f010000000000000000000000000000000000000000000000000000000000000090819004810204928301929150600101613edb565b6000806040516020840160008287838a8c6187965a03f198975050505050505050565b6060600080600080600080613f75600e54613c2a565b600160a060020a0316631f69565f896040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b158015613fcf57600080fd5b505af1158015613fe3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260e081101561400c57600080fd5b81019080805164010000000081111561402457600080fd5b8201602081018481111561403757600080fd5b815164010000000081118282018710171561405157600080fd5b5050602082015160408301516060840151608085015160a086015160c090960151949e50929c50909a509850965090945092505050919395979092949650565b6000808315156140a45760009150613e66565b508282028284828115156140b457fe5b04146140bf57600080fd5b9392505050565b6000808083116140d557600080fd5b82848115156140e057fe5b04949350505050565b600080838311156140f957600080fd5b5050900390565b60038201548114614181576040805160e560020a62461bcd02815260206004820152602960248201527f636f6e6669726d656420616e64207375626d6974746564206c696d697473206460448201527f6f6e74206d617463680000000000000000000000000000000000000000000000606482015290519081900360840190fd5b61418f82836003015461431b565b5050565b60006141a0600e54613c2a565b600160a060020a031663e9cbd8226040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156141dd57600080fd5b505af11580156141f1573d6000803e3d6000fd5b505050506040513d602081101561420757600080fd5b5051905090565b6060600080600080600080614224600e54613c2a565b600160a060020a0316633efec5e96040518163ffffffff1660e060020a028152600401600060405180830381600087803b15801561426157600080fd5b505af1158015614275573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260e081101561429e57600080fd5b8101908080516401000000008111156142b657600080fd5b820160208101848111156142c957600080fd5b81516401000000008111828201871017156142e357600080fd5b5050602082015160408301516060840151608085015160a086015160c090960151949f939e50919c509a509850919650945092505050565b6143248261433e565b808255600182015481101561418f57815460018301555050565b6002810154600090614359906201518063ffffffff6143b716565b42111561418f5761437e620151806126d08460020154426140e990919063ffffffff16565b90506143a7614396826201518063ffffffff61409116565b60028401549063ffffffff6143b716565b6002830155815460018301555050565b6000828201838110156140bf57600080fd5b50805460008255906000526020600020908101906143e79190614483565b50565b82805482825590600052602060002090810192821561444a579160200282015b8281111561444a57815473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0384351617825560209092019160019091019061440a565b5061445692915061449d565b5090565b81548183558181111561447e5760008381526020902061447e918101908301614483565b505050565b61093891905b808211156144565760008155600101614489565b61093891905b8082111561445657805473ffffffffffffffffffffffffffffffffffffffff191681556001016144a3560073656e646572206973206e6f7420616e206f776e65720000000000000000000073656e646572206973206e6f74206120636f6e74726f6c6c657200000000000070726f76696465642077686974656c69737420636f6e7461696e732074686520a165627a7a72305820c601896aac0a8caea2406e408a1ac329c9ce21c1397ce61e69091617745328f20029","bin-runtime":"6080604052600436106102585763ffffffff60e060020a60003504166301ffc9a781146102ea578063027ef3eb146103355780630f3a85d81461035c578063100f23fd146103765780631efd02991461038e5780632121dc75146103a357806321ce918d146103b85780632587a6a2146103d057806326d05ab2146103e5578063294f4025146103fa578063324e9f531461045f57806332531c3c146104745780633a43199f146104955780633bfec254146104ac5780633c672eb7146104c45780633f579f42146104dc57806347b55a9d1461050d5780635adc02ab146105225780635d2362a81461053a5780636137d6701461054f57806365e6bd8a1461056f578063715018a61461058457806374624c5514610599578063747c31d6146105b15780637d73b231146105c65780637d7d0046146105f75780637fd004fa1461060c578063877337b01461062c5780638da5cb5b146106415780639b0dfd2714610656578063b221f3161461066b578063b242e53414610683578063b87e21ef146106a9578063be40ba79146106cd578063beabacc8146106e2578063c4856cd91461070c578063c583143814610721578063cbd2ac6814610736578063cc0e7e561461074e578063cd7958dd14610763578063ce0b5bd5146107b8578063d251fefc146107d0578063da84b1ed146107e8578063de212bf3146107fd578063e2b4ce9714610812578063e3d670d714610827578063e61c51ca14610848578063eadd3cea14610860578063f36febda14610878578063f40b51f81461089c578063f41c4319146108b4578063f4217648146108cc575b36156102ae576040805160e560020a62461bcd02815260206004820152601a60248201527f6d73672064617461206e6565647320746f20626520656d707479000000000000604482015290519081900360640190fd5b6040805133815234602082015281517f88a5966d370b9919b20f3e2c13ff65706f196a4e32cc2c12bf57088f88525874929181900390910190a1005b3480156102f657600080fd5b506103217bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19600435166108ec565b604080519115158252519081900360200190f35b34801561034157600080fd5b5061034a610934565b60408051918252519081900360200190f35b34801561036857600080fd5b5061037460043561093b565b005b34801561038257600080fd5b50610374600435610a6c565b34801561039a57600080fd5b5061034a610c8f565b3480156103af57600080fd5b50610321610ca0565b3480156103c457600080fd5b50610374600435610cc1565b3480156103dc57600080fd5b5061034a610d4f565b3480156103f157600080fd5b50610321610d55565b34801561040657600080fd5b5061040f610d5e565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561044b578181015183820152602001610433565b505050509050019250505060405180910390f35b34801561046b57600080fd5b50610321610dc0565b34801561048057600080fd5b50610321600160a060020a0360043516610dc9565b610374600160a060020a0360043516602435610dde565b3480156104b857600080fd5b50610374600435611112565b3480156104d057600080fd5b5061037460043561123d565b3480156104e857600080fd5b5061037460048035600160a060020a03169060248035916044359182019101356112d3565b34801561051957600080fd5b5061040f611605565b34801561052e57600080fd5b50610374600435611665565b34801561054657600080fd5b5061034a6119c2565b34801561055b57600080fd5b5061037460048035602481019101356119ce565b34801561057b57600080fd5b50610321611c68565b34801561059057600080fd5b50610374611c71565b3480156105a557600080fd5b50610374600435611d8c565b3480156105bd57600080fd5b5061034a611eb5565b3480156105d257600080fd5b506105db611ebb565b60408051600160a060020a039092168252519081900360200190f35b34801561060357600080fd5b5061034a611eca565b34801561061857600080fd5b506103746004803560248101910135611ed6565b34801561063857600080fd5b5061034a6122c9565b34801561064d57600080fd5b506105db6122cf565b34801561066257600080fd5b5061034a6122de565b34801561067757600080fd5b506103746004356122e4565b34801561068f57600080fd5b50610374600160a060020a03600435166024351515612407565b3480156106b557600080fd5b5061034a600160a060020a0360043516602435612646565b3480156106d957600080fd5b506103216126f1565b3480156106ee57600080fd5b50610374600160a060020a0360043581169060243516604435612700565b34801561071857600080fd5b5061034a6129fb565b34801561072d57600080fd5b50610321612a01565b34801561074257600080fd5b50610374600435612a0a565b34801561075a57600080fd5b5061034a612e33565b34801561076f57600080fd5b506040805160206004803580820135838102808601850190965280855261034a95369593946024949385019291829185019084908082843750949750612e399650505050505050565b3480156107c457600080fd5b50610374600435612ee6565b3480156107dc57600080fd5b506105db60043561310d565b3480156107f457600080fd5b5061034a613135565b34801561080957600080fd5b5061032161313b565b34801561081e57600080fd5b5061034a613149565b34801561083357600080fd5b5061034a600160a060020a036004351661314f565b34801561085457600080fd5b506103746004356131fc565b34801561086c57600080fd5b50610374600435613367565b34801561088457600080fd5b5061034a600160a060020a03600435166024356133bf565b3480156108a857600080fd5b506103746004356135bd565b3480156108c057600080fd5b50610374600435613615565b3480156108d857600080fd5b50610374600480356024810191013561366d565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1981167f01ffc9a700000000000000000000000000000000000000000000000000000000145b919050565b600c545b90565b610944336139b3565b1515610988576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b8066038d7ea4c68000111580156109a757506706f05b59d3b200008111155b1515610a23576040805160e560020a62461bcd02815260206004820152602e60248201527f67617320746f7020757020616d6f756e74206973206f7574736964652074686560448201527f206d696e2f6d61782072616e6765000000000000000000000000000000000000606482015290519081900360840190fd5b610a2e600f826139c7565b604080513381526020810183905281517f41ff5d5ce3b7935893a4e7269ec5caae9cca5e3bf0eb4b21d2f443489667112e929181900390910190a150565b610a75336139b3565b80610a845750610a8433613a3f565b1515610ada576040805160e560020a62461bcd02815260206004820152601a60248201527f656974686572206f776e6572206f7220636f6e74726f6c6c6572000000000000604482015290519081900360640190fd5b60085460ff161515610b5c576040805160e560020a62461bcd02815260206004820152602960248201527f77686974656c697374206164646974696f6e20686173206e6f74206265656e2060448201527f7375626d69747465640000000000000000000000000000000000000000000000606482015290519081900360840190fd5b610bbf6006805480602002602001604051908101604052809291908181526020018280548015610bb557602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610b97575b5050505050612e39565b8114610c3b576040805160e560020a62461bcd02815260206004820152603560248201527f68617368206f66207468652070656e64696e672077686974656c69737420616460448201527f646974696f6e20646f6573206e6f74206d617463680000000000000000000000606482015290519081900360840190fd5b610c47600660006143c9565b6008805460ff19169055604080513381526020810183905281517f7794eff834d760583543e6e510e717a5e66d2c064e225f4db448343c3e66afcf929181900390910190a150565b6000610c9b6015613ad8565b905090565b60035474010000000000000000000000000000000000000000900460ff1690565b610cca336139b3565b1515610d0e576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b610d19600982613afe565b6040805182815290517f4b1b970c8a0fa761e7803ed70c13d7aca71904b13df60fbe03f981da1730da919181900360200190a150565b600f5490565b60085460ff1681565b60606007805480602002602001604051908101604052809291908181526020018280548015610db657602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610d98575b5050505050905090565b60195460ff1690565b60046020526000908152604090205460ff1681565b600080610dea336139b3565b1515610e2e576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b610e3784613b64565b1515610e8d576040805160e560020a62461bcd02815260206004820152601260248201527f746f6b656e206e6f74206c6f616461626c650000000000000000000000000000604482015290519081900360640190fd5b610e9784846133bf565b9150610ea4601583613b7e565b610eaf601a54613c2a565b9050600160a060020a0384161561104b5783600160a060020a031663095ea7b382856040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b158015610f2357600080fd5b505af1158015610f37573d6000803e3d6000fd5b505050506040513d6020811015610f4d57600080fd5b50511515610fcb576040805160e560020a62461bcd02815260206004820152602560248201527f455243323020746f6b656e20617070726f76616c2077617320756e737563636560448201527f737366756c000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b80600160a060020a0316631b3c96b485856040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050600060405180830381600087803b15801561102e57600080fd5b505af1158015611042573d6000803e3d6000fd5b505050506110c8565b80600160a060020a0316631b3c96b48486866040518463ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a03168152602001828152602001925050506000604051808303818588803b1580156110ae57600080fd5b505af11580156110c2573d6000803e3d6000fd5b50505050505b60408051600160a060020a03861681526020810185905281517f5f65674bec9af81f71be68674135a0ea3f163fb91984e3893d06da9f6ea2ce8a929181900390910190a150505050565b61111b336139b3565b151561115f576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b8066038d7ea4c680001115801561117857506014548111155b15156111f4576040805160e560020a62461bcd02815260206004820152602d60248201527f63617264206c6f616420616d6f756e74206973206f757473696465207468652060448201527f6d696e2f6d61782072616e676500000000000000000000000000000000000000606482015290519081900360840190fd5b6111ff6015826139c7565b604080513381526020810183905281517f0b05243483e17c3f3377aee82b7d47e5700b48288695fc08b7ecc2759afa44ef929181900390910190a150565b611246336139b3565b151561128a576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b6112956009826139c7565b604080513381526020810183905281517f068f112e5ec923d412be64779fe69e0fcbb6784c6617e94cccc8fd348f2e0f21929181900390910190a150565b6000806000806112e2336139b3565b1515611326576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b600485106114c75761136a86868080601f0160208091040260200160405190810160405280939291908181526020018383808284375060009450613d219350505050565b935063ffffffff841663a9059cbb148061138d575063ffffffff841663095ea7b3145b156114c7576044851015611411576040805160e560020a62461bcd02815260206004820152602b60248201527f696e76616c6964207472616e73666572202f20617070726f7665207472616e7360448201527f616374696f6e2064617461000000000000000000000000000000000000000000606482015290519081900360840190fd5b61144d86868080601f0160208091040260200160405190810160405280939291908181526020018383808284375060249450613dfa9350505050565b925061148b86868080601f0160208091040260200160405190810160405280939291908181526020018383808284375060109450613e6d9350505050565b600160a060020a03811660009081526004602052604090205490925060ff1615156114c7576114ba8884612646565b90506114c7600982613b7e565b600160a060020a03881660009081526004602052604090205460ff1615156114f4576114f4600988613b7e565b61153388888888905089898080601f01602080910402602001604051908101604052809392919081815260200183838082843750613f3c945050505050565b1515611589576040805160e560020a62461bcd02815260206004820152601c60248201527f657865637574696e67207472616e73616374696f6e206661696c656400000000604482015290519081900360640190fd5b7faf022f6b53b11c364e2dfc0aea08eb9416c94f2661451ea82ead8831385617a6888888886040518085600160a060020a0316600160a060020a03168152602001848152602001806020018281038252848482818152602001925080828437604051920182900397509095505050505050a15050505050505050565b60606006805480602002602001604051908101604052809291908181526020018280548015610db657602002820191906000526020600020908154600160a060020a03168152600190910190602001808311610d98575050505050905090565b600061167033613a3f565b15156116b4576040805160e560020a62461bcd02815260206004820152601a60248201526000805160206144ef833981519152604482015290519081900360640190fd5b60085460ff161515611736576040805160e560020a62461bcd02815260206004820152602960248201527f77686974656c697374206164646974696f6e20686173206e6f74206265656e2060448201527f7375626d69747465640000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6117976006805480602002602001604051908101604052809291908181526020018280548015610bb557602002820191906000526020600020908154600160a060020a03168152600190910190602001808311610b97575050505050612e39565b8214611813576040805160e560020a62461bcd02815260206004820152603360248201527f68617368206f66207468652070656e64696e672077686974656c69737420616460448201527f646974696f6e20646f206e6f74206d6174636800000000000000000000000000606482015290519081900360840190fd5b5060005b60065481101561190e576004600060068381548110151561183457fe5b6000918252602080832090910154600160a060020a0316835282019290925260400190205460ff1615156119065760016004600060068481548110151561187757fe5b600091825260208083209190910154600160a060020a031683528201929092526040019020805460ff19169115159190911790556006805460059190839081106118bd57fe5b600091825260208083209091015483546001810185559383529120909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039092169190911790555b600101611817565b7fb2f6cccee7a369e23e293c25aa19bef80af11eb26deba3ea0f2a02783f752e4a3360066040518083600160a060020a0316600160a060020a0316815260200180602001828103825283818154815260200191508054801561199957602002820191906000526020600020905b8154600160a060020a0316815260019091019060200180831161197b575b5050935050505060405180910390a16119b4600660006143c9565b50506008805460ff19169055565b6000610c9b6009613ad8565b6119d7336139b3565b1515611a1b576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b60085460ff16158015611a365750600854610100900460ff16155b1515611ab2576040805160e560020a62461bcd02815260206004820152602e60248201527f77686974656c697374206f7065726174696f6e2068617320616c72656164792060448201527f6265656e207375626d6974746564000000000000000000000000000000000000606482015290519081900360840190fd5b60085462010000900460ff161515611b3a576040805160e560020a62461bcd02815260206004820152602260248201527f77686974656c69737420686173206e6f74206265656e20696e697469616c697a60448201527f6564000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60008111611bb8576040805160e560020a62461bcd02815260206004820152602260248201527f70656e64696e672077686974656c6973742072656d6f76616c20697320656d7060448201527f7479000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b611bc4600783836143ea565b506008805461ff00191661010017905560408051602080840282810182019093528382527ffbc0e5ca6c7e4858daf0fdb185ef5186203e74ec9c64737e93c0aeaec596e1d19285928592611c2d9285918591829185019084908082843750612e39945050505050565b604080516020808201849052828252918101849052908190606082019086908602808284376040519201829003965090945050505050a15050565b600d5460ff1690565b611c7a336139b3565b1515611cbe576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b60035474010000000000000000000000000000000000000000900460ff161515611d32576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b6003805473ffffffffffffffffffffffffffffffffffffffff19169055604080516000808252602082015281517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea5929181900390910190a1565b611d95336139b3565b1515611dd9576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b8066038d7ea4c6800011158015611df857506706f05b59d3b200008111155b1515611e74576040805160e560020a62461bcd02815260206004820152602e60248201527f67617320746f7020757020616d6f756e74206973206f7574736964652074686560448201527f206d696e2f6d61782072616e6765000000000000000000000000000000000000606482015290519081900360840190fd5b611e7f600f82613afe565b6040805182815290517faf2a77cd04c3cc155588dd3bf67b310ab4fb3b1da3cf6b8d7d4d2aa1d09b794c9181900360200190a150565b601a5490565b600154600160a060020a031690565b6000610c9b600f613ad8565b611edf336139b3565b1515611f23576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b60085460ff16158015611f3e5750600854610100900460ff16155b1515611fba576040805160e560020a62461bcd02815260206004820152602e60248201527f77686974656c697374206f7065726174696f6e2068617320616c72656164792060448201527f6265656e207375626d6974746564000000000000000000000000000000000000606482015290519081900360840190fd5b8181808060200260200160405190810160405280939291908181526020018383602002808284375060009450505050505b815181101561211357612014828281518110151561200557fe5b906020019060200201516139b3565b1561207d576040805160e560020a62461bcd02815260206004820152602d602482015260008051602061450f83398151915260448201527f6f776e6572206164647265737300000000000000000000000000000000000000606482015290519081900360840190fd5b815160009083908390811061208e57fe5b60209081029091010151600160a060020a0316141561210b576040805160e560020a62461bcd02815260206004820152602c602482015260008051602061450f83398151915260448201527f7a65726f20616464726573730000000000000000000000000000000000000000606482015290519081900360840190fd5b600101611feb565b60085462010000900460ff16151561219b576040805160e560020a62461bcd02815260206004820152602260248201527f77686974656c69737420686173206e6f74206265656e20696e697469616c697a60448201527f6564000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60008311612219576040805160e560020a62461bcd02815260206004820152602360248201527f70656e64696e672077686974656c697374206164646974696f6e20697320656d60448201527f7074790000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b612225600685856143ea565b506008805460ff1916600117905560408051602080860282810182019093528582527f9c80b3b5f68b3e017766d59e8d09b34efe6462b05c398f35cab9e271d9bc3b9c928792879261228c9285918591829185019084908082843750612e39945050505050565b604080516020808201849052828252918101849052908190606082019086908602808284376040519201829003965090945050505050a150505050565b600e5490565b600354600160a060020a031690565b60095490565b6122ed336139b3565b1515612331576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b8066038d7ea4c680001115801561234a57506014548111155b15156123c6576040805160e560020a62461bcd02815260206004820152602d60248201527f63617264206c6f616420616d6f756e74206973206f757473696465207468652060448201527f6d696e2f6d61782072616e676500000000000000000000000000000000000000606482015290519081900360840190fd5b6123d1601582613afe565b6040805182815290517fc178d379965e5657b6fc57494e392f121a14119215dfb422aad7db4cc03f2d109181900360200190a150565b612410336139b3565b1515612454576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b60035474010000000000000000000000000000000000000000900460ff1615156124c8576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b600160a060020a038216151561254e576040805160e560020a62461bcd02815260206004820152602360248201527f6f776e65722063616e6e6f742062652073657420746f207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6003805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000831515908102919091179091556125ce5760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b60035460408051600160a060020a039283168152918416602083015280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1506003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60008060008061265586613f5f565b5050509350935093505080156126e3578115156126bc576040805160e560020a62461bcd02815260206004820152600f60248201527f746f6b656e207261746520697320300000000000000000000000000000000000604482015290519081900360640190fd5b6126dc836126d0878563ffffffff61409116565b9063ffffffff6140c616565b93506126e8565b600093505b50505092915050565b60085462010000900460ff1681565b600061270b336139b3565b151561274f576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b818015156127a7576040805160e560020a62461bcd02815260206004820152601d60248201527f70726f76696465642076616c75652063616e6e6f74206265207a65726f000000604482015290519081900360640190fd5b600160a060020a0385161515612807576040805160e560020a62461bcd02815260206004820181905260248201527f5f746f20616464726573732063616e6e6f742062652073657420746f20307830604482015290519081900360640190fd5b600160a060020a03851660009081526004602052604090205460ff16151561285357829150600160a060020a03841615612848576128458484612646565b91505b612853600983613b7e565b600160a060020a038416156129725783600160a060020a031663a9059cbb86856040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b1580156128c557600080fd5b505af11580156128d9573d6000803e3d6000fd5b505050506040513d60208110156128ef57600080fd5b5051151561296d576040805160e560020a62461bcd02815260206004820152602560248201527f455243323020746f6b656e207472616e736665722077617320756e737563636560448201527f737366756c000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6129aa565b604051600160a060020a0386169084156108fc029085906000818181858888f193505050501580156129a8573d6000803e3d6000fd5b505b60408051600160a060020a0380881682528616602082015280820185905290517fd1ba4ac2e2a11b5101f6cb4d978f514a155b421e8ec396d2d9abaf0bb02917ee9181900360600190a15050505050565b60185490565b60135460ff1690565b600080612a1633613a3f565b1515612a5a576040805160e560020a62461bcd02815260206004820152601a60248201526000805160206144ef833981519152604482015290519081900360640190fd5b600854610100900460ff161515612ae1576040805160e560020a62461bcd02815260206004820152602860248201527f77686974656c6973742072656d6f76616c20686173206e6f74206265656e207360448201527f75626d6974746564000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b612b426007805480602002602001604051908101604052809291908181526020018280548015610bb557602002820191906000526020600020908154600160a060020a03168152600190910190602001808311610b97575050505050612e39565b8314612be4576040805160e560020a62461bcd02815260206004820152604760248201527f68617368206f66207468652070656e64696e672077686974656c69737420726560448201527f6d6f76616c20646f6573206e6f74206d617463682074686520636f6e6669726d60648201527f6564206861736800000000000000000000000000000000000000000000000000608482015290519081900360a40190fd5b600091505b600754821015612d7d5760046000600784815481101515612c0657fe5b6000918252602080832090910154600160a060020a0316835282019290925260400190205460ff1615612d7257600060046000600785815481101515612c4857fe5b600091825260208083209190910154600160a060020a031683528201929092526040018120805460ff19169215159290921790915590505b600554612c9490600163ffffffff6140e916565b811015612d5d576007805483908110612ca957fe5b60009182526020909120015460058054600160a060020a039092169183908110612ccf57fe5b600091825260209091200154600160a060020a03161415612d5557600580546000198101908110612cfc57fe5b60009182526020909120015460058054600160a060020a039092169183908110612d2257fe5b9060005260206000200160006101000a815481600160a060020a030219169083600160a060020a03160217905550612d5d565b600101612c80565b6005805490612d7090600019830161445a565b505b600190910190612be9565b7fd218c430fa348f4ce67791021b6b89c0c3eacd4ead1d8f5b83c60038ec28249b3360076040518083600160a060020a0316600160a060020a03168152602001806020018281038252838181548152602001915080548015612e0857602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311612dea575b5050935050505060405180910390a1612e23600760006143c9565b50506008805461ff001916905550565b60125490565b60008160405160200180828051906020019060200280838360005b83811015612e6c578181015183820152602001612e54565b505050509050019150506040516020818303038152906040526040518082805190602001908083835b60208310612eb45780518252601f199092019160209182019101612e95565b5181516020939093036101000a6000190180199091169216919091179052604051920182900390912095945050505050565b612eef336139b3565b80612efe5750612efe33613a3f565b1515612f54576040805160e560020a62461bcd02815260206004820152601a60248201527f656974686572206f776e6572206f7220636f6e74726f6c6c6572000000000000604482015290519081900360640190fd5b600854610100900460ff161515612fdb576040805160e560020a62461bcd02815260206004820152602860248201527f77686974656c6973742072656d6f76616c20686173206e6f74206265656e207360448201527f75626d6974746564000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b61303c6007805480602002602001604051908101604052809291908181526020018280548015610bb557602002820191906000526020600020908154600160a060020a03168152600190910190602001808311610b97575050505050612e39565b81146130b8576040805160e560020a62461bcd02815260206004820152603260248201527f68617368206f66207468652070656e64696e672077686974656c69737420726560448201527f6d6f76616c20646f206e6f74206d617463680000000000000000000000000000606482015290519081900360840190fd5b6130c4600760006143c9565b6008805461ff0019169055604080513381526020810183905281517f13c935eb475aa0f6e931fece83e2ac44569ce2d53460d29a6dedab40b965c8a3929181900390910190a150565b600580548290811061311b57fe5b600091825260209091200154600160a060020a0316905081565b60155490565b600854610100900460ff1681565b60025490565b6000600160a060020a038216156131f457604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a038416916370a082319160248083019260209291908290030181600087803b1580156131c157600080fd5b505af11580156131d5573d6000803e3d6000fd5b505050506040513d60208110156131eb57600080fd5b5051905061092f565b50303161092f565b80801515613254576040805160e560020a62461bcd02815260206004820152601d60248201527f70726f76696465642076616c75652063616e6e6f74206265207a65726f000000604482015290519081900360640190fd5b61325d336139b3565b8061326c575061326c33613a3f565b15156132c2576040805160e560020a62461bcd02815260206004820152601a60248201527f656974686572206f776e6572206f7220636f6e74726f6c6c6572000000000000604482015290519081900360640190fd5b6132cd600f83613b7e565b6132d56122cf565b600160a060020a03166108fc839081150290604051600060405180830381858888f1935050505015801561330d573d6000803e3d6000fd5b507f611b7c0d84fda988026215bef9b3e4d81cbceced7e679be6d5e044b588467c0e336133386122cf565b60408051600160a060020a03938416815291909216602082015280820185905290519081900360600190a15050565b61337033613a3f565b15156133b4576040805160e560020a62461bcd02815260206004820152601a60248201526000805160206144ef833981519152604482015290519081900360640190fd5b611295600982614100565b60008060008060008060006133d2614193565b600160a060020a031689600160a060020a031614156133f3578796506135b1565b600160a060020a038916156134da5761340b89613f5f565b5050509650965096505083151561346c576040805160e560020a62461bcd02815260206004820152601660248201527f746f6b656e206973206e6f7420617661696c61626c6500000000000000000000604482015290519081900360640190fd5b8415156134c3576040805160e560020a62461bcd02815260206004820152600f60248201527f746f6b656e207261746520697320300000000000000000000000000000000000604482015290519081900360640190fd5b6134d7866126d08a8863ffffffff61409116565b97505b6134e261420e565b50505093509350935050801515613543576040805160e560020a62461bcd02815260206004820152601660248201527f746f6b656e206973206e6f7420617661696c61626c6500000000000000000000604482015290519081900360640190fd5b81151561359a576040805160e560020a62461bcd02815260206004820152601460248201527f737461626c65636f696e20726174652069732030000000000000000000000000604482015290519081900360640190fd5b6135ae826126d08a8663ffffffff61409116565b96505b50505050505092915050565b6135c633613a3f565b151561360a576040805160e560020a62461bcd02815260206004820152601a60248201526000805160206144ef833981519152604482015290519081900360640190fd5b6111ff601582614100565b61361e33613a3f565b1515613662576040805160e560020a62461bcd02815260206004820152601a60248201526000805160206144ef833981519152604482015290519081900360640190fd5b610a2e600f82614100565b6000613678336139b3565b15156136bc576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b8282808060200260200160405190810160405280939291908181526020018383602002808284375060009450505050505b815181101561380657613707828281518110151561200557fe5b15613770576040805160e560020a62461bcd02815260206004820152602d602482015260008051602061450f83398151915260448201527f6f776e6572206164647265737300000000000000000000000000000000000000606482015290519081900360840190fd5b815160009083908390811061378157fe5b60209081029091010151600160a060020a031614156137fe576040805160e560020a62461bcd02815260206004820152602c602482015260008051602061450f83398151915260448201527f7a65726f20616464726573730000000000000000000000000000000000000000606482015290519081900360840190fd5b6001016136ed565b60085462010000900460ff161561388d576040805160e560020a62461bcd02815260206004820152602660248201527f77686974656c6973742068617320616c7265616479206265656e20696e69746960448201527f616c697a65640000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600092505b8383101561393e576001600460008787878181106138ac57fe5b60209081029290920135600160a060020a0316835250810191909152604001600020805460ff191691151591909117905560058585858181106138eb57fe5b83546001808201865560009586526020958690209091018054929095029390930135600160a060020a031673ffffffffffffffffffffffffffffffffffffffff1990911617909255939093019250613892565b6008805462ff0000191662010000179055604080513380825260208083018481529383018890527fb2f6cccee7a369e23e293c25aa19bef80af11eb26deba3ea0f2a02783f752e4a93919289928992606083019085908502808284376040519201829003965090945050505050a15050505050565b600354600160a060020a0390811691161490565b600482015460ff1615613a24576040805160e560020a62461bcd02815260206004820181905260248201527f6461696c79206c696d69742068617320616c7265616479206265656e20736574604482015290519081900360640190fd5b613a2e828261431b565b50600401805460ff19166001179055565b6000613a4c600254613c2a565b600160a060020a031663b429afeb836040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b158015613aa657600080fd5b505af1158015613aba573d6000803e3d6000fd5b505050506040513d6020811015613ad057600080fd5b505192915050565b600081600201546201518001421115613af35750805461092f565b50600181015461092f565b600482015460ff161515613b5c576040805160e560020a62461bcd02815260206004820152601660248201527f6c696d697420686173206e6f74206265656e2073657400000000000000000000604482015290519081900360640190fd5b600390910155565b600080613b7083613f5f565b509098975050505050505050565b613b878261433e565b6001820154811115613c09576040805160e560020a62461bcd02815260206004820152603260248201527f617661696c61626c652068617320746f2062652067726561746572206f72206560448201527f7175616c20746f2075736520616d6f756e740000000000000000000000000000606482015290519081900360840190fd5b6001820154613c1e908263ffffffff6140e916565b82600101819055505050565b60008054604080517f0178b8bf000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691630178b8bf9160248082019260209290919082900301818787803b158015613c9157600080fd5b505af1158015613ca5573d6000803e3d6000fd5b505050506040513d6020811015613cbb57600080fd5b5051604080517f3b3b57de000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691633b3b57de916024808201926020929091908290030181600087803b158015613aa657600080fd5b60008060008084600401865110151515613d85576040805160e560020a62461bcd02815260206004820152601460248201527f736c6963696e67206f7574206f662072616e6765000000000000000000000000604482015290519081900360640190fd5b5060009150819050805b60048160ff161015613df05761010083029250858160ff168601815181101515613db557fe5b01602001517f010000000000000000000000000000000000000000000000000000000000000090819004810204928301929150600101613d8f565b5090949350505050565b60008082602001845110151515613e5b576040805160e560020a62461bcd02815260206004820152601460248201527f736c6963696e67206f7574206f662072616e6765000000000000000000000000604482015290519081900360640190fd5b505081810160200151805b5092915050565b60008060008084601401865110151515613ed1576040805160e560020a62461bcd02815260206004820152601460248201527f736c6963696e67206f7574206f662072616e6765000000000000000000000000604482015290519081900360640190fd5b5060009150819050805b60148160ff161015613df05761010083029250858160ff168601815181101515613f0157fe5b01602001517f010000000000000000000000000000000000000000000000000000000000000090819004810204928301929150600101613edb565b6000806040516020840160008287838a8c6187965a03f198975050505050505050565b6060600080600080600080613f75600e54613c2a565b600160a060020a0316631f69565f896040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b158015613fcf57600080fd5b505af1158015613fe3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260e081101561400c57600080fd5b81019080805164010000000081111561402457600080fd5b8201602081018481111561403757600080fd5b815164010000000081118282018710171561405157600080fd5b5050602082015160408301516060840151608085015160a086015160c090960151949e50929c50909a509850965090945092505050919395979092949650565b6000808315156140a45760009150613e66565b508282028284828115156140b457fe5b04146140bf57600080fd5b9392505050565b6000808083116140d557600080fd5b82848115156140e057fe5b04949350505050565b600080838311156140f957600080fd5b5050900390565b60038201548114614181576040805160e560020a62461bcd02815260206004820152602960248201527f636f6e6669726d656420616e64207375626d6974746564206c696d697473206460448201527f6f6e74206d617463680000000000000000000000000000000000000000000000606482015290519081900360840190fd5b61418f82836003015461431b565b5050565b60006141a0600e54613c2a565b600160a060020a031663e9cbd8226040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156141dd57600080fd5b505af11580156141f1573d6000803e3d6000fd5b505050506040513d602081101561420757600080fd5b5051905090565b6060600080600080600080614224600e54613c2a565b600160a060020a0316633efec5e96040518163ffffffff1660e060020a028152600401600060405180830381600087803b15801561426157600080fd5b505af1158015614275573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260e081101561429e57600080fd5b8101908080516401000000008111156142b657600080fd5b820160208101848111156142c957600080fd5b81516401000000008111828201871017156142e357600080fd5b5050602082015160408301516060840151608085015160a086015160c090960151949f939e50919c509a509850919650945092505050565b6143248261433e565b808255600182015481101561418f57815460018301555050565b6002810154600090614359906201518063ffffffff6143b716565b42111561418f5761437e620151806126d08460020154426140e990919063ffffffff16565b90506143a7614396826201518063ffffffff61409116565b60028401549063ffffffff6143b716565b6002830155815460018301555050565b6000828201838110156140bf57600080fd5b50805460008255906000526020600020908101906143e79190614483565b50565b82805482825590600052602060002090810192821561444a579160200282015b8281111561444a57815473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0384351617825560209092019160019091019061440a565b5061445692915061449d565b5090565b81548183558181111561447e5760008381526020902061447e918101908301614483565b505050565b61093891905b808211156144565760008155600101614489565b61093891905b8082111561445657805473ffffffffffffffffffffffffffffffffffffffff191681556001016144a3560073656e646572206973206e6f7420616e206f776e65720000000000000000000073656e646572206973206e6f74206120636f6e74726f6c6c657200000000000070726f76696465642077686974656c69737420636f6e7461696e732074686520a165627a7a72305820c601896aac0a8caea2406e408a1ac329c9ce21c1397ce61e69091617745328f20029","srcmap":"24944:11009:14:-;;;26199:614;8:9:-1;5:2;;;30:1;27;20:12;5:2;26199:614:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1312:12:9;:23;;-1:-1:-1;;;;;;1312:23:9;;;-1:-1:-1;;;;;1312:23:9;;;;;;;;;;;-1:-1:-1;1345:24:9;;1356:12;;;1345:24;;;;;;;;;1334:15:7;:38;;;1527:6:10;:18;;;;;;;;;-1:-1:-1;;;;;;1555:32:10;;;;;;;;;;;;;;;26199:614:14;;;;;;;;;;;;;;;;;;;;;;;;;;1555:32:10;1671:15;;;;1670:16;1666:78;;;1707:26;;;-1:-1:-1;;;;;1707:26:10;;;;;;;;;;;;;;;1666:78;1758:43;;;1787:1;1758:43;;-1:-1:-1;;;;;1758:43:10;;;;;;;;;;;;;;;;;;;-1:-1:-1;;14539:43:14;;;;;;;;;;;;;;;;;;;14568:3;14539:43;;;;;;-1:-1:-1;14539:43:14;;;;;;;;;;;;;;14525:11;:57;;;;;;;;;;;;;;;;;;;-1:-1:-1;;14525:57:14;;;;;;1366:19:12;:46;;;;16426:77:14;;;;;;;16247:10;16426:77;;;;;;;;;;;;;;;;;;;;;;;;;;16409:14;:94;;;;;;;;;;;;;;;;;;;;-1:-1:-1;26592:20:14;;-1:-1:-1;;26592:18:14;;;;:20;;-1:-1:-1;;26592:20:14:i;:::-;26548:64;;;;;;;;26652:1;26630:19;:23;26622:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26686:78;25283:5;26707:56;;26686:20;;;;:78;:::i;:::-;-1:-1:-1;;26774:12:14;:32;-1:-1:-1;24944:11009:14;;-1:-1:-1;;;;24944:11009:14;2897:199:12;2950:6;2958:7;2967;2976:4;2982;2988;2994:7;3036:32;3048:19;;3036:11;;;:32;;;:::i;:::-;-1:-1:-1;;;;;3020:67:12;;:69;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3020:69:12;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3020:69:12;;;;;;39:16:-1;36:1;17:17;2:54;101:4;3020:69:12;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:3;5:12;;2:2;;;30:1;27;20:12;2:2;3020:69:12;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;218:10;;268:11;251:29;;293:43;;;290:58;-1:-1;239:118;236:2;;;370:1;367;360:12;236:2;-1:-1;;3020:69:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3020:69:12;;-1:-1:-1;3020:69:12;-1:-1:-1;3020:69:12;-1:-1:-1;3020:69:12;;-1:-1:-1;3020:69:12;-1:-1:-1;2897:199:12;-1:-1:-1;;;2897:199:12:o;20064:187:14:-;20129:17;:29;;;20181:63;;;;;;;;;;;;;;;;;20230:3;20181:63;;;;;;-1:-1:-1;20181:63:14;;;;;;;;;;;;;20168:10;:76;;;;;;;;;;;;;;;-1:-1:-1;;20168:76:14;;;20064:187::o;1748:152:9:-;1811:7;1852:4;;:24;;;;;;;;;;;;;;-1:-1:-1;;;;;1852:4:9;;;;:13;;:24;;;;;;;;;;;;;;;1811:7;1852:4;:24;;;5:2:-1;;;;30:1;27;20:12;5:2;1852:24:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1852:24:9;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1852:24:9;1837:56;;;;;;;;;;;;;;-1:-1:-1;;;;;1837:45:9;;;;;;:56;;;;;1852:24;;1837:56;;;;;;;;;:45;:56;;;5:2:-1;;;;30:1;27;20:12;5:2;1837:56:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1837:56:9;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1837:56:9;;1748:152;-1:-1:-1;;1748:152:9:o;24944:11009:14:-;;;;;;;","srcmap-runtime":"24944:11009:14:-;;;;;;;;;-1:-1:-1;;;24944:11009:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21839:8;:20;21831:59;;;;;-1:-1:-1;;;;;21831:59:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;21905:31;;;21914:10;21905:31;;21926:9;21905:31;;;;;;;;;;;;;;;;;24944:11009;23966:135;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;23966:135:14;-1:-1:-1;;23966:135:14;;;;;;;;;;;;;;;;;;;;;;;15783:101;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15783:101:14;;;;;;;;;;;;;;;;;;;;16618:305;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;16618:305:14;;;;;;;6660:715;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6660:715:14;;;;;19511:113;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19511:113:14;;;;3149:94:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3149:94:10;;;;15043:171:14;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;15043:171:14;;;;;17760:103;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17760:103:14;;;;2412:38;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2412:38:14;;;;3455:117;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3455:117:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;3455:117:14;;;;;;;;;;;;;;;;;19731:91;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19731:91:14;;;;2228:44;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2228:44:14;-1:-1:-1;;;;;2228:44:14;;;;;27712:978;;-1:-1:-1;;;;;27712:978:14;;;;;;;18576:280;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;18576:280:14;;;;;14746:153;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;14746:153:14;;;;;28946:1800;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;28946:1800:14;;;;-1:-1:-1;;;;;28946:1800:14;;;;;;;;;;;;;;;;3283:119;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3283:119:14;;;;5455:1151;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5455:1151:14;;;;;15460:115;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15460:115:14;;;;7499:686;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7499:686:14;;;;;;;;;;;;15684:93;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15684:93:14;;;;3519:306:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3519:306:10;;;;17050:323:14;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;17050:323:14;;;;;30809:91;;8:9:-1;5:2;;;30:1;27;20:12;5:2;30809:91:14;;;;1468::9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1468:91:9;;;;;;;;-1:-1:-1;;;;;1468:91:9;;;;;;;;;;;;;;17633:121:14;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17633:121:14;;;;4507:725;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4507:725:14;;;;;;;;;;;;1552:105:12;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1552:105:12;;;;3908:77:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3908:77:10;;;;15581:97:14;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15581:97:14;;;;18971:298;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;18971:298:14;;;;;2231:801:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2231:801:10;-1:-1:-1;;;;;2231:801:10;;;;;;;;;24288:552:14;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;24288:552:14;-1:-1:-1;;;;;24288:552:14;;;;;;;2499:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2499:26:14;;;;22650:1251;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;22650:1251:14;-1:-1:-1;;;;;22650:1251:14;;;;;;;;;;;;19828:99;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19828:99:14;;;;17869;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17869:99:14;;;;8254:1407;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8254:1407:14;;;;;17974:107;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17974:107:14;;;;10491:138;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10491:138:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10491:138:14;;-1:-1:-1;10491:138:14;;-1:-1:-1;;;;;;;10491:138:14;9729:693;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9729:693:14;;;;;2278:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2278:31:14;;;;;19630:95;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19630:95:14;;;;2456:37;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2456:37:14;;;;1629:97:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1629:97:7;;;;22149:224:14;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;22149:224:14;-1:-1:-1;;;;;22149:224:14;;;;;26993:423;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;26993:423:14;;;;;15276:178;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;15276:178:14;;;;;31101:1490;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;31101:1490:14;-1:-1:-1;;;;;31101:1490:14;;;;;;;19330:175;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;19330:175:14;;;;;17440:187;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;17440:187:14;;;;;3703:681;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3703:681:14;;;;;;;;;;;;23966:135;-1:-1:-1;;24059:35:14;;24074:20;24059:35;23966:135;;;;:::o;15783:101::-;15858:19;;15783:101;;:::o;16618:305::-;1924:20:10;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1916:55:10;;;;;;;;;;;;;;;16723:7:14;16184:8;16695:35;;:74;;;;;16247:10;16734:7;:35;;16695:74;16687:133;;;;;;;-1:-1:-1;;;;;16687:133:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16830:34;16840:14;16856:7;16830:9;:34::i;:::-;16879:37;;;16896:10;16879:37;;;;;;;;;;;;;;;;;;;;;16618:305;:::o;6660:715::-;1390:20;1399:10;1390:8;:20::i;:::-;:49;;;;1414:25;1428:10;1414:13;:25::i;:::-;1381:89;;;;;;;-1:-1:-1;;;;;1381:89:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;6807:26;;;;6799:80;;;;;;;-1:-1:-1;;;;;6799:80:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7001:40;7015:25;7001:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7001:40:14;;;;;;;;;;;;;;;;;;;;;:13;:40::i;:::-;6992:49;;6984:115;;;;;-1:-1:-1;;;;;6984:115:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7145:32;7152:25;;7145:32;:::i;:::-;7234:26;:34;;-1:-1:-1;;7234:34:14;;;7323:45;;;7350:10;7323:45;;;;;;;;;;;;;;;;;;;;;6660:715;:::o;19511:113::-;19564:4;19587:30;19606:10;19587:18;:30::i;:::-;19580:37;;19511:113;:::o;3149:94:10:-;3221:15;;;;;;;;3149:94::o;15043:171:14:-;1924:20:10;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1916:55:10;;;;;;;;;;;;;;;15118:40:14;15137:11;15150:7;15118:18;:40::i;:::-;15173:34;;;;;;;;;;;;;;;;;15043:171;:::o;17760:103::-;17836:14;:20;17760:103;:::o;2412:38::-;;;;;;:::o;3455:117::-;3513:9;3541:24;3534:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3534:31:14;;;;;;;;;;;;;;;;;;;;;;;3455:117;:::o;19731:91::-;19801:14;;;;19731:91;:::o;2228:44::-;;;;;;;;;;;;;;;:::o;27712:978::-;27988:20;28276:22;1924:20:10;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1916:55:10;;;;;;;;;;;;;;;27878:24:14;27895:6;27878:16;:24::i;:::-;27870:55;;;;;;;-1:-1:-1;;;;;27870:55:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;28011:36;28031:6;28039:7;28011:19;:36::i;:::-;27988:59;;28177:42;28191:10;28203:15;28177:13;:42::i;:::-;28301:25;28313:12;;28301:11;:25::i;:::-;28276:50;-1:-1:-1;;;;;;28340:20:14;;;28336:299;;28390:6;-1:-1:-1;;;;;28384:21:14;;28406:14;28422:7;28384:46;;;;;-1:-1:-1;;;28384:46:14;;;;;;;-1:-1:-1;;;;;28384:46:14;-1:-1:-1;;;;;28384:46:14;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;28384:46:14;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;28384:46:14;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;28384:46:14;28376:96;;;;;;;-1:-1:-1;;;;;28376:96:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28495:14;-1:-1:-1;;;;;28486:29:14;;28516:6;28524:7;28486:46;;;;;-1:-1:-1;;;28486:46:14;;;;;;;-1:-1:-1;;;;;28486:46:14;-1:-1:-1;;;;;28486:46:14;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;28486:46:14;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;28486:46:14;;;;28336:299;;;28572:14;-1:-1:-1;;;;;28563:29:14;;28599:7;28608:6;28616:7;28563:61;;;;;-1:-1:-1;;;28563:61:14;;;;;;;-1:-1:-1;;;;;28563:61:14;-1:-1:-1;;;;;28563:61:14;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;28563:61:14;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;28563:61:14;;;;;28336:299;28650:32;;;-1:-1:-1;;;;;28650:32:14;;;;;;;;;;;;;;;;;;;;;;;27712:978;;;;:::o;18576:280::-;1924:20:10;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1916:55:10;;;;;;;;;;;;;;;18672:7:14;18364:8;18649:30;;:62;;;;;18694:17;;18683:7;:28;;18649:62;18641:120;;;;;;;-1:-1:-1;;;;;18641:120:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18771:30;18781:10;18793:7;18771:9;:30::i;:::-;18816:33;;;18829:10;18816:33;;;;;;;;;;;;;;;;;;;;;18576:280;:::o;14746:153::-;1924:20:10;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1916:55:10;;;;;;;;;;;;;;;14812:31:14;14822:11;14835:7;14812:9;:31::i;:::-;14858:34;;;14872:10;14858:34;;;;;;;;;;;;;;;;;;;;;14746:153;:::o;28946:1800::-;29212:16;29509:11;29754:19;30119:15;1924:20:10;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1916:55:10;;;;;;;;;;;;;;;29159:1:14;29143:17;;29139:1137;;29231:24;29246:5;;29231:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;29253:1:14;;-1:-1:-1;29231:14:14;;-1:-1:-1;;;;29231:24:14:i;:::-;29212:43;-1:-1:-1;29341:22:14;;;25525:10;29341:22;;:47;;-1:-1:-1;29367:21:14;;;25576:10;29367:21;29341:47;29337:929;;;29432:11;29416:27;;;29408:83;;;;;-1:-1:-1;;;;;29408:83:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29523:25;29534:5;;29523:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;29541:6:14;;-1:-1:-1;29523:10:14;;-1:-1:-1;;;;29523:25:14:i;:::-;29509:39;;29776:30;29792:5;;29776:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;29799:6:14;;-1:-1:-1;29776:15:14;;-1:-1:-1;;;;29776:30:14:i;:::-;-1:-1:-1;;;;;29894:25:14;;;;;;:12;:25;;;;;;29754:52;;-1:-1:-1;29894:25:14;;29893:26;29889:363;;;30137:36;30152:12;30166:6;30137:14;:36::i;:::-;30119:54;;30195:38;30209:11;30222:10;30195:13;:38::i;:::-;-1:-1:-1;;;;;30481:26:14;;;;;;:12;:26;;;;;;;;30480:27;30476:92;;;30523:34;30537:11;30550:6;30523:13;:34::i;:::-;30586:56;30600:12;30614:6;30622:5;;:12;;30636:5;;30586:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;30586:13:14;;-1:-1:-1;;;;;30586:56:14:i;:::-;30578:97;;;;;;;-1:-1:-1;;;;;30578:97:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;30691:48;30711:12;30725:6;30733:5;;30691:48;;;;-1:-1:-1;;;;;30691:48:14;-1:-1:-1;;;;;30691:48:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;30691:48:14;;-1:-1:-1;;;;;;30691:48:14;28946:1800;;;;;;;;:::o;3283:119::-;3342:9;3370:25;3363:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3363:32:14;;;;;;;;;;;;;;;;;;;;;;3283:119;:::o;5455:1151::-;5958:6;1489:25:7;1503:10;1489:13;:25::i;:::-;1481:64;;;;;;;-1:-1:-1;;;;;1481:64:7;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1481:64:7;;;;;;;;;;;;;;;5613:26:14;;;;5605:80;;;;;;;-1:-1:-1;;;;;5605:80:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5807:40;5821:25;5807:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5807:40:14;;;;;;;;;;;;;;;;;;;;:13;:40::i;:::-;5798:49;;5790:113;;;;;-1:-1:-1;;;;;5790:113:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5967:1:14;5953:381;5974:25;:32;5970:36;;5953:381;;;6082:12;:42;6095:25;6121:1;6095:28;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6095:28:14;6082:42;;;;;;;;;;;;;;;6081:43;6077:247;;;6238:4;6193:12;:42;6206:25;6232:1;6206:28;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6206:28:14;6193:42;;;;;;;;;;;;:49;;-1:-1:-1;;6193:49:14;;;;;;;;;;6280:25;:28;;6260:14;;6280:25;6306:1;;6280:28;;;;;;;;;;;;;;;;;;27:10:-1;;6280:28:14;23:18:-1;;45:23;;6260:49:14;;;;;;;;;;-1:-1:-1;;6260:49:14;-1:-1:-1;;;;;6280:28:14;;;6260:49;;;;;;6077:247;6008:3;;5953:381;;;6384:55;6401:10;6413:25;6384:55;;;;-1:-1:-1;;;;;6384:55:14;-1:-1:-1;;;;;6384:55:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6384:55:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6485:32;6492:25;;6485:32;:::i;:::-;-1:-1:-1;;6565:26:14;:34;;-1:-1:-1;;6565:34:14;;;5455:1151::o;15460:115::-;15514:4;15537:31;15556:11;15537:18;:31::i;7499:686::-;1924:20:10;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1916:55:10;;;;;;;;;;;;;;;3104:26:14;;;;3103:27;:57;;;;-1:-1:-1;3135:25:14;;;;;;;3134:26;3103:57;3095:116;;;;;;;-1:-1:-1;;;;;3095:116:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7669:14;;;;;;;7661:61;;;;;;;-1:-1:-1;;;;;7661:61:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7820:1;7800:21;;7792:68;;;;;-1:-1:-1;;;;;7792:68:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7938:37;:24;7965:10;;7938:37;:::i;:::-;-1:-1:-1;8029:25:14;:32;;-1:-1:-1;;8029:32:14;;;;;8152:25;;;;;;;;;;;;;;;;;;8114:64;;8140:10;;;;8152:25;;8140:10;;;;;;8152:25;;;8140:10;;8152:25;8140:10;8152:25;;-1:-1:-1;8152:13:14;;-1:-1:-1;;;;;8152:25:14:i;:::-;8114:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8114:64:14;;-1:-1:-1;;;;;8114:64:14;7499:686;;:::o;15684:93::-;15755:15;;;;15684:93;:::o;3519:306:10:-;1924:20;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1916:55:10;;;;;;;;;;;;;;;3640:15;;;;;;;3632:57;;;;;;;-1:-1:-1;;;;;3632:57:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;3743:6;:19;;-1:-1:-1;;3743:19:10;;;3778:40;;;3760:1;3778:40;;;;;;;;;;;;;;;;;;;;3519:306::o;17050:323:14:-;1924:20:10;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1916:55:10;;;;;;;;;;;;;;;17164:7:14;16184:8;17136:35;;:74;;;;;16247:10;17175:7;:35;;17136:74;17128:133;;;;;;;-1:-1:-1;;;;;17128:133:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17271:43;17290:14;17306:7;17271:18;:43::i;:::-;17329:37;;;;;;;;;;;;;;;;;17050:323;:::o;30809:91::-;30881:12;;30809:91;:::o;1468::9:-;1540:12;;-1:-1:-1;;;;;1540:12:9;1468:91;:::o;17633:121:14:-;17690:4;17713:34;17732:14;17713:18;:34::i;4507:725::-;1924:20:10;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1916:55:10;;;;;;;;;;;;;;;3104:26:14;;;;3103:27;:57;;;;-1:-1:-1;3135:25:14;;;;;;;3134:26;3103:57;3095:116;;;;;;;-1:-1:-1;;;;;3095:116:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4624:10;;2624:332;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2694:6:14;;-1:-1:-1;;;;;2689:250:14;2710:10;:17;2706:1;:21;2689:250;;;2757:23;2766:10;2777:1;2766:13;;;;;;;;;;;;;;;;;;2757:8;:23::i;:::-;2756:24;2748:82;;;;;-1:-1:-1;;;;;2748:82:14;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2748:82:14;;;;;;;;;;;;;;;;;;;;2852:13;;2877:1;;2852:10;;2863:1;;2852:13;;;;;;;;;;;;;;;-1:-1:-1;;;;;2852:27:14;;;2844:84;;;;;-1:-1:-1;;;;;2844:84:14;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2844:84:14;;;;;;;;;;;;;;;;;;;;2729:3;;2689:250;;;4714:14;;;;;;;4706:61;;;;;;;-1:-1:-1;;;;;4706:61:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4858:1;4838:21;;4830:69;;;;;-1:-1:-1;;;;;4830:69:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4982:38;:25;5010:10;;4982:38;:::i;:::-;-1:-1:-1;5074:26:14;:33;;-1:-1:-1;;5074:33:14;5103:4;5074:33;;;5199:25;;;;;;;;;;;;;;;;;;5160:65;;5187:10;;;;5199:25;;5187:10;;;;;;5199:25;;;5187:10;;5199:25;5187:10;5199:25;;-1:-1:-1;5199:13:14;;-1:-1:-1;;;;;5199:25:14:i;:::-;5160:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5160:65:14;;-1:-1:-1;;;;;5160:65:14;3221:1;;4507:725;;:::o;1552:105:12:-;1631:19;;1552:105;:::o;3908:77:10:-;3972:6;;-1:-1:-1;;;;;3972:6:10;3908:77;:::o;15581:97:14:-;15654:11;:17;15581:97;:::o;18971:298::-;1924:20:10;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1916:55:10;;;;;;;;;;;;;;;19076:7:14;18364:8;19053:30;;:62;;;;;19098:17;;19087:7;:28;;19053:62;19045:120;;;;;;;-1:-1:-1;;;;;19045:120:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19175:39;19194:10;19206:7;19175:18;:39::i;:::-;19229:33;;;;;;;;;;;;;;;;;18971:298;:::o;2231:801:10:-;1924:20;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1916:55:10;;;;;;;;;;;;;;;2388:15;;;;;;;2380:57;;;;;;;-1:-1:-1;;;;;2380:57:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2518:22:10;;;;2510:70;;;;;-1:-1:-1;;;;;2510:70:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2665:15;:31;;-1:-1:-1;;2665:31:10;;;;;;;;;;;;;;;2775:75;;2814:25;;;-1:-1:-1;;;;;2814:25:10;;;;;;;;;;;;;;;2775:75;2931:6;;2910:38;;;-1:-1:-1;;;;;2931:6:10;;;2910:38;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3008:6:10;:17;;-1:-1:-1;;3008:17:10;-1:-1:-1;;;;;3008:17:10;;;;;;;;;;2231:801::o;24288:552:14:-;24363:4;24448:17;24467:12;24481:14;24505:21;24519:6;24505:13;:21::i;:::-;24446:80;;;;;;;;;;24606:9;24602:214;;;24639:9;;;24631:37;;;;;-1:-1:-1;;;;;24631:37:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;24773:32;24795:9;24773:17;:7;24785:4;24773:17;:11;:17;:::i;:::-;:21;:32;:21;:32;:::i;:::-;24766:39;;;;24602:214;24832:1;24825:8;;24288:552;;;;;;;;:::o;2499:26::-;;;;;;;;;:::o;22650:1251::-;23066:15;1924:20:10;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1916:55:10;;;;;;;;;;;;;;;22740:7:14;21627:11;;;21619:53;;;;;-1:-1:-1;;;;;21619:53:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;22828:17:14;;;;22820:62;;;;;-1:-1:-1;;;;;22820:62:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;22971:17:14;;;;;;:12;:17;;;;;;;;22970:18;22966:581;;;23084:7;;-1:-1:-1;;;;;;23188:20:14;;;23184:103;;23241:31;23256:6;23264:7;23241:14;:31::i;:::-;23228:44;;23184:103;23498:38;23512:11;23525:10;23498:13;:38::i;:::-;-1:-1:-1;;;;;23626:20:14;;;23622:189;;23676:6;-1:-1:-1;;;;;23670:22:14;;23693:3;23698:7;23670:36;;;;;-1:-1:-1;;;23670:36:14;;;;;;;-1:-1:-1;;;;;23670:36:14;-1:-1:-1;;;;;23670:36:14;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;23670:36:14;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;23670:36:14;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;23670:36:14;23662:86;;;;;;;-1:-1:-1;;;;;23662:86:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23622:189;;;23779:21;;-1:-1:-1;;;;;23779:12:14;;;:21;;;;;23792:7;;23779:21;;;;23792:7;23779:12;:21;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;23779:21:14;23622:189;23861:33;;;-1:-1:-1;;;;;23861:33:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;1981:1:10;22650:1251:14;;;;:::o;19828:99::-;19902:18;;19828:99;:::o;17869:::-;17943:18;;;;17869:99;:::o;8254:1407::-;8799:6;9038;1489:25:7;1503:10;1489:13;:25::i;:::-;1481:64;;;;;;;-1:-1:-1;;;;;1481:64:7;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1481:64:7;;;;;;;;;;;;;;;8441:25:14;;;;;;;8433:78;;;;;;;-1:-1:-1;;;;;8433:78:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8632:39;8646:24;8632:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8632:39:14;;;;;;;;;;;;;;;;;;;;:13;:39::i;:::-;8623:48;;8615:132;;;;;-1:-1:-1;;;;;8615:132:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8808:1;8799:10;;8794:595;8815:24;:31;8811:35;;8794:595;;;8905:12;:41;8918:24;8943:1;8918:27;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8918:27:14;8905:41;;;;;;;;;;;;;;;8901:478;;;9010:5;8966:12;:41;8979:24;9004:1;8979:27;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8979:27:14;8966:41;;;;;;;;;;;;:49;;-1:-1:-1;;8966:49:14;;;;;;;;;;;8979:27;-1:-1:-1;9033:291:14;9054:14;:21;:28;;9080:1;9054:28;:25;:28;:::i;:::-;9050:1;:32;9033:291;;;9136:24;:27;;9161:1;;9136:27;;;;;;;;;;;;;;;;9115:14;:17;;-1:-1:-1;;;;;9136:27:14;;;;9130:1;;9115:17;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9115:17:14;:48;9111:195;;;9211:14;9226:21;;-1:-1:-1;;9226:25:14;;;9211:41;;;;;;;;;;;;;;;;9191:14;:17;;-1:-1:-1;;;;;9211:41:14;;;;9206:1;;9191:17;;;;;;;;;;;;;;:61;;;;;-1:-1:-1;;;;;9191:61:14;;;;;-1:-1:-1;;;;;9191:61:14;;;;;;9278:5;;9111:195;9084:3;;9033:291;;;9341:14;:23;;;;;-1:-1:-1;;9341:23:14;;;:::i;:::-;;8901:478;8848:3;;;;;8794:595;;;9438:58;9459:10;9471:24;9438:58;;;;-1:-1:-1;;;;;9438:58:14;-1:-1:-1;;;;;9438:58:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9438:58:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9542:31;9549:24;;9542:31;:::i;:::-;-1:-1:-1;;9621:25:14;:33;;-1:-1:-1;;9621:33:14;;;-1:-1:-1;8254:1407:14:o;17974:107::-;18052:22;;17974:107;:::o;10491:138::-;10557:7;10610:10;10593:28;;;;;;;;;;;;;;;;;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;10593:28:14;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;10593:28:14;;;10583:39;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;;;;365:33;;10583:39:14;;;;;;;;;;;;-1:-1:-1;;;;;10491:138:14:o;9729:693::-;1390:20;1399:10;1390:8;:20::i;:::-;:49;;;;1414:25;1428:10;1414:13;:25::i;:::-;1381:89;;;;;;;-1:-1:-1;;;;;1381:89:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;9875:25;;;;;;;9867:78;;;;;;;-1:-1:-1;;;;;9867:78:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10066:39;10080:24;10066:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10066:39:14;;;;;;;;;;;;;;;;;;;;:13;:39::i;:::-;10057:48;;10049:111;;;;;-1:-1:-1;;;;;10049:111:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10206:31;10213:24;;10206:31;:::i;:::-;10283:25;:33;;-1:-1:-1;;10283:33:14;;;10371:44;;;10397:10;10371:44;;;;;;;;;;;;;;;;;;;;;9729:693;:::o;2278:31::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2278:31:14;;-1:-1:-1;2278:31:14;:::o;19630:95::-;19702:10;:16;19630:95;:::o;2456:37::-;;;;;;;;;:::o;1629:97:7:-;1704:15;;1629:97;:::o;22149:224:14:-;22205:4;-1:-1:-1;;;;;22225:20:14;;;22221:146;;22268:29;;;;;;22292:4;22268:29;;;;;;-1:-1:-1;;;;;22268:23:14;;;;;:29;;;;;;;;;;;;;;-1:-1:-1;22268:23:14;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;22268:29:14;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;22268:29:14;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;22268:29:14;;-1:-1:-1;22261:36:14;;22221:146;-1:-1:-1;22343:4:14;22335:21;22328:28;;26993:423;27044:7;21627:11;;;21619:53;;;;;-1:-1:-1;;;;;21619:53:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;1390:20;1399:10;1390:8;:20::i;:::-;:49;;;;1414:25;1428:10;1414:13;:25::i;:::-;1381:89;;;;;;;-1:-1:-1;;;;;1381:89:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;27205:38;27219:14;27235:7;27205:13;:38::i;:::-;27290:7;:5;:7::i;:::-;-1:-1:-1;;;;;27290:16:14;:25;27307:7;27290:25;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;27290:25:14;27368:41;27380:10;27392:7;:5;:7::i;:::-;27368:41;;;-1:-1:-1;;;;;27368:41:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26993:423;;:::o;15276:178::-;1489:25:7;1503:10;1489:13;:25::i;:::-;1481:64;;;;;;;-1:-1:-1;;;;;1481:64:7;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1481:64:7;;;;;;;;;;;;;;;15357:41:14;15377:11;15390:7;15357:19;:41::i;31101:1490::-;31181:4;31575:17;31594:12;31608:14;32112:27;32141:22;32165:24;31307:13;:11;:13::i;:::-;-1:-1:-1;;;;;31297:23:14;:6;-1:-1:-1;;;;;31297:23:14;;31293:68;;;31343:7;31336:14;;;;31293:68;-1:-1:-1;;;;;31405:20:14;;;31401:601;;31632:21;31646:6;31632:13;:21::i;:::-;31573:80;;;;;;;;;;31764:9;31756:44;;;;;;;-1:-1:-1;;;;;31756:44:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;31822:9;;;31814:37;;;;;-1:-1:-1;;;;;31814:37:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;31959:32;31981:9;31959:17;:7;31971:4;31959:17;:11;:17;:::i;:32::-;31949:42;;31401:601;32199:20;:18;:20::i;:::-;32109:110;;;;;;;;;;32289:19;32281:54;;;;;;;-1:-1:-1;;;;;32281:54:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;32353:19;;;32345:52;;;;;-1:-1:-1;;;;;32345:52:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;32532;32569:14;32532:32;:7;32544:19;32532:32;:11;:32;:::i;:52::-;32525:59;;31101:1490;;;;;;;;;;;:::o;19330:175::-;1489:25:7;1503:10;1489:13;:25::i;:::-;1481:64;;;;;;;-1:-1:-1;;;;;1481:64:7;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1481:64:7;;;;;;;;;;;;;;;19410:40:14;19430:10;19442:7;19410:19;:40::i;17440:187::-;1489:25:7;1503:10;1489:13;:25::i;:::-;1481:64;;;;;;;-1:-1:-1;;;;;1481:64:7;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1481:64:7;;;;;;;;;;;;;;;17524:44:14;17544:14;17560:7;17524:19;:44::i;3703:681::-;4021:6;1924:20:10;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1916:55:10;;;;;;;;;;;;;;;3790:10:14;;2624:332;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2694:6:14;;-1:-1:-1;;;;;2689:250:14;2710:10;:17;2706:1;:21;2689:250;;;2757:23;2766:10;2777:1;2766:13;;;;;;;;;2757:23;2756:24;2748:82;;;;;-1:-1:-1;;;;;2748:82:14;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2748:82:14;;;;;;;;;;;;;;;;;;;;2852:13;;2877:1;;2852:10;;2863:1;;2852:13;;;;;;;;;;;;;;;-1:-1:-1;;;;;2852:27:14;;;2844:84;;;;;-1:-1:-1;;;;;2844:84:14;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2844:84:14;;;;;;;;;;;;;;;;;;;;2729:3;;2689:250;;;3885:14;;;;;;;3884:15;3876:66;;;;;-1:-1:-1;;;;;3876:66:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4030:1;4021:10;;4016:240;4033:21;;;4016:240;;;4150:4;4120:12;:27;4133:10;;4144:1;4133:13;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4133:13:14;4120:27;;-1:-1:-1;4120:27:14;;;;;;;;-1:-1:-1;4120:27:14;:34;;-1:-1:-1;;4120:34:14;;;;;;;;;;4211:14;4231:10;;4242:1;4231:13;;;;;;;27:10:-1;;39:1;23:18;;;45:23;;-1:-1;4211:34:14;;;4231:13;4211:34;;;;;;;;;4231:13;;;;;;;;;-1:-1:-1;;;;;4231:13:14;-1:-1:-1;;4211:34:14;;;;;;;4056:3;;;;;-1:-1:-1;4016:240:14;;;4265:14;:21;;-1:-1:-1;;4265:21:14;;;;;4337:40;;;4354:10;4337:40;;;;;;;;;;;;;;;;;;4354:10;;4366;;;;4337:40;;;;4366:10;;4337:40;;;4366:10;4337:40;;;;;;;;;;-1:-1:-1;4337:40:14;;-1:-1:-1;;;;;4337:40:14;1981:1:10;;3703:681:14;;;:::o;4091:107:10:-;4185:6;;-1:-1:-1;;;;;4185:6:10;;;4173:18;;;;4091:107::o;11919:351:14:-;12065:6;;;;;;12064:7;12056:52;;;;;-1:-1:-1;;;;;12056:52:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12177:25;12190:2;12194:7;12177:12;:25::i;:::-;-1:-1:-1;12250:6:14;;:13;;-1:-1:-1;;12250:13:14;12259:4;12250:13;;;11919:351::o;1796:158:7:-;1860:4;1895:28;1907:15;;1895:11;:28::i;:::-;-1:-1:-1;;;;;1883:54:7;;1938:8;1883:64;;;;;-1:-1:-1;;;1883:64:7;;;;;;;-1:-1:-1;;;;;1883:64:7;-1:-1:-1;;;;;1883:64:7;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1883:64:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1883:64:7;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1883:64:7;;1796:158;-1:-1:-1;;1796:158:7:o;11181:220:14:-;11255:4;11281:2;:11;;;11295:8;11281:22;11275:3;:28;11271:124;;;-1:-1:-1;11326:8:14;;11319:15;;11271:124;-1:-1:-1;11372:12:14;;;;11365:19;;12405:278;12551:6;;;;;;12543:41;;;;;;;-1:-1:-1;;;;;12543:41:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;12656:10;;;;:20;12405:278::o;4445:157:12:-;4506:4;4532:13;4553:17;4567:2;4553:13;:17::i;:::-;-1:-1:-1;4522:48:12;;4445:157;-1:-1:-1;;;;;;;;4445:157:12:o;11506:309:14:-;11637:25;11659:2;11637:21;:25::i;:::-;11680:12;;;;:23;-1:-1:-1;11680:23:14;11672:86;;;;;-1:-1:-1;;;;;11672:86:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11783:12;;;;:25;;11800:7;11783:25;:16;:25;:::i;:::-;11768:2;:12;;:40;;;;11506:309;;:::o;1748:152:9:-;1811:7;1852:4;;:24;;;;;;;;;;;;;;-1:-1:-1;;;;;1852:4:9;;;;:13;;:24;;;;;;;;;;;;;;;1811:7;1852:4;:24;;;5:2:-1;;;;30:1;27;20:12;5:2;1852:24:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1852:24:9;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1852:24:9;1837:56;;;;;;;;;;;;;;-1:-1:-1;;;;;1837:45:9;;;;;;:56;;;;;1852:24;;1837:56;;;;;;;;;:45;:56;;;5:2:-1;;;;30:1;27;20:12;34980:353:14;35050:6;35136:8;35158;35186:7;35091:5;35099:1;35091:9;35076:4;:11;:24;;35068:57;;;;;;;-1:-1:-1;;;;;35068:57:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;35147:1:14;;-1:-1:-1;35147:1:14;;-1:-1:-1;35147:1:14;35181:127;35203:1;35199;:5;;;35181:127;;;35230:3;35225:8;;;;35259:4;35272:1;35264:9;;:5;:9;35259:15;;;;;;;;;;;;;;;;;;;;;35251:24;35289:8;;;;35251:24;-1:-1:-1;35206:3:14;;35181:127;;;-1:-1:-1;35325:1:14;;34980:353;-1:-1:-1;;;;34980:353:14:o;35686:264::-;35752:4;35837:6;35791:5;35799:2;35791:10;35776:4;:11;:25;;35768:58;;;;;;;-1:-1:-1;;;;;35768:58:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;35887:27:14;;;35901:4;35887:27;35881:34;;35686:264;;;;;;:::o;34482:369::-;34553:7;34641:9;34664;34693:7;34595:5;34603:2;34595:10;34580:4;:11;:25;;34572:58;;;;;;;-1:-1:-1;;;;;34572:58:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;34653:1:14;;-1:-1:-1;34653:1:14;;-1:-1:-1;34653:1:14;34688:129;34710:2;34706:1;:6;;;34688:129;;;34738:3;34733:8;;;;34768:4;34781:1;34773:9;;:5;:9;34768:15;;;;;;;;;;;;;;;;;;;;;34759:25;34798:8;;;;34759:25;-1:-1:-1;34714:3:14;;34688:129;;33253:1111;33359:4;33375:11;33434:4;33428:11;33568:2;33561:5;33557:14;34236:1;34217;34108:11;34089:1;34065:6;34035:12;33690:5;33685:3;33681:15;33659:665;33649:675;33253:1111;-1:-1:-1;;;;;;;;33253:1111:14:o;2198:201:12:-;2256:6;2264:7;2273;2282:4;2288;2294;2300:7;2342:32;2354:19;;2342:11;:32::i;:::-;-1:-1:-1;;;;;2326:62:12;;2389:2;2326:66;;;;;-1:-1:-1;;;2326:66:12;;;;;;;-1:-1:-1;;;;;2326:66:12;-1:-1:-1;;;;;2326:66:12;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2326:66:12;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2326:66:12;;;;;;39:16:-1;36:1;17:17;2:54;101:4;2326:66:12;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:3;5:12;;2:2;;;30:1;27;20:12;2:2;2326:66:12;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;218:10;;268:11;251:29;;293:43;;;290:58;-1:-1;239:118;236:2;;;370:1;367;360:12;236:2;-1:-1;;2326:66:12;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2326:66:12;;-1:-1:-1;2326:66:12;;-1:-1:-1;2326:66:12;-1:-1:-1;2326:66:12;-1:-1:-1;2326:66:12;;-1:-1:-1;2326:66:12;-1:-1:-1;;;2198:201:12;;;;;;;;;:::o;1376:381:2:-;1434:7;;1658:6;;1654:35;;;1681:1;1674:8;;;;1654:35;-1:-1:-1;1707:5:2;;;1711:1;1707;:5;1726;;;;;;;;:10;1718:19;;;;;;1751:1;1376:381;-1:-1:-1;;;1376:381:2:o;1867:270::-;1925:7;;1948:5;;;1940:14;;;;;;2034:1;2030;:5;;;;;;;;;1867:270;-1:-1:-1;;;;1867:270:2:o;2250:131::-;2308:7;;2331:6;;;;2323:15;;;;;;-1:-1:-1;;2356:5:2;;;2250:131::o;12745:334:14:-;12909:10;;;;:21;;12901:75;;;;;-1:-1:-1;;;;;12901:75:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13044:28;13057:2;13061;:10;;;13044:12;:28::i;:::-;12745:334;;:::o;4720:141:12:-;4766:7;4808:32;4820:19;;4808:11;:32::i;:::-;-1:-1:-1;;;;;4792:60:12;;:62;;;;;-1:-1:-1;;;4792:62:12;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4792:62:12;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4792:62:12;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4792:62:12;;-1:-1:-1;4720:141:12;:::o;2897:199::-;2950:6;2958:7;2967;2976:4;2982;2988;2994:7;3036:32;3048:19;;3036:11;:32::i;:::-;-1:-1:-1;;;;;3020:67:12;;:69;;;;;-1:-1:-1;;;3020:69:12;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3020:69:12;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3020:69:12;;;;;;39:16:-1;36:1;17:17;2:54;101:4;3020:69:12;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:3;5:12;;2:2;;;30:1;27;20:12;2:2;3020:69:12;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;218:10;;268:11;251:29;;293:43;;;290:58;-1:-1;239:118;236:2;;;370:1;367;360:12;236:2;-1:-1;;3020:69:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3020:69:12;;-1:-1:-1;3020:69:12;-1:-1:-1;3020:69:12;-1:-1:-1;3020:69:12;;-1:-1:-1;3020:69:12;-1:-1:-1;2897:199:12;-1:-1:-1;;;2897:199:12:o;13731:408:14:-;13860:25;13882:2;13860:21;:25::i;:::-;13950:18;;;14060:12;;;;:23;-1:-1:-1;14056:77:14;;;14114:8;;14099:12;;;:23;13731:408;;:::o;13153:432::-;13235:11;;;;13345:14;;13235:25;;13251:8;13235:25;:15;:25;:::i;:::-;13229:3;:31;13225:354;;;13362:34;13387:8;13362:20;13370:2;:11;;;13362:3;:7;;:20;;;;:::i;:34::-;13345:51;-1:-1:-1;13424:40:14;13440:23;13345:51;13454:8;13440:23;:13;:23;:::i;:::-;13424:11;;;;;:40;:15;:40;:::i;:::-;13410:11;;;:54;13560:8;;13545:12;;;:23;13153:432;;:::o;2444:131:2:-;2502:7;2529:5;;;2548:6;;;;2540:15;;;;;24944:11009:14;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;24944:11009:14;-1:-1:-1;;;;;24944:11009:14;;;;;;;;;;;;;;;;;;;-1:-1:-1;24944:11009:14;;;-1:-1:-1;24944:11009:14;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;24944:11009:14;;;;;;"}},"sourceList":["externals/ERC165.sol","externals/ERC20.sol","externals/SafeMath.sol","externals/ens/ENS.sol","externals/ens/PublicResolver.sol","externals/strings.sol","internals/claimable.sol","internals/controllable.sol","internals/controller.sol","internals/ensResolvable.sol","internals/ownable.sol","internals/tokenWhitelist.sol","internals/tokenWhitelistable.sol","licence.sol","wallet.sol"],"sources":{"externals/ERC165.sol":{"AST":{"attributes":{"absolutePath":"externals/ERC165.sol","exportedSymbols":{"ERC165":[2052]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".25"]},"id":2044,"name":"PragmaDirective","src":"0:24:0"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"interface","documentation":"@title ERC165 interface specifies a standard way of querying if a contract implements an interface.","fullyImplemented":false,"linearizedBaseContracts":[2052],"name":"ERC165","scope":2053},"children":[{"attributes":{"body":null,"constant":true,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"supportsInterface","payable":false,"scope":2052,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"","scope":2051,"stateVariable":false,"storageLocation":"default","type":"bytes4","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes4","type":"bytes4"},"id":2045,"name":"ElementaryTypeName","src":"180:6:0"}],"id":2046,"name":"VariableDeclaration","src":"180:6:0"}],"id":2047,"name":"ParameterList","src":"179:8:0"},{"children":[{"attributes":{"constant":false,"name":"","scope":2051,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2048,"name":"ElementaryTypeName","src":"211:4:0"}],"id":2049,"name":"VariableDeclaration","src":"211:4:0"}],"id":2050,"name":"ParameterList","src":"210:6:0"}],"id":2051,"name":"FunctionDefinition","src":"153:64:0"}],"id":2052,"name":"ContractDefinition","src":"130:89:0"}],"id":2053,"name":"SourceUnit","src":"0:220:0"}},"externals/ERC20.sol":{"AST":{"attributes":{"absolutePath":"externals/ERC20.sol","exportedSymbols":{"ERC20":[2091]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".25"]},"id":2054,"name":"PragmaDirective","src":"0:24:1"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"interface","documentation":"@title ERC20 interface is a subset of the ERC20 specification.","fullyImplemented":false,"linearizedBaseContracts":[2091],"name":"ERC20","scope":2092},"children":[{"attributes":{"body":null,"constant":false,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"approve","payable":false,"scope":2091,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"","scope":2063,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2055,"name":"ElementaryTypeName","src":"132:7:1"}],"id":2056,"name":"VariableDeclaration","src":"132:7:1"},{"attributes":{"constant":false,"name":"","scope":2063,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":2057,"name":"ElementaryTypeName","src":"141:7:1"}],"id":2058,"name":"VariableDeclaration","src":"141:7:1"}],"id":2059,"name":"ParameterList","src":"131:18:1"},{"children":[{"attributes":{"constant":false,"name":"","scope":2063,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2060,"name":"ElementaryTypeName","src":"168:4:1"}],"id":2061,"name":"VariableDeclaration","src":"168:4:1"}],"id":2062,"name":"ParameterList","src":"167:6:1"}],"id":2063,"name":"FunctionDefinition","src":"115:59:1"},{"attributes":{"body":null,"constant":true,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"balanceOf","payable":false,"scope":2091,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"","scope":2070,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2064,"name":"ElementaryTypeName","src":"198:7:1"}],"id":2065,"name":"VariableDeclaration","src":"198:7:1"}],"id":2066,"name":"ParameterList","src":"197:9:1"},{"children":[{"attributes":{"constant":false,"name":"","scope":2070,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2067,"name":"ElementaryTypeName","src":"230:4:1"}],"id":2068,"name":"VariableDeclaration","src":"230:4:1"}],"id":2069,"name":"ParameterList","src":"229:6:1"}],"id":2070,"name":"FunctionDefinition","src":"179:57:1"},{"attributes":{"body":null,"constant":false,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"transfer","payable":false,"scope":2091,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"","scope":2079,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2071,"name":"ElementaryTypeName","src":"259:7:1"}],"id":2072,"name":"VariableDeclaration","src":"259:7:1"},{"attributes":{"constant":false,"name":"","scope":2079,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2073,"name":"ElementaryTypeName","src":"268:4:1"}],"id":2074,"name":"VariableDeclaration","src":"268:4:1"}],"id":2075,"name":"ParameterList","src":"258:15:1"},{"children":[{"attributes":{"constant":false,"name":"","scope":2079,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2076,"name":"ElementaryTypeName","src":"292:4:1"}],"id":2077,"name":"VariableDeclaration","src":"292:4:1"}],"id":2078,"name":"ParameterList","src":"291:6:1"}],"id":2079,"name":"FunctionDefinition","src":"241:57:1"},{"attributes":{"body":null,"constant":false,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"transferFrom","payable":false,"scope":2091,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_from","scope":2090,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2080,"name":"ElementaryTypeName","src":"325:7:1"}],"id":2081,"name":"VariableDeclaration","src":"325:13:1"},{"attributes":{"constant":false,"name":"_to","scope":2090,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2082,"name":"ElementaryTypeName","src":"340:7:1"}],"id":2083,"name":"VariableDeclaration","src":"340:11:1"},{"attributes":{"constant":false,"name":"_value","scope":2090,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":2084,"name":"ElementaryTypeName","src":"353:7:1"}],"id":2085,"name":"VariableDeclaration","src":"353:14:1"}],"id":2086,"name":"ParameterList","src":"324:44:1"},{"children":[{"attributes":{"constant":false,"name":"success","scope":2090,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2087,"name":"ElementaryTypeName","src":"387:4:1"}],"id":2088,"name":"VariableDeclaration","src":"387:12:1"}],"id":2089,"name":"ParameterList","src":"386:14:1"}],"id":2090,"name":"FunctionDefinition","src":"303:98:1"}],"id":2091,"name":"ContractDefinition","src":"93:310:1"}],"id":2092,"name":"SourceUnit","src":"0:404:1"}},"externals/SafeMath.sol":{"AST":{"attributes":{"absolutePath":"externals/SafeMath.sol","exportedSymbols":{"SafeMath":[2219]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".24"]},"id":2093,"name":"PragmaDirective","src":"1172:24:2"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"library","documentation":"@title SafeMath\n@dev Math operations with safety checks that revert on error","fullyImplemented":true,"linearizedBaseContracts":[2219],"name":"SafeMath","scope":2220},"children":[{"attributes":{"constant":true,"documentation":"@dev Multiplies two numbers, reverts on overflow.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"mul","payable":false,"scope":2219,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"a","scope":2126,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":2094,"name":"ElementaryTypeName","src":"1389:7:2"}],"id":2095,"name":"VariableDeclaration","src":"1389:9:2"},{"attributes":{"constant":false,"name":"b","scope":2126,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":2096,"name":"ElementaryTypeName","src":"1400:7:2"}],"id":2097,"name":"VariableDeclaration","src":"1400:9:2"}],"id":2098,"name":"ParameterList","src":"1388:22:2"},{"children":[{"attributes":{"constant":false,"name":"","scope":2126,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":2099,"name":"ElementaryTypeName","src":"1434:7:2"}],"id":2100,"name":"VariableDeclaration","src":"1434:7:2"}],"id":2101,"name":"ParameterList","src":"1433:9:2"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2095,"type":"uint256","value":"a"},"id":2102,"name":"Identifier","src":"1658:1:2"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2103,"name":"Literal","src":"1663:1:2"}],"id":2104,"name":"BinaryOperation","src":"1658:6:2"},{"children":[{"attributes":{"functionReturnParameters":2101},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2105,"name":"Literal","src":"1681:1:2"}],"id":2106,"name":"Return","src":"1674:8:2"}],"id":2107,"name":"Block","src":"1666:23:2"}],"id":2108,"name":"IfStatement","src":"1654:35:2"},{"attributes":{"assignments":[2110]},"children":[{"attributes":{"constant":false,"name":"c","scope":2126,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":2109,"name":"ElementaryTypeName","src":"1695:7:2"}],"id":2110,"name":"VariableDeclaration","src":"1695:9:2"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2095,"type":"uint256","value":"a"},"id":2111,"name":"Identifier","src":"1707:1:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2097,"type":"uint256","value":"b"},"id":2112,"name":"Identifier","src":"1711:1:2"}],"id":2113,"name":"BinaryOperation","src":"1707:5:2"}],"id":2114,"name":"VariableDeclarationStatement","src":"1695:17:2"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"overloadedDeclarations":[6460,6461],"referencedDeclaration":6460,"type":"function (bool) pure","value":"require"},"id":2115,"name":"Identifier","src":"1718:7:2"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"/","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2110,"type":"uint256","value":"c"},"id":2116,"name":"Identifier","src":"1726:1:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2095,"type":"uint256","value":"a"},"id":2117,"name":"Identifier","src":"1730:1:2"}],"id":2118,"name":"BinaryOperation","src":"1726:5:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2097,"type":"uint256","value":"b"},"id":2119,"name":"Identifier","src":"1735:1:2"}],"id":2120,"name":"BinaryOperation","src":"1726:10:2"}],"id":2121,"name":"FunctionCall","src":"1718:19:2"}],"id":2122,"name":"ExpressionStatement","src":"1718:19:2"},{"attributes":{"functionReturnParameters":2101},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2110,"type":"uint256","value":"c"},"id":2123,"name":"Identifier","src":"1751:1:2"}],"id":2124,"name":"Return","src":"1744:8:2"}],"id":2125,"name":"Block","src":"1443:314:2"}],"id":2126,"name":"FunctionDefinition","src":"1376:381:2"},{"attributes":{"constant":true,"documentation":"@dev Integer division of two numbers truncating the quotient, reverts on division by zero.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"div","payable":false,"scope":2219,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"a","scope":2150,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":2127,"name":"ElementaryTypeName","src":"1880:7:2"}],"id":2128,"name":"VariableDeclaration","src":"1880:9:2"},{"attributes":{"constant":false,"name":"b","scope":2150,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":2129,"name":"ElementaryTypeName","src":"1891:7:2"}],"id":2130,"name":"VariableDeclaration","src":"1891:9:2"}],"id":2131,"name":"ParameterList","src":"1879:22:2"},{"children":[{"attributes":{"constant":false,"name":"","scope":2150,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":2132,"name":"ElementaryTypeName","src":"1925:7:2"}],"id":2133,"name":"VariableDeclaration","src":"1925:7:2"}],"id":2134,"name":"ParameterList","src":"1924:9:2"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"overloadedDeclarations":[6460,6461],"referencedDeclaration":6460,"type":"function (bool) pure","value":"require"},"id":2135,"name":"Identifier","src":"1940:7:2"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2130,"type":"uint256","value":"b"},"id":2136,"name":"Identifier","src":"1948:1:2"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2137,"name":"Literal","src":"1952:1:2"}],"id":2138,"name":"BinaryOperation","src":"1948:5:2"}],"id":2139,"name":"FunctionCall","src":"1940:14:2"}],"id":2140,"name":"ExpressionStatement","src":"1940:14:2"},{"attributes":{"assignments":[2142]},"children":[{"attributes":{"constant":false,"name":"c","scope":2150,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":2141,"name":"ElementaryTypeName","src":"2018:7:2"}],"id":2142,"name":"VariableDeclaration","src":"2018:9:2"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"/","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2128,"type":"uint256","value":"a"},"id":2143,"name":"Identifier","src":"2030:1:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2130,"type":"uint256","value":"b"},"id":2144,"name":"Identifier","src":"2034:1:2"}],"id":2145,"name":"BinaryOperation","src":"2030:5:2"}],"id":2146,"name":"VariableDeclarationStatement","src":"2018:17:2"},{"attributes":{"functionReturnParameters":2134},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2142,"type":"uint256","value":"c"},"id":2147,"name":"Identifier","src":"2131:1:2"}],"id":2148,"name":"Return","src":"2124:8:2"}],"id":2149,"name":"Block","src":"1934:203:2"}],"id":2150,"name":"FunctionDefinition","src":"1867:270:2"},{"attributes":{"constant":true,"documentation":"@dev Subtracts two numbers, reverts on overflow (i.e. if subtrahend is greater than minuend).","implemented":true,"isConstructor":false,"modifiers":[null],"name":"sub","payable":false,"scope":2219,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"a","scope":2174,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":2151,"name":"ElementaryTypeName","src":"2263:7:2"}],"id":2152,"name":"VariableDeclaration","src":"2263:9:2"},{"attributes":{"constant":false,"name":"b","scope":2174,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":2153,"name":"ElementaryTypeName","src":"2274:7:2"}],"id":2154,"name":"VariableDeclaration","src":"2274:9:2"}],"id":2155,"name":"ParameterList","src":"2262:22:2"},{"children":[{"attributes":{"constant":false,"name":"","scope":2174,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":2156,"name":"ElementaryTypeName","src":"2308:7:2"}],"id":2157,"name":"VariableDeclaration","src":"2308:7:2"}],"id":2158,"name":"ParameterList","src":"2307:9:2"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"overloadedDeclarations":[6460,6461],"referencedDeclaration":6460,"type":"function (bool) pure","value":"require"},"id":2159,"name":"Identifier","src":"2323:7:2"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2154,"type":"uint256","value":"b"},"id":2160,"name":"Identifier","src":"2331:1:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2152,"type":"uint256","value":"a"},"id":2161,"name":"Identifier","src":"2336:1:2"}],"id":2162,"name":"BinaryOperation","src":"2331:6:2"}],"id":2163,"name":"FunctionCall","src":"2323:15:2"}],"id":2164,"name":"ExpressionStatement","src":"2323:15:2"},{"attributes":{"assignments":[2166]},"children":[{"attributes":{"constant":false,"name":"c","scope":2174,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":2165,"name":"ElementaryTypeName","src":"2344:7:2"}],"id":2166,"name":"VariableDeclaration","src":"2344:9:2"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2152,"type":"uint256","value":"a"},"id":2167,"name":"Identifier","src":"2356:1:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2154,"type":"uint256","value":"b"},"id":2168,"name":"Identifier","src":"2360:1:2"}],"id":2169,"name":"BinaryOperation","src":"2356:5:2"}],"id":2170,"name":"VariableDeclarationStatement","src":"2344:17:2"},{"attributes":{"functionReturnParameters":2158},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2166,"type":"uint256","value":"c"},"id":2171,"name":"Identifier","src":"2375:1:2"}],"id":2172,"name":"Return","src":"2368:8:2"}],"id":2173,"name":"Block","src":"2317:64:2"}],"id":2174,"name":"FunctionDefinition","src":"2250:131:2"},{"attributes":{"constant":true,"documentation":"@dev Adds two numbers, reverts on overflow.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"add","payable":false,"scope":2219,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"a","scope":2198,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":2175,"name":"ElementaryTypeName","src":"2457:7:2"}],"id":2176,"name":"VariableDeclaration","src":"2457:9:2"},{"attributes":{"constant":false,"name":"b","scope":2198,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":2177,"name":"ElementaryTypeName","src":"2468:7:2"}],"id":2178,"name":"VariableDeclaration","src":"2468:9:2"}],"id":2179,"name":"ParameterList","src":"2456:22:2"},{"children":[{"attributes":{"constant":false,"name":"","scope":2198,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":2180,"name":"ElementaryTypeName","src":"2502:7:2"}],"id":2181,"name":"VariableDeclaration","src":"2502:7:2"}],"id":2182,"name":"ParameterList","src":"2501:9:2"},{"children":[{"attributes":{"assignments":[2184]},"children":[{"attributes":{"constant":false,"name":"c","scope":2198,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":2183,"name":"ElementaryTypeName","src":"2517:7:2"}],"id":2184,"name":"VariableDeclaration","src":"2517:9:2"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2176,"type":"uint256","value":"a"},"id":2185,"name":"Identifier","src":"2529:1:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2178,"type":"uint256","value":"b"},"id":2186,"name":"Identifier","src":"2533:1:2"}],"id":2187,"name":"BinaryOperation","src":"2529:5:2"}],"id":2188,"name":"VariableDeclarationStatement","src":"2517:17:2"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"overloadedDeclarations":[6460,6461],"referencedDeclaration":6460,"type":"function (bool) pure","value":"require"},"id":2189,"name":"Identifier","src":"2540:7:2"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2184,"type":"uint256","value":"c"},"id":2190,"name":"Identifier","src":"2548:1:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2176,"type":"uint256","value":"a"},"id":2191,"name":"Identifier","src":"2553:1:2"}],"id":2192,"name":"BinaryOperation","src":"2548:6:2"}],"id":2193,"name":"FunctionCall","src":"2540:15:2"}],"id":2194,"name":"ExpressionStatement","src":"2540:15:2"},{"attributes":{"functionReturnParameters":2182},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2184,"type":"uint256","value":"c"},"id":2195,"name":"Identifier","src":"2569:1:2"}],"id":2196,"name":"Return","src":"2562:8:2"}],"id":2197,"name":"Block","src":"2511:64:2"}],"id":2198,"name":"FunctionDefinition","src":"2444:131:2"},{"attributes":{"constant":true,"documentation":"@dev Divides two numbers and returns the remainder (unsigned integer modulo),\nreverts when dividing by zero.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"mod","payable":false,"scope":2219,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"a","scope":2218,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":2199,"name":"ElementaryTypeName","src":"2720:7:2"}],"id":2200,"name":"VariableDeclaration","src":"2720:9:2"},{"attributes":{"constant":false,"name":"b","scope":2218,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":2201,"name":"ElementaryTypeName","src":"2731:7:2"}],"id":2202,"name":"VariableDeclaration","src":"2731:9:2"}],"id":2203,"name":"ParameterList","src":"2719:22:2"},{"children":[{"attributes":{"constant":false,"name":"","scope":2218,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":2204,"name":"ElementaryTypeName","src":"2765:7:2"}],"id":2205,"name":"VariableDeclaration","src":"2765:7:2"}],"id":2206,"name":"ParameterList","src":"2764:9:2"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"overloadedDeclarations":[6460,6461],"referencedDeclaration":6460,"type":"function (bool) pure","value":"require"},"id":2207,"name":"Identifier","src":"2780:7:2"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2202,"type":"uint256","value":"b"},"id":2208,"name":"Identifier","src":"2788:1:2"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2209,"name":"Literal","src":"2793:1:2"}],"id":2210,"name":"BinaryOperation","src":"2788:6:2"}],"id":2211,"name":"FunctionCall","src":"2780:15:2"}],"id":2212,"name":"ExpressionStatement","src":"2780:15:2"},{"attributes":{"functionReturnParameters":2206},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"%","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2200,"type":"uint256","value":"a"},"id":2213,"name":"Identifier","src":"2808:1:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2202,"type":"uint256","value":"b"},"id":2214,"name":"Identifier","src":"2812:1:2"}],"id":2215,"name":"BinaryOperation","src":"2808:5:2"}],"id":2216,"name":"Return","src":"2801:12:2"}],"id":2217,"name":"Block","src":"2774:44:2"}],"id":2218,"name":"FunctionDefinition","src":"2707:111:2"}],"id":2219,"name":"ContractDefinition","src":"1289:1531:2"}],"id":2220,"name":"SourceUnit","src":"1172:1649:2"}},"externals/ens/ENS.sol":{"AST":{"attributes":{"absolutePath":"externals/ens/ENS.sol","exportedSymbols":{"ENS":[3630]}},"children":[{"attributes":{"literals":["solidity",">=","0.4",".24"]},"id":3552,"name":"PragmaDirective","src":"1400:25:3"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"interface","documentation":null,"fullyImplemented":false,"linearizedBaseContracts":[3630],"name":"ENS","scope":3631},"children":[{"attributes":{"anonymous":false,"documentation":null,"name":"NewOwner"},"children":[{"children":[{"attributes":{"constant":false,"indexed":true,"name":"node","scope":3560,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3553,"name":"ElementaryTypeName","src":"1536:7:3"}],"id":3554,"name":"VariableDeclaration","src":"1536:20:3"},{"attributes":{"constant":false,"indexed":true,"name":"label","scope":3560,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3555,"name":"ElementaryTypeName","src":"1558:7:3"}],"id":3556,"name":"VariableDeclaration","src":"1558:21:3"},{"attributes":{"constant":false,"indexed":false,"name":"owner","scope":3560,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3557,"name":"ElementaryTypeName","src":"1581:7:3"}],"id":3558,"name":"VariableDeclaration","src":"1581:13:3"}],"id":3559,"name":"ParameterList","src":"1535:60:3"}],"id":3560,"name":"EventDefinition","src":"1521:75:3"},{"attributes":{"anonymous":false,"documentation":null,"name":"Transfer"},"children":[{"children":[{"attributes":{"constant":false,"indexed":true,"name":"node","scope":3566,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3561,"name":"ElementaryTypeName","src":"1694:7:3"}],"id":3562,"name":"VariableDeclaration","src":"1694:20:3"},{"attributes":{"constant":false,"indexed":false,"name":"owner","scope":3566,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3563,"name":"ElementaryTypeName","src":"1716:7:3"}],"id":3564,"name":"VariableDeclaration","src":"1716:13:3"}],"id":3565,"name":"ParameterList","src":"1693:37:3"}],"id":3566,"name":"EventDefinition","src":"1679:52:3"},{"attributes":{"anonymous":false,"documentation":null,"name":"NewResolver"},"children":[{"children":[{"attributes":{"constant":false,"indexed":true,"name":"node","scope":3572,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3567,"name":"ElementaryTypeName","src":"1807:7:3"}],"id":3568,"name":"VariableDeclaration","src":"1807:20:3"},{"attributes":{"constant":false,"indexed":false,"name":"resolver","scope":3572,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3569,"name":"ElementaryTypeName","src":"1829:7:3"}],"id":3570,"name":"VariableDeclaration","src":"1829:16:3"}],"id":3571,"name":"ParameterList","src":"1806:40:3"}],"id":3572,"name":"EventDefinition","src":"1789:58:3"},{"attributes":{"anonymous":false,"documentation":null,"name":"NewTTL"},"children":[{"children":[{"attributes":{"constant":false,"indexed":true,"name":"node","scope":3578,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3573,"name":"ElementaryTypeName","src":"1911:7:3"}],"id":3574,"name":"VariableDeclaration","src":"1911:20:3"},{"attributes":{"constant":false,"indexed":false,"name":"ttl","scope":3578,"stateVariable":false,"storageLocation":"default","type":"uint64","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint64","type":"uint64"},"id":3575,"name":"ElementaryTypeName","src":"1933:6:3"}],"id":3576,"name":"VariableDeclaration","src":"1933:10:3"}],"id":3577,"name":"ParameterList","src":"1910:34:3"}],"id":3578,"name":"EventDefinition","src":"1898:47:3"},{"attributes":{"body":null,"constant":false,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"setSubnodeOwner","payable":false,"scope":3630,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":3587,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3579,"name":"ElementaryTypeName","src":"1977:7:3"}],"id":3580,"name":"VariableDeclaration","src":"1977:12:3"},{"attributes":{"constant":false,"name":"label","scope":3587,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3581,"name":"ElementaryTypeName","src":"1991:7:3"}],"id":3582,"name":"VariableDeclaration","src":"1991:13:3"},{"attributes":{"constant":false,"name":"owner","scope":3587,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3583,"name":"ElementaryTypeName","src":"2006:7:3"}],"id":3584,"name":"VariableDeclaration","src":"2006:13:3"}],"id":3585,"name":"ParameterList","src":"1976:44:3"},{"attributes":{"parameters":[null]},"children":[],"id":3586,"name":"ParameterList","src":"2029:0:3"}],"id":3587,"name":"FunctionDefinition","src":"1952:78:3"},{"attributes":{"body":null,"constant":false,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"setResolver","payable":false,"scope":3630,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":3594,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3588,"name":"ElementaryTypeName","src":"2056:7:3"}],"id":3589,"name":"VariableDeclaration","src":"2056:12:3"},{"attributes":{"constant":false,"name":"resolver","scope":3594,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3590,"name":"ElementaryTypeName","src":"2070:7:3"}],"id":3591,"name":"VariableDeclaration","src":"2070:16:3"}],"id":3592,"name":"ParameterList","src":"2055:32:3"},{"attributes":{"parameters":[null]},"children":[],"id":3593,"name":"ParameterList","src":"2096:0:3"}],"id":3594,"name":"FunctionDefinition","src":"2035:62:3"},{"attributes":{"body":null,"constant":false,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"setOwner","payable":false,"scope":3630,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":3601,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3595,"name":"ElementaryTypeName","src":"2120:7:3"}],"id":3596,"name":"VariableDeclaration","src":"2120:12:3"},{"attributes":{"constant":false,"name":"owner","scope":3601,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3597,"name":"ElementaryTypeName","src":"2134:7:3"}],"id":3598,"name":"VariableDeclaration","src":"2134:13:3"}],"id":3599,"name":"ParameterList","src":"2119:29:3"},{"attributes":{"parameters":[null]},"children":[],"id":3600,"name":"ParameterList","src":"2157:0:3"}],"id":3601,"name":"FunctionDefinition","src":"2102:56:3"},{"attributes":{"body":null,"constant":false,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"setTTL","payable":false,"scope":3630,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":3608,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3602,"name":"ElementaryTypeName","src":"2179:7:3"}],"id":3603,"name":"VariableDeclaration","src":"2179:12:3"},{"attributes":{"constant":false,"name":"ttl","scope":3608,"stateVariable":false,"storageLocation":"default","type":"uint64","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint64","type":"uint64"},"id":3604,"name":"ElementaryTypeName","src":"2193:6:3"}],"id":3605,"name":"VariableDeclaration","src":"2193:10:3"}],"id":3606,"name":"ParameterList","src":"2178:26:3"},{"attributes":{"parameters":[null]},"children":[],"id":3607,"name":"ParameterList","src":"2213:0:3"}],"id":3608,"name":"FunctionDefinition","src":"2163:51:3"},{"attributes":{"body":null,"constant":true,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"owner","payable":false,"scope":3630,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":3615,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3609,"name":"ElementaryTypeName","src":"2234:7:3"}],"id":3610,"name":"VariableDeclaration","src":"2234:12:3"}],"id":3611,"name":"ParameterList","src":"2233:14:3"},{"children":[{"attributes":{"constant":false,"name":"","scope":3615,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3612,"name":"ElementaryTypeName","src":"2271:7:3"}],"id":3613,"name":"VariableDeclaration","src":"2271:7:3"}],"id":3614,"name":"ParameterList","src":"2270:9:3"}],"id":3615,"name":"FunctionDefinition","src":"2219:61:3"},{"attributes":{"body":null,"constant":true,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"resolver","payable":false,"scope":3630,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":3622,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3616,"name":"ElementaryTypeName","src":"2303:7:3"}],"id":3617,"name":"VariableDeclaration","src":"2303:12:3"}],"id":3618,"name":"ParameterList","src":"2302:14:3"},{"children":[{"attributes":{"constant":false,"name":"","scope":3622,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3619,"name":"ElementaryTypeName","src":"2340:7:3"}],"id":3620,"name":"VariableDeclaration","src":"2340:7:3"}],"id":3621,"name":"ParameterList","src":"2339:9:3"}],"id":3622,"name":"FunctionDefinition","src":"2285:64:3"},{"attributes":{"body":null,"constant":true,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"ttl","payable":false,"scope":3630,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":3629,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3623,"name":"ElementaryTypeName","src":"2367:7:3"}],"id":3624,"name":"VariableDeclaration","src":"2367:12:3"}],"id":3625,"name":"ParameterList","src":"2366:14:3"},{"children":[{"attributes":{"constant":false,"name":"","scope":3629,"stateVariable":false,"storageLocation":"default","type":"uint64","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint64","type":"uint64"},"id":3626,"name":"ElementaryTypeName","src":"2404:6:3"}],"id":3627,"name":"VariableDeclaration","src":"2404:6:3"}],"id":3628,"name":"ParameterList","src":"2403:8:3"}],"id":3629,"name":"FunctionDefinition","src":"2354:58:3"}],"id":3630,"name":"ContractDefinition","src":"1427:988:3"}],"id":3631,"name":"SourceUnit","src":"1400:1017:3"}},"externals/ens/PublicResolver.sol":{"AST":{"attributes":{"absolutePath":"externals/ens/PublicResolver.sol","exportedSymbols":{"PublicResolver":[4138]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".24"]},"id":3632,"name":"PragmaDirective","src":"1406:24:4"},{"attributes":{"SourceUnit":3631,"absolutePath":"externals/ens/ENS.sol","file":"./ENS.sol","scope":4139,"symbolAliases":[null],"unitAlias":""},"id":3633,"name":"ImportDirective","src":"1432:19:4"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"contract","documentation":"A simple resolver anyone can use; only allows the owner of a node to set its\naddress.","fullyImplemented":true,"linearizedBaseContracts":[4138],"name":"PublicResolver","scope":4139},"children":[{"attributes":{"constant":true,"name":"INTERFACE_META_ID","scope":4138,"stateVariable":true,"storageLocation":"default","type":"bytes4","visibility":"internal"},"children":[{"attributes":{"name":"bytes4","type":"bytes4"},"id":3634,"name":"ElementaryTypeName","src":"1584:6:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30783031666663396137","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 33540519","value":"0x01ffc9a7"},"id":3635,"name":"Literal","src":"1620:10:4"}],"id":3636,"name":"VariableDeclaration","src":"1584:46:4"},{"attributes":{"constant":true,"name":"ADDR_INTERFACE_ID","scope":4138,"stateVariable":true,"storageLocation":"default","type":"bytes4","visibility":"internal"},"children":[{"attributes":{"name":"bytes4","type":"bytes4"},"id":3637,"name":"ElementaryTypeName","src":"1636:6:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30783362336235376465","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 993744862","value":"0x3b3b57de"},"id":3638,"name":"Literal","src":"1672:10:4"}],"id":3639,"name":"VariableDeclaration","src":"1636:46:4"},{"attributes":{"constant":true,"name":"CONTENT_INTERFACE_ID","scope":4138,"stateVariable":true,"storageLocation":"default","type":"bytes4","visibility":"internal"},"children":[{"attributes":{"name":"bytes4","type":"bytes4"},"id":3640,"name":"ElementaryTypeName","src":"1688:6:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30786438333839646335","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3627589061","value":"0xd8389dc5"},"id":3641,"name":"Literal","src":"1727:10:4"}],"id":3642,"name":"VariableDeclaration","src":"1688:49:4"},{"attributes":{"constant":true,"name":"NAME_INTERFACE_ID","scope":4138,"stateVariable":true,"storageLocation":"default","type":"bytes4","visibility":"internal"},"children":[{"attributes":{"name":"bytes4","type":"bytes4"},"id":3643,"name":"ElementaryTypeName","src":"1743:6:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30783639316633343331","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1763652657","value":"0x691f3431"},"id":3644,"name":"Literal","src":"1779:10:4"}],"id":3645,"name":"VariableDeclaration","src":"1743:46:4"},{"attributes":{"constant":true,"name":"ABI_INTERFACE_ID","scope":4138,"stateVariable":true,"storageLocation":"default","type":"bytes4","visibility":"internal"},"children":[{"attributes":{"name":"bytes4","type":"bytes4"},"id":3646,"name":"ElementaryTypeName","src":"1795:6:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30783232303361623536","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 570665814","value":"0x2203ab56"},"id":3647,"name":"Literal","src":"1830:10:4"}],"id":3648,"name":"VariableDeclaration","src":"1795:45:4"},{"attributes":{"constant":true,"name":"PUBKEY_INTERFACE_ID","scope":4138,"stateVariable":true,"storageLocation":"default","type":"bytes4","visibility":"internal"},"children":[{"attributes":{"name":"bytes4","type":"bytes4"},"id":3649,"name":"ElementaryTypeName","src":"1846:6:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30786338363930323333","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3362325043","value":"0xc8690233"},"id":3650,"name":"Literal","src":"1884:10:4"}],"id":3651,"name":"VariableDeclaration","src":"1846:48:4"},{"attributes":{"constant":true,"name":"TEXT_INTERFACE_ID","scope":4138,"stateVariable":true,"storageLocation":"default","type":"bytes4","visibility":"internal"},"children":[{"attributes":{"name":"bytes4","type":"bytes4"},"id":3652,"name":"ElementaryTypeName","src":"1900:6:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30783539643164343363","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1506923580","value":"0x59d1d43c"},"id":3653,"name":"Literal","src":"1936:10:4"}],"id":3654,"name":"VariableDeclaration","src":"1900:46:4"},{"attributes":{"constant":true,"name":"MULTIHASH_INTERFACE_ID","scope":4138,"stateVariable":true,"storageLocation":"default","type":"bytes4","visibility":"internal"},"children":[{"attributes":{"name":"bytes4","type":"bytes4"},"id":3655,"name":"ElementaryTypeName","src":"1952:6:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30786538393430316131","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3902013857","value":"0xe89401a1"},"id":3656,"name":"Literal","src":"1993:10:4"}],"id":3657,"name":"VariableDeclaration","src":"1952:51:4"},{"attributes":{"anonymous":false,"documentation":null,"name":"AddrChanged"},"children":[{"children":[{"attributes":{"constant":false,"indexed":true,"name":"node","scope":3663,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3658,"name":"ElementaryTypeName","src":"2028:7:4"}],"id":3659,"name":"VariableDeclaration","src":"2028:20:4"},{"attributes":{"constant":false,"indexed":false,"name":"a","scope":3663,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3660,"name":"ElementaryTypeName","src":"2050:7:4"}],"id":3661,"name":"VariableDeclaration","src":"2050:9:4"}],"id":3662,"name":"ParameterList","src":"2027:33:4"}],"id":3663,"name":"EventDefinition","src":"2010:51:4"},{"attributes":{"anonymous":false,"documentation":null,"name":"ContentChanged"},"children":[{"children":[{"attributes":{"constant":false,"indexed":true,"name":"node","scope":3669,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3664,"name":"ElementaryTypeName","src":"2087:7:4"}],"id":3665,"name":"VariableDeclaration","src":"2087:20:4"},{"attributes":{"constant":false,"indexed":false,"name":"hash","scope":3669,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3666,"name":"ElementaryTypeName","src":"2109:7:4"}],"id":3667,"name":"VariableDeclaration","src":"2109:12:4"}],"id":3668,"name":"ParameterList","src":"2086:36:4"}],"id":3669,"name":"EventDefinition","src":"2066:57:4"},{"attributes":{"anonymous":false,"documentation":null,"name":"NameChanged"},"children":[{"children":[{"attributes":{"constant":false,"indexed":true,"name":"node","scope":3675,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3670,"name":"ElementaryTypeName","src":"2146:7:4"}],"id":3671,"name":"VariableDeclaration","src":"2146:20:4"},{"attributes":{"constant":false,"indexed":false,"name":"name","scope":3675,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":3672,"name":"ElementaryTypeName","src":"2168:6:4"}],"id":3673,"name":"VariableDeclaration","src":"2168:11:4"}],"id":3674,"name":"ParameterList","src":"2145:35:4"}],"id":3675,"name":"EventDefinition","src":"2128:53:4"},{"attributes":{"anonymous":false,"documentation":null,"name":"ABIChanged"},"children":[{"children":[{"attributes":{"constant":false,"indexed":true,"name":"node","scope":3681,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3676,"name":"ElementaryTypeName","src":"2203:7:4"}],"id":3677,"name":"VariableDeclaration","src":"2203:20:4"},{"attributes":{"constant":false,"indexed":true,"name":"contentType","scope":3681,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":3678,"name":"ElementaryTypeName","src":"2225:7:4"}],"id":3679,"name":"VariableDeclaration","src":"2225:27:4"}],"id":3680,"name":"ParameterList","src":"2202:51:4"}],"id":3681,"name":"EventDefinition","src":"2186:68:4"},{"attributes":{"anonymous":false,"documentation":null,"name":"PubkeyChanged"},"children":[{"children":[{"attributes":{"constant":false,"indexed":true,"name":"node","scope":3689,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3682,"name":"ElementaryTypeName","src":"2279:7:4"}],"id":3683,"name":"VariableDeclaration","src":"2279:20:4"},{"attributes":{"constant":false,"indexed":false,"name":"x","scope":3689,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3684,"name":"ElementaryTypeName","src":"2301:7:4"}],"id":3685,"name":"VariableDeclaration","src":"2301:9:4"},{"attributes":{"constant":false,"indexed":false,"name":"y","scope":3689,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3686,"name":"ElementaryTypeName","src":"2312:7:4"}],"id":3687,"name":"VariableDeclaration","src":"2312:9:4"}],"id":3688,"name":"ParameterList","src":"2278:44:4"}],"id":3689,"name":"EventDefinition","src":"2259:64:4"},{"attributes":{"anonymous":false,"documentation":null,"name":"TextChanged"},"children":[{"children":[{"attributes":{"constant":false,"indexed":true,"name":"node","scope":3697,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3690,"name":"ElementaryTypeName","src":"2346:7:4"}],"id":3691,"name":"VariableDeclaration","src":"2346:20:4"},{"attributes":{"constant":false,"indexed":false,"name":"indexedKey","scope":3697,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":3692,"name":"ElementaryTypeName","src":"2368:6:4"}],"id":3693,"name":"VariableDeclaration","src":"2368:17:4"},{"attributes":{"constant":false,"indexed":false,"name":"key","scope":3697,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":3694,"name":"ElementaryTypeName","src":"2387:6:4"}],"id":3695,"name":"VariableDeclaration","src":"2387:10:4"}],"id":3696,"name":"ParameterList","src":"2345:53:4"}],"id":3697,"name":"EventDefinition","src":"2328:71:4"},{"attributes":{"anonymous":false,"documentation":null,"name":"MultihashChanged"},"children":[{"children":[{"attributes":{"constant":false,"indexed":true,"name":"node","scope":3703,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3698,"name":"ElementaryTypeName","src":"2427:7:4"}],"id":3699,"name":"VariableDeclaration","src":"2427:20:4"},{"attributes":{"constant":false,"indexed":false,"name":"hash","scope":3703,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":3700,"name":"ElementaryTypeName","src":"2449:5:4"}],"id":3701,"name":"VariableDeclaration","src":"2449:10:4"}],"id":3702,"name":"ParameterList","src":"2426:34:4"}],"id":3703,"name":"EventDefinition","src":"2404:57:4"},{"attributes":{"canonicalName":"PublicResolver.PublicKey","name":"PublicKey","scope":4138,"visibility":"public"},"children":[{"attributes":{"constant":false,"name":"x","scope":3708,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3704,"name":"ElementaryTypeName","src":"2494:7:4"}],"id":3705,"name":"VariableDeclaration","src":"2494:9:4"},{"attributes":{"constant":false,"name":"y","scope":3708,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3706,"name":"ElementaryTypeName","src":"2513:7:4"}],"id":3707,"name":"VariableDeclaration","src":"2513:9:4"}],"id":3708,"name":"StructDefinition","src":"2467:62:4"},{"attributes":{"canonicalName":"PublicResolver.Record","name":"Record","scope":4138,"visibility":"public"},"children":[{"attributes":{"constant":false,"name":"addr","scope":3727,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3709,"name":"ElementaryTypeName","src":"2559:7:4"}],"id":3710,"name":"VariableDeclaration","src":"2559:12:4"},{"attributes":{"constant":false,"name":"content","scope":3727,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3711,"name":"ElementaryTypeName","src":"2581:7:4"}],"id":3712,"name":"VariableDeclaration","src":"2581:15:4"},{"attributes":{"constant":false,"name":"name","scope":3727,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":3713,"name":"ElementaryTypeName","src":"2606:6:4"}],"id":3714,"name":"VariableDeclaration","src":"2606:11:4"},{"attributes":{"constant":false,"name":"pubkey","scope":3727,"stateVariable":false,"storageLocation":"default","type":"struct PublicResolver.PublicKey","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"PublicKey","referencedDeclaration":3708,"type":"struct PublicResolver.PublicKey"},"id":3715,"name":"UserDefinedTypeName","src":"2627:9:4"}],"id":3716,"name":"VariableDeclaration","src":"2627:16:4"},{"attributes":{"constant":false,"name":"text","scope":3727,"stateVariable":false,"storageLocation":"default","type":"mapping(string => string)","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"mapping(string => string)"},"children":[{"attributes":{"name":"string","type":"string"},"id":3717,"name":"ElementaryTypeName","src":"2661:6:4"},{"attributes":{"name":"string","type":"string"},"id":3718,"name":"ElementaryTypeName","src":"2669:6:4"}],"id":3719,"name":"Mapping","src":"2653:23:4"}],"id":3720,"name":"VariableDeclaration","src":"2653:28:4"},{"attributes":{"constant":false,"name":"abis","scope":3727,"stateVariable":false,"storageLocation":"default","type":"mapping(uint256 => bytes)","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"mapping(uint256 => bytes)"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":3721,"name":"ElementaryTypeName","src":"2699:7:4"},{"attributes":{"name":"bytes","type":"bytes"},"id":3722,"name":"ElementaryTypeName","src":"2708:5:4"}],"id":3723,"name":"Mapping","src":"2691:23:4"}],"id":3724,"name":"VariableDeclaration","src":"2691:28:4"},{"attributes":{"constant":false,"name":"multihash","scope":3727,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":3725,"name":"ElementaryTypeName","src":"2729:5:4"}],"id":3726,"name":"VariableDeclaration","src":"2729:15:4"}],"id":3727,"name":"StructDefinition","src":"2535:216:4"},{"attributes":{"constant":false,"name":"ens","scope":4138,"stateVariable":true,"storageLocation":"default","type":"contract ENS","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"ENS","referencedDeclaration":3630,"type":"contract ENS"},"id":3728,"name":"UserDefinedTypeName","src":"2757:3:4"}],"id":3729,"name":"VariableDeclaration","src":"2757:7:4"},{"attributes":{"constant":false,"name":"records","scope":4138,"stateVariable":true,"storageLocation":"default","type":"mapping(bytes32 => struct PublicResolver.Record)","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"mapping(bytes32 => struct PublicResolver.Record)"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3730,"name":"ElementaryTypeName","src":"2780:7:4"},{"attributes":{"contractScope":null,"name":"Record","referencedDeclaration":3727,"type":"struct PublicResolver.Record"},"id":3731,"name":"UserDefinedTypeName","src":"2791:6:4"}],"id":3732,"name":"Mapping","src":"2771:27:4"}],"id":3733,"name":"VariableDeclaration","src":"2771:35:4"},{"attributes":{"documentation":null,"name":"only_owner","visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":3749,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3734,"name":"ElementaryTypeName","src":"2833:7:4"}],"id":3735,"name":"VariableDeclaration","src":"2833:12:4"}],"id":3736,"name":"ParameterList","src":"2832:14:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"overloadedDeclarations":[6460,6461],"referencedDeclaration":6460,"type":"function (bool) pure","value":"require"},"id":3737,"name":"Identifier","src":"2857:7:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"owner","referencedDeclaration":3615,"type":"function (bytes32) view external returns (address)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3729,"type":"contract ENS","value":"ens"},"id":3738,"name":"Identifier","src":"2865:3:4"}],"id":3739,"name":"MemberAccess","src":"2865:9:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3735,"type":"bytes32","value":"node"},"id":3740,"name":"Identifier","src":"2875:4:4"}],"id":3741,"name":"FunctionCall","src":"2865:15:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6457,"type":"msg","value":"msg"},"id":3742,"name":"Identifier","src":"2884:3:4"}],"id":3743,"name":"MemberAccess","src":"2884:10:4"}],"id":3744,"name":"BinaryOperation","src":"2865:29:4"}],"id":3745,"name":"FunctionCall","src":"2857:38:4"}],"id":3746,"name":"ExpressionStatement","src":"2857:38:4"},{"id":3747,"name":"PlaceholderStatement","src":"2905:1:4"}],"id":3748,"name":"Block","src":"2847:66:4"}],"id":3749,"name":"ModifierDefinition","src":"2813:100:4"},{"attributes":{"constant":false,"documentation":"Constructor.\n@param ensAddr The ENS registrar contract.","implemented":true,"isConstructor":true,"modifiers":[null],"name":"","payable":false,"scope":4138,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"ensAddr","scope":3759,"stateVariable":false,"storageLocation":"default","type":"contract ENS","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"ENS","referencedDeclaration":3630,"type":"contract ENS"},"id":3750,"name":"UserDefinedTypeName","src":"3017:3:4"}],"id":3751,"name":"VariableDeclaration","src":"3017:11:4"}],"id":3752,"name":"ParameterList","src":"3016:13:4"},{"attributes":{"parameters":[null]},"children":[],"id":3753,"name":"ParameterList","src":"3037:0:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"contract ENS"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3729,"type":"contract ENS","value":"ens"},"id":3754,"name":"Identifier","src":"3047:3:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3751,"type":"contract ENS","value":"ensAddr"},"id":3755,"name":"Identifier","src":"3053:7:4"}],"id":3756,"name":"Assignment","src":"3047:13:4"}],"id":3757,"name":"ExpressionStatement","src":"3047:13:4"}],"id":3758,"name":"Block","src":"3037:30:4"}],"id":3759,"name":"FunctionDefinition","src":"3005:62:4"},{"attributes":{"constant":false,"documentation":"Sets the address associated with an ENS node.\nMay only be called by the owner of that node in the ENS registry.\n@param node The node to update.\n@param addr The address to set.","implemented":true,"isConstructor":false,"name":"setAddr","payable":false,"scope":4138,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":3782,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3760,"name":"ElementaryTypeName","src":"3310:7:4"}],"id":3761,"name":"VariableDeclaration","src":"3310:12:4"},{"attributes":{"constant":false,"name":"addr","scope":3782,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3762,"name":"ElementaryTypeName","src":"3324:7:4"}],"id":3763,"name":"VariableDeclaration","src":"3324:12:4"}],"id":3764,"name":"ParameterList","src":"3309:28:4"},{"attributes":{"parameters":[null]},"children":[],"id":3768,"name":"ParameterList","src":"3362:0:4"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3749,"type":"modifier (bytes32)","value":"only_owner"},"id":3765,"name":"Identifier","src":"3345:10:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3761,"type":"bytes32","value":"node"},"id":3766,"name":"Identifier","src":"3356:4:4"}],"id":3767,"name":"ModifierInvocation","src":"3345:16:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"address"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"addr","referencedDeclaration":3710,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3733,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":3769,"name":"Identifier","src":"3372:7:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3761,"type":"bytes32","value":"node"},"id":3770,"name":"Identifier","src":"3380:4:4"}],"id":3771,"name":"IndexAccess","src":"3372:13:4"}],"id":3772,"name":"MemberAccess","src":"3372:18:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3763,"type":"address","value":"addr"},"id":3773,"name":"Identifier","src":"3393:4:4"}],"id":3774,"name":"Assignment","src":"3372:25:4"}],"id":3775,"name":"ExpressionStatement","src":"3372:25:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":3663,"type":"function (bytes32,address)","value":"AddrChanged"},"id":3776,"name":"Identifier","src":"3412:11:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3761,"type":"bytes32","value":"node"},"id":3777,"name":"Identifier","src":"3424:4:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3763,"type":"address","value":"addr"},"id":3778,"name":"Identifier","src":"3430:4:4"}],"id":3779,"name":"FunctionCall","src":"3412:23:4"}],"id":3780,"name":"EmitStatement","src":"3407:28:4"}],"id":3781,"name":"Block","src":"3362:80:4"}],"id":3782,"name":"FunctionDefinition","src":"3293:149:4"},{"attributes":{"constant":false,"documentation":"Sets the content hash associated with an ENS node.\nMay only be called by the owner of that node in the ENS registry.\nNote that this resource type is not standardized, and will likely change\nin future to a resource type based on multihash.\n@param node The node to update.\n@param hash The content hash to set","implemented":true,"isConstructor":false,"name":"setContent","payable":false,"scope":4138,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":3805,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3783,"name":"ElementaryTypeName","src":"3833:7:4"}],"id":3784,"name":"VariableDeclaration","src":"3833:12:4"},{"attributes":{"constant":false,"name":"hash","scope":3805,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3785,"name":"ElementaryTypeName","src":"3847:7:4"}],"id":3786,"name":"VariableDeclaration","src":"3847:12:4"}],"id":3787,"name":"ParameterList","src":"3832:28:4"},{"attributes":{"parameters":[null]},"children":[],"id":3791,"name":"ParameterList","src":"3885:0:4"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3749,"type":"modifier (bytes32)","value":"only_owner"},"id":3788,"name":"Identifier","src":"3868:10:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3784,"type":"bytes32","value":"node"},"id":3789,"name":"Identifier","src":"3879:4:4"}],"id":3790,"name":"ModifierInvocation","src":"3868:16:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"content","referencedDeclaration":3712,"type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3733,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":3792,"name":"Identifier","src":"3895:7:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3784,"type":"bytes32","value":"node"},"id":3793,"name":"Identifier","src":"3903:4:4"}],"id":3794,"name":"IndexAccess","src":"3895:13:4"}],"id":3795,"name":"MemberAccess","src":"3895:21:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3786,"type":"bytes32","value":"hash"},"id":3796,"name":"Identifier","src":"3919:4:4"}],"id":3797,"name":"Assignment","src":"3895:28:4"}],"id":3798,"name":"ExpressionStatement","src":"3895:28:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[null],"referencedDeclaration":3669,"type":"function (bytes32,bytes32)","value":"ContentChanged"},"id":3799,"name":"Identifier","src":"3938:14:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3784,"type":"bytes32","value":"node"},"id":3800,"name":"Identifier","src":"3953:4:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3786,"type":"bytes32","value":"hash"},"id":3801,"name":"Identifier","src":"3959:4:4"}],"id":3802,"name":"FunctionCall","src":"3938:26:4"}],"id":3803,"name":"EmitStatement","src":"3933:31:4"}],"id":3804,"name":"Block","src":"3885:86:4"}],"id":3805,"name":"FunctionDefinition","src":"3813:158:4"},{"attributes":{"constant":false,"documentation":"Sets the multihash associated with an ENS node.\nMay only be called by the owner of that node in the ENS registry.\n@param node The node to update.\n@param hash The multihash to set","implemented":true,"isConstructor":false,"name":"setMultihash","payable":false,"scope":4138,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":3828,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3806,"name":"ElementaryTypeName","src":"4222:7:4"}],"id":3807,"name":"VariableDeclaration","src":"4222:12:4"},{"attributes":{"constant":false,"name":"hash","scope":3828,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":3808,"name":"ElementaryTypeName","src":"4236:5:4"}],"id":3809,"name":"VariableDeclaration","src":"4236:10:4"}],"id":3810,"name":"ParameterList","src":"4221:26:4"},{"attributes":{"parameters":[null]},"children":[],"id":3814,"name":"ParameterList","src":"4272:0:4"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3749,"type":"modifier (bytes32)","value":"only_owner"},"id":3811,"name":"Identifier","src":"4255:10:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3807,"type":"bytes32","value":"node"},"id":3812,"name":"Identifier","src":"4266:4:4"}],"id":3813,"name":"ModifierInvocation","src":"4255:16:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"multihash","referencedDeclaration":3726,"type":"bytes storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3733,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":3815,"name":"Identifier","src":"4282:7:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3807,"type":"bytes32","value":"node"},"id":3816,"name":"Identifier","src":"4290:4:4"}],"id":3817,"name":"IndexAccess","src":"4282:13:4"}],"id":3818,"name":"MemberAccess","src":"4282:23:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3809,"type":"bytes memory","value":"hash"},"id":3819,"name":"Identifier","src":"4308:4:4"}],"id":3820,"name":"Assignment","src":"4282:30:4"}],"id":3821,"name":"ExpressionStatement","src":"4282:30:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"overloadedDeclarations":[null],"referencedDeclaration":3703,"type":"function (bytes32,bytes memory)","value":"MultihashChanged"},"id":3822,"name":"Identifier","src":"4327:16:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3807,"type":"bytes32","value":"node"},"id":3823,"name":"Identifier","src":"4344:4:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3809,"type":"bytes memory","value":"hash"},"id":3824,"name":"Identifier","src":"4350:4:4"}],"id":3825,"name":"FunctionCall","src":"4327:28:4"}],"id":3826,"name":"EmitStatement","src":"4322:33:4"}],"id":3827,"name":"Block","src":"4272:90:4"}],"id":3828,"name":"FunctionDefinition","src":"4200:162:4"},{"attributes":{"constant":false,"documentation":"Sets the name associated with an ENS node, for reverse records.\nMay only be called by the owner of that node in the ENS registry.\n@param node The node to update.\n@param name The name to set.","implemented":true,"isConstructor":false,"name":"setName","payable":false,"scope":4138,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":3851,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3829,"name":"ElementaryTypeName","src":"4624:7:4"}],"id":3830,"name":"VariableDeclaration","src":"4624:12:4"},{"attributes":{"constant":false,"name":"name","scope":3851,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":3831,"name":"ElementaryTypeName","src":"4638:6:4"}],"id":3832,"name":"VariableDeclaration","src":"4638:11:4"}],"id":3833,"name":"ParameterList","src":"4623:27:4"},{"attributes":{"parameters":[null]},"children":[],"id":3837,"name":"ParameterList","src":"4675:0:4"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3749,"type":"modifier (bytes32)","value":"only_owner"},"id":3834,"name":"Identifier","src":"4658:10:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3830,"type":"bytes32","value":"node"},"id":3835,"name":"Identifier","src":"4669:4:4"}],"id":3836,"name":"ModifierInvocation","src":"4658:16:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"name","referencedDeclaration":3714,"type":"string storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3733,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":3838,"name":"Identifier","src":"4685:7:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3830,"type":"bytes32","value":"node"},"id":3839,"name":"Identifier","src":"4693:4:4"}],"id":3840,"name":"IndexAccess","src":"4685:13:4"}],"id":3841,"name":"MemberAccess","src":"4685:18:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3832,"type":"string memory","value":"name"},"id":3842,"name":"Identifier","src":"4706:4:4"}],"id":3843,"name":"Assignment","src":"4685:25:4"}],"id":3844,"name":"ExpressionStatement","src":"4685:25:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"overloadedDeclarations":[null],"referencedDeclaration":3675,"type":"function (bytes32,string memory)","value":"NameChanged"},"id":3845,"name":"Identifier","src":"4725:11:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3830,"type":"bytes32","value":"node"},"id":3846,"name":"Identifier","src":"4737:4:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3832,"type":"string memory","value":"name"},"id":3847,"name":"Identifier","src":"4743:4:4"}],"id":3848,"name":"FunctionCall","src":"4725:23:4"}],"id":3849,"name":"EmitStatement","src":"4720:28:4"}],"id":3850,"name":"Block","src":"4675:80:4"}],"id":3851,"name":"FunctionDefinition","src":"4607:148:4"},{"attributes":{"constant":false,"documentation":"Sets the ABI associated with an ENS node.\nNodes may have one ABI of each content type. To remove an ABI, set it to\nthe empty string.\n@param node The node to update.\n@param contentType The content type of the ABI\n@param data The ABI data.","implemented":true,"isConstructor":false,"name":"setABI","payable":false,"scope":4138,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":3890,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3852,"name":"ElementaryTypeName","src":"5073:7:4"}],"id":3853,"name":"VariableDeclaration","src":"5073:12:4"},{"attributes":{"constant":false,"name":"contentType","scope":3890,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":3854,"name":"ElementaryTypeName","src":"5087:7:4"}],"id":3855,"name":"VariableDeclaration","src":"5087:19:4"},{"attributes":{"constant":false,"name":"data","scope":3890,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":3856,"name":"ElementaryTypeName","src":"5108:5:4"}],"id":3857,"name":"VariableDeclaration","src":"5108:10:4"}],"id":3858,"name":"ParameterList","src":"5072:47:4"},{"attributes":{"parameters":[null]},"children":[],"id":3862,"name":"ParameterList","src":"5144:0:4"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3749,"type":"modifier (bytes32)","value":"only_owner"},"id":3859,"name":"Identifier","src":"5127:10:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3853,"type":"bytes32","value":"node"},"id":3860,"name":"Identifier","src":"5138:4:4"}],"id":3861,"name":"ModifierInvocation","src":"5127:16:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"overloadedDeclarations":[6460,6461],"referencedDeclaration":6460,"type":"function (bool) pure","value":"require"},"id":3863,"name":"Identifier","src":"5199:7:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3855,"type":"uint256","value":"contentType"},"id":3864,"name":"Identifier","src":"5209:11:4"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":3865,"name":"Literal","src":"5223:1:4"}],"id":3866,"name":"BinaryOperation","src":"5209:15:4"}],"id":3867,"name":"TupleExpression","src":"5208:17:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3855,"type":"uint256","value":"contentType"},"id":3868,"name":"Identifier","src":"5228:11:4"}],"id":3869,"name":"BinaryOperation","src":"5208:31:4"}],"id":3870,"name":"TupleExpression","src":"5207:33:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3871,"name":"Literal","src":"5244:1:4"}],"id":3872,"name":"BinaryOperation","src":"5207:38:4"}],"id":3873,"name":"FunctionCall","src":"5199:47:4"}],"id":3874,"name":"ExpressionStatement","src":"5199:47:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"abis","referencedDeclaration":3724,"type":"mapping(uint256 => bytes storage ref)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3733,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":3875,"name":"Identifier","src":"5265:7:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3853,"type":"bytes32","value":"node"},"id":3876,"name":"Identifier","src":"5273:4:4"}],"id":3877,"name":"IndexAccess","src":"5265:13:4"}],"id":3878,"name":"MemberAccess","src":"5265:18:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3855,"type":"uint256","value":"contentType"},"id":3879,"name":"Identifier","src":"5284:11:4"}],"id":3880,"name":"IndexAccess","src":"5265:31:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3857,"type":"bytes memory","value":"data"},"id":3881,"name":"Identifier","src":"5299:4:4"}],"id":3882,"name":"Assignment","src":"5265:38:4"}],"id":3883,"name":"ExpressionStatement","src":"5265:38:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":3681,"type":"function (bytes32,uint256)","value":"ABIChanged"},"id":3884,"name":"Identifier","src":"5318:10:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3853,"type":"bytes32","value":"node"},"id":3885,"name":"Identifier","src":"5329:4:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3855,"type":"uint256","value":"contentType"},"id":3886,"name":"Identifier","src":"5335:11:4"}],"id":3887,"name":"FunctionCall","src":"5318:29:4"}],"id":3888,"name":"EmitStatement","src":"5313:34:4"}],"id":3889,"name":"Block","src":"5144:210:4"}],"id":3890,"name":"FunctionDefinition","src":"5057:297:4"},{"attributes":{"constant":false,"documentation":"Sets the SECP256k1 public key associated with an ENS node.\n@param node The ENS node to query\n@param x the X coordinate of the curve point for the public key.\n@param y the Y coordinate of the curve point for the public key.","implemented":true,"isConstructor":false,"name":"setPubkey","payable":false,"scope":4138,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":3919,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3891,"name":"ElementaryTypeName","src":"5650:7:4"}],"id":3892,"name":"VariableDeclaration","src":"5650:12:4"},{"attributes":{"constant":false,"name":"x","scope":3919,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3893,"name":"ElementaryTypeName","src":"5664:7:4"}],"id":3894,"name":"VariableDeclaration","src":"5664:9:4"},{"attributes":{"constant":false,"name":"y","scope":3919,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3895,"name":"ElementaryTypeName","src":"5675:7:4"}],"id":3896,"name":"VariableDeclaration","src":"5675:9:4"}],"id":3897,"name":"ParameterList","src":"5649:36:4"},{"attributes":{"parameters":[null]},"children":[],"id":3901,"name":"ParameterList","src":"5710:0:4"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3749,"type":"modifier (bytes32)","value":"only_owner"},"id":3898,"name":"Identifier","src":"5693:10:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3892,"type":"bytes32","value":"node"},"id":3899,"name":"Identifier","src":"5704:4:4"}],"id":3900,"name":"ModifierInvocation","src":"5693:16:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"struct PublicResolver.PublicKey storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"pubkey","referencedDeclaration":3716,"type":"struct PublicResolver.PublicKey storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3733,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":3902,"name":"Identifier","src":"5720:7:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3892,"type":"bytes32","value":"node"},"id":3903,"name":"Identifier","src":"5728:4:4"}],"id":3904,"name":"IndexAccess","src":"5720:13:4"}],"id":3905,"name":"MemberAccess","src":"5720:20:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":true,"lValueRequested":false,"names":[null],"type":"struct PublicResolver.PublicKey memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[null],"referencedDeclaration":3708,"type":"type(struct PublicResolver.PublicKey storage pointer)","value":"PublicKey"},"id":3906,"name":"Identifier","src":"5743:9:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3894,"type":"bytes32","value":"x"},"id":3907,"name":"Identifier","src":"5753:1:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3896,"type":"bytes32","value":"y"},"id":3908,"name":"Identifier","src":"5756:1:4"}],"id":3909,"name":"FunctionCall","src":"5743:15:4"}],"id":3910,"name":"Assignment","src":"5720:38:4"}],"id":3911,"name":"ExpressionStatement","src":"5720:38:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[null],"referencedDeclaration":3689,"type":"function (bytes32,bytes32,bytes32)","value":"PubkeyChanged"},"id":3912,"name":"Identifier","src":"5773:13:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3892,"type":"bytes32","value":"node"},"id":3913,"name":"Identifier","src":"5787:4:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3894,"type":"bytes32","value":"x"},"id":3914,"name":"Identifier","src":"5793:1:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3896,"type":"bytes32","value":"y"},"id":3915,"name":"Identifier","src":"5796:1:4"}],"id":3916,"name":"FunctionCall","src":"5773:25:4"}],"id":3917,"name":"EmitStatement","src":"5768:30:4"}],"id":3918,"name":"Block","src":"5710:95:4"}],"id":3919,"name":"FunctionDefinition","src":"5631:174:4"},{"attributes":{"constant":false,"documentation":"Sets the text data associated with an ENS node and key.\nMay only be called by the owner of that node in the ENS registry.\n@param node The node to update.\n@param key The key to set.\n@param value The text data value to set.","implemented":true,"isConstructor":false,"name":"setText","payable":false,"scope":4138,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":3947,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3920,"name":"ElementaryTypeName","src":"6101:7:4"}],"id":3921,"name":"VariableDeclaration","src":"6101:12:4"},{"attributes":{"constant":false,"name":"key","scope":3947,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":3922,"name":"ElementaryTypeName","src":"6115:6:4"}],"id":3923,"name":"VariableDeclaration","src":"6115:10:4"},{"attributes":{"constant":false,"name":"value","scope":3947,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":3924,"name":"ElementaryTypeName","src":"6127:6:4"}],"id":3925,"name":"VariableDeclaration","src":"6127:12:4"}],"id":3926,"name":"ParameterList","src":"6100:40:4"},{"attributes":{"parameters":[null]},"children":[],"id":3930,"name":"ParameterList","src":"6165:0:4"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3749,"type":"modifier (bytes32)","value":"only_owner"},"id":3927,"name":"Identifier","src":"6148:10:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3921,"type":"bytes32","value":"node"},"id":3928,"name":"Identifier","src":"6159:4:4"}],"id":3929,"name":"ModifierInvocation","src":"6148:16:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"text","referencedDeclaration":3720,"type":"mapping(string memory => string storage ref)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3733,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":3931,"name":"Identifier","src":"6175:7:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3921,"type":"bytes32","value":"node"},"id":3932,"name":"Identifier","src":"6183:4:4"}],"id":3933,"name":"IndexAccess","src":"6175:13:4"}],"id":3934,"name":"MemberAccess","src":"6175:18:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3923,"type":"string memory","value":"key"},"id":3935,"name":"Identifier","src":"6194:3:4"}],"id":3936,"name":"IndexAccess","src":"6175:23:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3925,"type":"string memory","value":"value"},"id":3937,"name":"Identifier","src":"6201:5:4"}],"id":3938,"name":"Assignment","src":"6175:31:4"}],"id":3939,"name":"ExpressionStatement","src":"6175:31:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"overloadedDeclarations":[null],"referencedDeclaration":3697,"type":"function (bytes32,string memory,string memory)","value":"TextChanged"},"id":3940,"name":"Identifier","src":"6221:11:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3921,"type":"bytes32","value":"node"},"id":3941,"name":"Identifier","src":"6233:4:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3923,"type":"string memory","value":"key"},"id":3942,"name":"Identifier","src":"6239:3:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3923,"type":"string memory","value":"key"},"id":3943,"name":"Identifier","src":"6244:3:4"}],"id":3944,"name":"FunctionCall","src":"6221:27:4"}],"id":3945,"name":"EmitStatement","src":"6216:32:4"}],"id":3946,"name":"Block","src":"6165:90:4"}],"id":3947,"name":"FunctionDefinition","src":"6084:171:4"},{"attributes":{"constant":true,"documentation":"Returns the text data associated with an ENS node and key.\n@param node The ENS node to query.\n@param key The text data key to query.\n@return The associated text data.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"text","payable":false,"scope":4138,"stateMutability":"view","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":3964,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3948,"name":"ElementaryTypeName","src":"6486:7:4"}],"id":3949,"name":"VariableDeclaration","src":"6486:12:4"},{"attributes":{"constant":false,"name":"key","scope":3964,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":3950,"name":"ElementaryTypeName","src":"6500:6:4"}],"id":3951,"name":"VariableDeclaration","src":"6500:10:4"}],"id":3952,"name":"ParameterList","src":"6485:26:4"},{"children":[{"attributes":{"constant":false,"name":"","scope":3964,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":3953,"name":"ElementaryTypeName","src":"6533:6:4"}],"id":3954,"name":"VariableDeclaration","src":"6533:6:4"}],"id":3955,"name":"ParameterList","src":"6532:8:4"},{"children":[{"attributes":{"functionReturnParameters":3955},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"text","referencedDeclaration":3720,"type":"mapping(string memory => string storage ref)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3733,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":3956,"name":"Identifier","src":"6558:7:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3949,"type":"bytes32","value":"node"},"id":3957,"name":"Identifier","src":"6566:4:4"}],"id":3958,"name":"IndexAccess","src":"6558:13:4"}],"id":3959,"name":"MemberAccess","src":"6558:18:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3951,"type":"string memory","value":"key"},"id":3960,"name":"Identifier","src":"6577:3:4"}],"id":3961,"name":"IndexAccess","src":"6558:23:4"}],"id":3962,"name":"Return","src":"6551:30:4"}],"id":3963,"name":"Block","src":"6541:47:4"}],"id":3964,"name":"FunctionDefinition","src":"6472:116:4"},{"attributes":{"constant":true,"documentation":"Returns the SECP256k1 public key associated with an ENS node.\nDefined in EIP 619.\n@param node The ENS node to query\n@return x, y the X and Y coordinates of the curve point for the public key.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"pubkey","payable":false,"scope":4138,"stateMutability":"view","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":3986,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3965,"name":"ElementaryTypeName","src":"6846:7:4"}],"id":3966,"name":"VariableDeclaration","src":"6846:12:4"}],"id":3967,"name":"ParameterList","src":"6845:14:4"},{"children":[{"attributes":{"constant":false,"name":"x","scope":3986,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3968,"name":"ElementaryTypeName","src":"6881:7:4"}],"id":3969,"name":"VariableDeclaration","src":"6881:9:4"},{"attributes":{"constant":false,"name":"y","scope":3986,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3970,"name":"ElementaryTypeName","src":"6892:7:4"}],"id":3971,"name":"VariableDeclaration","src":"6892:9:4"}],"id":3972,"name":"ParameterList","src":"6880:22:4"},{"children":[{"attributes":{"functionReturnParameters":3972},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"tuple(bytes32,bytes32)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"x","referencedDeclaration":3705,"type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"pubkey","referencedDeclaration":3716,"type":"struct PublicResolver.PublicKey storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3733,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":3973,"name":"Identifier","src":"6921:7:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3966,"type":"bytes32","value":"node"},"id":3974,"name":"Identifier","src":"6929:4:4"}],"id":3975,"name":"IndexAccess","src":"6921:13:4"}],"id":3976,"name":"MemberAccess","src":"6921:20:4"}],"id":3977,"name":"MemberAccess","src":"6921:22:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"y","referencedDeclaration":3707,"type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"pubkey","referencedDeclaration":3716,"type":"struct PublicResolver.PublicKey storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3733,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":3978,"name":"Identifier","src":"6945:7:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3966,"type":"bytes32","value":"node"},"id":3979,"name":"Identifier","src":"6953:4:4"}],"id":3980,"name":"IndexAccess","src":"6945:13:4"}],"id":3981,"name":"MemberAccess","src":"6945:20:4"}],"id":3982,"name":"MemberAccess","src":"6945:22:4"}],"id":3983,"name":"TupleExpression","src":"6920:48:4"}],"id":3984,"name":"Return","src":"6913:55:4"}],"id":3985,"name":"Block","src":"6903:72:4"}],"id":3986,"name":"FunctionDefinition","src":"6830:145:4"},{"attributes":{"constant":true,"documentation":"Returns the ABI associated with an ENS node.\nDefined in EIP205.\n@param node The ENS node to query\n@param contentTypes A bitwise OR of the ABI formats accepted by the caller.\n@return contentType The content type of the return value\n@return data The ABI data","implemented":true,"isConstructor":false,"modifiers":[null],"name":"ABI","payable":false,"scope":4138,"stateMutability":"view","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":4045,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3987,"name":"ElementaryTypeName","src":"7309:7:4"}],"id":3988,"name":"VariableDeclaration","src":"7309:12:4"},{"attributes":{"constant":false,"name":"contentTypes","scope":4045,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":3989,"name":"ElementaryTypeName","src":"7323:7:4"}],"id":3990,"name":"VariableDeclaration","src":"7323:20:4"}],"id":3991,"name":"ParameterList","src":"7308:36:4"},{"children":[{"attributes":{"constant":false,"name":"contentType","scope":4045,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":3992,"name":"ElementaryTypeName","src":"7366:7:4"}],"id":3993,"name":"VariableDeclaration","src":"7366:19:4"},{"attributes":{"constant":false,"name":"data","scope":4045,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":3994,"name":"ElementaryTypeName","src":"7387:5:4"}],"id":3995,"name":"VariableDeclaration","src":"7387:10:4"}],"id":3996,"name":"ParameterList","src":"7365:33:4"},{"children":[{"attributes":{"assignments":[3998]},"children":[{"attributes":{"constant":false,"name":"record","scope":4045,"stateVariable":false,"storageLocation":"storage","type":"struct PublicResolver.Record","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"Record","referencedDeclaration":3727,"type":"struct PublicResolver.Record"},"id":3997,"name":"UserDefinedTypeName","src":"7409:6:4"}],"id":3998,"name":"VariableDeclaration","src":"7409:21:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3733,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":3999,"name":"Identifier","src":"7433:7:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3988,"type":"bytes32","value":"node"},"id":4000,"name":"Identifier","src":"7441:4:4"}],"id":4001,"name":"IndexAccess","src":"7433:13:4"}],"id":4002,"name":"VariableDeclarationStatement","src":"7409:37:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3993,"type":"uint256","value":"contentType"},"id":4003,"name":"Identifier","src":"7461:11:4"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":4004,"name":"Literal","src":"7475:1:4"}],"id":4005,"name":"Assignment","src":"7461:15:4"}],"id":4006,"name":"ExpressionStatement","src":"7461:15:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3993,"type":"uint256","value":"contentType"},"id":4007,"name":"Identifier","src":"7478:11:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3990,"type":"uint256","value":"contentTypes"},"id":4008,"name":"Identifier","src":"7493:12:4"}],"id":4009,"name":"BinaryOperation","src":"7478:27:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<<=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3993,"type":"uint256","value":"contentType"},"id":4010,"name":"Identifier","src":"7507:11:4"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":4011,"name":"Literal","src":"7523:1:4"}],"id":4012,"name":"Assignment","src":"7507:17:4"}],"id":4013,"name":"ExpressionStatement","src":"7507:17:4"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&&","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3993,"type":"uint256","value":"contentType"},"id":4014,"name":"Identifier","src":"7545:11:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3990,"type":"uint256","value":"contentTypes"},"id":4015,"name":"Identifier","src":"7559:12:4"}],"id":4016,"name":"BinaryOperation","src":"7545:26:4"}],"id":4017,"name":"TupleExpression","src":"7544:28:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4018,"name":"Literal","src":"7576:1:4"}],"id":4019,"name":"BinaryOperation","src":"7544:33:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"abis","referencedDeclaration":3724,"type":"mapping(uint256 => bytes storage ref)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3998,"type":"struct PublicResolver.Record storage pointer","value":"record"},"id":4020,"name":"Identifier","src":"7581:6:4"}],"id":4021,"name":"MemberAccess","src":"7581:11:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3993,"type":"uint256","value":"contentType"},"id":4022,"name":"Identifier","src":"7593:11:4"}],"id":4023,"name":"IndexAccess","src":"7581:24:4"}],"id":4024,"name":"MemberAccess","src":"7581:31:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4025,"name":"Literal","src":"7615:1:4"}],"id":4026,"name":"BinaryOperation","src":"7581:35:4"}],"id":4027,"name":"BinaryOperation","src":"7544:72:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3995,"type":"bytes memory","value":"data"},"id":4028,"name":"Identifier","src":"7636:4:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"abis","referencedDeclaration":3724,"type":"mapping(uint256 => bytes storage ref)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3998,"type":"struct PublicResolver.Record storage pointer","value":"record"},"id":4029,"name":"Identifier","src":"7643:6:4"}],"id":4030,"name":"MemberAccess","src":"7643:11:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3993,"type":"uint256","value":"contentType"},"id":4031,"name":"Identifier","src":"7655:11:4"}],"id":4032,"name":"IndexAccess","src":"7643:24:4"}],"id":4033,"name":"Assignment","src":"7636:31:4"}],"id":4034,"name":"ExpressionStatement","src":"7636:31:4"},{"attributes":{"expression":null,"functionReturnParameters":3996},"id":4035,"name":"Return","src":"7685:7:4"}],"id":4036,"name":"Block","src":"7618:88:4"}],"id":4037,"name":"IfStatement","src":"7540:166:4"}],"id":4038,"name":"Block","src":"7526:190:4"}],"id":4039,"name":"ForStatement","src":"7456:260:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3993,"type":"uint256","value":"contentType"},"id":4040,"name":"Identifier","src":"7725:11:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4041,"name":"Literal","src":"7739:1:4"}],"id":4042,"name":"Assignment","src":"7725:15:4"}],"id":4043,"name":"ExpressionStatement","src":"7725:15:4"}],"id":4044,"name":"Block","src":"7399:348:4"}],"id":4045,"name":"FunctionDefinition","src":"7296:451:4"},{"attributes":{"constant":true,"documentation":"Returns the name associated with an ENS node, for reverse records.\nDefined in EIP181.\n@param node The ENS node to query.\n@return The associated name.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"name","payable":false,"scope":4138,"stateMutability":"view","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":4058,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":4046,"name":"ElementaryTypeName","src":"7961:7:4"}],"id":4047,"name":"VariableDeclaration","src":"7961:12:4"}],"id":4048,"name":"ParameterList","src":"7960:14:4"},{"children":[{"attributes":{"constant":false,"name":"","scope":4058,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":4049,"name":"ElementaryTypeName","src":"7996:6:4"}],"id":4050,"name":"VariableDeclaration","src":"7996:6:4"}],"id":4051,"name":"ParameterList","src":"7995:8:4"},{"children":[{"attributes":{"functionReturnParameters":4051},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"name","referencedDeclaration":3714,"type":"string storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3733,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":4052,"name":"Identifier","src":"8021:7:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4047,"type":"bytes32","value":"node"},"id":4053,"name":"Identifier","src":"8029:4:4"}],"id":4054,"name":"IndexAccess","src":"8021:13:4"}],"id":4055,"name":"MemberAccess","src":"8021:18:4"}],"id":4056,"name":"Return","src":"8014:25:4"}],"id":4057,"name":"Block","src":"8004:42:4"}],"id":4058,"name":"FunctionDefinition","src":"7947:99:4"},{"attributes":{"constant":true,"documentation":"Returns the content hash associated with an ENS node.\nNote that this resource type is not standardized, and will likely change\nin future to a resource type based on multihash.\n@param node The ENS node to query.\n@return The associated content hash.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"content","payable":false,"scope":4138,"stateMutability":"view","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":4071,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":4059,"name":"ElementaryTypeName","src":"8368:7:4"}],"id":4060,"name":"VariableDeclaration","src":"8368:12:4"}],"id":4061,"name":"ParameterList","src":"8367:14:4"},{"children":[{"attributes":{"constant":false,"name":"","scope":4071,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":4062,"name":"ElementaryTypeName","src":"8403:7:4"}],"id":4063,"name":"VariableDeclaration","src":"8403:7:4"}],"id":4064,"name":"ParameterList","src":"8402:9:4"},{"children":[{"attributes":{"functionReturnParameters":4064},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"content","referencedDeclaration":3712,"type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3733,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":4065,"name":"Identifier","src":"8429:7:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4060,"type":"bytes32","value":"node"},"id":4066,"name":"Identifier","src":"8437:4:4"}],"id":4067,"name":"IndexAccess","src":"8429:13:4"}],"id":4068,"name":"MemberAccess","src":"8429:21:4"}],"id":4069,"name":"Return","src":"8422:28:4"}],"id":4070,"name":"Block","src":"8412:45:4"}],"id":4071,"name":"FunctionDefinition","src":"8351:106:4"},{"attributes":{"constant":true,"documentation":"Returns the multihash associated with an ENS node.\n@param node The ENS node to query.\n@return The associated multihash.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"multihash","payable":false,"scope":4138,"stateMutability":"view","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":4084,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":4072,"name":"ElementaryTypeName","src":"8639:7:4"}],"id":4073,"name":"VariableDeclaration","src":"8639:12:4"}],"id":4074,"name":"ParameterList","src":"8638:14:4"},{"children":[{"attributes":{"constant":false,"name":"","scope":4084,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4075,"name":"ElementaryTypeName","src":"8674:5:4"}],"id":4076,"name":"VariableDeclaration","src":"8674:5:4"}],"id":4077,"name":"ParameterList","src":"8673:7:4"},{"children":[{"attributes":{"functionReturnParameters":4077},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"multihash","referencedDeclaration":3726,"type":"bytes storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3733,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":4078,"name":"Identifier","src":"8698:7:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4073,"type":"bytes32","value":"node"},"id":4079,"name":"Identifier","src":"8706:4:4"}],"id":4080,"name":"IndexAccess","src":"8698:13:4"}],"id":4081,"name":"MemberAccess","src":"8698:23:4"}],"id":4082,"name":"Return","src":"8691:30:4"}],"id":4083,"name":"Block","src":"8681:47:4"}],"id":4084,"name":"FunctionDefinition","src":"8620:108:4"},{"attributes":{"constant":true,"documentation":"Returns the address associated with an ENS node.\n@param node The ENS node to query.\n@return The associated address.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"addr","payable":false,"scope":4138,"stateMutability":"view","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":4097,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":4085,"name":"ElementaryTypeName","src":"8901:7:4"}],"id":4086,"name":"VariableDeclaration","src":"8901:12:4"}],"id":4087,"name":"ParameterList","src":"8900:14:4"},{"children":[{"attributes":{"constant":false,"name":"","scope":4097,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":4088,"name":"ElementaryTypeName","src":"8936:7:4"}],"id":4089,"name":"VariableDeclaration","src":"8936:7:4"}],"id":4090,"name":"ParameterList","src":"8935:9:4"},{"children":[{"attributes":{"functionReturnParameters":4090},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"addr","referencedDeclaration":3710,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3733,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":4091,"name":"Identifier","src":"8962:7:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4086,"type":"bytes32","value":"node"},"id":4092,"name":"Identifier","src":"8970:4:4"}],"id":4093,"name":"IndexAccess","src":"8962:13:4"}],"id":4094,"name":"MemberAccess","src":"8962:18:4"}],"id":4095,"name":"Return","src":"8955:25:4"}],"id":4096,"name":"Block","src":"8945:42:4"}],"id":4097,"name":"FunctionDefinition","src":"8887:100:4"},{"attributes":{"constant":true,"documentation":"Returns true if the resolver implements the interface specified by the provided hash.\n@param interfaceID The ID of the interface to check for.\n@return True if the contract implements the requested interface.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"supportsInterface","payable":false,"scope":4138,"stateMutability":"pure","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"interfaceID","scope":4137,"stateVariable":false,"storageLocation":"default","type":"bytes4","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes4","type":"bytes4"},"id":4098,"name":"ElementaryTypeName","src":"9265:6:4"}],"id":4099,"name":"VariableDeclaration","src":"9265:18:4"}],"id":4100,"name":"ParameterList","src":"9264:20:4"},{"children":[{"attributes":{"constant":false,"name":"","scope":4137,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":4101,"name":"ElementaryTypeName","src":"9306:4:4"}],"id":4102,"name":"VariableDeclaration","src":"9306:4:4"}],"id":4103,"name":"ParameterList","src":"9305:6:4"},{"children":[{"attributes":{"functionReturnParameters":4103},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"||","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"||","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"||","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"||","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"||","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"||","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"||","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4099,"type":"bytes4","value":"interfaceID"},"id":4104,"name":"Identifier","src":"9329:11:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3639,"type":"bytes4","value":"ADDR_INTERFACE_ID"},"id":4105,"name":"Identifier","src":"9344:17:4"}],"id":4106,"name":"BinaryOperation","src":"9329:32:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4099,"type":"bytes4","value":"interfaceID"},"id":4107,"name":"Identifier","src":"9373:11:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3642,"type":"bytes4","value":"CONTENT_INTERFACE_ID"},"id":4108,"name":"Identifier","src":"9388:20:4"}],"id":4109,"name":"BinaryOperation","src":"9373:35:4"}],"id":4110,"name":"BinaryOperation","src":"9329:79:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4099,"type":"bytes4","value":"interfaceID"},"id":4111,"name":"Identifier","src":"9420:11:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3645,"type":"bytes4","value":"NAME_INTERFACE_ID"},"id":4112,"name":"Identifier","src":"9435:17:4"}],"id":4113,"name":"BinaryOperation","src":"9420:32:4"}],"id":4114,"name":"BinaryOperation","src":"9329:123:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4099,"type":"bytes4","value":"interfaceID"},"id":4115,"name":"Identifier","src":"9464:11:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3648,"type":"bytes4","value":"ABI_INTERFACE_ID"},"id":4116,"name":"Identifier","src":"9479:16:4"}],"id":4117,"name":"BinaryOperation","src":"9464:31:4"}],"id":4118,"name":"BinaryOperation","src":"9329:166:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4099,"type":"bytes4","value":"interfaceID"},"id":4119,"name":"Identifier","src":"9507:11:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3651,"type":"bytes4","value":"PUBKEY_INTERFACE_ID"},"id":4120,"name":"Identifier","src":"9522:19:4"}],"id":4121,"name":"BinaryOperation","src":"9507:34:4"}],"id":4122,"name":"BinaryOperation","src":"9329:212:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4099,"type":"bytes4","value":"interfaceID"},"id":4123,"name":"Identifier","src":"9553:11:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3654,"type":"bytes4","value":"TEXT_INTERFACE_ID"},"id":4124,"name":"Identifier","src":"9568:17:4"}],"id":4125,"name":"BinaryOperation","src":"9553:32:4"}],"id":4126,"name":"BinaryOperation","src":"9329:256:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4099,"type":"bytes4","value":"interfaceID"},"id":4127,"name":"Identifier","src":"9597:11:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3657,"type":"bytes4","value":"MULTIHASH_INTERFACE_ID"},"id":4128,"name":"Identifier","src":"9612:22:4"}],"id":4129,"name":"BinaryOperation","src":"9597:37:4"}],"id":4130,"name":"BinaryOperation","src":"9329:305:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4099,"type":"bytes4","value":"interfaceID"},"id":4131,"name":"Identifier","src":"9646:11:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3636,"type":"bytes4","value":"INTERFACE_META_ID"},"id":4132,"name":"Identifier","src":"9661:17:4"}],"id":4133,"name":"BinaryOperation","src":"9646:32:4"}],"id":4134,"name":"BinaryOperation","src":"9329:349:4"}],"id":4135,"name":"Return","src":"9322:356:4"}],"id":4136,"name":"Block","src":"9312:373:4"}],"id":4137,"name":"FunctionDefinition","src":"9238:447:4"}],"id":4138,"name":"ContractDefinition","src":"1553:8134:4"}],"id":4139,"name":"SourceUnit","src":"1406:8282:4"}},"externals/strings.sol":{"AST":{"attributes":{"absolutePath":"externals/strings.sol","exportedSymbols":{"strings":[6442]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".14"]},"id":4749,"name":"PragmaDirective","src":"2574:24:5"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"library","documentation":null,"fullyImplemented":true,"linearizedBaseContracts":[6442],"name":"strings","scope":6443},"children":[{"attributes":{"canonicalName":"strings.slice","name":"slice","scope":6442,"visibility":"public"},"children":[{"attributes":{"constant":false,"name":"_len","scope":4754,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4750,"name":"ElementaryTypeName","src":"2645:4:5"}],"id":4751,"name":"VariableDeclaration","src":"2645:9:5"},{"attributes":{"constant":false,"name":"_ptr","scope":4754,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4752,"name":"ElementaryTypeName","src":"2664:4:5"}],"id":4753,"name":"VariableDeclaration","src":"2664:9:5"}],"id":4754,"name":"StructDefinition","src":"2622:58:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"memcpy","payable":false,"scope":6442,"stateMutability":"pure","superFunction":null,"visibility":"private"},"children":[{"children":[{"attributes":{"constant":false,"name":"dest","scope":4794,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4755,"name":"ElementaryTypeName","src":"2702:4:5"}],"id":4756,"name":"VariableDeclaration","src":"2702:9:5"},{"attributes":{"constant":false,"name":"src","scope":4794,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4757,"name":"ElementaryTypeName","src":"2713:4:5"}],"id":4758,"name":"VariableDeclaration","src":"2713:8:5"},{"attributes":{"constant":false,"name":"len","scope":4794,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4759,"name":"ElementaryTypeName","src":"2723:4:5"}],"id":4760,"name":"VariableDeclaration","src":"2723:8:5"}],"id":4761,"name":"ParameterList","src":"2701:31:5"},{"attributes":{"parameters":[null]},"children":[],"id":4762,"name":"ParameterList","src":"2746:0:5"},{"children":[{"attributes":{"initializationExpression":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4760,"type":"uint256","value":"len"},"id":4763,"name":"Identifier","src":"2812:3:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":4764,"name":"Literal","src":"2819:2:5"}],"id":4765,"name":"BinaryOperation","src":"2812:9:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4760,"type":"uint256","value":"len"},"id":4766,"name":"Identifier","src":"2823:3:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":4767,"name":"Literal","src":"2830:2:5"}],"id":4768,"name":"Assignment","src":"2823:9:5"}],"id":4769,"name":"ExpressionStatement","src":"2823:9:5"},{"children":[{"attributes":{"externalReferences":[{"dest":{"declaration":4756,"isOffset":false,"isSlot":false,"src":"2882:4:5","valueSize":1}},{"src":{"declaration":4758,"isOffset":false,"isSlot":false,"src":"2894:3:5","valueSize":1}}],"operations":"{\n mstore(dest, mload(src))\n}"},"children":[],"id":4770,"name":"InlineAssembly","src":"2848:82:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4756,"type":"uint256","value":"dest"},"id":4771,"name":"Identifier","src":"2926:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":4772,"name":"Literal","src":"2934:2:5"}],"id":4773,"name":"Assignment","src":"2926:10:5"}],"id":4774,"name":"ExpressionStatement","src":"2926:10:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4758,"type":"uint256","value":"src"},"id":4775,"name":"Identifier","src":"2950:3:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":4776,"name":"Literal","src":"2957:2:5"}],"id":4777,"name":"Assignment","src":"2950:9:5"}],"id":4778,"name":"ExpressionStatement","src":"2950:9:5"}],"id":4779,"name":"Block","src":"2834:136:5"}],"id":4780,"name":"ForStatement","src":"2806:164:5"},{"attributes":{"assignments":[4782]},"children":[{"attributes":{"constant":false,"name":"mask","scope":4794,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4781,"name":"ElementaryTypeName","src":"3012:4:5"}],"id":4782,"name":"VariableDeclaration","src":"3012:9:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"**","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"323536","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 256","value":"256"},"id":4783,"name":"Literal","src":"3024:3:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":4784,"name":"Literal","src":"3032:2:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4760,"type":"uint256","value":"len"},"id":4785,"name":"Identifier","src":"3037:3:5"}],"id":4786,"name":"BinaryOperation","src":"3032:8:5"}],"id":4787,"name":"TupleExpression","src":"3031:10:5"}],"id":4788,"name":"BinaryOperation","src":"3024:17:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":4789,"name":"Literal","src":"3044:1:5"}],"id":4790,"name":"BinaryOperation","src":"3024:21:5"}],"id":4791,"name":"VariableDeclarationStatement","src":"3012:33:5"},{"attributes":{"externalReferences":[{"mask":{"declaration":4782,"isOffset":false,"isSlot":false,"src":"3113:4:5","valueSize":1}},{"src":{"declaration":4758,"isOffset":false,"isSlot":false,"src":"3103:3:5","valueSize":1}},{"dest":{"declaration":4756,"isOffset":false,"isSlot":false,"src":"3158:4:5","valueSize":1}},{"mask":{"declaration":4782,"isOffset":false,"isSlot":false,"src":"3165:4:5","valueSize":1}},{"dest":{"declaration":4756,"isOffset":false,"isSlot":false,"src":"3190:4:5","valueSize":1}}],"operations":"{\n let srcpart := and(mload(src), not(mask))\n let destpart := and(mload(dest), mask)\n mstore(dest, or(destpart, srcpart))\n}"},"children":[],"id":4792,"name":"InlineAssembly","src":"3055:179:5"}],"id":4793,"name":"Block","src":"2746:488:5"}],"id":4794,"name":"FunctionDefinition","src":"2686:548:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"toSlice","payable":false,"scope":6442,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":4814,"stateVariable":false,"storageLocation":"memory","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":4795,"name":"ElementaryTypeName","src":"3451:6:5"}],"id":4796,"name":"VariableDeclaration","src":"3451:18:5"}],"id":4797,"name":"ParameterList","src":"3450:20:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":4814,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4754,"type":"struct strings.slice"},"id":4798,"name":"UserDefinedTypeName","src":"3494:5:5"}],"id":4799,"name":"VariableDeclaration","src":"3494:5:5"}],"id":4800,"name":"ParameterList","src":"3493:14:5"},{"children":[{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"ptr","scope":4814,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4801,"name":"ElementaryTypeName","src":"3518:4:5"}],"id":4802,"name":"VariableDeclaration","src":"3518:8:5"}],"id":4803,"name":"VariableDeclarationStatement","src":"3518:8:5"},{"attributes":{"externalReferences":[{"ptr":{"declaration":4802,"isOffset":false,"isSlot":false,"src":"3559:3:5","valueSize":1}},{"self":{"declaration":4796,"isOffset":false,"isSlot":false,"src":"3570:4:5","valueSize":1}}],"operations":"{\n ptr := add(self, 0x20)\n}"},"children":[],"id":4804,"name":"InlineAssembly","src":"3536:70:5"},{"attributes":{"functionReturnParameters":4800},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":true,"lValueRequested":false,"names":[null],"type":"struct strings.slice memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":4754,"type":"type(struct strings.slice storage pointer)","value":"slice"},"id":4805,"name":"Identifier","src":"3607:5:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes storage pointer)","value":"bytes"},"id":4806,"name":"ElementaryTypeNameExpression","src":"3613:5:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4796,"type":"string memory","value":"self"},"id":4807,"name":"Identifier","src":"3619:4:5"}],"id":4808,"name":"FunctionCall","src":"3613:11:5"}],"id":4809,"name":"MemberAccess","src":"3613:18:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4802,"type":"uint256","value":"ptr"},"id":4810,"name":"Identifier","src":"3633:3:5"}],"id":4811,"name":"FunctionCall","src":"3607:30:5"}],"id":4812,"name":"Return","src":"3600:37:5"}],"id":4813,"name":"Block","src":"3508:136:5"}],"id":4814,"name":"FunctionDefinition","src":"3434:210:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"len","payable":false,"scope":6442,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":4930,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":4815,"name":"ElementaryTypeName","src":"3853:7:5"}],"id":4816,"name":"VariableDeclaration","src":"3853:12:5"}],"id":4817,"name":"ParameterList","src":"3852:14:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":4930,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4818,"name":"ElementaryTypeName","src":"3890:4:5"}],"id":4819,"name":"VariableDeclaration","src":"3890:4:5"}],"id":4820,"name":"ParameterList","src":"3889:6:5"},{"children":[{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"ret","scope":4930,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4821,"name":"ElementaryTypeName","src":"3906:4:5"}],"id":4822,"name":"VariableDeclaration","src":"3906:8:5"}],"id":4823,"name":"VariableDeclarationStatement","src":"3906:8:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4816,"type":"bytes32","value":"self"},"id":4824,"name":"Identifier","src":"3928:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4825,"name":"Literal","src":"3936:1:5"}],"id":4826,"name":"BinaryOperation","src":"3928:9:5"},{"attributes":{"functionReturnParameters":4820},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4827,"name":"Literal","src":"3958:1:5"}],"id":4828,"name":"Return","src":"3951:8:5"}],"id":4829,"name":"IfStatement","src":"3924:35:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4816,"type":"bytes32","value":"self"},"id":4830,"name":"Identifier","src":"3973:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30786666666666666666666666666666666666666666666666666666666666666666","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3402...(31 digits omitted)...1455","value":"0xffffffffffffffffffffffffffffffff"},"id":4831,"name":"Literal","src":"3980:34:5"}],"id":4832,"name":"BinaryOperation","src":"3973:41:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4833,"name":"Literal","src":"4018:1:5"}],"id":4834,"name":"BinaryOperation","src":"3973:46:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4822,"type":"uint256","value":"ret"},"id":4835,"name":"Identifier","src":"4035:3:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3136","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 16","value":"16"},"id":4836,"name":"Literal","src":"4042:2:5"}],"id":4837,"name":"Assignment","src":"4035:9:5"}],"id":4838,"name":"ExpressionStatement","src":"4035:9:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4816,"type":"bytes32","value":"self"},"id":4839,"name":"Identifier","src":"4058:4:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes32)","value":"bytes32"},"id":4840,"name":"ElementaryTypeNameExpression","src":"4065:7:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"/","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint"},"id":4841,"name":"ElementaryTypeNameExpression","src":"4073:4:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4816,"type":"bytes32","value":"self"},"id":4842,"name":"Identifier","src":"4078:4:5"}],"id":4843,"name":"FunctionCall","src":"4073:10:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3078313030303030303030303030303030303030303030303030303030303030303030","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3402...(31 digits omitted)...1456","value":"0x100000000000000000000000000000000"},"id":4844,"name":"Literal","src":"4086:35:5"}],"id":4845,"name":"BinaryOperation","src":"4073:48:5"}],"id":4846,"name":"FunctionCall","src":"4065:57:5"}],"id":4847,"name":"Assignment","src":"4058:64:5"}],"id":4848,"name":"ExpressionStatement","src":"4058:64:5"}],"id":4849,"name":"Block","src":"4021:112:5"}],"id":4850,"name":"IfStatement","src":"3969:164:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4816,"type":"bytes32","value":"self"},"id":4851,"name":"Identifier","src":"4146:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"307866666666666666666666666666666666","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 18446744073709551615","value":"0xffffffffffffffff"},"id":4852,"name":"Literal","src":"4153:18:5"}],"id":4853,"name":"BinaryOperation","src":"4146:25:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4854,"name":"Literal","src":"4175:1:5"}],"id":4855,"name":"BinaryOperation","src":"4146:30:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4822,"type":"uint256","value":"ret"},"id":4856,"name":"Identifier","src":"4192:3:5"},{"attributes":{"argumentTypes":null,"hexvalue":"38","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 8","value":"8"},"id":4857,"name":"Literal","src":"4199:1:5"}],"id":4858,"name":"Assignment","src":"4192:8:5"}],"id":4859,"name":"ExpressionStatement","src":"4192:8:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4816,"type":"bytes32","value":"self"},"id":4860,"name":"Identifier","src":"4214:4:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes32)","value":"bytes32"},"id":4861,"name":"ElementaryTypeNameExpression","src":"4221:7:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"/","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint"},"id":4862,"name":"ElementaryTypeNameExpression","src":"4229:4:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4816,"type":"bytes32","value":"self"},"id":4863,"name":"Identifier","src":"4234:4:5"}],"id":4864,"name":"FunctionCall","src":"4229:10:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30783130303030303030303030303030303030","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 18446744073709551616","value":"0x10000000000000000"},"id":4865,"name":"Literal","src":"4242:19:5"}],"id":4866,"name":"BinaryOperation","src":"4229:32:5"}],"id":4867,"name":"FunctionCall","src":"4221:41:5"}],"id":4868,"name":"Assignment","src":"4214:48:5"}],"id":4869,"name":"ExpressionStatement","src":"4214:48:5"}],"id":4870,"name":"Block","src":"4178:95:5"}],"id":4871,"name":"IfStatement","src":"4142:131:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4816,"type":"bytes32","value":"self"},"id":4872,"name":"Identifier","src":"4286:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30786666666666666666","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4294967295","value":"0xffffffff"},"id":4873,"name":"Literal","src":"4293:10:5"}],"id":4874,"name":"BinaryOperation","src":"4286:17:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4875,"name":"Literal","src":"4307:1:5"}],"id":4876,"name":"BinaryOperation","src":"4286:22:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4822,"type":"uint256","value":"ret"},"id":4877,"name":"Identifier","src":"4324:3:5"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":4878,"name":"Literal","src":"4331:1:5"}],"id":4879,"name":"Assignment","src":"4324:8:5"}],"id":4880,"name":"ExpressionStatement","src":"4324:8:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4816,"type":"bytes32","value":"self"},"id":4881,"name":"Identifier","src":"4346:4:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes32)","value":"bytes32"},"id":4882,"name":"ElementaryTypeNameExpression","src":"4353:7:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"/","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint"},"id":4883,"name":"ElementaryTypeNameExpression","src":"4361:4:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4816,"type":"bytes32","value":"self"},"id":4884,"name":"Identifier","src":"4366:4:5"}],"id":4885,"name":"FunctionCall","src":"4361:10:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3078313030303030303030","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4294967296","value":"0x100000000"},"id":4886,"name":"Literal","src":"4374:11:5"}],"id":4887,"name":"BinaryOperation","src":"4361:24:5"}],"id":4888,"name":"FunctionCall","src":"4353:33:5"}],"id":4889,"name":"Assignment","src":"4346:40:5"}],"id":4890,"name":"ExpressionStatement","src":"4346:40:5"}],"id":4891,"name":"Block","src":"4310:87:5"}],"id":4892,"name":"IfStatement","src":"4282:115:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4816,"type":"bytes32","value":"self"},"id":4893,"name":"Identifier","src":"4410:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"307866666666","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 65535","value":"0xffff"},"id":4894,"name":"Literal","src":"4417:6:5"}],"id":4895,"name":"BinaryOperation","src":"4410:13:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4896,"name":"Literal","src":"4427:1:5"}],"id":4897,"name":"BinaryOperation","src":"4410:18:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4822,"type":"uint256","value":"ret"},"id":4898,"name":"Identifier","src":"4444:3:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":4899,"name":"Literal","src":"4451:1:5"}],"id":4900,"name":"Assignment","src":"4444:8:5"}],"id":4901,"name":"ExpressionStatement","src":"4444:8:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4816,"type":"bytes32","value":"self"},"id":4902,"name":"Identifier","src":"4466:4:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes32)","value":"bytes32"},"id":4903,"name":"ElementaryTypeNameExpression","src":"4473:7:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"/","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint"},"id":4904,"name":"ElementaryTypeNameExpression","src":"4481:4:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4816,"type":"bytes32","value":"self"},"id":4905,"name":"Identifier","src":"4486:4:5"}],"id":4906,"name":"FunctionCall","src":"4481:10:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30783130303030","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 65536","value":"0x10000"},"id":4907,"name":"Literal","src":"4494:7:5"}],"id":4908,"name":"BinaryOperation","src":"4481:20:5"}],"id":4909,"name":"FunctionCall","src":"4473:29:5"}],"id":4910,"name":"Assignment","src":"4466:36:5"}],"id":4911,"name":"ExpressionStatement","src":"4466:36:5"}],"id":4912,"name":"Block","src":"4430:83:5"}],"id":4913,"name":"IfStatement","src":"4406:107:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4816,"type":"bytes32","value":"self"},"id":4914,"name":"Identifier","src":"4526:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30786666","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 255","value":"0xff"},"id":4915,"name":"Literal","src":"4533:4:5"}],"id":4916,"name":"BinaryOperation","src":"4526:11:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4917,"name":"Literal","src":"4541:1:5"}],"id":4918,"name":"BinaryOperation","src":"4526:16:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4822,"type":"uint256","value":"ret"},"id":4919,"name":"Identifier","src":"4558:3:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":4920,"name":"Literal","src":"4565:1:5"}],"id":4921,"name":"Assignment","src":"4558:8:5"}],"id":4922,"name":"ExpressionStatement","src":"4558:8:5"}],"id":4923,"name":"Block","src":"4544:33:5"}],"id":4924,"name":"IfStatement","src":"4522:55:5"},{"attributes":{"functionReturnParameters":4820},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":4925,"name":"Literal","src":"4593:2:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4822,"type":"uint256","value":"ret"},"id":4926,"name":"Identifier","src":"4598:3:5"}],"id":4927,"name":"BinaryOperation","src":"4593:8:5"}],"id":4928,"name":"Return","src":"4586:15:5"}],"id":4929,"name":"Block","src":"3896:712:5"}],"id":4930,"name":"FunctionDefinition","src":"3840:768:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"toSliceB32","payable":false,"scope":6442,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":4947,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":4931,"name":"ElementaryTypeName","src":"4934:7:5"}],"id":4932,"name":"VariableDeclaration","src":"4934:12:5"}],"id":4933,"name":"ParameterList","src":"4933:14:5"},{"children":[{"attributes":{"constant":false,"name":"ret","scope":4947,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4754,"type":"struct strings.slice"},"id":4934,"name":"UserDefinedTypeName","src":"4971:5:5"}],"id":4935,"name":"VariableDeclaration","src":"4971:16:5"}],"id":4936,"name":"ParameterList","src":"4970:18:5"},{"children":[{"attributes":{"externalReferences":[{"ret":{"declaration":4935,"isOffset":false,"isSlot":false,"src":"5222:3:5","valueSize":1}},{"self":{"declaration":4932,"isOffset":false,"isSlot":false,"src":"5193:4:5","valueSize":1}}],"operations":"{\n let ptr := mload(0x40)\n mstore(0x40, add(ptr, 0x20))\n mstore(ptr, self)\n mstore(add(ret, 0x20), ptr)\n}"},"children":[],"id":4937,"name":"InlineAssembly","src":"5082:178:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":4751,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4935,"type":"struct strings.slice memory","value":"ret"},"id":4938,"name":"Identifier","src":"5257:3:5"}],"id":4940,"name":"MemberAccess","src":"5257:8:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[4930,5080],"referencedDeclaration":4930,"type":"function (bytes32) pure returns (uint256)","value":"len"},"id":4941,"name":"Identifier","src":"5268:3:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4932,"type":"bytes32","value":"self"},"id":4942,"name":"Identifier","src":"5272:4:5"}],"id":4943,"name":"FunctionCall","src":"5268:9:5"}],"id":4944,"name":"Assignment","src":"5257:20:5"}],"id":4945,"name":"ExpressionStatement","src":"5257:20:5"}],"id":4946,"name":"Block","src":"4989:295:5"}],"id":4947,"name":"FunctionDefinition","src":"4914:370:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"copy","payable":false,"scope":6442,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":4962,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4754,"type":"struct strings.slice"},"id":4948,"name":"UserDefinedTypeName","src":"5499:5:5"}],"id":4949,"name":"VariableDeclaration","src":"5499:17:5"}],"id":4950,"name":"ParameterList","src":"5498:19:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":4962,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4754,"type":"struct strings.slice"},"id":4951,"name":"UserDefinedTypeName","src":"5541:5:5"}],"id":4952,"name":"VariableDeclaration","src":"5541:5:5"}],"id":4953,"name":"ParameterList","src":"5540:14:5"},{"children":[{"attributes":{"functionReturnParameters":4953},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":true,"lValueRequested":false,"names":[null],"type":"struct strings.slice memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":4754,"type":"type(struct strings.slice storage pointer)","value":"slice"},"id":4954,"name":"Identifier","src":"5572:5:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4751,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4949,"type":"struct strings.slice memory","value":"self"},"id":4955,"name":"Identifier","src":"5578:4:5"}],"id":4956,"name":"MemberAccess","src":"5578:9:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":4753,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4949,"type":"struct strings.slice memory","value":"self"},"id":4957,"name":"Identifier","src":"5589:4:5"}],"id":4958,"name":"MemberAccess","src":"5589:9:5"}],"id":4959,"name":"FunctionCall","src":"5572:27:5"}],"id":4960,"name":"Return","src":"5565:34:5"}],"id":4961,"name":"Block","src":"5555:51:5"}],"id":4962,"name":"FunctionDefinition","src":"5485:121:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"toString","payable":false,"scope":6442,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":4992,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4754,"type":"struct strings.slice"},"id":4963,"name":"UserDefinedTypeName","src":"5796:5:5"}],"id":4964,"name":"VariableDeclaration","src":"5796:17:5"}],"id":4965,"name":"ParameterList","src":"5795:19:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":4992,"stateVariable":false,"storageLocation":"memory","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":4966,"name":"ElementaryTypeName","src":"5838:6:5"}],"id":4967,"name":"VariableDeclaration","src":"5838:6:5"}],"id":4968,"name":"ParameterList","src":"5837:15:5"},{"children":[{"attributes":{"assignments":[4970]},"children":[{"attributes":{"constant":false,"name":"ret","scope":4992,"stateVariable":false,"storageLocation":"memory","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":4969,"name":"ElementaryTypeName","src":"5863:6:5"}],"id":4970,"name":"VariableDeclaration","src":"5863:17:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (string memory)"},"children":[{"attributes":{"name":"string","type":"string"},"id":4971,"name":"ElementaryTypeName","src":"5887:6:5"}],"id":4972,"name":"NewExpression","src":"5883:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4751,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4964,"type":"struct strings.slice memory","value":"self"},"id":4973,"name":"Identifier","src":"5894:4:5"}],"id":4974,"name":"MemberAccess","src":"5894:9:5"}],"id":4975,"name":"FunctionCall","src":"5883:21:5"}],"id":4976,"name":"VariableDeclarationStatement","src":"5863:41:5"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"retptr","scope":4992,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4977,"name":"ElementaryTypeName","src":"5914:4:5"}],"id":4978,"name":"VariableDeclaration","src":"5914:11:5"}],"id":4979,"name":"VariableDeclarationStatement","src":"5914:11:5"},{"attributes":{"externalReferences":[{"retptr":{"declaration":4978,"isOffset":false,"isSlot":false,"src":"5946:6:5","valueSize":1}},{"ret":{"declaration":4970,"isOffset":false,"isSlot":false,"src":"5960:3:5","valueSize":1}}],"operations":"{\n retptr := add(ret, 32)\n}"},"children":[],"id":4980,"name":"InlineAssembly","src":"5935:51:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":4794,"type":"function (uint256,uint256,uint256) pure","value":"memcpy"},"id":4981,"name":"Identifier","src":"5980:6:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4978,"type":"uint256","value":"retptr"},"id":4982,"name":"Identifier","src":"5987:6:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":4753,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4964,"type":"struct strings.slice memory","value":"self"},"id":4983,"name":"Identifier","src":"5995:4:5"}],"id":4984,"name":"MemberAccess","src":"5995:9:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4751,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4964,"type":"struct strings.slice memory","value":"self"},"id":4985,"name":"Identifier","src":"6006:4:5"}],"id":4986,"name":"MemberAccess","src":"6006:9:5"}],"id":4987,"name":"FunctionCall","src":"5980:36:5"}],"id":4988,"name":"ExpressionStatement","src":"5980:36:5"},{"attributes":{"functionReturnParameters":4968},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4970,"type":"string memory","value":"ret"},"id":4989,"name":"Identifier","src":"6033:3:5"}],"id":4990,"name":"Return","src":"6026:10:5"}],"id":4991,"name":"Block","src":"5853:190:5"}],"id":4992,"name":"FunctionDefinition","src":"5778:265:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"len","payable":false,"scope":6442,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":5080,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4754,"type":"struct strings.slice"},"id":4993,"name":"UserDefinedTypeName","src":"6447:5:5"}],"id":4994,"name":"VariableDeclaration","src":"6447:17:5"}],"id":4995,"name":"ParameterList","src":"6446:19:5"},{"children":[{"attributes":{"constant":false,"name":"l","scope":5080,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4996,"name":"ElementaryTypeName","src":"6489:4:5"}],"id":4997,"name":"VariableDeclaration","src":"6489:6:5"}],"id":4998,"name":"ParameterList","src":"6488:8:5"},{"children":[{"attributes":{"assignments":[5000]},"children":[{"attributes":{"constant":false,"name":"ptr","scope":5080,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4999,"name":"ElementaryTypeName","src":"6582:4:5"}],"id":5000,"name":"VariableDeclaration","src":"6582:8:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":4753,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4994,"type":"struct strings.slice memory","value":"self"},"id":5001,"name":"Identifier","src":"6593:4:5"}],"id":5002,"name":"MemberAccess","src":"6593:9:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3331","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 31","value":"31"},"id":5003,"name":"Literal","src":"6605:2:5"}],"id":5004,"name":"BinaryOperation","src":"6593:14:5"}],"id":5005,"name":"VariableDeclarationStatement","src":"6582:25:5"},{"attributes":{"assignments":[5007]},"children":[{"attributes":{"constant":false,"name":"end","scope":5080,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5006,"name":"ElementaryTypeName","src":"6617:4:5"}],"id":5007,"name":"VariableDeclaration","src":"6617:8:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5000,"type":"uint256","value":"ptr"},"id":5008,"name":"Identifier","src":"6628:3:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4751,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4994,"type":"struct strings.slice memory","value":"self"},"id":5009,"name":"Identifier","src":"6634:4:5"}],"id":5010,"name":"MemberAccess","src":"6634:9:5"}],"id":5011,"name":"BinaryOperation","src":"6628:15:5"}],"id":5012,"name":"VariableDeclarationStatement","src":"6617:26:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4997,"type":"uint256","value":"l"},"id":5013,"name":"Identifier","src":"6658:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":5014,"name":"Literal","src":"6662:1:5"}],"id":5015,"name":"Assignment","src":"6658:5:5"}],"id":5016,"name":"ExpressionStatement","src":"6658:5:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5000,"type":"uint256","value":"ptr"},"id":5017,"name":"Identifier","src":"6665:3:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5007,"type":"uint256","value":"end"},"id":5018,"name":"Identifier","src":"6671:3:5"}],"id":5019,"name":"BinaryOperation","src":"6665:9:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4997,"type":"uint256","value":"l"},"id":5020,"name":"Identifier","src":"6676:1:5"}],"id":5021,"name":"UnaryOperation","src":"6676:3:5"}],"id":5022,"name":"ExpressionStatement","src":"6676:3:5"},{"children":[{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"b","scope":5080,"stateVariable":false,"storageLocation":"default","type":"uint8","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint8","type":"uint8"},"id":5023,"name":"ElementaryTypeName","src":"6695:5:5"}],"id":5024,"name":"VariableDeclaration","src":"6695:7:5"}],"id":5025,"name":"VariableDeclarationStatement","src":"6695:7:5"},{"attributes":{"externalReferences":[{"ptr":{"declaration":5000,"isOffset":false,"isSlot":false,"src":"6742:3:5","valueSize":1}},{"b":{"declaration":5024,"isOffset":false,"isSlot":false,"src":"6727:1:5","valueSize":1}}],"operations":"{\n b := and(mload(ptr), 0xFF)\n}"},"children":[],"id":5026,"name":"InlineAssembly","src":"6716:54:5"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5024,"type":"uint8","value":"b"},"id":5027,"name":"Identifier","src":"6772:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30783830","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 128","value":"0x80"},"id":5028,"name":"Literal","src":"6776:4:5"}],"id":5029,"name":"BinaryOperation","src":"6772:8:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5000,"type":"uint256","value":"ptr"},"id":5030,"name":"Identifier","src":"6800:3:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":5031,"name":"Literal","src":"6807:1:5"}],"id":5032,"name":"Assignment","src":"6800:8:5"}],"id":5033,"name":"ExpressionStatement","src":"6800:8:5"}],"id":5034,"name":"Block","src":"6782:41:5"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5024,"type":"uint8","value":"b"},"id":5035,"name":"Identifier","src":"6832:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30784530","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 224","value":"0xE0"},"id":5036,"name":"Literal","src":"6836:4:5"}],"id":5037,"name":"BinaryOperation","src":"6832:8:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5000,"type":"uint256","value":"ptr"},"id":5038,"name":"Identifier","src":"6860:3:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":5039,"name":"Literal","src":"6867:1:5"}],"id":5040,"name":"Assignment","src":"6860:8:5"}],"id":5041,"name":"ExpressionStatement","src":"6860:8:5"}],"id":5042,"name":"Block","src":"6842:41:5"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5024,"type":"uint8","value":"b"},"id":5043,"name":"Identifier","src":"6892:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30784630","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 240","value":"0xF0"},"id":5044,"name":"Literal","src":"6896:4:5"}],"id":5045,"name":"BinaryOperation","src":"6892:8:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5000,"type":"uint256","value":"ptr"},"id":5046,"name":"Identifier","src":"6920:3:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":5047,"name":"Literal","src":"6927:1:5"}],"id":5048,"name":"Assignment","src":"6920:8:5"}],"id":5049,"name":"ExpressionStatement","src":"6920:8:5"}],"id":5050,"name":"Block","src":"6902:41:5"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5024,"type":"uint8","value":"b"},"id":5051,"name":"Identifier","src":"6952:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30784638","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 248","value":"0xF8"},"id":5052,"name":"Literal","src":"6956:4:5"}],"id":5053,"name":"BinaryOperation","src":"6952:8:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5000,"type":"uint256","value":"ptr"},"id":5054,"name":"Identifier","src":"6980:3:5"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":5055,"name":"Literal","src":"6987:1:5"}],"id":5056,"name":"Assignment","src":"6980:8:5"}],"id":5057,"name":"ExpressionStatement","src":"6980:8:5"}],"id":5058,"name":"Block","src":"6962:41:5"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5024,"type":"uint8","value":"b"},"id":5059,"name":"Identifier","src":"7012:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30784643","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 252","value":"0xFC"},"id":5060,"name":"Literal","src":"7016:4:5"}],"id":5061,"name":"BinaryOperation","src":"7012:8:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5000,"type":"uint256","value":"ptr"},"id":5062,"name":"Identifier","src":"7040:3:5"},{"attributes":{"argumentTypes":null,"hexvalue":"35","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 5","value":"5"},"id":5063,"name":"Literal","src":"7047:1:5"}],"id":5064,"name":"Assignment","src":"7040:8:5"}],"id":5065,"name":"ExpressionStatement","src":"7040:8:5"}],"id":5066,"name":"Block","src":"7022:41:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5000,"type":"uint256","value":"ptr"},"id":5067,"name":"Identifier","src":"7087:3:5"},{"attributes":{"argumentTypes":null,"hexvalue":"36","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 6","value":"6"},"id":5068,"name":"Literal","src":"7094:1:5"}],"id":5069,"name":"Assignment","src":"7087:8:5"}],"id":5070,"name":"ExpressionStatement","src":"7087:8:5"}],"id":5071,"name":"Block","src":"7069:41:5"}],"id":5072,"name":"IfStatement","src":"7009:101:5"}],"id":5073,"name":"IfStatement","src":"6949:161:5"}],"id":5074,"name":"IfStatement","src":"6889:221:5"}],"id":5075,"name":"IfStatement","src":"6829:281:5"}],"id":5076,"name":"IfStatement","src":"6768:342:5"}],"id":5077,"name":"Block","src":"6681:439:5"}],"id":5078,"name":"ForStatement","src":"6653:467:5"}],"id":5079,"name":"Block","src":"6497:629:5"}],"id":5080,"name":"FunctionDefinition","src":"6434:692:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"empty","payable":false,"scope":6442,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":5093,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4754,"type":"struct strings.slice"},"id":5081,"name":"UserDefinedTypeName","src":"7334:5:5"}],"id":5082,"name":"VariableDeclaration","src":"7334:17:5"}],"id":5083,"name":"ParameterList","src":"7333:19:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":5093,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":5084,"name":"ElementaryTypeName","src":"7376:4:5"}],"id":5085,"name":"VariableDeclaration","src":"7376:4:5"}],"id":5086,"name":"ParameterList","src":"7375:6:5"},{"children":[{"attributes":{"functionReturnParameters":5086},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4751,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5082,"type":"struct strings.slice memory","value":"self"},"id":5087,"name":"Identifier","src":"7399:4:5"}],"id":5088,"name":"MemberAccess","src":"7399:9:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":5089,"name":"Literal","src":"7412:1:5"}],"id":5090,"name":"BinaryOperation","src":"7399:14:5"}],"id":5091,"name":"Return","src":"7392:21:5"}],"id":5092,"name":"Block","src":"7382:38:5"}],"id":5093,"name":"FunctionDefinition","src":"7319:101:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"compare","payable":false,"scope":6442,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":5222,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4754,"type":"struct strings.slice"},"id":5094,"name":"UserDefinedTypeName","src":"7865:5:5"}],"id":5095,"name":"VariableDeclaration","src":"7865:17:5"},{"attributes":{"constant":false,"name":"other","scope":5222,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4754,"type":"struct strings.slice"},"id":5096,"name":"UserDefinedTypeName","src":"7884:5:5"}],"id":5097,"name":"VariableDeclaration","src":"7884:18:5"}],"id":5098,"name":"ParameterList","src":"7864:39:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":5222,"stateVariable":false,"storageLocation":"default","type":"int256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"int","type":"int256"},"id":5099,"name":"ElementaryTypeName","src":"7927:3:5"}],"id":5100,"name":"VariableDeclaration","src":"7927:3:5"}],"id":5101,"name":"ParameterList","src":"7926:5:5"},{"children":[{"attributes":{"assignments":[5103]},"children":[{"attributes":{"constant":false,"name":"shortest","scope":5222,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5102,"name":"ElementaryTypeName","src":"7942:4:5"}],"id":5103,"name":"VariableDeclaration","src":"7942:13:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4751,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5095,"type":"struct strings.slice memory","value":"self"},"id":5104,"name":"Identifier","src":"7958:4:5"}],"id":5105,"name":"MemberAccess","src":"7958:9:5"}],"id":5106,"name":"VariableDeclarationStatement","src":"7942:25:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4751,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5097,"type":"struct strings.slice memory","value":"other"},"id":5107,"name":"Identifier","src":"7981:5:5"}],"id":5108,"name":"MemberAccess","src":"7981:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4751,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5095,"type":"struct strings.slice memory","value":"self"},"id":5109,"name":"Identifier","src":"7994:4:5"}],"id":5110,"name":"MemberAccess","src":"7994:9:5"}],"id":5111,"name":"BinaryOperation","src":"7981:22:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5103,"type":"uint256","value":"shortest"},"id":5112,"name":"Identifier","src":"8017:8:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4751,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5097,"type":"struct strings.slice memory","value":"other"},"id":5113,"name":"Identifier","src":"8028:5:5"}],"id":5114,"name":"MemberAccess","src":"8028:10:5"}],"id":5115,"name":"Assignment","src":"8017:21:5"}],"id":5116,"name":"ExpressionStatement","src":"8017:21:5"}],"id":5117,"name":"IfStatement","src":"7977:61:5"},{"attributes":{"assignments":[5119]},"children":[{"attributes":{"constant":false,"name":"selfptr","scope":5222,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5118,"name":"ElementaryTypeName","src":"8049:4:5"}],"id":5119,"name":"VariableDeclaration","src":"8049:12:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":4753,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5095,"type":"struct strings.slice memory","value":"self"},"id":5120,"name":"Identifier","src":"8064:4:5"}],"id":5121,"name":"MemberAccess","src":"8064:9:5"}],"id":5122,"name":"VariableDeclarationStatement","src":"8049:24:5"},{"attributes":{"assignments":[5124]},"children":[{"attributes":{"constant":false,"name":"otherptr","scope":5222,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5123,"name":"ElementaryTypeName","src":"8083:4:5"}],"id":5124,"name":"VariableDeclaration","src":"8083:13:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":4753,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5097,"type":"struct strings.slice memory","value":"other"},"id":5125,"name":"Identifier","src":"8099:5:5"}],"id":5126,"name":"MemberAccess","src":"8099:10:5"}],"id":5127,"name":"VariableDeclarationStatement","src":"8083:26:5"},{"children":[{"attributes":{"assignments":[5129]},"children":[{"attributes":{"constant":false,"name":"idx","scope":5222,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5128,"name":"ElementaryTypeName","src":"8124:4:5"}],"id":5129,"name":"VariableDeclaration","src":"8124:8:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":5130,"name":"Literal","src":"8135:1:5"}],"id":5131,"name":"VariableDeclarationStatement","src":"8124:12:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5129,"type":"uint256","value":"idx"},"id":5132,"name":"Identifier","src":"8138:3:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5103,"type":"uint256","value":"shortest"},"id":5133,"name":"Identifier","src":"8144:8:5"}],"id":5134,"name":"BinaryOperation","src":"8138:14:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5129,"type":"uint256","value":"idx"},"id":5135,"name":"Identifier","src":"8154:3:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":5136,"name":"Literal","src":"8161:2:5"}],"id":5137,"name":"Assignment","src":"8154:9:5"}],"id":5138,"name":"ExpressionStatement","src":"8154:9:5"},{"children":[{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"a","scope":5222,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5139,"name":"ElementaryTypeName","src":"8179:4:5"}],"id":5140,"name":"VariableDeclaration","src":"8179:6:5"}],"id":5141,"name":"VariableDeclarationStatement","src":"8179:6:5"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"b","scope":5222,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5142,"name":"ElementaryTypeName","src":"8199:4:5"}],"id":5143,"name":"VariableDeclaration","src":"8199:6:5"}],"id":5144,"name":"VariableDeclarationStatement","src":"8199:6:5"},{"attributes":{"externalReferences":[{"selfptr":{"declaration":5119,"isOffset":false,"isSlot":false,"src":"8257:7:5","valueSize":1}},{"a":{"declaration":5140,"isOffset":false,"isSlot":false,"src":"8246:1:5","valueSize":1}},{"b":{"declaration":5143,"isOffset":false,"isSlot":false,"src":"8282:1:5","valueSize":1}},{"otherptr":{"declaration":5124,"isOffset":false,"isSlot":false,"src":"8293:8:5","valueSize":1}}],"operations":"{\n a := mload(selfptr)\n b := mload(otherptr)\n}"},"children":[],"id":5145,"name":"InlineAssembly","src":"8219:112:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5140,"type":"uint256","value":"a"},"id":5146,"name":"Identifier","src":"8333:1:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5143,"type":"uint256","value":"b"},"id":5147,"name":"Identifier","src":"8338:1:5"}],"id":5148,"name":"BinaryOperation","src":"8333:6:5"},{"children":[{"attributes":{"assignments":[5150]},"children":[{"attributes":{"constant":false,"name":"mask","scope":5222,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":5149,"name":"ElementaryTypeName","src":"8420:7:5"}],"id":5150,"name":"VariableDeclaration","src":"8420:12:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_-1_by_1","typeString":"int_const -1"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint256"},"id":5151,"name":"ElementaryTypeNameExpression","src":"8435:7:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"-","prefix":true,"type":"int_const -1"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":5152,"name":"Literal","src":"8444:1:5"}],"id":5153,"name":"UnaryOperation","src":"8443:2:5"}],"id":5154,"name":"FunctionCall","src":"8435:11:5"}],"id":5155,"name":"VariableDeclarationStatement","src":"8420:26:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5103,"type":"uint256","value":"shortest"},"id":5156,"name":"Identifier","src":"8480:8:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":5157,"name":"Literal","src":"8491:2:5"}],"id":5158,"name":"BinaryOperation","src":"8480:13:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5150,"type":"uint256","value":"mask"},"id":5159,"name":"Identifier","src":"8515:4:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"~","prefix":true,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"**","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":5160,"name":"Literal","src":"8524:1:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"38","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 8","value":"8"},"id":5161,"name":"Literal","src":"8530:1:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":5162,"name":"Literal","src":"8535:2:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5103,"type":"uint256","value":"shortest"},"id":5163,"name":"Identifier","src":"8540:8:5"}],"id":5164,"name":"BinaryOperation","src":"8535:13:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5129,"type":"uint256","value":"idx"},"id":5165,"name":"Identifier","src":"8551:3:5"}],"id":5166,"name":"BinaryOperation","src":"8535:19:5"}],"id":5167,"name":"TupleExpression","src":"8534:21:5"}],"id":5168,"name":"BinaryOperation","src":"8530:25:5"}],"id":5169,"name":"TupleExpression","src":"8529:27:5"}],"id":5170,"name":"BinaryOperation","src":"8524:32:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":5171,"name":"Literal","src":"8559:1:5"}],"id":5172,"name":"BinaryOperation","src":"8524:36:5"}],"id":5173,"name":"TupleExpression","src":"8523:38:5"}],"id":5174,"name":"UnaryOperation","src":"8522:39:5"}],"id":5175,"name":"Assignment","src":"8515:46:5"}],"id":5176,"name":"ExpressionStatement","src":"8515:46:5"}],"id":5177,"name":"Block","src":"8495:85:5"}],"id":5178,"name":"IfStatement","src":"8477:103:5"},{"attributes":{"assignments":[5180]},"children":[{"attributes":{"constant":false,"name":"diff","scope":5222,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":5179,"name":"ElementaryTypeName","src":"8597:7:5"}],"id":5180,"name":"VariableDeclaration","src":"8597:12:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5140,"type":"uint256","value":"a"},"id":5181,"name":"Identifier","src":"8613:1:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5150,"type":"uint256","value":"mask"},"id":5182,"name":"Identifier","src":"8617:4:5"}],"id":5183,"name":"BinaryOperation","src":"8613:8:5"}],"id":5184,"name":"TupleExpression","src":"8612:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5143,"type":"uint256","value":"b"},"id":5185,"name":"Identifier","src":"8626:1:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5150,"type":"uint256","value":"mask"},"id":5186,"name":"Identifier","src":"8630:4:5"}],"id":5187,"name":"BinaryOperation","src":"8626:8:5"}],"id":5188,"name":"TupleExpression","src":"8625:10:5"}],"id":5189,"name":"BinaryOperation","src":"8612:23:5"}],"id":5190,"name":"VariableDeclarationStatement","src":"8597:38:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5180,"type":"uint256","value":"diff"},"id":5191,"name":"Identifier","src":"8657:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":5192,"name":"Literal","src":"8665:1:5"}],"id":5193,"name":"BinaryOperation","src":"8657:9:5"},{"attributes":{"functionReturnParameters":5101},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"int256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(int256)","value":"int"},"id":5194,"name":"ElementaryTypeNameExpression","src":"8695:3:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5180,"type":"uint256","value":"diff"},"id":5195,"name":"Identifier","src":"8699:4:5"}],"id":5196,"name":"FunctionCall","src":"8695:9:5"}],"id":5197,"name":"Return","src":"8688:16:5"}],"id":5198,"name":"IfStatement","src":"8653:51:5"}],"id":5199,"name":"Block","src":"8341:378:5"}],"id":5200,"name":"IfStatement","src":"8329:390:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5119,"type":"uint256","value":"selfptr"},"id":5201,"name":"Identifier","src":"8732:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":5202,"name":"Literal","src":"8743:2:5"}],"id":5203,"name":"Assignment","src":"8732:13:5"}],"id":5204,"name":"ExpressionStatement","src":"8732:13:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5124,"type":"uint256","value":"otherptr"},"id":5205,"name":"Identifier","src":"8759:8:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":5206,"name":"Literal","src":"8771:2:5"}],"id":5207,"name":"Assignment","src":"8759:14:5"}],"id":5208,"name":"ExpressionStatement","src":"8759:14:5"}],"id":5209,"name":"Block","src":"8165:619:5"}],"id":5210,"name":"ForStatement","src":"8119:665:5"},{"attributes":{"functionReturnParameters":5101},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"int256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"int256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(int256)","value":"int"},"id":5211,"name":"ElementaryTypeNameExpression","src":"8800:3:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4751,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5095,"type":"struct strings.slice memory","value":"self"},"id":5212,"name":"Identifier","src":"8804:4:5"}],"id":5213,"name":"MemberAccess","src":"8804:9:5"}],"id":5214,"name":"FunctionCall","src":"8800:14:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"int256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(int256)","value":"int"},"id":5215,"name":"ElementaryTypeNameExpression","src":"8817:3:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4751,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5097,"type":"struct strings.slice memory","value":"other"},"id":5216,"name":"Identifier","src":"8821:5:5"}],"id":5217,"name":"MemberAccess","src":"8821:10:5"}],"id":5218,"name":"FunctionCall","src":"8817:15:5"}],"id":5219,"name":"BinaryOperation","src":"8800:32:5"}],"id":5220,"name":"Return","src":"8793:39:5"}],"id":5221,"name":"Block","src":"7932:907:5"}],"id":5222,"name":"FunctionDefinition","src":"7848:991:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"equals","payable":false,"scope":6442,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":5239,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4754,"type":"struct strings.slice"},"id":5223,"name":"UserDefinedTypeName","src":"9099:5:5"}],"id":5224,"name":"VariableDeclaration","src":"9099:17:5"},{"attributes":{"constant":false,"name":"other","scope":5239,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4754,"type":"struct strings.slice"},"id":5225,"name":"UserDefinedTypeName","src":"9118:5:5"}],"id":5226,"name":"VariableDeclaration","src":"9118:18:5"}],"id":5227,"name":"ParameterList","src":"9098:39:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":5239,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":5228,"name":"ElementaryTypeName","src":"9161:4:5"}],"id":5229,"name":"VariableDeclaration","src":"9161:4:5"}],"id":5230,"name":"ParameterList","src":"9160:6:5"},{"children":[{"attributes":{"functionReturnParameters":5230},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"int256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$4754_memory_ptr","typeString":"struct strings.slice memory"},{"typeIdentifier":"t_struct$_slice_$4754_memory_ptr","typeString":"struct strings.slice memory"}],"overloadedDeclarations":[null],"referencedDeclaration":5222,"type":"function (struct strings.slice memory,struct strings.slice memory) pure returns (int256)","value":"compare"},"id":5231,"name":"Identifier","src":"9184:7:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5224,"type":"struct strings.slice memory","value":"self"},"id":5232,"name":"Identifier","src":"9192:4:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5226,"type":"struct strings.slice memory","value":"other"},"id":5233,"name":"Identifier","src":"9198:5:5"}],"id":5234,"name":"FunctionCall","src":"9184:20:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":5235,"name":"Literal","src":"9208:1:5"}],"id":5236,"name":"BinaryOperation","src":"9184:25:5"}],"id":5237,"name":"Return","src":"9177:32:5"}],"id":5238,"name":"Block","src":"9167:49:5"}],"id":5239,"name":"FunctionDefinition","src":"9083:133:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"nextRune","payable":false,"scope":6442,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":5357,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4754,"type":"struct strings.slice"},"id":5240,"name":"UserDefinedTypeName","src":"9527:5:5"}],"id":5241,"name":"VariableDeclaration","src":"9527:17:5"},{"attributes":{"constant":false,"name":"rune","scope":5357,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4754,"type":"struct strings.slice"},"id":5242,"name":"UserDefinedTypeName","src":"9546:5:5"}],"id":5243,"name":"VariableDeclaration","src":"9546:17:5"}],"id":5244,"name":"ParameterList","src":"9526:38:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":5357,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4754,"type":"struct strings.slice"},"id":5245,"name":"UserDefinedTypeName","src":"9588:5:5"}],"id":5246,"name":"VariableDeclaration","src":"9588:5:5"}],"id":5247,"name":"ParameterList","src":"9587:14:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_ptr","referencedDeclaration":4753,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5243,"type":"struct strings.slice memory","value":"rune"},"id":5248,"name":"Identifier","src":"9612:4:5"}],"id":5250,"name":"MemberAccess","src":"9612:9:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":4753,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5241,"type":"struct strings.slice memory","value":"self"},"id":5251,"name":"Identifier","src":"9624:4:5"}],"id":5252,"name":"MemberAccess","src":"9624:9:5"}],"id":5253,"name":"Assignment","src":"9612:21:5"}],"id":5254,"name":"ExpressionStatement","src":"9612:21:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4751,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5241,"type":"struct strings.slice memory","value":"self"},"id":5255,"name":"Identifier","src":"9648:4:5"}],"id":5256,"name":"MemberAccess","src":"9648:9:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":5257,"name":"Literal","src":"9661:1:5"}],"id":5258,"name":"BinaryOperation","src":"9648:14:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":4751,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5243,"type":"struct strings.slice memory","value":"rune"},"id":5259,"name":"Identifier","src":"9678:4:5"}],"id":5261,"name":"MemberAccess","src":"9678:9:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":5262,"name":"Literal","src":"9690:1:5"}],"id":5263,"name":"Assignment","src":"9678:13:5"}],"id":5264,"name":"ExpressionStatement","src":"9678:13:5"},{"attributes":{"functionReturnParameters":5247},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5243,"type":"struct strings.slice memory","value":"rune"},"id":5265,"name":"Identifier","src":"9712:4:5"}],"id":5266,"name":"Return","src":"9705:11:5"}],"id":5267,"name":"Block","src":"9664:63:5"}],"id":5268,"name":"IfStatement","src":"9644:83:5"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"l","scope":5357,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5269,"name":"ElementaryTypeName","src":"9737:4:5"}],"id":5270,"name":"VariableDeclaration","src":"9737:6:5"}],"id":5271,"name":"VariableDeclarationStatement","src":"9737:6:5"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"b","scope":5357,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5272,"name":"ElementaryTypeName","src":"9753:4:5"}],"id":5273,"name":"VariableDeclaration","src":"9753:6:5"}],"id":5274,"name":"VariableDeclarationStatement","src":"9753:6:5"},{"attributes":{"externalReferences":[{"b":{"declaration":5273,"isOffset":false,"isSlot":false,"src":"9842:1:5","valueSize":1}},{"self":{"declaration":5241,"isOffset":false,"isSlot":false,"src":"9871:4:5","valueSize":1}}],"operations":"{\n b := and(mload(sub(mload(add(self, 32)), 31)), 0xFF)\n}"},"children":[],"id":5275,"name":"InlineAssembly","src":"9831:76:5"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5273,"type":"uint256","value":"b"},"id":5276,"name":"Identifier","src":"9909:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30783830","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 128","value":"0x80"},"id":5277,"name":"Literal","src":"9913:4:5"}],"id":5278,"name":"BinaryOperation","src":"9909:8:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5270,"type":"uint256","value":"l"},"id":5279,"name":"Identifier","src":"9933:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":5280,"name":"Literal","src":"9937:1:5"}],"id":5281,"name":"Assignment","src":"9933:5:5"}],"id":5282,"name":"ExpressionStatement","src":"9933:5:5"}],"id":5283,"name":"Block","src":"9919:30:5"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5273,"type":"uint256","value":"b"},"id":5284,"name":"Identifier","src":"9958:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30784530","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 224","value":"0xE0"},"id":5285,"name":"Literal","src":"9962:4:5"}],"id":5286,"name":"BinaryOperation","src":"9958:8:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5270,"type":"uint256","value":"l"},"id":5287,"name":"Identifier","src":"9982:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":5288,"name":"Literal","src":"9986:1:5"}],"id":5289,"name":"Assignment","src":"9982:5:5"}],"id":5290,"name":"ExpressionStatement","src":"9982:5:5"}],"id":5291,"name":"Block","src":"9968:30:5"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5273,"type":"uint256","value":"b"},"id":5292,"name":"Identifier","src":"10007:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30784630","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 240","value":"0xF0"},"id":5293,"name":"Literal","src":"10011:4:5"}],"id":5294,"name":"BinaryOperation","src":"10007:8:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5270,"type":"uint256","value":"l"},"id":5295,"name":"Identifier","src":"10031:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":5296,"name":"Literal","src":"10035:1:5"}],"id":5297,"name":"Assignment","src":"10031:5:5"}],"id":5298,"name":"ExpressionStatement","src":"10031:5:5"}],"id":5299,"name":"Block","src":"10017:30:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5270,"type":"uint256","value":"l"},"id":5300,"name":"Identifier","src":"10067:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":5301,"name":"Literal","src":"10071:1:5"}],"id":5302,"name":"Assignment","src":"10067:5:5"}],"id":5303,"name":"ExpressionStatement","src":"10067:5:5"}],"id":5304,"name":"Block","src":"10053:30:5"}],"id":5305,"name":"IfStatement","src":"10004:79:5"}],"id":5306,"name":"IfStatement","src":"9955:128:5"}],"id":5307,"name":"IfStatement","src":"9905:178:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5270,"type":"uint256","value":"l"},"id":5308,"name":"Identifier","src":"10139:1:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4751,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5241,"type":"struct strings.slice memory","value":"self"},"id":5309,"name":"Identifier","src":"10143:4:5"}],"id":5310,"name":"MemberAccess","src":"10143:9:5"}],"id":5311,"name":"BinaryOperation","src":"10139:13:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":4751,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5243,"type":"struct strings.slice memory","value":"rune"},"id":5312,"name":"Identifier","src":"10168:4:5"}],"id":5314,"name":"MemberAccess","src":"10168:9:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4751,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5241,"type":"struct strings.slice memory","value":"self"},"id":5315,"name":"Identifier","src":"10180:4:5"}],"id":5316,"name":"MemberAccess","src":"10180:9:5"}],"id":5317,"name":"Assignment","src":"10168:21:5"}],"id":5318,"name":"ExpressionStatement","src":"10168:21:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_ptr","referencedDeclaration":4753,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5241,"type":"struct strings.slice memory","value":"self"},"id":5319,"name":"Identifier","src":"10203:4:5"}],"id":5321,"name":"MemberAccess","src":"10203:9:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4751,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5241,"type":"struct strings.slice memory","value":"self"},"id":5322,"name":"Identifier","src":"10216:4:5"}],"id":5323,"name":"MemberAccess","src":"10216:9:5"}],"id":5324,"name":"Assignment","src":"10203:22:5"}],"id":5325,"name":"ExpressionStatement","src":"10203:22:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":4751,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5241,"type":"struct strings.slice memory","value":"self"},"id":5326,"name":"Identifier","src":"10239:4:5"}],"id":5328,"name":"MemberAccess","src":"10239:9:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":5329,"name":"Literal","src":"10251:1:5"}],"id":5330,"name":"Assignment","src":"10239:13:5"}],"id":5331,"name":"ExpressionStatement","src":"10239:13:5"},{"attributes":{"functionReturnParameters":5247},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5243,"type":"struct strings.slice memory","value":"rune"},"id":5332,"name":"Identifier","src":"10273:4:5"}],"id":5333,"name":"Return","src":"10266:11:5"}],"id":5334,"name":"Block","src":"10154:134:5"}],"id":5335,"name":"IfStatement","src":"10135:153:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_ptr","referencedDeclaration":4753,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5241,"type":"struct strings.slice memory","value":"self"},"id":5336,"name":"Identifier","src":"10298:4:5"}],"id":5338,"name":"MemberAccess","src":"10298:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5270,"type":"uint256","value":"l"},"id":5339,"name":"Identifier","src":"10311:1:5"}],"id":5340,"name":"Assignment","src":"10298:14:5"}],"id":5341,"name":"ExpressionStatement","src":"10298:14:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":4751,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5241,"type":"struct strings.slice memory","value":"self"},"id":5342,"name":"Identifier","src":"10322:4:5"}],"id":5344,"name":"MemberAccess","src":"10322:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5270,"type":"uint256","value":"l"},"id":5345,"name":"Identifier","src":"10335:1:5"}],"id":5346,"name":"Assignment","src":"10322:14:5"}],"id":5347,"name":"ExpressionStatement","src":"10322:14:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":4751,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5243,"type":"struct strings.slice memory","value":"rune"},"id":5348,"name":"Identifier","src":"10346:4:5"}],"id":5350,"name":"MemberAccess","src":"10346:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5270,"type":"uint256","value":"l"},"id":5351,"name":"Identifier","src":"10358:1:5"}],"id":5352,"name":"Assignment","src":"10346:13:5"}],"id":5353,"name":"ExpressionStatement","src":"10346:13:5"},{"attributes":{"functionReturnParameters":5247},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5243,"type":"struct strings.slice memory","value":"rune"},"id":5354,"name":"Identifier","src":"10376:4:5"}],"id":5355,"name":"Return","src":"10369:11:5"}],"id":5356,"name":"Block","src":"9602:785:5"}],"id":5357,"name":"FunctionDefinition","src":"9509:878:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"nextRune","payable":false,"scope":6442,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":5370,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4754,"type":"struct strings.slice"},"id":5358,"name":"UserDefinedTypeName","src":"10645:5:5"}],"id":5359,"name":"VariableDeclaration","src":"10645:17:5"}],"id":5360,"name":"ParameterList","src":"10644:19:5"},{"children":[{"attributes":{"constant":false,"name":"ret","scope":5370,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4754,"type":"struct strings.slice"},"id":5361,"name":"UserDefinedTypeName","src":"10687:5:5"}],"id":5362,"name":"VariableDeclaration","src":"10687:16:5"}],"id":5363,"name":"ParameterList","src":"10686:18:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"struct strings.slice memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$4754_memory_ptr","typeString":"struct strings.slice memory"},{"typeIdentifier":"t_struct$_slice_$4754_memory_ptr","typeString":"struct strings.slice memory"}],"overloadedDeclarations":[5357,5370],"referencedDeclaration":5357,"type":"function (struct strings.slice memory,struct strings.slice memory) pure returns (struct strings.slice memory)","value":"nextRune"},"id":5364,"name":"Identifier","src":"10715:8:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5359,"type":"struct strings.slice memory","value":"self"},"id":5365,"name":"Identifier","src":"10724:4:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5362,"type":"struct strings.slice memory","value":"ret"},"id":5366,"name":"Identifier","src":"10730:3:5"}],"id":5367,"name":"FunctionCall","src":"10715:19:5"}],"id":5368,"name":"ExpressionStatement","src":"10715:19:5"}],"id":5369,"name":"Block","src":"10705:36:5"}],"id":5370,"name":"FunctionDefinition","src":"10627:114:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"ord","payable":false,"scope":6442,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":5517,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4754,"type":"struct strings.slice"},"id":5371,"name":"UserDefinedTypeName","src":"10950:5:5"}],"id":5372,"name":"VariableDeclaration","src":"10950:17:5"}],"id":5373,"name":"ParameterList","src":"10949:19:5"},{"children":[{"attributes":{"constant":false,"name":"ret","scope":5517,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5374,"name":"ElementaryTypeName","src":"10992:4:5"}],"id":5375,"name":"VariableDeclaration","src":"10992:8:5"}],"id":5376,"name":"ParameterList","src":"10991:10:5"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4751,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5372,"type":"struct strings.slice memory","value":"self"},"id":5377,"name":"Identifier","src":"11016:4:5"}],"id":5378,"name":"MemberAccess","src":"11016:9:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":5379,"name":"Literal","src":"11029:1:5"}],"id":5380,"name":"BinaryOperation","src":"11016:14:5"},{"children":[{"attributes":{"functionReturnParameters":5376},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":5381,"name":"Literal","src":"11053:1:5"}],"id":5382,"name":"Return","src":"11046:8:5"}],"id":5383,"name":"Block","src":"11032:33:5"}],"id":5384,"name":"IfStatement","src":"11012:53:5"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"word","scope":5517,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5385,"name":"ElementaryTypeName","src":"11075:4:5"}],"id":5386,"name":"VariableDeclaration","src":"11075:9:5"}],"id":5387,"name":"VariableDeclarationStatement","src":"11075:9:5"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"length","scope":5517,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5388,"name":"ElementaryTypeName","src":"11094:4:5"}],"id":5389,"name":"VariableDeclaration","src":"11094:11:5"}],"id":5390,"name":"VariableDeclarationStatement","src":"11094:11:5"},{"attributes":{"assignments":[5392]},"children":[{"attributes":{"constant":false,"name":"divisor","scope":5517,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5391,"name":"ElementaryTypeName","src":"11115:4:5"}],"id":5392,"name":"VariableDeclaration","src":"11115:12:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_452312848583266388373324160190187140051835877600158453279131187530910662656_by_1","typeString":"int_const 4523...(67 digits omitted)...2656"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"**","type":"int_const 4523...(67 digits omitted)...2656"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":5393,"name":"Literal","src":"11130:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"323438","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 248","value":"248"},"id":5394,"name":"Literal","src":"11135:3:5"}],"id":5395,"name":"BinaryOperation","src":"11130:8:5"}],"id":5396,"name":"VariableDeclarationStatement","src":"11115:23:5"},{"attributes":{"externalReferences":[{"word":{"declaration":5386,"isOffset":false,"isSlot":false,"src":"11204:4:5","valueSize":1}},{"self":{"declaration":5372,"isOffset":false,"isSlot":false,"src":"11227:4:5","valueSize":1}}],"operations":"{\n word := mload(mload(add(self, 32)))\n}"},"children":[],"id":5397,"name":"InlineAssembly","src":"11193:60:5"},{"attributes":{"assignments":[5399]},"children":[{"attributes":{"constant":false,"name":"b","scope":5517,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5398,"name":"ElementaryTypeName","src":"11249:4:5"}],"id":5399,"name":"VariableDeclaration","src":"11249:6:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"/","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5386,"type":"uint256","value":"word"},"id":5400,"name":"Identifier","src":"11258:4:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5392,"type":"uint256","value":"divisor"},"id":5401,"name":"Identifier","src":"11265:7:5"}],"id":5402,"name":"BinaryOperation","src":"11258:14:5"}],"id":5403,"name":"VariableDeclarationStatement","src":"11249:23:5"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5399,"type":"uint256","value":"b"},"id":5404,"name":"Identifier","src":"11286:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30783830","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 128","value":"0x80"},"id":5405,"name":"Literal","src":"11290:4:5"}],"id":5406,"name":"BinaryOperation","src":"11286:8:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5375,"type":"uint256","value":"ret"},"id":5407,"name":"Identifier","src":"11310:3:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5399,"type":"uint256","value":"b"},"id":5408,"name":"Identifier","src":"11316:1:5"}],"id":5409,"name":"Assignment","src":"11310:7:5"}],"id":5410,"name":"ExpressionStatement","src":"11310:7:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5389,"type":"uint256","value":"length"},"id":5411,"name":"Identifier","src":"11331:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":5412,"name":"Literal","src":"11340:1:5"}],"id":5413,"name":"Assignment","src":"11331:10:5"}],"id":5414,"name":"ExpressionStatement","src":"11331:10:5"}],"id":5415,"name":"Block","src":"11296:56:5"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5399,"type":"uint256","value":"b"},"id":5416,"name":"Identifier","src":"11361:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30784530","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 224","value":"0xE0"},"id":5417,"name":"Literal","src":"11365:4:5"}],"id":5418,"name":"BinaryOperation","src":"11361:8:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5375,"type":"uint256","value":"ret"},"id":5419,"name":"Identifier","src":"11385:3:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5399,"type":"uint256","value":"b"},"id":5420,"name":"Identifier","src":"11391:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30783146","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 31","value":"0x1F"},"id":5421,"name":"Literal","src":"11395:4:5"}],"id":5422,"name":"BinaryOperation","src":"11391:8:5"}],"id":5423,"name":"Assignment","src":"11385:14:5"}],"id":5424,"name":"ExpressionStatement","src":"11385:14:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5389,"type":"uint256","value":"length"},"id":5425,"name":"Identifier","src":"11413:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":5426,"name":"Literal","src":"11422:1:5"}],"id":5427,"name":"Assignment","src":"11413:10:5"}],"id":5428,"name":"ExpressionStatement","src":"11413:10:5"}],"id":5429,"name":"Block","src":"11371:63:5"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5399,"type":"uint256","value":"b"},"id":5430,"name":"Identifier","src":"11443:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30784630","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 240","value":"0xF0"},"id":5431,"name":"Literal","src":"11447:4:5"}],"id":5432,"name":"BinaryOperation","src":"11443:8:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5375,"type":"uint256","value":"ret"},"id":5433,"name":"Identifier","src":"11467:3:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5399,"type":"uint256","value":"b"},"id":5434,"name":"Identifier","src":"11473:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30783046","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 15","value":"0x0F"},"id":5435,"name":"Literal","src":"11477:4:5"}],"id":5436,"name":"BinaryOperation","src":"11473:8:5"}],"id":5437,"name":"Assignment","src":"11467:14:5"}],"id":5438,"name":"ExpressionStatement","src":"11467:14:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5389,"type":"uint256","value":"length"},"id":5439,"name":"Identifier","src":"11495:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":5440,"name":"Literal","src":"11504:1:5"}],"id":5441,"name":"Assignment","src":"11495:10:5"}],"id":5442,"name":"ExpressionStatement","src":"11495:10:5"}],"id":5443,"name":"Block","src":"11453:63:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5375,"type":"uint256","value":"ret"},"id":5444,"name":"Identifier","src":"11536:3:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5399,"type":"uint256","value":"b"},"id":5445,"name":"Identifier","src":"11542:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30783037","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 7","value":"0x07"},"id":5446,"name":"Literal","src":"11546:4:5"}],"id":5447,"name":"BinaryOperation","src":"11542:8:5"}],"id":5448,"name":"Assignment","src":"11536:14:5"}],"id":5449,"name":"ExpressionStatement","src":"11536:14:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5389,"type":"uint256","value":"length"},"id":5450,"name":"Identifier","src":"11564:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":5451,"name":"Literal","src":"11573:1:5"}],"id":5452,"name":"Assignment","src":"11564:10:5"}],"id":5453,"name":"ExpressionStatement","src":"11564:10:5"}],"id":5454,"name":"Block","src":"11522:63:5"}],"id":5455,"name":"IfStatement","src":"11440:145:5"}],"id":5456,"name":"IfStatement","src":"11358:227:5"}],"id":5457,"name":"IfStatement","src":"11282:303:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5389,"type":"uint256","value":"length"},"id":5458,"name":"Identifier","src":"11641:6:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4751,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5372,"type":"struct strings.slice memory","value":"self"},"id":5459,"name":"Identifier","src":"11650:4:5"}],"id":5460,"name":"MemberAccess","src":"11650:9:5"}],"id":5461,"name":"BinaryOperation","src":"11641:18:5"},{"children":[{"attributes":{"functionReturnParameters":5376},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":5462,"name":"Literal","src":"11682:1:5"}],"id":5463,"name":"Return","src":"11675:8:5"}],"id":5464,"name":"Block","src":"11661:33:5"}],"id":5465,"name":"IfStatement","src":"11637:57:5"},{"children":[{"attributes":{"assignments":[5467]},"children":[{"attributes":{"constant":false,"name":"i","scope":5517,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5466,"name":"ElementaryTypeName","src":"11709:4:5"}],"id":5467,"name":"VariableDeclaration","src":"11709:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":5468,"name":"Literal","src":"11718:1:5"}],"id":5469,"name":"VariableDeclarationStatement","src":"11709:10:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5467,"type":"uint256","value":"i"},"id":5470,"name":"Identifier","src":"11721:1:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5389,"type":"uint256","value":"length"},"id":5471,"name":"Identifier","src":"11725:6:5"}],"id":5472,"name":"BinaryOperation","src":"11721:10:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5467,"type":"uint256","value":"i"},"id":5473,"name":"Identifier","src":"11733:1:5"}],"id":5474,"name":"UnaryOperation","src":"11733:3:5"}],"id":5475,"name":"ExpressionStatement","src":"11733:3:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5392,"type":"uint256","value":"divisor"},"id":5476,"name":"Identifier","src":"11752:7:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"/","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5392,"type":"uint256","value":"divisor"},"id":5477,"name":"Identifier","src":"11762:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"323536","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 256","value":"256"},"id":5478,"name":"Literal","src":"11772:3:5"}],"id":5479,"name":"BinaryOperation","src":"11762:13:5"}],"id":5480,"name":"Assignment","src":"11752:23:5"}],"id":5481,"name":"ExpressionStatement","src":"11752:23:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5399,"type":"uint256","value":"b"},"id":5482,"name":"Identifier","src":"11789:1:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"/","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5386,"type":"uint256","value":"word"},"id":5483,"name":"Identifier","src":"11794:4:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5392,"type":"uint256","value":"divisor"},"id":5484,"name":"Identifier","src":"11801:7:5"}],"id":5485,"name":"BinaryOperation","src":"11794:14:5"}],"id":5486,"name":"TupleExpression","src":"11793:16:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30784646","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 255","value":"0xFF"},"id":5487,"name":"Literal","src":"11812:4:5"}],"id":5488,"name":"BinaryOperation","src":"11793:23:5"}],"id":5489,"name":"Assignment","src":"11789:27:5"}],"id":5490,"name":"ExpressionStatement","src":"11789:27:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5399,"type":"uint256","value":"b"},"id":5491,"name":"Identifier","src":"11834:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30784330","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 192","value":"0xC0"},"id":5492,"name":"Literal","src":"11838:4:5"}],"id":5493,"name":"BinaryOperation","src":"11834:8:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30783830","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 128","value":"0x80"},"id":5494,"name":"Literal","src":"11846:4:5"}],"id":5495,"name":"BinaryOperation","src":"11834:16:5"},{"children":[{"attributes":{"functionReturnParameters":5376},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":5496,"name":"Literal","src":"11919:1:5"}],"id":5497,"name":"Return","src":"11912:8:5"}],"id":5498,"name":"Block","src":"11852:83:5"}],"id":5499,"name":"IfStatement","src":"11830:105:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5375,"type":"uint256","value":"ret"},"id":5500,"name":"Identifier","src":"11948:3:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"|","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5375,"type":"uint256","value":"ret"},"id":5501,"name":"Identifier","src":"11955:3:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3634","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 64","value":"64"},"id":5502,"name":"Literal","src":"11961:2:5"}],"id":5503,"name":"BinaryOperation","src":"11955:8:5"}],"id":5504,"name":"TupleExpression","src":"11954:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5399,"type":"uint256","value":"b"},"id":5505,"name":"Identifier","src":"11968:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30783346","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 63","value":"0x3F"},"id":5506,"name":"Literal","src":"11972:4:5"}],"id":5507,"name":"BinaryOperation","src":"11968:8:5"}],"id":5508,"name":"TupleExpression","src":"11967:10:5"}],"id":5509,"name":"BinaryOperation","src":"11954:23:5"}],"id":5510,"name":"Assignment","src":"11948:29:5"}],"id":5511,"name":"ExpressionStatement","src":"11948:29:5"}],"id":5512,"name":"Block","src":"11738:250:5"}],"id":5513,"name":"ForStatement","src":"11704:284:5"},{"attributes":{"functionReturnParameters":5376},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5375,"type":"uint256","value":"ret"},"id":5514,"name":"Identifier","src":"12005:3:5"}],"id":5515,"name":"Return","src":"11998:10:5"}],"id":5516,"name":"Block","src":"11002:1013:5"}],"id":5517,"name":"FunctionDefinition","src":"10937:1078:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"keccak","payable":false,"scope":6442,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":5526,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4754,"type":"struct strings.slice"},"id":5518,"name":"UserDefinedTypeName","src":"12182:5:5"}],"id":5519,"name":"VariableDeclaration","src":"12182:17:5"}],"id":5520,"name":"ParameterList","src":"12181:19:5"},{"children":[{"attributes":{"constant":false,"name":"ret","scope":5526,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":5521,"name":"ElementaryTypeName","src":"12224:7:5"}],"id":5522,"name":"VariableDeclaration","src":"12224:11:5"}],"id":5523,"name":"ParameterList","src":"12223:13:5"},{"children":[{"attributes":{"externalReferences":[{"ret":{"declaration":5522,"isOffset":false,"isSlot":false,"src":"12270:3:5","valueSize":1}},{"self":{"declaration":5519,"isOffset":false,"isSlot":false,"src":"12315:4:5","valueSize":1}},{"self":{"declaration":5519,"isOffset":false,"isSlot":false,"src":"12297:4:5","valueSize":1}}],"operations":"{\n ret := keccak256(mload(add(self, 32)), mload(self))\n}"},"children":[],"id":5524,"name":"InlineAssembly","src":"12247:90:5"}],"id":5525,"name":"Block","src":"12237:100:5"}],"id":5526,"name":"FunctionDefinition","src":"12166:171:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"startsWith","payable":false,"scope":6442,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":5560,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4754,"type":"struct strings.slice"},"id":5527,"name":"UserDefinedTypeName","src":"12606:5:5"}],"id":5528,"name":"VariableDeclaration","src":"12606:17:5"},{"attributes":{"constant":false,"name":"needle","scope":5560,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4754,"type":"struct strings.slice"},"id":5529,"name":"UserDefinedTypeName","src":"12625:5:5"}],"id":5530,"name":"VariableDeclaration","src":"12625:19:5"}],"id":5531,"name":"ParameterList","src":"12605:40:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":5560,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":5532,"name":"ElementaryTypeName","src":"12669:4:5"}],"id":5533,"name":"VariableDeclaration","src":"12669:4:5"}],"id":5534,"name":"ParameterList","src":"12668:6:5"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4751,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5528,"type":"struct strings.slice memory","value":"self"},"id":5535,"name":"Identifier","src":"12689:4:5"}],"id":5536,"name":"MemberAccess","src":"12689:9:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4751,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5530,"type":"struct strings.slice memory","value":"needle"},"id":5537,"name":"Identifier","src":"12701:6:5"}],"id":5538,"name":"MemberAccess","src":"12701:11:5"}],"id":5539,"name":"BinaryOperation","src":"12689:23:5"},{"children":[{"attributes":{"functionReturnParameters":5534},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"66616c7365","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"false"},"id":5540,"name":"Literal","src":"12735:5:5"}],"id":5541,"name":"Return","src":"12728:12:5"}],"id":5542,"name":"Block","src":"12714:37:5"}],"id":5543,"name":"IfStatement","src":"12685:66:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":4753,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5528,"type":"struct strings.slice memory","value":"self"},"id":5544,"name":"Identifier","src":"12765:4:5"}],"id":5545,"name":"MemberAccess","src":"12765:9:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":4753,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5530,"type":"struct strings.slice memory","value":"needle"},"id":5546,"name":"Identifier","src":"12778:6:5"}],"id":5547,"name":"MemberAccess","src":"12778:11:5"}],"id":5548,"name":"BinaryOperation","src":"12765:24:5"},{"children":[{"attributes":{"functionReturnParameters":5534},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":5549,"name":"Literal","src":"12812:4:5"}],"id":5550,"name":"Return","src":"12805:11:5"}],"id":5551,"name":"Block","src":"12791:36:5"}],"id":5552,"name":"IfStatement","src":"12761:66:5"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"equal","scope":5560,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":5553,"name":"ElementaryTypeName","src":"12837:4:5"}],"id":5554,"name":"VariableDeclaration","src":"12837:10:5"}],"id":5555,"name":"VariableDeclarationStatement","src":"12837:10:5"},{"attributes":{"externalReferences":[{"needle":{"declaration":5530,"isOffset":false,"isSlot":false,"src":"12900:6:5","valueSize":1}},{"self":{"declaration":5528,"isOffset":false,"isSlot":false,"src":"12945:4:5","valueSize":1}},{"needle":{"declaration":5530,"isOffset":false,"isSlot":false,"src":"12997:6:5","valueSize":1}},{"equal":{"declaration":5554,"isOffset":false,"isSlot":false,"src":"13024:5:5","valueSize":1}}],"operations":"{\n let length := mload(needle)\n let selfptr := mload(add(self, 0x20))\n let needleptr := mload(add(needle, 0x20))\n equal := eq(keccak256(selfptr, length), keccak256(needleptr, length))\n}"},"children":[],"id":5556,"name":"InlineAssembly","src":"12857:261:5"},{"attributes":{"functionReturnParameters":5534},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5554,"type":"bool","value":"equal"},"id":5557,"name":"Identifier","src":"13119:5:5"}],"id":5558,"name":"Return","src":"13112:12:5"}],"id":5559,"name":"Block","src":"12675:456:5"}],"id":5560,"name":"FunctionDefinition","src":"12586:545:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"beyond","payable":false,"scope":6442,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":5610,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4754,"type":"struct strings.slice"},"id":5561,"name":"UserDefinedTypeName","src":"13419:5:5"}],"id":5562,"name":"VariableDeclaration","src":"13419:17:5"},{"attributes":{"constant":false,"name":"needle","scope":5610,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4754,"type":"struct strings.slice"},"id":5563,"name":"UserDefinedTypeName","src":"13438:5:5"}],"id":5564,"name":"VariableDeclaration","src":"13438:19:5"}],"id":5565,"name":"ParameterList","src":"13418:40:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":5610,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4754,"type":"struct strings.slice"},"id":5566,"name":"UserDefinedTypeName","src":"13482:5:5"}],"id":5567,"name":"VariableDeclaration","src":"13482:5:5"}],"id":5568,"name":"ParameterList","src":"13481:14:5"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4751,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5562,"type":"struct strings.slice memory","value":"self"},"id":5569,"name":"Identifier","src":"13510:4:5"}],"id":5570,"name":"MemberAccess","src":"13510:9:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4751,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5564,"type":"struct strings.slice memory","value":"needle"},"id":5571,"name":"Identifier","src":"13522:6:5"}],"id":5572,"name":"MemberAccess","src":"13522:11:5"}],"id":5573,"name":"BinaryOperation","src":"13510:23:5"},{"children":[{"attributes":{"functionReturnParameters":5568},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5562,"type":"struct strings.slice memory","value":"self"},"id":5574,"name":"Identifier","src":"13556:4:5"}],"id":5575,"name":"Return","src":"13549:11:5"}],"id":5576,"name":"Block","src":"13535:36:5"}],"id":5577,"name":"IfStatement","src":"13506:65:5"},{"attributes":{"assignments":[5579]},"children":[{"attributes":{"constant":false,"name":"equal","scope":5610,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":5578,"name":"ElementaryTypeName","src":"13581:4:5"}],"id":5579,"name":"VariableDeclaration","src":"13581:10:5"},{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":5580,"name":"Literal","src":"13594:4:5"}],"id":5581,"name":"VariableDeclarationStatement","src":"13581:17:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":4753,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5562,"type":"struct strings.slice memory","value":"self"},"id":5582,"name":"Identifier","src":"13612:4:5"}],"id":5583,"name":"MemberAccess","src":"13612:9:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":4753,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5564,"type":"struct strings.slice memory","value":"needle"},"id":5584,"name":"Identifier","src":"13625:6:5"}],"id":5585,"name":"MemberAccess","src":"13625:11:5"}],"id":5586,"name":"BinaryOperation","src":"13612:24:5"},{"children":[{"attributes":{"externalReferences":[{"needle":{"declaration":5564,"isOffset":false,"isSlot":false,"src":"13699:6:5","valueSize":1}},{"self":{"declaration":5562,"isOffset":false,"isSlot":false,"src":"13748:4:5","valueSize":1}},{"needle":{"declaration":5564,"isOffset":false,"isSlot":false,"src":"13804:6:5","valueSize":1}},{"equal":{"declaration":5579,"isOffset":false,"isSlot":false,"src":"13835:5:5","valueSize":1}}],"operations":"{\n let length := mload(needle)\n let selfptr := mload(add(self, 0x20))\n let needleptr := mload(add(needle, 0x20))\n equal := eq(keccak256(selfptr, length), keccak256(needleptr, length))\n}"},"children":[],"id":5587,"name":"InlineAssembly","src":"13652:276:5"}],"id":5588,"name":"Block","src":"13638:290:5"}],"id":5589,"name":"IfStatement","src":"13608:320:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5579,"type":"bool","value":"equal"},"id":5590,"name":"Identifier","src":"13942:5:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":4751,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5562,"type":"struct strings.slice memory","value":"self"},"id":5591,"name":"Identifier","src":"13963:4:5"}],"id":5593,"name":"MemberAccess","src":"13963:9:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4751,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5564,"type":"struct strings.slice memory","value":"needle"},"id":5594,"name":"Identifier","src":"13976:6:5"}],"id":5595,"name":"MemberAccess","src":"13976:11:5"}],"id":5596,"name":"Assignment","src":"13963:24:5"}],"id":5597,"name":"ExpressionStatement","src":"13963:24:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_ptr","referencedDeclaration":4753,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5562,"type":"struct strings.slice memory","value":"self"},"id":5598,"name":"Identifier","src":"14001:4:5"}],"id":5600,"name":"MemberAccess","src":"14001:9:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4751,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5564,"type":"struct strings.slice memory","value":"needle"},"id":5601,"name":"Identifier","src":"14014:6:5"}],"id":5602,"name":"MemberAccess","src":"14014:11:5"}],"id":5603,"name":"Assignment","src":"14001:24:5"}],"id":5604,"name":"ExpressionStatement","src":"14001:24:5"}],"id":5605,"name":"Block","src":"13949:87:5"}],"id":5606,"name":"IfStatement","src":"13938:98:5"},{"attributes":{"functionReturnParameters":5568},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5562,"type":"struct strings.slice memory","value":"self"},"id":5607,"name":"Identifier","src":"14053:4:5"}],"id":5608,"name":"Return","src":"14046:11:5"}],"id":5609,"name":"Block","src":"13496:568:5"}],"id":5610,"name":"FunctionDefinition","src":"13403:661:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"endsWith","payable":false,"scope":6442,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":5654,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4754,"type":"struct strings.slice"},"id":5611,"name":"UserDefinedTypeName","src":"14332:5:5"}],"id":5612,"name":"VariableDeclaration","src":"14332:17:5"},{"attributes":{"constant":false,"name":"needle","scope":5654,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4754,"type":"struct strings.slice"},"id":5613,"name":"UserDefinedTypeName","src":"14351:5:5"}],"id":5614,"name":"VariableDeclaration","src":"14351:19:5"}],"id":5615,"name":"ParameterList","src":"14331:40:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":5654,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":5616,"name":"ElementaryTypeName","src":"14395:4:5"}],"id":5617,"name":"VariableDeclaration","src":"14395:4:5"}],"id":5618,"name":"ParameterList","src":"14394:6:5"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4751,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5612,"type":"struct strings.slice memory","value":"self"},"id":5619,"name":"Identifier","src":"14415:4:5"}],"id":5620,"name":"MemberAccess","src":"14415:9:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4751,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5614,"type":"struct strings.slice memory","value":"needle"},"id":5621,"name":"Identifier","src":"14427:6:5"}],"id":5622,"name":"MemberAccess","src":"14427:11:5"}],"id":5623,"name":"BinaryOperation","src":"14415:23:5"},{"children":[{"attributes":{"functionReturnParameters":5618},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"66616c7365","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"false"},"id":5624,"name":"Literal","src":"14461:5:5"}],"id":5625,"name":"Return","src":"14454:12:5"}],"id":5626,"name":"Block","src":"14440:37:5"}],"id":5627,"name":"IfStatement","src":"14411:66:5"},{"attributes":{"assignments":[5629]},"children":[{"attributes":{"constant":false,"name":"selfptr","scope":5654,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5628,"name":"ElementaryTypeName","src":"14487:4:5"}],"id":5629,"name":"VariableDeclaration","src":"14487:12:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":4753,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5612,"type":"struct strings.slice memory","value":"self"},"id":5630,"name":"Identifier","src":"14502:4:5"}],"id":5631,"name":"MemberAccess","src":"14502:9:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4751,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5612,"type":"struct strings.slice memory","value":"self"},"id":5632,"name":"Identifier","src":"14514:4:5"}],"id":5633,"name":"MemberAccess","src":"14514:9:5"}],"id":5634,"name":"BinaryOperation","src":"14502:21:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4751,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5614,"type":"struct strings.slice memory","value":"needle"},"id":5635,"name":"Identifier","src":"14526:6:5"}],"id":5636,"name":"MemberAccess","src":"14526:11:5"}],"id":5637,"name":"BinaryOperation","src":"14502:35:5"}],"id":5638,"name":"VariableDeclarationStatement","src":"14487:50:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5629,"type":"uint256","value":"selfptr"},"id":5639,"name":"Identifier","src":"14552:7:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":4753,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5614,"type":"struct strings.slice memory","value":"needle"},"id":5640,"name":"Identifier","src":"14563:6:5"}],"id":5641,"name":"MemberAccess","src":"14563:11:5"}],"id":5642,"name":"BinaryOperation","src":"14552:22:5"},{"children":[{"attributes":{"functionReturnParameters":5618},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":5643,"name":"Literal","src":"14597:4:5"}],"id":5644,"name":"Return","src":"14590:11:5"}],"id":5645,"name":"Block","src":"14576:36:5"}],"id":5646,"name":"IfStatement","src":"14548:64:5"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"equal","scope":5654,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":5647,"name":"ElementaryTypeName","src":"14622:4:5"}],"id":5648,"name":"VariableDeclaration","src":"14622:10:5"}],"id":5649,"name":"VariableDeclarationStatement","src":"14622:10:5"},{"attributes":{"externalReferences":[{"needle":{"declaration":5614,"isOffset":false,"isSlot":false,"src":"14685:6:5","valueSize":1}},{"equal":{"declaration":5648,"isOffset":false,"isSlot":false,"src":"14759:5:5","valueSize":1}},{"needle":{"declaration":5614,"isOffset":false,"isSlot":false,"src":"14732:6:5","valueSize":1}},{"selfptr":{"declaration":5629,"isOffset":false,"isSlot":false,"src":"14781:7:5","valueSize":1}}],"operations":"{\n let length := mload(needle)\n let needleptr := mload(add(needle, 0x20))\n equal := eq(keccak256(selfptr, length), keccak256(needleptr, length))\n}"},"children":[],"id":5650,"name":"InlineAssembly","src":"14642:212:5"},{"attributes":{"functionReturnParameters":5618},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5648,"type":"bool","value":"equal"},"id":5651,"name":"Identifier","src":"14855:5:5"}],"id":5652,"name":"Return","src":"14848:12:5"}],"id":5653,"name":"Block","src":"14401:466:5"}],"id":5654,"name":"FunctionDefinition","src":"14314:553:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"until","payable":false,"scope":6442,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":5707,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4754,"type":"struct strings.slice"},"id":5655,"name":"UserDefinedTypeName","src":"15146:5:5"}],"id":5656,"name":"VariableDeclaration","src":"15146:17:5"},{"attributes":{"constant":false,"name":"needle","scope":5707,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4754,"type":"struct strings.slice"},"id":5657,"name":"UserDefinedTypeName","src":"15165:5:5"}],"id":5658,"name":"VariableDeclaration","src":"15165:19:5"}],"id":5659,"name":"ParameterList","src":"15145:40:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":5707,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4754,"type":"struct strings.slice"},"id":5660,"name":"UserDefinedTypeName","src":"15209:5:5"}],"id":5661,"name":"VariableDeclaration","src":"15209:5:5"}],"id":5662,"name":"ParameterList","src":"15208:14:5"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4751,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5656,"type":"struct strings.slice memory","value":"self"},"id":5663,"name":"Identifier","src":"15237:4:5"}],"id":5664,"name":"MemberAccess","src":"15237:9:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4751,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5658,"type":"struct strings.slice memory","value":"needle"},"id":5665,"name":"Identifier","src":"15249:6:5"}],"id":5666,"name":"MemberAccess","src":"15249:11:5"}],"id":5667,"name":"BinaryOperation","src":"15237:23:5"},{"children":[{"attributes":{"functionReturnParameters":5662},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5656,"type":"struct strings.slice memory","value":"self"},"id":5668,"name":"Identifier","src":"15283:4:5"}],"id":5669,"name":"Return","src":"15276:11:5"}],"id":5670,"name":"Block","src":"15262:36:5"}],"id":5671,"name":"IfStatement","src":"15233:65:5"},{"attributes":{"assignments":[5673]},"children":[{"attributes":{"constant":false,"name":"selfptr","scope":5707,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5672,"name":"ElementaryTypeName","src":"15308:4:5"}],"id":5673,"name":"VariableDeclaration","src":"15308:12:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":4753,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5656,"type":"struct strings.slice memory","value":"self"},"id":5674,"name":"Identifier","src":"15323:4:5"}],"id":5675,"name":"MemberAccess","src":"15323:9:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4751,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5656,"type":"struct strings.slice memory","value":"self"},"id":5676,"name":"Identifier","src":"15335:4:5"}],"id":5677,"name":"MemberAccess","src":"15335:9:5"}],"id":5678,"name":"BinaryOperation","src":"15323:21:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4751,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5658,"type":"struct strings.slice memory","value":"needle"},"id":5679,"name":"Identifier","src":"15347:6:5"}],"id":5680,"name":"MemberAccess","src":"15347:11:5"}],"id":5681,"name":"BinaryOperation","src":"15323:35:5"}],"id":5682,"name":"VariableDeclarationStatement","src":"15308:50:5"},{"attributes":{"assignments":[5684]},"children":[{"attributes":{"constant":false,"name":"equal","scope":5707,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":5683,"name":"ElementaryTypeName","src":"15368:4:5"}],"id":5684,"name":"VariableDeclaration","src":"15368:10:5"},{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":5685,"name":"Literal","src":"15381:4:5"}],"id":5686,"name":"VariableDeclarationStatement","src":"15368:17:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5673,"type":"uint256","value":"selfptr"},"id":5687,"name":"Identifier","src":"15399:7:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":4753,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5658,"type":"struct strings.slice memory","value":"needle"},"id":5688,"name":"Identifier","src":"15410:6:5"}],"id":5689,"name":"MemberAccess","src":"15410:11:5"}],"id":5690,"name":"BinaryOperation","src":"15399:22:5"},{"children":[{"attributes":{"externalReferences":[{"needle":{"declaration":5658,"isOffset":false,"isSlot":false,"src":"15484:6:5","valueSize":1}},{"equal":{"declaration":5684,"isOffset":false,"isSlot":false,"src":"15566:5:5","valueSize":1}},{"needle":{"declaration":5658,"isOffset":false,"isSlot":false,"src":"15535:6:5","valueSize":1}},{"selfptr":{"declaration":5673,"isOffset":false,"isSlot":false,"src":"15588:7:5","valueSize":1}}],"operations":"{\n let length := mload(needle)\n let needleptr := mload(add(needle, 0x20))\n equal := eq(keccak256(selfptr, length), keccak256(needleptr, length))\n}"},"children":[],"id":5691,"name":"InlineAssembly","src":"15437:222:5"}],"id":5692,"name":"Block","src":"15423:236:5"}],"id":5693,"name":"IfStatement","src":"15395:264:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5684,"type":"bool","value":"equal"},"id":5694,"name":"Identifier","src":"15673:5:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":4751,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5656,"type":"struct strings.slice memory","value":"self"},"id":5695,"name":"Identifier","src":"15694:4:5"}],"id":5697,"name":"MemberAccess","src":"15694:9:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4751,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5658,"type":"struct strings.slice memory","value":"needle"},"id":5698,"name":"Identifier","src":"15707:6:5"}],"id":5699,"name":"MemberAccess","src":"15707:11:5"}],"id":5700,"name":"Assignment","src":"15694:24:5"}],"id":5701,"name":"ExpressionStatement","src":"15694:24:5"}],"id":5702,"name":"Block","src":"15680:49:5"}],"id":5703,"name":"IfStatement","src":"15669:60:5"},{"attributes":{"functionReturnParameters":5662},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5656,"type":"struct strings.slice memory","value":"self"},"id":5704,"name":"Identifier","src":"15746:4:5"}],"id":5705,"name":"Return","src":"15739:11:5"}],"id":5706,"name":"Block","src":"15223:534:5"}],"id":5707,"name":"FunctionDefinition","src":"15131:626:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"findPtr","payable":false,"scope":6442,"stateMutability":"pure","superFunction":null,"visibility":"private"},"children":[{"children":[{"attributes":{"constant":false,"name":"selflen","scope":5828,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5708,"name":"ElementaryTypeName","src":"15931:4:5"}],"id":5709,"name":"VariableDeclaration","src":"15931:12:5"},{"attributes":{"constant":false,"name":"selfptr","scope":5828,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5710,"name":"ElementaryTypeName","src":"15945:4:5"}],"id":5711,"name":"VariableDeclaration","src":"15945:12:5"},{"attributes":{"constant":false,"name":"needlelen","scope":5828,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5712,"name":"ElementaryTypeName","src":"15959:4:5"}],"id":5713,"name":"VariableDeclaration","src":"15959:14:5"},{"attributes":{"constant":false,"name":"needleptr","scope":5828,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5714,"name":"ElementaryTypeName","src":"15975:4:5"}],"id":5715,"name":"VariableDeclaration","src":"15975:14:5"}],"id":5716,"name":"ParameterList","src":"15930:60:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":5828,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5717,"name":"ElementaryTypeName","src":"16013:4:5"}],"id":5718,"name":"VariableDeclaration","src":"16013:4:5"}],"id":5719,"name":"ParameterList","src":"16012:6:5"},{"children":[{"attributes":{"assignments":[5721]},"children":[{"attributes":{"constant":false,"name":"ptr","scope":5828,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5720,"name":"ElementaryTypeName","src":"16029:4:5"}],"id":5721,"name":"VariableDeclaration","src":"16029:8:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5711,"type":"uint256","value":"selfptr"},"id":5722,"name":"Identifier","src":"16040:7:5"}],"id":5723,"name":"VariableDeclarationStatement","src":"16029:18:5"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"idx","scope":5828,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5724,"name":"ElementaryTypeName","src":"16057:4:5"}],"id":5725,"name":"VariableDeclaration","src":"16057:8:5"}],"id":5726,"name":"VariableDeclarationStatement","src":"16057:8:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5713,"type":"uint256","value":"needlelen"},"id":5727,"name":"Identifier","src":"16080:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5709,"type":"uint256","value":"selflen"},"id":5728,"name":"Identifier","src":"16093:7:5"}],"id":5729,"name":"BinaryOperation","src":"16080:20:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5713,"type":"uint256","value":"needlelen"},"id":5730,"name":"Identifier","src":"16120:9:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":5731,"name":"Literal","src":"16133:2:5"}],"id":5732,"name":"BinaryOperation","src":"16120:15:5"},{"children":[{"attributes":{"assignments":[5734]},"children":[{"attributes":{"constant":false,"name":"mask","scope":5828,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":5733,"name":"ElementaryTypeName","src":"16155:7:5"}],"id":5734,"name":"VariableDeclaration","src":"16155:12:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes32)","value":"bytes32"},"id":5735,"name":"ElementaryTypeNameExpression","src":"16170:7:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"~","prefix":true,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"**","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":5736,"name":"Literal","src":"16180:1:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"38","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 8","value":"8"},"id":5737,"name":"Literal","src":"16186:1:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":5738,"name":"Literal","src":"16191:2:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5713,"type":"uint256","value":"needlelen"},"id":5739,"name":"Identifier","src":"16196:9:5"}],"id":5740,"name":"BinaryOperation","src":"16191:14:5"}],"id":5741,"name":"TupleExpression","src":"16190:16:5"}],"id":5742,"name":"BinaryOperation","src":"16186:20:5"}],"id":5743,"name":"TupleExpression","src":"16185:22:5"}],"id":5744,"name":"BinaryOperation","src":"16180:27:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":5745,"name":"Literal","src":"16210:1:5"}],"id":5746,"name":"BinaryOperation","src":"16180:31:5"}],"id":5747,"name":"TupleExpression","src":"16179:33:5"}],"id":5748,"name":"UnaryOperation","src":"16178:34:5"}],"id":5749,"name":"FunctionCall","src":"16170:43:5"}],"id":5750,"name":"VariableDeclarationStatement","src":"16155:58:5"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"needledata","scope":5828,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":5751,"name":"ElementaryTypeName","src":"16232:7:5"}],"id":5752,"name":"VariableDeclaration","src":"16232:18:5"}],"id":5753,"name":"VariableDeclarationStatement","src":"16232:18:5"},{"attributes":{"externalReferences":[{"needleptr":{"declaration":5715,"isOffset":false,"isSlot":false,"src":"16303:9:5","valueSize":1}},{"needledata":{"declaration":5752,"isOffset":false,"isSlot":false,"src":"16279:10:5","valueSize":1}},{"mask":{"declaration":5734,"isOffset":false,"isSlot":false,"src":"16315:4:5","valueSize":1}}],"operations":"{\n needledata := and(mload(needleptr), mask)\n}"},"children":[],"id":5754,"name":"InlineAssembly","src":"16268:76:5"},{"attributes":{"assignments":[5756]},"children":[{"attributes":{"constant":false,"name":"end","scope":5828,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5755,"name":"ElementaryTypeName","src":"16340:4:5"}],"id":5756,"name":"VariableDeclaration","src":"16340:8:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5711,"type":"uint256","value":"selfptr"},"id":5757,"name":"Identifier","src":"16351:7:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5709,"type":"uint256","value":"selflen"},"id":5758,"name":"Identifier","src":"16361:7:5"}],"id":5759,"name":"BinaryOperation","src":"16351:17:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5713,"type":"uint256","value":"needlelen"},"id":5760,"name":"Identifier","src":"16371:9:5"}],"id":5761,"name":"BinaryOperation","src":"16351:29:5"}],"id":5762,"name":"VariableDeclarationStatement","src":"16340:40:5"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"ptrdata","scope":5828,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":5763,"name":"ElementaryTypeName","src":"16398:7:5"}],"id":5764,"name":"VariableDeclaration","src":"16398:15:5"}],"id":5765,"name":"VariableDeclarationStatement","src":"16398:15:5"},{"attributes":{"externalReferences":[{"ptr":{"declaration":5721,"isOffset":false,"isSlot":false,"src":"16463:3:5","valueSize":1}},{"ptrdata":{"declaration":5764,"isOffset":false,"isSlot":false,"src":"16442:7:5","valueSize":1}},{"mask":{"declaration":5734,"isOffset":false,"isSlot":false,"src":"16469:4:5","valueSize":1}}],"operations":"{\n ptrdata := and(mload(ptr), mask)\n}"},"children":[],"id":5766,"name":"InlineAssembly","src":"16431:68:5"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5764,"type":"bytes32","value":"ptrdata"},"id":5767,"name":"Identifier","src":"16501:7:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5752,"type":"bytes32","value":"needledata"},"id":5768,"name":"Identifier","src":"16512:10:5"}],"id":5769,"name":"BinaryOperation","src":"16501:21:5"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5721,"type":"uint256","value":"ptr"},"id":5770,"name":"Identifier","src":"16550:3:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5756,"type":"uint256","value":"end"},"id":5771,"name":"Identifier","src":"16557:3:5"}],"id":5772,"name":"BinaryOperation","src":"16550:10:5"},{"attributes":{"functionReturnParameters":5719},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5711,"type":"uint256","value":"selfptr"},"id":5773,"name":"Identifier","src":"16593:7:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5709,"type":"uint256","value":"selflen"},"id":5774,"name":"Identifier","src":"16603:7:5"}],"id":5775,"name":"BinaryOperation","src":"16593:17:5"}],"id":5776,"name":"Return","src":"16586:24:5"}],"id":5777,"name":"IfStatement","src":"16546:64:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5721,"type":"uint256","value":"ptr"},"id":5778,"name":"Identifier","src":"16632:3:5"}],"id":5779,"name":"UnaryOperation","src":"16632:5:5"}],"id":5780,"name":"ExpressionStatement","src":"16632:5:5"},{"attributes":{"externalReferences":[{"ptr":{"declaration":5721,"isOffset":false,"isSlot":false,"src":"16691:3:5","valueSize":1}},{"ptrdata":{"declaration":5764,"isOffset":false,"isSlot":false,"src":"16670:7:5","valueSize":1}},{"mask":{"declaration":5734,"isOffset":false,"isSlot":false,"src":"16697:4:5","valueSize":1}}],"operations":"{\n ptrdata := and(mload(ptr), mask)\n}"},"children":[],"id":5781,"name":"InlineAssembly","src":"16659:63:5"}],"id":5782,"name":"Block","src":"16524:198:5"}],"id":5783,"name":"WhileStatement","src":"16494:228:5"},{"attributes":{"functionReturnParameters":5719},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5721,"type":"uint256","value":"ptr"},"id":5784,"name":"Identifier","src":"16746:3:5"}],"id":5785,"name":"Return","src":"16739:10:5"}],"id":5786,"name":"Block","src":"16137:627:5"},{"children":[{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"hash","scope":5828,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":5787,"name":"ElementaryTypeName","src":"16837:7:5"}],"id":5788,"name":"VariableDeclaration","src":"16837:12:5"}],"id":5789,"name":"VariableDeclarationStatement","src":"16837:12:5"},{"attributes":{"externalReferences":[{"needleptr":{"declaration":5715,"isOffset":false,"isSlot":false,"src":"16896:9:5","valueSize":1}},{"needlelen":{"declaration":5713,"isOffset":false,"isSlot":false,"src":"16907:9:5","valueSize":1}},{"hash":{"declaration":5788,"isOffset":false,"isSlot":false,"src":"16878:4:5","valueSize":1}}],"operations":"{\n hash := keccak256(needleptr, needlelen)\n}"},"children":[],"id":5790,"name":"InlineAssembly","src":"16867:73:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5725,"type":"uint256","value":"idx"},"id":5791,"name":"Identifier","src":"16942:3:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":5792,"name":"Literal","src":"16948:1:5"}],"id":5793,"name":"Assignment","src":"16942:7:5"}],"id":5794,"name":"ExpressionStatement","src":"16942:7:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5725,"type":"uint256","value":"idx"},"id":5795,"name":"Identifier","src":"16951:3:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5709,"type":"uint256","value":"selflen"},"id":5796,"name":"Identifier","src":"16958:7:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5713,"type":"uint256","value":"needlelen"},"id":5797,"name":"Identifier","src":"16968:9:5"}],"id":5798,"name":"BinaryOperation","src":"16958:19:5"}],"id":5799,"name":"BinaryOperation","src":"16951:26:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5725,"type":"uint256","value":"idx"},"id":5800,"name":"Identifier","src":"16979:3:5"}],"id":5801,"name":"UnaryOperation","src":"16979:5:5"}],"id":5802,"name":"ExpressionStatement","src":"16979:5:5"},{"children":[{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"testHash","scope":5828,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":5803,"name":"ElementaryTypeName","src":"17008:7:5"}],"id":5804,"name":"VariableDeclaration","src":"17008:16:5"}],"id":5805,"name":"VariableDeclarationStatement","src":"17008:16:5"},{"attributes":{"externalReferences":[{"testHash":{"declaration":5804,"isOffset":false,"isSlot":false,"src":"17057:8:5","valueSize":1}},{"ptr":{"declaration":5721,"isOffset":false,"isSlot":false,"src":"17079:3:5","valueSize":1}},{"needlelen":{"declaration":5713,"isOffset":false,"isSlot":false,"src":"17084:9:5","valueSize":1}}],"operations":"{\n testHash := keccak256(ptr, needlelen)\n}"},"children":[],"id":5806,"name":"InlineAssembly","src":"17046:73:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5788,"type":"bytes32","value":"hash"},"id":5807,"name":"Identifier","src":"17121:4:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5804,"type":"bytes32","value":"testHash"},"id":5808,"name":"Identifier","src":"17129:8:5"}],"id":5809,"name":"BinaryOperation","src":"17121:16:5"},{"attributes":{"functionReturnParameters":5719},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5721,"type":"uint256","value":"ptr"},"id":5810,"name":"Identifier","src":"17170:3:5"}],"id":5811,"name":"Return","src":"17163:10:5"}],"id":5812,"name":"IfStatement","src":"17117:56:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5721,"type":"uint256","value":"ptr"},"id":5813,"name":"Identifier","src":"17195:3:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":5814,"name":"Literal","src":"17202:1:5"}],"id":5815,"name":"Assignment","src":"17195:8:5"}],"id":5816,"name":"ExpressionStatement","src":"17195:8:5"}],"id":5817,"name":"Block","src":"16986:236:5"}],"id":5818,"name":"ForStatement","src":"16937:285:5"}],"id":5819,"name":"Block","src":"16770:466:5"}],"id":5820,"name":"IfStatement","src":"16116:1120:5"}],"id":5821,"name":"Block","src":"16102:1144:5"}],"id":5822,"name":"IfStatement","src":"16076:1170:5"},{"attributes":{"functionReturnParameters":5719},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5711,"type":"uint256","value":"selfptr"},"id":5823,"name":"Identifier","src":"17262:7:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5709,"type":"uint256","value":"selflen"},"id":5824,"name":"Identifier","src":"17272:7:5"}],"id":5825,"name":"BinaryOperation","src":"17262:17:5"}],"id":5826,"name":"Return","src":"17255:24:5"}],"id":5827,"name":"Block","src":"16019:1267:5"}],"id":5828,"name":"FunctionDefinition","src":"15914:1372:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"rfindPtr","payable":false,"scope":6442,"stateMutability":"pure","superFunction":null,"visibility":"private"},"children":[{"children":[{"attributes":{"constant":false,"name":"selflen","scope":5945,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5829,"name":"ElementaryTypeName","src":"17457:4:5"}],"id":5830,"name":"VariableDeclaration","src":"17457:12:5"},{"attributes":{"constant":false,"name":"selfptr","scope":5945,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5831,"name":"ElementaryTypeName","src":"17471:4:5"}],"id":5832,"name":"VariableDeclaration","src":"17471:12:5"},{"attributes":{"constant":false,"name":"needlelen","scope":5945,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5833,"name":"ElementaryTypeName","src":"17485:4:5"}],"id":5834,"name":"VariableDeclaration","src":"17485:14:5"},{"attributes":{"constant":false,"name":"needleptr","scope":5945,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5835,"name":"ElementaryTypeName","src":"17501:4:5"}],"id":5836,"name":"VariableDeclaration","src":"17501:14:5"}],"id":5837,"name":"ParameterList","src":"17456:60:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":5945,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5838,"name":"ElementaryTypeName","src":"17539:4:5"}],"id":5839,"name":"VariableDeclaration","src":"17539:4:5"}],"id":5840,"name":"ParameterList","src":"17538:6:5"},{"children":[{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"ptr","scope":5945,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5841,"name":"ElementaryTypeName","src":"17555:4:5"}],"id":5842,"name":"VariableDeclaration","src":"17555:8:5"}],"id":5843,"name":"VariableDeclarationStatement","src":"17555:8:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5834,"type":"uint256","value":"needlelen"},"id":5844,"name":"Identifier","src":"17578:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5830,"type":"uint256","value":"selflen"},"id":5845,"name":"Identifier","src":"17591:7:5"}],"id":5846,"name":"BinaryOperation","src":"17578:20:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5834,"type":"uint256","value":"needlelen"},"id":5847,"name":"Identifier","src":"17618:9:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":5848,"name":"Literal","src":"17631:2:5"}],"id":5849,"name":"BinaryOperation","src":"17618:15:5"},{"children":[{"attributes":{"assignments":[5851]},"children":[{"attributes":{"constant":false,"name":"mask","scope":5945,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":5850,"name":"ElementaryTypeName","src":"17653:7:5"}],"id":5851,"name":"VariableDeclaration","src":"17653:12:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes32)","value":"bytes32"},"id":5852,"name":"ElementaryTypeNameExpression","src":"17668:7:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"~","prefix":true,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"**","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":5853,"name":"Literal","src":"17678:1:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"38","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 8","value":"8"},"id":5854,"name":"Literal","src":"17684:1:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":5855,"name":"Literal","src":"17689:2:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5834,"type":"uint256","value":"needlelen"},"id":5856,"name":"Identifier","src":"17694:9:5"}],"id":5857,"name":"BinaryOperation","src":"17689:14:5"}],"id":5858,"name":"TupleExpression","src":"17688:16:5"}],"id":5859,"name":"BinaryOperation","src":"17684:20:5"}],"id":5860,"name":"TupleExpression","src":"17683:22:5"}],"id":5861,"name":"BinaryOperation","src":"17678:27:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":5862,"name":"Literal","src":"17708:1:5"}],"id":5863,"name":"BinaryOperation","src":"17678:31:5"}],"id":5864,"name":"TupleExpression","src":"17677:33:5"}],"id":5865,"name":"UnaryOperation","src":"17676:34:5"}],"id":5866,"name":"FunctionCall","src":"17668:43:5"}],"id":5867,"name":"VariableDeclarationStatement","src":"17653:58:5"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"needledata","scope":5945,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":5868,"name":"ElementaryTypeName","src":"17730:7:5"}],"id":5869,"name":"VariableDeclaration","src":"17730:18:5"}],"id":5870,"name":"VariableDeclarationStatement","src":"17730:18:5"},{"attributes":{"externalReferences":[{"needleptr":{"declaration":5836,"isOffset":false,"isSlot":false,"src":"17801:9:5","valueSize":1}},{"needledata":{"declaration":5869,"isOffset":false,"isSlot":false,"src":"17777:10:5","valueSize":1}},{"mask":{"declaration":5851,"isOffset":false,"isSlot":false,"src":"17813:4:5","valueSize":1}}],"operations":"{\n needledata := and(mload(needleptr), mask)\n}"},"children":[],"id":5871,"name":"InlineAssembly","src":"17766:75:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5842,"type":"uint256","value":"ptr"},"id":5872,"name":"Identifier","src":"17838:3:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5832,"type":"uint256","value":"selfptr"},"id":5873,"name":"Identifier","src":"17844:7:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5830,"type":"uint256","value":"selflen"},"id":5874,"name":"Identifier","src":"17854:7:5"}],"id":5875,"name":"BinaryOperation","src":"17844:17:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5834,"type":"uint256","value":"needlelen"},"id":5876,"name":"Identifier","src":"17864:9:5"}],"id":5877,"name":"BinaryOperation","src":"17844:29:5"}],"id":5878,"name":"Assignment","src":"17838:35:5"}],"id":5879,"name":"ExpressionStatement","src":"17838:35:5"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"ptrdata","scope":5945,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":5880,"name":"ElementaryTypeName","src":"17891:7:5"}],"id":5881,"name":"VariableDeclaration","src":"17891:15:5"}],"id":5882,"name":"VariableDeclarationStatement","src":"17891:15:5"},{"attributes":{"externalReferences":[{"ptr":{"declaration":5842,"isOffset":false,"isSlot":false,"src":"17956:3:5","valueSize":1}},{"ptrdata":{"declaration":5881,"isOffset":false,"isSlot":false,"src":"17935:7:5","valueSize":1}},{"mask":{"declaration":5851,"isOffset":false,"isSlot":false,"src":"17962:4:5","valueSize":1}}],"operations":"{\n ptrdata := and(mload(ptr), mask)\n}"},"children":[],"id":5883,"name":"InlineAssembly","src":"17924:68:5"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5881,"type":"bytes32","value":"ptrdata"},"id":5884,"name":"Identifier","src":"17994:7:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5869,"type":"bytes32","value":"needledata"},"id":5885,"name":"Identifier","src":"18005:10:5"}],"id":5886,"name":"BinaryOperation","src":"17994:21:5"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5842,"type":"uint256","value":"ptr"},"id":5887,"name":"Identifier","src":"18043:3:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5832,"type":"uint256","value":"selfptr"},"id":5888,"name":"Identifier","src":"18050:7:5"}],"id":5889,"name":"BinaryOperation","src":"18043:14:5"},{"attributes":{"functionReturnParameters":5840},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5832,"type":"uint256","value":"selfptr"},"id":5890,"name":"Identifier","src":"18090:7:5"}],"id":5891,"name":"Return","src":"18083:14:5"}],"id":5892,"name":"IfStatement","src":"18039:58:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"--","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5842,"type":"uint256","value":"ptr"},"id":5893,"name":"Identifier","src":"18119:3:5"}],"id":5894,"name":"UnaryOperation","src":"18119:5:5"}],"id":5895,"name":"ExpressionStatement","src":"18119:5:5"},{"attributes":{"externalReferences":[{"ptr":{"declaration":5842,"isOffset":false,"isSlot":false,"src":"18178:3:5","valueSize":1}},{"ptrdata":{"declaration":5881,"isOffset":false,"isSlot":false,"src":"18157:7:5","valueSize":1}},{"mask":{"declaration":5851,"isOffset":false,"isSlot":false,"src":"18184:4:5","valueSize":1}}],"operations":"{\n ptrdata := and(mload(ptr), mask)\n}"},"children":[],"id":5896,"name":"InlineAssembly","src":"18146:63:5"}],"id":5897,"name":"Block","src":"18017:192:5"}],"id":5898,"name":"WhileStatement","src":"17987:222:5"},{"attributes":{"functionReturnParameters":5840},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5842,"type":"uint256","value":"ptr"},"id":5899,"name":"Identifier","src":"18233:3:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5834,"type":"uint256","value":"needlelen"},"id":5900,"name":"Identifier","src":"18239:9:5"}],"id":5901,"name":"BinaryOperation","src":"18233:15:5"}],"id":5902,"name":"Return","src":"18226:22:5"}],"id":5903,"name":"Block","src":"17635:628:5"},{"children":[{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"hash","scope":5945,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":5904,"name":"ElementaryTypeName","src":"18336:7:5"}],"id":5905,"name":"VariableDeclaration","src":"18336:12:5"}],"id":5906,"name":"VariableDeclarationStatement","src":"18336:12:5"},{"attributes":{"externalReferences":[{"hash":{"declaration":5905,"isOffset":false,"isSlot":false,"src":"18377:4:5","valueSize":1}},{"needleptr":{"declaration":5836,"isOffset":false,"isSlot":false,"src":"18395:9:5","valueSize":1}},{"needlelen":{"declaration":5834,"isOffset":false,"isSlot":false,"src":"18406:9:5","valueSize":1}}],"operations":"{\n hash := keccak256(needleptr, needlelen)\n}"},"children":[],"id":5907,"name":"InlineAssembly","src":"18366:72:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5842,"type":"uint256","value":"ptr"},"id":5908,"name":"Identifier","src":"18435:3:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5832,"type":"uint256","value":"selfptr"},"id":5909,"name":"Identifier","src":"18441:7:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5830,"type":"uint256","value":"selflen"},"id":5910,"name":"Identifier","src":"18452:7:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5834,"type":"uint256","value":"needlelen"},"id":5911,"name":"Identifier","src":"18462:9:5"}],"id":5912,"name":"BinaryOperation","src":"18452:19:5"}],"id":5913,"name":"TupleExpression","src":"18451:21:5"}],"id":5914,"name":"BinaryOperation","src":"18441:31:5"}],"id":5915,"name":"Assignment","src":"18435:37:5"}],"id":5916,"name":"ExpressionStatement","src":"18435:37:5"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5842,"type":"uint256","value":"ptr"},"id":5917,"name":"Identifier","src":"18497:3:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5832,"type":"uint256","value":"selfptr"},"id":5918,"name":"Identifier","src":"18504:7:5"}],"id":5919,"name":"BinaryOperation","src":"18497:14:5"},{"children":[{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"testHash","scope":5945,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":5920,"name":"ElementaryTypeName","src":"18535:7:5"}],"id":5921,"name":"VariableDeclaration","src":"18535:16:5"}],"id":5922,"name":"VariableDeclarationStatement","src":"18535:16:5"},{"attributes":{"externalReferences":[{"testHash":{"declaration":5921,"isOffset":false,"isSlot":false,"src":"18584:8:5","valueSize":1}},{"ptr":{"declaration":5842,"isOffset":false,"isSlot":false,"src":"18606:3:5","valueSize":1}},{"needlelen":{"declaration":5834,"isOffset":false,"isSlot":false,"src":"18611:9:5","valueSize":1}}],"operations":"{\n testHash := keccak256(ptr, needlelen)\n}"},"children":[],"id":5923,"name":"InlineAssembly","src":"18573:73:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5905,"type":"bytes32","value":"hash"},"id":5924,"name":"Identifier","src":"18648:4:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5921,"type":"bytes32","value":"testHash"},"id":5925,"name":"Identifier","src":"18656:8:5"}],"id":5926,"name":"BinaryOperation","src":"18648:16:5"},{"attributes":{"functionReturnParameters":5840},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5842,"type":"uint256","value":"ptr"},"id":5927,"name":"Identifier","src":"18697:3:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5834,"type":"uint256","value":"needlelen"},"id":5928,"name":"Identifier","src":"18703:9:5"}],"id":5929,"name":"BinaryOperation","src":"18697:15:5"}],"id":5930,"name":"Return","src":"18690:22:5"}],"id":5931,"name":"IfStatement","src":"18644:68:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5842,"type":"uint256","value":"ptr"},"id":5932,"name":"Identifier","src":"18734:3:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":5933,"name":"Literal","src":"18741:1:5"}],"id":5934,"name":"Assignment","src":"18734:8:5"}],"id":5935,"name":"ExpressionStatement","src":"18734:8:5"}],"id":5936,"name":"Block","src":"18513:248:5"}],"id":5937,"name":"WhileStatement","src":"18490:271:5"}],"id":5938,"name":"Block","src":"18269:506:5"}],"id":5939,"name":"IfStatement","src":"17614:1161:5"}],"id":5940,"name":"Block","src":"17600:1185:5"}],"id":5941,"name":"IfStatement","src":"17574:1211:5"},{"attributes":{"functionReturnParameters":5840},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5832,"type":"uint256","value":"selfptr"},"id":5942,"name":"Identifier","src":"18801:7:5"}],"id":5943,"name":"Return","src":"18794:14:5"}],"id":5944,"name":"Block","src":"17545:1270:5"}],"id":5945,"name":"FunctionDefinition","src":"17439:1376:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"find","payable":false,"scope":6442,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":5985,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4754,"type":"struct strings.slice"},"id":5946,"name":"UserDefinedTypeName","src":"19165:5:5"}],"id":5947,"name":"VariableDeclaration","src":"19165:17:5"},{"attributes":{"constant":false,"name":"needle","scope":5985,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4754,"type":"struct strings.slice"},"id":5948,"name":"UserDefinedTypeName","src":"19184:5:5"}],"id":5949,"name":"VariableDeclaration","src":"19184:19:5"}],"id":5950,"name":"ParameterList","src":"19164:40:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":5985,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4754,"type":"struct strings.slice"},"id":5951,"name":"UserDefinedTypeName","src":"19228:5:5"}],"id":5952,"name":"VariableDeclaration","src":"19228:5:5"}],"id":5953,"name":"ParameterList","src":"19227:14:5"},{"children":[{"attributes":{"assignments":[5955]},"children":[{"attributes":{"constant":false,"name":"ptr","scope":5985,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5954,"name":"ElementaryTypeName","src":"19252:4:5"}],"id":5955,"name":"VariableDeclaration","src":"19252:8:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":5828,"type":"function (uint256,uint256,uint256,uint256) pure returns (uint256)","value":"findPtr"},"id":5956,"name":"Identifier","src":"19263:7:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4751,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5947,"type":"struct strings.slice memory","value":"self"},"id":5957,"name":"Identifier","src":"19271:4:5"}],"id":5958,"name":"MemberAccess","src":"19271:9:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":4753,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5947,"type":"struct strings.slice memory","value":"self"},"id":5959,"name":"Identifier","src":"19282:4:5"}],"id":5960,"name":"MemberAccess","src":"19282:9:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4751,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5949,"type":"struct strings.slice memory","value":"needle"},"id":5961,"name":"Identifier","src":"19293:6:5"}],"id":5962,"name":"MemberAccess","src":"19293:11:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":4753,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5949,"type":"struct strings.slice memory","value":"needle"},"id":5963,"name":"Identifier","src":"19306:6:5"}],"id":5964,"name":"MemberAccess","src":"19306:11:5"}],"id":5965,"name":"FunctionCall","src":"19263:55:5"}],"id":5966,"name":"VariableDeclarationStatement","src":"19252:66:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":4751,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5947,"type":"struct strings.slice memory","value":"self"},"id":5967,"name":"Identifier","src":"19328:4:5"}],"id":5969,"name":"MemberAccess","src":"19328:9:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5955,"type":"uint256","value":"ptr"},"id":5970,"name":"Identifier","src":"19341:3:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":4753,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5947,"type":"struct strings.slice memory","value":"self"},"id":5971,"name":"Identifier","src":"19347:4:5"}],"id":5972,"name":"MemberAccess","src":"19347:9:5"}],"id":5973,"name":"BinaryOperation","src":"19341:15:5"}],"id":5974,"name":"Assignment","src":"19328:28:5"}],"id":5975,"name":"ExpressionStatement","src":"19328:28:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_ptr","referencedDeclaration":4753,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5947,"type":"struct strings.slice memory","value":"self"},"id":5976,"name":"Identifier","src":"19366:4:5"}],"id":5978,"name":"MemberAccess","src":"19366:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5955,"type":"uint256","value":"ptr"},"id":5979,"name":"Identifier","src":"19378:3:5"}],"id":5980,"name":"Assignment","src":"19366:15:5"}],"id":5981,"name":"ExpressionStatement","src":"19366:15:5"},{"attributes":{"functionReturnParameters":5953},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5947,"type":"struct strings.slice memory","value":"self"},"id":5982,"name":"Identifier","src":"19398:4:5"}],"id":5983,"name":"Return","src":"19391:11:5"}],"id":5984,"name":"Block","src":"19242:167:5"}],"id":5985,"name":"FunctionDefinition","src":"19151:258:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"rfind","payable":false,"scope":6442,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":6019,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4754,"type":"struct strings.slice"},"id":5986,"name":"UserDefinedTypeName","src":"19783:5:5"}],"id":5987,"name":"VariableDeclaration","src":"19783:17:5"},{"attributes":{"constant":false,"name":"needle","scope":6019,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4754,"type":"struct strings.slice"},"id":5988,"name":"UserDefinedTypeName","src":"19802:5:5"}],"id":5989,"name":"VariableDeclaration","src":"19802:19:5"}],"id":5990,"name":"ParameterList","src":"19782:40:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":6019,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4754,"type":"struct strings.slice"},"id":5991,"name":"UserDefinedTypeName","src":"19846:5:5"}],"id":5992,"name":"VariableDeclaration","src":"19846:5:5"}],"id":5993,"name":"ParameterList","src":"19845:14:5"},{"children":[{"attributes":{"assignments":[5995]},"children":[{"attributes":{"constant":false,"name":"ptr","scope":6019,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5994,"name":"ElementaryTypeName","src":"19870:4:5"}],"id":5995,"name":"VariableDeclaration","src":"19870:8:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":5945,"type":"function (uint256,uint256,uint256,uint256) pure returns (uint256)","value":"rfindPtr"},"id":5996,"name":"Identifier","src":"19881:8:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4751,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5987,"type":"struct strings.slice memory","value":"self"},"id":5997,"name":"Identifier","src":"19890:4:5"}],"id":5998,"name":"MemberAccess","src":"19890:9:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":4753,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5987,"type":"struct strings.slice memory","value":"self"},"id":5999,"name":"Identifier","src":"19901:4:5"}],"id":6000,"name":"MemberAccess","src":"19901:9:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4751,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5989,"type":"struct strings.slice memory","value":"needle"},"id":6001,"name":"Identifier","src":"19912:6:5"}],"id":6002,"name":"MemberAccess","src":"19912:11:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":4753,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5989,"type":"struct strings.slice memory","value":"needle"},"id":6003,"name":"Identifier","src":"19925:6:5"}],"id":6004,"name":"MemberAccess","src":"19925:11:5"}],"id":6005,"name":"FunctionCall","src":"19881:56:5"}],"id":6006,"name":"VariableDeclarationStatement","src":"19870:67:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":4751,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5987,"type":"struct strings.slice memory","value":"self"},"id":6007,"name":"Identifier","src":"19947:4:5"}],"id":6009,"name":"MemberAccess","src":"19947:9:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5995,"type":"uint256","value":"ptr"},"id":6010,"name":"Identifier","src":"19959:3:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":4753,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5987,"type":"struct strings.slice memory","value":"self"},"id":6011,"name":"Identifier","src":"19965:4:5"}],"id":6012,"name":"MemberAccess","src":"19965:9:5"}],"id":6013,"name":"BinaryOperation","src":"19959:15:5"}],"id":6014,"name":"Assignment","src":"19947:27:5"}],"id":6015,"name":"ExpressionStatement","src":"19947:27:5"},{"attributes":{"functionReturnParameters":5993},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5987,"type":"struct strings.slice memory","value":"self"},"id":6016,"name":"Identifier","src":"19991:4:5"}],"id":6017,"name":"Return","src":"19984:11:5"}],"id":6018,"name":"Block","src":"19860:142:5"}],"id":6019,"name":"FunctionDefinition","src":"19768:234:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"split","payable":false,"scope":6442,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":6097,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4754,"type":"struct strings.slice"},"id":6020,"name":"UserDefinedTypeName","src":"20523:5:5"}],"id":6021,"name":"VariableDeclaration","src":"20523:17:5"},{"attributes":{"constant":false,"name":"needle","scope":6097,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4754,"type":"struct strings.slice"},"id":6022,"name":"UserDefinedTypeName","src":"20542:5:5"}],"id":6023,"name":"VariableDeclaration","src":"20542:19:5"},{"attributes":{"constant":false,"name":"token","scope":6097,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4754,"type":"struct strings.slice"},"id":6024,"name":"UserDefinedTypeName","src":"20563:5:5"}],"id":6025,"name":"VariableDeclaration","src":"20563:18:5"}],"id":6026,"name":"ParameterList","src":"20522:60:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":6097,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4754,"type":"struct strings.slice"},"id":6027,"name":"UserDefinedTypeName","src":"20606:5:5"}],"id":6028,"name":"VariableDeclaration","src":"20606:5:5"}],"id":6029,"name":"ParameterList","src":"20605:14:5"},{"children":[{"attributes":{"assignments":[6031]},"children":[{"attributes":{"constant":false,"name":"ptr","scope":6097,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":6030,"name":"ElementaryTypeName","src":"20630:4:5"}],"id":6031,"name":"VariableDeclaration","src":"20630:8:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":5828,"type":"function (uint256,uint256,uint256,uint256) pure returns (uint256)","value":"findPtr"},"id":6032,"name":"Identifier","src":"20641:7:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4751,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6021,"type":"struct strings.slice memory","value":"self"},"id":6033,"name":"Identifier","src":"20649:4:5"}],"id":6034,"name":"MemberAccess","src":"20649:9:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":4753,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6021,"type":"struct strings.slice memory","value":"self"},"id":6035,"name":"Identifier","src":"20660:4:5"}],"id":6036,"name":"MemberAccess","src":"20660:9:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4751,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6023,"type":"struct strings.slice memory","value":"needle"},"id":6037,"name":"Identifier","src":"20671:6:5"}],"id":6038,"name":"MemberAccess","src":"20671:11:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":4753,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6023,"type":"struct strings.slice memory","value":"needle"},"id":6039,"name":"Identifier","src":"20684:6:5"}],"id":6040,"name":"MemberAccess","src":"20684:11:5"}],"id":6041,"name":"FunctionCall","src":"20641:55:5"}],"id":6042,"name":"VariableDeclarationStatement","src":"20630:66:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_ptr","referencedDeclaration":4753,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6025,"type":"struct strings.slice memory","value":"token"},"id":6043,"name":"Identifier","src":"20706:5:5"}],"id":6045,"name":"MemberAccess","src":"20706:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":4753,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6021,"type":"struct strings.slice memory","value":"self"},"id":6046,"name":"Identifier","src":"20719:4:5"}],"id":6047,"name":"MemberAccess","src":"20719:9:5"}],"id":6048,"name":"Assignment","src":"20706:22:5"}],"id":6049,"name":"ExpressionStatement","src":"20706:22:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":4751,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6025,"type":"struct strings.slice memory","value":"token"},"id":6050,"name":"Identifier","src":"20738:5:5"}],"id":6052,"name":"MemberAccess","src":"20738:10:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6031,"type":"uint256","value":"ptr"},"id":6053,"name":"Identifier","src":"20751:3:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":4753,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6021,"type":"struct strings.slice memory","value":"self"},"id":6054,"name":"Identifier","src":"20757:4:5"}],"id":6055,"name":"MemberAccess","src":"20757:9:5"}],"id":6056,"name":"BinaryOperation","src":"20751:15:5"}],"id":6057,"name":"Assignment","src":"20738:28:5"}],"id":6058,"name":"ExpressionStatement","src":"20738:28:5"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6031,"type":"uint256","value":"ptr"},"id":6059,"name":"Identifier","src":"20780:3:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":4753,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6021,"type":"struct strings.slice memory","value":"self"},"id":6060,"name":"Identifier","src":"20787:4:5"}],"id":6061,"name":"MemberAccess","src":"20787:9:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4751,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6021,"type":"struct strings.slice memory","value":"self"},"id":6062,"name":"Identifier","src":"20799:4:5"}],"id":6063,"name":"MemberAccess","src":"20799:9:5"}],"id":6064,"name":"BinaryOperation","src":"20787:21:5"}],"id":6065,"name":"BinaryOperation","src":"20780:28:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":4751,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6021,"type":"struct strings.slice memory","value":"self"},"id":6066,"name":"Identifier","src":"20849:4:5"}],"id":6068,"name":"MemberAccess","src":"20849:9:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":6069,"name":"Literal","src":"20861:1:5"}],"id":6070,"name":"Assignment","src":"20849:13:5"}],"id":6071,"name":"ExpressionStatement","src":"20849:13:5"}],"id":6072,"name":"Block","src":"20810:63:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":4751,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6021,"type":"struct strings.slice memory","value":"self"},"id":6073,"name":"Identifier","src":"20893:4:5"}],"id":6075,"name":"MemberAccess","src":"20893:9:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4751,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6025,"type":"struct strings.slice memory","value":"token"},"id":6076,"name":"Identifier","src":"20906:5:5"}],"id":6077,"name":"MemberAccess","src":"20906:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4751,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6023,"type":"struct strings.slice memory","value":"needle"},"id":6078,"name":"Identifier","src":"20919:6:5"}],"id":6079,"name":"MemberAccess","src":"20919:11:5"}],"id":6080,"name":"BinaryOperation","src":"20906:24:5"}],"id":6081,"name":"Assignment","src":"20893:37:5"}],"id":6082,"name":"ExpressionStatement","src":"20893:37:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_ptr","referencedDeclaration":4753,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6021,"type":"struct strings.slice memory","value":"self"},"id":6083,"name":"Identifier","src":"20944:4:5"}],"id":6085,"name":"MemberAccess","src":"20944:9:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6031,"type":"uint256","value":"ptr"},"id":6086,"name":"Identifier","src":"20956:3:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4751,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6023,"type":"struct strings.slice memory","value":"needle"},"id":6087,"name":"Identifier","src":"20962:6:5"}],"id":6088,"name":"MemberAccess","src":"20962:11:5"}],"id":6089,"name":"BinaryOperation","src":"20956:17:5"}],"id":6090,"name":"Assignment","src":"20944:29:5"}],"id":6091,"name":"ExpressionStatement","src":"20944:29:5"}],"id":6092,"name":"Block","src":"20879:105:5"}],"id":6093,"name":"IfStatement","src":"20776:208:5"},{"attributes":{"functionReturnParameters":6029},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6025,"type":"struct strings.slice memory","value":"token"},"id":6094,"name":"Identifier","src":"21000:5:5"}],"id":6095,"name":"Return","src":"20993:12:5"}],"id":6096,"name":"Block","src":"20620:392:5"}],"id":6097,"name":"FunctionDefinition","src":"20508:504:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"split","payable":false,"scope":6442,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":6113,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4754,"type":"struct strings.slice"},"id":6098,"name":"UserDefinedTypeName","src":"21498:5:5"}],"id":6099,"name":"VariableDeclaration","src":"21498:17:5"},{"attributes":{"constant":false,"name":"needle","scope":6113,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4754,"type":"struct strings.slice"},"id":6100,"name":"UserDefinedTypeName","src":"21517:5:5"}],"id":6101,"name":"VariableDeclaration","src":"21517:19:5"}],"id":6102,"name":"ParameterList","src":"21497:40:5"},{"children":[{"attributes":{"constant":false,"name":"token","scope":6113,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4754,"type":"struct strings.slice"},"id":6103,"name":"UserDefinedTypeName","src":"21561:5:5"}],"id":6104,"name":"VariableDeclaration","src":"21561:18:5"}],"id":6105,"name":"ParameterList","src":"21560:20:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"struct strings.slice memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$4754_memory_ptr","typeString":"struct strings.slice memory"},{"typeIdentifier":"t_struct$_slice_$4754_memory_ptr","typeString":"struct strings.slice memory"},{"typeIdentifier":"t_struct$_slice_$4754_memory_ptr","typeString":"struct strings.slice memory"}],"overloadedDeclarations":[6097,6113],"referencedDeclaration":6097,"type":"function (struct strings.slice memory,struct strings.slice memory,struct strings.slice memory) pure returns (struct strings.slice memory)","value":"split"},"id":6106,"name":"Identifier","src":"21591:5:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6099,"type":"struct strings.slice memory","value":"self"},"id":6107,"name":"Identifier","src":"21597:4:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6101,"type":"struct strings.slice memory","value":"needle"},"id":6108,"name":"Identifier","src":"21603:6:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6104,"type":"struct strings.slice memory","value":"token"},"id":6109,"name":"Identifier","src":"21611:5:5"}],"id":6110,"name":"FunctionCall","src":"21591:26:5"}],"id":6111,"name":"ExpressionStatement","src":"21591:26:5"}],"id":6112,"name":"Block","src":"21581:43:5"}],"id":6113,"name":"FunctionDefinition","src":"21483:141:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"rsplit","payable":false,"scope":6442,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":6182,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4754,"type":"struct strings.slice"},"id":6114,"name":"UserDefinedTypeName","src":"22145:5:5"}],"id":6115,"name":"VariableDeclaration","src":"22145:17:5"},{"attributes":{"constant":false,"name":"needle","scope":6182,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4754,"type":"struct strings.slice"},"id":6116,"name":"UserDefinedTypeName","src":"22164:5:5"}],"id":6117,"name":"VariableDeclaration","src":"22164:19:5"},{"attributes":{"constant":false,"name":"token","scope":6182,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4754,"type":"struct strings.slice"},"id":6118,"name":"UserDefinedTypeName","src":"22185:5:5"}],"id":6119,"name":"VariableDeclaration","src":"22185:18:5"}],"id":6120,"name":"ParameterList","src":"22144:60:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":6182,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4754,"type":"struct strings.slice"},"id":6121,"name":"UserDefinedTypeName","src":"22228:5:5"}],"id":6122,"name":"VariableDeclaration","src":"22228:5:5"}],"id":6123,"name":"ParameterList","src":"22227:14:5"},{"children":[{"attributes":{"assignments":[6125]},"children":[{"attributes":{"constant":false,"name":"ptr","scope":6182,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":6124,"name":"ElementaryTypeName","src":"22252:4:5"}],"id":6125,"name":"VariableDeclaration","src":"22252:8:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":5945,"type":"function (uint256,uint256,uint256,uint256) pure returns (uint256)","value":"rfindPtr"},"id":6126,"name":"Identifier","src":"22263:8:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4751,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6115,"type":"struct strings.slice memory","value":"self"},"id":6127,"name":"Identifier","src":"22272:4:5"}],"id":6128,"name":"MemberAccess","src":"22272:9:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":4753,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6115,"type":"struct strings.slice memory","value":"self"},"id":6129,"name":"Identifier","src":"22283:4:5"}],"id":6130,"name":"MemberAccess","src":"22283:9:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4751,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6117,"type":"struct strings.slice memory","value":"needle"},"id":6131,"name":"Identifier","src":"22294:6:5"}],"id":6132,"name":"MemberAccess","src":"22294:11:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":4753,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6117,"type":"struct strings.slice memory","value":"needle"},"id":6133,"name":"Identifier","src":"22307:6:5"}],"id":6134,"name":"MemberAccess","src":"22307:11:5"}],"id":6135,"name":"FunctionCall","src":"22263:56:5"}],"id":6136,"name":"VariableDeclarationStatement","src":"22252:67:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_ptr","referencedDeclaration":4753,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6119,"type":"struct strings.slice memory","value":"token"},"id":6137,"name":"Identifier","src":"22329:5:5"}],"id":6139,"name":"MemberAccess","src":"22329:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6125,"type":"uint256","value":"ptr"},"id":6140,"name":"Identifier","src":"22342:3:5"}],"id":6141,"name":"Assignment","src":"22329:16:5"}],"id":6142,"name":"ExpressionStatement","src":"22329:16:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":4751,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6119,"type":"struct strings.slice memory","value":"token"},"id":6143,"name":"Identifier","src":"22355:5:5"}],"id":6145,"name":"MemberAccess","src":"22355:10:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4751,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6115,"type":"struct strings.slice memory","value":"self"},"id":6146,"name":"Identifier","src":"22368:4:5"}],"id":6147,"name":"MemberAccess","src":"22368:9:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6125,"type":"uint256","value":"ptr"},"id":6148,"name":"Identifier","src":"22381:3:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":4753,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6115,"type":"struct strings.slice memory","value":"self"},"id":6149,"name":"Identifier","src":"22387:4:5"}],"id":6150,"name":"MemberAccess","src":"22387:9:5"}],"id":6151,"name":"BinaryOperation","src":"22381:15:5"}],"id":6152,"name":"TupleExpression","src":"22380:17:5"}],"id":6153,"name":"BinaryOperation","src":"22368:29:5"}],"id":6154,"name":"Assignment","src":"22355:42:5"}],"id":6155,"name":"ExpressionStatement","src":"22355:42:5"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6125,"type":"uint256","value":"ptr"},"id":6156,"name":"Identifier","src":"22411:3:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":4753,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6115,"type":"struct strings.slice memory","value":"self"},"id":6157,"name":"Identifier","src":"22418:4:5"}],"id":6158,"name":"MemberAccess","src":"22418:9:5"}],"id":6159,"name":"BinaryOperation","src":"22411:16:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":4751,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6115,"type":"struct strings.slice memory","value":"self"},"id":6160,"name":"Identifier","src":"22468:4:5"}],"id":6162,"name":"MemberAccess","src":"22468:9:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":6163,"name":"Literal","src":"22480:1:5"}],"id":6164,"name":"Assignment","src":"22468:13:5"}],"id":6165,"name":"ExpressionStatement","src":"22468:13:5"}],"id":6166,"name":"Block","src":"22429:63:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":4751,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6115,"type":"struct strings.slice memory","value":"self"},"id":6167,"name":"Identifier","src":"22512:4:5"}],"id":6169,"name":"MemberAccess","src":"22512:9:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4751,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6119,"type":"struct strings.slice memory","value":"token"},"id":6170,"name":"Identifier","src":"22525:5:5"}],"id":6171,"name":"MemberAccess","src":"22525:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4751,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6117,"type":"struct strings.slice memory","value":"needle"},"id":6172,"name":"Identifier","src":"22538:6:5"}],"id":6173,"name":"MemberAccess","src":"22538:11:5"}],"id":6174,"name":"BinaryOperation","src":"22525:24:5"}],"id":6175,"name":"Assignment","src":"22512:37:5"}],"id":6176,"name":"ExpressionStatement","src":"22512:37:5"}],"id":6177,"name":"Block","src":"22498:62:5"}],"id":6178,"name":"IfStatement","src":"22407:153:5"},{"attributes":{"functionReturnParameters":6123},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6119,"type":"struct strings.slice memory","value":"token"},"id":6179,"name":"Identifier","src":"22576:5:5"}],"id":6180,"name":"Return","src":"22569:12:5"}],"id":6181,"name":"Block","src":"22242:346:5"}],"id":6182,"name":"FunctionDefinition","src":"22129:459:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"rsplit","payable":false,"scope":6442,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":6198,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4754,"type":"struct strings.slice"},"id":6183,"name":"UserDefinedTypeName","src":"23073:5:5"}],"id":6184,"name":"VariableDeclaration","src":"23073:17:5"},{"attributes":{"constant":false,"name":"needle","scope":6198,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4754,"type":"struct strings.slice"},"id":6185,"name":"UserDefinedTypeName","src":"23092:5:5"}],"id":6186,"name":"VariableDeclaration","src":"23092:19:5"}],"id":6187,"name":"ParameterList","src":"23072:40:5"},{"children":[{"attributes":{"constant":false,"name":"token","scope":6198,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4754,"type":"struct strings.slice"},"id":6188,"name":"UserDefinedTypeName","src":"23136:5:5"}],"id":6189,"name":"VariableDeclaration","src":"23136:18:5"}],"id":6190,"name":"ParameterList","src":"23135:20:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"struct strings.slice memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$4754_memory_ptr","typeString":"struct strings.slice memory"},{"typeIdentifier":"t_struct$_slice_$4754_memory_ptr","typeString":"struct strings.slice memory"},{"typeIdentifier":"t_struct$_slice_$4754_memory_ptr","typeString":"struct strings.slice memory"}],"overloadedDeclarations":[6182,6198],"referencedDeclaration":6182,"type":"function (struct strings.slice memory,struct strings.slice memory,struct strings.slice memory) pure returns (struct strings.slice memory)","value":"rsplit"},"id":6191,"name":"Identifier","src":"23166:6:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6184,"type":"struct strings.slice memory","value":"self"},"id":6192,"name":"Identifier","src":"23173:4:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6186,"type":"struct strings.slice memory","value":"needle"},"id":6193,"name":"Identifier","src":"23179:6:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6189,"type":"struct strings.slice memory","value":"token"},"id":6194,"name":"Identifier","src":"23187:5:5"}],"id":6195,"name":"FunctionCall","src":"23166:27:5"}],"id":6196,"name":"ExpressionStatement","src":"23166:27:5"}],"id":6197,"name":"Block","src":"23156:44:5"}],"id":6198,"name":"FunctionDefinition","src":"23057:143:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"count","payable":false,"scope":6442,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":6257,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4754,"type":"struct strings.slice"},"id":6199,"name":"UserDefinedTypeName","src":"23484:5:5"}],"id":6200,"name":"VariableDeclaration","src":"23484:17:5"},{"attributes":{"constant":false,"name":"needle","scope":6257,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4754,"type":"struct strings.slice"},"id":6201,"name":"UserDefinedTypeName","src":"23503:5:5"}],"id":6202,"name":"VariableDeclaration","src":"23503:19:5"}],"id":6203,"name":"ParameterList","src":"23483:40:5"},{"children":[{"attributes":{"constant":false,"name":"cnt","scope":6257,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":6204,"name":"ElementaryTypeName","src":"23547:4:5"}],"id":6205,"name":"VariableDeclaration","src":"23547:8:5"}],"id":6206,"name":"ParameterList","src":"23546:10:5"},{"children":[{"attributes":{"assignments":[6208]},"children":[{"attributes":{"constant":false,"name":"ptr","scope":6257,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":6207,"name":"ElementaryTypeName","src":"23567:4:5"}],"id":6208,"name":"VariableDeclaration","src":"23567:8:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":5828,"type":"function (uint256,uint256,uint256,uint256) pure returns (uint256)","value":"findPtr"},"id":6209,"name":"Identifier","src":"23578:7:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4751,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6200,"type":"struct strings.slice memory","value":"self"},"id":6210,"name":"Identifier","src":"23586:4:5"}],"id":6211,"name":"MemberAccess","src":"23586:9:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":4753,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6200,"type":"struct strings.slice memory","value":"self"},"id":6212,"name":"Identifier","src":"23597:4:5"}],"id":6213,"name":"MemberAccess","src":"23597:9:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4751,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6202,"type":"struct strings.slice memory","value":"needle"},"id":6214,"name":"Identifier","src":"23608:6:5"}],"id":6215,"name":"MemberAccess","src":"23608:11:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":4753,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6202,"type":"struct strings.slice memory","value":"needle"},"id":6216,"name":"Identifier","src":"23621:6:5"}],"id":6217,"name":"MemberAccess","src":"23621:11:5"}],"id":6218,"name":"FunctionCall","src":"23578:55:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4751,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6202,"type":"struct strings.slice memory","value":"needle"},"id":6219,"name":"Identifier","src":"23636:6:5"}],"id":6220,"name":"MemberAccess","src":"23636:11:5"}],"id":6221,"name":"BinaryOperation","src":"23578:69:5"}],"id":6222,"name":"VariableDeclarationStatement","src":"23567:80:5"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6208,"type":"uint256","value":"ptr"},"id":6223,"name":"Identifier","src":"23664:3:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":4753,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6200,"type":"struct strings.slice memory","value":"self"},"id":6224,"name":"Identifier","src":"23671:4:5"}],"id":6225,"name":"MemberAccess","src":"23671:9:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4751,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6200,"type":"struct strings.slice memory","value":"self"},"id":6226,"name":"Identifier","src":"23683:4:5"}],"id":6227,"name":"MemberAccess","src":"23683:9:5"}],"id":6228,"name":"BinaryOperation","src":"23671:21:5"}],"id":6229,"name":"BinaryOperation","src":"23664:28:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6205,"type":"uint256","value":"cnt"},"id":6230,"name":"Identifier","src":"23708:3:5"}],"id":6231,"name":"UnaryOperation","src":"23708:5:5"}],"id":6232,"name":"ExpressionStatement","src":"23708:5:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6208,"type":"uint256","value":"ptr"},"id":6233,"name":"Identifier","src":"23727:3:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":5828,"type":"function (uint256,uint256,uint256,uint256) pure returns (uint256)","value":"findPtr"},"id":6234,"name":"Identifier","src":"23733:7:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4751,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6200,"type":"struct strings.slice memory","value":"self"},"id":6235,"name":"Identifier","src":"23741:4:5"}],"id":6236,"name":"MemberAccess","src":"23741:9:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6208,"type":"uint256","value":"ptr"},"id":6237,"name":"Identifier","src":"23754:3:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":4753,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6200,"type":"struct strings.slice memory","value":"self"},"id":6238,"name":"Identifier","src":"23760:4:5"}],"id":6239,"name":"MemberAccess","src":"23760:9:5"}],"id":6240,"name":"BinaryOperation","src":"23754:15:5"}],"id":6241,"name":"TupleExpression","src":"23753:17:5"}],"id":6242,"name":"BinaryOperation","src":"23741:29:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6208,"type":"uint256","value":"ptr"},"id":6243,"name":"Identifier","src":"23772:3:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4751,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6202,"type":"struct strings.slice memory","value":"needle"},"id":6244,"name":"Identifier","src":"23777:6:5"}],"id":6245,"name":"MemberAccess","src":"23777:11:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":4753,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6202,"type":"struct strings.slice memory","value":"needle"},"id":6246,"name":"Identifier","src":"23790:6:5"}],"id":6247,"name":"MemberAccess","src":"23790:11:5"}],"id":6248,"name":"FunctionCall","src":"23733:69:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4751,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6202,"type":"struct strings.slice memory","value":"needle"},"id":6249,"name":"Identifier","src":"23805:6:5"}],"id":6250,"name":"MemberAccess","src":"23805:11:5"}],"id":6251,"name":"BinaryOperation","src":"23733:83:5"}],"id":6252,"name":"Assignment","src":"23727:89:5"}],"id":6253,"name":"ExpressionStatement","src":"23727:89:5"}],"id":6254,"name":"Block","src":"23694:133:5"}],"id":6255,"name":"WhileStatement","src":"23657:170:5"}],"id":6256,"name":"Block","src":"23557:276:5"}],"id":6257,"name":"FunctionDefinition","src":"23469:364:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"contains","payable":false,"scope":6442,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":6281,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4754,"type":"struct strings.slice"},"id":6258,"name":"UserDefinedTypeName","src":"24090:5:5"}],"id":6259,"name":"VariableDeclaration","src":"24090:17:5"},{"attributes":{"constant":false,"name":"needle","scope":6281,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4754,"type":"struct strings.slice"},"id":6260,"name":"UserDefinedTypeName","src":"24109:5:5"}],"id":6261,"name":"VariableDeclaration","src":"24109:19:5"}],"id":6262,"name":"ParameterList","src":"24089:40:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":6281,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":6263,"name":"ElementaryTypeName","src":"24153:4:5"}],"id":6264,"name":"VariableDeclaration","src":"24153:4:5"}],"id":6265,"name":"ParameterList","src":"24152:6:5"},{"children":[{"attributes":{"functionReturnParameters":6265},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":5945,"type":"function (uint256,uint256,uint256,uint256) pure returns (uint256)","value":"rfindPtr"},"id":6266,"name":"Identifier","src":"24176:8:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4751,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6259,"type":"struct strings.slice memory","value":"self"},"id":6267,"name":"Identifier","src":"24185:4:5"}],"id":6268,"name":"MemberAccess","src":"24185:9:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":4753,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6259,"type":"struct strings.slice memory","value":"self"},"id":6269,"name":"Identifier","src":"24196:4:5"}],"id":6270,"name":"MemberAccess","src":"24196:9:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4751,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6261,"type":"struct strings.slice memory","value":"needle"},"id":6271,"name":"Identifier","src":"24207:6:5"}],"id":6272,"name":"MemberAccess","src":"24207:11:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":4753,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6261,"type":"struct strings.slice memory","value":"needle"},"id":6273,"name":"Identifier","src":"24220:6:5"}],"id":6274,"name":"MemberAccess","src":"24220:11:5"}],"id":6275,"name":"FunctionCall","src":"24176:56:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":4753,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6259,"type":"struct strings.slice memory","value":"self"},"id":6276,"name":"Identifier","src":"24236:4:5"}],"id":6277,"name":"MemberAccess","src":"24236:9:5"}],"id":6278,"name":"BinaryOperation","src":"24176:69:5"}],"id":6279,"name":"Return","src":"24169:76:5"}],"id":6280,"name":"Block","src":"24159:93:5"}],"id":6281,"name":"FunctionDefinition","src":"24072:180:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"concat","payable":false,"scope":6442,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":6327,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4754,"type":"struct strings.slice"},"id":6282,"name":"UserDefinedTypeName","src":"24555:5:5"}],"id":6283,"name":"VariableDeclaration","src":"24555:17:5"},{"attributes":{"constant":false,"name":"other","scope":6327,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4754,"type":"struct strings.slice"},"id":6284,"name":"UserDefinedTypeName","src":"24574:5:5"}],"id":6285,"name":"VariableDeclaration","src":"24574:18:5"}],"id":6286,"name":"ParameterList","src":"24554:39:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":6327,"stateVariable":false,"storageLocation":"memory","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":6287,"name":"ElementaryTypeName","src":"24617:6:5"}],"id":6288,"name":"VariableDeclaration","src":"24617:6:5"}],"id":6289,"name":"ParameterList","src":"24616:15:5"},{"children":[{"attributes":{"assignments":[6291]},"children":[{"attributes":{"constant":false,"name":"ret","scope":6327,"stateVariable":false,"storageLocation":"memory","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":6290,"name":"ElementaryTypeName","src":"24642:6:5"}],"id":6291,"name":"VariableDeclaration","src":"24642:17:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (string memory)"},"children":[{"attributes":{"name":"string","type":"string"},"id":6292,"name":"ElementaryTypeName","src":"24666:6:5"}],"id":6293,"name":"NewExpression","src":"24662:10:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4751,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6283,"type":"struct strings.slice memory","value":"self"},"id":6294,"name":"Identifier","src":"24673:4:5"}],"id":6295,"name":"MemberAccess","src":"24673:9:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4751,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6285,"type":"struct strings.slice memory","value":"other"},"id":6296,"name":"Identifier","src":"24685:5:5"}],"id":6297,"name":"MemberAccess","src":"24685:10:5"}],"id":6298,"name":"BinaryOperation","src":"24673:22:5"}],"id":6299,"name":"FunctionCall","src":"24662:34:5"}],"id":6300,"name":"VariableDeclarationStatement","src":"24642:54:5"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"retptr","scope":6327,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":6301,"name":"ElementaryTypeName","src":"24706:4:5"}],"id":6302,"name":"VariableDeclaration","src":"24706:11:5"}],"id":6303,"name":"VariableDeclarationStatement","src":"24706:11:5"},{"attributes":{"externalReferences":[{"retptr":{"declaration":6302,"isOffset":false,"isSlot":false,"src":"24738:6:5","valueSize":1}},{"ret":{"declaration":6291,"isOffset":false,"isSlot":false,"src":"24752:3:5","valueSize":1}}],"operations":"{\n retptr := add(ret, 32)\n}"},"children":[],"id":6304,"name":"InlineAssembly","src":"24727:50:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":4794,"type":"function (uint256,uint256,uint256) pure","value":"memcpy"},"id":6305,"name":"Identifier","src":"24771:6:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6302,"type":"uint256","value":"retptr"},"id":6306,"name":"Identifier","src":"24778:6:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":4753,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6283,"type":"struct strings.slice memory","value":"self"},"id":6307,"name":"Identifier","src":"24786:4:5"}],"id":6308,"name":"MemberAccess","src":"24786:9:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4751,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6283,"type":"struct strings.slice memory","value":"self"},"id":6309,"name":"Identifier","src":"24797:4:5"}],"id":6310,"name":"MemberAccess","src":"24797:9:5"}],"id":6311,"name":"FunctionCall","src":"24771:36:5"}],"id":6312,"name":"ExpressionStatement","src":"24771:36:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":4794,"type":"function (uint256,uint256,uint256) pure","value":"memcpy"},"id":6313,"name":"Identifier","src":"24817:6:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6302,"type":"uint256","value":"retptr"},"id":6314,"name":"Identifier","src":"24824:6:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4751,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6283,"type":"struct strings.slice memory","value":"self"},"id":6315,"name":"Identifier","src":"24833:4:5"}],"id":6316,"name":"MemberAccess","src":"24833:9:5"}],"id":6317,"name":"BinaryOperation","src":"24824:18:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":4753,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6285,"type":"struct strings.slice memory","value":"other"},"id":6318,"name":"Identifier","src":"24844:5:5"}],"id":6319,"name":"MemberAccess","src":"24844:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4751,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6285,"type":"struct strings.slice memory","value":"other"},"id":6320,"name":"Identifier","src":"24856:5:5"}],"id":6321,"name":"MemberAccess","src":"24856:10:5"}],"id":6322,"name":"FunctionCall","src":"24817:50:5"}],"id":6323,"name":"ExpressionStatement","src":"24817:50:5"},{"attributes":{"functionReturnParameters":6289},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6291,"type":"string memory","value":"ret"},"id":6324,"name":"Identifier","src":"24884:3:5"}],"id":6325,"name":"Return","src":"24877:10:5"}],"id":6326,"name":"Block","src":"24632:262:5"}],"id":6327,"name":"FunctionDefinition","src":"24539:355:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"join","payable":false,"scope":6442,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":6441,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4754,"type":"struct strings.slice"},"id":6328,"name":"UserDefinedTypeName","src":"25244:5:5"}],"id":6329,"name":"VariableDeclaration","src":"25244:17:5"},{"attributes":{"constant":false,"name":"parts","scope":6441,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"struct strings.slice[]"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4754,"type":"struct strings.slice"},"id":6330,"name":"UserDefinedTypeName","src":"25263:5:5"}],"id":6331,"name":"ArrayTypeName","src":"25263:7:5"}],"id":6332,"name":"VariableDeclaration","src":"25263:20:5"}],"id":6333,"name":"ParameterList","src":"25243:41:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":6441,"stateVariable":false,"storageLocation":"memory","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":6334,"name":"ElementaryTypeName","src":"25308:6:5"}],"id":6335,"name":"VariableDeclaration","src":"25308:6:5"}],"id":6336,"name":"ParameterList","src":"25307:15:5"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6332,"type":"struct strings.slice memory[] memory","value":"parts"},"id":6337,"name":"Identifier","src":"25337:5:5"}],"id":6338,"name":"MemberAccess","src":"25337:12:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":6339,"name":"Literal","src":"25353:1:5"}],"id":6340,"name":"BinaryOperation","src":"25337:17:5"},{"attributes":{"functionReturnParameters":6336},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"\"","value":""},"id":6341,"name":"Literal","src":"25375:2:5"}],"id":6342,"name":"Return","src":"25368:9:5"}],"id":6343,"name":"IfStatement","src":"25333:44:5"},{"attributes":{"assignments":[6345]},"children":[{"attributes":{"constant":false,"name":"length","scope":6441,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":6344,"name":"ElementaryTypeName","src":"25388:4:5"}],"id":6345,"name":"VariableDeclaration","src":"25388:11:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4751,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6329,"type":"struct strings.slice memory","value":"self"},"id":6346,"name":"Identifier","src":"25402:4:5"}],"id":6347,"name":"MemberAccess","src":"25402:9:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6332,"type":"struct strings.slice memory[] memory","value":"parts"},"id":6348,"name":"Identifier","src":"25415:5:5"}],"id":6349,"name":"MemberAccess","src":"25415:12:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":6350,"name":"Literal","src":"25430:1:5"}],"id":6351,"name":"BinaryOperation","src":"25415:16:5"}],"id":6352,"name":"TupleExpression","src":"25414:18:5"}],"id":6353,"name":"BinaryOperation","src":"25402:30:5"}],"id":6354,"name":"VariableDeclarationStatement","src":"25388:44:5"},{"children":[{"attributes":{"assignments":[6356]},"children":[{"attributes":{"constant":false,"name":"i","scope":6441,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":6355,"name":"ElementaryTypeName","src":"25446:4:5"}],"id":6356,"name":"VariableDeclaration","src":"25446:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":6357,"name":"Literal","src":"25455:1:5"}],"id":6358,"name":"VariableDeclarationStatement","src":"25446:10:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6356,"type":"uint256","value":"i"},"id":6359,"name":"Identifier","src":"25458:1:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6332,"type":"struct strings.slice memory[] memory","value":"parts"},"id":6360,"name":"Identifier","src":"25462:5:5"}],"id":6361,"name":"MemberAccess","src":"25462:12:5"}],"id":6362,"name":"BinaryOperation","src":"25458:16:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6356,"type":"uint256","value":"i"},"id":6363,"name":"Identifier","src":"25476:1:5"}],"id":6364,"name":"UnaryOperation","src":"25476:3:5"}],"id":6365,"name":"ExpressionStatement","src":"25476:3:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6345,"type":"uint256","value":"length"},"id":6366,"name":"Identifier","src":"25493:6:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4751,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct strings.slice memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6332,"type":"struct strings.slice memory[] memory","value":"parts"},"id":6367,"name":"Identifier","src":"25503:5:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6356,"type":"uint256","value":"i"},"id":6368,"name":"Identifier","src":"25509:1:5"}],"id":6369,"name":"IndexAccess","src":"25503:8:5"}],"id":6370,"name":"MemberAccess","src":"25503:13:5"}],"id":6371,"name":"Assignment","src":"25493:23:5"}],"id":6372,"name":"ExpressionStatement","src":"25493:23:5"}],"id":6373,"name":"ForStatement","src":"25442:74:5"},{"attributes":{"assignments":[6375]},"children":[{"attributes":{"constant":false,"name":"ret","scope":6441,"stateVariable":false,"storageLocation":"memory","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":6374,"name":"ElementaryTypeName","src":"25527:6:5"}],"id":6375,"name":"VariableDeclaration","src":"25527:17:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (string memory)"},"children":[{"attributes":{"name":"string","type":"string"},"id":6376,"name":"ElementaryTypeName","src":"25551:6:5"}],"id":6377,"name":"NewExpression","src":"25547:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6345,"type":"uint256","value":"length"},"id":6378,"name":"Identifier","src":"25558:6:5"}],"id":6379,"name":"FunctionCall","src":"25547:18:5"}],"id":6380,"name":"VariableDeclarationStatement","src":"25527:38:5"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"retptr","scope":6441,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":6381,"name":"ElementaryTypeName","src":"25575:4:5"}],"id":6382,"name":"VariableDeclaration","src":"25575:11:5"}],"id":6383,"name":"VariableDeclarationStatement","src":"25575:11:5"},{"attributes":{"externalReferences":[{"retptr":{"declaration":6382,"isOffset":false,"isSlot":false,"src":"25607:6:5","valueSize":1}},{"ret":{"declaration":6375,"isOffset":false,"isSlot":false,"src":"25621:3:5","valueSize":1}}],"operations":"{\n retptr := add(ret, 32)\n}"},"children":[],"id":6384,"name":"InlineAssembly","src":"25596:48:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6356,"type":"uint256","value":"i"},"id":6385,"name":"Identifier","src":"25645:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":6386,"name":"Literal","src":"25649:1:5"}],"id":6387,"name":"Assignment","src":"25645:5:5"}],"id":6388,"name":"ExpressionStatement","src":"25645:5:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6356,"type":"uint256","value":"i"},"id":6389,"name":"Identifier","src":"25652:1:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6332,"type":"struct strings.slice memory[] memory","value":"parts"},"id":6390,"name":"Identifier","src":"25656:5:5"}],"id":6391,"name":"MemberAccess","src":"25656:12:5"}],"id":6392,"name":"BinaryOperation","src":"25652:16:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6356,"type":"uint256","value":"i"},"id":6393,"name":"Identifier","src":"25670:1:5"}],"id":6394,"name":"UnaryOperation","src":"25670:3:5"}],"id":6395,"name":"ExpressionStatement","src":"25670:3:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":4794,"type":"function (uint256,uint256,uint256) pure","value":"memcpy"},"id":6396,"name":"Identifier","src":"25689:6:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6382,"type":"uint256","value":"retptr"},"id":6397,"name":"Identifier","src":"25696:6:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":4753,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct strings.slice memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6332,"type":"struct strings.slice memory[] memory","value":"parts"},"id":6398,"name":"Identifier","src":"25704:5:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6356,"type":"uint256","value":"i"},"id":6399,"name":"Identifier","src":"25710:1:5"}],"id":6400,"name":"IndexAccess","src":"25704:8:5"}],"id":6401,"name":"MemberAccess","src":"25704:13:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4751,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct strings.slice memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6332,"type":"struct strings.slice memory[] memory","value":"parts"},"id":6402,"name":"Identifier","src":"25719:5:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6356,"type":"uint256","value":"i"},"id":6403,"name":"Identifier","src":"25725:1:5"}],"id":6404,"name":"IndexAccess","src":"25719:8:5"}],"id":6405,"name":"MemberAccess","src":"25719:13:5"}],"id":6406,"name":"FunctionCall","src":"25689:44:5"}],"id":6407,"name":"ExpressionStatement","src":"25689:44:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6382,"type":"uint256","value":"retptr"},"id":6408,"name":"Identifier","src":"25747:6:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4751,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct strings.slice memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6332,"type":"struct strings.slice memory[] memory","value":"parts"},"id":6409,"name":"Identifier","src":"25757:5:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6356,"type":"uint256","value":"i"},"id":6410,"name":"Identifier","src":"25763:1:5"}],"id":6411,"name":"IndexAccess","src":"25757:8:5"}],"id":6412,"name":"MemberAccess","src":"25757:13:5"}],"id":6413,"name":"Assignment","src":"25747:23:5"}],"id":6414,"name":"ExpressionStatement","src":"25747:23:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6356,"type":"uint256","value":"i"},"id":6415,"name":"Identifier","src":"25788:1:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6332,"type":"struct strings.slice memory[] memory","value":"parts"},"id":6416,"name":"Identifier","src":"25792:5:5"}],"id":6417,"name":"MemberAccess","src":"25792:12:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":6418,"name":"Literal","src":"25807:1:5"}],"id":6419,"name":"BinaryOperation","src":"25792:16:5"}],"id":6420,"name":"BinaryOperation","src":"25788:20:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":4794,"type":"function (uint256,uint256,uint256) pure","value":"memcpy"},"id":6421,"name":"Identifier","src":"25828:6:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6382,"type":"uint256","value":"retptr"},"id":6422,"name":"Identifier","src":"25835:6:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":4753,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6329,"type":"struct strings.slice memory","value":"self"},"id":6423,"name":"Identifier","src":"25843:4:5"}],"id":6424,"name":"MemberAccess","src":"25843:9:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4751,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6329,"type":"struct strings.slice memory","value":"self"},"id":6425,"name":"Identifier","src":"25854:4:5"}],"id":6426,"name":"MemberAccess","src":"25854:9:5"}],"id":6427,"name":"FunctionCall","src":"25828:36:5"}],"id":6428,"name":"ExpressionStatement","src":"25828:36:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6382,"type":"uint256","value":"retptr"},"id":6429,"name":"Identifier","src":"25882:6:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4751,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6329,"type":"struct strings.slice memory","value":"self"},"id":6430,"name":"Identifier","src":"25892:4:5"}],"id":6431,"name":"MemberAccess","src":"25892:9:5"}],"id":6432,"name":"Assignment","src":"25882:19:5"}],"id":6433,"name":"ExpressionStatement","src":"25882:19:5"}],"id":6434,"name":"Block","src":"25810:106:5"}],"id":6435,"name":"IfStatement","src":"25784:132:5"}],"id":6436,"name":"Block","src":"25675:251:5"}],"id":6437,"name":"ForStatement","src":"25641:285:5"},{"attributes":{"functionReturnParameters":6336},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6375,"type":"string memory","value":"ret"},"id":6438,"name":"Identifier","src":"25943:3:5"}],"id":6439,"name":"Return","src":"25936:10:5"}],"id":6440,"name":"Block","src":"25323:630:5"}],"id":6441,"name":"FunctionDefinition","src":"25230:723:5"}],"id":6442,"name":"ContractDefinition","src":"2600:23355:5"}],"id":6443,"name":"SourceUnit","src":"2574:23382:5"}},"internals/claimable.sol":{"AST":{"attributes":{"absolutePath":"internals/claimable.sol","exportedSymbols":{"Claimable":[4747]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".25"]},"id":4696,"name":"PragmaDirective","src":"769:24:6"},{"attributes":{"SourceUnit":2092,"absolutePath":"externals/ERC20.sol","file":"../externals/ERC20.sol","scope":4748,"symbolAliases":[null],"unitAlias":""},"id":4697,"name":"ImportDirective","src":"795:32:6"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"contract","documentation":"@title Claimable, allowing contract to withdraw tokens accidentally sent to itself","fullyImplemented":true,"linearizedBaseContracts":[4747],"name":"Claimable","scope":4748},"children":[{"attributes":{"anonymous":false,"documentation":null,"name":"Claimed"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_to","scope":4705,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":4698,"name":"ElementaryTypeName","src":"957:7:6"}],"id":4699,"name":"VariableDeclaration","src":"957:11:6"},{"attributes":{"constant":false,"indexed":false,"name":"_asset","scope":4705,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":4700,"name":"ElementaryTypeName","src":"970:7:6"}],"id":4701,"name":"VariableDeclaration","src":"970:14:6"},{"attributes":{"constant":false,"indexed":false,"name":"_amount","scope":4705,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4702,"name":"ElementaryTypeName","src":"986:4:6"}],"id":4703,"name":"VariableDeclaration","src":"986:12:6"}],"id":4704,"name":"ParameterList","src":"956:43:6"}],"id":4705,"name":"EventDefinition","src":"943:57:6"},{"attributes":{"constant":false,"documentation":"@dev This function is used to move tokens sent accidentally to this contract method.\n @dev The owner can chose the new destination address\n @param _to is the recipient's address.\n @param _asset is the address of an ERC20 token or 0x0 for ether.\n @param _amount is the amount to be transferred in base units.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_claim","payable":false,"scope":4747,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_to","scope":4746,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":4706,"name":"ElementaryTypeName","src":"1366:7:6"}],"id":4707,"name":"VariableDeclaration","src":"1366:11:6"},{"attributes":{"constant":false,"name":"_asset","scope":4746,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":4708,"name":"ElementaryTypeName","src":"1379:7:6"}],"id":4709,"name":"VariableDeclaration","src":"1379:14:6"},{"attributes":{"constant":false,"name":"_amount","scope":4746,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4710,"name":"ElementaryTypeName","src":"1395:4:6"}],"id":4711,"name":"VariableDeclaration","src":"1395:12:6"}],"id":4712,"name":"ParameterList","src":"1365:43:6"},{"attributes":{"parameters":[null]},"children":[],"id":4713,"name":"ParameterList","src":"1418:0:6"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4709,"type":"address","value":"_asset"},"id":4714,"name":"Identifier","src":"1476:6:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":4715,"name":"ElementaryTypeNameExpression","src":"1486:7:6"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4716,"name":"Literal","src":"1494:1:6"}],"id":4717,"name":"FunctionCall","src":"1486:10:6"}],"id":4718,"name":"BinaryOperation","src":"1476:20:6"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"transfer","referencedDeclaration":null,"type":"function (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4707,"type":"address","value":"_to"},"id":4719,"name":"Identifier","src":"1512:3:6"}],"id":4721,"name":"MemberAccess","src":"1512:12:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4711,"type":"uint256","value":"_amount"},"id":4722,"name":"Identifier","src":"1525:7:6"}],"id":4723,"name":"FunctionCall","src":"1512:21:6"}],"id":4724,"name":"ExpressionStatement","src":"1512:21:6"}],"id":4725,"name":"Block","src":"1498:46:6"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_bebbba0e3133c903fb13ff92bbd373380a11a38636d3fcb2a56e9eeaa3171b67","typeString":"literal_string \"ERC20 token transfer was unsuccessful\""}],"overloadedDeclarations":[6460,6461],"referencedDeclaration":6461,"type":"function (bool,string memory) pure","value":"require"},"id":4726,"name":"Identifier","src":"1564:7:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"transfer","referencedDeclaration":2079,"type":"function (address,uint256) external returns (bool)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract ERC20","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2091,"type":"type(contract ERC20)","value":"ERC20"},"id":4727,"name":"Identifier","src":"1572:5:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4709,"type":"address","value":"_asset"},"id":4728,"name":"Identifier","src":"1578:6:6"}],"id":4729,"name":"FunctionCall","src":"1572:13:6"}],"id":4730,"name":"MemberAccess","src":"1572:22:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4707,"type":"address","value":"_to"},"id":4731,"name":"Identifier","src":"1595:3:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4711,"type":"uint256","value":"_amount"},"id":4732,"name":"Identifier","src":"1600:7:6"}],"id":4733,"name":"FunctionCall","src":"1572:36:6"},{"attributes":{"argumentTypes":null,"hexvalue":"455243323020746f6b656e207472616e736665722077617320756e7375636365737366756c","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"ERC20 token transfer was unsuccessful\"","value":"ERC20 token transfer was unsuccessful"},"id":4734,"name":"Literal","src":"1610:39:6"}],"id":4735,"name":"FunctionCall","src":"1564:86:6"}],"id":4736,"name":"ExpressionStatement","src":"1564:86:6"}],"id":4737,"name":"Block","src":"1550:111:6"}],"id":4738,"name":"IfStatement","src":"1472:189:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":4705,"type":"function (address,address,uint256)","value":"Claimed"},"id":4739,"name":"Identifier","src":"1676:7:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4707,"type":"address","value":"_to"},"id":4740,"name":"Identifier","src":"1684:3:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4709,"type":"address","value":"_asset"},"id":4741,"name":"Identifier","src":"1689:6:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4711,"type":"uint256","value":"_amount"},"id":4742,"name":"Identifier","src":"1697:7:6"}],"id":4743,"name":"FunctionCall","src":"1676:29:6"}],"id":4744,"name":"EmitStatement","src":"1671:34:6"}],"id":4745,"name":"Block","src":"1418:294:6"}],"id":4746,"name":"FunctionDefinition","src":"1350:362:6"}],"id":4747,"name":"ContractDefinition","src":"917:797:6"}],"id":4748,"name":"SourceUnit","src":"769:946:6"}},"internals/controllable.sol":{"AST":{"attributes":{"absolutePath":"internals/controllable.sol","exportedSymbols":{"Controllable":[2275]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".25"]},"id":2221,"name":"PragmaDirective","src":"772:24:7"},{"attributes":{"SourceUnit":3551,"absolutePath":"internals/controller.sol","file":"./controller.sol","scope":2276,"symbolAliases":[null],"unitAlias":""},"id":2222,"name":"ImportDirective","src":"798:26:7"},{"attributes":{"SourceUnit":2327,"absolutePath":"internals/ensResolvable.sol","file":"../internals/ensResolvable.sol","scope":2276,"symbolAliases":[null],"unitAlias":""},"id":2223,"name":"ImportDirective","src":"825:40:7"},{"attributes":{"contractDependencies":[2326],"contractKind":"contract","documentation":"@title Controllable implements access control functionality of the Controller found via ENS.","fullyImplemented":false,"linearizedBaseContracts":[2275,2326],"name":"Controllable","scope":2276},"children":[{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"ENSResolvable","referencedDeclaration":2326,"type":"contract ENSResolvable"},"id":2224,"name":"UserDefinedTypeName","src":"990:13:7"}],"id":2225,"name":"InheritanceSpecifier","src":"990:13:7"},{"attributes":{"constant":false,"name":"_controllerNode","scope":2275,"stateVariable":true,"storageLocation":"default","type":"bytes32","value":null,"visibility":"private"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":2226,"name":"ElementaryTypeName","src":"1087:7:7"}],"id":2227,"name":"VariableDeclaration","src":"1087:31:7"},{"attributes":{"constant":false,"documentation":"@notice Constructor initializes the controller contract object.\n @param _controllerNameHash_ is the ENS name hash of the Controller.","implemented":true,"isConstructor":true,"modifiers":[null],"name":"","payable":false,"scope":2275,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_controllerNameHash_","scope":2237,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":2228,"name":"ElementaryTypeName","src":"1285:7:7"}],"id":2229,"name":"VariableDeclaration","src":"1285:28:7"}],"id":2230,"name":"ParameterList","src":"1284:30:7"},{"attributes":{"parameters":[null]},"children":[],"id":2231,"name":"ParameterList","src":"1324:0:7"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2227,"type":"bytes32","value":"_controllerNode"},"id":2232,"name":"Identifier","src":"1334:15:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2229,"type":"bytes32","value":"_controllerNameHash_"},"id":2233,"name":"Identifier","src":"1352:20:7"}],"id":2234,"name":"Assignment","src":"1334:38:7"}],"id":2235,"name":"ExpressionStatement","src":"1334:38:7"}],"id":2236,"name":"Block","src":"1324:55:7"}],"id":2237,"name":"FunctionDefinition","src":"1273:106:7"},{"attributes":{"documentation":"@notice Checks if message sender is the controller.","name":"onlyController","visibility":"internal"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":2238,"name":"ParameterList","src":"1468:2:7"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_918bc5a096178f6e8c423f958a6008c4b24fd25b7a3ca0123b85463c61a2e566","typeString":"literal_string \"sender is not a controller\""}],"overloadedDeclarations":[6460,6461],"referencedDeclaration":6461,"type":"function (bool,string memory) pure","value":"require"},"id":2239,"name":"Identifier","src":"1481:7:7"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2274,"type":"function (address) view returns (bool)","value":"_isController"},"id":2240,"name":"Identifier","src":"1489:13:7"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6457,"type":"msg","value":"msg"},"id":2241,"name":"Identifier","src":"1503:3:7"}],"id":2242,"name":"MemberAccess","src":"1503:10:7"}],"id":2243,"name":"FunctionCall","src":"1489:25:7"},{"attributes":{"argumentTypes":null,"hexvalue":"73656e646572206973206e6f74206120636f6e74726f6c6c6572","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"sender is not a controller\"","value":"sender is not a controller"},"id":2244,"name":"Literal","src":"1516:28:7"}],"id":2245,"name":"FunctionCall","src":"1481:64:7"}],"id":2246,"name":"ExpressionStatement","src":"1481:64:7"},{"id":2247,"name":"PlaceholderStatement","src":"1555:1:7"}],"id":2248,"name":"Block","src":"1471:92:7"}],"id":2249,"name":"ModifierDefinition","src":"1445:118:7"},{"attributes":{"constant":true,"documentation":"@return the controller name hash registered in ENS.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"controllerNode","payable":false,"scope":2275,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":2250,"name":"ParameterList","src":"1652:2:7"},{"children":[{"attributes":{"constant":false,"name":"","scope":2257,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":2251,"name":"ElementaryTypeName","src":"1678:7:7"}],"id":2252,"name":"VariableDeclaration","src":"1678:7:7"}],"id":2253,"name":"ParameterList","src":"1677:9:7"},{"children":[{"attributes":{"functionReturnParameters":2253},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2227,"type":"bytes32","value":"_controllerNode"},"id":2254,"name":"Identifier","src":"1704:15:7"}],"id":2255,"name":"Return","src":"1697:22:7"}],"id":2256,"name":"Block","src":"1687:39:7"}],"id":2257,"name":"FunctionDefinition","src":"1629:97:7"},{"attributes":{"constant":true,"documentation":"@return true if the provided account is the controller.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_isController","payable":false,"scope":2275,"stateMutability":"view","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":2274,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2258,"name":"ElementaryTypeName","src":"1819:7:7"}],"id":2259,"name":"VariableDeclaration","src":"1819:16:7"}],"id":2260,"name":"ParameterList","src":"1818:18:7"},{"children":[{"attributes":{"constant":false,"name":"","scope":2274,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2261,"name":"ElementaryTypeName","src":"1860:4:7"}],"id":2262,"name":"VariableDeclaration","src":"1860:4:7"}],"id":2263,"name":"ParameterList","src":"1859:6:7"},{"children":[{"attributes":{"functionReturnParameters":2263},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"isController","referencedDeclaration":3220,"type":"function (address) view external returns (bool)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract IController","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":3221,"type":"type(contract IController)","value":"IController"},"id":2264,"name":"Identifier","src":"1883:11:7"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[null],"referencedDeclaration":2325,"type":"function (bytes32) view returns (address)","value":"_ensResolve"},"id":2265,"name":"Identifier","src":"1895:11:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2227,"type":"bytes32","value":"_controllerNode"},"id":2266,"name":"Identifier","src":"1907:15:7"}],"id":2267,"name":"FunctionCall","src":"1895:28:7"}],"id":2268,"name":"FunctionCall","src":"1883:41:7"}],"id":2269,"name":"MemberAccess","src":"1883:54:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2259,"type":"address","value":"_account"},"id":2270,"name":"Identifier","src":"1938:8:7"}],"id":2271,"name":"FunctionCall","src":"1883:64:7"}],"id":2272,"name":"Return","src":"1876:71:7"}],"id":2273,"name":"Block","src":"1866:88:7"}],"id":2274,"name":"FunctionDefinition","src":"1796:158:7"}],"id":2275,"name":"ContractDefinition","src":"965:992:7"}],"id":2276,"name":"SourceUnit","src":"772:1186:7"}},"internals/controller.sol":{"AST":{"attributes":{"absolutePath":"internals/controller.sol","exportedSymbols":{"Controller":[3550],"IController":[3221]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".25"]},"id":3212,"name":"PragmaDirective","src":"770:24:8"},{"attributes":{"SourceUnit":2484,"absolutePath":"internals/ownable.sol","file":"./ownable.sol","scope":3551,"symbolAliases":[null],"unitAlias":""},"id":3213,"name":"ImportDirective","src":"796:23:8"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"interface","documentation":"@title The IController interface provides access to the isController check.","fullyImplemented":false,"linearizedBaseContracts":[3221],"name":"IController","scope":3551},"children":[{"attributes":{"body":null,"constant":true,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"isController","payable":false,"scope":3221,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"","scope":3220,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3214,"name":"ElementaryTypeName","src":"951:7:8"}],"id":3215,"name":"VariableDeclaration","src":"951:7:8"}],"id":3216,"name":"ParameterList","src":"950:9:8"},{"children":[{"attributes":{"constant":false,"name":"","scope":3220,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":3217,"name":"ElementaryTypeName","src":"983:4:8"}],"id":3218,"name":"VariableDeclaration","src":"983:4:8"}],"id":3219,"name":"ParameterList","src":"982:6:8"}],"id":3220,"name":"FunctionDefinition","src":"929:60:8"}],"id":3221,"name":"ContractDefinition","src":"901:90:8"},{"attributes":{"contractDependencies":[2483,3221],"contractKind":"contract","documentation":"@title Controller stores a list of controller addresses that can be used for authentication in other contracts.\n @notice The Controller implements a hierarchy of concepts, Owner, Admin, and the Controllers.\n @dev Owner can change the Admins\n @dev Admins and can the Controllers\n @dev Controllers are used by the application.","fullyImplemented":true,"linearizedBaseContracts":[3550,2483,3221],"name":"Controller","scope":3551},"children":[{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"IController","referencedDeclaration":3221,"type":"contract IController"},"id":3222,"name":"UserDefinedTypeName","src":"1358:11:8"}],"id":3223,"name":"InheritanceSpecifier","src":"1358:11:8"},{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"Ownable","referencedDeclaration":2483,"type":"contract Ownable"},"id":3224,"name":"UserDefinedTypeName","src":"1371:7:8"}],"id":3225,"name":"InheritanceSpecifier","src":"1371:7:8"},{"attributes":{"anonymous":false,"documentation":null,"name":"AddedController"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_sender","scope":3231,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3226,"name":"ElementaryTypeName","src":"1408:7:8"}],"id":3227,"name":"VariableDeclaration","src":"1408:15:8"},{"attributes":{"constant":false,"indexed":false,"name":"_controller","scope":3231,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3228,"name":"ElementaryTypeName","src":"1425:7:8"}],"id":3229,"name":"VariableDeclaration","src":"1425:19:8"}],"id":3230,"name":"ParameterList","src":"1407:38:8"}],"id":3231,"name":"EventDefinition","src":"1386:60:8"},{"attributes":{"anonymous":false,"documentation":null,"name":"RemovedController"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_sender","scope":3237,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3232,"name":"ElementaryTypeName","src":"1475:7:8"}],"id":3233,"name":"VariableDeclaration","src":"1475:15:8"},{"attributes":{"constant":false,"indexed":false,"name":"_controller","scope":3237,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3234,"name":"ElementaryTypeName","src":"1492:7:8"}],"id":3235,"name":"VariableDeclaration","src":"1492:19:8"}],"id":3236,"name":"ParameterList","src":"1474:38:8"}],"id":3237,"name":"EventDefinition","src":"1451:62:8"},{"attributes":{"anonymous":false,"documentation":null,"name":"AddedAdmin"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_sender","scope":3243,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3238,"name":"ElementaryTypeName","src":"1536:7:8"}],"id":3239,"name":"VariableDeclaration","src":"1536:15:8"},{"attributes":{"constant":false,"indexed":false,"name":"_admin","scope":3243,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3240,"name":"ElementaryTypeName","src":"1553:7:8"}],"id":3241,"name":"VariableDeclaration","src":"1553:14:8"}],"id":3242,"name":"ParameterList","src":"1535:33:8"}],"id":3243,"name":"EventDefinition","src":"1519:50:8"},{"attributes":{"anonymous":false,"documentation":null,"name":"RemovedAdmin"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_sender","scope":3249,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3244,"name":"ElementaryTypeName","src":"1593:7:8"}],"id":3245,"name":"VariableDeclaration","src":"1593:15:8"},{"attributes":{"constant":false,"indexed":false,"name":"_admin","scope":3249,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3246,"name":"ElementaryTypeName","src":"1610:7:8"}],"id":3247,"name":"VariableDeclaration","src":"1610:14:8"}],"id":3248,"name":"ParameterList","src":"1592:33:8"}],"id":3249,"name":"EventDefinition","src":"1574:52:8"},{"attributes":{"constant":false,"name":"_isAdmin","scope":3550,"stateVariable":true,"storageLocation":"default","type":"mapping(address => bool)","value":null,"visibility":"private"},"children":[{"attributes":{"type":"mapping(address => bool)"},"children":[{"attributes":{"name":"address","type":"address"},"id":3250,"name":"ElementaryTypeName","src":"1641:7:8"},{"attributes":{"name":"bool","type":"bool"},"id":3251,"name":"ElementaryTypeName","src":"1652:4:8"}],"id":3252,"name":"Mapping","src":"1632:25:8"}],"id":3253,"name":"VariableDeclaration","src":"1632:42:8"},{"attributes":{"constant":false,"name":"_adminCount","scope":3550,"stateVariable":true,"storageLocation":"default","type":"uint256","value":null,"visibility":"private"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":3254,"name":"ElementaryTypeName","src":"1680:4:8"}],"id":3255,"name":"VariableDeclaration","src":"1680:24:8"},{"attributes":{"constant":false,"name":"_isController","scope":3550,"stateVariable":true,"storageLocation":"default","type":"mapping(address => bool)","value":null,"visibility":"private"},"children":[{"attributes":{"type":"mapping(address => bool)"},"children":[{"attributes":{"name":"address","type":"address"},"id":3256,"name":"ElementaryTypeName","src":"1720:7:8"},{"attributes":{"name":"bool","type":"bool"},"id":3257,"name":"ElementaryTypeName","src":"1731:4:8"}],"id":3258,"name":"Mapping","src":"1711:25:8"}],"id":3259,"name":"VariableDeclaration","src":"1711:47:8"},{"attributes":{"constant":false,"name":"_controllerCount","scope":3550,"stateVariable":true,"storageLocation":"default","type":"uint256","value":null,"visibility":"private"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":3260,"name":"ElementaryTypeName","src":"1764:4:8"}],"id":3261,"name":"VariableDeclaration","src":"1764:29:8"},{"attributes":{"constant":false,"documentation":"@notice Constructor initializes the owner with the provided address.\n @param _ownerAddress_ address of the owner.\n @param _transferable_ indicates whether the contract ownership can be transferred.","implemented":true,"isConstructor":true,"name":"","payable":false,"scope":3550,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"_ownerAddress_","scope":3273,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3262,"name":"ElementaryTypeName","src":"2032:7:8"}],"id":3263,"name":"VariableDeclaration","src":"2032:22:8"},{"attributes":{"constant":false,"name":"_transferable_","scope":3273,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":3264,"name":"ElementaryTypeName","src":"2056:4:8"}],"id":3265,"name":"VariableDeclaration","src":"2056:19:8"}],"id":3266,"name":"ParameterList","src":"2031:45:8"},{"attributes":{"parameters":[null]},"children":[],"id":3271,"name":"ParameterList","src":"2124:0:8"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2483,"type":"type(contract Ownable)","value":"Ownable"},"id":3267,"name":"Identifier","src":"2077:7:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3263,"type":"address","value":"_ownerAddress_"},"id":3268,"name":"Identifier","src":"2085:14:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3265,"type":"bool","value":"_transferable_"},"id":3269,"name":"Identifier","src":"2101:14:8"}],"id":3270,"name":"ModifierInvocation","src":"2077:39:8"},{"attributes":{"statements":[null]},"children":[],"id":3272,"name":"Block","src":"2124:3:8"}],"id":3273,"name":"FunctionDefinition","src":"2020:107:8"},{"attributes":{"documentation":"@notice Checks if message sender is an admin.","name":"onlyAdmin","visibility":"internal"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":3274,"name":"ParameterList","src":"2205:2:8"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_156cbb05733026f4aa0b363c6a3be5f21b7ab8f248a865cc639a4d928ddeabb8","typeString":"literal_string \"sender is not an admin\""}],"overloadedDeclarations":[6460,6461],"referencedDeclaration":6461,"type":"function (bool,string memory) pure","value":"require"},"id":3275,"name":"Identifier","src":"2218:7:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":3373,"type":"function (address) view returns (bool)","value":"isAdmin"},"id":3276,"name":"Identifier","src":"2226:7:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6457,"type":"msg","value":"msg"},"id":3277,"name":"Identifier","src":"2234:3:8"}],"id":3278,"name":"MemberAccess","src":"2234:10:8"}],"id":3279,"name":"FunctionCall","src":"2226:19:8"},{"attributes":{"argumentTypes":null,"hexvalue":"73656e646572206973206e6f7420616e2061646d696e","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"sender is not an admin\"","value":"sender is not an admin"},"id":3280,"name":"Literal","src":"2247:24:8"}],"id":3281,"name":"FunctionCall","src":"2218:54:8"}],"id":3282,"name":"ExpressionStatement","src":"2218:54:8"},{"id":3283,"name":"PlaceholderStatement","src":"2282:1:8"}],"id":3284,"name":"Block","src":"2208:82:8"}],"id":3285,"name":"ModifierDefinition","src":"2187:103:8"},{"attributes":{"documentation":"@notice Checks if message sender is a controller.","name":"onlyController","visibility":"internal"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":3286,"name":"ParameterList","src":"2377:2:8"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_918bc5a096178f6e8c423f958a6008c4b24fd25b7a3ca0123b85463c61a2e566","typeString":"literal_string \"sender is not a controller\""}],"overloadedDeclarations":[6460,6461],"referencedDeclaration":6461,"type":"function (bool,string memory) pure","value":"require"},"id":3287,"name":"Identifier","src":"2390:7:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":3385,"type":"function (address) view returns (bool)","value":"isController"},"id":3288,"name":"Identifier","src":"2398:12:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6457,"type":"msg","value":"msg"},"id":3289,"name":"Identifier","src":"2411:3:8"}],"id":3290,"name":"MemberAccess","src":"2411:10:8"}],"id":3291,"name":"FunctionCall","src":"2398:24:8"},{"attributes":{"argumentTypes":null,"hexvalue":"73656e646572206973206e6f74206120636f6e74726f6c6c6572","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"sender is not a controller\"","value":"sender is not a controller"},"id":3292,"name":"Literal","src":"2424:28:8"}],"id":3293,"name":"FunctionCall","src":"2390:63:8"}],"id":3294,"name":"ExpressionStatement","src":"2390:63:8"},{"id":3295,"name":"PlaceholderStatement","src":"2463:1:8"}],"id":3296,"name":"Block","src":"2380:91:8"}],"id":3297,"name":"ModifierDefinition","src":"2354:117:8"},{"attributes":{"constant":false,"documentation":"@notice Add a new admin to the list of admins.\n @param _account address to add to the list of admins.","implemented":true,"isConstructor":false,"name":"addAdmin","payable":false,"scope":3550,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":3309,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3298,"name":"ElementaryTypeName","src":"2612:7:8"}],"id":3299,"name":"VariableDeclaration","src":"2612:16:8"}],"id":3300,"name":"ParameterList","src":"2611:18:8"},{"attributes":{"parameters":[null]},"children":[],"id":3303,"name":"ParameterList","src":"2649:0:8"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2385,"type":"modifier ()","value":"onlyOwner"},"id":3301,"name":"Identifier","src":"2639:9:8"}],"id":3302,"name":"ModifierInvocation","src":"2639:9:8"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":3439,"type":"function (address)","value":"_addAdmin"},"id":3304,"name":"Identifier","src":"2659:9:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3299,"type":"address","value":"_account"},"id":3305,"name":"Identifier","src":"2669:8:8"}],"id":3306,"name":"FunctionCall","src":"2659:19:8"}],"id":3307,"name":"ExpressionStatement","src":"2659:19:8"}],"id":3308,"name":"Block","src":"2649:36:8"}],"id":3309,"name":"FunctionDefinition","src":"2594:91:8"},{"attributes":{"constant":false,"documentation":"@notice Remove a admin from the list of admins.\n @param _account address to remove from the list of admins.","implemented":true,"isConstructor":false,"name":"removeAdmin","payable":false,"scope":3550,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":3321,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3310,"name":"ElementaryTypeName","src":"2835:7:8"}],"id":3311,"name":"VariableDeclaration","src":"2835:16:8"}],"id":3312,"name":"ParameterList","src":"2834:18:8"},{"attributes":{"parameters":[null]},"children":[],"id":3315,"name":"ParameterList","src":"2872:0:8"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2385,"type":"modifier ()","value":"onlyOwner"},"id":3313,"name":"Identifier","src":"2862:9:8"}],"id":3314,"name":"ModifierInvocation","src":"2862:9:8"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":3467,"type":"function (address)","value":"_removeAdmin"},"id":3316,"name":"Identifier","src":"2882:12:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3311,"type":"address","value":"_account"},"id":3317,"name":"Identifier","src":"2895:8:8"}],"id":3318,"name":"FunctionCall","src":"2882:22:8"}],"id":3319,"name":"ExpressionStatement","src":"2882:22:8"}],"id":3320,"name":"Block","src":"2872:39:8"}],"id":3321,"name":"FunctionDefinition","src":"2814:97:8"},{"attributes":{"constant":true,"documentation":"@return the current number of admins.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"adminCount","payable":false,"scope":3550,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":3322,"name":"ParameterList","src":"2982:2:8"},{"children":[{"attributes":{"constant":false,"name":"","scope":3329,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":3323,"name":"ElementaryTypeName","src":"3008:4:8"}],"id":3324,"name":"VariableDeclaration","src":"3008:4:8"}],"id":3325,"name":"ParameterList","src":"3007:6:8"},{"children":[{"attributes":{"functionReturnParameters":3325},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3255,"type":"uint256","value":"_adminCount"},"id":3326,"name":"Identifier","src":"3031:11:8"}],"id":3327,"name":"Return","src":"3024:18:8"}],"id":3328,"name":"Block","src":"3014:35:8"}],"id":3329,"name":"FunctionDefinition","src":"2963:86:8"},{"attributes":{"constant":false,"documentation":"@notice Add a new controller to the list of controllers.\n @param _account address to add to the list of controllers.","implemented":true,"isConstructor":false,"name":"addController","payable":false,"scope":3550,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":3341,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3330,"name":"ElementaryTypeName","src":"3210:7:8"}],"id":3331,"name":"VariableDeclaration","src":"3210:16:8"}],"id":3332,"name":"ParameterList","src":"3209:18:8"},{"attributes":{"parameters":[null]},"children":[],"id":3335,"name":"ParameterList","src":"3247:0:8"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3285,"type":"modifier ()","value":"onlyAdmin"},"id":3333,"name":"Identifier","src":"3237:9:8"}],"id":3334,"name":"ModifierInvocation","src":"3237:9:8"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":3521,"type":"function (address)","value":"_addController"},"id":3336,"name":"Identifier","src":"3257:14:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3331,"type":"address","value":"_account"},"id":3337,"name":"Identifier","src":"3272:8:8"}],"id":3338,"name":"FunctionCall","src":"3257:24:8"}],"id":3339,"name":"ExpressionStatement","src":"3257:24:8"}],"id":3340,"name":"Block","src":"3247:41:8"}],"id":3341,"name":"FunctionDefinition","src":"3187:101:8"},{"attributes":{"constant":false,"documentation":"@notice Remove a controller from the list of controllers.\n @param _account address to remove from the list of controllers.","implemented":true,"isConstructor":false,"name":"removeController","payable":false,"scope":3550,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":3353,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3342,"name":"ElementaryTypeName","src":"3458:7:8"}],"id":3343,"name":"VariableDeclaration","src":"3458:16:8"}],"id":3344,"name":"ParameterList","src":"3457:18:8"},{"attributes":{"parameters":[null]},"children":[],"id":3347,"name":"ParameterList","src":"3495:0:8"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3285,"type":"modifier ()","value":"onlyAdmin"},"id":3345,"name":"Identifier","src":"3485:9:8"}],"id":3346,"name":"ModifierInvocation","src":"3485:9:8"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":3549,"type":"function (address)","value":"_removeController"},"id":3348,"name":"Identifier","src":"3505:17:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3343,"type":"address","value":"_account"},"id":3349,"name":"Identifier","src":"3523:8:8"}],"id":3350,"name":"FunctionCall","src":"3505:27:8"}],"id":3351,"name":"ExpressionStatement","src":"3505:27:8"}],"id":3352,"name":"Block","src":"3495:44:8"}],"id":3353,"name":"FunctionDefinition","src":"3432:107:8"},{"attributes":{"constant":true,"documentation":"@notice count the Controllers\n @return the current number of controllers.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"controllerCount","payable":false,"scope":3550,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":3354,"name":"ParameterList","src":"3658:2:8"},{"children":[{"attributes":{"constant":false,"name":"","scope":3361,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":3355,"name":"ElementaryTypeName","src":"3684:4:8"}],"id":3356,"name":"VariableDeclaration","src":"3684:4:8"}],"id":3357,"name":"ParameterList","src":"3683:6:8"},{"children":[{"attributes":{"functionReturnParameters":3357},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3261,"type":"uint256","value":"_controllerCount"},"id":3358,"name":"Identifier","src":"3707:16:8"}],"id":3359,"name":"Return","src":"3700:23:8"}],"id":3360,"name":"Block","src":"3690:40:8"}],"id":3361,"name":"FunctionDefinition","src":"3634:96:8"},{"attributes":{"constant":true,"documentation":"@notice is an address an Admin?\n @return true if the provided account is an admin.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"isAdmin","payable":false,"scope":3550,"stateMutability":"view","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":3373,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3362,"name":"ElementaryTypeName","src":"3851:7:8"}],"id":3363,"name":"VariableDeclaration","src":"3851:16:8"}],"id":3364,"name":"ParameterList","src":"3850:18:8"},{"children":[{"attributes":{"constant":false,"name":"","scope":3373,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":3365,"name":"ElementaryTypeName","src":"3890:4:8"}],"id":3366,"name":"VariableDeclaration","src":"3890:4:8"}],"id":3367,"name":"ParameterList","src":"3889:6:8"},{"children":[{"attributes":{"functionReturnParameters":3367},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3253,"type":"mapping(address => bool)","value":"_isAdmin"},"id":3368,"name":"Identifier","src":"3913:8:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3363,"type":"address","value":"_account"},"id":3369,"name":"Identifier","src":"3922:8:8"}],"id":3370,"name":"IndexAccess","src":"3913:18:8"}],"id":3371,"name":"Return","src":"3906:25:8"}],"id":3372,"name":"Block","src":"3896:42:8"}],"id":3373,"name":"FunctionDefinition","src":"3834:104:8"},{"attributes":{"constant":true,"documentation":"@notice is an address a Controller?\n @return true if the provided account is a controller.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"isController","payable":false,"scope":3550,"stateMutability":"view","superFunction":3220,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":3385,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3374,"name":"ElementaryTypeName","src":"4072:7:8"}],"id":3375,"name":"VariableDeclaration","src":"4072:16:8"}],"id":3376,"name":"ParameterList","src":"4071:18:8"},{"children":[{"attributes":{"constant":false,"name":"","scope":3385,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":3377,"name":"ElementaryTypeName","src":"4111:4:8"}],"id":3378,"name":"VariableDeclaration","src":"4111:4:8"}],"id":3379,"name":"ParameterList","src":"4110:6:8"},{"children":[{"attributes":{"functionReturnParameters":3379},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3259,"type":"mapping(address => bool)","value":"_isController"},"id":3380,"name":"Identifier","src":"4134:13:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3375,"type":"address","value":"_account"},"id":3381,"name":"Identifier","src":"4148:8:8"}],"id":3382,"name":"IndexAccess","src":"4134:23:8"}],"id":3383,"name":"Return","src":"4127:30:8"}],"id":3384,"name":"Block","src":"4117:47:8"}],"id":3385,"name":"FunctionDefinition","src":"4050:114:8"},{"attributes":{"constant":false,"documentation":"@notice Internal-only function that adds a new admin.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_addAdmin","payable":false,"scope":3550,"stateMutability":"nonpayable","superFunction":null,"visibility":"private"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":3439,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3386,"name":"ElementaryTypeName","src":"4251:7:8"}],"id":3387,"name":"VariableDeclaration","src":"4251:16:8"}],"id":3388,"name":"ParameterList","src":"4250:18:8"},{"attributes":{"parameters":[null]},"children":[],"id":3389,"name":"ParameterList","src":"4277:0:8"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_491ef411eef1615ecf908753bd22ae846aac933d79b0327335a18e3988db6215","typeString":"literal_string \"provided account is already an admin\""}],"overloadedDeclarations":[6460,6461],"referencedDeclaration":6461,"type":"function (bool,string memory) pure","value":"require"},"id":3390,"name":"Identifier","src":"4287:7:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3253,"type":"mapping(address => bool)","value":"_isAdmin"},"id":3391,"name":"Identifier","src":"4296:8:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3387,"type":"address","value":"_account"},"id":3392,"name":"Identifier","src":"4305:8:8"}],"id":3393,"name":"IndexAccess","src":"4296:18:8"}],"id":3394,"name":"UnaryOperation","src":"4295:19:8"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e7420697320616c726561647920616e2061646d696e","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is already an admin\"","value":"provided account is already an admin"},"id":3395,"name":"Literal","src":"4316:38:8"}],"id":3396,"name":"FunctionCall","src":"4287:68:8"}],"id":3397,"name":"ExpressionStatement","src":"4287:68:8"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ea5e43d1c86e3916e6efb6c5ad4a915069293195e26cfb0847e731b480c61b69","typeString":"literal_string \"provided account is already a controller\""}],"overloadedDeclarations":[6460,6461],"referencedDeclaration":6461,"type":"function (bool,string memory) pure","value":"require"},"id":3398,"name":"Identifier","src":"4365:7:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3259,"type":"mapping(address => bool)","value":"_isController"},"id":3399,"name":"Identifier","src":"4374:13:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3387,"type":"address","value":"_account"},"id":3400,"name":"Identifier","src":"4388:8:8"}],"id":3401,"name":"IndexAccess","src":"4374:23:8"}],"id":3402,"name":"UnaryOperation","src":"4373:24:8"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e7420697320616c7265616479206120636f6e74726f6c6c6572","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is already a controller\"","value":"provided account is already a controller"},"id":3403,"name":"Literal","src":"4399:42:8"}],"id":3404,"name":"FunctionCall","src":"4365:77:8"}],"id":3405,"name":"ExpressionStatement","src":"4365:77:8"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_28b510b314348cd3eee423698115cd76923e2c39fff2abeefc9606aa1cd4c741","typeString":"literal_string \"provided account is already the owner\""}],"overloadedDeclarations":[6460,6461],"referencedDeclaration":6461,"type":"function (bool,string memory) pure","value":"require"},"id":3406,"name":"Identifier","src":"4452:7:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2482,"type":"function (address) view returns (bool)","value":"_isOwner"},"id":3407,"name":"Identifier","src":"4461:8:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3387,"type":"address","value":"_account"},"id":3408,"name":"Identifier","src":"4470:8:8"}],"id":3409,"name":"FunctionCall","src":"4461:18:8"}],"id":3410,"name":"UnaryOperation","src":"4460:19:8"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e7420697320616c726561647920746865206f776e6572","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is already the owner\"","value":"provided account is already the owner"},"id":3411,"name":"Literal","src":"4481:39:8"}],"id":3412,"name":"FunctionCall","src":"4452:69:8"}],"id":3413,"name":"ExpressionStatement","src":"4452:69:8"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_da72d12cc1dab77bb87826430977e9a5d381ba54a70ad14cb2761e202f01ff3b","typeString":"literal_string \"provided account is the zero address\""}],"overloadedDeclarations":[6460,6461],"referencedDeclaration":6461,"type":"function (bool,string memory) pure","value":"require"},"id":3414,"name":"Identifier","src":"4531:7:8"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3387,"type":"address","value":"_account"},"id":3415,"name":"Identifier","src":"4539:8:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":3416,"name":"ElementaryTypeNameExpression","src":"4551:7:8"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3417,"name":"Literal","src":"4559:1:8"}],"id":3418,"name":"FunctionCall","src":"4551:10:8"}],"id":3419,"name":"BinaryOperation","src":"4539:22:8"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e7420697320746865207a65726f2061646472657373","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is the zero address\"","value":"provided account is the zero address"},"id":3420,"name":"Literal","src":"4563:38:8"}],"id":3421,"name":"FunctionCall","src":"4531:71:8"}],"id":3422,"name":"ExpressionStatement","src":"4531:71:8"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3253,"type":"mapping(address => bool)","value":"_isAdmin"},"id":3423,"name":"Identifier","src":"4612:8:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3387,"type":"address","value":"_account"},"id":3424,"name":"Identifier","src":"4621:8:8"}],"id":3425,"name":"IndexAccess","src":"4612:18:8"},{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":3426,"name":"Literal","src":"4633:4:8"}],"id":3427,"name":"Assignment","src":"4612:25:8"}],"id":3428,"name":"ExpressionStatement","src":"4612:25:8"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3255,"type":"uint256","value":"_adminCount"},"id":3429,"name":"Identifier","src":"4647:11:8"}],"id":3430,"name":"UnaryOperation","src":"4647:13:8"}],"id":3431,"name":"ExpressionStatement","src":"4647:13:8"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":3243,"type":"function (address,address)","value":"AddedAdmin"},"id":3432,"name":"Identifier","src":"4675:10:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6457,"type":"msg","value":"msg"},"id":3433,"name":"Identifier","src":"4686:3:8"}],"id":3434,"name":"MemberAccess","src":"4686:10:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3387,"type":"address","value":"_account"},"id":3435,"name":"Identifier","src":"4698:8:8"}],"id":3436,"name":"FunctionCall","src":"4675:32:8"}],"id":3437,"name":"EmitStatement","src":"4670:37:8"}],"id":3438,"name":"Block","src":"4277:437:8"}],"id":3439,"name":"FunctionDefinition","src":"4232:482:8"},{"attributes":{"constant":false,"documentation":"@notice Internal-only function that removes an existing admin.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_removeAdmin","payable":false,"scope":3550,"stateMutability":"nonpayable","superFunction":null,"visibility":"private"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":3467,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3440,"name":"ElementaryTypeName","src":"4813:7:8"}],"id":3441,"name":"VariableDeclaration","src":"4813:16:8"}],"id":3442,"name":"ParameterList","src":"4812:18:8"},{"attributes":{"parameters":[null]},"children":[],"id":3443,"name":"ParameterList","src":"4839:0:8"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1c739c60677de73f71e20970ace8544e82a98bdcd16e21df5754e7a2756cbedc","typeString":"literal_string \"provided account is not an admin\""}],"overloadedDeclarations":[6460,6461],"referencedDeclaration":6461,"type":"function (bool,string memory) pure","value":"require"},"id":3444,"name":"Identifier","src":"4849:7:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3253,"type":"mapping(address => bool)","value":"_isAdmin"},"id":3445,"name":"Identifier","src":"4857:8:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3441,"type":"address","value":"_account"},"id":3446,"name":"Identifier","src":"4866:8:8"}],"id":3447,"name":"IndexAccess","src":"4857:18:8"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e74206973206e6f7420616e2061646d696e","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is not an admin\"","value":"provided account is not an admin"},"id":3448,"name":"Literal","src":"4877:34:8"}],"id":3449,"name":"FunctionCall","src":"4849:63:8"}],"id":3450,"name":"ExpressionStatement","src":"4849:63:8"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3253,"type":"mapping(address => bool)","value":"_isAdmin"},"id":3451,"name":"Identifier","src":"4922:8:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3441,"type":"address","value":"_account"},"id":3452,"name":"Identifier","src":"4931:8:8"}],"id":3453,"name":"IndexAccess","src":"4922:18:8"},{"attributes":{"argumentTypes":null,"hexvalue":"66616c7365","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"false"},"id":3454,"name":"Literal","src":"4943:5:8"}],"id":3455,"name":"Assignment","src":"4922:26:8"}],"id":3456,"name":"ExpressionStatement","src":"4922:26:8"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"--","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3255,"type":"uint256","value":"_adminCount"},"id":3457,"name":"Identifier","src":"4958:11:8"}],"id":3458,"name":"UnaryOperation","src":"4958:13:8"}],"id":3459,"name":"ExpressionStatement","src":"4958:13:8"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":3249,"type":"function (address,address)","value":"RemovedAdmin"},"id":3460,"name":"Identifier","src":"4986:12:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6457,"type":"msg","value":"msg"},"id":3461,"name":"Identifier","src":"4999:3:8"}],"id":3462,"name":"MemberAccess","src":"4999:10:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3441,"type":"address","value":"_account"},"id":3463,"name":"Identifier","src":"5011:8:8"}],"id":3464,"name":"FunctionCall","src":"4986:34:8"}],"id":3465,"name":"EmitStatement","src":"4981:39:8"}],"id":3466,"name":"Block","src":"4839:188:8"}],"id":3467,"name":"FunctionDefinition","src":"4791:236:8"},{"attributes":{"constant":false,"documentation":"@notice Internal-only function that adds a new controller.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_addController","payable":false,"scope":3550,"stateMutability":"nonpayable","superFunction":null,"visibility":"private"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":3521,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3468,"name":"ElementaryTypeName","src":"5124:7:8"}],"id":3469,"name":"VariableDeclaration","src":"5124:16:8"}],"id":3470,"name":"ParameterList","src":"5123:18:8"},{"attributes":{"parameters":[null]},"children":[],"id":3471,"name":"ParameterList","src":"5150:0:8"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_491ef411eef1615ecf908753bd22ae846aac933d79b0327335a18e3988db6215","typeString":"literal_string \"provided account is already an admin\""}],"overloadedDeclarations":[6460,6461],"referencedDeclaration":6461,"type":"function (bool,string memory) pure","value":"require"},"id":3472,"name":"Identifier","src":"5160:7:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3253,"type":"mapping(address => bool)","value":"_isAdmin"},"id":3473,"name":"Identifier","src":"5169:8:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3469,"type":"address","value":"_account"},"id":3474,"name":"Identifier","src":"5178:8:8"}],"id":3475,"name":"IndexAccess","src":"5169:18:8"}],"id":3476,"name":"UnaryOperation","src":"5168:19:8"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e7420697320616c726561647920616e2061646d696e","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is already an admin\"","value":"provided account is already an admin"},"id":3477,"name":"Literal","src":"5189:38:8"}],"id":3478,"name":"FunctionCall","src":"5160:68:8"}],"id":3479,"name":"ExpressionStatement","src":"5160:68:8"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ea5e43d1c86e3916e6efb6c5ad4a915069293195e26cfb0847e731b480c61b69","typeString":"literal_string \"provided account is already a controller\""}],"overloadedDeclarations":[6460,6461],"referencedDeclaration":6461,"type":"function (bool,string memory) pure","value":"require"},"id":3480,"name":"Identifier","src":"5238:7:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3259,"type":"mapping(address => bool)","value":"_isController"},"id":3481,"name":"Identifier","src":"5247:13:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3469,"type":"address","value":"_account"},"id":3482,"name":"Identifier","src":"5261:8:8"}],"id":3483,"name":"IndexAccess","src":"5247:23:8"}],"id":3484,"name":"UnaryOperation","src":"5246:24:8"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e7420697320616c7265616479206120636f6e74726f6c6c6572","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is already a controller\"","value":"provided account is already a controller"},"id":3485,"name":"Literal","src":"5272:42:8"}],"id":3486,"name":"FunctionCall","src":"5238:77:8"}],"id":3487,"name":"ExpressionStatement","src":"5238:77:8"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_28b510b314348cd3eee423698115cd76923e2c39fff2abeefc9606aa1cd4c741","typeString":"literal_string \"provided account is already the owner\""}],"overloadedDeclarations":[6460,6461],"referencedDeclaration":6461,"type":"function (bool,string memory) pure","value":"require"},"id":3488,"name":"Identifier","src":"5325:7:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2482,"type":"function (address) view returns (bool)","value":"_isOwner"},"id":3489,"name":"Identifier","src":"5334:8:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3469,"type":"address","value":"_account"},"id":3490,"name":"Identifier","src":"5343:8:8"}],"id":3491,"name":"FunctionCall","src":"5334:18:8"}],"id":3492,"name":"UnaryOperation","src":"5333:19:8"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e7420697320616c726561647920746865206f776e6572","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is already the owner\"","value":"provided account is already the owner"},"id":3493,"name":"Literal","src":"5354:39:8"}],"id":3494,"name":"FunctionCall","src":"5325:69:8"}],"id":3495,"name":"ExpressionStatement","src":"5325:69:8"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_da72d12cc1dab77bb87826430977e9a5d381ba54a70ad14cb2761e202f01ff3b","typeString":"literal_string \"provided account is the zero address\""}],"overloadedDeclarations":[6460,6461],"referencedDeclaration":6461,"type":"function (bool,string memory) pure","value":"require"},"id":3496,"name":"Identifier","src":"5404:7:8"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3469,"type":"address","value":"_account"},"id":3497,"name":"Identifier","src":"5412:8:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":3498,"name":"ElementaryTypeNameExpression","src":"5424:7:8"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3499,"name":"Literal","src":"5432:1:8"}],"id":3500,"name":"FunctionCall","src":"5424:10:8"}],"id":3501,"name":"BinaryOperation","src":"5412:22:8"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e7420697320746865207a65726f2061646472657373","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is the zero address\"","value":"provided account is the zero address"},"id":3502,"name":"Literal","src":"5436:38:8"}],"id":3503,"name":"FunctionCall","src":"5404:71:8"}],"id":3504,"name":"ExpressionStatement","src":"5404:71:8"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3259,"type":"mapping(address => bool)","value":"_isController"},"id":3505,"name":"Identifier","src":"5485:13:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3469,"type":"address","value":"_account"},"id":3506,"name":"Identifier","src":"5499:8:8"}],"id":3507,"name":"IndexAccess","src":"5485:23:8"},{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":3508,"name":"Literal","src":"5511:4:8"}],"id":3509,"name":"Assignment","src":"5485:30:8"}],"id":3510,"name":"ExpressionStatement","src":"5485:30:8"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3261,"type":"uint256","value":"_controllerCount"},"id":3511,"name":"Identifier","src":"5525:16:8"}],"id":3512,"name":"UnaryOperation","src":"5525:18:8"}],"id":3513,"name":"ExpressionStatement","src":"5525:18:8"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":3231,"type":"function (address,address)","value":"AddedController"},"id":3514,"name":"Identifier","src":"5558:15:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6457,"type":"msg","value":"msg"},"id":3515,"name":"Identifier","src":"5574:3:8"}],"id":3516,"name":"MemberAccess","src":"5574:10:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3469,"type":"address","value":"_account"},"id":3517,"name":"Identifier","src":"5586:8:8"}],"id":3518,"name":"FunctionCall","src":"5558:37:8"}],"id":3519,"name":"EmitStatement","src":"5553:42:8"}],"id":3520,"name":"Block","src":"5150:452:8"}],"id":3521,"name":"FunctionDefinition","src":"5100:502:8"},{"attributes":{"constant":false,"documentation":"@notice Internal-only function that removes an existing controller.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_removeController","payable":false,"scope":3550,"stateMutability":"nonpayable","superFunction":null,"visibility":"private"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":3549,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3522,"name":"ElementaryTypeName","src":"5711:7:8"}],"id":3523,"name":"VariableDeclaration","src":"5711:16:8"}],"id":3524,"name":"ParameterList","src":"5710:18:8"},{"attributes":{"parameters":[null]},"children":[],"id":3525,"name":"ParameterList","src":"5737:0:8"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_61b6700985eb6a295850095b1dc6d25862c09fd9ea7ce39c0e5f303dfe8ed582","typeString":"literal_string \"provided account is not a controller\""}],"overloadedDeclarations":[6460,6461],"referencedDeclaration":6461,"type":"function (bool,string memory) pure","value":"require"},"id":3526,"name":"Identifier","src":"5747:7:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3259,"type":"mapping(address => bool)","value":"_isController"},"id":3527,"name":"Identifier","src":"5755:13:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3523,"type":"address","value":"_account"},"id":3528,"name":"Identifier","src":"5769:8:8"}],"id":3529,"name":"IndexAccess","src":"5755:23:8"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e74206973206e6f74206120636f6e74726f6c6c6572","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is not a controller\"","value":"provided account is not a controller"},"id":3530,"name":"Literal","src":"5780:38:8"}],"id":3531,"name":"FunctionCall","src":"5747:72:8"}],"id":3532,"name":"ExpressionStatement","src":"5747:72:8"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3259,"type":"mapping(address => bool)","value":"_isController"},"id":3533,"name":"Identifier","src":"5829:13:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3523,"type":"address","value":"_account"},"id":3534,"name":"Identifier","src":"5843:8:8"}],"id":3535,"name":"IndexAccess","src":"5829:23:8"},{"attributes":{"argumentTypes":null,"hexvalue":"66616c7365","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"false"},"id":3536,"name":"Literal","src":"5855:5:8"}],"id":3537,"name":"Assignment","src":"5829:31:8"}],"id":3538,"name":"ExpressionStatement","src":"5829:31:8"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"--","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3261,"type":"uint256","value":"_controllerCount"},"id":3539,"name":"Identifier","src":"5870:16:8"}],"id":3540,"name":"UnaryOperation","src":"5870:18:8"}],"id":3541,"name":"ExpressionStatement","src":"5870:18:8"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":3237,"type":"function (address,address)","value":"RemovedController"},"id":3542,"name":"Identifier","src":"5903:17:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6457,"type":"msg","value":"msg"},"id":3543,"name":"Identifier","src":"5921:3:8"}],"id":3544,"name":"MemberAccess","src":"5921:10:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3523,"type":"address","value":"_account"},"id":3545,"name":"Identifier","src":"5933:8:8"}],"id":3546,"name":"FunctionCall","src":"5903:39:8"}],"id":3547,"name":"EmitStatement","src":"5898:44:8"}],"id":3548,"name":"Block","src":"5737:212:8"}],"id":3549,"name":"FunctionDefinition","src":"5684:265:8"}],"id":3550,"name":"ContractDefinition","src":"1335:4616:8"}],"id":3551,"name":"SourceUnit","src":"770:5182:8"}},"internals/ensResolvable.sol":{"AST":{"attributes":{"absolutePath":"internals/ensResolvable.sol","exportedSymbols":{"ENSResolvable":[2326]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".25"]},"id":2277,"name":"PragmaDirective","src":"773:24:9"},{"attributes":{"SourceUnit":3631,"absolutePath":"externals/ens/ENS.sol","file":"../externals/ens/ENS.sol","scope":2327,"symbolAliases":[null],"unitAlias":""},"id":2278,"name":"ImportDirective","src":"799:34:9"},{"attributes":{"SourceUnit":4139,"absolutePath":"externals/ens/PublicResolver.sol","file":"../externals/ens/PublicResolver.sol","scope":2327,"symbolAliases":[null],"unitAlias":""},"id":2279,"name":"ImportDirective","src":"834:45:9"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"contract","documentation":"@title ENSResolvable - Ethereum Name Service Resolver\n@notice contract should be used to get an address for an ENS nodeHash","fullyImplemented":true,"linearizedBaseContracts":[2326],"name":"ENSResolvable","scope":2327},"children":[{"attributes":{"constant":false,"name":"_ens","scope":2326,"stateVariable":true,"storageLocation":"default","type":"contract ENS","value":null,"visibility":"private"},"children":[{"attributes":{"contractScope":null,"name":"ENS","referencedDeclaration":3630,"type":"contract ENS"},"id":2280,"name":"UserDefinedTypeName","src":"1084:3:9"}],"id":2281,"name":"VariableDeclaration","src":"1084:16:9"},{"attributes":{"constant":false,"name":"_ensRegistry","scope":2326,"stateVariable":true,"storageLocation":"default","type":"address","value":null,"visibility":"private"},"children":[{"attributes":{"name":"address","type":"address"},"id":2282,"name":"ElementaryTypeName","src":"1179:7:9"}],"id":2283,"name":"VariableDeclaration","src":"1179:28:9"},{"attributes":{"constant":false,"documentation":"@param _ensReg_ is the ENS registry used","implemented":true,"isConstructor":true,"modifiers":[null],"name":"","payable":false,"scope":2326,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_ensReg_","scope":2299,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2284,"name":"ElementaryTypeName","src":"1275:7:9"}],"id":2285,"name":"VariableDeclaration","src":"1275:16:9"}],"id":2286,"name":"ParameterList","src":"1274:18:9"},{"attributes":{"parameters":[null]},"children":[],"id":2287,"name":"ParameterList","src":"1302:0:9"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2283,"type":"address","value":"_ensRegistry"},"id":2288,"name":"Identifier","src":"1312:12:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2285,"type":"address","value":"_ensReg_"},"id":2289,"name":"Identifier","src":"1327:8:9"}],"id":2290,"name":"Assignment","src":"1312:23:9"}],"id":2291,"name":"ExpressionStatement","src":"1312:23:9"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"contract ENS"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2281,"type":"contract ENS","value":"_ens"},"id":2292,"name":"Identifier","src":"1345:4:9"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract ENS","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":3630,"type":"type(contract ENS)","value":"ENS"},"id":2293,"name":"Identifier","src":"1352:3:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2283,"type":"address","value":"_ensRegistry"},"id":2294,"name":"Identifier","src":"1356:12:9"}],"id":2295,"name":"FunctionCall","src":"1352:17:9"}],"id":2296,"name":"Assignment","src":"1345:24:9"}],"id":2297,"name":"ExpressionStatement","src":"1345:24:9"}],"id":2298,"name":"Block","src":"1302:74:9"}],"id":2299,"name":"FunctionDefinition","src":"1263:113:9"},{"attributes":{"constant":true,"documentation":"@notice this is used to that one can observe which ENS registry is being used","implemented":true,"isConstructor":false,"modifiers":[null],"name":"ensRegistry","payable":false,"scope":2326,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":2300,"name":"ParameterList","src":"1488:2:9"},{"children":[{"attributes":{"constant":false,"name":"","scope":2307,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2301,"name":"ElementaryTypeName","src":"1514:7:9"}],"id":2302,"name":"VariableDeclaration","src":"1514:7:9"}],"id":2303,"name":"ParameterList","src":"1513:9:9"},{"children":[{"attributes":{"functionReturnParameters":2303},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2283,"type":"address","value":"_ensRegistry"},"id":2304,"name":"Identifier","src":"1540:12:9"}],"id":2305,"name":"Return","src":"1533:19:9"}],"id":2306,"name":"Block","src":"1523:36:9"}],"id":2307,"name":"FunctionDefinition","src":"1468:91:9"},{"attributes":{"constant":true,"documentation":"@notice helper function used to get the address of a node Hash\n @param _nodeHash of the ENS entry that needs resolving\n @return the address of the said nodeHash","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_ensResolve","payable":false,"scope":2326,"stateMutability":"view","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_nodeHash","scope":2325,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":2308,"name":"ElementaryTypeName","src":"1769:7:9"}],"id":2309,"name":"VariableDeclaration","src":"1769:17:9"}],"id":2310,"name":"ParameterList","src":"1768:19:9"},{"children":[{"attributes":{"constant":false,"name":"","scope":2325,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2311,"name":"ElementaryTypeName","src":"1811:7:9"}],"id":2312,"name":"VariableDeclaration","src":"1811:7:9"}],"id":2313,"name":"ParameterList","src":"1810:9:9"},{"children":[{"attributes":{"functionReturnParameters":2313},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"addr","referencedDeclaration":4097,"type":"function (bytes32) view external returns (address)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract PublicResolver","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":4138,"type":"type(contract PublicResolver)","value":"PublicResolver"},"id":2314,"name":"Identifier","src":"1837:14:9"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"resolver","referencedDeclaration":3622,"type":"function (bytes32) view external returns (address)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2281,"type":"contract ENS","value":"_ens"},"id":2315,"name":"Identifier","src":"1852:4:9"}],"id":2316,"name":"MemberAccess","src":"1852:13:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2309,"type":"bytes32","value":"_nodeHash"},"id":2317,"name":"Identifier","src":"1866:9:9"}],"id":2318,"name":"FunctionCall","src":"1852:24:9"}],"id":2319,"name":"FunctionCall","src":"1837:40:9"}],"id":2320,"name":"MemberAccess","src":"1837:45:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2309,"type":"bytes32","value":"_nodeHash"},"id":2321,"name":"Identifier","src":"1883:9:9"}],"id":2322,"name":"FunctionCall","src":"1837:56:9"}],"id":2323,"name":"Return","src":"1830:63:9"}],"id":2324,"name":"Block","src":"1820:80:9"}],"id":2325,"name":"FunctionDefinition","src":"1748:152:9"}],"id":2326,"name":"ContractDefinition","src":"1012:891:9"}],"id":2327,"name":"SourceUnit","src":"773:1131:9"}},"internals/ownable.sol":{"AST":{"attributes":{"absolutePath":"internals/ownable.sol","exportedSymbols":{"Ownable":[2483]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".25"]},"id":2328,"name":"PragmaDirective","src":"767:24:10"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"contract","documentation":"@title Ownable has an owner address and provides basic authorization control functions.\n This contract is modified version of the MIT OpenZepplin Ownable contract\n This contract allows for the transferOwnership operation to be made impossible\n https://github.com/OpenZeppelin/openzeppelin-solidity/blob/master/contracts/ownership/Ownable.sol","fullyImplemented":true,"linearizedBaseContracts":[2483],"name":"Ownable","scope":2484},"children":[{"attributes":{"anonymous":false,"documentation":null,"name":"TransferredOwnership"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_from","scope":2334,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2329,"name":"ElementaryTypeName","src":"1199:7:10"}],"id":2330,"name":"VariableDeclaration","src":"1199:13:10"},{"attributes":{"constant":false,"indexed":false,"name":"_to","scope":2334,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2331,"name":"ElementaryTypeName","src":"1214:7:10"}],"id":2332,"name":"VariableDeclaration","src":"1214:11:10"}],"id":2333,"name":"ParameterList","src":"1198:28:10"}],"id":2334,"name":"EventDefinition","src":"1172:55:10"},{"attributes":{"anonymous":false,"documentation":null,"name":"LockedOwnership"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_locked","scope":2338,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2335,"name":"ElementaryTypeName","src":"1254:7:10"}],"id":2336,"name":"VariableDeclaration","src":"1254:15:10"}],"id":2337,"name":"ParameterList","src":"1253:17:10"}],"id":2338,"name":"EventDefinition","src":"1232:39:10"},{"attributes":{"constant":false,"name":"_owner","scope":2483,"stateVariable":true,"storageLocation":"default","type":"address","value":null,"visibility":"private"},"children":[{"attributes":{"name":"address","type":"address"},"id":2339,"name":"ElementaryTypeName","src":"1277:7:10"}],"id":2340,"name":"VariableDeclaration","src":"1277:22:10"},{"attributes":{"constant":false,"name":"_isTransferable","scope":2483,"stateVariable":true,"storageLocation":"default","type":"bool","value":null,"visibility":"private"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2341,"name":"ElementaryTypeName","src":"1305:4:10"}],"id":2342,"name":"VariableDeclaration","src":"1305:28:10"},{"attributes":{"constant":false,"documentation":"@notice Constructor sets the original owner of the contract and whether or not it is one time transferable.","implemented":true,"isConstructor":true,"modifiers":[null],"name":"","payable":false,"scope":2483,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account_","scope":2373,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2343,"name":"ElementaryTypeName","src":"1468:7:10"}],"id":2344,"name":"VariableDeclaration","src":"1468:17:10"},{"attributes":{"constant":false,"name":"_transferable_","scope":2373,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2345,"name":"ElementaryTypeName","src":"1487:4:10"}],"id":2346,"name":"VariableDeclaration","src":"1487:19:10"}],"id":2347,"name":"ParameterList","src":"1467:40:10"},{"attributes":{"parameters":[null]},"children":[],"id":2348,"name":"ParameterList","src":"1517:0:10"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2340,"type":"address","value":"_owner"},"id":2349,"name":"Identifier","src":"1527:6:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2344,"type":"address","value":"_account_"},"id":2350,"name":"Identifier","src":"1536:9:10"}],"id":2351,"name":"Assignment","src":"1527:18:10"}],"id":2352,"name":"ExpressionStatement","src":"1527:18:10"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2342,"type":"bool","value":"_isTransferable"},"id":2353,"name":"Identifier","src":"1555:15:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2346,"type":"bool","value":"_transferable_"},"id":2354,"name":"Identifier","src":"1573:14:10"}],"id":2355,"name":"Assignment","src":"1555:32:10"}],"id":2356,"name":"ExpressionStatement","src":"1555:32:10"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2342,"type":"bool","value":"_isTransferable"},"id":2357,"name":"Identifier","src":"1671:15:10"}],"id":2358,"name":"UnaryOperation","src":"1670:16:10"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2338,"type":"function (address)","value":"LockedOwnership"},"id":2359,"name":"Identifier","src":"1707:15:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2344,"type":"address","value":"_account_"},"id":2360,"name":"Identifier","src":"1723:9:10"}],"id":2361,"name":"FunctionCall","src":"1707:26:10"}],"id":2362,"name":"EmitStatement","src":"1702:31:10"}],"id":2363,"name":"Block","src":"1688:56:10"}],"id":2364,"name":"IfStatement","src":"1666:78:10"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2334,"type":"function (address,address)","value":"TransferredOwnership"},"id":2365,"name":"Identifier","src":"1758:20:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":2366,"name":"ElementaryTypeNameExpression","src":"1779:7:10"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2367,"name":"Literal","src":"1787:1:10"}],"id":2368,"name":"FunctionCall","src":"1779:10:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2344,"type":"address","value":"_account_"},"id":2369,"name":"Identifier","src":"1791:9:10"}],"id":2370,"name":"FunctionCall","src":"1758:43:10"}],"id":2371,"name":"EmitStatement","src":"1753:48:10"}],"id":2372,"name":"Block","src":"1517:291:10"}],"id":2373,"name":"FunctionDefinition","src":"1456:352:10"},{"attributes":{"documentation":"@notice Reverts if called by any account other than the owner.","name":"onlyOwner","visibility":"internal"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":2374,"name":"ParameterList","src":"1903:2:10"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_96d7cc6c06f3d4101b2a14e4ad2906b79dc824ab8a44b63e774a71d2b9c7abd2","typeString":"literal_string \"sender is not an owner\""}],"overloadedDeclarations":[6460,6461],"referencedDeclaration":6461,"type":"function (bool,string memory) pure","value":"require"},"id":2375,"name":"Identifier","src":"1916:7:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2482,"type":"function (address) view returns (bool)","value":"_isOwner"},"id":2376,"name":"Identifier","src":"1924:8:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6457,"type":"msg","value":"msg"},"id":2377,"name":"Identifier","src":"1933:3:10"}],"id":2378,"name":"MemberAccess","src":"1933:10:10"}],"id":2379,"name":"FunctionCall","src":"1924:20:10"},{"attributes":{"argumentTypes":null,"hexvalue":"73656e646572206973206e6f7420616e206f776e6572","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"sender is not an owner\"","value":"sender is not an owner"},"id":2380,"name":"Literal","src":"1946:24:10"}],"id":2381,"name":"FunctionCall","src":"1916:55:10"}],"id":2382,"name":"ExpressionStatement","src":"1916:55:10"},{"id":2383,"name":"PlaceholderStatement","src":"1981:1:10"}],"id":2384,"name":"Block","src":"1906:83:10"}],"id":2385,"name":"ModifierDefinition","src":"1885:104:10"},{"attributes":{"constant":false,"documentation":"@notice Allows the current owner to transfer control of the contract to a new address.\n @param _account address to transfer ownership to.\n @param _transferable indicates whether to keep the ownership transferable.","implemented":true,"isConstructor":false,"name":"transferOwnership","payable":false,"scope":2483,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":2430,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2386,"name":"ElementaryTypeName","src":"2258:7:10"}],"id":2387,"name":"VariableDeclaration","src":"2258:16:10"},{"attributes":{"constant":false,"name":"_transferable","scope":2430,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2388,"name":"ElementaryTypeName","src":"2276:4:10"}],"id":2389,"name":"VariableDeclaration","src":"2276:18:10"}],"id":2390,"name":"ParameterList","src":"2257:38:10"},{"attributes":{"parameters":[null]},"children":[],"id":2393,"name":"ParameterList","src":"2315:0:10"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2385,"type":"modifier ()","value":"onlyOwner"},"id":2391,"name":"Identifier","src":"2305:9:10"}],"id":2392,"name":"ModifierInvocation","src":"2305:9:10"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b2967f1eb3e333ead270a5eb332284149554452f916a981f27e70894d40a893f","typeString":"literal_string \"ownership is not transferable\""}],"overloadedDeclarations":[6460,6461],"referencedDeclaration":6461,"type":"function (bool,string memory) pure","value":"require"},"id":2394,"name":"Identifier","src":"2380:7:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2342,"type":"bool","value":"_isTransferable"},"id":2395,"name":"Identifier","src":"2388:15:10"},{"attributes":{"argumentTypes":null,"hexvalue":"6f776e657273686970206973206e6f74207472616e7366657261626c65","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"ownership is not transferable\"","value":"ownership is not transferable"},"id":2396,"name":"Literal","src":"2405:31:10"}],"id":2397,"name":"FunctionCall","src":"2380:57:10"}],"id":2398,"name":"ExpressionStatement","src":"2380:57:10"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_be619f073d6b85c603c617050d1729f1cf3b31bf6ae5ae03f35765577d9bb6c8","typeString":"literal_string \"owner cannot be set to zero address\""}],"overloadedDeclarations":[6460,6461],"referencedDeclaration":6461,"type":"function (bool,string memory) pure","value":"require"},"id":2399,"name":"Identifier","src":"2510:7:10"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2387,"type":"address","value":"_account"},"id":2400,"name":"Identifier","src":"2518:8:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":2401,"name":"ElementaryTypeNameExpression","src":"2530:7:10"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2402,"name":"Literal","src":"2538:1:10"}],"id":2403,"name":"FunctionCall","src":"2530:10:10"}],"id":2404,"name":"BinaryOperation","src":"2518:22:10"},{"attributes":{"argumentTypes":null,"hexvalue":"6f776e65722063616e6e6f742062652073657420746f207a65726f2061646472657373","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"owner cannot be set to zero address\"","value":"owner cannot be set to zero address"},"id":2405,"name":"Literal","src":"2542:37:10"}],"id":2406,"name":"FunctionCall","src":"2510:70:10"}],"id":2407,"name":"ExpressionStatement","src":"2510:70:10"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2342,"type":"bool","value":"_isTransferable"},"id":2408,"name":"Identifier","src":"2665:15:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2389,"type":"bool","value":"_transferable"},"id":2409,"name":"Identifier","src":"2683:13:10"}],"id":2410,"name":"Assignment","src":"2665:31:10"}],"id":2411,"name":"ExpressionStatement","src":"2665:31:10"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2389,"type":"bool","value":"_transferable"},"id":2412,"name":"Identifier","src":"2780:13:10"}],"id":2413,"name":"UnaryOperation","src":"2779:14:10"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2338,"type":"function (address)","value":"LockedOwnership"},"id":2414,"name":"Identifier","src":"2814:15:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2387,"type":"address","value":"_account"},"id":2415,"name":"Identifier","src":"2830:8:10"}],"id":2416,"name":"FunctionCall","src":"2814:25:10"}],"id":2417,"name":"EmitStatement","src":"2809:30:10"}],"id":2418,"name":"Block","src":"2795:55:10"}],"id":2419,"name":"IfStatement","src":"2775:75:10"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2334,"type":"function (address,address)","value":"TransferredOwnership"},"id":2420,"name":"Identifier","src":"2910:20:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2340,"type":"address","value":"_owner"},"id":2421,"name":"Identifier","src":"2931:6:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2387,"type":"address","value":"_account"},"id":2422,"name":"Identifier","src":"2939:8:10"}],"id":2423,"name":"FunctionCall","src":"2910:38:10"}],"id":2424,"name":"EmitStatement","src":"2905:43:10"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2340,"type":"address","value":"_owner"},"id":2425,"name":"Identifier","src":"3008:6:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2387,"type":"address","value":"_account"},"id":2426,"name":"Identifier","src":"3017:8:10"}],"id":2427,"name":"Assignment","src":"3008:17:10"}],"id":2428,"name":"ExpressionStatement","src":"3008:17:10"}],"id":2429,"name":"Block","src":"2315:717:10"}],"id":2430,"name":"FunctionDefinition","src":"2231:801:10"},{"attributes":{"constant":true,"documentation":"@notice check if the ownership is transferable.\n @return true if the ownership is transferable.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"isTransferable","payable":false,"scope":2483,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":2431,"name":"ParameterList","src":"3172:2:10"},{"children":[{"attributes":{"constant":false,"name":"","scope":2438,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2432,"name":"ElementaryTypeName","src":"3198:4:10"}],"id":2433,"name":"VariableDeclaration","src":"3198:4:10"}],"id":2434,"name":"ParameterList","src":"3197:6:10"},{"children":[{"attributes":{"functionReturnParameters":2434},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2342,"type":"bool","value":"_isTransferable"},"id":2435,"name":"Identifier","src":"3221:15:10"}],"id":2436,"name":"Return","src":"3214:22:10"}],"id":2437,"name":"Block","src":"3204:39:10"}],"id":2438,"name":"FunctionDefinition","src":"3149:94:10"},{"attributes":{"constant":false,"documentation":"@notice Allows the current owner to relinquish control of the contract.\n @dev Renouncing to ownership will leave the contract without an owner and unusable.\n @dev It will not be possible to call the functions with the `onlyOwner` modifier anymore.","implemented":true,"isConstructor":false,"name":"renounceOwnership","payable":false,"scope":2483,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":2439,"name":"ParameterList","src":"3545:2:10"},{"attributes":{"parameters":[null]},"children":[],"id":2442,"name":"ParameterList","src":"3567:0:10"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2385,"type":"modifier ()","value":"onlyOwner"},"id":2440,"name":"Identifier","src":"3557:9:10"}],"id":2441,"name":"ModifierInvocation","src":"3557:9:10"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b2967f1eb3e333ead270a5eb332284149554452f916a981f27e70894d40a893f","typeString":"literal_string \"ownership is not transferable\""}],"overloadedDeclarations":[6460,6461],"referencedDeclaration":6461,"type":"function (bool,string memory) pure","value":"require"},"id":2443,"name":"Identifier","src":"3632:7:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2342,"type":"bool","value":"_isTransferable"},"id":2444,"name":"Identifier","src":"3640:15:10"},{"attributes":{"argumentTypes":null,"hexvalue":"6f776e657273686970206973206e6f74207472616e7366657261626c65","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"ownership is not transferable\"","value":"ownership is not transferable"},"id":2445,"name":"Literal","src":"3657:31:10"}],"id":2446,"name":"FunctionCall","src":"3632:57:10"}],"id":2447,"name":"ExpressionStatement","src":"3632:57:10"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2340,"type":"address","value":"_owner"},"id":2448,"name":"Identifier","src":"3743:6:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":2449,"name":"ElementaryTypeNameExpression","src":"3752:7:10"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2450,"name":"Literal","src":"3760:1:10"}],"id":2451,"name":"FunctionCall","src":"3752:10:10"}],"id":2452,"name":"Assignment","src":"3743:19:10"}],"id":2453,"name":"ExpressionStatement","src":"3743:19:10"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2334,"type":"function (address,address)","value":"TransferredOwnership"},"id":2454,"name":"Identifier","src":"3778:20:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2340,"type":"address","value":"_owner"},"id":2455,"name":"Identifier","src":"3799:6:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":2456,"name":"ElementaryTypeNameExpression","src":"3807:7:10"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2457,"name":"Literal","src":"3815:1:10"}],"id":2458,"name":"FunctionCall","src":"3807:10:10"}],"id":2459,"name":"FunctionCall","src":"3778:40:10"}],"id":2460,"name":"EmitStatement","src":"3773:45:10"}],"id":2461,"name":"Block","src":"3567:258:10"}],"id":2462,"name":"FunctionDefinition","src":"3519:306:10"},{"attributes":{"constant":true,"documentation":"@notice Find out owner address\n @return address of the owner.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"owner","payable":false,"scope":2483,"stateMutability":"view","superFunction":null,"visibility":"public"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":2463,"name":"ParameterList","src":"3922:2:10"},{"children":[{"attributes":{"constant":false,"name":"","scope":2470,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2464,"name":"ElementaryTypeName","src":"3946:7:10"}],"id":2465,"name":"VariableDeclaration","src":"3946:7:10"}],"id":2466,"name":"ParameterList","src":"3945:9:10"},{"children":[{"attributes":{"functionReturnParameters":2466},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2340,"type":"address","value":"_owner"},"id":2467,"name":"Identifier","src":"3972:6:10"}],"id":2468,"name":"Return","src":"3965:13:10"}],"id":2469,"name":"Block","src":"3955:30:10"}],"id":2470,"name":"FunctionDefinition","src":"3908:77:10"},{"attributes":{"constant":true,"documentation":"@notice Check if owner address\n @return true if sender is the owner of the contract.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_isOwner","payable":false,"scope":2483,"stateMutability":"view","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_address","scope":2482,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2471,"name":"ElementaryTypeName","src":"4109:7:10"}],"id":2472,"name":"VariableDeclaration","src":"4109:16:10"}],"id":2473,"name":"ParameterList","src":"4108:18:10"},{"children":[{"attributes":{"constant":false,"name":"","scope":2482,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2474,"name":"ElementaryTypeName","src":"4150:4:10"}],"id":2475,"name":"VariableDeclaration","src":"4150:4:10"}],"id":2476,"name":"ParameterList","src":"4149:6:10"},{"children":[{"attributes":{"functionReturnParameters":2476},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2472,"type":"address","value":"_address"},"id":2477,"name":"Identifier","src":"4173:8:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2340,"type":"address","value":"_owner"},"id":2478,"name":"Identifier","src":"4185:6:10"}],"id":2479,"name":"BinaryOperation","src":"4173:18:10"}],"id":2480,"name":"Return","src":"4166:25:10"}],"id":2481,"name":"Block","src":"4156:42:10"}],"id":2482,"name":"FunctionDefinition","src":"4091:107:10"}],"id":2483,"name":"ContractDefinition","src":"1149:3051:10"}],"id":2484,"name":"SourceUnit","src":"767:3434:10"}},"internals/tokenWhitelist.sol":{"AST":{"attributes":{"absolutePath":"internals/tokenWhitelist.sol","exportedSymbols":{"ITokenWhitelist":[4201],"TokenWhitelist":[4694]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".25"]},"id":4140,"name":"PragmaDirective","src":"774:24:11"},{"attributes":{"SourceUnit":2484,"absolutePath":"internals/ownable.sol","file":"./ownable.sol","scope":4695,"symbolAliases":[null],"unitAlias":""},"id":4141,"name":"ImportDirective","src":"800:23:11"},{"attributes":{"SourceUnit":2276,"absolutePath":"internals/controllable.sol","file":"./controllable.sol","scope":4695,"symbolAliases":[null],"unitAlias":""},"id":4142,"name":"ImportDirective","src":"824:28:11"},{"attributes":{"SourceUnit":6443,"absolutePath":"externals/strings.sol","file":"../externals/strings.sol","scope":4695,"symbolAliases":[null],"unitAlias":""},"id":4143,"name":"ImportDirective","src":"853:34:11"},{"attributes":{"SourceUnit":2220,"absolutePath":"externals/SafeMath.sol","file":"../externals/SafeMath.sol","scope":4695,"symbolAliases":[null],"unitAlias":""},"id":4144,"name":"ImportDirective","src":"888:35:11"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"interface","documentation":"@title The ITokenWhitelist interface provides access to a whitelist of tokens.","fullyImplemented":false,"linearizedBaseContracts":[4201],"name":"ITokenWhitelist","scope":4695},"children":[{"attributes":{"body":null,"constant":true,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"getTokenInfo","payable":false,"scope":4201,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"","scope":4163,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":4145,"name":"ElementaryTypeName","src":"1062:7:11"}],"id":4146,"name":"VariableDeclaration","src":"1062:7:11"}],"id":4147,"name":"ParameterList","src":"1061:9:11"},{"children":[{"attributes":{"constant":false,"name":"","scope":4163,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":4148,"name":"ElementaryTypeName","src":"1094:6:11"}],"id":4149,"name":"VariableDeclaration","src":"1094:6:11"},{"attributes":{"constant":false,"name":"","scope":4163,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":4150,"name":"ElementaryTypeName","src":"1102:7:11"}],"id":4151,"name":"VariableDeclaration","src":"1102:7:11"},{"attributes":{"constant":false,"name":"","scope":4163,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":4152,"name":"ElementaryTypeName","src":"1111:7:11"}],"id":4153,"name":"VariableDeclaration","src":"1111:7:11"},{"attributes":{"constant":false,"name":"","scope":4163,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":4154,"name":"ElementaryTypeName","src":"1120:4:11"}],"id":4155,"name":"VariableDeclaration","src":"1120:4:11"},{"attributes":{"constant":false,"name":"","scope":4163,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":4156,"name":"ElementaryTypeName","src":"1126:4:11"}],"id":4157,"name":"VariableDeclaration","src":"1126:4:11"},{"attributes":{"constant":false,"name":"","scope":4163,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":4158,"name":"ElementaryTypeName","src":"1132:4:11"}],"id":4159,"name":"VariableDeclaration","src":"1132:4:11"},{"attributes":{"constant":false,"name":"","scope":4163,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":4160,"name":"ElementaryTypeName","src":"1138:7:11"}],"id":4161,"name":"VariableDeclaration","src":"1138:7:11"}],"id":4162,"name":"ParameterList","src":"1093:53:11"}],"id":4163,"name":"FunctionDefinition","src":"1040:107:11"},{"attributes":{"body":null,"constant":true,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"getStablecoinInfo","payable":false,"scope":4201,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":4164,"name":"ParameterList","src":"1178:2:11"},{"children":[{"attributes":{"constant":false,"name":"","scope":4180,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":4165,"name":"ElementaryTypeName","src":"1204:6:11"}],"id":4166,"name":"VariableDeclaration","src":"1204:6:11"},{"attributes":{"constant":false,"name":"","scope":4180,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":4167,"name":"ElementaryTypeName","src":"1212:7:11"}],"id":4168,"name":"VariableDeclaration","src":"1212:7:11"},{"attributes":{"constant":false,"name":"","scope":4180,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":4169,"name":"ElementaryTypeName","src":"1221:7:11"}],"id":4170,"name":"VariableDeclaration","src":"1221:7:11"},{"attributes":{"constant":false,"name":"","scope":4180,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":4171,"name":"ElementaryTypeName","src":"1230:4:11"}],"id":4172,"name":"VariableDeclaration","src":"1230:4:11"},{"attributes":{"constant":false,"name":"","scope":4180,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":4173,"name":"ElementaryTypeName","src":"1236:4:11"}],"id":4174,"name":"VariableDeclaration","src":"1236:4:11"},{"attributes":{"constant":false,"name":"","scope":4180,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":4175,"name":"ElementaryTypeName","src":"1242:4:11"}],"id":4176,"name":"VariableDeclaration","src":"1242:4:11"},{"attributes":{"constant":false,"name":"","scope":4180,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":4177,"name":"ElementaryTypeName","src":"1248:7:11"}],"id":4178,"name":"VariableDeclaration","src":"1248:7:11"}],"id":4179,"name":"ParameterList","src":"1203:53:11"}],"id":4180,"name":"FunctionDefinition","src":"1152:105:11"},{"attributes":{"body":null,"constant":true,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"tokenAddressArray","payable":false,"scope":4201,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":4181,"name":"ParameterList","src":"1288:2:11"},{"children":[{"attributes":{"constant":false,"name":"","scope":4186,"stateVariable":false,"storageLocation":"default","type":"address[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"address[]"},"children":[{"attributes":{"name":"address","type":"address"},"id":4182,"name":"ElementaryTypeName","src":"1314:7:11"}],"id":4183,"name":"ArrayTypeName","src":"1314:9:11"}],"id":4184,"name":"VariableDeclaration","src":"1314:9:11"}],"id":4185,"name":"ParameterList","src":"1313:11:11"}],"id":4186,"name":"FunctionDefinition","src":"1262:63:11"},{"attributes":{"body":null,"constant":false,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"updateTokenRate","payable":false,"scope":4201,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"","scope":4195,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":4187,"name":"ElementaryTypeName","src":"1355:7:11"}],"id":4188,"name":"VariableDeclaration","src":"1355:7:11"},{"attributes":{"constant":false,"name":"","scope":4195,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4189,"name":"ElementaryTypeName","src":"1364:4:11"}],"id":4190,"name":"VariableDeclaration","src":"1364:4:11"},{"attributes":{"constant":false,"name":"","scope":4195,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4191,"name":"ElementaryTypeName","src":"1370:4:11"}],"id":4192,"name":"VariableDeclaration","src":"1370:4:11"}],"id":4193,"name":"ParameterList","src":"1354:21:11"},{"attributes":{"parameters":[null]},"children":[],"id":4194,"name":"ParameterList","src":"1384:0:11"}],"id":4195,"name":"FunctionDefinition","src":"1330:55:11"},{"attributes":{"body":null,"constant":true,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"stablecoin","payable":false,"scope":4201,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":4196,"name":"ParameterList","src":"1409:2:11"},{"children":[{"attributes":{"constant":false,"name":"","scope":4200,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":4197,"name":"ElementaryTypeName","src":"1435:7:11"}],"id":4198,"name":"VariableDeclaration","src":"1435:7:11"}],"id":4199,"name":"ParameterList","src":"1434:9:11"}],"id":4200,"name":"FunctionDefinition","src":"1390:54:11"}],"id":4201,"name":"ContractDefinition","src":"1008:438:11"},{"attributes":{"contractDependencies":[2275,2326,2483],"contractKind":"contract","documentation":"@title TokenWhitelist stores a list of tokens used by the Consumer Contract Wallet, the Oracle, the TKN Holder and the TKN Licence Contract","fullyImplemented":true,"linearizedBaseContracts":[4694,2483,2275,2326],"name":"TokenWhitelist","scope":4695},"children":[{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"ENSResolvable","referencedDeclaration":2326,"type":"contract ENSResolvable"},"id":4202,"name":"UserDefinedTypeName","src":"1620:13:11"}],"id":4203,"name":"InheritanceSpecifier","src":"1620:13:11"},{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"Controllable","referencedDeclaration":2275,"type":"contract Controllable"},"id":4204,"name":"UserDefinedTypeName","src":"1635:12:11"}],"id":4205,"name":"InheritanceSpecifier","src":"1635:12:11"},{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"Ownable","referencedDeclaration":2483,"type":"contract Ownable"},"id":4206,"name":"UserDefinedTypeName","src":"1649:7:11"}],"id":4207,"name":"InheritanceSpecifier","src":"1649:7:11"},{"attributes":{"typeName":null},"children":[{"attributes":{"contractScope":null,"name":"strings","referencedDeclaration":6442,"type":"library strings"},"id":4208,"name":"UserDefinedTypeName","src":"1669:7:11"}],"id":4209,"name":"UsingForDirective","src":"1663:20:11"},{"children":[{"attributes":{"contractScope":null,"name":"SafeMath","referencedDeclaration":2219,"type":"library SafeMath"},"id":4210,"name":"UserDefinedTypeName","src":"1694:8:11"},{"attributes":{"name":"uint256","type":"uint256"},"id":4211,"name":"ElementaryTypeName","src":"1707:7:11"}],"id":4212,"name":"UsingForDirective","src":"1688:27:11"},{"attributes":{"anonymous":false,"documentation":null,"name":"UpdatedTokenRate"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_sender","scope":4220,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":4213,"name":"ElementaryTypeName","src":"1744:7:11"}],"id":4214,"name":"VariableDeclaration","src":"1744:15:11"},{"attributes":{"constant":false,"indexed":false,"name":"_token","scope":4220,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":4215,"name":"ElementaryTypeName","src":"1761:7:11"}],"id":4216,"name":"VariableDeclaration","src":"1761:14:11"},{"attributes":{"constant":false,"indexed":false,"name":"_rate","scope":4220,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4217,"name":"ElementaryTypeName","src":"1777:4:11"}],"id":4218,"name":"VariableDeclaration","src":"1777:10:11"}],"id":4219,"name":"ParameterList","src":"1743:45:11"}],"id":4220,"name":"EventDefinition","src":"1721:68:11"},{"attributes":{"anonymous":false,"documentation":null,"name":"AddedToken"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_sender","scope":4234,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":4221,"name":"ElementaryTypeName","src":"1812:7:11"}],"id":4222,"name":"VariableDeclaration","src":"1812:15:11"},{"attributes":{"constant":false,"indexed":false,"name":"_token","scope":4234,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":4223,"name":"ElementaryTypeName","src":"1829:7:11"}],"id":4224,"name":"VariableDeclaration","src":"1829:14:11"},{"attributes":{"constant":false,"indexed":false,"name":"_symbol","scope":4234,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":4225,"name":"ElementaryTypeName","src":"1845:6:11"}],"id":4226,"name":"VariableDeclaration","src":"1845:14:11"},{"attributes":{"constant":false,"indexed":false,"name":"_magnitude","scope":4234,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4227,"name":"ElementaryTypeName","src":"1861:4:11"}],"id":4228,"name":"VariableDeclaration","src":"1861:15:11"},{"attributes":{"constant":false,"indexed":false,"name":"_loadable","scope":4234,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":4229,"name":"ElementaryTypeName","src":"1878:4:11"}],"id":4230,"name":"VariableDeclaration","src":"1878:14:11"},{"attributes":{"constant":false,"indexed":false,"name":"_burnable","scope":4234,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":4231,"name":"ElementaryTypeName","src":"1894:4:11"}],"id":4232,"name":"VariableDeclaration","src":"1894:14:11"}],"id":4233,"name":"ParameterList","src":"1811:98:11"}],"id":4234,"name":"EventDefinition","src":"1795:115:11"},{"attributes":{"anonymous":false,"documentation":null,"name":"RemovedToken"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_sender","scope":4240,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":4235,"name":"ElementaryTypeName","src":"1934:7:11"}],"id":4236,"name":"VariableDeclaration","src":"1934:15:11"},{"attributes":{"constant":false,"indexed":false,"name":"_token","scope":4240,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":4237,"name":"ElementaryTypeName","src":"1951:7:11"}],"id":4238,"name":"VariableDeclaration","src":"1951:14:11"}],"id":4239,"name":"ParameterList","src":"1933:33:11"}],"id":4240,"name":"EventDefinition","src":"1915:52:11"},{"attributes":{"canonicalName":"TokenWhitelist.Token","name":"Token","scope":4694,"visibility":"public"},"children":[{"attributes":{"constant":false,"name":"symbol","scope":4255,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":4241,"name":"ElementaryTypeName","src":"1996:6:11"}],"id":4242,"name":"VariableDeclaration","src":"1996:13:11"},{"attributes":{"constant":false,"name":"magnitude","scope":4255,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4243,"name":"ElementaryTypeName","src":"2038:4:11"}],"id":4244,"name":"VariableDeclaration","src":"2038:14:11"},{"attributes":{"constant":false,"name":"rate","scope":4255,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4245,"name":"ElementaryTypeName","src":"2079:4:11"}],"id":4246,"name":"VariableDeclaration","src":"2079:9:11"},{"attributes":{"constant":false,"name":"available","scope":4255,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":4247,"name":"ElementaryTypeName","src":"2135:4:11"}],"id":4248,"name":"VariableDeclaration","src":"2135:14:11"},{"attributes":{"constant":false,"name":"loadable","scope":4255,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":4249,"name":"ElementaryTypeName","src":"2203:4:11"}],"id":4250,"name":"VariableDeclaration","src":"2203:13:11"},{"attributes":{"constant":false,"name":"burnable","scope":4255,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":4251,"name":"ElementaryTypeName","src":"2276:4:11"}],"id":4252,"name":"VariableDeclaration","src":"2276:13:11"},{"attributes":{"constant":false,"name":"lastUpdate","scope":4255,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4253,"name":"ElementaryTypeName","src":"2359:4:11"}],"id":4254,"name":"VariableDeclaration","src":"2359:15:11"}],"id":4255,"name":"StructDefinition","src":"1973:441:11"},{"attributes":{"constant":false,"name":"_tokenInfoMap","scope":4694,"stateVariable":true,"storageLocation":"default","type":"mapping(address => struct TokenWhitelist.Token)","value":null,"visibility":"private"},"children":[{"attributes":{"type":"mapping(address => struct TokenWhitelist.Token)"},"children":[{"attributes":{"name":"address","type":"address"},"id":4256,"name":"ElementaryTypeName","src":"2428:7:11"},{"attributes":{"contractScope":null,"name":"Token","referencedDeclaration":4255,"type":"struct TokenWhitelist.Token"},"id":4257,"name":"UserDefinedTypeName","src":"2439:5:11"}],"id":4258,"name":"Mapping","src":"2420:25:11"}],"id":4259,"name":"VariableDeclaration","src":"2420:47:11"},{"attributes":{"constant":false,"name":"_tokenAddressArray","scope":4694,"stateVariable":true,"storageLocation":"default","type":"address[]","value":null,"visibility":"private"},"children":[{"attributes":{"length":null,"type":"address[]"},"children":[{"attributes":{"name":"address","type":"address"},"id":4260,"name":"ElementaryTypeName","src":"2473:7:11"}],"id":4261,"name":"ArrayTypeName","src":"2473:9:11"}],"id":4262,"name":"VariableDeclaration","src":"2473:36:11"},{"attributes":{"documentation":null,"name":"onlyControllerOrOracle","visibility":"internal"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":4263,"name":"ParameterList","src":"2547:2:11"},{"children":[{"attributes":{"assignments":[4265]},"children":[{"attributes":{"constant":false,"name":"oracleAddress","scope":4285,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":4264,"name":"ElementaryTypeName","src":"2560:7:11"}],"id":4265,"name":"VariableDeclaration","src":"2560:21:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[null],"referencedDeclaration":2325,"type":"function (bytes32) view returns (address)","value":"_ensResolve"},"id":4266,"name":"Identifier","src":"2584:11:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4289,"type":"bytes32","value":"_oracleNode"},"id":4267,"name":"Identifier","src":"2596:11:11"}],"id":4268,"name":"FunctionCall","src":"2584:24:11"}],"id":4269,"name":"VariableDeclarationStatement","src":"2560:48:11"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7f651a1c3852ff2a697b659eaace9616ca61af623afbb095898c910cf89ec35f","typeString":"literal_string \"either oracle or controller\""}],"overloadedDeclarations":[6460,6461],"referencedDeclaration":6461,"type":"function (bool,string memory) pure","value":"require"},"id":4270,"name":"Identifier","src":"2618:7:11"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"||","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2274,"type":"function (address) view returns (bool)","value":"_isController"},"id":4271,"name":"Identifier","src":"2627:13:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6457,"type":"msg","value":"msg"},"id":4272,"name":"Identifier","src":"2641:3:11"}],"id":4273,"name":"MemberAccess","src":"2641:10:11"}],"id":4274,"name":"FunctionCall","src":"2627:25:11"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6457,"type":"msg","value":"msg"},"id":4275,"name":"Identifier","src":"2656:3:11"}],"id":4276,"name":"MemberAccess","src":"2656:10:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4265,"type":"address","value":"oracleAddress"},"id":4277,"name":"Identifier","src":"2670:13:11"}],"id":4278,"name":"BinaryOperation","src":"2656:27:11"}],"id":4279,"name":"BinaryOperation","src":"2627:56:11"},{"attributes":{"argumentTypes":null,"hexvalue":"656974686572206f7261636c65206f7220636f6e74726f6c6c6572","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"either oracle or controller\"","value":"either oracle or controller"},"id":4280,"name":"Literal","src":"2685:29:11"}],"id":4281,"name":"FunctionCall","src":"2618:97:11"}],"id":4282,"name":"ExpressionStatement","src":"2618:97:11"},{"id":4283,"name":"PlaceholderStatement","src":"2725:1:11"}],"id":4284,"name":"Block","src":"2550:183:11"}],"id":4285,"name":"ModifierDefinition","src":"2516:217:11"},{"attributes":{"constant":false,"name":"_stablecoin","scope":4694,"stateVariable":true,"storageLocation":"default","type":"address","value":null,"visibility":"private"},"children":[{"attributes":{"name":"address","type":"address"},"id":4286,"name":"ElementaryTypeName","src":"2782:7:11"}],"id":4287,"name":"VariableDeclaration","src":"2782:27:11"},{"attributes":{"constant":false,"name":"_oracleNode","scope":4694,"stateVariable":true,"storageLocation":"default","type":"bytes32","value":null,"visibility":"private"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":4288,"name":"ElementaryTypeName","src":"2893:7:11"}],"id":4289,"name":"VariableDeclaration","src":"2893:27:11"},{"attributes":{"constant":false,"documentation":"@notice Constructor initializes ENSResolvable, Controllable, and Ownable\n @param _oracleNameHash_ is the ENS name hash of the Oracle.\n @param _stabelcoinAddress_ is the address of the stablecoint used by the wallet","implemented":true,"isConstructor":true,"name":"","payable":false,"scope":4694,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"_ens_","scope":4323,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":4290,"name":"ElementaryTypeName","src":"3176:7:11"}],"id":4291,"name":"VariableDeclaration","src":"3176:13:11"},{"attributes":{"constant":false,"name":"_oracleNameHash_","scope":4323,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":4292,"name":"ElementaryTypeName","src":"3191:7:11"}],"id":4293,"name":"VariableDeclaration","src":"3191:24:11"},{"attributes":{"constant":false,"name":"_controllerNameHash_","scope":4323,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":4294,"name":"ElementaryTypeName","src":"3217:7:11"}],"id":4295,"name":"VariableDeclaration","src":"3217:28:11"},{"attributes":{"constant":false,"name":"_owner_","scope":4323,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":4296,"name":"ElementaryTypeName","src":"3247:7:11"}],"id":4297,"name":"VariableDeclaration","src":"3247:15:11"},{"attributes":{"constant":false,"name":"_transferable_","scope":4323,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":4298,"name":"ElementaryTypeName","src":"3264:4:11"}],"id":4299,"name":"VariableDeclaration","src":"3264:19:11"},{"attributes":{"constant":false,"name":"_stabelcoinAddress_","scope":4323,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":4300,"name":"ElementaryTypeName","src":"3285:7:11"}],"id":4301,"name":"VariableDeclaration","src":"3285:27:11"}],"id":4302,"name":"ParameterList","src":"3175:138:11"},{"attributes":{"parameters":[null]},"children":[],"id":4313,"name":"ParameterList","src":"3410:0:11"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2326,"type":"type(contract ENSResolvable)","value":"ENSResolvable"},"id":4303,"name":"Identifier","src":"3314:13:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4291,"type":"address","value":"_ens_"},"id":4304,"name":"Identifier","src":"3328:5:11"}],"id":4305,"name":"ModifierInvocation","src":"3314:20:11"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2275,"type":"type(contract Controllable)","value":"Controllable"},"id":4306,"name":"Identifier","src":"3335:12:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4295,"type":"bytes32","value":"_controllerNameHash_"},"id":4307,"name":"Identifier","src":"3348:20:11"}],"id":4308,"name":"ModifierInvocation","src":"3335:34:11"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2483,"type":"type(contract Ownable)","value":"Ownable"},"id":4309,"name":"Identifier","src":"3370:7:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4297,"type":"address","value":"_owner_"},"id":4310,"name":"Identifier","src":"3378:7:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4299,"type":"bool","value":"_transferable_"},"id":4311,"name":"Identifier","src":"3387:14:11"}],"id":4312,"name":"ModifierInvocation","src":"3370:32:11"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4289,"type":"bytes32","value":"_oracleNode"},"id":4314,"name":"Identifier","src":"3420:11:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4293,"type":"bytes32","value":"_oracleNameHash_"},"id":4315,"name":"Identifier","src":"3434:16:11"}],"id":4316,"name":"Assignment","src":"3420:30:11"}],"id":4317,"name":"ExpressionStatement","src":"3420:30:11"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4287,"type":"address","value":"_stablecoin"},"id":4318,"name":"Identifier","src":"3460:11:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4301,"type":"address","value":"_stabelcoinAddress_"},"id":4319,"name":"Identifier","src":"3474:19:11"}],"id":4320,"name":"Assignment","src":"3460:33:11"}],"id":4321,"name":"ExpressionStatement","src":"3460:33:11"}],"id":4322,"name":"Block","src":"3410:90:11"}],"id":4323,"name":"FunctionDefinition","src":"3164:336:11"},{"attributes":{"constant":false,"documentation":"@notice Add ERC20 tokens to the list of whitelisted tokens.\n @param _tokens ERC20 token contract addresses.\n @param _symbols ERC20 token names.\n @param _magnitude 10 to the power of number of decimal places used by each ERC20 token.\n @param _loadable is a bool that states whether or not a token is loadable to the TokenCard.\n @param _burnable is a bool that states whether or not a token is burnable in the TKN Holder Contract.\n @param _lastUpdate is a unit representing an ISO datetime e.g. 20180913153211","implemented":true,"isConstructor":false,"name":"addTokens","payable":false,"scope":4694,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_tokens","scope":4455,"stateVariable":false,"storageLocation":"default","type":"address[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"address[]"},"children":[{"attributes":{"name":"address","type":"address"},"id":4324,"name":"ElementaryTypeName","src":"4083:7:11"}],"id":4325,"name":"ArrayTypeName","src":"4083:9:11"}],"id":4326,"name":"VariableDeclaration","src":"4083:17:11"},{"attributes":{"constant":false,"name":"_symbols","scope":4455,"stateVariable":false,"storageLocation":"default","type":"bytes32[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"bytes32[]"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":4327,"name":"ElementaryTypeName","src":"4102:7:11"}],"id":4328,"name":"ArrayTypeName","src":"4102:9:11"}],"id":4329,"name":"VariableDeclaration","src":"4102:18:11"},{"attributes":{"constant":false,"name":"_magnitude","scope":4455,"stateVariable":false,"storageLocation":"default","type":"uint256[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"uint256[]"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4330,"name":"ElementaryTypeName","src":"4122:4:11"}],"id":4331,"name":"ArrayTypeName","src":"4122:6:11"}],"id":4332,"name":"VariableDeclaration","src":"4122:17:11"},{"attributes":{"constant":false,"name":"_loadable","scope":4455,"stateVariable":false,"storageLocation":"default","type":"bool[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"bool[]"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":4333,"name":"ElementaryTypeName","src":"4141:4:11"}],"id":4334,"name":"ArrayTypeName","src":"4141:6:11"}],"id":4335,"name":"VariableDeclaration","src":"4141:16:11"},{"attributes":{"constant":false,"name":"_burnable","scope":4455,"stateVariable":false,"storageLocation":"default","type":"bool[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"bool[]"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":4336,"name":"ElementaryTypeName","src":"4159:4:11"}],"id":4337,"name":"ArrayTypeName","src":"4159:6:11"}],"id":4338,"name":"VariableDeclaration","src":"4159:16:11"},{"attributes":{"constant":false,"name":"_lastUpdate","scope":4455,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4339,"name":"ElementaryTypeName","src":"4177:4:11"}],"id":4340,"name":"VariableDeclaration","src":"4177:16:11"}],"id":4341,"name":"ParameterList","src":"4082:112:11"},{"attributes":{"parameters":[null]},"children":[],"id":4344,"name":"ParameterList","src":"4219:0:11"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2249,"type":"modifier ()","value":"onlyController"},"id":4342,"name":"Identifier","src":"4204:14:11"}],"id":4343,"name":"ModifierInvocation","src":"4204:14:11"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_229d13192b5da189e34c035711b06ef00014d6b1ae3d20f5919a9f7f0dc28e53","typeString":"literal_string \"parameter lengths do not match\""}],"overloadedDeclarations":[6460,6461],"referencedDeclaration":6461,"type":"function (bool,string memory) pure","value":"require"},"id":4345,"name":"Identifier","src":"4290:7:11"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&&","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&&","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&&","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4326,"type":"address[] calldata","value":"_tokens"},"id":4346,"name":"Identifier","src":"4298:7:11"}],"id":4347,"name":"MemberAccess","src":"4298:14:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4329,"type":"bytes32[] calldata","value":"_symbols"},"id":4348,"name":"Identifier","src":"4316:8:11"}],"id":4349,"name":"MemberAccess","src":"4316:15:11"}],"id":4350,"name":"BinaryOperation","src":"4298:33:11"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4326,"type":"address[] calldata","value":"_tokens"},"id":4351,"name":"Identifier","src":"4335:7:11"}],"id":4352,"name":"MemberAccess","src":"4335:14:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4332,"type":"uint256[] calldata","value":"_magnitude"},"id":4353,"name":"Identifier","src":"4353:10:11"}],"id":4354,"name":"MemberAccess","src":"4353:17:11"}],"id":4355,"name":"BinaryOperation","src":"4335:35:11"}],"id":4356,"name":"BinaryOperation","src":"4298:72:11"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4326,"type":"address[] calldata","value":"_tokens"},"id":4357,"name":"Identifier","src":"4374:7:11"}],"id":4358,"name":"MemberAccess","src":"4374:14:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4335,"type":"bool[] calldata","value":"_loadable"},"id":4359,"name":"Identifier","src":"4392:9:11"}],"id":4360,"name":"MemberAccess","src":"4392:16:11"}],"id":4361,"name":"BinaryOperation","src":"4374:34:11"}],"id":4362,"name":"BinaryOperation","src":"4298:110:11"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4326,"type":"address[] calldata","value":"_tokens"},"id":4363,"name":"Identifier","src":"4412:7:11"}],"id":4364,"name":"MemberAccess","src":"4412:14:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4335,"type":"bool[] calldata","value":"_loadable"},"id":4365,"name":"Identifier","src":"4430:9:11"}],"id":4366,"name":"MemberAccess","src":"4430:16:11"}],"id":4367,"name":"BinaryOperation","src":"4412:34:11"}],"id":4368,"name":"BinaryOperation","src":"4298:148:11"},{"attributes":{"argumentTypes":null,"hexvalue":"706172616d65746572206c656e6774687320646f206e6f74206d61746368","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"parameter lengths do not match\"","value":"parameter lengths do not match"},"id":4369,"name":"Literal","src":"4448:32:11"}],"id":4370,"name":"FunctionCall","src":"4290:191:11"}],"id":4371,"name":"ExpressionStatement","src":"4290:191:11"},{"children":[{"attributes":{"assignments":[4373]},"children":[{"attributes":{"constant":false,"name":"i","scope":4455,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4372,"name":"ElementaryTypeName","src":"4555:4:11"}],"id":4373,"name":"VariableDeclaration","src":"4555:6:11"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4374,"name":"Literal","src":"4564:1:11"}],"id":4375,"name":"VariableDeclarationStatement","src":"4555:10:11"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4373,"type":"uint256","value":"i"},"id":4376,"name":"Identifier","src":"4567:1:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4326,"type":"address[] calldata","value":"_tokens"},"id":4377,"name":"Identifier","src":"4571:7:11"}],"id":4378,"name":"MemberAccess","src":"4571:14:11"}],"id":4379,"name":"BinaryOperation","src":"4567:18:11"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4373,"type":"uint256","value":"i"},"id":4380,"name":"Identifier","src":"4587:1:11"}],"id":4381,"name":"UnaryOperation","src":"4587:3:11"}],"id":4382,"name":"ExpressionStatement","src":"4587:3:11"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e7eb3a05df4990307bc322b918e16d072d8c2936ee70a5abacdb05979a5cec23","typeString":"literal_string \"token already available\""}],"overloadedDeclarations":[6460,6461],"referencedDeclaration":6461,"type":"function (bool,string memory) pure","value":"require"},"id":4383,"name":"Identifier","src":"4669:7:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"available","referencedDeclaration":4248,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct TokenWhitelist.Token storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4259,"type":"mapping(address => struct TokenWhitelist.Token storage ref)","value":"_tokenInfoMap"},"id":4384,"name":"Identifier","src":"4678:13:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4326,"type":"address[] calldata","value":"_tokens"},"id":4385,"name":"Identifier","src":"4692:7:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4373,"type":"uint256","value":"i"},"id":4386,"name":"Identifier","src":"4700:1:11"}],"id":4387,"name":"IndexAccess","src":"4692:10:11"}],"id":4388,"name":"IndexAccess","src":"4678:25:11"}],"id":4389,"name":"MemberAccess","src":"4678:35:11"}],"id":4390,"name":"UnaryOperation","src":"4677:36:11"},{"attributes":{"argumentTypes":null,"hexvalue":"746f6b656e20616c726561647920617661696c61626c65","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"token already available\"","value":"token already available"},"id":4391,"name":"Literal","src":"4715:25:11"}],"id":4392,"name":"FunctionCall","src":"4669:72:11"}],"id":4393,"name":"ExpressionStatement","src":"4669:72:11"},{"attributes":{"assignments":[4395]},"children":[{"attributes":{"constant":false,"name":"symbol","scope":4455,"stateVariable":false,"storageLocation":"memory","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":4394,"name":"ElementaryTypeName","src":"4801:6:11"}],"id":4395,"name":"VariableDeclaration","src":"4801:20:11"},{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"toString","referencedDeclaration":4992,"type":"function (struct strings.slice memory) pure returns (string memory)"},"children":[{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"struct strings.slice memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"toSliceB32","referencedDeclaration":4947,"type":"function (bytes32) pure returns (struct strings.slice memory)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4329,"type":"bytes32[] calldata","value":"_symbols"},"id":4396,"name":"Identifier","src":"4824:8:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4373,"type":"uint256","value":"i"},"id":4397,"name":"Identifier","src":"4833:1:11"}],"id":4398,"name":"IndexAccess","src":"4824:11:11"}],"id":4399,"name":"MemberAccess","src":"4824:22:11"}],"id":4400,"name":"FunctionCall","src":"4824:24:11"}],"id":4401,"name":"MemberAccess","src":"4824:33:11"}],"id":4402,"name":"FunctionCall","src":"4824:35:11"}],"id":4403,"name":"VariableDeclarationStatement","src":"4801:58:11"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"struct TokenWhitelist.Token storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"struct TokenWhitelist.Token storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4259,"type":"mapping(address => struct TokenWhitelist.Token storage ref)","value":"_tokenInfoMap"},"id":4404,"name":"Identifier","src":"4921:13:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4326,"type":"address[] calldata","value":"_tokens"},"id":4405,"name":"Identifier","src":"4935:7:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4373,"type":"uint256","value":"i"},"id":4406,"name":"Identifier","src":"4943:1:11"}],"id":4407,"name":"IndexAccess","src":"4935:10:11"}],"id":4408,"name":"IndexAccess","src":"4921:25:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":true,"lValueRequested":false,"names":["symbol","magnitude","rate","available","loadable","burnable","lastUpdate"],"type":"struct TokenWhitelist.Token memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4255,"type":"type(struct TokenWhitelist.Token storage pointer)","value":"Token"},"id":4409,"name":"Identifier","src":"4949:5:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4395,"type":"string memory","value":"symbol"},"id":4410,"name":"Identifier","src":"4982:6:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4332,"type":"uint256[] calldata","value":"_magnitude"},"id":4411,"name":"Identifier","src":"5018:10:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4373,"type":"uint256","value":"i"},"id":4412,"name":"Identifier","src":"5029:1:11"}],"id":4413,"name":"IndexAccess","src":"5018:13:11"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4414,"name":"Literal","src":"5056:1:11"},{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":4415,"name":"Literal","src":"5087:4:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4335,"type":"bool[] calldata","value":"_loadable"},"id":4416,"name":"Identifier","src":"5120:9:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4373,"type":"uint256","value":"i"},"id":4417,"name":"Identifier","src":"5130:1:11"}],"id":4418,"name":"IndexAccess","src":"5120:12:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4338,"type":"bool[] calldata","value":"_burnable"},"id":4419,"name":"Identifier","src":"5160:9:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4373,"type":"uint256","value":"i"},"id":4420,"name":"Identifier","src":"5170:1:11"}],"id":4421,"name":"IndexAccess","src":"5160:12:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4340,"type":"uint256","value":"_lastUpdate"},"id":4422,"name":"Identifier","src":"5203:11:11"}],"id":4423,"name":"FunctionCall","src":"4949:284:11"}],"id":4424,"name":"Assignment","src":"4921:312:11"}],"id":4425,"name":"ExpressionStatement","src":"4921:312:11"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"push","referencedDeclaration":null,"type":"function (address) returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4262,"type":"address[] storage ref","value":"_tokenAddressArray"},"id":4426,"name":"Identifier","src":"5305:18:11"}],"id":4428,"name":"MemberAccess","src":"5305:23:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4326,"type":"address[] calldata","value":"_tokens"},"id":4429,"name":"Identifier","src":"5329:7:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4373,"type":"uint256","value":"i"},"id":4430,"name":"Identifier","src":"5337:1:11"}],"id":4431,"name":"IndexAccess","src":"5329:10:11"}],"id":4432,"name":"FunctionCall","src":"5305:35:11"}],"id":4433,"name":"ExpressionStatement","src":"5305:35:11"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"overloadedDeclarations":[null],"referencedDeclaration":4234,"type":"function (address,address,string memory,uint256,bool,bool)","value":"AddedToken"},"id":4434,"name":"Identifier","src":"5401:10:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6457,"type":"msg","value":"msg"},"id":4435,"name":"Identifier","src":"5412:3:11"}],"id":4436,"name":"MemberAccess","src":"5412:10:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4326,"type":"address[] calldata","value":"_tokens"},"id":4437,"name":"Identifier","src":"5424:7:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4373,"type":"uint256","value":"i"},"id":4438,"name":"Identifier","src":"5432:1:11"}],"id":4439,"name":"IndexAccess","src":"5424:10:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4395,"type":"string memory","value":"symbol"},"id":4440,"name":"Identifier","src":"5436:6:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4332,"type":"uint256[] calldata","value":"_magnitude"},"id":4441,"name":"Identifier","src":"5444:10:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4373,"type":"uint256","value":"i"},"id":4442,"name":"Identifier","src":"5455:1:11"}],"id":4443,"name":"IndexAccess","src":"5444:13:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4335,"type":"bool[] calldata","value":"_loadable"},"id":4444,"name":"Identifier","src":"5459:9:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4373,"type":"uint256","value":"i"},"id":4445,"name":"Identifier","src":"5469:1:11"}],"id":4446,"name":"IndexAccess","src":"5459:12:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4338,"type":"bool[] calldata","value":"_burnable"},"id":4447,"name":"Identifier","src":"5473:9:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4373,"type":"uint256","value":"i"},"id":4448,"name":"Identifier","src":"5483:1:11"}],"id":4449,"name":"IndexAccess","src":"5473:12:11"}],"id":4450,"name":"FunctionCall","src":"5401:85:11"}],"id":4451,"name":"EmitStatement","src":"5396:90:11"}],"id":4452,"name":"Block","src":"4592:905:11"}],"id":4453,"name":"ForStatement","src":"4550:947:11"}],"id":4454,"name":"Block","src":"4219:1284:11"}],"id":4455,"name":"FunctionDefinition","src":"4064:1439:11"},{"attributes":{"constant":false,"documentation":"@notice Remove ERC20 tokens from the whitelist of tokens.\n @param _tokens ERC20 token contract addresses.","implemented":true,"isConstructor":false,"name":"removeTokens","payable":false,"scope":4694,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_tokens","scope":4545,"stateVariable":false,"storageLocation":"default","type":"address[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"address[]"},"children":[{"attributes":{"name":"address","type":"address"},"id":4456,"name":"ElementaryTypeName","src":"5652:7:11"}],"id":4457,"name":"ArrayTypeName","src":"5652:9:11"}],"id":4458,"name":"VariableDeclaration","src":"5652:17:11"}],"id":4459,"name":"ParameterList","src":"5651:19:11"},{"attributes":{"parameters":[null]},"children":[],"id":4462,"name":"ParameterList","src":"5695:0:11"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2249,"type":"modifier ()","value":"onlyController"},"id":4460,"name":"Identifier","src":"5680:14:11"}],"id":4461,"name":"ModifierInvocation","src":"5680:14:11"},{"children":[{"children":[{"attributes":{"assignments":[4464]},"children":[{"attributes":{"constant":false,"name":"i","scope":4545,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4463,"name":"ElementaryTypeName","src":"5813:4:11"}],"id":4464,"name":"VariableDeclaration","src":"5813:6:11"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4465,"name":"Literal","src":"5822:1:11"}],"id":4466,"name":"VariableDeclarationStatement","src":"5813:10:11"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4464,"type":"uint256","value":"i"},"id":4467,"name":"Identifier","src":"5825:1:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4458,"type":"address[] calldata","value":"_tokens"},"id":4468,"name":"Identifier","src":"5829:7:11"}],"id":4469,"name":"MemberAccess","src":"5829:14:11"}],"id":4470,"name":"BinaryOperation","src":"5825:18:11"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4464,"type":"uint256","value":"i"},"id":4471,"name":"Identifier","src":"5845:1:11"}],"id":4472,"name":"UnaryOperation","src":"5845:3:11"}],"id":4473,"name":"ExpressionStatement","src":"5845:3:11"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d487155ec60125f09758305e6de21696dc3e345a5b0edca0b920691dd5be4852","typeString":"literal_string \"token is not available\""}],"overloadedDeclarations":[6460,6461],"referencedDeclaration":6461,"type":"function (bool,string memory) pure","value":"require"},"id":4474,"name":"Identifier","src":"5933:7:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"available","referencedDeclaration":4248,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct TokenWhitelist.Token storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4259,"type":"mapping(address => struct TokenWhitelist.Token storage ref)","value":"_tokenInfoMap"},"id":4475,"name":"Identifier","src":"5941:13:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4458,"type":"address[] calldata","value":"_tokens"},"id":4476,"name":"Identifier","src":"5955:7:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4464,"type":"uint256","value":"i"},"id":4477,"name":"Identifier","src":"5963:1:11"}],"id":4478,"name":"IndexAccess","src":"5955:10:11"}],"id":4479,"name":"IndexAccess","src":"5941:25:11"}],"id":4480,"name":"MemberAccess","src":"5941:35:11"},{"attributes":{"argumentTypes":null,"hexvalue":"746f6b656e206973206e6f7420617661696c61626c65","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"token is not available\"","value":"token is not available"},"id":4481,"name":"Literal","src":"5978:24:11"}],"id":4482,"name":"FunctionCall","src":"5933:70:11"}],"id":4483,"name":"ExpressionStatement","src":"5933:70:11"},{"attributes":{"assignments":[4485]},"children":[{"attributes":{"constant":false,"name":"token","scope":4545,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":4484,"name":"ElementaryTypeName","src":"6057:7:11"}],"id":4485,"name":"VariableDeclaration","src":"6057:13:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4458,"type":"address[] calldata","value":"_tokens"},"id":4486,"name":"Identifier","src":"6073:7:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4464,"type":"uint256","value":"i"},"id":4487,"name":"Identifier","src":"6081:1:11"}],"id":4488,"name":"IndexAccess","src":"6073:10:11"}],"id":4489,"name":"VariableDeclarationStatement","src":"6057:26:11"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"delete","prefix":true,"type":"tuple()"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"struct TokenWhitelist.Token storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4259,"type":"mapping(address => struct TokenWhitelist.Token storage ref)","value":"_tokenInfoMap"},"id":4490,"name":"Identifier","src":"6144:13:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4485,"type":"address","value":"token"},"id":4491,"name":"Identifier","src":"6158:5:11"}],"id":4492,"name":"IndexAccess","src":"6144:20:11"}],"id":4493,"name":"UnaryOperation","src":"6137:27:11"}],"id":4494,"name":"ExpressionStatement","src":"6137:27:11"},{"children":[{"attributes":{"assignments":[4496]},"children":[{"attributes":{"constant":false,"name":"j","scope":4545,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4495,"name":"ElementaryTypeName","src":"6246:4:11"}],"id":4496,"name":"VariableDeclaration","src":"6246:6:11"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4497,"name":"Literal","src":"6255:1:11"}],"id":4498,"name":"VariableDeclarationStatement","src":"6246:10:11"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4496,"type":"uint256","value":"j"},"id":4499,"name":"Identifier","src":"6258:1:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sub","referencedDeclaration":2174,"type":"function (uint256,uint256) pure returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4262,"type":"address[] storage ref","value":"_tokenAddressArray"},"id":4500,"name":"Identifier","src":"6262:18:11"}],"id":4501,"name":"MemberAccess","src":"6262:25:11"}],"id":4502,"name":"MemberAccess","src":"6262:29:11"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":4503,"name":"Literal","src":"6292:1:11"}],"id":4504,"name":"FunctionCall","src":"6262:32:11"}],"id":4505,"name":"BinaryOperation","src":"6258:36:11"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4496,"type":"uint256","value":"j"},"id":4506,"name":"Identifier","src":"6296:1:11"}],"id":4507,"name":"UnaryOperation","src":"6296:3:11"}],"id":4508,"name":"ExpressionStatement","src":"6296:3:11"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4262,"type":"address[] storage ref","value":"_tokenAddressArray"},"id":4509,"name":"Identifier","src":"6323:18:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4496,"type":"uint256","value":"j"},"id":4510,"name":"Identifier","src":"6342:1:11"}],"id":4511,"name":"IndexAccess","src":"6323:21:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4485,"type":"address","value":"token"},"id":4512,"name":"Identifier","src":"6348:5:11"}],"id":4513,"name":"BinaryOperation","src":"6323:30:11"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"address"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4262,"type":"address[] storage ref","value":"_tokenAddressArray"},"id":4514,"name":"Identifier","src":"6377:18:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4496,"type":"uint256","value":"j"},"id":4515,"name":"Identifier","src":"6396:1:11"}],"id":4516,"name":"IndexAccess","src":"6377:21:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4262,"type":"address[] storage ref","value":"_tokenAddressArray"},"id":4517,"name":"Identifier","src":"6401:18:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sub","referencedDeclaration":2174,"type":"function (uint256,uint256) pure returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4262,"type":"address[] storage ref","value":"_tokenAddressArray"},"id":4518,"name":"Identifier","src":"6420:18:11"}],"id":4519,"name":"MemberAccess","src":"6420:25:11"}],"id":4520,"name":"MemberAccess","src":"6420:29:11"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":4521,"name":"Literal","src":"6450:1:11"}],"id":4522,"name":"FunctionCall","src":"6420:32:11"}],"id":4523,"name":"IndexAccess","src":"6401:52:11"}],"id":4524,"name":"Assignment","src":"6377:76:11"}],"id":4525,"name":"ExpressionStatement","src":"6377:76:11"},{"id":4526,"name":"Break","src":"6475:5:11"}],"id":4527,"name":"Block","src":"6355:144:11"}],"id":4528,"name":"IfStatement","src":"6319:180:11"}],"id":4529,"name":"Block","src":"6301:212:11"}],"id":4530,"name":"ForStatement","src":"6241:272:11"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"--","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4262,"type":"address[] storage ref","value":"_tokenAddressArray"},"id":4531,"name":"Identifier","src":"6526:18:11"}],"id":4533,"name":"MemberAccess","src":"6526:25:11"}],"id":4534,"name":"UnaryOperation","src":"6526:27:11"}],"id":4535,"name":"ExpressionStatement","src":"6526:27:11"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":4240,"type":"function (address,address)","value":"RemovedToken"},"id":4536,"name":"Identifier","src":"6613:12:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6457,"type":"msg","value":"msg"},"id":4537,"name":"Identifier","src":"6626:3:11"}],"id":4538,"name":"MemberAccess","src":"6626:10:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4485,"type":"address","value":"token"},"id":4539,"name":"Identifier","src":"6638:5:11"}],"id":4540,"name":"FunctionCall","src":"6613:31:11"}],"id":4541,"name":"EmitStatement","src":"6608:36:11"}],"id":4542,"name":"Block","src":"5850:805:11"}],"id":4543,"name":"ForStatement","src":"5808:847:11"}],"id":4544,"name":"Block","src":"5695:966:11"}],"id":4545,"name":"FunctionDefinition","src":"5630:1031:11"},{"attributes":{"constant":false,"documentation":"@notice Update ERC20 token exchange rate.\n @param _token ERC20 token contract address.\n @param _rate ERC20 token exchange rate in wei.\n @param _updateDate date for the token updates. This will be compared to when oracle updates are received.","implemented":true,"isConstructor":false,"name":"updateTokenRate","payable":false,"scope":4694,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_token","scope":4586,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":4546,"name":"ElementaryTypeName","src":"6963:7:11"}],"id":4547,"name":"VariableDeclaration","src":"6963:14:11"},{"attributes":{"constant":false,"name":"_rate","scope":4586,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4548,"name":"ElementaryTypeName","src":"6979:4:11"}],"id":4549,"name":"VariableDeclaration","src":"6979:10:11"},{"attributes":{"constant":false,"name":"_updateDate","scope":4586,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4550,"name":"ElementaryTypeName","src":"6991:4:11"}],"id":4551,"name":"VariableDeclaration","src":"6991:16:11"}],"id":4552,"name":"ParameterList","src":"6962:46:11"},{"attributes":{"parameters":[null]},"children":[],"id":4555,"name":"ParameterList","src":"7041:0:11"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4285,"type":"modifier ()","value":"onlyControllerOrOracle"},"id":4553,"name":"Identifier","src":"7018:22:11"}],"id":4554,"name":"ModifierInvocation","src":"7018:22:11"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d487155ec60125f09758305e6de21696dc3e345a5b0edca0b920691dd5be4852","typeString":"literal_string \"token is not available\""}],"overloadedDeclarations":[6460,6461],"referencedDeclaration":6461,"type":"function (bool,string memory) pure","value":"require"},"id":4556,"name":"Identifier","src":"7093:7:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"available","referencedDeclaration":4248,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct TokenWhitelist.Token storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4259,"type":"mapping(address => struct TokenWhitelist.Token storage ref)","value":"_tokenInfoMap"},"id":4557,"name":"Identifier","src":"7101:13:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4547,"type":"address","value":"_token"},"id":4558,"name":"Identifier","src":"7115:6:11"}],"id":4559,"name":"IndexAccess","src":"7101:21:11"}],"id":4560,"name":"MemberAccess","src":"7101:31:11"},{"attributes":{"argumentTypes":null,"hexvalue":"746f6b656e206973206e6f7420617661696c61626c65","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"token is not available\"","value":"token is not available"},"id":4561,"name":"Literal","src":"7134:24:11"}],"id":4562,"name":"FunctionCall","src":"7093:66:11"}],"id":4563,"name":"ExpressionStatement","src":"7093:66:11"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"rate","referencedDeclaration":4246,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct TokenWhitelist.Token storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4259,"type":"mapping(address => struct TokenWhitelist.Token storage ref)","value":"_tokenInfoMap"},"id":4564,"name":"Identifier","src":"7205:13:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4547,"type":"address","value":"_token"},"id":4565,"name":"Identifier","src":"7219:6:11"}],"id":4566,"name":"IndexAccess","src":"7205:21:11"}],"id":4567,"name":"MemberAccess","src":"7205:26:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4549,"type":"uint256","value":"_rate"},"id":4568,"name":"Identifier","src":"7234:5:11"}],"id":4569,"name":"Assignment","src":"7205:34:11"}],"id":4570,"name":"ExpressionStatement","src":"7205:34:11"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"lastUpdate","referencedDeclaration":4254,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct TokenWhitelist.Token storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4259,"type":"mapping(address => struct TokenWhitelist.Token storage ref)","value":"_tokenInfoMap"},"id":4571,"name":"Identifier","src":"7302:13:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4547,"type":"address","value":"_token"},"id":4572,"name":"Identifier","src":"7316:6:11"}],"id":4573,"name":"IndexAccess","src":"7302:21:11"}],"id":4574,"name":"MemberAccess","src":"7302:32:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4551,"type":"uint256","value":"_updateDate"},"id":4575,"name":"Identifier","src":"7337:11:11"}],"id":4576,"name":"Assignment","src":"7302:46:11"}],"id":4577,"name":"ExpressionStatement","src":"7302:46:11"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":4220,"type":"function (address,address,uint256)","value":"UpdatedTokenRate"},"id":4578,"name":"Identifier","src":"7402:16:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6457,"type":"msg","value":"msg"},"id":4579,"name":"Identifier","src":"7419:3:11"}],"id":4580,"name":"MemberAccess","src":"7419:10:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4547,"type":"address","value":"_token"},"id":4581,"name":"Identifier","src":"7431:6:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4549,"type":"uint256","value":"_rate"},"id":4582,"name":"Identifier","src":"7439:5:11"}],"id":4583,"name":"FunctionCall","src":"7402:43:11"}],"id":4584,"name":"EmitStatement","src":"7397:48:11"}],"id":4585,"name":"Block","src":"7041:411:11"}],"id":4586,"name":"FunctionDefinition","src":"6938:514:11"},{"attributes":{"constant":true,"documentation":"@notice This returns all of the fields for a given token\n @param _a is the address of a given token\n @return string of the token's symbol\n @return uint of the token's magnitude\n @return uint of the token's exchange rate to ETH\n @return bool whether the token is available\n @return bool whether the token is loadable to the TokenCard\n @return bool whether the token is burnable to the TKN Holder Contract\n @return uint of the lastUpdated time of the token's exchange rate","implemented":true,"isConstructor":false,"modifiers":[null],"name":"getTokenInfo","payable":false,"scope":4694,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_a","scope":4628,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":4587,"name":"ElementaryTypeName","src":"8015:7:11"}],"id":4588,"name":"VariableDeclaration","src":"8015:10:11"}],"id":4589,"name":"ParameterList","src":"8014:12:11"},{"children":[{"attributes":{"constant":false,"name":"","scope":4628,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":4590,"name":"ElementaryTypeName","src":"8050:6:11"}],"id":4591,"name":"VariableDeclaration","src":"8050:6:11"},{"attributes":{"constant":false,"name":"","scope":4628,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":4592,"name":"ElementaryTypeName","src":"8058:7:11"}],"id":4593,"name":"VariableDeclaration","src":"8058:7:11"},{"attributes":{"constant":false,"name":"","scope":4628,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":4594,"name":"ElementaryTypeName","src":"8067:7:11"}],"id":4595,"name":"VariableDeclaration","src":"8067:7:11"},{"attributes":{"constant":false,"name":"","scope":4628,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":4596,"name":"ElementaryTypeName","src":"8076:4:11"}],"id":4597,"name":"VariableDeclaration","src":"8076:4:11"},{"attributes":{"constant":false,"name":"","scope":4628,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":4598,"name":"ElementaryTypeName","src":"8082:4:11"}],"id":4599,"name":"VariableDeclaration","src":"8082:4:11"},{"attributes":{"constant":false,"name":"","scope":4628,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":4600,"name":"ElementaryTypeName","src":"8088:4:11"}],"id":4601,"name":"VariableDeclaration","src":"8088:4:11"},{"attributes":{"constant":false,"name":"","scope":4628,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":4602,"name":"ElementaryTypeName","src":"8094:7:11"}],"id":4603,"name":"VariableDeclaration","src":"8094:7:11"}],"id":4604,"name":"ParameterList","src":"8049:53:11"},{"children":[{"attributes":{"assignments":[4606]},"children":[{"attributes":{"constant":false,"name":"tokenInfo","scope":4628,"stateVariable":false,"storageLocation":"storage","type":"struct TokenWhitelist.Token","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"Token","referencedDeclaration":4255,"type":"struct TokenWhitelist.Token"},"id":4605,"name":"UserDefinedTypeName","src":"8113:5:11"}],"id":4606,"name":"VariableDeclaration","src":"8113:23:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct TokenWhitelist.Token storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4259,"type":"mapping(address => struct TokenWhitelist.Token storage ref)","value":"_tokenInfoMap"},"id":4607,"name":"Identifier","src":"8139:13:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4588,"type":"address","value":"_a"},"id":4608,"name":"Identifier","src":"8153:2:11"}],"id":4609,"name":"IndexAccess","src":"8139:17:11"}],"id":4610,"name":"VariableDeclarationStatement","src":"8113:43:11"},{"attributes":{"functionReturnParameters":4604},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"tuple(string storage ref,uint256,uint256,bool,bool,bool,uint256)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"symbol","referencedDeclaration":4242,"type":"string storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4606,"type":"struct TokenWhitelist.Token storage pointer","value":"tokenInfo"},"id":4611,"name":"Identifier","src":"8174:9:11"}],"id":4612,"name":"MemberAccess","src":"8174:16:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"magnitude","referencedDeclaration":4244,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4606,"type":"struct TokenWhitelist.Token storage pointer","value":"tokenInfo"},"id":4613,"name":"Identifier","src":"8192:9:11"}],"id":4614,"name":"MemberAccess","src":"8192:19:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"rate","referencedDeclaration":4246,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4606,"type":"struct TokenWhitelist.Token storage pointer","value":"tokenInfo"},"id":4615,"name":"Identifier","src":"8213:9:11"}],"id":4616,"name":"MemberAccess","src":"8213:14:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"available","referencedDeclaration":4248,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4606,"type":"struct TokenWhitelist.Token storage pointer","value":"tokenInfo"},"id":4617,"name":"Identifier","src":"8229:9:11"}],"id":4618,"name":"MemberAccess","src":"8229:19:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"loadable","referencedDeclaration":4250,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4606,"type":"struct TokenWhitelist.Token storage pointer","value":"tokenInfo"},"id":4619,"name":"Identifier","src":"8250:9:11"}],"id":4620,"name":"MemberAccess","src":"8250:18:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"burnable","referencedDeclaration":4252,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4606,"type":"struct TokenWhitelist.Token storage pointer","value":"tokenInfo"},"id":4621,"name":"Identifier","src":"8270:9:11"}],"id":4622,"name":"MemberAccess","src":"8270:18:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"lastUpdate","referencedDeclaration":4254,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4606,"type":"struct TokenWhitelist.Token storage pointer","value":"tokenInfo"},"id":4623,"name":"Identifier","src":"8290:9:11"}],"id":4624,"name":"MemberAccess","src":"8290:20:11"}],"id":4625,"name":"TupleExpression","src":"8173:138:11"}],"id":4626,"name":"Return","src":"8166:145:11"}],"id":4627,"name":"Block","src":"8103:215:11"}],"id":4628,"name":"FunctionDefinition","src":"7993:325:11"},{"attributes":{"constant":true,"documentation":"@notice This returns all of the fields for our StableCoin\n @return string of the token's symbol\n @return uint of the token's magnitude\n @return uint of the token's exchange rate to ETH\n @return bool whether the token is available\n @return bool whether the token is loadable to the TokenCard\n @return bool whether the token is burnable to the TKN Holder Contract\n @return uint of the lastUpdated time of the token's exchange rate","implemented":true,"isConstructor":false,"modifiers":[null],"name":"getStablecoinInfo","payable":false,"scope":4694,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":4629,"name":"ParameterList","src":"8836:2:11"},{"children":[{"attributes":{"constant":false,"name":"","scope":4668,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":4630,"name":"ElementaryTypeName","src":"8862:6:11"}],"id":4631,"name":"VariableDeclaration","src":"8862:6:11"},{"attributes":{"constant":false,"name":"","scope":4668,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":4632,"name":"ElementaryTypeName","src":"8870:7:11"}],"id":4633,"name":"VariableDeclaration","src":"8870:7:11"},{"attributes":{"constant":false,"name":"","scope":4668,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":4634,"name":"ElementaryTypeName","src":"8879:7:11"}],"id":4635,"name":"VariableDeclaration","src":"8879:7:11"},{"attributes":{"constant":false,"name":"","scope":4668,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":4636,"name":"ElementaryTypeName","src":"8888:4:11"}],"id":4637,"name":"VariableDeclaration","src":"8888:4:11"},{"attributes":{"constant":false,"name":"","scope":4668,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":4638,"name":"ElementaryTypeName","src":"8894:4:11"}],"id":4639,"name":"VariableDeclaration","src":"8894:4:11"},{"attributes":{"constant":false,"name":"","scope":4668,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":4640,"name":"ElementaryTypeName","src":"8900:4:11"}],"id":4641,"name":"VariableDeclaration","src":"8900:4:11"},{"attributes":{"constant":false,"name":"","scope":4668,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":4642,"name":"ElementaryTypeName","src":"8906:7:11"}],"id":4643,"name":"VariableDeclaration","src":"8906:7:11"}],"id":4644,"name":"ParameterList","src":"8861:53:11"},{"children":[{"attributes":{"assignments":[4646]},"children":[{"attributes":{"constant":false,"name":"stablecoinInfo","scope":4668,"stateVariable":false,"storageLocation":"storage","type":"struct TokenWhitelist.Token","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"Token","referencedDeclaration":4255,"type":"struct TokenWhitelist.Token"},"id":4645,"name":"UserDefinedTypeName","src":"8925:5:11"}],"id":4646,"name":"VariableDeclaration","src":"8925:28:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct TokenWhitelist.Token storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4259,"type":"mapping(address => struct TokenWhitelist.Token storage ref)","value":"_tokenInfoMap"},"id":4647,"name":"Identifier","src":"8956:13:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4287,"type":"address","value":"_stablecoin"},"id":4648,"name":"Identifier","src":"8970:11:11"}],"id":4649,"name":"IndexAccess","src":"8956:26:11"}],"id":4650,"name":"VariableDeclarationStatement","src":"8925:57:11"},{"attributes":{"functionReturnParameters":4644},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"tuple(string storage ref,uint256,uint256,bool,bool,bool,uint256)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"symbol","referencedDeclaration":4242,"type":"string storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4646,"type":"struct TokenWhitelist.Token storage pointer","value":"stablecoinInfo"},"id":4651,"name":"Identifier","src":"9000:14:11"}],"id":4652,"name":"MemberAccess","src":"9000:21:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"magnitude","referencedDeclaration":4244,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4646,"type":"struct TokenWhitelist.Token storage pointer","value":"stablecoinInfo"},"id":4653,"name":"Identifier","src":"9023:14:11"}],"id":4654,"name":"MemberAccess","src":"9023:24:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"rate","referencedDeclaration":4246,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4646,"type":"struct TokenWhitelist.Token storage pointer","value":"stablecoinInfo"},"id":4655,"name":"Identifier","src":"9049:14:11"}],"id":4656,"name":"MemberAccess","src":"9049:19:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"available","referencedDeclaration":4248,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4646,"type":"struct TokenWhitelist.Token storage pointer","value":"stablecoinInfo"},"id":4657,"name":"Identifier","src":"9070:14:11"}],"id":4658,"name":"MemberAccess","src":"9070:24:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"loadable","referencedDeclaration":4250,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4646,"type":"struct TokenWhitelist.Token storage pointer","value":"stablecoinInfo"},"id":4659,"name":"Identifier","src":"9096:14:11"}],"id":4660,"name":"MemberAccess","src":"9096:23:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"burnable","referencedDeclaration":4252,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4646,"type":"struct TokenWhitelist.Token storage pointer","value":"stablecoinInfo"},"id":4661,"name":"Identifier","src":"9121:14:11"}],"id":4662,"name":"MemberAccess","src":"9121:23:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"lastUpdate","referencedDeclaration":4254,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4646,"type":"struct TokenWhitelist.Token storage pointer","value":"stablecoinInfo"},"id":4663,"name":"Identifier","src":"9146:14:11"}],"id":4664,"name":"MemberAccess","src":"9146:25:11"}],"id":4665,"name":"TupleExpression","src":"8999:173:11"}],"id":4666,"name":"Return","src":"8992:180:11"}],"id":4667,"name":"Block","src":"8915:264:11"}],"id":4668,"name":"FunctionDefinition","src":"8810:369:11"},{"attributes":{"constant":true,"documentation":"@notice This returns an array of our whitelisted address\n @return address[] of our whitelisted tokens","implemented":true,"isConstructor":false,"modifiers":[null],"name":"tokenAddressArray","payable":false,"scope":4694,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":4669,"name":"ParameterList","src":"9328:2:11"},{"children":[{"attributes":{"constant":false,"name":"","scope":4677,"stateVariable":false,"storageLocation":"default","type":"address[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"address[]"},"children":[{"attributes":{"name":"address","type":"address"},"id":4670,"name":"ElementaryTypeName","src":"9354:7:11"}],"id":4671,"name":"ArrayTypeName","src":"9354:9:11"}],"id":4672,"name":"VariableDeclaration","src":"9354:9:11"}],"id":4673,"name":"ParameterList","src":"9353:11:11"},{"children":[{"attributes":{"functionReturnParameters":4673},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4262,"type":"address[] storage ref","value":"_tokenAddressArray"},"id":4674,"name":"Identifier","src":"9382:18:11"}],"id":4675,"name":"Return","src":"9375:25:11"}],"id":4676,"name":"Block","src":"9365:42:11"}],"id":4677,"name":"FunctionDefinition","src":"9302:105:11"},{"attributes":{"constant":true,"documentation":"@notice This returns the address of our stablecoin of choice\n @return the address of the stablecoin contract.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"stablecoin","payable":false,"scope":4694,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":4678,"name":"ParameterList","src":"9557:2:11"},{"children":[{"attributes":{"constant":false,"name":"","scope":4685,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":4679,"name":"ElementaryTypeName","src":"9583:7:11"}],"id":4680,"name":"VariableDeclaration","src":"9583:7:11"}],"id":4681,"name":"ParameterList","src":"9582:9:11"},{"children":[{"attributes":{"functionReturnParameters":4681},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4287,"type":"address","value":"_stablecoin"},"id":4682,"name":"Identifier","src":"9609:11:11"}],"id":4683,"name":"Return","src":"9602:18:11"}],"id":4684,"name":"Block","src":"9592:35:11"}],"id":4685,"name":"FunctionDefinition","src":"9538:89:11"},{"attributes":{"constant":true,"documentation":"@notice this returns the node hash of our Oracle\n @return the oracle node registered in ENS.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"oracleNode","payable":false,"scope":4694,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":4686,"name":"ParameterList","src":"9760:2:11"},{"children":[{"attributes":{"constant":false,"name":"","scope":4693,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":4687,"name":"ElementaryTypeName","src":"9786:7:11"}],"id":4688,"name":"VariableDeclaration","src":"9786:7:11"}],"id":4689,"name":"ParameterList","src":"9785:9:11"},{"children":[{"attributes":{"functionReturnParameters":4689},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4289,"type":"bytes32","value":"_oracleNode"},"id":4690,"name":"Identifier","src":"9812:11:11"}],"id":4691,"name":"Return","src":"9805:18:11"}],"id":4692,"name":"Block","src":"9795:35:11"}],"id":4693,"name":"FunctionDefinition","src":"9741:89:11"}],"id":4694,"name":"ContractDefinition","src":"1593:8239:11"}],"id":4695,"name":"SourceUnit","src":"774:9059:11"}},"internals/tokenWhitelistable.sol":{"AST":{"attributes":{"absolutePath":"internals/tokenWhitelistable.sol","exportedSymbols":{"TokenWhitelistable":[2663]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".25"]},"id":2485,"name":"PragmaDirective","src":"778:24:12"},{"attributes":{"SourceUnit":4695,"absolutePath":"internals/tokenWhitelist.sol","file":"./tokenWhitelist.sol","scope":2664,"symbolAliases":[null],"unitAlias":""},"id":2486,"name":"ImportDirective","src":"804:30:12"},{"attributes":{"SourceUnit":2327,"absolutePath":"internals/ensResolvable.sol","file":"../internals/ensResolvable.sol","scope":2664,"symbolAliases":[null],"unitAlias":""},"id":2487,"name":"ImportDirective","src":"835:40:12"},{"attributes":{"contractDependencies":[2326],"contractKind":"contract","documentation":"@title TokenWhitelistable implements access to the TokenWhitelist located behind ENS.","fullyImplemented":false,"linearizedBaseContracts":[2663,2326],"name":"TokenWhitelistable","scope":2664},"children":[{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"ENSResolvable","referencedDeclaration":2326,"type":"contract ENSResolvable"},"id":2488,"name":"UserDefinedTypeName","src":"999:13:12"}],"id":2489,"name":"InheritanceSpecifier","src":"999:13:12"},{"attributes":{"constant":false,"name":"_tokenWhitelistNode","scope":2663,"stateVariable":true,"storageLocation":"default","type":"bytes32","value":null,"visibility":"private"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":2490,"name":"ElementaryTypeName","src":"1104:7:12"}],"id":2491,"name":"VariableDeclaration","src":"1104:35:12"},{"attributes":{"constant":false,"documentation":"@notice Constructor initializes the TokenWhitelistable object.\n @param _tokenWhitelistNameHash_ is the ENS name hash of the TokenWhitelist.","implemented":true,"isConstructor":true,"modifiers":[null],"name":"","payable":false,"scope":2663,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_tokenWhitelistNameHash_","scope":2501,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":2492,"name":"ElementaryTypeName","src":"1313:7:12"}],"id":2493,"name":"VariableDeclaration","src":"1313:32:12"}],"id":2494,"name":"ParameterList","src":"1312:34:12"},{"attributes":{"parameters":[null]},"children":[],"id":2495,"name":"ParameterList","src":"1356:0:12"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2491,"type":"bytes32","value":"_tokenWhitelistNode"},"id":2496,"name":"Identifier","src":"1366:19:12"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2493,"type":"bytes32","value":"_tokenWhitelistNameHash_"},"id":2497,"name":"Identifier","src":"1388:24:12"}],"id":2498,"name":"Assignment","src":"1366:46:12"}],"id":2499,"name":"ExpressionStatement","src":"1366:46:12"}],"id":2500,"name":"Block","src":"1356:63:12"}],"id":2501,"name":"FunctionDefinition","src":"1301:118:12"},{"attributes":{"constant":true,"documentation":"@notice This shows what TokenWhitelist is being used\n @return the TokenWhitelist's name hash registered in ENS.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"tokenWhitelistNode","payable":false,"scope":2663,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":2502,"name":"ParameterList","src":"1579:2:12"},{"children":[{"attributes":{"constant":false,"name":"","scope":2509,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":2503,"name":"ElementaryTypeName","src":"1605:7:12"}],"id":2504,"name":"VariableDeclaration","src":"1605:7:12"}],"id":2505,"name":"ParameterList","src":"1604:9:12"},{"children":[{"attributes":{"functionReturnParameters":2505},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2491,"type":"bytes32","value":"_tokenWhitelistNode"},"id":2506,"name":"Identifier","src":"1631:19:12"}],"id":2507,"name":"Return","src":"1624:26:12"}],"id":2508,"name":"Block","src":"1614:43:12"}],"id":2509,"name":"FunctionDefinition","src":"1552:105:12"},{"attributes":{"constant":true,"documentation":"@notice This returns all of the fields for a given token\n @param _a is the address of a given token\n @return string of the token's symbol\n @return uint of the token's magnitude\n @return uint of the token's exchange rate to ETH\n @return bool whether the token is available\n @return bool whether the token is loadable to the TokenCard\n @return bool whether the token is burnable to the TKN Holder Contract\n @return uint of the lastUpdated time of the token's exchange rate","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_getTokenInfo","payable":false,"scope":2663,"stateMutability":"view","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_a","scope":2538,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2510,"name":"ElementaryTypeName","src":"2221:7:12"}],"id":2511,"name":"VariableDeclaration","src":"2221:10:12"}],"id":2512,"name":"ParameterList","src":"2220:12:12"},{"children":[{"attributes":{"constant":false,"name":"","scope":2538,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":2513,"name":"ElementaryTypeName","src":"2256:6:12"}],"id":2514,"name":"VariableDeclaration","src":"2256:6:12"},{"attributes":{"constant":false,"name":"","scope":2538,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":2515,"name":"ElementaryTypeName","src":"2264:7:12"}],"id":2516,"name":"VariableDeclaration","src":"2264:7:12"},{"attributes":{"constant":false,"name":"","scope":2538,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":2517,"name":"ElementaryTypeName","src":"2273:7:12"}],"id":2518,"name":"VariableDeclaration","src":"2273:7:12"},{"attributes":{"constant":false,"name":"","scope":2538,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2519,"name":"ElementaryTypeName","src":"2282:4:12"}],"id":2520,"name":"VariableDeclaration","src":"2282:4:12"},{"attributes":{"constant":false,"name":"","scope":2538,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2521,"name":"ElementaryTypeName","src":"2288:4:12"}],"id":2522,"name":"VariableDeclaration","src":"2288:4:12"},{"attributes":{"constant":false,"name":"","scope":2538,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2523,"name":"ElementaryTypeName","src":"2294:4:12"}],"id":2524,"name":"VariableDeclaration","src":"2294:4:12"},{"attributes":{"constant":false,"name":"","scope":2538,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":2525,"name":"ElementaryTypeName","src":"2300:7:12"}],"id":2526,"name":"VariableDeclaration","src":"2300:7:12"}],"id":2527,"name":"ParameterList","src":"2255:53:12"},{"children":[{"attributes":{"functionReturnParameters":2527},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple(string memory,uint256,uint256,bool,bool,bool,uint256)","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"getTokenInfo","referencedDeclaration":4163,"type":"function (address) view external returns (string memory,uint256,uint256,bool,bool,bool,uint256)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract ITokenWhitelist","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":4201,"type":"type(contract ITokenWhitelist)","value":"ITokenWhitelist"},"id":2528,"name":"Identifier","src":"2326:15:12"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[null],"referencedDeclaration":2325,"type":"function (bytes32) view returns (address)","value":"_ensResolve"},"id":2529,"name":"Identifier","src":"2342:11:12"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2491,"type":"bytes32","value":"_tokenWhitelistNode"},"id":2530,"name":"Identifier","src":"2354:19:12"}],"id":2531,"name":"FunctionCall","src":"2342:32:12"}],"id":2532,"name":"FunctionCall","src":"2326:49:12"}],"id":2533,"name":"MemberAccess","src":"2326:62:12"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2511,"type":"address","value":"_a"},"id":2534,"name":"Identifier","src":"2389:2:12"}],"id":2535,"name":"FunctionCall","src":"2326:66:12"}],"id":2536,"name":"Return","src":"2319:73:12"}],"id":2537,"name":"Block","src":"2309:90:12"}],"id":2538,"name":"FunctionDefinition","src":"2198:201:12"},{"attributes":{"constant":true,"documentation":"@notice This returns all of the fields for our stablecoin token\n @return string of the token's symbol\n @return uint of the token's magnitude\n @return uint of the token's exchange rate to ETH\n @return bool whether the token is available\n @return bool whether the token is loadable to the TokenCard\n @return bool whether the token is burnable to the TKN Holder Contract\n @return uint of the lastUpdated time of the token's exchange rate","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_getStablecoinInfo","payable":false,"scope":2663,"stateMutability":"view","superFunction":null,"visibility":"internal"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":2539,"name":"ParameterList","src":"2924:2:12"},{"children":[{"attributes":{"constant":false,"name":"","scope":2564,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":2540,"name":"ElementaryTypeName","src":"2950:6:12"}],"id":2541,"name":"VariableDeclaration","src":"2950:6:12"},{"attributes":{"constant":false,"name":"","scope":2564,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":2542,"name":"ElementaryTypeName","src":"2958:7:12"}],"id":2543,"name":"VariableDeclaration","src":"2958:7:12"},{"attributes":{"constant":false,"name":"","scope":2564,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":2544,"name":"ElementaryTypeName","src":"2967:7:12"}],"id":2545,"name":"VariableDeclaration","src":"2967:7:12"},{"attributes":{"constant":false,"name":"","scope":2564,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2546,"name":"ElementaryTypeName","src":"2976:4:12"}],"id":2547,"name":"VariableDeclaration","src":"2976:4:12"},{"attributes":{"constant":false,"name":"","scope":2564,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2548,"name":"ElementaryTypeName","src":"2982:4:12"}],"id":2549,"name":"VariableDeclaration","src":"2982:4:12"},{"attributes":{"constant":false,"name":"","scope":2564,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2550,"name":"ElementaryTypeName","src":"2988:4:12"}],"id":2551,"name":"VariableDeclaration","src":"2988:4:12"},{"attributes":{"constant":false,"name":"","scope":2564,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":2552,"name":"ElementaryTypeName","src":"2994:7:12"}],"id":2553,"name":"VariableDeclaration","src":"2994:7:12"}],"id":2554,"name":"ParameterList","src":"2949:53:12"},{"children":[{"attributes":{"functionReturnParameters":2554},"children":[{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple(string memory,uint256,uint256,bool,bool,bool,uint256)","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"getStablecoinInfo","referencedDeclaration":4180,"type":"function () view external returns (string memory,uint256,uint256,bool,bool,bool,uint256)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract ITokenWhitelist","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":4201,"type":"type(contract ITokenWhitelist)","value":"ITokenWhitelist"},"id":2555,"name":"Identifier","src":"3020:15:12"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[null],"referencedDeclaration":2325,"type":"function (bytes32) view returns (address)","value":"_ensResolve"},"id":2556,"name":"Identifier","src":"3036:11:12"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2491,"type":"bytes32","value":"_tokenWhitelistNode"},"id":2557,"name":"Identifier","src":"3048:19:12"}],"id":2558,"name":"FunctionCall","src":"3036:32:12"}],"id":2559,"name":"FunctionCall","src":"3020:49:12"}],"id":2560,"name":"MemberAccess","src":"3020:67:12"}],"id":2561,"name":"FunctionCall","src":"3020:69:12"}],"id":2562,"name":"Return","src":"3013:76:12"}],"id":2563,"name":"Block","src":"3003:93:12"}],"id":2564,"name":"FunctionDefinition","src":"2897:199:12"},{"attributes":{"constant":true,"documentation":"@notice This returns an array of our whitelisted address\n @return address[] of our whitelisted tokens","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_tokenAddressArray","payable":false,"scope":2663,"stateMutability":"view","superFunction":null,"visibility":"internal"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":2565,"name":"ParameterList","src":"3246:2:12"},{"children":[{"attributes":{"constant":false,"name":"","scope":2579,"stateVariable":false,"storageLocation":"default","type":"address[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"address[]"},"children":[{"attributes":{"name":"address","type":"address"},"id":2566,"name":"ElementaryTypeName","src":"3272:7:12"}],"id":2567,"name":"ArrayTypeName","src":"3272:9:12"}],"id":2568,"name":"VariableDeclaration","src":"3272:9:12"}],"id":2569,"name":"ParameterList","src":"3271:11:12"},{"children":[{"attributes":{"functionReturnParameters":2569},"children":[{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address[] memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"tokenAddressArray","referencedDeclaration":4186,"type":"function () view external returns (address[] memory)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract ITokenWhitelist","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":4201,"type":"type(contract ITokenWhitelist)","value":"ITokenWhitelist"},"id":2570,"name":"Identifier","src":"3300:15:12"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[null],"referencedDeclaration":2325,"type":"function (bytes32) view returns (address)","value":"_ensResolve"},"id":2571,"name":"Identifier","src":"3316:11:12"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2491,"type":"bytes32","value":"_tokenWhitelistNode"},"id":2572,"name":"Identifier","src":"3328:19:12"}],"id":2573,"name":"FunctionCall","src":"3316:32:12"}],"id":2574,"name":"FunctionCall","src":"3300:49:12"}],"id":2575,"name":"MemberAccess","src":"3300:67:12"}],"id":2576,"name":"FunctionCall","src":"3300:69:12"}],"id":2577,"name":"Return","src":"3293:76:12"}],"id":2578,"name":"Block","src":"3283:93:12"}],"id":2579,"name":"FunctionDefinition","src":"3219:157:12"},{"attributes":{"constant":false,"documentation":"@notice Update ERC20 token exchange rate.\n @param _token ERC20 token contract address.\n @param _rate ERC20 token exchange rate in wei.\n @param _updateDate date for the token updates. This will be compared to when oracle updates are received.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_updateTokenRate","payable":false,"scope":2663,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_token","scope":2600,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2580,"name":"ElementaryTypeName","src":"3679:7:12"}],"id":2581,"name":"VariableDeclaration","src":"3679:14:12"},{"attributes":{"constant":false,"name":"_rate","scope":2600,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2582,"name":"ElementaryTypeName","src":"3695:4:12"}],"id":2583,"name":"VariableDeclaration","src":"3695:10:12"},{"attributes":{"constant":false,"name":"_updateDate","scope":2600,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2584,"name":"ElementaryTypeName","src":"3707:4:12"}],"id":2585,"name":"VariableDeclaration","src":"3707:16:12"}],"id":2586,"name":"ParameterList","src":"3678:46:12"},{"attributes":{"parameters":[null]},"children":[],"id":2587,"name":"ParameterList","src":"3734:0:12"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"updateTokenRate","referencedDeclaration":4195,"type":"function (address,uint256,uint256) external"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract ITokenWhitelist","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":4201,"type":"type(contract ITokenWhitelist)","value":"ITokenWhitelist"},"id":2588,"name":"Identifier","src":"3744:15:12"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[null],"referencedDeclaration":2325,"type":"function (bytes32) view returns (address)","value":"_ensResolve"},"id":2589,"name":"Identifier","src":"3760:11:12"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2491,"type":"bytes32","value":"_tokenWhitelistNode"},"id":2590,"name":"Identifier","src":"3772:19:12"}],"id":2591,"name":"FunctionCall","src":"3760:32:12"}],"id":2592,"name":"FunctionCall","src":"3744:49:12"}],"id":2593,"name":"MemberAccess","src":"3744:65:12"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2581,"type":"address","value":"_token"},"id":2594,"name":"Identifier","src":"3810:6:12"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2583,"type":"uint256","value":"_rate"},"id":2595,"name":"Identifier","src":"3818:5:12"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2585,"type":"uint256","value":"_updateDate"},"id":2596,"name":"Identifier","src":"3825:11:12"}],"id":2597,"name":"FunctionCall","src":"3744:93:12"}],"id":2598,"name":"ExpressionStatement","src":"3744:93:12"}],"id":2599,"name":"Block","src":"3734:110:12"}],"id":2600,"name":"FunctionDefinition","src":"3653:191:12"},{"attributes":{"constant":true,"documentation":"@notice Checks whether a token is available\n @return bool available or not","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_isTokenAvailable","payable":false,"scope":2663,"stateMutability":"view","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_a","scope":2616,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2601,"name":"ElementaryTypeName","src":"3967:7:12"}],"id":2602,"name":"VariableDeclaration","src":"3967:10:12"}],"id":2603,"name":"ParameterList","src":"3966:12:12"},{"children":[{"attributes":{"constant":false,"name":"","scope":2616,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2604,"name":"ElementaryTypeName","src":"4002:4:12"}],"id":2605,"name":"VariableDeclaration","src":"4002:4:12"}],"id":2606,"name":"ParameterList","src":"4001:6:12"},{"children":[{"attributes":{"assignments":[null,null,null,2608,null,null,null]},"children":[{"attributes":{"constant":false,"name":"available","scope":2616,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2607,"name":"ElementaryTypeName","src":"4026:4:12"}],"id":2608,"name":"VariableDeclaration","src":"4026:14:12"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple(string memory,uint256,uint256,bool,bool,bool,uint256)","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2538,"type":"function (address) view returns (string memory,uint256,uint256,bool,bool,bool,uint256)","value":"_getTokenInfo"},"id":2609,"name":"Identifier","src":"4050:13:12"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2602,"type":"address","value":"_a"},"id":2610,"name":"Identifier","src":"4064:2:12"}],"id":2611,"name":"FunctionCall","src":"4050:17:12"}],"id":2612,"name":"VariableDeclarationStatement","src":"4018:49:12"},{"attributes":{"functionReturnParameters":2606},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2608,"type":"bool","value":"available"},"id":2613,"name":"Identifier","src":"4084:9:12"}],"id":2614,"name":"Return","src":"4077:16:12"}],"id":2615,"name":"Block","src":"4008:92:12"}],"id":2616,"name":"FunctionDefinition","src":"3940:160:12"},{"attributes":{"constant":true,"documentation":"@notice Checks whether a token is burnable\n @return bool burnable or not","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_isTokenBurnable","payable":false,"scope":2663,"stateMutability":"view","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_a","scope":2632,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2617,"name":"ElementaryTypeName","src":"4220:7:12"}],"id":2618,"name":"VariableDeclaration","src":"4220:10:12"}],"id":2619,"name":"ParameterList","src":"4219:12:12"},{"children":[{"attributes":{"constant":false,"name":"","scope":2632,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2620,"name":"ElementaryTypeName","src":"4255:4:12"}],"id":2621,"name":"VariableDeclaration","src":"4255:4:12"}],"id":2622,"name":"ParameterList","src":"4254:6:12"},{"children":[{"attributes":{"assignments":[null,null,null,null,null,2624,null]},"children":[{"attributes":{"constant":false,"name":"burnable","scope":2632,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2623,"name":"ElementaryTypeName","src":"4283:4:12"}],"id":2624,"name":"VariableDeclaration","src":"4283:13:12"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple(string memory,uint256,uint256,bool,bool,bool,uint256)","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2538,"type":"function (address) view returns (string memory,uint256,uint256,bool,bool,bool,uint256)","value":"_getTokenInfo"},"id":2625,"name":"Identifier","src":"4302:13:12"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2618,"type":"address","value":"_a"},"id":2626,"name":"Identifier","src":"4316:2:12"}],"id":2627,"name":"FunctionCall","src":"4302:17:12"}],"id":2628,"name":"VariableDeclarationStatement","src":"4271:48:12"},{"attributes":{"functionReturnParameters":2622},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2624,"type":"bool","value":"burnable"},"id":2629,"name":"Identifier","src":"4336:8:12"}],"id":2630,"name":"Return","src":"4329:15:12"}],"id":2631,"name":"Block","src":"4261:90:12"}],"id":2632,"name":"FunctionDefinition","src":"4194:157:12"},{"attributes":{"constant":true,"documentation":"@notice Checks whether a token is loadable\n @return bool loadable or not","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_isTokenLoadable","payable":false,"scope":2663,"stateMutability":"view","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_a","scope":2648,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2633,"name":"ElementaryTypeName","src":"4471:7:12"}],"id":2634,"name":"VariableDeclaration","src":"4471:10:12"}],"id":2635,"name":"ParameterList","src":"4470:12:12"},{"children":[{"attributes":{"constant":false,"name":"","scope":2648,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2636,"name":"ElementaryTypeName","src":"4506:4:12"}],"id":2637,"name":"VariableDeclaration","src":"4506:4:12"}],"id":2638,"name":"ParameterList","src":"4505:6:12"},{"children":[{"attributes":{"assignments":[null,null,null,null,2640,null,null]},"children":[{"attributes":{"constant":false,"name":"loadable","scope":2648,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2639,"name":"ElementaryTypeName","src":"4532:4:12"}],"id":2640,"name":"VariableDeclaration","src":"4532:13:12"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple(string memory,uint256,uint256,bool,bool,bool,uint256)","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2538,"type":"function (address) view returns (string memory,uint256,uint256,bool,bool,bool,uint256)","value":"_getTokenInfo"},"id":2641,"name":"Identifier","src":"4553:13:12"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2634,"type":"address","value":"_a"},"id":2642,"name":"Identifier","src":"4567:2:12"}],"id":2643,"name":"FunctionCall","src":"4553:17:12"}],"id":2644,"name":"VariableDeclarationStatement","src":"4522:48:12"},{"attributes":{"functionReturnParameters":2638},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2640,"type":"bool","value":"loadable"},"id":2645,"name":"Identifier","src":"4587:8:12"}],"id":2646,"name":"Return","src":"4580:15:12"}],"id":2647,"name":"Block","src":"4512:90:12"}],"id":2648,"name":"FunctionDefinition","src":"4445:157:12"},{"attributes":{"constant":true,"documentation":"@notice This gets the address of the stablecoin\n @return the address of the stablecoin contract.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_stablecoin","payable":false,"scope":2663,"stateMutability":"view","superFunction":null,"visibility":"internal"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":2649,"name":"ParameterList","src":"4740:2:12"},{"children":[{"attributes":{"constant":false,"name":"","scope":2662,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2650,"name":"ElementaryTypeName","src":"4766:7:12"}],"id":2651,"name":"VariableDeclaration","src":"4766:7:12"}],"id":2652,"name":"ParameterList","src":"4765:9:12"},{"children":[{"attributes":{"functionReturnParameters":2652},"children":[{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"stablecoin","referencedDeclaration":4200,"type":"function () view external returns (address)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract ITokenWhitelist","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":4201,"type":"type(contract ITokenWhitelist)","value":"ITokenWhitelist"},"id":2653,"name":"Identifier","src":"4792:15:12"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[null],"referencedDeclaration":2325,"type":"function (bytes32) view returns (address)","value":"_ensResolve"},"id":2654,"name":"Identifier","src":"4808:11:12"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2491,"type":"bytes32","value":"_tokenWhitelistNode"},"id":2655,"name":"Identifier","src":"4820:19:12"}],"id":2656,"name":"FunctionCall","src":"4808:32:12"}],"id":2657,"name":"FunctionCall","src":"4792:49:12"}],"id":2658,"name":"MemberAccess","src":"4792:60:12"}],"id":2659,"name":"FunctionCall","src":"4792:62:12"}],"id":2660,"name":"Return","src":"4785:69:12"}],"id":2661,"name":"Block","src":"4775:86:12"}],"id":2662,"name":"FunctionDefinition","src":"4720:141:12"}],"id":2663,"name":"ContractDefinition","src":"968:3896:12"}],"id":2664,"name":"SourceUnit","src":"778:4087:12"}},"licence.sol":{"AST":{"attributes":{"absolutePath":"licence.sol","exportedSymbols":{"ILicence":[2682],"Licence":[3210]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".25"]},"id":2665,"name":"PragmaDirective","src":"767:24:13"},{"attributes":{"SourceUnit":2220,"absolutePath":"externals/SafeMath.sol","file":"./externals/SafeMath.sol","scope":3211,"symbolAliases":[null],"unitAlias":""},"id":2666,"name":"ImportDirective","src":"793:34:13"},{"attributes":{"SourceUnit":2092,"absolutePath":"externals/ERC20.sol","file":"./externals/ERC20.sol","scope":3211,"symbolAliases":[null],"unitAlias":""},"id":2667,"name":"ImportDirective","src":"828:31:13"},{"attributes":{"SourceUnit":2484,"absolutePath":"internals/ownable.sol","file":"./internals/ownable.sol","scope":3211,"symbolAliases":[null],"unitAlias":""},"id":2668,"name":"ImportDirective","src":"860:33:13"},{"attributes":{"SourceUnit":4748,"absolutePath":"internals/claimable.sol","file":"./internals/claimable.sol","scope":3211,"symbolAliases":[null],"unitAlias":""},"id":2669,"name":"ImportDirective","src":"894:35:13"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"interface","documentation":"@title ILicence interface describes methods for loading a TokenCard and updating licence amount.","fullyImplemented":false,"linearizedBaseContracts":[2682],"name":"ILicence","scope":3211},"children":[{"attributes":{"body":null,"constant":false,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"load","payable":true,"scope":2682,"stateMutability":"payable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"","scope":2676,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2670,"name":"ElementaryTypeName","src":"1071:7:13"}],"id":2671,"name":"VariableDeclaration","src":"1071:7:13"},{"attributes":{"constant":false,"name":"","scope":2676,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2672,"name":"ElementaryTypeName","src":"1080:4:13"}],"id":2673,"name":"VariableDeclaration","src":"1080:4:13"}],"id":2674,"name":"ParameterList","src":"1070:15:13"},{"attributes":{"parameters":[null]},"children":[],"id":2675,"name":"ParameterList","src":"1102:0:13"}],"id":2676,"name":"FunctionDefinition","src":"1057:46:13"},{"attributes":{"body":null,"constant":false,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"updateLicenceAmount","payable":false,"scope":2682,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"","scope":2681,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2677,"name":"ElementaryTypeName","src":"1137:4:13"}],"id":2678,"name":"VariableDeclaration","src":"1137:4:13"}],"id":2679,"name":"ParameterList","src":"1136:6:13"},{"attributes":{"parameters":[null]},"children":[],"id":2680,"name":"ParameterList","src":"1151:0:13"}],"id":2681,"name":"FunctionDefinition","src":"1108:44:13"}],"id":2682,"name":"ContractDefinition","src":"1032:122:13"},{"attributes":{"contractDependencies":[2483,4747],"contractKind":"contract","documentation":"@title Licence loads the TokenCard and transfers the licence amout to the TKN Holder Contract.\n @notice the rest of the amount gets sent to the CryptoFloat","fullyImplemented":true,"linearizedBaseContracts":[3210,2483,4747],"name":"Licence","scope":3211},"children":[{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"Claimable","referencedDeclaration":4747,"type":"contract Claimable"},"id":2683,"name":"UserDefinedTypeName","src":"1340:9:13"}],"id":2684,"name":"InheritanceSpecifier","src":"1340:9:13"},{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"Ownable","referencedDeclaration":2483,"type":"contract Ownable"},"id":2685,"name":"UserDefinedTypeName","src":"1351:7:13"}],"id":2686,"name":"InheritanceSpecifier","src":"1351:7:13"},{"children":[{"attributes":{"contractScope":null,"name":"SafeMath","referencedDeclaration":2219,"type":"library SafeMath"},"id":2687,"name":"UserDefinedTypeName","src":"1372:8:13"},{"attributes":{"name":"uint256","type":"uint256"},"id":2688,"name":"ElementaryTypeName","src":"1385:7:13"}],"id":2689,"name":"UsingForDirective","src":"1366:27:13"},{"attributes":{"anonymous":false,"documentation":"**************","name":"Received"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_from","scope":2695,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2690,"name":"ElementaryTypeName","src":"1490:7:13"}],"id":2691,"name":"VariableDeclaration","src":"1490:13:13"},{"attributes":{"constant":false,"indexed":false,"name":"_amount","scope":2695,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2692,"name":"ElementaryTypeName","src":"1505:4:13"}],"id":2693,"name":"VariableDeclaration","src":"1505:12:13"}],"id":2694,"name":"ParameterList","src":"1489:29:13"}],"id":2695,"name":"EventDefinition","src":"1475:44:13"},{"attributes":{"anonymous":false,"documentation":null,"name":"UpdatedLicenceDAO"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_newDAO","scope":2699,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2696,"name":"ElementaryTypeName","src":"1549:7:13"}],"id":2697,"name":"VariableDeclaration","src":"1549:15:13"}],"id":2698,"name":"ParameterList","src":"1548:17:13"}],"id":2699,"name":"EventDefinition","src":"1525:41:13"},{"attributes":{"anonymous":false,"documentation":null,"name":"UpdatedCryptoFloat"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_newFloat","scope":2703,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2700,"name":"ElementaryTypeName","src":"1596:7:13"}],"id":2701,"name":"VariableDeclaration","src":"1596:17:13"}],"id":2702,"name":"ParameterList","src":"1595:19:13"}],"id":2703,"name":"EventDefinition","src":"1571:44:13"},{"attributes":{"anonymous":false,"documentation":null,"name":"UpdatedTokenHolder"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_newHolder","scope":2707,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2704,"name":"ElementaryTypeName","src":"1645:7:13"}],"id":2705,"name":"VariableDeclaration","src":"1645:18:13"}],"id":2706,"name":"ParameterList","src":"1644:20:13"}],"id":2707,"name":"EventDefinition","src":"1620:45:13"},{"attributes":{"anonymous":false,"documentation":null,"name":"UpdatedTKNContractAddress"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_newTKN","scope":2711,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2708,"name":"ElementaryTypeName","src":"1702:7:13"}],"id":2709,"name":"VariableDeclaration","src":"1702:15:13"}],"id":2710,"name":"ParameterList","src":"1701:17:13"}],"id":2711,"name":"EventDefinition","src":"1670:49:13"},{"attributes":{"anonymous":false,"documentation":null,"name":"UpdatedLicenceAmount"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_newAmount","scope":2715,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2712,"name":"ElementaryTypeName","src":"1751:4:13"}],"id":2713,"name":"VariableDeclaration","src":"1751:15:13"}],"id":2714,"name":"ParameterList","src":"1750:17:13"}],"id":2715,"name":"EventDefinition","src":"1724:44:13"},{"attributes":{"anonymous":false,"documentation":null,"name":"TransferredToTokenHolder"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_from","scope":2725,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2716,"name":"ElementaryTypeName","src":"1805:7:13"}],"id":2717,"name":"VariableDeclaration","src":"1805:13:13"},{"attributes":{"constant":false,"indexed":false,"name":"_to","scope":2725,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2718,"name":"ElementaryTypeName","src":"1820:7:13"}],"id":2719,"name":"VariableDeclaration","src":"1820:11:13"},{"attributes":{"constant":false,"indexed":false,"name":"_asset","scope":2725,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2720,"name":"ElementaryTypeName","src":"1833:7:13"}],"id":2721,"name":"VariableDeclaration","src":"1833:14:13"},{"attributes":{"constant":false,"indexed":false,"name":"_amount","scope":2725,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2722,"name":"ElementaryTypeName","src":"1849:4:13"}],"id":2723,"name":"VariableDeclaration","src":"1849:12:13"}],"id":2724,"name":"ParameterList","src":"1804:58:13"}],"id":2725,"name":"EventDefinition","src":"1774:89:13"},{"attributes":{"anonymous":false,"documentation":null,"name":"TransferredToCryptoFloat"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_from","scope":2735,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2726,"name":"ElementaryTypeName","src":"1899:7:13"}],"id":2727,"name":"VariableDeclaration","src":"1899:13:13"},{"attributes":{"constant":false,"indexed":false,"name":"_to","scope":2735,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2728,"name":"ElementaryTypeName","src":"1914:7:13"}],"id":2729,"name":"VariableDeclaration","src":"1914:11:13"},{"attributes":{"constant":false,"indexed":false,"name":"_asset","scope":2735,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2730,"name":"ElementaryTypeName","src":"1927:7:13"}],"id":2731,"name":"VariableDeclaration","src":"1927:14:13"},{"attributes":{"constant":false,"indexed":false,"name":"_amount","scope":2735,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2732,"name":"ElementaryTypeName","src":"1943:4:13"}],"id":2733,"name":"VariableDeclaration","src":"1943:12:13"}],"id":2734,"name":"ParameterList","src":"1898:58:13"}],"id":2735,"name":"EventDefinition","src":"1868:89:13"},{"attributes":{"anonymous":false,"documentation":null,"name":"LogTokenTransfer"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_asset","scope":2743,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2736,"name":"ElementaryTypeName","src":"1986:7:13"}],"id":2737,"name":"VariableDeclaration","src":"1986:14:13"},{"attributes":{"constant":false,"indexed":false,"name":"_to","scope":2743,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2738,"name":"ElementaryTypeName","src":"2002:7:13"}],"id":2739,"name":"VariableDeclaration","src":"2002:11:13"},{"attributes":{"constant":false,"indexed":false,"name":"_amount","scope":2743,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2740,"name":"ElementaryTypeName","src":"2015:4:13"}],"id":2741,"name":"VariableDeclaration","src":"2015:12:13"}],"id":2742,"name":"ParameterList","src":"1985:43:13"}],"id":2743,"name":"EventDefinition","src":"1963:66:13"},{"attributes":{"constant":true,"name":"MAX_AMOUNT_SCALE","scope":3210,"stateVariable":true,"storageLocation":"default","type":"uint256","visibility":"public"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2744,"name":"ElementaryTypeName","src":"2141:4:13"},{"attributes":{"argumentTypes":null,"hexvalue":"31303030","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1000","value":"1000"},"id":2745,"name":"Literal","src":"2181:4:13"}],"id":2746,"name":"VariableDeclaration","src":"2141:44:13"},{"attributes":{"constant":false,"name":"_tknContractAddress","scope":3210,"stateVariable":true,"storageLocation":"default","type":"address","visibility":"private"},"children":[{"attributes":{"name":"address","type":"address"},"id":2747,"name":"ElementaryTypeName","src":"2192:7:13"},{"attributes":{"argumentTypes":null,"hexvalue":"307861414166393144396239306446383030446634463535633230356664363938396339373745373361","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"address","value":"0xaAAf91D9b90dF800Df4F55c205fd6989c977E73a"},"id":2748,"name":"Literal","src":"2230:42:13"}],"id":2749,"name":"VariableDeclaration","src":"2192:80:13"},{"attributes":{"constant":false,"name":"_cryptoFloat","scope":3210,"stateVariable":true,"storageLocation":"default","type":"address","value":null,"visibility":"private"},"children":[{"attributes":{"name":"address","type":"address"},"id":2750,"name":"ElementaryTypeName","src":"2312:7:13"}],"id":2751,"name":"VariableDeclaration","src":"2312:28:13"},{"attributes":{"constant":false,"name":"_tokenHolder","scope":3210,"stateVariable":true,"storageLocation":"default","type":"address","value":null,"visibility":"private"},"children":[{"attributes":{"name":"address","type":"address"},"id":2752,"name":"ElementaryTypeName","src":"2346:7:13"}],"id":2753,"name":"VariableDeclaration","src":"2346:28:13"},{"attributes":{"constant":false,"name":"_licenceDAO","scope":3210,"stateVariable":true,"storageLocation":"default","type":"address","value":null,"visibility":"private"},"children":[{"attributes":{"name":"address","type":"address"},"id":2754,"name":"ElementaryTypeName","src":"2380:7:13"}],"id":2755,"name":"VariableDeclaration","src":"2380:27:13"},{"attributes":{"constant":false,"name":"_lockedCryptoFloat","scope":3210,"stateVariable":true,"storageLocation":"default","type":"bool","value":null,"visibility":"private"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2756,"name":"ElementaryTypeName","src":"2414:4:13"}],"id":2757,"name":"VariableDeclaration","src":"2414:31:13"},{"attributes":{"constant":false,"name":"_lockedTokenHolder","scope":3210,"stateVariable":true,"storageLocation":"default","type":"bool","value":null,"visibility":"private"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2758,"name":"ElementaryTypeName","src":"2451:4:13"}],"id":2759,"name":"VariableDeclaration","src":"2451:31:13"},{"attributes":{"constant":false,"name":"_lockedLicenceDAO","scope":3210,"stateVariable":true,"storageLocation":"default","type":"bool","value":null,"visibility":"private"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2760,"name":"ElementaryTypeName","src":"2488:4:13"}],"id":2761,"name":"VariableDeclaration","src":"2488:30:13"},{"attributes":{"constant":false,"name":"_lockedTKNContractAddress","scope":3210,"stateVariable":true,"storageLocation":"default","type":"bool","value":null,"visibility":"private"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2762,"name":"ElementaryTypeName","src":"2524:4:13"}],"id":2763,"name":"VariableDeclaration","src":"2524:38:13"},{"attributes":{"constant":false,"name":"_licenceAmountScaled","scope":3210,"stateVariable":true,"storageLocation":"default","type":"uint256","value":null,"visibility":"private"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2764,"name":"ElementaryTypeName","src":"2716:4:13"}],"id":2765,"name":"VariableDeclaration","src":"2716:33:13"},{"attributes":{"documentation":"@notice Reverts if called by any address other than the DAO contract.","name":"onlyDAO","visibility":"internal"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":2766,"name":"ParameterList","src":"2850:2:13"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f29246ab6c872b69b916ab49a51167f5d8ba348a447673211aabf776049f6b78","typeString":"literal_string \"the sender isn't the DAO\""}],"overloadedDeclarations":[6460,6461],"referencedDeclaration":6461,"type":"function (bool,string memory) pure","value":"require"},"id":2767,"name":"Identifier","src":"2863:7:13"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6457,"type":"msg","value":"msg"},"id":2768,"name":"Identifier","src":"2871:3:13"}],"id":2769,"name":"MemberAccess","src":"2871:10:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2755,"type":"address","value":"_licenceDAO"},"id":2770,"name":"Identifier","src":"2885:11:13"}],"id":2771,"name":"BinaryOperation","src":"2871:25:13"},{"attributes":{"argumentTypes":null,"hexvalue":"7468652073656e6465722069736e2774207468652044414f","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"the sender isn't the DAO\"","value":"the sender isn't the DAO"},"id":2772,"name":"Literal","src":"2898:26:13"}],"id":2773,"name":"FunctionCall","src":"2863:62:13"}],"id":2774,"name":"ExpressionStatement","src":"2863:62:13"},{"id":2775,"name":"PlaceholderStatement","src":"2935:1:13"}],"id":2776,"name":"Block","src":"2853:90:13"}],"id":2777,"name":"ModifierDefinition","src":"2834:109:13"},{"attributes":{"constant":false,"documentation":"@notice Constructor initializes the card licence contract.\n @param _owner_ is the owner account of the wallet contract.\n @param _transferable_ indicates whether the contract ownership can be transferred.\n @param _licence_ is the initial card licence amount. this number is scaled 10 = 1%, 9 = 0.9%\n @param _float_ is the address of the multi-sig cryptocurrency float contract.\n @param _holder_ is the address of the token holder contract","implemented":true,"isConstructor":true,"name":"","payable":false,"scope":3210,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"_owner_","scope":2820,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2778,"name":"ElementaryTypeName","src":"3442:7:13"}],"id":2779,"name":"VariableDeclaration","src":"3442:15:13"},{"attributes":{"constant":false,"name":"_transferable_","scope":2820,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2780,"name":"ElementaryTypeName","src":"3459:4:13"}],"id":2781,"name":"VariableDeclaration","src":"3459:19:13"},{"attributes":{"constant":false,"name":"_licence_","scope":2820,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2782,"name":"ElementaryTypeName","src":"3480:4:13"}],"id":2783,"name":"VariableDeclaration","src":"3480:14:13"},{"attributes":{"constant":false,"name":"_float_","scope":2820,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2784,"name":"ElementaryTypeName","src":"3496:7:13"}],"id":2785,"name":"VariableDeclaration","src":"3496:15:13"},{"attributes":{"constant":false,"name":"_holder_","scope":2820,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2786,"name":"ElementaryTypeName","src":"3513:7:13"}],"id":2787,"name":"VariableDeclaration","src":"3513:16:13"},{"attributes":{"constant":false,"name":"_tknAddress_","scope":2820,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2788,"name":"ElementaryTypeName","src":"3531:7:13"}],"id":2789,"name":"VariableDeclaration","src":"3531:20:13"}],"id":2790,"name":"ParameterList","src":"3441:111:13"},{"attributes":{"parameters":[null]},"children":[],"id":2795,"name":"ParameterList","src":"3593:0:13"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2483,"type":"type(contract Ownable)","value":"Ownable"},"id":2791,"name":"Identifier","src":"3553:7:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2779,"type":"address","value":"_owner_"},"id":2792,"name":"Identifier","src":"3561:7:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2781,"type":"bool","value":"_transferable_"},"id":2793,"name":"Identifier","src":"3570:14:13"}],"id":2794,"name":"ModifierInvocation","src":"3553:32:13"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2765,"type":"uint256","value":"_licenceAmountScaled"},"id":2796,"name":"Identifier","src":"3603:20:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2783,"type":"uint256","value":"_licence_"},"id":2797,"name":"Identifier","src":"3626:9:13"}],"id":2798,"name":"Assignment","src":"3603:32:13"}],"id":2799,"name":"ExpressionStatement","src":"3603:32:13"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2751,"type":"address","value":"_cryptoFloat"},"id":2800,"name":"Identifier","src":"3645:12:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2785,"type":"address","value":"_float_"},"id":2801,"name":"Identifier","src":"3660:7:13"}],"id":2802,"name":"Assignment","src":"3645:22:13"}],"id":2803,"name":"ExpressionStatement","src":"3645:22:13"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2753,"type":"address","value":"_tokenHolder"},"id":2804,"name":"Identifier","src":"3677:12:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2787,"type":"address","value":"_holder_"},"id":2805,"name":"Identifier","src":"3692:8:13"}],"id":2806,"name":"Assignment","src":"3677:23:13"}],"id":2807,"name":"ExpressionStatement","src":"3677:23:13"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2789,"type":"address","value":"_tknAddress_"},"id":2808,"name":"Identifier","src":"3714:12:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":2809,"name":"ElementaryTypeNameExpression","src":"3730:7:13"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2810,"name":"Literal","src":"3738:1:13"}],"id":2811,"name":"FunctionCall","src":"3730:10:13"}],"id":2812,"name":"BinaryOperation","src":"3714:26:13"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2749,"type":"address","value":"_tknContractAddress"},"id":2813,"name":"Identifier","src":"3756:19:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2789,"type":"address","value":"_tknAddress_"},"id":2814,"name":"Identifier","src":"3778:12:13"}],"id":2815,"name":"Assignment","src":"3756:34:13"}],"id":2816,"name":"ExpressionStatement","src":"3756:34:13"}],"id":2817,"name":"Block","src":"3742:59:13"}],"id":2818,"name":"IfStatement","src":"3710:91:13"}],"id":2819,"name":"Block","src":"3593:214:13"}],"id":2820,"name":"FunctionDefinition","src":"3430:377:13"},{"attributes":{"constant":false,"documentation":"@notice Ether can be deposited from any source, so this contract should be payable by anyone.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"","payable":true,"scope":3210,"stateMutability":"payable","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":2821,"name":"ParameterList","src":"3923:2:13"},{"attributes":{"parameters":[null]},"children":[],"id":2822,"name":"ParameterList","src":"3943:0:13"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c98f12ce12078cea6be36b54934612ccdaffc6f888ea6c596da6c9c5019b86f9","typeString":"literal_string \"msg data length should be 0\""}],"overloadedDeclarations":[6460,6461],"referencedDeclaration":6461,"type":"function (bool,string memory) pure","value":"require"},"id":2823,"name":"Identifier","src":"3953:7:13"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"data","referencedDeclaration":null,"type":"bytes calldata"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6457,"type":"msg","value":"msg"},"id":2824,"name":"Identifier","src":"3961:3:13"}],"id":2825,"name":"MemberAccess","src":"3961:8:13"}],"id":2826,"name":"MemberAccess","src":"3961:15:13"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2827,"name":"Literal","src":"3980:1:13"}],"id":2828,"name":"BinaryOperation","src":"3961:20:13"},{"attributes":{"argumentTypes":null,"hexvalue":"6d73672064617461206c656e6774682073686f756c642062652030","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"msg data length should be 0\"","value":"msg data length should be 0"},"id":2829,"name":"Literal","src":"3983:29:13"}],"id":2830,"name":"FunctionCall","src":"3953:60:13"}],"id":2831,"name":"ExpressionStatement","src":"3953:60:13"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":2695,"type":"function (address,uint256)","value":"Received"},"id":2832,"name":"Identifier","src":"4028:8:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6457,"type":"msg","value":"msg"},"id":2833,"name":"Identifier","src":"4037:3:13"}],"id":2834,"name":"MemberAccess","src":"4037:10:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"value","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6457,"type":"msg","value":"msg"},"id":2835,"name":"Identifier","src":"4049:3:13"}],"id":2836,"name":"MemberAccess","src":"4049:9:13"}],"id":2837,"name":"FunctionCall","src":"4028:31:13"}],"id":2838,"name":"EmitStatement","src":"4023:36:13"}],"id":2839,"name":"Block","src":"3943:123:13"}],"id":2840,"name":"FunctionDefinition","src":"3915:151:13"},{"attributes":{"constant":true,"documentation":"@notice this allows for people to see the scaled licence amount\n @return the scaled licence amount, used to calculate the split when loading.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"licenceAmountScaled","payable":false,"scope":3210,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":2841,"name":"ParameterList","src":"4257:2:13"},{"children":[{"attributes":{"constant":false,"name":"","scope":2848,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2842,"name":"ElementaryTypeName","src":"4283:4:13"}],"id":2843,"name":"VariableDeclaration","src":"4283:4:13"}],"id":2844,"name":"ParameterList","src":"4282:6:13"},{"children":[{"attributes":{"functionReturnParameters":2844},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2765,"type":"uint256","value":"_licenceAmountScaled"},"id":2845,"name":"Identifier","src":"4306:20:13"}],"id":2846,"name":"Return","src":"4299:27:13"}],"id":2847,"name":"Block","src":"4289:44:13"}],"id":2848,"name":"FunctionDefinition","src":"4229:104:13"},{"attributes":{"constant":true,"documentation":"@notice allows one to see the address of the CryptoFloat\n @return the address of the multi-sig cryptocurrency float contract.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"cryptoFloat","payable":false,"scope":3210,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":2849,"name":"ParameterList","src":"4500:2:13"},{"children":[{"attributes":{"constant":false,"name":"","scope":2856,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2850,"name":"ElementaryTypeName","src":"4526:7:13"}],"id":2851,"name":"VariableDeclaration","src":"4526:7:13"}],"id":2852,"name":"ParameterList","src":"4525:9:13"},{"children":[{"attributes":{"functionReturnParameters":2852},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2751,"type":"address","value":"_cryptoFloat"},"id":2853,"name":"Identifier","src":"4552:12:13"}],"id":2854,"name":"Return","src":"4545:19:13"}],"id":2855,"name":"Block","src":"4535:36:13"}],"id":2856,"name":"FunctionDefinition","src":"4480:91:13"},{"attributes":{"constant":true,"documentation":"@notice allows one to see the address TKN holder contract\n @return the address of the token holder contract.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"tokenHolder","payable":false,"scope":3210,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":2857,"name":"ParameterList","src":"4721:2:13"},{"children":[{"attributes":{"constant":false,"name":"","scope":2864,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2858,"name":"ElementaryTypeName","src":"4747:7:13"}],"id":2859,"name":"VariableDeclaration","src":"4747:7:13"}],"id":2860,"name":"ParameterList","src":"4746:9:13"},{"children":[{"attributes":{"functionReturnParameters":2860},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2753,"type":"address","value":"_tokenHolder"},"id":2861,"name":"Identifier","src":"4773:12:13"}],"id":2862,"name":"Return","src":"4766:19:13"}],"id":2863,"name":"Block","src":"4756:36:13"}],"id":2864,"name":"FunctionDefinition","src":"4701:91:13"},{"attributes":{"constant":true,"documentation":"@notice allows one to see the address of the DAO\n @return the address of the DAO contract.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"licenceDAO","payable":false,"scope":3210,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":2865,"name":"ParameterList","src":"4923:2:13"},{"children":[{"attributes":{"constant":false,"name":"","scope":2872,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2866,"name":"ElementaryTypeName","src":"4949:7:13"}],"id":2867,"name":"VariableDeclaration","src":"4949:7:13"}],"id":2868,"name":"ParameterList","src":"4948:9:13"},{"children":[{"attributes":{"functionReturnParameters":2868},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2755,"type":"address","value":"_licenceDAO"},"id":2869,"name":"Identifier","src":"4975:11:13"}],"id":2870,"name":"Return","src":"4968:18:13"}],"id":2871,"name":"Block","src":"4958:35:13"}],"id":2872,"name":"FunctionDefinition","src":"4904:89:13"},{"attributes":{"constant":true,"documentation":"@notice The address of the TKN token\n @return the address of the TKN contract.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"tknContractAddress","payable":false,"scope":3210,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":2873,"name":"ParameterList","src":"5120:2:13"},{"children":[{"attributes":{"constant":false,"name":"","scope":2880,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2874,"name":"ElementaryTypeName","src":"5146:7:13"}],"id":2875,"name":"VariableDeclaration","src":"5146:7:13"}],"id":2876,"name":"ParameterList","src":"5145:9:13"},{"children":[{"attributes":{"functionReturnParameters":2876},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2749,"type":"address","value":"_tknContractAddress"},"id":2877,"name":"Identifier","src":"5172:19:13"}],"id":2878,"name":"Return","src":"5165:26:13"}],"id":2879,"name":"Block","src":"5155:43:13"}],"id":2880,"name":"FunctionDefinition","src":"5093:105:13"},{"attributes":{"constant":false,"documentation":"@notice This locks the cryptoFloat address\n @dev so that it can no longer be updated","implemented":true,"isConstructor":false,"name":"lockFloat","payable":false,"scope":3210,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":2881,"name":"ParameterList","src":"5322:2:13"},{"attributes":{"parameters":[null]},"children":[],"id":2884,"name":"ParameterList","src":"5344:0:13"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2385,"type":"modifier ()","value":"onlyOwner"},"id":2882,"name":"Identifier","src":"5334:9:13"}],"id":2883,"name":"ModifierInvocation","src":"5334:9:13"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2757,"type":"bool","value":"_lockedCryptoFloat"},"id":2885,"name":"Identifier","src":"5354:18:13"},{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":2886,"name":"Literal","src":"5375:4:13"}],"id":2887,"name":"Assignment","src":"5354:25:13"}],"id":2888,"name":"ExpressionStatement","src":"5354:25:13"}],"id":2889,"name":"Block","src":"5344:42:13"}],"id":2890,"name":"FunctionDefinition","src":"5304:82:13"},{"attributes":{"constant":false,"documentation":"@notice This locks the TokenHolder address\n @dev so that it can no longer be updated","implemented":true,"isConstructor":false,"name":"lockHolder","payable":false,"scope":3210,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":2891,"name":"ParameterList","src":"5511:2:13"},{"attributes":{"parameters":[null]},"children":[],"id":2894,"name":"ParameterList","src":"5533:0:13"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2385,"type":"modifier ()","value":"onlyOwner"},"id":2892,"name":"Identifier","src":"5523:9:13"}],"id":2893,"name":"ModifierInvocation","src":"5523:9:13"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2759,"type":"bool","value":"_lockedTokenHolder"},"id":2895,"name":"Identifier","src":"5543:18:13"},{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":2896,"name":"Literal","src":"5564:4:13"}],"id":2897,"name":"Assignment","src":"5543:25:13"}],"id":2898,"name":"ExpressionStatement","src":"5543:25:13"}],"id":2899,"name":"Block","src":"5533:42:13"}],"id":2900,"name":"FunctionDefinition","src":"5492:83:13"},{"attributes":{"constant":false,"documentation":"@notice This locks the DAO address\n @dev so that it can no longer be updated","implemented":true,"isConstructor":false,"name":"lockLicenceDAO","payable":false,"scope":3210,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":2901,"name":"ParameterList","src":"5696:2:13"},{"attributes":{"parameters":[null]},"children":[],"id":2904,"name":"ParameterList","src":"5718:0:13"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2385,"type":"modifier ()","value":"onlyOwner"},"id":2902,"name":"Identifier","src":"5708:9:13"}],"id":2903,"name":"ModifierInvocation","src":"5708:9:13"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2761,"type":"bool","value":"_lockedLicenceDAO"},"id":2905,"name":"Identifier","src":"5728:17:13"},{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":2906,"name":"Literal","src":"5748:4:13"}],"id":2907,"name":"Assignment","src":"5728:24:13"}],"id":2908,"name":"ExpressionStatement","src":"5728:24:13"}],"id":2909,"name":"Block","src":"5718:41:13"}],"id":2910,"name":"FunctionDefinition","src":"5673:86:13"},{"attributes":{"constant":false,"documentation":"@notice This locks the TKN address\n @dev so that it can no longer be updated","implemented":true,"isConstructor":false,"name":"lockTKNContractAddress","payable":false,"scope":3210,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":2911,"name":"ParameterList","src":"5888:2:13"},{"attributes":{"parameters":[null]},"children":[],"id":2914,"name":"ParameterList","src":"5910:0:13"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2385,"type":"modifier ()","value":"onlyOwner"},"id":2912,"name":"Identifier","src":"5900:9:13"}],"id":2913,"name":"ModifierInvocation","src":"5900:9:13"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2763,"type":"bool","value":"_lockedTKNContractAddress"},"id":2915,"name":"Identifier","src":"5920:25:13"},{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":2916,"name":"Literal","src":"5948:4:13"}],"id":2917,"name":"Assignment","src":"5920:32:13"}],"id":2918,"name":"ExpressionStatement","src":"5920:32:13"}],"id":2919,"name":"Block","src":"5910:49:13"}],"id":2920,"name":"FunctionDefinition","src":"5857:102:13"},{"attributes":{"constant":false,"documentation":"@notice Updates the address of the cyptoFloat.\n @param _newFloat This is the new address for the CryptoFloat","implemented":true,"isConstructor":false,"name":"updateFloat","payable":false,"scope":3210,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_newFloat","scope":2943,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2921,"name":"ElementaryTypeName","src":"6110:7:13"}],"id":2922,"name":"VariableDeclaration","src":"6110:17:13"}],"id":2923,"name":"ParameterList","src":"6109:19:13"},{"attributes":{"parameters":[null]},"children":[],"id":2926,"name":"ParameterList","src":"6148:0:13"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2385,"type":"modifier ()","value":"onlyOwner"},"id":2924,"name":"Identifier","src":"6138:9:13"}],"id":2925,"name":"ModifierInvocation","src":"6138:9:13"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_73cf4712af49e3d489d13d5688ecb36f2544327f43f1ad1d6113d4e5775b0a25","typeString":"literal_string \"float is locked\""}],"overloadedDeclarations":[6460,6461],"referencedDeclaration":6461,"type":"function (bool,string memory) pure","value":"require"},"id":2927,"name":"Identifier","src":"6158:7:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"overloadedDeclarations":[null],"referencedDeclaration":3185,"type":"function () view returns (bool)","value":"floatLocked"},"id":2928,"name":"Identifier","src":"6167:11:13"}],"id":2929,"name":"FunctionCall","src":"6167:13:13"}],"id":2930,"name":"UnaryOperation","src":"6166:14:13"},{"attributes":{"argumentTypes":null,"hexvalue":"666c6f6174206973206c6f636b6564","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"float is locked\"","value":"float is locked"},"id":2931,"name":"Literal","src":"6182:17:13"}],"id":2932,"name":"FunctionCall","src":"6158:42:13"}],"id":2933,"name":"ExpressionStatement","src":"6158:42:13"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2751,"type":"address","value":"_cryptoFloat"},"id":2934,"name":"Identifier","src":"6210:12:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2922,"type":"address","value":"_newFloat"},"id":2935,"name":"Identifier","src":"6225:9:13"}],"id":2936,"name":"Assignment","src":"6210:24:13"}],"id":2937,"name":"ExpressionStatement","src":"6210:24:13"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2703,"type":"function (address)","value":"UpdatedCryptoFloat"},"id":2938,"name":"Identifier","src":"6249:18:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2922,"type":"address","value":"_newFloat"},"id":2939,"name":"Identifier","src":"6268:9:13"}],"id":2940,"name":"FunctionCall","src":"6249:29:13"}],"id":2941,"name":"EmitStatement","src":"6244:34:13"}],"id":2942,"name":"Block","src":"6148:137:13"}],"id":2943,"name":"FunctionDefinition","src":"6089:196:13"},{"attributes":{"constant":false,"documentation":"@notice Updates the address of the Holder contract.\n @param _newHolder This is the new address for the TokenHolder","implemented":true,"isConstructor":false,"name":"updateHolder","payable":false,"scope":3210,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_newHolder","scope":2966,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2944,"name":"ElementaryTypeName","src":"6443:7:13"}],"id":2945,"name":"VariableDeclaration","src":"6443:18:13"}],"id":2946,"name":"ParameterList","src":"6442:20:13"},{"attributes":{"parameters":[null]},"children":[],"id":2949,"name":"ParameterList","src":"6482:0:13"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2385,"type":"modifier ()","value":"onlyOwner"},"id":2947,"name":"Identifier","src":"6472:9:13"}],"id":2948,"name":"ModifierInvocation","src":"6472:9:13"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1127f79f367bf1ae448858b4e10d08e32e63374d8363948e232ab7fa9624ebd4","typeString":"literal_string \"holder contract is locked\""}],"overloadedDeclarations":[6460,6461],"referencedDeclaration":6461,"type":"function (bool,string memory) pure","value":"require"},"id":2950,"name":"Identifier","src":"6492:7:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"overloadedDeclarations":[null],"referencedDeclaration":3193,"type":"function () view returns (bool)","value":"holderLocked"},"id":2951,"name":"Identifier","src":"6501:12:13"}],"id":2952,"name":"FunctionCall","src":"6501:14:13"}],"id":2953,"name":"UnaryOperation","src":"6500:15:13"},{"attributes":{"argumentTypes":null,"hexvalue":"686f6c64657220636f6e7472616374206973206c6f636b6564","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"holder contract is locked\"","value":"holder contract is locked"},"id":2954,"name":"Literal","src":"6517:27:13"}],"id":2955,"name":"FunctionCall","src":"6492:53:13"}],"id":2956,"name":"ExpressionStatement","src":"6492:53:13"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2753,"type":"address","value":"_tokenHolder"},"id":2957,"name":"Identifier","src":"6555:12:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2945,"type":"address","value":"_newHolder"},"id":2958,"name":"Identifier","src":"6570:10:13"}],"id":2959,"name":"Assignment","src":"6555:25:13"}],"id":2960,"name":"ExpressionStatement","src":"6555:25:13"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2707,"type":"function (address)","value":"UpdatedTokenHolder"},"id":2961,"name":"Identifier","src":"6595:18:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2945,"type":"address","value":"_newHolder"},"id":2962,"name":"Identifier","src":"6614:10:13"}],"id":2963,"name":"FunctionCall","src":"6595:30:13"}],"id":2964,"name":"EmitStatement","src":"6590:35:13"}],"id":2965,"name":"Block","src":"6482:150:13"}],"id":2966,"name":"FunctionDefinition","src":"6421:211:13"},{"attributes":{"constant":false,"documentation":"@notice Updates the address of the DAO contract.\n @param _newDAO This is the new address for the Licence DAO","implemented":true,"isConstructor":false,"name":"updateLicenceDAO","payable":false,"scope":3210,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_newDAO","scope":2989,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2967,"name":"ElementaryTypeName","src":"6788:7:13"}],"id":2968,"name":"VariableDeclaration","src":"6788:15:13"}],"id":2969,"name":"ParameterList","src":"6787:17:13"},{"attributes":{"parameters":[null]},"children":[],"id":2972,"name":"ParameterList","src":"6824:0:13"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2385,"type":"modifier ()","value":"onlyOwner"},"id":2970,"name":"Identifier","src":"6814:9:13"}],"id":2971,"name":"ModifierInvocation","src":"6814:9:13"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e6ff7dad81321f3905380d2bc114061fd5d09c8a5631b7e5a51291235d46ced1","typeString":"literal_string \"DAO is locked\""}],"overloadedDeclarations":[6460,6461],"referencedDeclaration":6461,"type":"function (bool,string memory) pure","value":"require"},"id":2973,"name":"Identifier","src":"6834:7:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"overloadedDeclarations":[null],"referencedDeclaration":3201,"type":"function () view returns (bool)","value":"licenceDAOLocked"},"id":2974,"name":"Identifier","src":"6843:16:13"}],"id":2975,"name":"FunctionCall","src":"6843:18:13"}],"id":2976,"name":"UnaryOperation","src":"6842:19:13"},{"attributes":{"argumentTypes":null,"hexvalue":"44414f206973206c6f636b6564","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"DAO is locked\"","value":"DAO is locked"},"id":2977,"name":"Literal","src":"6863:15:13"}],"id":2978,"name":"FunctionCall","src":"6834:45:13"}],"id":2979,"name":"ExpressionStatement","src":"6834:45:13"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2755,"type":"address","value":"_licenceDAO"},"id":2980,"name":"Identifier","src":"6889:11:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2968,"type":"address","value":"_newDAO"},"id":2981,"name":"Identifier","src":"6903:7:13"}],"id":2982,"name":"Assignment","src":"6889:21:13"}],"id":2983,"name":"ExpressionStatement","src":"6889:21:13"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2699,"type":"function (address)","value":"UpdatedLicenceDAO"},"id":2984,"name":"Identifier","src":"6925:17:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2968,"type":"address","value":"_newDAO"},"id":2985,"name":"Identifier","src":"6943:7:13"}],"id":2986,"name":"FunctionCall","src":"6925:26:13"}],"id":2987,"name":"EmitStatement","src":"6920:31:13"}],"id":2988,"name":"Block","src":"6824:134:13"}],"id":2989,"name":"FunctionDefinition","src":"6762:196:13"},{"attributes":{"constant":false,"documentation":"@notice Updates the address of the TKN contract.\n @param _newTKN This is the new address for the TKN contract","implemented":true,"isConstructor":false,"name":"updateTKNContractAddress","payable":false,"scope":3210,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_newTKN","scope":3012,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2990,"name":"ElementaryTypeName","src":"7123:7:13"}],"id":2991,"name":"VariableDeclaration","src":"7123:15:13"}],"id":2992,"name":"ParameterList","src":"7122:17:13"},{"attributes":{"parameters":[null]},"children":[],"id":2995,"name":"ParameterList","src":"7159:0:13"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2385,"type":"modifier ()","value":"onlyOwner"},"id":2993,"name":"Identifier","src":"7149:9:13"}],"id":2994,"name":"ModifierInvocation","src":"7149:9:13"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e6b32285b06a01bec331e6c8d816613b1307837b439f2b9d9ccc775b962c0c17","typeString":"literal_string \"TKN is locked\""}],"overloadedDeclarations":[6460,6461],"referencedDeclaration":6461,"type":"function (bool,string memory) pure","value":"require"},"id":2996,"name":"Identifier","src":"7169:7:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"overloadedDeclarations":[null],"referencedDeclaration":3209,"type":"function () view returns (bool)","value":"tknContractAddressLocked"},"id":2997,"name":"Identifier","src":"7178:24:13"}],"id":2998,"name":"FunctionCall","src":"7178:26:13"}],"id":2999,"name":"UnaryOperation","src":"7177:27:13"},{"attributes":{"argumentTypes":null,"hexvalue":"544b4e206973206c6f636b6564","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"TKN is locked\"","value":"TKN is locked"},"id":3000,"name":"Literal","src":"7206:15:13"}],"id":3001,"name":"FunctionCall","src":"7169:53:13"}],"id":3002,"name":"ExpressionStatement","src":"7169:53:13"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2749,"type":"address","value":"_tknContractAddress"},"id":3003,"name":"Identifier","src":"7232:19:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2991,"type":"address","value":"_newTKN"},"id":3004,"name":"Identifier","src":"7254:7:13"}],"id":3005,"name":"Assignment","src":"7232:29:13"}],"id":3006,"name":"ExpressionStatement","src":"7232:29:13"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2711,"type":"function (address)","value":"UpdatedTKNContractAddress"},"id":3007,"name":"Identifier","src":"7276:25:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2991,"type":"address","value":"_newTKN"},"id":3008,"name":"Identifier","src":"7302:7:13"}],"id":3009,"name":"FunctionCall","src":"7276:34:13"}],"id":3010,"name":"EmitStatement","src":"7271:39:13"}],"id":3011,"name":"Block","src":"7159:158:13"}],"id":3012,"name":"FunctionDefinition","src":"7089:228:13"},{"attributes":{"constant":false,"documentation":"@notice Updates the TKN licence amount\n @param _newAmount is a number between 1 and MAX_AMOUNT_SCALE","implemented":true,"isConstructor":false,"name":"updateLicenceAmount","payable":false,"scope":3210,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_newAmount","scope":3039,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":3013,"name":"ElementaryTypeName","src":"7468:4:13"}],"id":3014,"name":"VariableDeclaration","src":"7468:15:13"}],"id":3015,"name":"ParameterList","src":"7467:17:13"},{"attributes":{"parameters":[null]},"children":[],"id":3018,"name":"ParameterList","src":"7502:0:13"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2777,"type":"modifier ()","value":"onlyDAO"},"id":3016,"name":"Identifier","src":"7494:7:13"}],"id":3017,"name":"ModifierInvocation","src":"7494:7:13"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_37c5ded16197b0d4ae17a4dd139ab6673cc9958675158c0d22e708afaf45bd8a","typeString":"literal_string \"licence amount out of range\""}],"overloadedDeclarations":[6460,6461],"referencedDeclaration":6461,"type":"function (bool,string memory) pure","value":"require"},"id":3019,"name":"Identifier","src":"7512:7:13"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&&","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":3020,"name":"Literal","src":"7520:1:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3014,"type":"uint256","value":"_newAmount"},"id":3021,"name":"Identifier","src":"7525:10:13"}],"id":3022,"name":"BinaryOperation","src":"7520:15:13"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3014,"type":"uint256","value":"_newAmount"},"id":3023,"name":"Identifier","src":"7539:10:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2746,"type":"uint256","value":"MAX_AMOUNT_SCALE"},"id":3024,"name":"Identifier","src":"7553:16:13"}],"id":3025,"name":"BinaryOperation","src":"7539:30:13"}],"id":3026,"name":"BinaryOperation","src":"7520:49:13"},{"attributes":{"argumentTypes":null,"hexvalue":"6c6963656e636520616d6f756e74206f7574206f662072616e6765","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"licence amount out of range\"","value":"licence amount out of range"},"id":3027,"name":"Literal","src":"7571:29:13"}],"id":3028,"name":"FunctionCall","src":"7512:89:13"}],"id":3029,"name":"ExpressionStatement","src":"7512:89:13"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2765,"type":"uint256","value":"_licenceAmountScaled"},"id":3030,"name":"Identifier","src":"7611:20:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3014,"type":"uint256","value":"_newAmount"},"id":3031,"name":"Identifier","src":"7634:10:13"}],"id":3032,"name":"Assignment","src":"7611:33:13"}],"id":3033,"name":"ExpressionStatement","src":"7611:33:13"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":2715,"type":"function (uint256)","value":"UpdatedLicenceAmount"},"id":3034,"name":"Identifier","src":"7659:20:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3014,"type":"uint256","value":"_newAmount"},"id":3035,"name":"Identifier","src":"7680:10:13"}],"id":3036,"name":"FunctionCall","src":"7659:32:13"}],"id":3037,"name":"EmitStatement","src":"7654:37:13"}],"id":3038,"name":"Block","src":"7502:196:13"}],"id":3039,"name":"FunctionDefinition","src":"7439:259:13"},{"attributes":{"constant":false,"documentation":"@notice Load the holder and float contracts based on the licence amount and asset amount.\n @param _asset is the address of an ERC20 token or 0x0 for ether.\n @param _amount is the amount of assets to be transferred including the licence amount.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"load","payable":true,"scope":3210,"stateMutability":"payable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_asset","scope":3159,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3040,"name":"ElementaryTypeName","src":"7984:7:13"}],"id":3041,"name":"VariableDeclaration","src":"7984:14:13"},{"attributes":{"constant":false,"name":"_amount","scope":3159,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":3042,"name":"ElementaryTypeName","src":"8000:4:13"}],"id":3043,"name":"VariableDeclaration","src":"8000:12:13"}],"id":3044,"name":"ParameterList","src":"7983:30:13"},{"attributes":{"parameters":[null]},"children":[],"id":3045,"name":"ParameterList","src":"8031:0:13"},{"children":[{"attributes":{"assignments":[3047]},"children":[{"attributes":{"constant":false,"name":"loadAmount","scope":3159,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":3046,"name":"ElementaryTypeName","src":"8041:4:13"}],"id":3047,"name":"VariableDeclaration","src":"8041:15:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3043,"type":"uint256","value":"_amount"},"id":3048,"name":"Identifier","src":"8059:7:13"}],"id":3049,"name":"VariableDeclarationStatement","src":"8041:25:13"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3041,"type":"address","value":"_asset"},"id":3050,"name":"Identifier","src":"8125:6:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2749,"type":"address","value":"_tknContractAddress"},"id":3051,"name":"Identifier","src":"8135:19:13"}],"id":3052,"name":"BinaryOperation","src":"8125:29:13"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_31fe905f35fdf491da5448c489d507439f3f3456150e4df60ac26593fab9e7a0","typeString":"literal_string \"TKN transfer from external account was unsuccessful\""}],"overloadedDeclarations":[6460,6461],"referencedDeclaration":6461,"type":"function (bool,string memory) pure","value":"require"},"id":3053,"name":"Identifier","src":"8170:7:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"transferFrom","referencedDeclaration":2090,"type":"function (address,address,uint256) external returns (bool)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract ERC20","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2091,"type":"type(contract ERC20)","value":"ERC20"},"id":3054,"name":"Identifier","src":"8178:5:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3041,"type":"address","value":"_asset"},"id":3055,"name":"Identifier","src":"8184:6:13"}],"id":3056,"name":"FunctionCall","src":"8178:13:13"}],"id":3057,"name":"MemberAccess","src":"8178:26:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6457,"type":"msg","value":"msg"},"id":3058,"name":"Identifier","src":"8205:3:13"}],"id":3059,"name":"MemberAccess","src":"8205:10:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2751,"type":"address","value":"_cryptoFloat"},"id":3060,"name":"Identifier","src":"8217:12:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3047,"type":"uint256","value":"loadAmount"},"id":3061,"name":"Identifier","src":"8231:10:13"}],"id":3062,"name":"FunctionCall","src":"8178:64:13"},{"attributes":{"argumentTypes":null,"hexvalue":"544b4e207472616e736665722066726f6d2065787465726e616c206163636f756e742077617320756e7375636365737366756c","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"TKN transfer from external account was unsuccessful\"","value":"TKN transfer from external account was unsuccessful"},"id":3063,"name":"Literal","src":"8244:53:13"}],"id":3064,"name":"FunctionCall","src":"8170:128:13"}],"id":3065,"name":"ExpressionStatement","src":"8170:128:13"}],"id":3066,"name":"Block","src":"8156:153:13"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3047,"type":"uint256","value":"loadAmount"},"id":3067,"name":"Identifier","src":"8329:10:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"div","referencedDeclaration":2150,"type":"function (uint256,uint256) pure returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"mul","referencedDeclaration":2126,"type":"function (uint256,uint256) pure returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3043,"type":"uint256","value":"_amount"},"id":3068,"name":"Identifier","src":"8342:7:13"}],"id":3069,"name":"MemberAccess","src":"8342:11:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2746,"type":"uint256","value":"MAX_AMOUNT_SCALE"},"id":3070,"name":"Identifier","src":"8354:16:13"}],"id":3071,"name":"FunctionCall","src":"8342:29:13"}],"id":3072,"name":"MemberAccess","src":"8342:33:13"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2765,"type":"uint256","value":"_licenceAmountScaled"},"id":3073,"name":"Identifier","src":"8376:20:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2746,"type":"uint256","value":"MAX_AMOUNT_SCALE"},"id":3074,"name":"Identifier","src":"8399:16:13"}],"id":3075,"name":"BinaryOperation","src":"8376:39:13"}],"id":3076,"name":"FunctionCall","src":"8342:74:13"}],"id":3077,"name":"Assignment","src":"8329:87:13"}],"id":3078,"name":"ExpressionStatement","src":"8329:87:13"},{"attributes":{"assignments":[3080]},"children":[{"attributes":{"constant":false,"name":"licenceAmount","scope":3159,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":3079,"name":"ElementaryTypeName","src":"8430:4:13"}],"id":3080,"name":"VariableDeclaration","src":"8430:18:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sub","referencedDeclaration":2174,"type":"function (uint256,uint256) pure returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3043,"type":"uint256","value":"_amount"},"id":3081,"name":"Identifier","src":"8451:7:13"}],"id":3082,"name":"MemberAccess","src":"8451:11:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3047,"type":"uint256","value":"loadAmount"},"id":3083,"name":"Identifier","src":"8463:10:13"}],"id":3084,"name":"FunctionCall","src":"8451:23:13"}],"id":3085,"name":"VariableDeclarationStatement","src":"8430:44:13"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3041,"type":"address","value":"_asset"},"id":3086,"name":"Identifier","src":"8493:6:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":3087,"name":"ElementaryTypeNameExpression","src":"8503:7:13"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3088,"name":"Literal","src":"8511:1:13"}],"id":3089,"name":"FunctionCall","src":"8503:10:13"}],"id":3090,"name":"BinaryOperation","src":"8493:20:13"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_429220c6a34192cbe74c2d4734e0b30da5c487625b503e3508fd9bb6b4597660","typeString":"literal_string \"ERC20 licenceAmount transfer from external account was unsuccessful\""}],"overloadedDeclarations":[6460,6461],"referencedDeclaration":6461,"type":"function (bool,string memory) pure","value":"require"},"id":3091,"name":"Identifier","src":"8533:7:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"transferFrom","referencedDeclaration":2090,"type":"function (address,address,uint256) external returns (bool)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract ERC20","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2091,"type":"type(contract ERC20)","value":"ERC20"},"id":3092,"name":"Identifier","src":"8541:5:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3041,"type":"address","value":"_asset"},"id":3093,"name":"Identifier","src":"8547:6:13"}],"id":3094,"name":"FunctionCall","src":"8541:13:13"}],"id":3095,"name":"MemberAccess","src":"8541:26:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6457,"type":"msg","value":"msg"},"id":3096,"name":"Identifier","src":"8568:3:13"}],"id":3097,"name":"MemberAccess","src":"8568:10:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2753,"type":"address","value":"_tokenHolder"},"id":3098,"name":"Identifier","src":"8580:12:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3080,"type":"uint256","value":"licenceAmount"},"id":3099,"name":"Identifier","src":"8594:13:13"}],"id":3100,"name":"FunctionCall","src":"8541:67:13"},{"attributes":{"argumentTypes":null,"hexvalue":"4552433230206c6963656e6365416d6f756e74207472616e736665722066726f6d2065787465726e616c206163636f756e742077617320756e7375636365737366756c","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"ERC20 licenceAmount transfer from external account was unsuccessful\"","value":"ERC20 licenceAmount transfer from external account was unsuccessful"},"id":3101,"name":"Literal","src":"8610:69:13"}],"id":3102,"name":"FunctionCall","src":"8533:147:13"}],"id":3103,"name":"ExpressionStatement","src":"8533:147:13"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e26aa40f51222cd695d857fc56119538f8eda37405be7b021860c3517cbab396","typeString":"literal_string \"ERC20 token transfer from external account was unsuccessful\""}],"overloadedDeclarations":[6460,6461],"referencedDeclaration":6461,"type":"function (bool,string memory) pure","value":"require"},"id":3104,"name":"Identifier","src":"8698:7:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"transferFrom","referencedDeclaration":2090,"type":"function (address,address,uint256) external returns (bool)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract ERC20","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2091,"type":"type(contract ERC20)","value":"ERC20"},"id":3105,"name":"Identifier","src":"8706:5:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3041,"type":"address","value":"_asset"},"id":3106,"name":"Identifier","src":"8712:6:13"}],"id":3107,"name":"FunctionCall","src":"8706:13:13"}],"id":3108,"name":"MemberAccess","src":"8706:26:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6457,"type":"msg","value":"msg"},"id":3109,"name":"Identifier","src":"8733:3:13"}],"id":3110,"name":"MemberAccess","src":"8733:10:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2751,"type":"address","value":"_cryptoFloat"},"id":3111,"name":"Identifier","src":"8745:12:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3047,"type":"uint256","value":"loadAmount"},"id":3112,"name":"Identifier","src":"8759:10:13"}],"id":3113,"name":"FunctionCall","src":"8706:64:13"},{"attributes":{"argumentTypes":null,"hexvalue":"455243323020746f6b656e207472616e736665722066726f6d2065787465726e616c206163636f756e742077617320756e7375636365737366756c","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"ERC20 token transfer from external account was unsuccessful\"","value":"ERC20 token transfer from external account was unsuccessful"},"id":3114,"name":"Literal","src":"8772:61:13"}],"id":3115,"name":"FunctionCall","src":"8698:136:13"}],"id":3116,"name":"ExpressionStatement","src":"8698:136:13"}],"id":3117,"name":"Block","src":"8515:334:13"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a8da8f058aaa2efcf224bd479d66e9c2f4c0326aacc5ced62ebd13f3eb808dc3","typeString":"literal_string \"ETH sent is not equal to amount\""}],"overloadedDeclarations":[6460,6461],"referencedDeclaration":6461,"type":"function (bool,string memory) pure","value":"require"},"id":3118,"name":"Identifier","src":"8873:7:13"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"value","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6457,"type":"msg","value":"msg"},"id":3119,"name":"Identifier","src":"8881:3:13"}],"id":3120,"name":"MemberAccess","src":"8881:9:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3043,"type":"uint256","value":"_amount"},"id":3121,"name":"Identifier","src":"8894:7:13"}],"id":3122,"name":"BinaryOperation","src":"8881:20:13"},{"attributes":{"argumentTypes":null,"hexvalue":"4554482073656e74206973206e6f7420657175616c20746f20616d6f756e74","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"ETH sent is not equal to amount\"","value":"ETH sent is not equal to amount"},"id":3123,"name":"Literal","src":"8903:33:13"}],"id":3124,"name":"FunctionCall","src":"8873:64:13"}],"id":3125,"name":"ExpressionStatement","src":"8873:64:13"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"transfer","referencedDeclaration":null,"type":"function (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2753,"type":"address","value":"_tokenHolder"},"id":3126,"name":"Identifier","src":"8955:12:13"}],"id":3128,"name":"MemberAccess","src":"8955:21:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3080,"type":"uint256","value":"licenceAmount"},"id":3129,"name":"Identifier","src":"8977:13:13"}],"id":3130,"name":"FunctionCall","src":"8955:36:13"}],"id":3131,"name":"ExpressionStatement","src":"8955:36:13"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"transfer","referencedDeclaration":null,"type":"function (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2751,"type":"address","value":"_cryptoFloat"},"id":3132,"name":"Identifier","src":"9009:12:13"}],"id":3134,"name":"MemberAccess","src":"9009:21:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3047,"type":"uint256","value":"loadAmount"},"id":3135,"name":"Identifier","src":"9031:10:13"}],"id":3136,"name":"FunctionCall","src":"9009:33:13"}],"id":3137,"name":"ExpressionStatement","src":"9009:33:13"}],"id":3138,"name":"Block","src":"8855:202:13"}],"id":3139,"name":"IfStatement","src":"8489:568:13"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":2725,"type":"function (address,address,address,uint256)","value":"TransferredToTokenHolder"},"id":3140,"name":"Identifier","src":"9076:24:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6457,"type":"msg","value":"msg"},"id":3141,"name":"Identifier","src":"9101:3:13"}],"id":3142,"name":"MemberAccess","src":"9101:10:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2753,"type":"address","value":"_tokenHolder"},"id":3143,"name":"Identifier","src":"9113:12:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3041,"type":"address","value":"_asset"},"id":3144,"name":"Identifier","src":"9127:6:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3080,"type":"uint256","value":"licenceAmount"},"id":3145,"name":"Identifier","src":"9135:13:13"}],"id":3146,"name":"FunctionCall","src":"9076:73:13"}],"id":3147,"name":"EmitStatement","src":"9071:78:13"}],"id":3148,"name":"Block","src":"8315:845:13"}],"id":3149,"name":"IfStatement","src":"8121:1039:13"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":2735,"type":"function (address,address,address,uint256)","value":"TransferredToCryptoFloat"},"id":3150,"name":"Identifier","src":"9175:24:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6457,"type":"msg","value":"msg"},"id":3151,"name":"Identifier","src":"9200:3:13"}],"id":3152,"name":"MemberAccess","src":"9200:10:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2751,"type":"address","value":"_cryptoFloat"},"id":3153,"name":"Identifier","src":"9212:12:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3041,"type":"address","value":"_asset"},"id":3154,"name":"Identifier","src":"9226:6:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3047,"type":"uint256","value":"loadAmount"},"id":3155,"name":"Identifier","src":"9234:10:13"}],"id":3156,"name":"FunctionCall","src":"9175:70:13"}],"id":3157,"name":"EmitStatement","src":"9170:75:13"}],"id":3158,"name":"Block","src":"8031:1221:13"}],"id":3159,"name":"FunctionDefinition","src":"7970:1282:13"},{"attributes":{"constant":false,"documentation":"/ @notice Withdraw tokens from the smart contract to the specified account.","implemented":true,"isConstructor":false,"name":"claim","payable":false,"scope":3210,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_to","scope":3177,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3160,"name":"ElementaryTypeName","src":"9356:7:13"}],"id":3161,"name":"VariableDeclaration","src":"9356:11:13"},{"attributes":{"constant":false,"name":"_asset","scope":3177,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3162,"name":"ElementaryTypeName","src":"9369:7:13"}],"id":3163,"name":"VariableDeclaration","src":"9369:14:13"},{"attributes":{"constant":false,"name":"_amount","scope":3177,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":3164,"name":"ElementaryTypeName","src":"9385:4:13"}],"id":3165,"name":"VariableDeclaration","src":"9385:12:13"}],"id":3166,"name":"ParameterList","src":"9355:43:13"},{"attributes":{"parameters":[null]},"children":[],"id":3169,"name":"ParameterList","src":"9418:0:13"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2385,"type":"modifier ()","value":"onlyOwner"},"id":3167,"name":"Identifier","src":"9408:9:13"}],"id":3168,"name":"ModifierInvocation","src":"9408:9:13"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":4746,"type":"function (address,address,uint256)","value":"_claim"},"id":3170,"name":"Identifier","src":"9428:6:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3161,"type":"address","value":"_to"},"id":3171,"name":"Identifier","src":"9435:3:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3163,"type":"address","value":"_asset"},"id":3172,"name":"Identifier","src":"9440:6:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3165,"type":"uint256","value":"_amount"},"id":3173,"name":"Identifier","src":"9448:7:13"}],"id":3174,"name":"FunctionCall","src":"9428:28:13"}],"id":3175,"name":"ExpressionStatement","src":"9428:28:13"}],"id":3176,"name":"Block","src":"9418:45:13"}],"id":3177,"name":"FunctionDefinition","src":"9341:122:13"},{"attributes":{"constant":true,"documentation":"@notice returns whether or not the CryptoFloat address is locked","implemented":true,"isConstructor":false,"modifiers":[null],"name":"floatLocked","payable":false,"scope":3210,"stateMutability":"view","superFunction":null,"visibility":"public"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":3178,"name":"ParameterList","src":"9562:2:13"},{"children":[{"attributes":{"constant":false,"name":"","scope":3185,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":3179,"name":"ElementaryTypeName","src":"9586:4:13"}],"id":3180,"name":"VariableDeclaration","src":"9586:4:13"}],"id":3181,"name":"ParameterList","src":"9585:6:13"},{"children":[{"attributes":{"functionReturnParameters":3181},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2757,"type":"bool","value":"_lockedCryptoFloat"},"id":3182,"name":"Identifier","src":"9609:18:13"}],"id":3183,"name":"Return","src":"9602:25:13"}],"id":3184,"name":"Block","src":"9592:42:13"}],"id":3185,"name":"FunctionDefinition","src":"9542:92:13"},{"attributes":{"constant":true,"documentation":"@notice returns whether or not the TokenHolder address is locked","implemented":true,"isConstructor":false,"modifiers":[null],"name":"holderLocked","payable":false,"scope":3210,"stateMutability":"view","superFunction":null,"visibility":"public"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":3186,"name":"ParameterList","src":"9734:2:13"},{"children":[{"attributes":{"constant":false,"name":"","scope":3193,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":3187,"name":"ElementaryTypeName","src":"9758:4:13"}],"id":3188,"name":"VariableDeclaration","src":"9758:4:13"}],"id":3189,"name":"ParameterList","src":"9757:6:13"},{"children":[{"attributes":{"functionReturnParameters":3189},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2759,"type":"bool","value":"_lockedTokenHolder"},"id":3190,"name":"Identifier","src":"9781:18:13"}],"id":3191,"name":"Return","src":"9774:25:13"}],"id":3192,"name":"Block","src":"9764:42:13"}],"id":3193,"name":"FunctionDefinition","src":"9713:93:13"},{"attributes":{"constant":true,"documentation":"@notice returns whether or not the Licence DAO address is locked","implemented":true,"isConstructor":false,"modifiers":[null],"name":"licenceDAOLocked","payable":false,"scope":3210,"stateMutability":"view","superFunction":null,"visibility":"public"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":3194,"name":"ParameterList","src":"9910:2:13"},{"children":[{"attributes":{"constant":false,"name":"","scope":3201,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":3195,"name":"ElementaryTypeName","src":"9934:4:13"}],"id":3196,"name":"VariableDeclaration","src":"9934:4:13"}],"id":3197,"name":"ParameterList","src":"9933:6:13"},{"children":[{"attributes":{"functionReturnParameters":3197},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2761,"type":"bool","value":"_lockedLicenceDAO"},"id":3198,"name":"Identifier","src":"9957:17:13"}],"id":3199,"name":"Return","src":"9950:24:13"}],"id":3200,"name":"Block","src":"9940:41:13"}],"id":3201,"name":"FunctionDefinition","src":"9885:96:13"},{"attributes":{"constant":true,"documentation":"@notice returns whether or not the TKN address is locked","implemented":true,"isConstructor":false,"modifiers":[null],"name":"tknContractAddressLocked","payable":false,"scope":3210,"stateMutability":"view","superFunction":null,"visibility":"public"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":3202,"name":"ParameterList","src":"10085:2:13"},{"children":[{"attributes":{"constant":false,"name":"","scope":3209,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":3203,"name":"ElementaryTypeName","src":"10109:4:13"}],"id":3204,"name":"VariableDeclaration","src":"10109:4:13"}],"id":3205,"name":"ParameterList","src":"10108:6:13"},{"children":[{"attributes":{"functionReturnParameters":3205},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2763,"type":"bool","value":"_lockedTKNContractAddress"},"id":3206,"name":"Identifier","src":"10132:25:13"}],"id":3207,"name":"Return","src":"10125:32:13"}],"id":3208,"name":"Block","src":"10115:49:13"}],"id":3209,"name":"FunctionDefinition","src":"10052:112:13"}],"id":3210,"name":"ContractDefinition","src":"1320:8846:13"}],"id":3211,"name":"SourceUnit","src":"767:9400:13"}},"wallet.sol":{"AST":{"attributes":{"absolutePath":"wallet.sol","exportedSymbols":{"AddressWhitelist":[569],"ControllableOwnable":[31],"DailyLimitTrait":[783],"GasTopUpLimit":[1059],"LoadLimit":[1215],"SpendLimit":[908],"Vault":[1468],"Wallet":[2042]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".25"]},"id":1,"name":"PragmaDirective","src":"757:24:14"},{"attributes":{"SourceUnit":3211,"absolutePath":"licence.sol","file":"./licence.sol","scope":2043,"symbolAliases":[null],"unitAlias":""},"id":2,"name":"ImportDirective","src":"783:23:14"},{"attributes":{"SourceUnit":2484,"absolutePath":"internals/ownable.sol","file":"./internals/ownable.sol","scope":2043,"symbolAliases":[null],"unitAlias":""},"id":3,"name":"ImportDirective","src":"807:33:14"},{"attributes":{"SourceUnit":2276,"absolutePath":"internals/controllable.sol","file":"./internals/controllable.sol","scope":2043,"symbolAliases":[null],"unitAlias":""},"id":4,"name":"ImportDirective","src":"841:38:14"},{"attributes":{"SourceUnit":2327,"absolutePath":"internals/ensResolvable.sol","file":"./internals/ensResolvable.sol","scope":2043,"symbolAliases":[null],"unitAlias":""},"id":5,"name":"ImportDirective","src":"880:39:14"},{"attributes":{"SourceUnit":2664,"absolutePath":"internals/tokenWhitelistable.sol","file":"./internals/tokenWhitelistable.sol","scope":2043,"symbolAliases":[null],"unitAlias":""},"id":6,"name":"ImportDirective","src":"920:44:14"},{"attributes":{"SourceUnit":2220,"absolutePath":"externals/SafeMath.sol","file":"./externals/SafeMath.sol","scope":2043,"symbolAliases":[null],"unitAlias":""},"id":7,"name":"ImportDirective","src":"965:34:14"},{"attributes":{"SourceUnit":2092,"absolutePath":"externals/ERC20.sol","file":"./externals/ERC20.sol","scope":2043,"symbolAliases":[null],"unitAlias":""},"id":8,"name":"ImportDirective","src":"1000:31:14"},{"attributes":{"SourceUnit":2053,"absolutePath":"externals/ERC165.sol","file":"./externals/ERC165.sol","scope":2043,"symbolAliases":[null],"unitAlias":""},"id":9,"name":"ImportDirective","src":"1032:32:14"},{"attributes":{"contractDependencies":[2275,2326,2483],"contractKind":"contract","documentation":"@title ControllableOwnable combines Controllable and Ownable\n @dev providing an additional modifier to check if Owner or Controller","fullyImplemented":false,"linearizedBaseContracts":[31,2483,2275,2326],"name":"ControllableOwnable","scope":2043},"children":[{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"Controllable","referencedDeclaration":2275,"type":"contract Controllable"},"id":10,"name":"UserDefinedTypeName","src":"1238:12:14"}],"id":11,"name":"InheritanceSpecifier","src":"1238:12:14"},{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"Ownable","referencedDeclaration":2483,"type":"contract Ownable"},"id":12,"name":"UserDefinedTypeName","src":"1252:7:14"}],"id":13,"name":"InheritanceSpecifier","src":"1252:7:14"},{"attributes":{"documentation":"@dev Check if the sender is the Owner or one of the Controllers","name":"onlyOwnerOrController","visibility":"internal"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":14,"name":"ParameterList","src":"1368:2:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_15a6f462100bf6e9e568343482786d413750c4011bec092e18cfe8ed42f27fc5","typeString":"literal_string \"either owner or controller\""}],"overloadedDeclarations":[6460,6461],"referencedDeclaration":6461,"type":"function (bool,string memory) pure","value":"require"},"id":15,"name":"Identifier","src":"1381:7:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"||","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2482,"type":"function (address) view returns (bool)","value":"_isOwner"},"id":16,"name":"Identifier","src":"1390:8:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6457,"type":"msg","value":"msg"},"id":17,"name":"Identifier","src":"1399:3:14"}],"id":18,"name":"MemberAccess","src":"1399:10:14"}],"id":19,"name":"FunctionCall","src":"1390:20:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2274,"type":"function (address) view returns (bool)","value":"_isController"},"id":20,"name":"Identifier","src":"1414:13:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6457,"type":"msg","value":"msg"},"id":21,"name":"Identifier","src":"1428:3:14"}],"id":22,"name":"MemberAccess","src":"1428:10:14"}],"id":23,"name":"FunctionCall","src":"1414:25:14"}],"id":24,"name":"BinaryOperation","src":"1390:49:14"},{"attributes":{"argumentTypes":null,"hexvalue":"656974686572206f776e6572206f7220636f6e74726f6c6c6572","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"either owner or controller\"","value":"either owner or controller"},"id":25,"name":"Literal","src":"1441:28:14"}],"id":26,"name":"FunctionCall","src":"1381:89:14"}],"id":27,"name":"ExpressionStatement","src":"1381:89:14"},{"id":28,"name":"PlaceholderStatement","src":"1480:1:14"}],"id":29,"name":"Block","src":"1371:117:14"}],"id":30,"name":"ModifierDefinition","src":"1338:150:14"}],"id":31,"name":"ContractDefinition","src":"1206:284:14"},{"attributes":{"contractDependencies":[31,2275,2326,2483],"contractKind":"contract","documentation":"@title AddressWhitelist provides payee-whitelist functionality.\n @dev This contract will allow the user to maintain a whitelist of addresses\n @dev These addresses will live outside of the various spend limits","fullyImplemented":false,"linearizedBaseContracts":[569,31,2483,2275,2326],"name":"AddressWhitelist","scope":2043},"children":[{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"ControllableOwnable","referencedDeclaration":31,"type":"contract ControllableOwnable"},"id":32,"name":"UserDefinedTypeName","src":"1741:19:14"}],"id":33,"name":"InheritanceSpecifier","src":"1741:19:14"},{"children":[{"attributes":{"contractScope":null,"name":"SafeMath","referencedDeclaration":2219,"type":"library SafeMath"},"id":34,"name":"UserDefinedTypeName","src":"1773:8:14"},{"attributes":{"name":"uint256","type":"uint256"},"id":35,"name":"ElementaryTypeName","src":"1786:7:14"}],"id":36,"name":"UsingForDirective","src":"1767:27:14"},{"attributes":{"anonymous":false,"documentation":null,"name":"AddedToWhitelist"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_sender","scope":43,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":37,"name":"ElementaryTypeName","src":"1823:7:14"}],"id":38,"name":"VariableDeclaration","src":"1823:15:14"},{"attributes":{"constant":false,"indexed":false,"name":"_addresses","scope":43,"stateVariable":false,"storageLocation":"default","type":"address[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"address[]"},"children":[{"attributes":{"name":"address","type":"address"},"id":39,"name":"ElementaryTypeName","src":"1840:7:14"}],"id":40,"name":"ArrayTypeName","src":"1840:9:14"}],"id":41,"name":"VariableDeclaration","src":"1840:20:14"}],"id":42,"name":"ParameterList","src":"1822:39:14"}],"id":43,"name":"EventDefinition","src":"1800:62:14"},{"attributes":{"anonymous":false,"documentation":null,"name":"SubmittedWhitelistAddition"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_addresses","scope":50,"stateVariable":false,"storageLocation":"default","type":"address[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"address[]"},"children":[{"attributes":{"name":"address","type":"address"},"id":44,"name":"ElementaryTypeName","src":"1900:7:14"}],"id":45,"name":"ArrayTypeName","src":"1900:9:14"}],"id":46,"name":"VariableDeclaration","src":"1900:20:14"},{"attributes":{"constant":false,"indexed":false,"name":"_hash","scope":50,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":47,"name":"ElementaryTypeName","src":"1922:7:14"}],"id":48,"name":"VariableDeclaration","src":"1922:13:14"}],"id":49,"name":"ParameterList","src":"1899:37:14"}],"id":50,"name":"EventDefinition","src":"1867:70:14"},{"attributes":{"anonymous":false,"documentation":null,"name":"CancelledWhitelistAddition"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_sender","scope":56,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":51,"name":"ElementaryTypeName","src":"1975:7:14"}],"id":52,"name":"VariableDeclaration","src":"1975:15:14"},{"attributes":{"constant":false,"indexed":false,"name":"_hash","scope":56,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":53,"name":"ElementaryTypeName","src":"1992:7:14"}],"id":54,"name":"VariableDeclaration","src":"1992:13:14"}],"id":55,"name":"ParameterList","src":"1974:32:14"}],"id":56,"name":"EventDefinition","src":"1942:65:14"},{"attributes":{"anonymous":false,"documentation":null,"name":"RemovedFromWhitelist"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_sender","scope":63,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":57,"name":"ElementaryTypeName","src":"2040:7:14"}],"id":58,"name":"VariableDeclaration","src":"2040:15:14"},{"attributes":{"constant":false,"indexed":false,"name":"_addresses","scope":63,"stateVariable":false,"storageLocation":"default","type":"address[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"address[]"},"children":[{"attributes":{"name":"address","type":"address"},"id":59,"name":"ElementaryTypeName","src":"2057:7:14"}],"id":60,"name":"ArrayTypeName","src":"2057:9:14"}],"id":61,"name":"VariableDeclaration","src":"2057:20:14"}],"id":62,"name":"ParameterList","src":"2039:39:14"}],"id":63,"name":"EventDefinition","src":"2013:66:14"},{"attributes":{"anonymous":false,"documentation":null,"name":"SubmittedWhitelistRemoval"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_addresses","scope":70,"stateVariable":false,"storageLocation":"default","type":"address[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"address[]"},"children":[{"attributes":{"name":"address","type":"address"},"id":64,"name":"ElementaryTypeName","src":"2116:7:14"}],"id":65,"name":"ArrayTypeName","src":"2116:9:14"}],"id":66,"name":"VariableDeclaration","src":"2116:20:14"},{"attributes":{"constant":false,"indexed":false,"name":"_hash","scope":70,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":67,"name":"ElementaryTypeName","src":"2138:7:14"}],"id":68,"name":"VariableDeclaration","src":"2138:13:14"}],"id":69,"name":"ParameterList","src":"2115:37:14"}],"id":70,"name":"EventDefinition","src":"2084:69:14"},{"attributes":{"anonymous":false,"documentation":null,"name":"CancelledWhitelistRemoval"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_sender","scope":76,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":71,"name":"ElementaryTypeName","src":"2190:7:14"}],"id":72,"name":"VariableDeclaration","src":"2190:15:14"},{"attributes":{"constant":false,"indexed":false,"name":"_hash","scope":76,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":73,"name":"ElementaryTypeName","src":"2207:7:14"}],"id":74,"name":"VariableDeclaration","src":"2207:13:14"}],"id":75,"name":"ParameterList","src":"2189:32:14"}],"id":76,"name":"EventDefinition","src":"2158:64:14"},{"attributes":{"constant":false,"name":"whitelistMap","scope":569,"stateVariable":true,"storageLocation":"default","type":"mapping(address => bool)","value":null,"visibility":"public"},"children":[{"attributes":{"type":"mapping(address => bool)"},"children":[{"attributes":{"name":"address","type":"address"},"id":77,"name":"ElementaryTypeName","src":"2236:7:14"},{"attributes":{"name":"bool","type":"bool"},"id":78,"name":"ElementaryTypeName","src":"2247:4:14"}],"id":79,"name":"Mapping","src":"2228:24:14"}],"id":80,"name":"VariableDeclaration","src":"2228:44:14"},{"attributes":{"constant":false,"name":"whitelistArray","scope":569,"stateVariable":true,"storageLocation":"default","type":"address[]","value":null,"visibility":"public"},"children":[{"attributes":{"length":null,"type":"address[]"},"children":[{"attributes":{"name":"address","type":"address"},"id":81,"name":"ElementaryTypeName","src":"2278:7:14"}],"id":82,"name":"ArrayTypeName","src":"2278:9:14"}],"id":83,"name":"VariableDeclaration","src":"2278:31:14"},{"attributes":{"constant":false,"name":"_pendingWhitelistAddition","scope":569,"stateVariable":true,"storageLocation":"default","type":"address[]","value":null,"visibility":"private"},"children":[{"attributes":{"length":null,"type":"address[]"},"children":[{"attributes":{"name":"address","type":"address"},"id":84,"name":"ElementaryTypeName","src":"2315:7:14"}],"id":85,"name":"ArrayTypeName","src":"2315:9:14"}],"id":86,"name":"VariableDeclaration","src":"2315:43:14"},{"attributes":{"constant":false,"name":"_pendingWhitelistRemoval","scope":569,"stateVariable":true,"storageLocation":"default","type":"address[]","value":null,"visibility":"private"},"children":[{"attributes":{"length":null,"type":"address[]"},"children":[{"attributes":{"name":"address","type":"address"},"id":87,"name":"ElementaryTypeName","src":"2364:7:14"}],"id":88,"name":"ArrayTypeName","src":"2364:9:14"}],"id":89,"name":"VariableDeclaration","src":"2364:42:14"},{"attributes":{"constant":false,"name":"submittedWhitelistAddition","scope":569,"stateVariable":true,"storageLocation":"default","type":"bool","value":null,"visibility":"public"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":90,"name":"ElementaryTypeName","src":"2412:4:14"}],"id":91,"name":"VariableDeclaration","src":"2412:38:14"},{"attributes":{"constant":false,"name":"submittedWhitelistRemoval","scope":569,"stateVariable":true,"storageLocation":"default","type":"bool","value":null,"visibility":"public"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":92,"name":"ElementaryTypeName","src":"2456:4:14"}],"id":93,"name":"VariableDeclaration","src":"2456:37:14"},{"attributes":{"constant":false,"name":"isSetWhitelist","scope":569,"stateVariable":true,"storageLocation":"default","type":"bool","value":null,"visibility":"public"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":94,"name":"ElementaryTypeName","src":"2499:4:14"}],"id":95,"name":"VariableDeclaration","src":"2499:26:14"},{"attributes":{"documentation":"@dev Check if the provided addresses contain the owner or the zero-address address.","name":"hasNoOwnerOrZeroAddress","visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_addresses","scope":136,"stateVariable":false,"storageLocation":"default","type":"address[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"address[]"},"children":[{"attributes":{"name":"address","type":"address"},"id":96,"name":"ElementaryTypeName","src":"2657:7:14"}],"id":97,"name":"ArrayTypeName","src":"2657:9:14"}],"id":98,"name":"VariableDeclaration","src":"2657:20:14"}],"id":99,"name":"ParameterList","src":"2656:22:14"},{"children":[{"children":[{"attributes":{"assignments":[101]},"children":[{"attributes":{"constant":false,"name":"i","scope":136,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":100,"name":"ElementaryTypeName","src":"2694:4:14"}],"id":101,"name":"VariableDeclaration","src":"2694:6:14"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":102,"name":"Literal","src":"2703:1:14"}],"id":103,"name":"VariableDeclarationStatement","src":"2694:10:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":101,"type":"uint256","value":"i"},"id":104,"name":"Identifier","src":"2706:1:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":98,"type":"address[] memory","value":"_addresses"},"id":105,"name":"Identifier","src":"2710:10:14"}],"id":106,"name":"MemberAccess","src":"2710:17:14"}],"id":107,"name":"BinaryOperation","src":"2706:21:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":101,"type":"uint256","value":"i"},"id":108,"name":"Identifier","src":"2729:1:14"}],"id":109,"name":"UnaryOperation","src":"2729:3:14"}],"id":110,"name":"ExpressionStatement","src":"2729:3:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a8e75dab8c649aaf30d2579d69abebd67fdb09bf4c55445182ffabdea73015e7","typeString":"literal_string \"provided whitelist contains the owner address\""}],"overloadedDeclarations":[6460,6461],"referencedDeclaration":6461,"type":"function (bool,string memory) pure","value":"require"},"id":111,"name":"Identifier","src":"2748:7:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2482,"type":"function (address) view returns (bool)","value":"_isOwner"},"id":112,"name":"Identifier","src":"2757:8:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":98,"type":"address[] memory","value":"_addresses"},"id":113,"name":"Identifier","src":"2766:10:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":101,"type":"uint256","value":"i"},"id":114,"name":"Identifier","src":"2777:1:14"}],"id":115,"name":"IndexAccess","src":"2766:13:14"}],"id":116,"name":"FunctionCall","src":"2757:23:14"}],"id":117,"name":"UnaryOperation","src":"2756:24:14"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f76696465642077686974656c69737420636f6e7461696e7320746865206f776e65722061646472657373","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided whitelist contains the owner address\"","value":"provided whitelist contains the owner address"},"id":118,"name":"Literal","src":"2782:47:14"}],"id":119,"name":"FunctionCall","src":"2748:82:14"}],"id":120,"name":"ExpressionStatement","src":"2748:82:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_10c30a6ae890b4c9145915966050a4c7e3796232bd519845d92770d5a99133ce","typeString":"literal_string \"provided whitelist contains the zero address\""}],"overloadedDeclarations":[6460,6461],"referencedDeclaration":6461,"type":"function (bool,string memory) pure","value":"require"},"id":121,"name":"Identifier","src":"2844:7:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":98,"type":"address[] memory","value":"_addresses"},"id":122,"name":"Identifier","src":"2852:10:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":101,"type":"uint256","value":"i"},"id":123,"name":"Identifier","src":"2863:1:14"}],"id":124,"name":"IndexAccess","src":"2852:13:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":125,"name":"ElementaryTypeNameExpression","src":"2869:7:14"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":126,"name":"Literal","src":"2877:1:14"}],"id":127,"name":"FunctionCall","src":"2869:10:14"}],"id":128,"name":"BinaryOperation","src":"2852:27:14"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f76696465642077686974656c69737420636f6e7461696e7320746865207a65726f2061646472657373","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided whitelist contains the zero address\"","value":"provided whitelist contains the zero address"},"id":129,"name":"Literal","src":"2881:46:14"}],"id":130,"name":"FunctionCall","src":"2844:84:14"}],"id":131,"name":"ExpressionStatement","src":"2844:84:14"}],"id":132,"name":"Block","src":"2734:205:14"}],"id":133,"name":"ForStatement","src":"2689:250:14"},{"id":134,"name":"PlaceholderStatement","src":"2948:1:14"}],"id":135,"name":"Block","src":"2679:277:14"}],"id":136,"name":"ModifierDefinition","src":"2624:332:14"},{"attributes":{"documentation":"@dev Check that neither addition nor removal operations have already been submitted.","name":"noActiveSubmission","visibility":"internal"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":137,"name":"ParameterList","src":"3082:2:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_665937f210fbd572a30f9495df026a37ff13c6c171845299d4d867c4689fe504","typeString":"literal_string \"whitelist operation has already been submitted\""}],"overloadedDeclarations":[6460,6461],"referencedDeclaration":6461,"type":"function (bool,string memory) pure","value":"require"},"id":138,"name":"Identifier","src":"3095:7:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&&","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":91,"type":"bool","value":"submittedWhitelistAddition"},"id":139,"name":"Identifier","src":"3104:26:14"}],"id":140,"name":"UnaryOperation","src":"3103:27:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":93,"type":"bool","value":"submittedWhitelistRemoval"},"id":141,"name":"Identifier","src":"3135:25:14"}],"id":142,"name":"UnaryOperation","src":"3134:26:14"}],"id":143,"name":"BinaryOperation","src":"3103:57:14"},{"attributes":{"argumentTypes":null,"hexvalue":"77686974656c697374206f7065726174696f6e2068617320616c7265616479206265656e207375626d6974746564","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"whitelist operation has already been submitted\"","value":"whitelist operation has already been submitted"},"id":144,"name":"Literal","src":"3162:48:14"}],"id":145,"name":"FunctionCall","src":"3095:116:14"}],"id":146,"name":"ExpressionStatement","src":"3095:116:14"},{"id":147,"name":"PlaceholderStatement","src":"3221:1:14"}],"id":148,"name":"Block","src":"3085:144:14"}],"id":149,"name":"ModifierDefinition","src":"3055:174:14"},{"attributes":{"constant":true,"documentation":"@dev Getter for pending addition array.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"pendingWhitelistAddition","payable":false,"scope":569,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":150,"name":"ParameterList","src":"3316:2:14"},{"children":[{"attributes":{"constant":false,"name":"","scope":158,"stateVariable":false,"storageLocation":"default","type":"address[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"address[]"},"children":[{"attributes":{"name":"address","type":"address"},"id":151,"name":"ElementaryTypeName","src":"3342:7:14"}],"id":152,"name":"ArrayTypeName","src":"3342:9:14"}],"id":153,"name":"VariableDeclaration","src":"3342:9:14"}],"id":154,"name":"ParameterList","src":"3341:11:14"},{"children":[{"attributes":{"functionReturnParameters":154},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":86,"type":"address[] storage ref","value":"_pendingWhitelistAddition"},"id":155,"name":"Identifier","src":"3370:25:14"}],"id":156,"name":"Return","src":"3363:32:14"}],"id":157,"name":"Block","src":"3353:49:14"}],"id":158,"name":"FunctionDefinition","src":"3283:119:14"},{"attributes":{"constant":true,"documentation":"@dev Getter for pending removal array.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"pendingWhitelistRemoval","payable":false,"scope":569,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":159,"name":"ParameterList","src":"3487:2:14"},{"children":[{"attributes":{"constant":false,"name":"","scope":167,"stateVariable":false,"storageLocation":"default","type":"address[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"address[]"},"children":[{"attributes":{"name":"address","type":"address"},"id":160,"name":"ElementaryTypeName","src":"3513:7:14"}],"id":161,"name":"ArrayTypeName","src":"3513:9:14"}],"id":162,"name":"VariableDeclaration","src":"3513:9:14"}],"id":163,"name":"ParameterList","src":"3512:11:14"},{"children":[{"attributes":{"functionReturnParameters":163},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":89,"type":"address[] storage ref","value":"_pendingWhitelistRemoval"},"id":164,"name":"Identifier","src":"3541:24:14"}],"id":165,"name":"Return","src":"3534:31:14"}],"id":166,"name":"Block","src":"3524:48:14"}],"id":167,"name":"FunctionDefinition","src":"3455:117:14"},{"attributes":{"constant":false,"documentation":"@dev Add initial addresses to the whitelist.\n @param _addresses are the Ethereum addresses to be whitelisted.","implemented":true,"isConstructor":false,"name":"setWhitelist","payable":false,"scope":569,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_addresses","scope":224,"stateVariable":false,"storageLocation":"default","type":"address[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"address[]"},"children":[{"attributes":{"name":"address","type":"address"},"id":168,"name":"ElementaryTypeName","src":"3725:7:14"}],"id":169,"name":"ArrayTypeName","src":"3725:9:14"}],"id":170,"name":"VariableDeclaration","src":"3725:20:14"}],"id":171,"name":"ParameterList","src":"3724:22:14"},{"attributes":{"parameters":[null]},"children":[],"id":177,"name":"ParameterList","src":"3802:0:14"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2385,"type":"modifier ()","value":"onlyOwner"},"id":172,"name":"Identifier","src":"3756:9:14"}],"id":173,"name":"ModifierInvocation","src":"3756:9:14"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":136,"type":"modifier (address[] memory)","value":"hasNoOwnerOrZeroAddress"},"id":174,"name":"Identifier","src":"3766:23:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":170,"type":"address[] calldata","value":"_addresses"},"id":175,"name":"Identifier","src":"3790:10:14"}],"id":176,"name":"ModifierInvocation","src":"3766:35:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7024d65bf5367912af517dc5671eda7e8e68ce28d43c87290e0733d2837f88dd","typeString":"literal_string \"whitelist has already been initialized\""}],"overloadedDeclarations":[6460,6461],"referencedDeclaration":6461,"type":"function (bool,string memory) pure","value":"require"},"id":178,"name":"Identifier","src":"3876:7:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":95,"type":"bool","value":"isSetWhitelist"},"id":179,"name":"Identifier","src":"3885:14:14"}],"id":180,"name":"UnaryOperation","src":"3884:15:14"},{"attributes":{"argumentTypes":null,"hexvalue":"77686974656c6973742068617320616c7265616479206265656e20696e697469616c697a6564","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"whitelist has already been initialized\"","value":"whitelist has already been initialized"},"id":181,"name":"Literal","src":"3901:40:14"}],"id":182,"name":"FunctionCall","src":"3876:66:14"}],"id":183,"name":"ExpressionStatement","src":"3876:66:14"},{"children":[{"attributes":{"assignments":[185]},"children":[{"attributes":{"constant":false,"name":"i","scope":224,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":184,"name":"ElementaryTypeName","src":"4021:4:14"}],"id":185,"name":"VariableDeclaration","src":"4021:6:14"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":186,"name":"Literal","src":"4030:1:14"}],"id":187,"name":"VariableDeclarationStatement","src":"4021:10:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":185,"type":"uint256","value":"i"},"id":188,"name":"Identifier","src":"4033:1:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":170,"type":"address[] calldata","value":"_addresses"},"id":189,"name":"Identifier","src":"4037:10:14"}],"id":190,"name":"MemberAccess","src":"4037:17:14"}],"id":191,"name":"BinaryOperation","src":"4033:21:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":185,"type":"uint256","value":"i"},"id":192,"name":"Identifier","src":"4056:1:14"}],"id":193,"name":"UnaryOperation","src":"4056:3:14"}],"id":194,"name":"ExpressionStatement","src":"4056:3:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":80,"type":"mapping(address => bool)","value":"whitelistMap"},"id":195,"name":"Identifier","src":"4120:12:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":170,"type":"address[] calldata","value":"_addresses"},"id":196,"name":"Identifier","src":"4133:10:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":185,"type":"uint256","value":"i"},"id":197,"name":"Identifier","src":"4144:1:14"}],"id":198,"name":"IndexAccess","src":"4133:13:14"}],"id":199,"name":"IndexAccess","src":"4120:27:14"},{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":200,"name":"Literal","src":"4150:4:14"}],"id":201,"name":"Assignment","src":"4120:34:14"}],"id":202,"name":"ExpressionStatement","src":"4120:34:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"push","referencedDeclaration":null,"type":"function (address) returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":83,"type":"address[] storage ref","value":"whitelistArray"},"id":203,"name":"Identifier","src":"4211:14:14"}],"id":205,"name":"MemberAccess","src":"4211:19:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":170,"type":"address[] calldata","value":"_addresses"},"id":206,"name":"Identifier","src":"4231:10:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":185,"type":"uint256","value":"i"},"id":207,"name":"Identifier","src":"4242:1:14"}],"id":208,"name":"IndexAccess","src":"4231:13:14"}],"id":209,"name":"FunctionCall","src":"4211:34:14"}],"id":210,"name":"ExpressionStatement","src":"4211:34:14"}],"id":211,"name":"Block","src":"4061:195:14"}],"id":212,"name":"ForStatement","src":"4016:240:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":95,"type":"bool","value":"isSetWhitelist"},"id":213,"name":"Identifier","src":"4265:14:14"},{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":214,"name":"Literal","src":"4282:4:14"}],"id":215,"name":"Assignment","src":"4265:21:14"}],"id":216,"name":"ExpressionStatement","src":"4265:21:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}],"overloadedDeclarations":[null],"referencedDeclaration":43,"type":"function (address,address[] memory)","value":"AddedToWhitelist"},"id":217,"name":"Identifier","src":"4337:16:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6457,"type":"msg","value":"msg"},"id":218,"name":"Identifier","src":"4354:3:14"}],"id":219,"name":"MemberAccess","src":"4354:10:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":170,"type":"address[] calldata","value":"_addresses"},"id":220,"name":"Identifier","src":"4366:10:14"}],"id":221,"name":"FunctionCall","src":"4337:40:14"}],"id":222,"name":"EmitStatement","src":"4332:45:14"}],"id":223,"name":"Block","src":"3802:582:14"}],"id":224,"name":"FunctionDefinition","src":"3703:681:14"},{"attributes":{"constant":false,"documentation":"@dev Add addresses to the whitelist.\n @param _addresses are the Ethereum addresses to be whitelisted.","implemented":true,"isConstructor":false,"name":"submitWhitelistAddition","payable":false,"scope":569,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_addresses","scope":266,"stateVariable":false,"storageLocation":"default","type":"address[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"address[]"},"children":[{"attributes":{"name":"address","type":"address"},"id":225,"name":"ElementaryTypeName","src":"4540:7:14"}],"id":226,"name":"ArrayTypeName","src":"4540:9:14"}],"id":227,"name":"VariableDeclaration","src":"4540:20:14"}],"id":228,"name":"ParameterList","src":"4539:22:14"},{"attributes":{"parameters":[null]},"children":[],"id":236,"name":"ParameterList","src":"4636:0:14"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2385,"type":"modifier ()","value":"onlyOwner"},"id":229,"name":"Identifier","src":"4571:9:14"}],"id":230,"name":"ModifierInvocation","src":"4571:9:14"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":149,"type":"modifier ()","value":"noActiveSubmission"},"id":231,"name":"Identifier","src":"4581:18:14"}],"id":232,"name":"ModifierInvocation","src":"4581:18:14"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":136,"type":"modifier (address[] memory)","value":"hasNoOwnerOrZeroAddress"},"id":233,"name":"Identifier","src":"4600:23:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":227,"type":"address[] calldata","value":"_addresses"},"id":234,"name":"Identifier","src":"4624:10:14"}],"id":235,"name":"ModifierInvocation","src":"4600:35:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_462eec1a9b2ee9539f6389733db6b77e20849ccd801eacbd01e20a7715d3353a","typeString":"literal_string \"whitelist has not been initialized\""}],"overloadedDeclarations":[6460,6461],"referencedDeclaration":6461,"type":"function (bool,string memory) pure","value":"require"},"id":237,"name":"Identifier","src":"4706:7:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":95,"type":"bool","value":"isSetWhitelist"},"id":238,"name":"Identifier","src":"4714:14:14"},{"attributes":{"argumentTypes":null,"hexvalue":"77686974656c69737420686173206e6f74206265656e20696e697469616c697a6564","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"whitelist has not been initialized\"","value":"whitelist has not been initialized"},"id":239,"name":"Literal","src":"4730:36:14"}],"id":240,"name":"FunctionCall","src":"4706:61:14"}],"id":241,"name":"ExpressionStatement","src":"4706:61:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_11a44fc28b7f30529e9820e81eadde0c8eb8cf2105a2c5c0517e5fc2624d6439","typeString":"literal_string \"pending whitelist addition is empty\""}],"overloadedDeclarations":[6460,6461],"referencedDeclaration":6461,"type":"function (bool,string memory) pure","value":"require"},"id":242,"name":"Identifier","src":"4830:7:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":227,"type":"address[] calldata","value":"_addresses"},"id":243,"name":"Identifier","src":"4838:10:14"}],"id":244,"name":"MemberAccess","src":"4838:17:14"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":245,"name":"Literal","src":"4858:1:14"}],"id":246,"name":"BinaryOperation","src":"4838:21:14"},{"attributes":{"argumentTypes":null,"hexvalue":"70656e64696e672077686974656c697374206164646974696f6e20697320656d707479","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"pending whitelist addition is empty\"","value":"pending whitelist addition is empty"},"id":247,"name":"Literal","src":"4861:37:14"}],"id":248,"name":"FunctionCall","src":"4830:69:14"}],"id":249,"name":"ExpressionStatement","src":"4830:69:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"address[] storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":86,"type":"address[] storage ref","value":"_pendingWhitelistAddition"},"id":250,"name":"Identifier","src":"4982:25:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":227,"type":"address[] calldata","value":"_addresses"},"id":251,"name":"Identifier","src":"5010:10:14"}],"id":252,"name":"Assignment","src":"4982:38:14"}],"id":253,"name":"ExpressionStatement","src":"4982:38:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":91,"type":"bool","value":"submittedWhitelistAddition"},"id":254,"name":"Identifier","src":"5074:26:14"},{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":255,"name":"Literal","src":"5103:4:14"}],"id":256,"name":"Assignment","src":"5074:33:14"}],"id":257,"name":"ExpressionStatement","src":"5074:33:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[null],"referencedDeclaration":50,"type":"function (address[] memory,bytes32)","value":"SubmittedWhitelistAddition"},"id":258,"name":"Identifier","src":"5160:26:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":227,"type":"address[] calldata","value":"_addresses"},"id":259,"name":"Identifier","src":"5187:10:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}],"overloadedDeclarations":[null],"referencedDeclaration":568,"type":"function (address[] memory) pure returns (bytes32)","value":"calculateHash"},"id":260,"name":"Identifier","src":"5199:13:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":227,"type":"address[] calldata","value":"_addresses"},"id":261,"name":"Identifier","src":"5213:10:14"}],"id":262,"name":"FunctionCall","src":"5199:25:14"}],"id":263,"name":"FunctionCall","src":"5160:65:14"}],"id":264,"name":"EmitStatement","src":"5155:70:14"}],"id":265,"name":"Block","src":"4636:596:14"}],"id":266,"name":"FunctionDefinition","src":"4507:725:14"},{"attributes":{"constant":false,"documentation":"@dev Confirm pending whitelist addition.\n @dev This will only ever be applied post 2FA, by one of the Controllers\n @param _hash is the hash of the pending whitelist array, a form of lamport lock","implemented":true,"isConstructor":false,"name":"confirmWhitelistAddition","payable":false,"scope":569,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_hash","scope":338,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":267,"name":"ElementaryTypeName","src":"5489:7:14"}],"id":268,"name":"VariableDeclaration","src":"5489:13:14"}],"id":269,"name":"ParameterList","src":"5488:15:14"},{"attributes":{"parameters":[null]},"children":[],"id":272,"name":"ParameterList","src":"5528:0:14"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2249,"type":"modifier ()","value":"onlyController"},"id":270,"name":"Identifier","src":"5513:14:14"}],"id":271,"name":"ModifierInvocation","src":"5513:14:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8f5fd1a84abe204d8ec3580e6913cdd98c6ecfbb95a59f815096b771369fe217","typeString":"literal_string \"whitelist addition has not been submitted\""}],"overloadedDeclarations":[6460,6461],"referencedDeclaration":6461,"type":"function (bool,string memory) pure","value":"require"},"id":273,"name":"Identifier","src":"5605:7:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":91,"type":"bool","value":"submittedWhitelistAddition"},"id":274,"name":"Identifier","src":"5613:26:14"},{"attributes":{"argumentTypes":null,"hexvalue":"77686974656c697374206164646974696f6e20686173206e6f74206265656e207375626d6974746564","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"whitelist addition has not been submitted\"","value":"whitelist addition has not been submitted"},"id":275,"name":"Literal","src":"5641:43:14"}],"id":276,"name":"FunctionCall","src":"5605:80:14"}],"id":277,"name":"ExpressionStatement","src":"5605:80:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b8148bcb0baffad7e0d0d61b3668be7d84b53b39e5765bea528ae472428be7b9","typeString":"literal_string \"hash of the pending whitelist addition do not match\""}],"overloadedDeclarations":[6460,6461],"referencedDeclaration":6461,"type":"function (bool,string memory) pure","value":"require"},"id":278,"name":"Identifier","src":"5790:7:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":268,"type":"bytes32","value":"_hash"},"id":279,"name":"Identifier","src":"5798:5:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}],"overloadedDeclarations":[null],"referencedDeclaration":568,"type":"function (address[] memory) pure returns (bytes32)","value":"calculateHash"},"id":280,"name":"Identifier","src":"5807:13:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":86,"type":"address[] storage ref","value":"_pendingWhitelistAddition"},"id":281,"name":"Identifier","src":"5821:25:14"}],"id":282,"name":"FunctionCall","src":"5807:40:14"}],"id":283,"name":"BinaryOperation","src":"5798:49:14"},{"attributes":{"argumentTypes":null,"hexvalue":"68617368206f66207468652070656e64696e672077686974656c697374206164646974696f6e20646f206e6f74206d61746368","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"hash of the pending whitelist addition do not match\"","value":"hash of the pending whitelist addition do not match"},"id":284,"name":"Literal","src":"5849:53:14"}],"id":285,"name":"FunctionCall","src":"5790:113:14"}],"id":286,"name":"ExpressionStatement","src":"5790:113:14"},{"children":[{"attributes":{"assignments":[288]},"children":[{"attributes":{"constant":false,"name":"i","scope":338,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":287,"name":"ElementaryTypeName","src":"5958:4:14"}],"id":288,"name":"VariableDeclaration","src":"5958:6:14"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":289,"name":"Literal","src":"5967:1:14"}],"id":290,"name":"VariableDeclarationStatement","src":"5958:10:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":288,"type":"uint256","value":"i"},"id":291,"name":"Identifier","src":"5970:1:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":86,"type":"address[] storage ref","value":"_pendingWhitelistAddition"},"id":292,"name":"Identifier","src":"5974:25:14"}],"id":293,"name":"MemberAccess","src":"5974:32:14"}],"id":294,"name":"BinaryOperation","src":"5970:36:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":288,"type":"uint256","value":"i"},"id":295,"name":"Identifier","src":"6008:1:14"}],"id":296,"name":"UnaryOperation","src":"6008:3:14"}],"id":297,"name":"ExpressionStatement","src":"6008:3:14"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":80,"type":"mapping(address => bool)","value":"whitelistMap"},"id":298,"name":"Identifier","src":"6082:12:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":86,"type":"address[] storage ref","value":"_pendingWhitelistAddition"},"id":299,"name":"Identifier","src":"6095:25:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":288,"type":"uint256","value":"i"},"id":300,"name":"Identifier","src":"6121:1:14"}],"id":301,"name":"IndexAccess","src":"6095:28:14"}],"id":302,"name":"IndexAccess","src":"6082:42:14"}],"id":303,"name":"UnaryOperation","src":"6081:43:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":80,"type":"mapping(address => bool)","value":"whitelistMap"},"id":304,"name":"Identifier","src":"6193:12:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":86,"type":"address[] storage ref","value":"_pendingWhitelistAddition"},"id":305,"name":"Identifier","src":"6206:25:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":288,"type":"uint256","value":"i"},"id":306,"name":"Identifier","src":"6232:1:14"}],"id":307,"name":"IndexAccess","src":"6206:28:14"}],"id":308,"name":"IndexAccess","src":"6193:42:14"},{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":309,"name":"Literal","src":"6238:4:14"}],"id":310,"name":"Assignment","src":"6193:49:14"}],"id":311,"name":"ExpressionStatement","src":"6193:49:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"push","referencedDeclaration":null,"type":"function (address) returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":83,"type":"address[] storage ref","value":"whitelistArray"},"id":312,"name":"Identifier","src":"6260:14:14"}],"id":314,"name":"MemberAccess","src":"6260:19:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":86,"type":"address[] storage ref","value":"_pendingWhitelistAddition"},"id":315,"name":"Identifier","src":"6280:25:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":288,"type":"uint256","value":"i"},"id":316,"name":"Identifier","src":"6306:1:14"}],"id":317,"name":"IndexAccess","src":"6280:28:14"}],"id":318,"name":"FunctionCall","src":"6260:49:14"}],"id":319,"name":"ExpressionStatement","src":"6260:49:14"}],"id":320,"name":"Block","src":"6126:198:14"}],"id":321,"name":"IfStatement","src":"6077:247:14"}],"id":322,"name":"Block","src":"6013:321:14"}],"id":323,"name":"ForStatement","src":"5953:381:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}],"overloadedDeclarations":[null],"referencedDeclaration":43,"type":"function (address,address[] memory)","value":"AddedToWhitelist"},"id":324,"name":"Identifier","src":"6384:16:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6457,"type":"msg","value":"msg"},"id":325,"name":"Identifier","src":"6401:3:14"}],"id":326,"name":"MemberAccess","src":"6401:10:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":86,"type":"address[] storage ref","value":"_pendingWhitelistAddition"},"id":327,"name":"Identifier","src":"6413:25:14"}],"id":328,"name":"FunctionCall","src":"6384:55:14"}],"id":329,"name":"EmitStatement","src":"6379:60:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"delete","prefix":true,"type":"tuple()"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":86,"type":"address[] storage ref","value":"_pendingWhitelistAddition"},"id":330,"name":"Identifier","src":"6492:25:14"}],"id":331,"name":"UnaryOperation","src":"6485:32:14"}],"id":332,"name":"ExpressionStatement","src":"6485:32:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":91,"type":"bool","value":"submittedWhitelistAddition"},"id":333,"name":"Identifier","src":"6565:26:14"},{"attributes":{"argumentTypes":null,"hexvalue":"66616c7365","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"false"},"id":334,"name":"Literal","src":"6594:5:14"}],"id":335,"name":"Assignment","src":"6565:34:14"}],"id":336,"name":"ExpressionStatement","src":"6565:34:14"}],"id":337,"name":"Block","src":"5528:1078:14"}],"id":338,"name":"FunctionDefinition","src":"5455:1151:14"},{"attributes":{"constant":false,"documentation":"@dev Cancel pending whitelist addition.","implemented":true,"isConstructor":false,"name":"cancelWhitelistAddition","payable":false,"scope":569,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_hash","scope":373,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":339,"name":"ElementaryTypeName","src":"6693:7:14"}],"id":340,"name":"VariableDeclaration","src":"6693:13:14"}],"id":341,"name":"ParameterList","src":"6692:15:14"},{"attributes":{"parameters":[null]},"children":[],"id":344,"name":"ParameterList","src":"6739:0:14"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":30,"type":"modifier ()","value":"onlyOwnerOrController"},"id":342,"name":"Identifier","src":"6717:21:14"}],"id":343,"name":"ModifierInvocation","src":"6717:21:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8f5fd1a84abe204d8ec3580e6913cdd98c6ecfbb95a59f815096b771369fe217","typeString":"literal_string \"whitelist addition has not been submitted\""}],"overloadedDeclarations":[6460,6461],"referencedDeclaration":6461,"type":"function (bool,string memory) pure","value":"require"},"id":345,"name":"Identifier","src":"6799:7:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":91,"type":"bool","value":"submittedWhitelistAddition"},"id":346,"name":"Identifier","src":"6807:26:14"},{"attributes":{"argumentTypes":null,"hexvalue":"77686974656c697374206164646974696f6e20686173206e6f74206265656e207375626d6974746564","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"whitelist addition has not been submitted\"","value":"whitelist addition has not been submitted"},"id":347,"name":"Literal","src":"6835:43:14"}],"id":348,"name":"FunctionCall","src":"6799:80:14"}],"id":349,"name":"ExpressionStatement","src":"6799:80:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ae3de538c1508bb610da34b2e75019eb7397abef7e126d40acc2c55231f1cd1e","typeString":"literal_string \"hash of the pending whitelist addition does not match\""}],"overloadedDeclarations":[6460,6461],"referencedDeclaration":6461,"type":"function (bool,string memory) pure","value":"require"},"id":350,"name":"Identifier","src":"6984:7:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":340,"type":"bytes32","value":"_hash"},"id":351,"name":"Identifier","src":"6992:5:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}],"overloadedDeclarations":[null],"referencedDeclaration":568,"type":"function (address[] memory) pure returns (bytes32)","value":"calculateHash"},"id":352,"name":"Identifier","src":"7001:13:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":86,"type":"address[] storage ref","value":"_pendingWhitelistAddition"},"id":353,"name":"Identifier","src":"7015:25:14"}],"id":354,"name":"FunctionCall","src":"7001:40:14"}],"id":355,"name":"BinaryOperation","src":"6992:49:14"},{"attributes":{"argumentTypes":null,"hexvalue":"68617368206f66207468652070656e64696e672077686974656c697374206164646974696f6e20646f6573206e6f74206d61746368","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"hash of the pending whitelist addition does not match\"","value":"hash of the pending whitelist addition does not match"},"id":356,"name":"Literal","src":"7043:55:14"}],"id":357,"name":"FunctionCall","src":"6984:115:14"}],"id":358,"name":"ExpressionStatement","src":"6984:115:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"delete","prefix":true,"type":"tuple()"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":86,"type":"address[] storage ref","value":"_pendingWhitelistAddition"},"id":359,"name":"Identifier","src":"7152:25:14"}],"id":360,"name":"UnaryOperation","src":"7145:32:14"}],"id":361,"name":"ExpressionStatement","src":"7145:32:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":91,"type":"bool","value":"submittedWhitelistAddition"},"id":362,"name":"Identifier","src":"7234:26:14"},{"attributes":{"argumentTypes":null,"hexvalue":"66616c7365","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"false"},"id":363,"name":"Literal","src":"7263:5:14"}],"id":364,"name":"Assignment","src":"7234:34:14"}],"id":365,"name":"ExpressionStatement","src":"7234:34:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[null],"referencedDeclaration":56,"type":"function (address,bytes32)","value":"CancelledWhitelistAddition"},"id":366,"name":"Identifier","src":"7323:26:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6457,"type":"msg","value":"msg"},"id":367,"name":"Identifier","src":"7350:3:14"}],"id":368,"name":"MemberAccess","src":"7350:10:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":340,"type":"bytes32","value":"_hash"},"id":369,"name":"Identifier","src":"7362:5:14"}],"id":370,"name":"FunctionCall","src":"7323:45:14"}],"id":371,"name":"EmitStatement","src":"7318:50:14"}],"id":372,"name":"Block","src":"6739:636:14"}],"id":373,"name":"FunctionDefinition","src":"6660:715:14"},{"attributes":{"constant":false,"documentation":"@dev Remove addresses from the whitelist.\n @param _addresses are the Ethereum addresses to be removed.","implemented":true,"isConstructor":false,"name":"submitWhitelistRemoval","payable":false,"scope":569,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_addresses","scope":412,"stateVariable":false,"storageLocation":"default","type":"address[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"address[]"},"children":[{"attributes":{"name":"address","type":"address"},"id":374,"name":"ElementaryTypeName","src":"7531:7:14"}],"id":375,"name":"ArrayTypeName","src":"7531:9:14"}],"id":376,"name":"VariableDeclaration","src":"7531:20:14"}],"id":377,"name":"ParameterList","src":"7530:22:14"},{"attributes":{"parameters":[null]},"children":[],"id":382,"name":"ParameterList","src":"7591:0:14"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2385,"type":"modifier ()","value":"onlyOwner"},"id":378,"name":"Identifier","src":"7562:9:14"}],"id":379,"name":"ModifierInvocation","src":"7562:9:14"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":149,"type":"modifier ()","value":"noActiveSubmission"},"id":380,"name":"Identifier","src":"7572:18:14"}],"id":381,"name":"ModifierInvocation","src":"7572:18:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_462eec1a9b2ee9539f6389733db6b77e20849ccd801eacbd01e20a7715d3353a","typeString":"literal_string \"whitelist has not been initialized\""}],"overloadedDeclarations":[6460,6461],"referencedDeclaration":6461,"type":"function (bool,string memory) pure","value":"require"},"id":383,"name":"Identifier","src":"7661:7:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":95,"type":"bool","value":"isSetWhitelist"},"id":384,"name":"Identifier","src":"7669:14:14"},{"attributes":{"argumentTypes":null,"hexvalue":"77686974656c69737420686173206e6f74206265656e20696e697469616c697a6564","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"whitelist has not been initialized\"","value":"whitelist has not been initialized"},"id":385,"name":"Literal","src":"7685:36:14"}],"id":386,"name":"FunctionCall","src":"7661:61:14"}],"id":387,"name":"ExpressionStatement","src":"7661:61:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ad870f5f9cc998dea2669fdd1b83ae1903079652d00c696ea0d6be296a947908","typeString":"literal_string \"pending whitelist removal is empty\""}],"overloadedDeclarations":[6460,6461],"referencedDeclaration":6461,"type":"function (bool,string memory) pure","value":"require"},"id":388,"name":"Identifier","src":"7792:7:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":376,"type":"address[] calldata","value":"_addresses"},"id":389,"name":"Identifier","src":"7800:10:14"}],"id":390,"name":"MemberAccess","src":"7800:17:14"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":391,"name":"Literal","src":"7820:1:14"}],"id":392,"name":"BinaryOperation","src":"7800:21:14"},{"attributes":{"argumentTypes":null,"hexvalue":"70656e64696e672077686974656c6973742072656d6f76616c20697320656d707479","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"pending whitelist removal is empty\"","value":"pending whitelist removal is empty"},"id":393,"name":"Literal","src":"7823:36:14"}],"id":394,"name":"FunctionCall","src":"7792:68:14"}],"id":395,"name":"ExpressionStatement","src":"7792:68:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"address[] storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":89,"type":"address[] storage ref","value":"_pendingWhitelistRemoval"},"id":396,"name":"Identifier","src":"7938:24:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":376,"type":"address[] calldata","value":"_addresses"},"id":397,"name":"Identifier","src":"7965:10:14"}],"id":398,"name":"Assignment","src":"7938:37:14"}],"id":399,"name":"ExpressionStatement","src":"7938:37:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":93,"type":"bool","value":"submittedWhitelistRemoval"},"id":400,"name":"Identifier","src":"8029:25:14"},{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":401,"name":"Literal","src":"8057:4:14"}],"id":402,"name":"Assignment","src":"8029:32:14"}],"id":403,"name":"ExpressionStatement","src":"8029:32:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[null],"referencedDeclaration":70,"type":"function (address[] memory,bytes32)","value":"SubmittedWhitelistRemoval"},"id":404,"name":"Identifier","src":"8114:25:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":376,"type":"address[] calldata","value":"_addresses"},"id":405,"name":"Identifier","src":"8140:10:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}],"overloadedDeclarations":[null],"referencedDeclaration":568,"type":"function (address[] memory) pure returns (bytes32)","value":"calculateHash"},"id":406,"name":"Identifier","src":"8152:13:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":376,"type":"address[] calldata","value":"_addresses"},"id":407,"name":"Identifier","src":"8166:10:14"}],"id":408,"name":"FunctionCall","src":"8152:25:14"}],"id":409,"name":"FunctionCall","src":"8114:64:14"}],"id":410,"name":"EmitStatement","src":"8109:69:14"}],"id":411,"name":"Block","src":"7591:594:14"}],"id":412,"name":"FunctionDefinition","src":"7499:686:14"},{"attributes":{"constant":false,"documentation":"@dev Confirm pending removal of whitelisted addresses.","implemented":true,"isConstructor":false,"name":"confirmWhitelistRemoval","payable":false,"scope":569,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_hash","scope":517,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":413,"name":"ElementaryTypeName","src":"8287:7:14"}],"id":414,"name":"VariableDeclaration","src":"8287:13:14"}],"id":415,"name":"ParameterList","src":"8286:15:14"},{"attributes":{"parameters":[null]},"children":[],"id":418,"name":"ParameterList","src":"8326:0:14"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2249,"type":"modifier ()","value":"onlyController"},"id":416,"name":"Identifier","src":"8311:14:14"}],"id":417,"name":"ModifierInvocation","src":"8311:14:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4c5b47fe42139f334a4445a4818d2d5f0d9462c6963c0708ec37562736362c82","typeString":"literal_string \"whitelist removal has not been submitted\""}],"overloadedDeclarations":[6460,6461],"referencedDeclaration":6461,"type":"function (bool,string memory) pure","value":"require"},"id":419,"name":"Identifier","src":"8433:7:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":93,"type":"bool","value":"submittedWhitelistRemoval"},"id":420,"name":"Identifier","src":"8441:25:14"},{"attributes":{"argumentTypes":null,"hexvalue":"77686974656c6973742072656d6f76616c20686173206e6f74206265656e207375626d6974746564","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"whitelist removal has not been submitted\"","value":"whitelist removal has not been submitted"},"id":421,"name":"Literal","src":"8468:42:14"}],"id":422,"name":"FunctionCall","src":"8433:78:14"}],"id":423,"name":"ExpressionStatement","src":"8433:78:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7add49aa9a325891343b7cdec1a97ed33cdb67048810e6f5dca489af2c108de6","typeString":"literal_string \"hash of the pending whitelist removal does not match the confirmed hash\""}],"overloadedDeclarations":[6460,6461],"referencedDeclaration":6461,"type":"function (bool,string memory) pure","value":"require"},"id":424,"name":"Identifier","src":"8615:7:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":414,"type":"bytes32","value":"_hash"},"id":425,"name":"Identifier","src":"8623:5:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}],"overloadedDeclarations":[null],"referencedDeclaration":568,"type":"function (address[] memory) pure returns (bytes32)","value":"calculateHash"},"id":426,"name":"Identifier","src":"8632:13:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":89,"type":"address[] storage ref","value":"_pendingWhitelistRemoval"},"id":427,"name":"Identifier","src":"8646:24:14"}],"id":428,"name":"FunctionCall","src":"8632:39:14"}],"id":429,"name":"BinaryOperation","src":"8623:48:14"},{"attributes":{"argumentTypes":null,"hexvalue":"68617368206f66207468652070656e64696e672077686974656c6973742072656d6f76616c20646f6573206e6f74206d617463682074686520636f6e6669726d65642068617368","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"hash of the pending whitelist removal does not match the confirmed hash\"","value":"hash of the pending whitelist removal does not match the confirmed hash"},"id":430,"name":"Literal","src":"8673:73:14"}],"id":431,"name":"FunctionCall","src":"8615:132:14"}],"id":432,"name":"ExpressionStatement","src":"8615:132:14"},{"children":[{"attributes":{"assignments":[434]},"children":[{"attributes":{"constant":false,"name":"i","scope":517,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":433,"name":"ElementaryTypeName","src":"8799:4:14"}],"id":434,"name":"VariableDeclaration","src":"8799:6:14"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":435,"name":"Literal","src":"8808:1:14"}],"id":436,"name":"VariableDeclarationStatement","src":"8799:10:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":434,"type":"uint256","value":"i"},"id":437,"name":"Identifier","src":"8811:1:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":89,"type":"address[] storage ref","value":"_pendingWhitelistRemoval"},"id":438,"name":"Identifier","src":"8815:24:14"}],"id":439,"name":"MemberAccess","src":"8815:31:14"}],"id":440,"name":"BinaryOperation","src":"8811:35:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":434,"type":"uint256","value":"i"},"id":441,"name":"Identifier","src":"8848:1:14"}],"id":442,"name":"UnaryOperation","src":"8848:3:14"}],"id":443,"name":"ExpressionStatement","src":"8848:3:14"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":80,"type":"mapping(address => bool)","value":"whitelistMap"},"id":444,"name":"Identifier","src":"8905:12:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":89,"type":"address[] storage ref","value":"_pendingWhitelistRemoval"},"id":445,"name":"Identifier","src":"8918:24:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":434,"type":"uint256","value":"i"},"id":446,"name":"Identifier","src":"8943:1:14"}],"id":447,"name":"IndexAccess","src":"8918:27:14"}],"id":448,"name":"IndexAccess","src":"8905:41:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":80,"type":"mapping(address => bool)","value":"whitelistMap"},"id":449,"name":"Identifier","src":"8966:12:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":89,"type":"address[] storage ref","value":"_pendingWhitelistRemoval"},"id":450,"name":"Identifier","src":"8979:24:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":434,"type":"uint256","value":"i"},"id":451,"name":"Identifier","src":"9004:1:14"}],"id":452,"name":"IndexAccess","src":"8979:27:14"}],"id":453,"name":"IndexAccess","src":"8966:41:14"},{"attributes":{"argumentTypes":null,"hexvalue":"66616c7365","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"false"},"id":454,"name":"Literal","src":"9010:5:14"}],"id":455,"name":"Assignment","src":"8966:49:14"}],"id":456,"name":"ExpressionStatement","src":"8966:49:14"},{"children":[{"attributes":{"assignments":[458]},"children":[{"attributes":{"constant":false,"name":"j","scope":517,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":457,"name":"ElementaryTypeName","src":"9038:4:14"}],"id":458,"name":"VariableDeclaration","src":"9038:6:14"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":459,"name":"Literal","src":"9047:1:14"}],"id":460,"name":"VariableDeclarationStatement","src":"9038:10:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":458,"type":"uint256","value":"j"},"id":461,"name":"Identifier","src":"9050:1:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sub","referencedDeclaration":2174,"type":"function (uint256,uint256) pure returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":83,"type":"address[] storage ref","value":"whitelistArray"},"id":462,"name":"Identifier","src":"9054:14:14"}],"id":463,"name":"MemberAccess","src":"9054:21:14"}],"id":464,"name":"MemberAccess","src":"9054:25:14"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":465,"name":"Literal","src":"9080:1:14"}],"id":466,"name":"FunctionCall","src":"9054:28:14"}],"id":467,"name":"BinaryOperation","src":"9050:32:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":458,"type":"uint256","value":"j"},"id":468,"name":"Identifier","src":"9084:1:14"}],"id":469,"name":"UnaryOperation","src":"9084:3:14"}],"id":470,"name":"ExpressionStatement","src":"9084:3:14"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":83,"type":"address[] storage ref","value":"whitelistArray"},"id":471,"name":"Identifier","src":"9115:14:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":458,"type":"uint256","value":"j"},"id":472,"name":"Identifier","src":"9130:1:14"}],"id":473,"name":"IndexAccess","src":"9115:17:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":89,"type":"address[] storage ref","value":"_pendingWhitelistRemoval"},"id":474,"name":"Identifier","src":"9136:24:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":434,"type":"uint256","value":"i"},"id":475,"name":"Identifier","src":"9161:1:14"}],"id":476,"name":"IndexAccess","src":"9136:27:14"}],"id":477,"name":"BinaryOperation","src":"9115:48:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"address"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":83,"type":"address[] storage ref","value":"whitelistArray"},"id":478,"name":"Identifier","src":"9191:14:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":458,"type":"uint256","value":"j"},"id":479,"name":"Identifier","src":"9206:1:14"}],"id":480,"name":"IndexAccess","src":"9191:17:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":83,"type":"address[] storage ref","value":"whitelistArray"},"id":481,"name":"Identifier","src":"9211:14:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":83,"type":"address[] storage ref","value":"whitelistArray"},"id":482,"name":"Identifier","src":"9226:14:14"}],"id":483,"name":"MemberAccess","src":"9226:21:14"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":484,"name":"Literal","src":"9250:1:14"}],"id":485,"name":"BinaryOperation","src":"9226:25:14"}],"id":486,"name":"IndexAccess","src":"9211:41:14"}],"id":487,"name":"Assignment","src":"9191:61:14"}],"id":488,"name":"ExpressionStatement","src":"9191:61:14"},{"id":489,"name":"Break","src":"9278:5:14"}],"id":490,"name":"Block","src":"9165:141:14"}],"id":491,"name":"IfStatement","src":"9111:195:14"}],"id":492,"name":"Block","src":"9089:235:14"}],"id":493,"name":"ForStatement","src":"9033:291:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"--","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":83,"type":"address[] storage ref","value":"whitelistArray"},"id":494,"name":"Identifier","src":"9341:14:14"}],"id":496,"name":"MemberAccess","src":"9341:21:14"}],"id":497,"name":"UnaryOperation","src":"9341:23:14"}],"id":498,"name":"ExpressionStatement","src":"9341:23:14"}],"id":499,"name":"Block","src":"8948:431:14"}],"id":500,"name":"IfStatement","src":"8901:478:14"}],"id":501,"name":"Block","src":"8853:536:14"}],"id":502,"name":"ForStatement","src":"8794:595:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}],"overloadedDeclarations":[null],"referencedDeclaration":63,"type":"function (address,address[] memory)","value":"RemovedFromWhitelist"},"id":503,"name":"Identifier","src":"9438:20:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6457,"type":"msg","value":"msg"},"id":504,"name":"Identifier","src":"9459:3:14"}],"id":505,"name":"MemberAccess","src":"9459:10:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":89,"type":"address[] storage ref","value":"_pendingWhitelistRemoval"},"id":506,"name":"Identifier","src":"9471:24:14"}],"id":507,"name":"FunctionCall","src":"9438:58:14"}],"id":508,"name":"EmitStatement","src":"9433:63:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"delete","prefix":true,"type":"tuple()"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":89,"type":"address[] storage ref","value":"_pendingWhitelistRemoval"},"id":509,"name":"Identifier","src":"9549:24:14"}],"id":510,"name":"UnaryOperation","src":"9542:31:14"}],"id":511,"name":"ExpressionStatement","src":"9542:31:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":93,"type":"bool","value":"submittedWhitelistRemoval"},"id":512,"name":"Identifier","src":"9621:25:14"},{"attributes":{"argumentTypes":null,"hexvalue":"66616c7365","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"false"},"id":513,"name":"Literal","src":"9649:5:14"}],"id":514,"name":"Assignment","src":"9621:33:14"}],"id":515,"name":"ExpressionStatement","src":"9621:33:14"}],"id":516,"name":"Block","src":"8326:1335:14"}],"id":517,"name":"FunctionDefinition","src":"8254:1407:14"},{"attributes":{"constant":false,"documentation":"@dev Cancel pending removal of whitelisted addresses.","implemented":true,"isConstructor":false,"name":"cancelWhitelistRemoval","payable":false,"scope":569,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_hash","scope":552,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":518,"name":"ElementaryTypeName","src":"9761:7:14"}],"id":519,"name":"VariableDeclaration","src":"9761:13:14"}],"id":520,"name":"ParameterList","src":"9760:15:14"},{"attributes":{"parameters":[null]},"children":[],"id":523,"name":"ParameterList","src":"9807:0:14"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":30,"type":"modifier ()","value":"onlyOwnerOrController"},"id":521,"name":"Identifier","src":"9785:21:14"}],"id":522,"name":"ModifierInvocation","src":"9785:21:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4c5b47fe42139f334a4445a4818d2d5f0d9462c6963c0708ec37562736362c82","typeString":"literal_string \"whitelist removal has not been submitted\""}],"overloadedDeclarations":[6460,6461],"referencedDeclaration":6461,"type":"function (bool,string memory) pure","value":"require"},"id":524,"name":"Identifier","src":"9867:7:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":93,"type":"bool","value":"submittedWhitelistRemoval"},"id":525,"name":"Identifier","src":"9875:25:14"},{"attributes":{"argumentTypes":null,"hexvalue":"77686974656c6973742072656d6f76616c20686173206e6f74206265656e207375626d6974746564","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"whitelist removal has not been submitted\"","value":"whitelist removal has not been submitted"},"id":526,"name":"Literal","src":"9902:42:14"}],"id":527,"name":"FunctionCall","src":"9867:78:14"}],"id":528,"name":"ExpressionStatement","src":"9867:78:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e4777d178dbaf8d1e241fd516a250d4d87dd91a80cb6ec2719d1bdbbf892c66f","typeString":"literal_string \"hash of the pending whitelist removal do not match\""}],"overloadedDeclarations":[6460,6461],"referencedDeclaration":6461,"type":"function (bool,string memory) pure","value":"require"},"id":529,"name":"Identifier","src":"10049:7:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":519,"type":"bytes32","value":"_hash"},"id":530,"name":"Identifier","src":"10057:5:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}],"overloadedDeclarations":[null],"referencedDeclaration":568,"type":"function (address[] memory) pure returns (bytes32)","value":"calculateHash"},"id":531,"name":"Identifier","src":"10066:13:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":89,"type":"address[] storage ref","value":"_pendingWhitelistRemoval"},"id":532,"name":"Identifier","src":"10080:24:14"}],"id":533,"name":"FunctionCall","src":"10066:39:14"}],"id":534,"name":"BinaryOperation","src":"10057:48:14"},{"attributes":{"argumentTypes":null,"hexvalue":"68617368206f66207468652070656e64696e672077686974656c6973742072656d6f76616c20646f206e6f74206d61746368","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"hash of the pending whitelist removal do not match\"","value":"hash of the pending whitelist removal do not match"},"id":535,"name":"Literal","src":"10107:52:14"}],"id":536,"name":"FunctionCall","src":"10049:111:14"}],"id":537,"name":"ExpressionStatement","src":"10049:111:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"delete","prefix":true,"type":"tuple()"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":89,"type":"address[] storage ref","value":"_pendingWhitelistRemoval"},"id":538,"name":"Identifier","src":"10213:24:14"}],"id":539,"name":"UnaryOperation","src":"10206:31:14"}],"id":540,"name":"ExpressionStatement","src":"10206:31:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":93,"type":"bool","value":"submittedWhitelistRemoval"},"id":541,"name":"Identifier","src":"10283:25:14"},{"attributes":{"argumentTypes":null,"hexvalue":"66616c7365","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"false"},"id":542,"name":"Literal","src":"10311:5:14"}],"id":543,"name":"Assignment","src":"10283:33:14"}],"id":544,"name":"ExpressionStatement","src":"10283:33:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[null],"referencedDeclaration":76,"type":"function (address,bytes32)","value":"CancelledWhitelistRemoval"},"id":545,"name":"Identifier","src":"10371:25:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6457,"type":"msg","value":"msg"},"id":546,"name":"Identifier","src":"10397:3:14"}],"id":547,"name":"MemberAccess","src":"10397:10:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":519,"type":"bytes32","value":"_hash"},"id":548,"name":"Identifier","src":"10409:5:14"}],"id":549,"name":"FunctionCall","src":"10371:44:14"}],"id":550,"name":"EmitStatement","src":"10366:49:14"}],"id":551,"name":"Block","src":"9807:615:14"}],"id":552,"name":"FunctionDefinition","src":"9729:693:14"},{"attributes":{"constant":true,"documentation":"@dev Method used to hash our whitelist address arrays.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"calculateHash","payable":false,"scope":569,"stateMutability":"pure","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"_addresses","scope":568,"stateVariable":false,"storageLocation":"default","type":"address[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"address[]"},"children":[{"attributes":{"name":"address","type":"address"},"id":553,"name":"ElementaryTypeName","src":"10514:7:14"}],"id":554,"name":"ArrayTypeName","src":"10514:9:14"}],"id":555,"name":"VariableDeclaration","src":"10514:20:14"}],"id":556,"name":"ParameterList","src":"10513:22:14"},{"children":[{"attributes":{"constant":false,"name":"","scope":568,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":557,"name":"ElementaryTypeName","src":"10557:7:14"}],"id":558,"name":"VariableDeclaration","src":"10557:7:14"}],"id":559,"name":"ParameterList","src":"10556:9:14"},{"children":[{"attributes":{"functionReturnParameters":559},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"overloadedDeclarations":[null],"referencedDeclaration":6451,"type":"function () pure returns (bytes32)","value":"keccak256"},"id":560,"name":"Identifier","src":"10583:9:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"member_name":"encodePacked","referencedDeclaration":null,"type":"function () pure returns (bytes memory)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6444,"type":"abi","value":"abi"},"id":561,"name":"Identifier","src":"10593:3:14"}],"id":562,"name":"MemberAccess","src":"10593:16:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":555,"type":"address[] memory","value":"_addresses"},"id":563,"name":"Identifier","src":"10610:10:14"}],"id":564,"name":"FunctionCall","src":"10593:28:14"}],"id":565,"name":"FunctionCall","src":"10583:39:14"}],"id":566,"name":"Return","src":"10576:46:14"}],"id":567,"name":"Block","src":"10566:63:14"}],"id":568,"name":"FunctionDefinition","src":"10491:138:14"}],"id":569,"name":"ContractDefinition","src":"1712:8919:14"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"contract","documentation":"@title DailyLimitTrait This trait allows for daily limits to be included in other contracts.\n This contract will allow for a DailyLimit object to be instantiated and used.","fullyImplemented":true,"linearizedBaseContracts":[783],"name":"DailyLimitTrait","scope":2043},"children":[{"children":[{"attributes":{"contractScope":null,"name":"SafeMath","referencedDeclaration":2219,"type":"library SafeMath"},"id":570,"name":"UserDefinedTypeName","src":"10850:8:14"},{"attributes":{"name":"uint256","type":"uint256"},"id":571,"name":"ElementaryTypeName","src":"10863:7:14"}],"id":572,"name":"UsingForDirective","src":"10844:27:14"},{"attributes":{"canonicalName":"DailyLimitTrait.DailyLimit","name":"DailyLimit","scope":783,"visibility":"public"},"children":[{"attributes":{"constant":false,"name":"value","scope":583,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":573,"name":"ElementaryTypeName","src":"10905:4:14"}],"id":574,"name":"VariableDeclaration","src":"10905:10:14"},{"attributes":{"constant":false,"name":"available","scope":583,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":575,"name":"ElementaryTypeName","src":"10925:4:14"}],"id":576,"name":"VariableDeclaration","src":"10925:14:14"},{"attributes":{"constant":false,"name":"limitDay","scope":583,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":577,"name":"ElementaryTypeName","src":"10949:4:14"}],"id":578,"name":"VariableDeclaration","src":"10949:13:14"},{"attributes":{"constant":false,"name":"pending","scope":583,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":579,"name":"ElementaryTypeName","src":"10972:4:14"}],"id":580,"name":"VariableDeclaration","src":"10972:12:14"},{"attributes":{"constant":false,"name":"set","scope":583,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":581,"name":"ElementaryTypeName","src":"10994:4:14"}],"id":582,"name":"VariableDeclaration","src":"10994:8:14"}],"id":583,"name":"StructDefinition","src":"10877:132:14"},{"attributes":{"constant":true,"documentation":"@dev Returns the available daily balance - accounts for daily limit reset.\n @return amount of available to spend within the current day in base units.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_getAvailableLimit","payable":false,"scope":783,"stateMutability":"view","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"dl","scope":606,"stateVariable":false,"storageLocation":"storage","type":"struct DailyLimitTrait.DailyLimit","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"DailyLimit","referencedDeclaration":583,"type":"struct DailyLimitTrait.DailyLimit"},"id":584,"name":"UserDefinedTypeName","src":"11209:10:14"}],"id":585,"name":"VariableDeclaration","src":"11209:21:14"}],"id":586,"name":"ParameterList","src":"11208:23:14"},{"children":[{"attributes":{"constant":false,"name":"","scope":606,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":587,"name":"ElementaryTypeName","src":"11255:4:14"}],"id":588,"name":"VariableDeclaration","src":"11255:4:14"}],"id":589,"name":"ParameterList","src":"11254:6:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6459,"type":"uint256","value":"now"},"id":590,"name":"Identifier","src":"11275:3:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"limitDay","referencedDeclaration":578,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":585,"type":"struct DailyLimitTrait.DailyLimit storage pointer","value":"dl"},"id":591,"name":"Identifier","src":"11281:2:14"}],"id":592,"name":"MemberAccess","src":"11281:11:14"},{"attributes":{"argumentTypes":null,"hexvalue":"3234","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":"hours","token":"number","type":"int_const 86400","value":"24"},"id":593,"name":"Literal","src":"11295:8:14"}],"id":594,"name":"BinaryOperation","src":"11281:22:14"}],"id":595,"name":"BinaryOperation","src":"11275:28:14"},{"children":[{"attributes":{"functionReturnParameters":589},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"value","referencedDeclaration":574,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":585,"type":"struct DailyLimitTrait.DailyLimit storage pointer","value":"dl"},"id":596,"name":"Identifier","src":"11326:2:14"}],"id":597,"name":"MemberAccess","src":"11326:8:14"}],"id":598,"name":"Return","src":"11319:15:14"}],"id":599,"name":"Block","src":"11305:40:14"},{"children":[{"attributes":{"functionReturnParameters":589},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"available","referencedDeclaration":576,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":585,"type":"struct DailyLimitTrait.DailyLimit storage pointer","value":"dl"},"id":600,"name":"Identifier","src":"11372:2:14"}],"id":601,"name":"MemberAccess","src":"11372:12:14"}],"id":602,"name":"Return","src":"11365:19:14"}],"id":603,"name":"Block","src":"11351:44:14"}],"id":604,"name":"IfStatement","src":"11271:124:14"}],"id":605,"name":"Block","src":"11261:140:14"}],"id":606,"name":"FunctionDefinition","src":"11181:220:14"},{"attributes":{"constant":false,"documentation":"@dev Use up amount within the daily limit. Will fail if amount is larger than daily limit.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_enforceLimit","payable":false,"scope":783,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"dl","scope":636,"stateVariable":false,"storageLocation":"storage","type":"struct DailyLimitTrait.DailyLimit","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"DailyLimit","referencedDeclaration":583,"type":"struct DailyLimitTrait.DailyLimit"},"id":607,"name":"UserDefinedTypeName","src":"11529:10:14"}],"id":608,"name":"VariableDeclaration","src":"11529:21:14"},{"attributes":{"constant":false,"name":"_amount","scope":636,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":609,"name":"ElementaryTypeName","src":"11552:4:14"}],"id":610,"name":"VariableDeclaration","src":"11552:12:14"}],"id":611,"name":"ParameterList","src":"11528:37:14"},{"attributes":{"parameters":[null]},"children":[],"id":612,"name":"ParameterList","src":"11575:0:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_DailyLimit_$583_storage_ptr","typeString":"struct DailyLimitTrait.DailyLimit storage pointer"}],"overloadedDeclarations":[null],"referencedDeclaration":750,"type":"function (struct DailyLimitTrait.DailyLimit storage pointer)","value":"_updateAvailableLimit"},"id":613,"name":"Identifier","src":"11637:21:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":608,"type":"struct DailyLimitTrait.DailyLimit storage pointer","value":"dl"},"id":614,"name":"Identifier","src":"11659:2:14"}],"id":615,"name":"FunctionCall","src":"11637:25:14"}],"id":616,"name":"ExpressionStatement","src":"11637:25:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6afc64e3f445e54c8d6696102285673f424a89c0366935246360d47569e05a8e","typeString":"literal_string \"available has to be greater or equal to use amount\""}],"overloadedDeclarations":[6460,6461],"referencedDeclaration":6461,"type":"function (bool,string memory) pure","value":"require"},"id":617,"name":"Identifier","src":"11672:7:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"available","referencedDeclaration":576,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":608,"type":"struct DailyLimitTrait.DailyLimit storage pointer","value":"dl"},"id":618,"name":"Identifier","src":"11680:2:14"}],"id":619,"name":"MemberAccess","src":"11680:12:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":610,"type":"uint256","value":"_amount"},"id":620,"name":"Identifier","src":"11696:7:14"}],"id":621,"name":"BinaryOperation","src":"11680:23:14"},{"attributes":{"argumentTypes":null,"hexvalue":"617661696c61626c652068617320746f2062652067726561746572206f7220657175616c20746f2075736520616d6f756e74","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"available has to be greater or equal to use amount\"","value":"available has to be greater or equal to use amount"},"id":622,"name":"Literal","src":"11705:52:14"}],"id":623,"name":"FunctionCall","src":"11672:86:14"}],"id":624,"name":"ExpressionStatement","src":"11672:86:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"available","referencedDeclaration":576,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":608,"type":"struct DailyLimitTrait.DailyLimit storage pointer","value":"dl"},"id":625,"name":"Identifier","src":"11768:2:14"}],"id":627,"name":"MemberAccess","src":"11768:12:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sub","referencedDeclaration":2174,"type":"function (uint256,uint256) pure returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"available","referencedDeclaration":576,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":608,"type":"struct DailyLimitTrait.DailyLimit storage pointer","value":"dl"},"id":628,"name":"Identifier","src":"11783:2:14"}],"id":629,"name":"MemberAccess","src":"11783:12:14"}],"id":630,"name":"MemberAccess","src":"11783:16:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":610,"type":"uint256","value":"_amount"},"id":631,"name":"Identifier","src":"11800:7:14"}],"id":632,"name":"FunctionCall","src":"11783:25:14"}],"id":633,"name":"Assignment","src":"11768:40:14"}],"id":634,"name":"ExpressionStatement","src":"11768:40:14"}],"id":635,"name":"Block","src":"11575:240:14"}],"id":636,"name":"FunctionDefinition","src":"11506:309:14"},{"attributes":{"constant":false,"documentation":"@dev Set the daily limit.\n @param _amount is the daily limit amount in base units.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_setLimit","payable":false,"scope":783,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"dl","scope":662,"stateVariable":false,"storageLocation":"storage","type":"struct DailyLimitTrait.DailyLimit","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"DailyLimit","referencedDeclaration":583,"type":"struct DailyLimitTrait.DailyLimit"},"id":637,"name":"UserDefinedTypeName","src":"11938:10:14"}],"id":638,"name":"VariableDeclaration","src":"11938:21:14"},{"attributes":{"constant":false,"name":"_amount","scope":662,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":639,"name":"ElementaryTypeName","src":"11961:4:14"}],"id":640,"name":"VariableDeclaration","src":"11961:12:14"}],"id":641,"name":"ParameterList","src":"11937:37:14"},{"attributes":{"parameters":[null]},"children":[],"id":642,"name":"ParameterList","src":"11984:0:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7b9cc803b487706c400cdf25a76923240be61a4f6c1c2991fce5dc783065ec8c","typeString":"literal_string \"daily limit has already been set\""}],"overloadedDeclarations":[6460,6461],"referencedDeclaration":6461,"type":"function (bool,string memory) pure","value":"require"},"id":643,"name":"Identifier","src":"12056:7:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"set","referencedDeclaration":582,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":638,"type":"struct DailyLimitTrait.DailyLimit storage pointer","value":"dl"},"id":644,"name":"Identifier","src":"12065:2:14"}],"id":645,"name":"MemberAccess","src":"12065:6:14"}],"id":646,"name":"UnaryOperation","src":"12064:7:14"},{"attributes":{"argumentTypes":null,"hexvalue":"6461696c79206c696d69742068617320616c7265616479206265656e20736574","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"daily limit has already been set\"","value":"daily limit has already been set"},"id":647,"name":"Literal","src":"12073:34:14"}],"id":648,"name":"FunctionCall","src":"12056:52:14"}],"id":649,"name":"ExpressionStatement","src":"12056:52:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_DailyLimit_$583_storage_ptr","typeString":"struct DailyLimitTrait.DailyLimit storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":782,"type":"function (struct DailyLimitTrait.DailyLimit storage pointer,uint256)","value":"_modifyLimit"},"id":650,"name":"Identifier","src":"12177:12:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":638,"type":"struct DailyLimitTrait.DailyLimit storage pointer","value":"dl"},"id":651,"name":"Identifier","src":"12190:2:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":640,"type":"uint256","value":"_amount"},"id":652,"name":"Identifier","src":"12194:7:14"}],"id":653,"name":"FunctionCall","src":"12177:25:14"}],"id":654,"name":"ExpressionStatement","src":"12177:25:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"set","referencedDeclaration":582,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":638,"type":"struct DailyLimitTrait.DailyLimit storage pointer","value":"dl"},"id":655,"name":"Identifier","src":"12250:2:14"}],"id":657,"name":"MemberAccess","src":"12250:6:14"},{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":658,"name":"Literal","src":"12259:4:14"}],"id":659,"name":"Assignment","src":"12250:13:14"}],"id":660,"name":"ExpressionStatement","src":"12250:13:14"}],"id":661,"name":"Block","src":"11984:286:14"}],"id":662,"name":"FunctionDefinition","src":"11919:351:14"},{"attributes":{"constant":false,"documentation":"@dev Submit a daily limit update, needs to be confirmed.\n @param _amount is the daily limit amount in base units.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_submitLimitUpdate","payable":false,"scope":783,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"dl","scope":682,"stateVariable":false,"storageLocation":"storage","type":"struct DailyLimitTrait.DailyLimit","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"DailyLimit","referencedDeclaration":583,"type":"struct DailyLimitTrait.DailyLimit"},"id":663,"name":"UserDefinedTypeName","src":"12433:10:14"}],"id":664,"name":"VariableDeclaration","src":"12433:21:14"},{"attributes":{"constant":false,"name":"_amount","scope":682,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":665,"name":"ElementaryTypeName","src":"12456:4:14"}],"id":666,"name":"VariableDeclaration","src":"12456:12:14"}],"id":667,"name":"ParameterList","src":"12432:37:14"},{"attributes":{"parameters":[null]},"children":[],"id":668,"name":"ParameterList","src":"12479:0:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_adfdc9009421f12fb1afe5e6ea639ab2b34e97bdbcbc499b16cbf316ccf5133b","typeString":"literal_string \"limit has not been set\""}],"overloadedDeclarations":[6460,6461],"referencedDeclaration":6461,"type":"function (bool,string memory) pure","value":"require"},"id":669,"name":"Identifier","src":"12543:7:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"set","referencedDeclaration":582,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":664,"type":"struct DailyLimitTrait.DailyLimit storage pointer","value":"dl"},"id":670,"name":"Identifier","src":"12551:2:14"}],"id":671,"name":"MemberAccess","src":"12551:6:14"},{"attributes":{"argumentTypes":null,"hexvalue":"6c696d697420686173206e6f74206265656e20736574","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"limit has not been set\"","value":"limit has not been set"},"id":672,"name":"Literal","src":"12559:24:14"}],"id":673,"name":"FunctionCall","src":"12543:41:14"}],"id":674,"name":"ExpressionStatement","src":"12543:41:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"pending","referencedDeclaration":580,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":664,"type":"struct DailyLimitTrait.DailyLimit storage pointer","value":"dl"},"id":675,"name":"Identifier","src":"12656:2:14"}],"id":677,"name":"MemberAccess","src":"12656:10:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":666,"type":"uint256","value":"_amount"},"id":678,"name":"Identifier","src":"12669:7:14"}],"id":679,"name":"Assignment","src":"12656:20:14"}],"id":680,"name":"ExpressionStatement","src":"12656:20:14"}],"id":681,"name":"Block","src":"12479:204:14"}],"id":682,"name":"FunctionDefinition","src":"12405:278:14"},{"attributes":{"constant":false,"documentation":"@dev Confirm pending set daily limit operation.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_confirmLimitUpdate","payable":false,"scope":783,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"dl","scope":704,"stateVariable":false,"storageLocation":"storage","type":"struct DailyLimitTrait.DailyLimit","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"DailyLimit","referencedDeclaration":583,"type":"struct DailyLimitTrait.DailyLimit"},"id":683,"name":"UserDefinedTypeName","src":"12774:10:14"}],"id":684,"name":"VariableDeclaration","src":"12774:21:14"},{"attributes":{"constant":false,"name":"_amount","scope":704,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":685,"name":"ElementaryTypeName","src":"12797:4:14"}],"id":686,"name":"VariableDeclaration","src":"12797:12:14"}],"id":687,"name":"ParameterList","src":"12773:37:14"},{"attributes":{"parameters":[null]},"children":[],"id":688,"name":"ParameterList","src":"12820:0:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3cf0c2deafd04cfbb13702ba408b05430f9d9fc1fb7ca0b892afe45cc226b0e9","typeString":"literal_string \"confirmed and submitted limits dont match\""}],"overloadedDeclarations":[6460,6461],"referencedDeclaration":6461,"type":"function (bool,string memory) pure","value":"require"},"id":689,"name":"Identifier","src":"12901:7:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"pending","referencedDeclaration":580,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":684,"type":"struct DailyLimitTrait.DailyLimit storage pointer","value":"dl"},"id":690,"name":"Identifier","src":"12909:2:14"}],"id":691,"name":"MemberAccess","src":"12909:10:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":686,"type":"uint256","value":"_amount"},"id":692,"name":"Identifier","src":"12923:7:14"}],"id":693,"name":"BinaryOperation","src":"12909:21:14"},{"attributes":{"argumentTypes":null,"hexvalue":"636f6e6669726d656420616e64207375626d6974746564206c696d69747320646f6e74206d61746368","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"confirmed and submitted limits dont match\"","value":"confirmed and submitted limits dont match"},"id":694,"name":"Literal","src":"12932:43:14"}],"id":695,"name":"FunctionCall","src":"12901:75:14"}],"id":696,"name":"ExpressionStatement","src":"12901:75:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_DailyLimit_$583_storage_ptr","typeString":"struct DailyLimitTrait.DailyLimit storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":782,"type":"function (struct DailyLimitTrait.DailyLimit storage pointer,uint256)","value":"_modifyLimit"},"id":697,"name":"Identifier","src":"13044:12:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":684,"type":"struct DailyLimitTrait.DailyLimit storage pointer","value":"dl"},"id":698,"name":"Identifier","src":"13057:2:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"pending","referencedDeclaration":580,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":684,"type":"struct DailyLimitTrait.DailyLimit storage pointer","value":"dl"},"id":699,"name":"Identifier","src":"13061:2:14"}],"id":700,"name":"MemberAccess","src":"13061:10:14"}],"id":701,"name":"FunctionCall","src":"13044:28:14"}],"id":702,"name":"ExpressionStatement","src":"13044:28:14"}],"id":703,"name":"Block","src":"12820:259:14"}],"id":704,"name":"FunctionDefinition","src":"12745:334:14"},{"attributes":{"constant":false,"documentation":"@dev Update available spend limit based on the daily reset.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_updateAvailableLimit","payable":false,"scope":783,"stateMutability":"nonpayable","superFunction":null,"visibility":"private"},"children":[{"children":[{"attributes":{"constant":false,"name":"dl","scope":750,"stateVariable":false,"storageLocation":"storage","type":"struct DailyLimitTrait.DailyLimit","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"DailyLimit","referencedDeclaration":583,"type":"struct DailyLimitTrait.DailyLimit"},"id":705,"name":"UserDefinedTypeName","src":"13184:10:14"}],"id":706,"name":"VariableDeclaration","src":"13184:21:14"}],"id":707,"name":"ParameterList","src":"13183:23:14"},{"attributes":{"parameters":[null]},"children":[],"id":708,"name":"ParameterList","src":"13215:0:14"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6459,"type":"uint256","value":"now"},"id":709,"name":"Identifier","src":"13229:3:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_86400_by_1","typeString":"int_const 86400"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"add","referencedDeclaration":2198,"type":"function (uint256,uint256) pure returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"limitDay","referencedDeclaration":578,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":706,"type":"struct DailyLimitTrait.DailyLimit storage pointer","value":"dl"},"id":710,"name":"Identifier","src":"13235:2:14"}],"id":711,"name":"MemberAccess","src":"13235:11:14"}],"id":712,"name":"MemberAccess","src":"13235:15:14"},{"attributes":{"argumentTypes":null,"hexvalue":"3234","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":"hours","token":"number","type":"int_const 86400","value":"24"},"id":713,"name":"Literal","src":"13251:8:14"}],"id":714,"name":"FunctionCall","src":"13235:25:14"}],"id":715,"name":"BinaryOperation","src":"13229:31:14"},{"children":[{"attributes":{"assignments":[717]},"children":[{"attributes":{"constant":false,"name":"extraDays","scope":750,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":716,"name":"ElementaryTypeName","src":"13345:4:14"}],"id":717,"name":"VariableDeclaration","src":"13345:14:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_86400_by_1","typeString":"int_const 86400"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"div","referencedDeclaration":2150,"type":"function (uint256,uint256) pure returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sub","referencedDeclaration":2174,"type":"function (uint256,uint256) pure returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6459,"type":"uint256","value":"now"},"id":718,"name":"Identifier","src":"13362:3:14"}],"id":719,"name":"MemberAccess","src":"13362:7:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"limitDay","referencedDeclaration":578,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":706,"type":"struct DailyLimitTrait.DailyLimit storage pointer","value":"dl"},"id":720,"name":"Identifier","src":"13370:2:14"}],"id":721,"name":"MemberAccess","src":"13370:11:14"}],"id":722,"name":"FunctionCall","src":"13362:20:14"}],"id":723,"name":"MemberAccess","src":"13362:24:14"},{"attributes":{"argumentTypes":null,"hexvalue":"3234","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":"hours","token":"number","type":"int_const 86400","value":"24"},"id":724,"name":"Literal","src":"13387:8:14"}],"id":725,"name":"FunctionCall","src":"13362:34:14"}],"id":726,"name":"VariableDeclarationStatement","src":"13345:51:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"limitDay","referencedDeclaration":578,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":706,"type":"struct DailyLimitTrait.DailyLimit storage pointer","value":"dl"},"id":727,"name":"Identifier","src":"13410:2:14"}],"id":729,"name":"MemberAccess","src":"13410:11:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"add","referencedDeclaration":2198,"type":"function (uint256,uint256) pure returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"limitDay","referencedDeclaration":578,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":706,"type":"struct DailyLimitTrait.DailyLimit storage pointer","value":"dl"},"id":730,"name":"Identifier","src":"13424:2:14"}],"id":731,"name":"MemberAccess","src":"13424:11:14"}],"id":732,"name":"MemberAccess","src":"13424:15:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_86400_by_1","typeString":"int_const 86400"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"mul","referencedDeclaration":2126,"type":"function (uint256,uint256) pure returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":717,"type":"uint256","value":"extraDays"},"id":733,"name":"Identifier","src":"13440:9:14"}],"id":734,"name":"MemberAccess","src":"13440:13:14"},{"attributes":{"argumentTypes":null,"hexvalue":"3234","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":"hours","token":"number","type":"int_const 86400","value":"24"},"id":735,"name":"Literal","src":"13454:8:14"}],"id":736,"name":"FunctionCall","src":"13440:23:14"}],"id":737,"name":"FunctionCall","src":"13424:40:14"}],"id":738,"name":"Assignment","src":"13410:54:14"}],"id":739,"name":"ExpressionStatement","src":"13410:54:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"available","referencedDeclaration":576,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":706,"type":"struct DailyLimitTrait.DailyLimit storage pointer","value":"dl"},"id":740,"name":"Identifier","src":"13545:2:14"}],"id":742,"name":"MemberAccess","src":"13545:12:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"value","referencedDeclaration":574,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":706,"type":"struct DailyLimitTrait.DailyLimit storage pointer","value":"dl"},"id":743,"name":"Identifier","src":"13560:2:14"}],"id":744,"name":"MemberAccess","src":"13560:8:14"}],"id":745,"name":"Assignment","src":"13545:23:14"}],"id":746,"name":"ExpressionStatement","src":"13545:23:14"}],"id":747,"name":"Block","src":"13262:317:14"}],"id":748,"name":"IfStatement","src":"13225:354:14"}],"id":749,"name":"Block","src":"13215:370:14"}],"id":750,"name":"FunctionDefinition","src":"13153:432:14"},{"attributes":{"constant":false,"documentation":"@dev Modify the spend limit and spend available based on the provided value.\n @dev _amount is the daily limit amount in wei.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_modifyLimit","payable":false,"scope":783,"stateMutability":"nonpayable","superFunction":null,"visibility":"private"},"children":[{"children":[{"attributes":{"constant":false,"name":"dl","scope":782,"stateVariable":false,"storageLocation":"storage","type":"struct DailyLimitTrait.DailyLimit","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"DailyLimit","referencedDeclaration":583,"type":"struct DailyLimitTrait.DailyLimit"},"id":751,"name":"UserDefinedTypeName","src":"13753:10:14"}],"id":752,"name":"VariableDeclaration","src":"13753:21:14"},{"attributes":{"constant":false,"name":"_amount","scope":782,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":753,"name":"ElementaryTypeName","src":"13776:4:14"}],"id":754,"name":"VariableDeclaration","src":"13776:12:14"}],"id":755,"name":"ParameterList","src":"13752:37:14"},{"attributes":{"parameters":[null]},"children":[],"id":756,"name":"ParameterList","src":"13798:0:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_DailyLimit_$583_storage_ptr","typeString":"struct DailyLimitTrait.DailyLimit storage pointer"}],"overloadedDeclarations":[null],"referencedDeclaration":750,"type":"function (struct DailyLimitTrait.DailyLimit storage pointer)","value":"_updateAvailableLimit"},"id":757,"name":"Identifier","src":"13860:21:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":752,"type":"struct DailyLimitTrait.DailyLimit storage pointer","value":"dl"},"id":758,"name":"Identifier","src":"13882:2:14"}],"id":759,"name":"FunctionCall","src":"13860:25:14"}],"id":760,"name":"ExpressionStatement","src":"13860:25:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"value","referencedDeclaration":574,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":752,"type":"struct DailyLimitTrait.DailyLimit storage pointer","value":"dl"},"id":761,"name":"Identifier","src":"13950:2:14"}],"id":763,"name":"MemberAccess","src":"13950:8:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":754,"type":"uint256","value":"_amount"},"id":764,"name":"Identifier","src":"13961:7:14"}],"id":765,"name":"Assignment","src":"13950:18:14"}],"id":766,"name":"ExpressionStatement","src":"13950:18:14"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"available","referencedDeclaration":576,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":752,"type":"struct DailyLimitTrait.DailyLimit storage pointer","value":"dl"},"id":767,"name":"Identifier","src":"14060:2:14"}],"id":768,"name":"MemberAccess","src":"14060:12:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"value","referencedDeclaration":574,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":752,"type":"struct DailyLimitTrait.DailyLimit storage pointer","value":"dl"},"id":769,"name":"Identifier","src":"14075:2:14"}],"id":770,"name":"MemberAccess","src":"14075:8:14"}],"id":771,"name":"BinaryOperation","src":"14060:23:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"available","referencedDeclaration":576,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":752,"type":"struct DailyLimitTrait.DailyLimit storage pointer","value":"dl"},"id":772,"name":"Identifier","src":"14099:2:14"}],"id":774,"name":"MemberAccess","src":"14099:12:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"value","referencedDeclaration":574,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":752,"type":"struct DailyLimitTrait.DailyLimit storage pointer","value":"dl"},"id":775,"name":"Identifier","src":"14114:2:14"}],"id":776,"name":"MemberAccess","src":"14114:8:14"}],"id":777,"name":"Assignment","src":"14099:23:14"}],"id":778,"name":"ExpressionStatement","src":"14099:23:14"}],"id":779,"name":"Block","src":"14085:48:14"}],"id":780,"name":"IfStatement","src":"14056:77:14"}],"id":781,"name":"Block","src":"13798:341:14"}],"id":782,"name":"FunctionDefinition","src":"13731:408:14"}],"id":783,"name":"ContractDefinition","src":"10813:3328:14"},{"attributes":{"contractDependencies":[31,783,2275,2326,2483],"contractKind":"contract","documentation":"@title it provides daily spend limit functionality.","fullyImplemented":false,"linearizedBaseContracts":[908,783,31,2483,2275,2326],"name":"SpendLimit","scope":2043},"children":[{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"ControllableOwnable","referencedDeclaration":31,"type":"contract ControllableOwnable"},"id":784,"name":"UserDefinedTypeName","src":"14224:19:14"}],"id":785,"name":"InheritanceSpecifier","src":"14224:19:14"},{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"DailyLimitTrait","referencedDeclaration":783,"type":"contract DailyLimitTrait"},"id":786,"name":"UserDefinedTypeName","src":"14245:15:14"}],"id":787,"name":"InheritanceSpecifier","src":"14245:15:14"},{"attributes":{"anonymous":false,"documentation":null,"name":"SetSpendLimit"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_sender","scope":793,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":788,"name":"ElementaryTypeName","src":"14287:7:14"}],"id":789,"name":"VariableDeclaration","src":"14287:15:14"},{"attributes":{"constant":false,"indexed":false,"name":"_amount","scope":793,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":790,"name":"ElementaryTypeName","src":"14304:4:14"}],"id":791,"name":"VariableDeclaration","src":"14304:12:14"}],"id":792,"name":"ParameterList","src":"14286:31:14"}],"id":793,"name":"EventDefinition","src":"14267:51:14"},{"attributes":{"anonymous":false,"documentation":null,"name":"SubmittedSpendLimitUpdate"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_amount","scope":797,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":794,"name":"ElementaryTypeName","src":"14355:4:14"}],"id":795,"name":"VariableDeclaration","src":"14355:12:14"}],"id":796,"name":"ParameterList","src":"14354:14:14"}],"id":797,"name":"EventDefinition","src":"14323:46:14"},{"attributes":{"constant":false,"name":"_spendLimit","scope":908,"stateVariable":true,"storageLocation":"default","type":"struct DailyLimitTrait.DailyLimit","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"DailyLimit","referencedDeclaration":583,"type":"struct DailyLimitTrait.DailyLimit"},"id":798,"name":"UserDefinedTypeName","src":"14375:10:14"}],"id":799,"name":"VariableDeclaration","src":"14375:31:14"},{"attributes":{"constant":false,"documentation":"@dev Constructor initializes the daily spend limit in wei.","implemented":true,"isConstructor":true,"modifiers":[null],"name":"","payable":false,"scope":908,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_limit_","scope":815,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":800,"name":"ElementaryTypeName","src":"14492:4:14"}],"id":801,"name":"VariableDeclaration","src":"14492:12:14"}],"id":802,"name":"ParameterList","src":"14491:14:14"},{"attributes":{"parameters":[null]},"children":[],"id":803,"name":"ParameterList","src":"14515:0:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"struct DailyLimitTrait.DailyLimit storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":799,"type":"struct DailyLimitTrait.DailyLimit storage ref","value":"_spendLimit"},"id":804,"name":"Identifier","src":"14525:11:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":true,"lValueRequested":false,"names":[null],"type":"struct DailyLimitTrait.DailyLimit memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bool","typeString":"bool"}],"overloadedDeclarations":[null],"referencedDeclaration":583,"type":"type(struct DailyLimitTrait.DailyLimit storage pointer)","value":"DailyLimit"},"id":805,"name":"Identifier","src":"14539:10:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":801,"type":"uint256","value":"_limit_"},"id":806,"name":"Identifier","src":"14550:7:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":801,"type":"uint256","value":"_limit_"},"id":807,"name":"Identifier","src":"14559:7:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6459,"type":"uint256","value":"now"},"id":808,"name":"Identifier","src":"14568:3:14"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":809,"name":"Literal","src":"14573:1:14"},{"attributes":{"argumentTypes":null,"hexvalue":"66616c7365","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"false"},"id":810,"name":"Literal","src":"14576:5:14"}],"id":811,"name":"FunctionCall","src":"14539:43:14"}],"id":812,"name":"Assignment","src":"14525:57:14"}],"id":813,"name":"ExpressionStatement","src":"14525:57:14"}],"id":814,"name":"Block","src":"14515:74:14"}],"id":815,"name":"FunctionDefinition","src":"14480:109:14"},{"attributes":{"constant":false,"documentation":"@dev Sets the initial daily spend (aka transfer) limit for non-whitelisted addresses.\n @param _amount is the daily limit amount in wei.","implemented":true,"isConstructor":false,"name":"setSpendLimit","payable":false,"scope":908,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_amount","scope":834,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":816,"name":"ElementaryTypeName","src":"14769:4:14"}],"id":817,"name":"VariableDeclaration","src":"14769:12:14"}],"id":818,"name":"ParameterList","src":"14768:14:14"},{"attributes":{"parameters":[null]},"children":[],"id":821,"name":"ParameterList","src":"14802:0:14"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2385,"type":"modifier ()","value":"onlyOwner"},"id":819,"name":"Identifier","src":"14792:9:14"}],"id":820,"name":"ModifierInvocation","src":"14792:9:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_DailyLimit_$583_storage","typeString":"struct DailyLimitTrait.DailyLimit storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":662,"type":"function (struct DailyLimitTrait.DailyLimit storage pointer,uint256)","value":"_setLimit"},"id":822,"name":"Identifier","src":"14812:9:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":799,"type":"struct DailyLimitTrait.DailyLimit storage ref","value":"_spendLimit"},"id":823,"name":"Identifier","src":"14822:11:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":817,"type":"uint256","value":"_amount"},"id":824,"name":"Identifier","src":"14835:7:14"}],"id":825,"name":"FunctionCall","src":"14812:31:14"}],"id":826,"name":"ExpressionStatement","src":"14812:31:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":793,"type":"function (address,uint256)","value":"SetSpendLimit"},"id":827,"name":"Identifier","src":"14858:13:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6457,"type":"msg","value":"msg"},"id":828,"name":"Identifier","src":"14872:3:14"}],"id":829,"name":"MemberAccess","src":"14872:10:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":817,"type":"uint256","value":"_amount"},"id":830,"name":"Identifier","src":"14884:7:14"}],"id":831,"name":"FunctionCall","src":"14858:34:14"}],"id":832,"name":"EmitStatement","src":"14853:39:14"}],"id":833,"name":"Block","src":"14802:97:14"}],"id":834,"name":"FunctionDefinition","src":"14746:153:14"},{"attributes":{"constant":false,"documentation":"@dev Submit a daily transfer limit update for non-whitelisted addresses.\n @param _amount is the daily limit amount in wei.","implemented":true,"isConstructor":false,"name":"submitSpendLimitUpdate","payable":false,"scope":908,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_amount","scope":851,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":835,"name":"ElementaryTypeName","src":"15075:4:14"}],"id":836,"name":"VariableDeclaration","src":"15075:12:14"}],"id":837,"name":"ParameterList","src":"15074:14:14"},{"attributes":{"parameters":[null]},"children":[],"id":840,"name":"ParameterList","src":"15108:0:14"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2385,"type":"modifier ()","value":"onlyOwner"},"id":838,"name":"Identifier","src":"15098:9:14"}],"id":839,"name":"ModifierInvocation","src":"15098:9:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_DailyLimit_$583_storage","typeString":"struct DailyLimitTrait.DailyLimit storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":682,"type":"function (struct DailyLimitTrait.DailyLimit storage pointer,uint256)","value":"_submitLimitUpdate"},"id":841,"name":"Identifier","src":"15118:18:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":799,"type":"struct DailyLimitTrait.DailyLimit storage ref","value":"_spendLimit"},"id":842,"name":"Identifier","src":"15137:11:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":836,"type":"uint256","value":"_amount"},"id":843,"name":"Identifier","src":"15150:7:14"}],"id":844,"name":"FunctionCall","src":"15118:40:14"}],"id":845,"name":"ExpressionStatement","src":"15118:40:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":797,"type":"function (uint256)","value":"SubmittedSpendLimitUpdate"},"id":846,"name":"Identifier","src":"15173:25:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":836,"type":"uint256","value":"_amount"},"id":847,"name":"Identifier","src":"15199:7:14"}],"id":848,"name":"FunctionCall","src":"15173:34:14"}],"id":849,"name":"EmitStatement","src":"15168:39:14"}],"id":850,"name":"Block","src":"15108:106:14"}],"id":851,"name":"FunctionDefinition","src":"15043:171:14"},{"attributes":{"constant":false,"documentation":"@dev Confirm pending set daily limit operation.","implemented":true,"isConstructor":false,"name":"confirmSpendLimitUpdate","payable":false,"scope":908,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_amount","scope":870,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":852,"name":"ElementaryTypeName","src":"15309:4:14"}],"id":853,"name":"VariableDeclaration","src":"15309:12:14"}],"id":854,"name":"ParameterList","src":"15308:14:14"},{"attributes":{"parameters":[null]},"children":[],"id":857,"name":"ParameterList","src":"15347:0:14"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2249,"type":"modifier ()","value":"onlyController"},"id":855,"name":"Identifier","src":"15332:14:14"}],"id":856,"name":"ModifierInvocation","src":"15332:14:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_DailyLimit_$583_storage","typeString":"struct DailyLimitTrait.DailyLimit storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":704,"type":"function (struct DailyLimitTrait.DailyLimit storage pointer,uint256)","value":"_confirmLimitUpdate"},"id":858,"name":"Identifier","src":"15357:19:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":799,"type":"struct DailyLimitTrait.DailyLimit storage ref","value":"_spendLimit"},"id":859,"name":"Identifier","src":"15377:11:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":853,"type":"uint256","value":"_amount"},"id":860,"name":"Identifier","src":"15390:7:14"}],"id":861,"name":"FunctionCall","src":"15357:41:14"}],"id":862,"name":"ExpressionStatement","src":"15357:41:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":793,"type":"function (address,uint256)","value":"SetSpendLimit"},"id":863,"name":"Identifier","src":"15413:13:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6457,"type":"msg","value":"msg"},"id":864,"name":"Identifier","src":"15427:3:14"}],"id":865,"name":"MemberAccess","src":"15427:10:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":853,"type":"uint256","value":"_amount"},"id":866,"name":"Identifier","src":"15439:7:14"}],"id":867,"name":"FunctionCall","src":"15413:34:14"}],"id":868,"name":"EmitStatement","src":"15408:39:14"}],"id":869,"name":"Block","src":"15347:107:14"}],"id":870,"name":"FunctionDefinition","src":"15276:178:14"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"spendLimitAvailable","payable":false,"scope":908,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":871,"name":"ParameterList","src":"15488:2:14"},{"children":[{"attributes":{"constant":false,"name":"","scope":880,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":872,"name":"ElementaryTypeName","src":"15514:4:14"}],"id":873,"name":"VariableDeclaration","src":"15514:4:14"}],"id":874,"name":"ParameterList","src":"15513:6:14"},{"children":[{"attributes":{"functionReturnParameters":874},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_DailyLimit_$583_storage","typeString":"struct DailyLimitTrait.DailyLimit storage ref"}],"overloadedDeclarations":[null],"referencedDeclaration":606,"type":"function (struct DailyLimitTrait.DailyLimit storage pointer) view returns (uint256)","value":"_getAvailableLimit"},"id":875,"name":"Identifier","src":"15537:18:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":799,"type":"struct DailyLimitTrait.DailyLimit storage ref","value":"_spendLimit"},"id":876,"name":"Identifier","src":"15556:11:14"}],"id":877,"name":"FunctionCall","src":"15537:31:14"}],"id":878,"name":"Return","src":"15530:38:14"}],"id":879,"name":"Block","src":"15520:55:14"}],"id":880,"name":"FunctionDefinition","src":"15460:115:14"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"spendLimitValue","payable":false,"scope":908,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":881,"name":"ParameterList","src":"15605:2:14"},{"children":[{"attributes":{"constant":false,"name":"","scope":889,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":882,"name":"ElementaryTypeName","src":"15631:4:14"}],"id":883,"name":"VariableDeclaration","src":"15631:4:14"}],"id":884,"name":"ParameterList","src":"15630:6:14"},{"children":[{"attributes":{"functionReturnParameters":884},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"value","referencedDeclaration":574,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":799,"type":"struct DailyLimitTrait.DailyLimit storage ref","value":"_spendLimit"},"id":885,"name":"Identifier","src":"15654:11:14"}],"id":886,"name":"MemberAccess","src":"15654:17:14"}],"id":887,"name":"Return","src":"15647:24:14"}],"id":888,"name":"Block","src":"15637:41:14"}],"id":889,"name":"FunctionDefinition","src":"15581:97:14"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"spendLimitSet","payable":false,"scope":908,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":890,"name":"ParameterList","src":"15706:2:14"},{"children":[{"attributes":{"constant":false,"name":"","scope":898,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":891,"name":"ElementaryTypeName","src":"15732:4:14"}],"id":892,"name":"VariableDeclaration","src":"15732:4:14"}],"id":893,"name":"ParameterList","src":"15731:6:14"},{"children":[{"attributes":{"functionReturnParameters":893},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"set","referencedDeclaration":582,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":799,"type":"struct DailyLimitTrait.DailyLimit storage ref","value":"_spendLimit"},"id":894,"name":"Identifier","src":"15755:11:14"}],"id":895,"name":"MemberAccess","src":"15755:15:14"}],"id":896,"name":"Return","src":"15748:22:14"}],"id":897,"name":"Block","src":"15738:39:14"}],"id":898,"name":"FunctionDefinition","src":"15684:93:14"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"spendLimitPending","payable":false,"scope":908,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":899,"name":"ParameterList","src":"15809:2:14"},{"children":[{"attributes":{"constant":false,"name":"","scope":907,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":900,"name":"ElementaryTypeName","src":"15835:4:14"}],"id":901,"name":"VariableDeclaration","src":"15835:4:14"}],"id":902,"name":"ParameterList","src":"15834:6:14"},{"children":[{"attributes":{"functionReturnParameters":902},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"pending","referencedDeclaration":580,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":799,"type":"struct DailyLimitTrait.DailyLimit storage ref","value":"_spendLimit"},"id":903,"name":"Identifier","src":"15858:11:14"}],"id":904,"name":"MemberAccess","src":"15858:19:14"}],"id":905,"name":"Return","src":"15851:26:14"}],"id":906,"name":"Block","src":"15841:43:14"}],"id":907,"name":"FunctionDefinition","src":"15783:101:14"}],"id":908,"name":"ContractDefinition","src":"14201:1685:14"},{"attributes":{"contractDependencies":[31,783,2275,2326,2483],"contractKind":"contract","documentation":"/ @title GasTopUpLimit provides daily limit functionality.","fullyImplemented":false,"linearizedBaseContracts":[1059,783,31,2483,2275,2326],"name":"GasTopUpLimit","scope":2043},"children":[{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"ControllableOwnable","referencedDeclaration":31,"type":"contract ControllableOwnable"},"id":909,"name":"UserDefinedTypeName","src":"15977:19:14"}],"id":910,"name":"InheritanceSpecifier","src":"15977:19:14"},{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"DailyLimitTrait","referencedDeclaration":783,"type":"contract DailyLimitTrait"},"id":911,"name":"UserDefinedTypeName","src":"15998:15:14"}],"id":912,"name":"InheritanceSpecifier","src":"15998:15:14"},{"attributes":{"anonymous":false,"documentation":null,"name":"SetGasTopUpLimit"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_sender","scope":918,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":913,"name":"ElementaryTypeName","src":"16044:7:14"}],"id":914,"name":"VariableDeclaration","src":"16044:15:14"},{"attributes":{"constant":false,"indexed":false,"name":"_amount","scope":918,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":915,"name":"ElementaryTypeName","src":"16061:4:14"}],"id":916,"name":"VariableDeclaration","src":"16061:12:14"}],"id":917,"name":"ParameterList","src":"16043:31:14"}],"id":918,"name":"EventDefinition","src":"16021:54:14"},{"attributes":{"anonymous":false,"documentation":null,"name":"SubmittedGasTopUpLimitUpdate"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_amount","scope":922,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":919,"name":"ElementaryTypeName","src":"16115:4:14"}],"id":920,"name":"VariableDeclaration","src":"16115:12:14"}],"id":921,"name":"ParameterList","src":"16114:14:14"}],"id":922,"name":"EventDefinition","src":"16080:49:14"},{"attributes":{"constant":true,"name":"_MINIMUM_GAS_TOPUP_LIMIT","scope":1059,"stateVariable":true,"storageLocation":"default","type":"uint256","visibility":"private"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":923,"name":"ElementaryTypeName","src":"16135:4:14"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":"finney","token":"number","type":"int_const 1000000000000000","value":"1"},"id":924,"name":"Literal","src":"16184:8:14"}],"id":925,"name":"VariableDeclaration","src":"16135:57:14"},{"attributes":{"constant":true,"name":"_MAXIMUM_GAS_TOPUP_LIMIT","scope":1059,"stateVariable":true,"storageLocation":"default","type":"uint256","visibility":"private"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":926,"name":"ElementaryTypeName","src":"16198:4:14"},{"attributes":{"argumentTypes":null,"hexvalue":"353030","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":"finney","token":"number","type":"int_const 500000000000000000","value":"500"},"id":927,"name":"Literal","src":"16247:10:14"}],"id":928,"name":"VariableDeclaration","src":"16198:59:14"},{"attributes":{"constant":false,"name":"_gasTopUpLimit","scope":1059,"stateVariable":true,"storageLocation":"default","type":"struct DailyLimitTrait.DailyLimit","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"DailyLimit","referencedDeclaration":583,"type":"struct DailyLimitTrait.DailyLimit"},"id":929,"name":"UserDefinedTypeName","src":"16264:10:14"}],"id":930,"name":"VariableDeclaration","src":"16264:34:14"},{"attributes":{"constant":false,"documentation":"@dev Constructor initializes the daily gas topup limit in wei.","implemented":true,"isConstructor":true,"modifiers":[null],"name":"","payable":false,"scope":1059,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":931,"name":"ParameterList","src":"16387:2:14"},{"attributes":{"parameters":[null]},"children":[],"id":932,"name":"ParameterList","src":"16399:0:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"struct DailyLimitTrait.DailyLimit storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":930,"type":"struct DailyLimitTrait.DailyLimit storage ref","value":"_gasTopUpLimit"},"id":933,"name":"Identifier","src":"16409:14:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":true,"lValueRequested":false,"names":[null],"type":"struct DailyLimitTrait.DailyLimit memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bool","typeString":"bool"}],"overloadedDeclarations":[null],"referencedDeclaration":583,"type":"type(struct DailyLimitTrait.DailyLimit storage pointer)","value":"DailyLimit"},"id":934,"name":"Identifier","src":"16426:10:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":928,"type":"uint256","value":"_MAXIMUM_GAS_TOPUP_LIMIT"},"id":935,"name":"Identifier","src":"16437:24:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":928,"type":"uint256","value":"_MAXIMUM_GAS_TOPUP_LIMIT"},"id":936,"name":"Identifier","src":"16463:24:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6459,"type":"uint256","value":"now"},"id":937,"name":"Identifier","src":"16489:3:14"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":938,"name":"Literal","src":"16494:1:14"},{"attributes":{"argumentTypes":null,"hexvalue":"66616c7365","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"false"},"id":939,"name":"Literal","src":"16497:5:14"}],"id":940,"name":"FunctionCall","src":"16426:77:14"}],"id":941,"name":"Assignment","src":"16409:94:14"}],"id":942,"name":"ExpressionStatement","src":"16409:94:14"}],"id":943,"name":"Block","src":"16399:111:14"}],"id":944,"name":"FunctionDefinition","src":"16376:134:14"},{"attributes":{"constant":false,"documentation":"@dev Sets the daily gas top up limit.\n @param _amount is the gas top up amount in wei.","implemented":true,"isConstructor":false,"name":"setGasTopUpLimit","payable":false,"scope":1059,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_amount","scope":974,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":945,"name":"ElementaryTypeName","src":"16644:4:14"}],"id":946,"name":"VariableDeclaration","src":"16644:12:14"}],"id":947,"name":"ParameterList","src":"16643:14:14"},{"attributes":{"parameters":[null]},"children":[],"id":950,"name":"ParameterList","src":"16677:0:14"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2385,"type":"modifier ()","value":"onlyOwner"},"id":948,"name":"Identifier","src":"16667:9:14"}],"id":949,"name":"ModifierInvocation","src":"16667:9:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_34d0200bc4fa3fa67c967e086c707f1381c23113445a05906aa011e6150b4c1e","typeString":"literal_string \"gas top up amount is outside the min/max range\""}],"overloadedDeclarations":[6460,6461],"referencedDeclaration":6461,"type":"function (bool,string memory) pure","value":"require"},"id":951,"name":"Identifier","src":"16687:7:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&&","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":925,"type":"uint256","value":"_MINIMUM_GAS_TOPUP_LIMIT"},"id":952,"name":"Identifier","src":"16695:24:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":946,"type":"uint256","value":"_amount"},"id":953,"name":"Identifier","src":"16723:7:14"}],"id":954,"name":"BinaryOperation","src":"16695:35:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":946,"type":"uint256","value":"_amount"},"id":955,"name":"Identifier","src":"16734:7:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":928,"type":"uint256","value":"_MAXIMUM_GAS_TOPUP_LIMIT"},"id":956,"name":"Identifier","src":"16745:24:14"}],"id":957,"name":"BinaryOperation","src":"16734:35:14"}],"id":958,"name":"BinaryOperation","src":"16695:74:14"},{"attributes":{"argumentTypes":null,"hexvalue":"67617320746f7020757020616d6f756e74206973206f75747369646520746865206d696e2f6d61782072616e6765","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"gas top up amount is outside the min/max range\"","value":"gas top up amount is outside the min/max range"},"id":959,"name":"Literal","src":"16771:48:14"}],"id":960,"name":"FunctionCall","src":"16687:133:14"}],"id":961,"name":"ExpressionStatement","src":"16687:133:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_DailyLimit_$583_storage","typeString":"struct DailyLimitTrait.DailyLimit storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":662,"type":"function (struct DailyLimitTrait.DailyLimit storage pointer,uint256)","value":"_setLimit"},"id":962,"name":"Identifier","src":"16830:9:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":930,"type":"struct DailyLimitTrait.DailyLimit storage ref","value":"_gasTopUpLimit"},"id":963,"name":"Identifier","src":"16840:14:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":946,"type":"uint256","value":"_amount"},"id":964,"name":"Identifier","src":"16856:7:14"}],"id":965,"name":"FunctionCall","src":"16830:34:14"}],"id":966,"name":"ExpressionStatement","src":"16830:34:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":918,"type":"function (address,uint256)","value":"SetGasTopUpLimit"},"id":967,"name":"Identifier","src":"16879:16:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6457,"type":"msg","value":"msg"},"id":968,"name":"Identifier","src":"16896:3:14"}],"id":969,"name":"MemberAccess","src":"16896:10:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":946,"type":"uint256","value":"_amount"},"id":970,"name":"Identifier","src":"16908:7:14"}],"id":971,"name":"FunctionCall","src":"16879:37:14"}],"id":972,"name":"EmitStatement","src":"16874:42:14"}],"id":973,"name":"Block","src":"16677:246:14"}],"id":974,"name":"FunctionDefinition","src":"16618:305:14"},{"attributes":{"constant":false,"documentation":"@dev Submit a daily gas top up limit update.\n @param _amount is the daily top up gas limit amount in wei.","implemented":true,"isConstructor":false,"name":"submitGasTopUpLimitUpdate","payable":false,"scope":1059,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_amount","scope":1002,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":975,"name":"ElementaryTypeName","src":"17085:4:14"}],"id":976,"name":"VariableDeclaration","src":"17085:12:14"}],"id":977,"name":"ParameterList","src":"17084:14:14"},{"attributes":{"parameters":[null]},"children":[],"id":980,"name":"ParameterList","src":"17118:0:14"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2385,"type":"modifier ()","value":"onlyOwner"},"id":978,"name":"Identifier","src":"17108:9:14"}],"id":979,"name":"ModifierInvocation","src":"17108:9:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_34d0200bc4fa3fa67c967e086c707f1381c23113445a05906aa011e6150b4c1e","typeString":"literal_string \"gas top up amount is outside the min/max range\""}],"overloadedDeclarations":[6460,6461],"referencedDeclaration":6461,"type":"function (bool,string memory) pure","value":"require"},"id":981,"name":"Identifier","src":"17128:7:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&&","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":925,"type":"uint256","value":"_MINIMUM_GAS_TOPUP_LIMIT"},"id":982,"name":"Identifier","src":"17136:24:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":976,"type":"uint256","value":"_amount"},"id":983,"name":"Identifier","src":"17164:7:14"}],"id":984,"name":"BinaryOperation","src":"17136:35:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":976,"type":"uint256","value":"_amount"},"id":985,"name":"Identifier","src":"17175:7:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":928,"type":"uint256","value":"_MAXIMUM_GAS_TOPUP_LIMIT"},"id":986,"name":"Identifier","src":"17186:24:14"}],"id":987,"name":"BinaryOperation","src":"17175:35:14"}],"id":988,"name":"BinaryOperation","src":"17136:74:14"},{"attributes":{"argumentTypes":null,"hexvalue":"67617320746f7020757020616d6f756e74206973206f75747369646520746865206d696e2f6d61782072616e6765","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"gas top up amount is outside the min/max range\"","value":"gas top up amount is outside the min/max range"},"id":989,"name":"Literal","src":"17212:48:14"}],"id":990,"name":"FunctionCall","src":"17128:133:14"}],"id":991,"name":"ExpressionStatement","src":"17128:133:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_DailyLimit_$583_storage","typeString":"struct DailyLimitTrait.DailyLimit storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":682,"type":"function (struct DailyLimitTrait.DailyLimit storage pointer,uint256)","value":"_submitLimitUpdate"},"id":992,"name":"Identifier","src":"17271:18:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":930,"type":"struct DailyLimitTrait.DailyLimit storage ref","value":"_gasTopUpLimit"},"id":993,"name":"Identifier","src":"17290:14:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":976,"type":"uint256","value":"_amount"},"id":994,"name":"Identifier","src":"17306:7:14"}],"id":995,"name":"FunctionCall","src":"17271:43:14"}],"id":996,"name":"ExpressionStatement","src":"17271:43:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":922,"type":"function (uint256)","value":"SubmittedGasTopUpLimitUpdate"},"id":997,"name":"Identifier","src":"17329:28:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":976,"type":"uint256","value":"_amount"},"id":998,"name":"Identifier","src":"17358:7:14"}],"id":999,"name":"FunctionCall","src":"17329:37:14"}],"id":1000,"name":"EmitStatement","src":"17324:42:14"}],"id":1001,"name":"Block","src":"17118:255:14"}],"id":1002,"name":"FunctionDefinition","src":"17050:323:14"},{"attributes":{"constant":false,"documentation":"@dev Confirm pending set top up gas limit operation.","implemented":true,"isConstructor":false,"name":"confirmGasTopUpLimitUpdate","payable":false,"scope":1059,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_amount","scope":1021,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1003,"name":"ElementaryTypeName","src":"17476:4:14"}],"id":1004,"name":"VariableDeclaration","src":"17476:12:14"}],"id":1005,"name":"ParameterList","src":"17475:14:14"},{"attributes":{"parameters":[null]},"children":[],"id":1008,"name":"ParameterList","src":"17514:0:14"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2249,"type":"modifier ()","value":"onlyController"},"id":1006,"name":"Identifier","src":"17499:14:14"}],"id":1007,"name":"ModifierInvocation","src":"17499:14:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_DailyLimit_$583_storage","typeString":"struct DailyLimitTrait.DailyLimit storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":704,"type":"function (struct DailyLimitTrait.DailyLimit storage pointer,uint256)","value":"_confirmLimitUpdate"},"id":1009,"name":"Identifier","src":"17524:19:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":930,"type":"struct DailyLimitTrait.DailyLimit storage ref","value":"_gasTopUpLimit"},"id":1010,"name":"Identifier","src":"17544:14:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1004,"type":"uint256","value":"_amount"},"id":1011,"name":"Identifier","src":"17560:7:14"}],"id":1012,"name":"FunctionCall","src":"17524:44:14"}],"id":1013,"name":"ExpressionStatement","src":"17524:44:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":918,"type":"function (address,uint256)","value":"SetGasTopUpLimit"},"id":1014,"name":"Identifier","src":"17583:16:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6457,"type":"msg","value":"msg"},"id":1015,"name":"Identifier","src":"17600:3:14"}],"id":1016,"name":"MemberAccess","src":"17600:10:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1004,"type":"uint256","value":"_amount"},"id":1017,"name":"Identifier","src":"17612:7:14"}],"id":1018,"name":"FunctionCall","src":"17583:37:14"}],"id":1019,"name":"EmitStatement","src":"17578:42:14"}],"id":1020,"name":"Block","src":"17514:113:14"}],"id":1021,"name":"FunctionDefinition","src":"17440:187:14"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"gasTopUpLimitAvailable","payable":false,"scope":1059,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":1022,"name":"ParameterList","src":"17664:2:14"},{"children":[{"attributes":{"constant":false,"name":"","scope":1031,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1023,"name":"ElementaryTypeName","src":"17690:4:14"}],"id":1024,"name":"VariableDeclaration","src":"17690:4:14"}],"id":1025,"name":"ParameterList","src":"17689:6:14"},{"children":[{"attributes":{"functionReturnParameters":1025},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_DailyLimit_$583_storage","typeString":"struct DailyLimitTrait.DailyLimit storage ref"}],"overloadedDeclarations":[null],"referencedDeclaration":606,"type":"function (struct DailyLimitTrait.DailyLimit storage pointer) view returns (uint256)","value":"_getAvailableLimit"},"id":1026,"name":"Identifier","src":"17713:18:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":930,"type":"struct DailyLimitTrait.DailyLimit storage ref","value":"_gasTopUpLimit"},"id":1027,"name":"Identifier","src":"17732:14:14"}],"id":1028,"name":"FunctionCall","src":"17713:34:14"}],"id":1029,"name":"Return","src":"17706:41:14"}],"id":1030,"name":"Block","src":"17696:58:14"}],"id":1031,"name":"FunctionDefinition","src":"17633:121:14"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"gasTopUpLimitValue","payable":false,"scope":1059,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":1032,"name":"ParameterList","src":"17787:2:14"},{"children":[{"attributes":{"constant":false,"name":"","scope":1040,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1033,"name":"ElementaryTypeName","src":"17813:4:14"}],"id":1034,"name":"VariableDeclaration","src":"17813:4:14"}],"id":1035,"name":"ParameterList","src":"17812:6:14"},{"children":[{"attributes":{"functionReturnParameters":1035},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"value","referencedDeclaration":574,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":930,"type":"struct DailyLimitTrait.DailyLimit storage ref","value":"_gasTopUpLimit"},"id":1036,"name":"Identifier","src":"17836:14:14"}],"id":1037,"name":"MemberAccess","src":"17836:20:14"}],"id":1038,"name":"Return","src":"17829:27:14"}],"id":1039,"name":"Block","src":"17819:44:14"}],"id":1040,"name":"FunctionDefinition","src":"17760:103:14"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"gasTopUpLimitSet","payable":false,"scope":1059,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":1041,"name":"ParameterList","src":"17894:2:14"},{"children":[{"attributes":{"constant":false,"name":"","scope":1049,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":1042,"name":"ElementaryTypeName","src":"17920:4:14"}],"id":1043,"name":"VariableDeclaration","src":"17920:4:14"}],"id":1044,"name":"ParameterList","src":"17919:6:14"},{"children":[{"attributes":{"functionReturnParameters":1044},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"set","referencedDeclaration":582,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":930,"type":"struct DailyLimitTrait.DailyLimit storage ref","value":"_gasTopUpLimit"},"id":1045,"name":"Identifier","src":"17943:14:14"}],"id":1046,"name":"MemberAccess","src":"17943:18:14"}],"id":1047,"name":"Return","src":"17936:25:14"}],"id":1048,"name":"Block","src":"17926:42:14"}],"id":1049,"name":"FunctionDefinition","src":"17869:99:14"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"gasTopUpLimitPending","payable":false,"scope":1059,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":1050,"name":"ParameterList","src":"18003:2:14"},{"children":[{"attributes":{"constant":false,"name":"","scope":1058,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1051,"name":"ElementaryTypeName","src":"18029:4:14"}],"id":1052,"name":"VariableDeclaration","src":"18029:4:14"}],"id":1053,"name":"ParameterList","src":"18028:6:14"},{"children":[{"attributes":{"functionReturnParameters":1053},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"pending","referencedDeclaration":580,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":930,"type":"struct DailyLimitTrait.DailyLimit storage ref","value":"_gasTopUpLimit"},"id":1054,"name":"Identifier","src":"18052:14:14"}],"id":1055,"name":"MemberAccess","src":"18052:22:14"}],"id":1056,"name":"Return","src":"18045:29:14"}],"id":1057,"name":"Block","src":"18035:46:14"}],"id":1058,"name":"FunctionDefinition","src":"17974:107:14"}],"id":1059,"name":"ContractDefinition","src":"15951:2132:14"},{"attributes":{"contractDependencies":[31,783,2275,2326,2483],"contractKind":"contract","documentation":"@title LoadLimit provides daily load limit functionality.","fullyImplemented":false,"linearizedBaseContracts":[1215,783,31,2483,2275,2326],"name":"LoadLimit","scope":2043},"children":[{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"ControllableOwnable","referencedDeclaration":31,"type":"contract ControllableOwnable"},"id":1060,"name":"UserDefinedTypeName","src":"18170:19:14"}],"id":1061,"name":"InheritanceSpecifier","src":"18170:19:14"},{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"DailyLimitTrait","referencedDeclaration":783,"type":"contract DailyLimitTrait"},"id":1062,"name":"UserDefinedTypeName","src":"18191:15:14"}],"id":1063,"name":"InheritanceSpecifier","src":"18191:15:14"},{"attributes":{"anonymous":false,"documentation":null,"name":"SetLoadLimit"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_sender","scope":1069,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":1064,"name":"ElementaryTypeName","src":"18233:7:14"}],"id":1065,"name":"VariableDeclaration","src":"18233:15:14"},{"attributes":{"constant":false,"indexed":false,"name":"_amount","scope":1069,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1066,"name":"ElementaryTypeName","src":"18250:4:14"}],"id":1067,"name":"VariableDeclaration","src":"18250:12:14"}],"id":1068,"name":"ParameterList","src":"18232:31:14"}],"id":1069,"name":"EventDefinition","src":"18214:50:14"},{"attributes":{"anonymous":false,"documentation":null,"name":"SubmittedLoadLimitUpdate"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_amount","scope":1073,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1070,"name":"ElementaryTypeName","src":"18300:4:14"}],"id":1071,"name":"VariableDeclaration","src":"18300:12:14"}],"id":1072,"name":"ParameterList","src":"18299:14:14"}],"id":1073,"name":"EventDefinition","src":"18269:45:14"},{"attributes":{"constant":true,"name":"_MINIMUM_LOAD_LIMIT","scope":1215,"stateVariable":true,"storageLocation":"default","type":"uint256","visibility":"private"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1074,"name":"ElementaryTypeName","src":"18320:4:14"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":"finney","token":"number","type":"int_const 1000000000000000","value":"1"},"id":1075,"name":"Literal","src":"18364:8:14"}],"id":1076,"name":"VariableDeclaration","src":"18320:52:14"},{"attributes":{"constant":false,"name":"_maximumLoadLimit","scope":1215,"stateVariable":true,"storageLocation":"default","type":"uint256","value":null,"visibility":"private"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1077,"name":"ElementaryTypeName","src":"18378:4:14"}],"id":1078,"name":"VariableDeclaration","src":"18378:30:14"},{"attributes":{"constant":false,"name":"_loadLimit","scope":1215,"stateVariable":true,"storageLocation":"default","type":"struct DailyLimitTrait.DailyLimit","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"DailyLimit","referencedDeclaration":583,"type":"struct DailyLimitTrait.DailyLimit"},"id":1079,"name":"UserDefinedTypeName","src":"18415:10:14"}],"id":1080,"name":"VariableDeclaration","src":"18415:30:14"},{"attributes":{"constant":false,"documentation":"@dev Sets a daily card load limit.\n @param _amount is the card load amount in current stablecoin base units.","implemented":true,"isConstructor":false,"name":"setLoadLimit","payable":false,"scope":1215,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_amount","scope":1110,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1081,"name":"ElementaryTypeName","src":"18598:4:14"}],"id":1082,"name":"VariableDeclaration","src":"18598:12:14"}],"id":1083,"name":"ParameterList","src":"18597:14:14"},{"attributes":{"parameters":[null]},"children":[],"id":1086,"name":"ParameterList","src":"18631:0:14"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2385,"type":"modifier ()","value":"onlyOwner"},"id":1084,"name":"Identifier","src":"18621:9:14"}],"id":1085,"name":"ModifierInvocation","src":"18621:9:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f67ee6099a5833ca9f1340ad1c91d4d960993626773c5756b93010e3ef9a670e","typeString":"literal_string \"card load amount is outside the min/max range\""}],"overloadedDeclarations":[6460,6461],"referencedDeclaration":6461,"type":"function (bool,string memory) pure","value":"require"},"id":1087,"name":"Identifier","src":"18641:7:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&&","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1076,"type":"uint256","value":"_MINIMUM_LOAD_LIMIT"},"id":1088,"name":"Identifier","src":"18649:19:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1082,"type":"uint256","value":"_amount"},"id":1089,"name":"Identifier","src":"18672:7:14"}],"id":1090,"name":"BinaryOperation","src":"18649:30:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1082,"type":"uint256","value":"_amount"},"id":1091,"name":"Identifier","src":"18683:7:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1078,"type":"uint256","value":"_maximumLoadLimit"},"id":1092,"name":"Identifier","src":"18694:17:14"}],"id":1093,"name":"BinaryOperation","src":"18683:28:14"}],"id":1094,"name":"BinaryOperation","src":"18649:62:14"},{"attributes":{"argumentTypes":null,"hexvalue":"63617264206c6f616420616d6f756e74206973206f75747369646520746865206d696e2f6d61782072616e6765","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"card load amount is outside the min/max range\"","value":"card load amount is outside the min/max range"},"id":1095,"name":"Literal","src":"18713:47:14"}],"id":1096,"name":"FunctionCall","src":"18641:120:14"}],"id":1097,"name":"ExpressionStatement","src":"18641:120:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_DailyLimit_$583_storage","typeString":"struct DailyLimitTrait.DailyLimit storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":662,"type":"function (struct DailyLimitTrait.DailyLimit storage pointer,uint256)","value":"_setLimit"},"id":1098,"name":"Identifier","src":"18771:9:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1080,"type":"struct DailyLimitTrait.DailyLimit storage ref","value":"_loadLimit"},"id":1099,"name":"Identifier","src":"18781:10:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1082,"type":"uint256","value":"_amount"},"id":1100,"name":"Identifier","src":"18793:7:14"}],"id":1101,"name":"FunctionCall","src":"18771:30:14"}],"id":1102,"name":"ExpressionStatement","src":"18771:30:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":1069,"type":"function (address,uint256)","value":"SetLoadLimit"},"id":1103,"name":"Identifier","src":"18816:12:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6457,"type":"msg","value":"msg"},"id":1104,"name":"Identifier","src":"18829:3:14"}],"id":1105,"name":"MemberAccess","src":"18829:10:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1082,"type":"uint256","value":"_amount"},"id":1106,"name":"Identifier","src":"18841:7:14"}],"id":1107,"name":"FunctionCall","src":"18816:33:14"}],"id":1108,"name":"EmitStatement","src":"18811:38:14"}],"id":1109,"name":"Block","src":"18631:225:14"}],"id":1110,"name":"FunctionDefinition","src":"18576:280:14"},{"attributes":{"constant":false,"documentation":"@dev Submit a daily load limit update.\n @param _amount is the daily load limit amount in wei.","implemented":true,"isConstructor":false,"name":"submitLoadLimitUpdate","payable":false,"scope":1215,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_amount","scope":1138,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1111,"name":"ElementaryTypeName","src":"19002:4:14"}],"id":1112,"name":"VariableDeclaration","src":"19002:12:14"}],"id":1113,"name":"ParameterList","src":"19001:14:14"},{"attributes":{"parameters":[null]},"children":[],"id":1116,"name":"ParameterList","src":"19035:0:14"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2385,"type":"modifier ()","value":"onlyOwner"},"id":1114,"name":"Identifier","src":"19025:9:14"}],"id":1115,"name":"ModifierInvocation","src":"19025:9:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f67ee6099a5833ca9f1340ad1c91d4d960993626773c5756b93010e3ef9a670e","typeString":"literal_string \"card load amount is outside the min/max range\""}],"overloadedDeclarations":[6460,6461],"referencedDeclaration":6461,"type":"function (bool,string memory) pure","value":"require"},"id":1117,"name":"Identifier","src":"19045:7:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&&","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1076,"type":"uint256","value":"_MINIMUM_LOAD_LIMIT"},"id":1118,"name":"Identifier","src":"19053:19:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1112,"type":"uint256","value":"_amount"},"id":1119,"name":"Identifier","src":"19076:7:14"}],"id":1120,"name":"BinaryOperation","src":"19053:30:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1112,"type":"uint256","value":"_amount"},"id":1121,"name":"Identifier","src":"19087:7:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1078,"type":"uint256","value":"_maximumLoadLimit"},"id":1122,"name":"Identifier","src":"19098:17:14"}],"id":1123,"name":"BinaryOperation","src":"19087:28:14"}],"id":1124,"name":"BinaryOperation","src":"19053:62:14"},{"attributes":{"argumentTypes":null,"hexvalue":"63617264206c6f616420616d6f756e74206973206f75747369646520746865206d696e2f6d61782072616e6765","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"card load amount is outside the min/max range\"","value":"card load amount is outside the min/max range"},"id":1125,"name":"Literal","src":"19117:47:14"}],"id":1126,"name":"FunctionCall","src":"19045:120:14"}],"id":1127,"name":"ExpressionStatement","src":"19045:120:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_DailyLimit_$583_storage","typeString":"struct DailyLimitTrait.DailyLimit storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":682,"type":"function (struct DailyLimitTrait.DailyLimit storage pointer,uint256)","value":"_submitLimitUpdate"},"id":1128,"name":"Identifier","src":"19175:18:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1080,"type":"struct DailyLimitTrait.DailyLimit storage ref","value":"_loadLimit"},"id":1129,"name":"Identifier","src":"19194:10:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1112,"type":"uint256","value":"_amount"},"id":1130,"name":"Identifier","src":"19206:7:14"}],"id":1131,"name":"FunctionCall","src":"19175:39:14"}],"id":1132,"name":"ExpressionStatement","src":"19175:39:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":1073,"type":"function (uint256)","value":"SubmittedLoadLimitUpdate"},"id":1133,"name":"Identifier","src":"19229:24:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1112,"type":"uint256","value":"_amount"},"id":1134,"name":"Identifier","src":"19254:7:14"}],"id":1135,"name":"FunctionCall","src":"19229:33:14"}],"id":1136,"name":"EmitStatement","src":"19224:38:14"}],"id":1137,"name":"Block","src":"19035:234:14"}],"id":1138,"name":"FunctionDefinition","src":"18971:298:14"},{"attributes":{"constant":false,"documentation":"@dev Confirm pending set load limit operation.","implemented":true,"isConstructor":false,"name":"confirmLoadLimitUpdate","payable":false,"scope":1215,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_amount","scope":1157,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1139,"name":"ElementaryTypeName","src":"19362:4:14"}],"id":1140,"name":"VariableDeclaration","src":"19362:12:14"}],"id":1141,"name":"ParameterList","src":"19361:14:14"},{"attributes":{"parameters":[null]},"children":[],"id":1144,"name":"ParameterList","src":"19400:0:14"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2249,"type":"modifier ()","value":"onlyController"},"id":1142,"name":"Identifier","src":"19385:14:14"}],"id":1143,"name":"ModifierInvocation","src":"19385:14:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_DailyLimit_$583_storage","typeString":"struct DailyLimitTrait.DailyLimit storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":704,"type":"function (struct DailyLimitTrait.DailyLimit storage pointer,uint256)","value":"_confirmLimitUpdate"},"id":1145,"name":"Identifier","src":"19410:19:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1080,"type":"struct DailyLimitTrait.DailyLimit storage ref","value":"_loadLimit"},"id":1146,"name":"Identifier","src":"19430:10:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1140,"type":"uint256","value":"_amount"},"id":1147,"name":"Identifier","src":"19442:7:14"}],"id":1148,"name":"FunctionCall","src":"19410:40:14"}],"id":1149,"name":"ExpressionStatement","src":"19410:40:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":1069,"type":"function (address,uint256)","value":"SetLoadLimit"},"id":1150,"name":"Identifier","src":"19465:12:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6457,"type":"msg","value":"msg"},"id":1151,"name":"Identifier","src":"19478:3:14"}],"id":1152,"name":"MemberAccess","src":"19478:10:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1140,"type":"uint256","value":"_amount"},"id":1153,"name":"Identifier","src":"19490:7:14"}],"id":1154,"name":"FunctionCall","src":"19465:33:14"}],"id":1155,"name":"EmitStatement","src":"19460:38:14"}],"id":1156,"name":"Block","src":"19400:105:14"}],"id":1157,"name":"FunctionDefinition","src":"19330:175:14"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"loadLimitAvailable","payable":false,"scope":1215,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":1158,"name":"ParameterList","src":"19538:2:14"},{"children":[{"attributes":{"constant":false,"name":"","scope":1167,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1159,"name":"ElementaryTypeName","src":"19564:4:14"}],"id":1160,"name":"VariableDeclaration","src":"19564:4:14"}],"id":1161,"name":"ParameterList","src":"19563:6:14"},{"children":[{"attributes":{"functionReturnParameters":1161},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_DailyLimit_$583_storage","typeString":"struct DailyLimitTrait.DailyLimit storage ref"}],"overloadedDeclarations":[null],"referencedDeclaration":606,"type":"function (struct DailyLimitTrait.DailyLimit storage pointer) view returns (uint256)","value":"_getAvailableLimit"},"id":1162,"name":"Identifier","src":"19587:18:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1080,"type":"struct DailyLimitTrait.DailyLimit storage ref","value":"_loadLimit"},"id":1163,"name":"Identifier","src":"19606:10:14"}],"id":1164,"name":"FunctionCall","src":"19587:30:14"}],"id":1165,"name":"Return","src":"19580:37:14"}],"id":1166,"name":"Block","src":"19570:54:14"}],"id":1167,"name":"FunctionDefinition","src":"19511:113:14"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"loadLimitValue","payable":false,"scope":1215,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":1168,"name":"ParameterList","src":"19653:2:14"},{"children":[{"attributes":{"constant":false,"name":"","scope":1176,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1169,"name":"ElementaryTypeName","src":"19679:4:14"}],"id":1170,"name":"VariableDeclaration","src":"19679:4:14"}],"id":1171,"name":"ParameterList","src":"19678:6:14"},{"children":[{"attributes":{"functionReturnParameters":1171},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"value","referencedDeclaration":574,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1080,"type":"struct DailyLimitTrait.DailyLimit storage ref","value":"_loadLimit"},"id":1172,"name":"Identifier","src":"19702:10:14"}],"id":1173,"name":"MemberAccess","src":"19702:16:14"}],"id":1174,"name":"Return","src":"19695:23:14"}],"id":1175,"name":"Block","src":"19685:40:14"}],"id":1176,"name":"FunctionDefinition","src":"19630:95:14"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"loadLimitSet","payable":false,"scope":1215,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":1177,"name":"ParameterList","src":"19752:2:14"},{"children":[{"attributes":{"constant":false,"name":"","scope":1185,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":1178,"name":"ElementaryTypeName","src":"19778:4:14"}],"id":1179,"name":"VariableDeclaration","src":"19778:4:14"}],"id":1180,"name":"ParameterList","src":"19777:6:14"},{"children":[{"attributes":{"functionReturnParameters":1180},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"set","referencedDeclaration":582,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1080,"type":"struct DailyLimitTrait.DailyLimit storage ref","value":"_loadLimit"},"id":1181,"name":"Identifier","src":"19801:10:14"}],"id":1182,"name":"MemberAccess","src":"19801:14:14"}],"id":1183,"name":"Return","src":"19794:21:14"}],"id":1184,"name":"Block","src":"19784:38:14"}],"id":1185,"name":"FunctionDefinition","src":"19731:91:14"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"loadLimitPending","payable":false,"scope":1215,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":1186,"name":"ParameterList","src":"19853:2:14"},{"children":[{"attributes":{"constant":false,"name":"","scope":1194,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1187,"name":"ElementaryTypeName","src":"19879:4:14"}],"id":1188,"name":"VariableDeclaration","src":"19879:4:14"}],"id":1189,"name":"ParameterList","src":"19878:6:14"},{"children":[{"attributes":{"functionReturnParameters":1189},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"pending","referencedDeclaration":580,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1080,"type":"struct DailyLimitTrait.DailyLimit storage ref","value":"_loadLimit"},"id":1190,"name":"Identifier","src":"19902:10:14"}],"id":1191,"name":"MemberAccess","src":"19902:18:14"}],"id":1192,"name":"Return","src":"19895:25:14"}],"id":1193,"name":"Block","src":"19885:42:14"}],"id":1194,"name":"FunctionDefinition","src":"19828:99:14"},{"attributes":{"constant":false,"documentation":"@dev initializes the daily load limit.\n @param _maxLimit is the maximum load limit amount in stablecoin base units.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_initializeLoadLimit","payable":false,"scope":1215,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_maxLimit","scope":1214,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1195,"name":"ElementaryTypeName","src":"20094:4:14"}],"id":1196,"name":"VariableDeclaration","src":"20094:14:14"}],"id":1197,"name":"ParameterList","src":"20093:16:14"},{"attributes":{"parameters":[null]},"children":[],"id":1198,"name":"ParameterList","src":"20119:0:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1078,"type":"uint256","value":"_maximumLoadLimit"},"id":1199,"name":"Identifier","src":"20129:17:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1196,"type":"uint256","value":"_maxLimit"},"id":1200,"name":"Identifier","src":"20149:9:14"}],"id":1201,"name":"Assignment","src":"20129:29:14"}],"id":1202,"name":"ExpressionStatement","src":"20129:29:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"struct DailyLimitTrait.DailyLimit storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1080,"type":"struct DailyLimitTrait.DailyLimit storage ref","value":"_loadLimit"},"id":1203,"name":"Identifier","src":"20168:10:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":true,"lValueRequested":false,"names":[null],"type":"struct DailyLimitTrait.DailyLimit memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bool","typeString":"bool"}],"overloadedDeclarations":[null],"referencedDeclaration":583,"type":"type(struct DailyLimitTrait.DailyLimit storage pointer)","value":"DailyLimit"},"id":1204,"name":"Identifier","src":"20181:10:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1078,"type":"uint256","value":"_maximumLoadLimit"},"id":1205,"name":"Identifier","src":"20192:17:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1078,"type":"uint256","value":"_maximumLoadLimit"},"id":1206,"name":"Identifier","src":"20211:17:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6459,"type":"uint256","value":"now"},"id":1207,"name":"Identifier","src":"20230:3:14"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1208,"name":"Literal","src":"20235:1:14"},{"attributes":{"argumentTypes":null,"hexvalue":"66616c7365","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"false"},"id":1209,"name":"Literal","src":"20238:5:14"}],"id":1210,"name":"FunctionCall","src":"20181:63:14"}],"id":1211,"name":"Assignment","src":"20168:76:14"}],"id":1212,"name":"ExpressionStatement","src":"20168:76:14"}],"id":1213,"name":"Block","src":"20119:132:14"}],"id":1214,"name":"FunctionDefinition","src":"20064:187:14"}],"id":1215,"name":"ContractDefinition","src":"18148:2105:14"},{"attributes":{"contractDependencies":[31,569,783,908,2275,2052,2326,2483,2663],"contractKind":"contract","documentation":"/ @title Asset store with extra security features.","fullyImplemented":false,"linearizedBaseContracts":[1468,2663,2052,908,783,569,31,2483,2275,2326],"name":"Vault","scope":2043},"children":[{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"AddressWhitelist","referencedDeclaration":569,"type":"contract AddressWhitelist"},"id":1216,"name":"UserDefinedTypeName","src":"20328:16:14"}],"id":1217,"name":"InheritanceSpecifier","src":"20328:16:14"},{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"SpendLimit","referencedDeclaration":908,"type":"contract SpendLimit"},"id":1218,"name":"UserDefinedTypeName","src":"20346:10:14"}],"id":1219,"name":"InheritanceSpecifier","src":"20346:10:14"},{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"ERC165","referencedDeclaration":2052,"type":"contract ERC165"},"id":1220,"name":"UserDefinedTypeName","src":"20358:6:14"}],"id":1221,"name":"InheritanceSpecifier","src":"20358:6:14"},{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"TokenWhitelistable","referencedDeclaration":2663,"type":"contract TokenWhitelistable"},"id":1222,"name":"UserDefinedTypeName","src":"20366:18:14"}],"id":1223,"name":"InheritanceSpecifier","src":"20366:18:14"},{"children":[{"attributes":{"contractScope":null,"name":"SafeMath","referencedDeclaration":2219,"type":"library SafeMath"},"id":1224,"name":"UserDefinedTypeName","src":"20398:8:14"},{"attributes":{"name":"uint256","type":"uint256"},"id":1225,"name":"ElementaryTypeName","src":"20411:7:14"}],"id":1226,"name":"UsingForDirective","src":"20392:27:14"},{"attributes":{"anonymous":false,"documentation":null,"name":"Received"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_from","scope":1232,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":1227,"name":"ElementaryTypeName","src":"20440:7:14"}],"id":1228,"name":"VariableDeclaration","src":"20440:13:14"},{"attributes":{"constant":false,"indexed":false,"name":"_amount","scope":1232,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1229,"name":"ElementaryTypeName","src":"20455:4:14"}],"id":1230,"name":"VariableDeclaration","src":"20455:12:14"}],"id":1231,"name":"ParameterList","src":"20439:29:14"}],"id":1232,"name":"EventDefinition","src":"20425:44:14"},{"attributes":{"anonymous":false,"documentation":null,"name":"Transferred"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_to","scope":1240,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":1233,"name":"ElementaryTypeName","src":"20492:7:14"}],"id":1234,"name":"VariableDeclaration","src":"20492:11:14"},{"attributes":{"constant":false,"indexed":false,"name":"_asset","scope":1240,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":1235,"name":"ElementaryTypeName","src":"20505:7:14"}],"id":1236,"name":"VariableDeclaration","src":"20505:14:14"},{"attributes":{"constant":false,"indexed":false,"name":"_amount","scope":1240,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1237,"name":"ElementaryTypeName","src":"20521:4:14"}],"id":1238,"name":"VariableDeclaration","src":"20521:12:14"}],"id":1239,"name":"ParameterList","src":"20491:43:14"}],"id":1240,"name":"EventDefinition","src":"20474:61:14"},{"attributes":{"constant":true,"name":"_ERC165_INTERFACE_ID","scope":1468,"stateVariable":true,"storageLocation":"default","type":"bytes4","visibility":"private"},"children":[{"attributes":{"name":"bytes4","type":"bytes4"},"id":1241,"name":"ElementaryTypeName","src":"20585:6:14"},{"attributes":{"argumentTypes":null,"hexvalue":"30783031666663396137","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 33540519","value":"0x01ffc9a7"},"id":1242,"name":"Literal","src":"20632:10:14"}],"id":1243,"name":"VariableDeclaration","src":"20585:57:14"},{"attributes":{"constant":false,"documentation":"@dev Constructor initializes the vault with an owner address and spend limit. It also sets up the controllable and tokenWhitelist contracts with the right name registered in ENS.\n @param _owner_ is the owner account of the wallet contract.\n @param _transferable_ indicates whether the contract ownership can be transferred.\n @param _tokenWhitelistNameHash_ is the ENS name hash of the Token whitelist.\n @param _controllerNameHash_ is the ENS name hash of the controller.\n @param _spendLimit_ is the initial spend limit.","implemented":true,"isConstructor":true,"name":"","payable":false,"scope":1468,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"_owner_","scope":1270,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":1244,"name":"ElementaryTypeName","src":"21257:7:14"}],"id":1245,"name":"VariableDeclaration","src":"21257:15:14"},{"attributes":{"constant":false,"name":"_transferable_","scope":1270,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":1246,"name":"ElementaryTypeName","src":"21274:4:14"}],"id":1247,"name":"VariableDeclaration","src":"21274:19:14"},{"attributes":{"constant":false,"name":"_tokenWhitelistNameHash_","scope":1270,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":1248,"name":"ElementaryTypeName","src":"21295:7:14"}],"id":1249,"name":"VariableDeclaration","src":"21295:32:14"},{"attributes":{"constant":false,"name":"_controllerNameHash_","scope":1270,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":1250,"name":"ElementaryTypeName","src":"21329:7:14"}],"id":1251,"name":"VariableDeclaration","src":"21329:28:14"},{"attributes":{"constant":false,"name":"_spendLimit_","scope":1270,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1252,"name":"ElementaryTypeName","src":"21359:4:14"}],"id":1253,"name":"VariableDeclaration","src":"21359:17:14"}],"id":1254,"name":"ParameterList","src":"21256:121:14"},{"attributes":{"parameters":[null]},"children":[],"id":1268,"name":"ParameterList","src":"21523:0:14"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":908,"type":"type(contract SpendLimit)","value":"SpendLimit"},"id":1255,"name":"Identifier","src":"21378:10:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1253,"type":"uint256","value":"_spendLimit_"},"id":1256,"name":"Identifier","src":"21389:12:14"}],"id":1257,"name":"ModifierInvocation","src":"21378:24:14"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2483,"type":"type(contract Ownable)","value":"Ownable"},"id":1258,"name":"Identifier","src":"21403:7:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1245,"type":"address","value":"_owner_"},"id":1259,"name":"Identifier","src":"21411:7:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1247,"type":"bool","value":"_transferable_"},"id":1260,"name":"Identifier","src":"21420:14:14"}],"id":1261,"name":"ModifierInvocation","src":"21403:32:14"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2275,"type":"type(contract Controllable)","value":"Controllable"},"id":1262,"name":"Identifier","src":"21436:12:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1251,"type":"bytes32","value":"_controllerNameHash_"},"id":1263,"name":"Identifier","src":"21449:20:14"}],"id":1264,"name":"ModifierInvocation","src":"21436:34:14"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2663,"type":"type(contract TokenWhitelistable)","value":"TokenWhitelistable"},"id":1265,"name":"Identifier","src":"21471:18:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1249,"type":"bytes32","value":"_tokenWhitelistNameHash_"},"id":1266,"name":"Identifier","src":"21490:24:14"}],"id":1267,"name":"ModifierInvocation","src":"21471:44:14"},{"attributes":{"statements":[null]},"children":[],"id":1269,"name":"Block","src":"21523:2:14"}],"id":1270,"name":"FunctionDefinition","src":"21245:280:14"},{"attributes":{"documentation":"@dev Checks if the value is not zero.","name":"isNotZero","visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_value","scope":1283,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1271,"name":"ElementaryTypeName","src":"21596:4:14"}],"id":1272,"name":"VariableDeclaration","src":"21596:11:14"}],"id":1273,"name":"ParameterList","src":"21595:13:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_66b1681b027f2c6f57bc1e17501c71a972426e3834f20f5bbe9ed1b18622ccfc","typeString":"literal_string \"provided value cannot be zero\""}],"overloadedDeclarations":[6460,6461],"referencedDeclaration":6461,"type":"function (bool,string memory) pure","value":"require"},"id":1274,"name":"Identifier","src":"21619:7:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1272,"type":"uint256","value":"_value"},"id":1275,"name":"Identifier","src":"21627:6:14"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1276,"name":"Literal","src":"21637:1:14"}],"id":1277,"name":"BinaryOperation","src":"21627:11:14"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f76696465642076616c75652063616e6e6f74206265207a65726f","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided value cannot be zero\"","value":"provided value cannot be zero"},"id":1278,"name":"Literal","src":"21640:31:14"}],"id":1279,"name":"FunctionCall","src":"21619:53:14"}],"id":1280,"name":"ExpressionStatement","src":"21619:53:14"},{"id":1281,"name":"PlaceholderStatement","src":"21682:1:14"}],"id":1282,"name":"Block","src":"21609:81:14"}],"id":1283,"name":"ModifierDefinition","src":"21577:113:14"},{"attributes":{"constant":false,"documentation":"@dev Ether can be deposited from any source, so this contract must be payable by anyone.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"","payable":true,"scope":1468,"stateMutability":"payable","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":1284,"name":"ParameterList","src":"21801:2:14"},{"attributes":{"parameters":[null]},"children":[],"id":1285,"name":"ParameterList","src":"21821:0:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c958d345491eddc72b6f45d8ef2ba2353c297cc6a378300b33fc48e8041e0c20","typeString":"literal_string \"msg data needs to be empty\""}],"overloadedDeclarations":[6460,6461],"referencedDeclaration":6461,"type":"function (bool,string memory) pure","value":"require"},"id":1286,"name":"Identifier","src":"21831:7:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"data","referencedDeclaration":null,"type":"bytes calldata"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6457,"type":"msg","value":"msg"},"id":1287,"name":"Identifier","src":"21839:3:14"}],"id":1288,"name":"MemberAccess","src":"21839:8:14"}],"id":1289,"name":"MemberAccess","src":"21839:15:14"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1290,"name":"Literal","src":"21858:1:14"}],"id":1291,"name":"BinaryOperation","src":"21839:20:14"},{"attributes":{"argumentTypes":null,"hexvalue":"6d73672064617461206e6565647320746f20626520656d707479","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"msg data needs to be empty\"","value":"msg data needs to be empty"},"id":1292,"name":"Literal","src":"21861:28:14"}],"id":1293,"name":"FunctionCall","src":"21831:59:14"}],"id":1294,"name":"ExpressionStatement","src":"21831:59:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":1232,"type":"function (address,uint256)","value":"Received"},"id":1295,"name":"Identifier","src":"21905:8:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6457,"type":"msg","value":"msg"},"id":1296,"name":"Identifier","src":"21914:3:14"}],"id":1297,"name":"MemberAccess","src":"21914:10:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"value","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6457,"type":"msg","value":"msg"},"id":1298,"name":"Identifier","src":"21926:3:14"}],"id":1299,"name":"MemberAccess","src":"21926:9:14"}],"id":1300,"name":"FunctionCall","src":"21905:31:14"}],"id":1301,"name":"EmitStatement","src":"21900:36:14"}],"id":1302,"name":"Block","src":"21821:122:14"}],"id":1303,"name":"FunctionDefinition","src":"21793:150:14"},{"attributes":{"constant":true,"documentation":"@dev Returns the amount of an asset owned by the contract.\n @param _asset address of an ERC20 token or 0x0 for ether.\n @return balance associated with the wallet address in wei.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"balance","payable":false,"scope":1468,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_asset","scope":1331,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":1304,"name":"ElementaryTypeName","src":"22166:7:14"}],"id":1305,"name":"VariableDeclaration","src":"22166:14:14"}],"id":1306,"name":"ParameterList","src":"22165:16:14"},{"children":[{"attributes":{"constant":false,"name":"","scope":1331,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1307,"name":"ElementaryTypeName","src":"22205:4:14"}],"id":1308,"name":"VariableDeclaration","src":"22205:4:14"}],"id":1309,"name":"ParameterList","src":"22204:6:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1305,"type":"address","value":"_asset"},"id":1310,"name":"Identifier","src":"22225:6:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":1311,"name":"ElementaryTypeNameExpression","src":"22235:7:14"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1312,"name":"Literal","src":"22243:1:14"}],"id":1313,"name":"FunctionCall","src":"22235:10:14"}],"id":1314,"name":"BinaryOperation","src":"22225:20:14"},{"children":[{"attributes":{"functionReturnParameters":1309},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_contract$_Vault_$1468","typeString":"contract Vault"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"balanceOf","referencedDeclaration":2070,"type":"function (address) view external returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract ERC20","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2091,"type":"type(contract ERC20)","value":"ERC20"},"id":1315,"name":"Identifier","src":"22268:5:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1305,"type":"address","value":"_asset"},"id":1316,"name":"Identifier","src":"22274:6:14"}],"id":1317,"name":"FunctionCall","src":"22268:13:14"}],"id":1318,"name":"MemberAccess","src":"22268:23:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6516,"type":"contract Vault","value":"this"},"id":1319,"name":"Identifier","src":"22292:4:14"}],"id":1320,"name":"FunctionCall","src":"22268:29:14"}],"id":1321,"name":"Return","src":"22261:36:14"}],"id":1322,"name":"Block","src":"22247:61:14"},{"children":[{"attributes":{"functionReturnParameters":1309},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"balance","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_contract$_Vault_$1468","typeString":"contract Vault"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":1323,"name":"ElementaryTypeNameExpression","src":"22335:7:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6516,"type":"contract Vault","value":"this"},"id":1324,"name":"Identifier","src":"22343:4:14"}],"id":1325,"name":"FunctionCall","src":"22335:13:14"}],"id":1326,"name":"MemberAccess","src":"22335:21:14"}],"id":1327,"name":"Return","src":"22328:28:14"}],"id":1328,"name":"Block","src":"22314:53:14"}],"id":1329,"name":"IfStatement","src":"22221:146:14"}],"id":1330,"name":"Block","src":"22211:162:14"}],"id":1331,"name":"FunctionDefinition","src":"22149:224:14"},{"attributes":{"constant":false,"documentation":"@dev Transfers the specified asset to the recipient's address.\n @param _to is the recipient's address.\n @param _asset is the address of an ERC20 token or 0x0 for ether.\n @param _amount is the amount of assets to be transferred in base units.","implemented":true,"isConstructor":false,"name":"transfer","payable":false,"scope":1468,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_to","scope":1415,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":1332,"name":"ElementaryTypeName","src":"22668:7:14"}],"id":1333,"name":"VariableDeclaration","src":"22668:11:14"},{"attributes":{"constant":false,"name":"_asset","scope":1415,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":1334,"name":"ElementaryTypeName","src":"22681:7:14"}],"id":1335,"name":"VariableDeclaration","src":"22681:14:14"},{"attributes":{"constant":false,"name":"_amount","scope":1415,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1336,"name":"ElementaryTypeName","src":"22697:4:14"}],"id":1337,"name":"VariableDeclaration","src":"22697:12:14"}],"id":1338,"name":"ParameterList","src":"22667:43:14"},{"attributes":{"parameters":[null]},"children":[],"id":1344,"name":"ParameterList","src":"22749:0:14"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2385,"type":"modifier ()","value":"onlyOwner"},"id":1339,"name":"Identifier","src":"22720:9:14"}],"id":1340,"name":"ModifierInvocation","src":"22720:9:14"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1283,"type":"modifier (uint256)","value":"isNotZero"},"id":1341,"name":"Identifier","src":"22730:9:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1337,"type":"uint256","value":"_amount"},"id":1342,"name":"Identifier","src":"22740:7:14"}],"id":1343,"name":"ModifierInvocation","src":"22730:18:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_eb3ca7f3931bd2e05b59b5f13adc0b54457fcc3acb612749de0971fce04e924b","typeString":"literal_string \"_to address cannot be set to 0x0\""}],"overloadedDeclarations":[6460,6461],"referencedDeclaration":6461,"type":"function (bool,string memory) pure","value":"require"},"id":1345,"name":"Identifier","src":"22820:7:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1333,"type":"address","value":"_to"},"id":1346,"name":"Identifier","src":"22828:3:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":1347,"name":"ElementaryTypeNameExpression","src":"22835:7:14"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1348,"name":"Literal","src":"22843:1:14"}],"id":1349,"name":"FunctionCall","src":"22835:10:14"}],"id":1350,"name":"BinaryOperation","src":"22828:17:14"},{"attributes":{"argumentTypes":null,"hexvalue":"5f746f20616464726573732063616e6e6f742062652073657420746f20307830","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"_to address cannot be set to 0x0\"","value":"_to address cannot be set to 0x0"},"id":1351,"name":"Literal","src":"22847:34:14"}],"id":1352,"name":"FunctionCall","src":"22820:62:14"}],"id":1353,"name":"ExpressionStatement","src":"22820:62:14"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":80,"type":"mapping(address => bool)","value":"whitelistMap"},"id":1354,"name":"Identifier","src":"22971:12:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1333,"type":"address","value":"_to"},"id":1355,"name":"Identifier","src":"22984:3:14"}],"id":1356,"name":"IndexAccess","src":"22971:17:14"}],"id":1357,"name":"UnaryOperation","src":"22970:18:14"},{"children":[{"attributes":{"assignments":[1359]},"children":[{"attributes":{"constant":false,"name":"etherValue","scope":1415,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1358,"name":"ElementaryTypeName","src":"23066:4:14"}],"id":1359,"name":"VariableDeclaration","src":"23066:15:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1337,"type":"uint256","value":"_amount"},"id":1360,"name":"Identifier","src":"23084:7:14"}],"id":1361,"name":"VariableDeclarationStatement","src":"23066:25:14"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1335,"type":"address","value":"_asset"},"id":1362,"name":"Identifier","src":"23188:6:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":1363,"name":"ElementaryTypeNameExpression","src":"23198:7:14"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1364,"name":"Literal","src":"23206:1:14"}],"id":1365,"name":"FunctionCall","src":"23198:10:14"}],"id":1366,"name":"BinaryOperation","src":"23188:20:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1359,"type":"uint256","value":"etherValue"},"id":1367,"name":"Identifier","src":"23228:10:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":1467,"type":"function (address,uint256) view returns (uint256)","value":"convertToEther"},"id":1368,"name":"Identifier","src":"23241:14:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1335,"type":"address","value":"_asset"},"id":1369,"name":"Identifier","src":"23256:6:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1337,"type":"uint256","value":"_amount"},"id":1370,"name":"Identifier","src":"23264:7:14"}],"id":1371,"name":"FunctionCall","src":"23241:31:14"}],"id":1372,"name":"Assignment","src":"23228:44:14"}],"id":1373,"name":"ExpressionStatement","src":"23228:44:14"}],"id":1374,"name":"Block","src":"23210:77:14"}],"id":1375,"name":"IfStatement","src":"23184:103:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_DailyLimit_$583_storage","typeString":"struct DailyLimitTrait.DailyLimit storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":636,"type":"function (struct DailyLimitTrait.DailyLimit storage pointer,uint256)","value":"_enforceLimit"},"id":1376,"name":"Identifier","src":"23498:13:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":799,"type":"struct DailyLimitTrait.DailyLimit storage ref","value":"_spendLimit"},"id":1377,"name":"Identifier","src":"23512:11:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1359,"type":"uint256","value":"etherValue"},"id":1378,"name":"Identifier","src":"23525:10:14"}],"id":1379,"name":"FunctionCall","src":"23498:38:14"}],"id":1380,"name":"ExpressionStatement","src":"23498:38:14"}],"id":1381,"name":"Block","src":"22990:557:14"}],"id":1382,"name":"IfStatement","src":"22966:581:14"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1335,"type":"address","value":"_asset"},"id":1383,"name":"Identifier","src":"23626:6:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":1384,"name":"ElementaryTypeNameExpression","src":"23636:7:14"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1385,"name":"Literal","src":"23644:1:14"}],"id":1386,"name":"FunctionCall","src":"23636:10:14"}],"id":1387,"name":"BinaryOperation","src":"23626:20:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_bebbba0e3133c903fb13ff92bbd373380a11a38636d3fcb2a56e9eeaa3171b67","typeString":"literal_string \"ERC20 token transfer was unsuccessful\""}],"overloadedDeclarations":[6460,6461],"referencedDeclaration":6461,"type":"function (bool,string memory) pure","value":"require"},"id":1388,"name":"Identifier","src":"23662:7:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"transfer","referencedDeclaration":2079,"type":"function (address,uint256) external returns (bool)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract ERC20","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2091,"type":"type(contract ERC20)","value":"ERC20"},"id":1389,"name":"Identifier","src":"23670:5:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1335,"type":"address","value":"_asset"},"id":1390,"name":"Identifier","src":"23676:6:14"}],"id":1391,"name":"FunctionCall","src":"23670:13:14"}],"id":1392,"name":"MemberAccess","src":"23670:22:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1333,"type":"address","value":"_to"},"id":1393,"name":"Identifier","src":"23693:3:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1337,"type":"uint256","value":"_amount"},"id":1394,"name":"Identifier","src":"23698:7:14"}],"id":1395,"name":"FunctionCall","src":"23670:36:14"},{"attributes":{"argumentTypes":null,"hexvalue":"455243323020746f6b656e207472616e736665722077617320756e7375636365737366756c","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"ERC20 token transfer was unsuccessful\"","value":"ERC20 token transfer was unsuccessful"},"id":1396,"name":"Literal","src":"23708:39:14"}],"id":1397,"name":"FunctionCall","src":"23662:86:14"}],"id":1398,"name":"ExpressionStatement","src":"23662:86:14"}],"id":1399,"name":"Block","src":"23648:111:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"transfer","referencedDeclaration":null,"type":"function (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1333,"type":"address","value":"_to"},"id":1400,"name":"Identifier","src":"23779:3:14"}],"id":1402,"name":"MemberAccess","src":"23779:12:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1337,"type":"uint256","value":"_amount"},"id":1403,"name":"Identifier","src":"23792:7:14"}],"id":1404,"name":"FunctionCall","src":"23779:21:14"}],"id":1405,"name":"ExpressionStatement","src":"23779:21:14"}],"id":1406,"name":"Block","src":"23765:46:14"}],"id":1407,"name":"IfStatement","src":"23622:189:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":1240,"type":"function (address,address,uint256)","value":"Transferred"},"id":1408,"name":"Identifier","src":"23861:11:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1333,"type":"address","value":"_to"},"id":1409,"name":"Identifier","src":"23873:3:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1335,"type":"address","value":"_asset"},"id":1410,"name":"Identifier","src":"23878:6:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1337,"type":"uint256","value":"_amount"},"id":1411,"name":"Identifier","src":"23886:7:14"}],"id":1412,"name":"FunctionCall","src":"23861:33:14"}],"id":1413,"name":"EmitStatement","src":"23856:38:14"}],"id":1414,"name":"Block","src":"22749:1152:14"}],"id":1415,"name":"FunctionDefinition","src":"22650:1251:14"},{"attributes":{"constant":true,"documentation":"@dev Checks for interface support based on ERC165.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"supportsInterface","payable":false,"scope":1468,"stateMutability":"view","superFunction":2051,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"interfaceID","scope":1427,"stateVariable":false,"storageLocation":"default","type":"bytes4","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes4","type":"bytes4"},"id":1416,"name":"ElementaryTypeName","src":"23993:6:14"}],"id":1417,"name":"VariableDeclaration","src":"23993:18:14"}],"id":1418,"name":"ParameterList","src":"23992:20:14"},{"children":[{"attributes":{"constant":false,"name":"","scope":1427,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":1419,"name":"ElementaryTypeName","src":"24036:4:14"}],"id":1420,"name":"VariableDeclaration","src":"24036:4:14"}],"id":1421,"name":"ParameterList","src":"24035:6:14"},{"children":[{"attributes":{"functionReturnParameters":1421},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1417,"type":"bytes4","value":"interfaceID"},"id":1422,"name":"Identifier","src":"24059:11:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1243,"type":"bytes4","value":"_ERC165_INTERFACE_ID"},"id":1423,"name":"Identifier","src":"24074:20:14"}],"id":1424,"name":"BinaryOperation","src":"24059:35:14"}],"id":1425,"name":"Return","src":"24052:42:14"}],"id":1426,"name":"Block","src":"24042:59:14"}],"id":1427,"name":"FunctionDefinition","src":"23966:135:14"},{"attributes":{"constant":true,"documentation":"@dev Convert ERC20 token amount to the corresponding ether amount.\n @param _token ERC20 token contract address.\n @param _amount amount of token in base units.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"convertToEther","payable":false,"scope":1468,"stateMutability":"view","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"_token","scope":1467,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":1428,"name":"ElementaryTypeName","src":"24312:7:14"}],"id":1429,"name":"VariableDeclaration","src":"24312:14:14"},{"attributes":{"constant":false,"name":"_amount","scope":1467,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1430,"name":"ElementaryTypeName","src":"24328:4:14"}],"id":1431,"name":"VariableDeclaration","src":"24328:12:14"}],"id":1432,"name":"ParameterList","src":"24311:30:14"},{"children":[{"attributes":{"constant":false,"name":"","scope":1467,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1433,"name":"ElementaryTypeName","src":"24363:4:14"}],"id":1434,"name":"VariableDeclaration","src":"24363:4:14"}],"id":1435,"name":"ParameterList","src":"24362:6:14"},{"children":[{"attributes":{"assignments":[null,1437,1439,1441,null,null,null]},"children":[{"attributes":{"constant":false,"name":"magnitude","scope":1467,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1436,"name":"ElementaryTypeName","src":"24448:7:14"}],"id":1437,"name":"VariableDeclaration","src":"24448:17:14"},{"attributes":{"constant":false,"name":"rate","scope":1467,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1438,"name":"ElementaryTypeName","src":"24467:7:14"}],"id":1439,"name":"VariableDeclaration","src":"24467:12:14"},{"attributes":{"constant":false,"name":"available","scope":1467,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":1440,"name":"ElementaryTypeName","src":"24481:4:14"}],"id":1441,"name":"VariableDeclaration","src":"24481:14:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple(string memory,uint256,uint256,bool,bool,bool,uint256)","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2538,"type":"function (address) view returns (string memory,uint256,uint256,bool,bool,bool,uint256)","value":"_getTokenInfo"},"id":1442,"name":"Identifier","src":"24505:13:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1429,"type":"address","value":"_token"},"id":1443,"name":"Identifier","src":"24519:6:14"}],"id":1444,"name":"FunctionCall","src":"24505:21:14"}],"id":1445,"name":"VariableDeclarationStatement","src":"24446:80:14"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1441,"type":"bool","value":"available"},"id":1446,"name":"Identifier","src":"24606:9:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6a7d5da61473fd3819888b787e2ae4bd3c3ceb7f1a5528bd7126863f09e86c29","typeString":"literal_string \"token rate is 0\""}],"overloadedDeclarations":[6460,6461],"referencedDeclaration":6461,"type":"function (bool,string memory) pure","value":"require"},"id":1447,"name":"Identifier","src":"24631:7:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1439,"type":"uint256","value":"rate"},"id":1448,"name":"Identifier","src":"24639:4:14"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1449,"name":"Literal","src":"24647:1:14"}],"id":1450,"name":"BinaryOperation","src":"24639:9:14"},{"attributes":{"argumentTypes":null,"hexvalue":"746f6b656e20726174652069732030","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"token rate is 0\"","value":"token rate is 0"},"id":1451,"name":"Literal","src":"24650:17:14"}],"id":1452,"name":"FunctionCall","src":"24631:37:14"}],"id":1453,"name":"ExpressionStatement","src":"24631:37:14"},{"attributes":{"functionReturnParameters":1435},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"div","referencedDeclaration":2150,"type":"function (uint256,uint256) pure returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"mul","referencedDeclaration":2126,"type":"function (uint256,uint256) pure returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1431,"type":"uint256","value":"_amount"},"id":1454,"name":"Identifier","src":"24773:7:14"}],"id":1455,"name":"MemberAccess","src":"24773:11:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1439,"type":"uint256","value":"rate"},"id":1456,"name":"Identifier","src":"24785:4:14"}],"id":1457,"name":"FunctionCall","src":"24773:17:14"}],"id":1458,"name":"MemberAccess","src":"24773:21:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1437,"type":"uint256","value":"magnitude"},"id":1459,"name":"Identifier","src":"24795:9:14"}],"id":1460,"name":"FunctionCall","src":"24773:32:14"}],"id":1461,"name":"Return","src":"24766:39:14"}],"id":1462,"name":"Block","src":"24617:199:14"}],"id":1463,"name":"IfStatement","src":"24602:214:14"},{"attributes":{"functionReturnParameters":1435},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1464,"name":"Literal","src":"24832:1:14"}],"id":1465,"name":"Return","src":"24825:8:14"}],"id":1466,"name":"Block","src":"24369:471:14"}],"id":1467,"name":"FunctionDefinition","src":"24288:552:14"}],"id":1468,"name":"ContractDefinition","src":"20310:4532:14"},{"attributes":{"contractDependencies":[31,569,783,908,1059,1215,1468,2275,2052,2326,2483,2663],"contractKind":"contract","documentation":"/ @title Asset wallet with extra security features, gas top up management and card integration.","fullyImplemented":true,"linearizedBaseContracts":[2042,1215,1059,1468,2663,2052,908,783,569,31,2483,2275,2326],"name":"Wallet","scope":2043},"children":[{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"ENSResolvable","referencedDeclaration":2326,"type":"contract ENSResolvable"},"id":1469,"name":"UserDefinedTypeName","src":"24963:13:14"}],"id":1470,"name":"InheritanceSpecifier","src":"24963:13:14"},{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"Vault","referencedDeclaration":1468,"type":"contract Vault"},"id":1471,"name":"UserDefinedTypeName","src":"24978:5:14"}],"id":1472,"name":"InheritanceSpecifier","src":"24978:5:14"},{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"GasTopUpLimit","referencedDeclaration":1059,"type":"contract GasTopUpLimit"},"id":1473,"name":"UserDefinedTypeName","src":"24985:13:14"}],"id":1474,"name":"InheritanceSpecifier","src":"24985:13:14"},{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"LoadLimit","referencedDeclaration":1215,"type":"contract LoadLimit"},"id":1475,"name":"UserDefinedTypeName","src":"25000:9:14"}],"id":1476,"name":"InheritanceSpecifier","src":"25000:9:14"},{"attributes":{"anonymous":false,"documentation":null,"name":"ToppedUpGas"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_sender","scope":1484,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":1477,"name":"ElementaryTypeName","src":"25035:7:14"}],"id":1478,"name":"VariableDeclaration","src":"25035:15:14"},{"attributes":{"constant":false,"indexed":false,"name":"_owner","scope":1484,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":1479,"name":"ElementaryTypeName","src":"25052:7:14"}],"id":1480,"name":"VariableDeclaration","src":"25052:14:14"},{"attributes":{"constant":false,"indexed":false,"name":"_amount","scope":1484,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1481,"name":"ElementaryTypeName","src":"25068:4:14"}],"id":1482,"name":"VariableDeclaration","src":"25068:12:14"}],"id":1483,"name":"ParameterList","src":"25034:47:14"}],"id":1484,"name":"EventDefinition","src":"25017:65:14"},{"attributes":{"anonymous":false,"documentation":null,"name":"LoadedTokenCard"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_asset","scope":1490,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":1485,"name":"ElementaryTypeName","src":"25109:7:14"}],"id":1486,"name":"VariableDeclaration","src":"25109:14:14"},{"attributes":{"constant":false,"indexed":false,"name":"_amount","scope":1490,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1487,"name":"ElementaryTypeName","src":"25125:4:14"}],"id":1488,"name":"VariableDeclaration","src":"25125:12:14"}],"id":1489,"name":"ParameterList","src":"25108:30:14"}],"id":1490,"name":"EventDefinition","src":"25087:52:14"},{"attributes":{"anonymous":false,"documentation":null,"name":"ExecutedTransaction"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_destination","scope":1498,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":1491,"name":"ElementaryTypeName","src":"25170:7:14"}],"id":1492,"name":"VariableDeclaration","src":"25170:20:14"},{"attributes":{"constant":false,"indexed":false,"name":"_value","scope":1498,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1493,"name":"ElementaryTypeName","src":"25192:4:14"}],"id":1494,"name":"VariableDeclaration","src":"25192:11:14"},{"attributes":{"constant":false,"indexed":false,"name":"_data","scope":1498,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":1495,"name":"ElementaryTypeName","src":"25205:5:14"}],"id":1496,"name":"VariableDeclaration","src":"25205:11:14"}],"id":1497,"name":"ParameterList","src":"25169:48:14"}],"id":1498,"name":"EventDefinition","src":"25144:74:14"},{"attributes":{"constant":true,"name":"_DEFAULT_MAX_STABLECOIN_LOAD_LIMIT","scope":2042,"stateVariable":true,"storageLocation":"default","type":"uint256","visibility":"private"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1499,"name":"ElementaryTypeName","src":"25224:4:14"},{"attributes":{"argumentTypes":null,"hexvalue":"3130303030","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 10000","value":"10000"},"id":1500,"name":"Literal","src":"25283:5:14"}],"id":1501,"name":"VariableDeclaration","src":"25224:64:14"},{"attributes":{"constant":false,"name":"_licenceNode","scope":2042,"stateVariable":true,"storageLocation":"default","type":"bytes32","value":null,"visibility":"private"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":1502,"name":"ElementaryTypeName","src":"25382:7:14"}],"id":1503,"name":"VariableDeclaration","src":"25382:28:14"},{"attributes":{"constant":true,"name":"_TRANSFER","scope":2042,"stateVariable":true,"storageLocation":"default","type":"uint32","visibility":"private"},"children":[{"attributes":{"name":"uint32","type":"uint32"},"id":1504,"name":"ElementaryTypeName","src":"25490:6:14"},{"attributes":{"argumentTypes":null,"hexvalue":"30786139303539636262","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2835717307","value":"0xa9059cbb"},"id":1505,"name":"Literal","src":"25525:10:14"}],"id":1506,"name":"VariableDeclaration","src":"25490:45:14"},{"attributes":{"constant":true,"name":"_APPROVE","scope":2042,"stateVariable":true,"storageLocation":"default","type":"uint32","visibility":"private"},"children":[{"attributes":{"name":"uint32","type":"uint32"},"id":1507,"name":"ElementaryTypeName","src":"25541:6:14"},{"attributes":{"argumentTypes":null,"hexvalue":"30783039356561376233","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 157198259","value":"0x095ea7b3"},"id":1508,"name":"Literal","src":"25576:10:14"}],"id":1509,"name":"VariableDeclaration","src":"25541:45:14"},{"attributes":{"constant":false,"documentation":"@dev Constructor initializes the wallet top up limit and the vault contract.\n @param _owner_ is the owner account of the wallet contract.\n @param _transferable_ indicates whether the contract ownership can be transferred.\n @param _ens_ is the address of the ENS registry.\n @param _tokenWhitelistNameHash_ is the ENS name hash of the Token whitelist.\n @param _controllerNameHash_ is the ENS name hash of the Controller contract.\n @param _licenceNameHash_ is the ENS name hash of the Licence contract.\n @param _spendLimit_ is the initial spend limit.","implemented":true,"isConstructor":true,"name":"","payable":false,"scope":2042,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"_owner_","scope":1559,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":1510,"name":"ElementaryTypeName","src":"26211:7:14"}],"id":1511,"name":"VariableDeclaration","src":"26211:15:14"},{"attributes":{"constant":false,"name":"_transferable_","scope":1559,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":1512,"name":"ElementaryTypeName","src":"26228:4:14"}],"id":1513,"name":"VariableDeclaration","src":"26228:19:14"},{"attributes":{"constant":false,"name":"_ens_","scope":1559,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":1514,"name":"ElementaryTypeName","src":"26249:7:14"}],"id":1515,"name":"VariableDeclaration","src":"26249:13:14"},{"attributes":{"constant":false,"name":"_tokenWhitelistNameHash_","scope":1559,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":1516,"name":"ElementaryTypeName","src":"26264:7:14"}],"id":1517,"name":"VariableDeclaration","src":"26264:32:14"},{"attributes":{"constant":false,"name":"_controllerNameHash_","scope":1559,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":1518,"name":"ElementaryTypeName","src":"26298:7:14"}],"id":1519,"name":"VariableDeclaration","src":"26298:28:14"},{"attributes":{"constant":false,"name":"_licenceNameHash_","scope":1559,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":1520,"name":"ElementaryTypeName","src":"26328:7:14"}],"id":1521,"name":"VariableDeclaration","src":"26328:25:14"},{"attributes":{"constant":false,"name":"_spendLimit_","scope":1559,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1522,"name":"ElementaryTypeName","src":"26355:4:14"}],"id":1523,"name":"VariableDeclaration","src":"26355:17:14"}],"id":1524,"name":"ParameterList","src":"26210:163:14"},{"attributes":{"parameters":[null]},"children":[],"id":1535,"name":"ParameterList","src":"26495:0:14"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2326,"type":"type(contract ENSResolvable)","value":"ENSResolvable"},"id":1525,"name":"Identifier","src":"26374:13:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1515,"type":"address","value":"_ens_"},"id":1526,"name":"Identifier","src":"26388:5:14"}],"id":1527,"name":"ModifierInvocation","src":"26374:20:14"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1468,"type":"type(contract Vault)","value":"Vault"},"id":1528,"name":"Identifier","src":"26395:5:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1511,"type":"address","value":"_owner_"},"id":1529,"name":"Identifier","src":"26401:7:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1513,"type":"bool","value":"_transferable_"},"id":1530,"name":"Identifier","src":"26410:14:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1517,"type":"bytes32","value":"_tokenWhitelistNameHash_"},"id":1531,"name":"Identifier","src":"26426:24:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1519,"type":"bytes32","value":"_controllerNameHash_"},"id":1532,"name":"Identifier","src":"26452:20:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1523,"type":"uint256","value":"_spendLimit_"},"id":1533,"name":"Identifier","src":"26474:12:14"}],"id":1534,"name":"ModifierInvocation","src":"26395:92:14"},{"children":[{"attributes":{"assignments":[null,1537,null,null,null,null,null]},"children":[{"attributes":{"constant":false,"name":"stablecoinMagnitude","scope":1559,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1536,"name":"ElementaryTypeName","src":"26551:7:14"}],"id":1537,"name":"VariableDeclaration","src":"26551:27:14"},{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple(string memory,uint256,uint256,bool,bool,bool,uint256)","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"overloadedDeclarations":[null],"referencedDeclaration":2564,"type":"function () view returns (string memory,uint256,uint256,bool,bool,bool,uint256)","value":"_getStablecoinInfo"},"id":1538,"name":"Identifier","src":"26592:18:14"}],"id":1539,"name":"FunctionCall","src":"26592:20:14"}],"id":1540,"name":"VariableDeclarationStatement","src":"26548:64:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cc8efdf469ece235eca91e8bd8f89a83ea18c245858c0a2b14c17ee3a990a8d5","typeString":"literal_string \"stablecoin not set\""}],"overloadedDeclarations":[6460,6461],"referencedDeclaration":6461,"type":"function (bool,string memory) pure","value":"require"},"id":1541,"name":"Identifier","src":"26622:7:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1537,"type":"uint256","value":"stablecoinMagnitude"},"id":1542,"name":"Identifier","src":"26630:19:14"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1543,"name":"Literal","src":"26652:1:14"}],"id":1544,"name":"BinaryOperation","src":"26630:23:14"},{"attributes":{"argumentTypes":null,"hexvalue":"737461626c65636f696e206e6f7420736574","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"stablecoin not set\"","value":"stablecoin not set"},"id":1545,"name":"Literal","src":"26655:20:14"}],"id":1546,"name":"FunctionCall","src":"26622:54:14"}],"id":1547,"name":"ExpressionStatement","src":"26622:54:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":1214,"type":"function (uint256)","value":"_initializeLoadLimit"},"id":1548,"name":"Identifier","src":"26686:20:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1501,"type":"uint256","value":"_DEFAULT_MAX_STABLECOIN_LOAD_LIMIT"},"id":1549,"name":"Identifier","src":"26707:34:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1537,"type":"uint256","value":"stablecoinMagnitude"},"id":1550,"name":"Identifier","src":"26744:19:14"}],"id":1551,"name":"BinaryOperation","src":"26707:56:14"}],"id":1552,"name":"FunctionCall","src":"26686:78:14"}],"id":1553,"name":"ExpressionStatement","src":"26686:78:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1503,"type":"bytes32","value":"_licenceNode"},"id":1554,"name":"Identifier","src":"26774:12:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1521,"type":"bytes32","value":"_licenceNameHash_"},"id":1555,"name":"Identifier","src":"26789:17:14"}],"id":1556,"name":"Assignment","src":"26774:32:14"}],"id":1557,"name":"ExpressionStatement","src":"26774:32:14"}],"id":1558,"name":"Block","src":"26495:318:14"}],"id":1559,"name":"FunctionDefinition","src":"26199:614:14"},{"attributes":{"constant":false,"documentation":"@dev Refill owner's gas balance, revert if the transaction amount is too large\n @param _amount is the amount of ether to transfer to the owner account in wei.","implemented":true,"isConstructor":false,"name":"topUpGas","payable":false,"scope":2042,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_amount","scope":1589,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1560,"name":"ElementaryTypeName","src":"27011:4:14"}],"id":1561,"name":"VariableDeclaration","src":"27011:12:14"}],"id":1562,"name":"ParameterList","src":"27010:14:14"},{"attributes":{"parameters":[null]},"children":[],"id":1568,"name":"ParameterList","src":"27075:0:14"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1283,"type":"modifier (uint256)","value":"isNotZero"},"id":1563,"name":"Identifier","src":"27034:9:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1561,"type":"uint256","value":"_amount"},"id":1564,"name":"Identifier","src":"27044:7:14"}],"id":1565,"name":"ModifierInvocation","src":"27034:18:14"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":30,"type":"modifier ()","value":"onlyOwnerOrController"},"id":1566,"name":"Identifier","src":"27053:21:14"}],"id":1567,"name":"ModifierInvocation","src":"27053:21:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_DailyLimit_$583_storage","typeString":"struct DailyLimitTrait.DailyLimit storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":636,"type":"function (struct DailyLimitTrait.DailyLimit storage pointer,uint256)","value":"_enforceLimit"},"id":1569,"name":"Identifier","src":"27205:13:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":930,"type":"struct DailyLimitTrait.DailyLimit storage ref","value":"_gasTopUpLimit"},"id":1570,"name":"Identifier","src":"27219:14:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1561,"type":"uint256","value":"_amount"},"id":1571,"name":"Identifier","src":"27235:7:14"}],"id":1572,"name":"FunctionCall","src":"27205:38:14"}],"id":1573,"name":"ExpressionStatement","src":"27205:38:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"transfer","referencedDeclaration":null,"type":"function (uint256)"},"children":[{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"overloadedDeclarations":[null],"referencedDeclaration":2470,"type":"function () view returns (address)","value":"owner"},"id":1574,"name":"Identifier","src":"27290:5:14"}],"id":1575,"name":"FunctionCall","src":"27290:7:14"}],"id":1576,"name":"MemberAccess","src":"27290:16:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1561,"type":"uint256","value":"_amount"},"id":1577,"name":"Identifier","src":"27307:7:14"}],"id":1578,"name":"FunctionCall","src":"27290:25:14"}],"id":1579,"name":"ExpressionStatement","src":"27290:25:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":1484,"type":"function (address,address,uint256)","value":"ToppedUpGas"},"id":1580,"name":"Identifier","src":"27368:11:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6457,"type":"msg","value":"msg"},"id":1581,"name":"Identifier","src":"27380:3:14"}],"id":1582,"name":"MemberAccess","src":"27380:10:14"},{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"overloadedDeclarations":[null],"referencedDeclaration":2470,"type":"function () view returns (address)","value":"owner"},"id":1583,"name":"Identifier","src":"27392:5:14"}],"id":1584,"name":"FunctionCall","src":"27392:7:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1561,"type":"uint256","value":"_amount"},"id":1585,"name":"Identifier","src":"27401:7:14"}],"id":1586,"name":"FunctionCall","src":"27368:41:14"}],"id":1587,"name":"EmitStatement","src":"27363:46:14"}],"id":1588,"name":"Block","src":"27075:341:14"}],"id":1589,"name":"FunctionDefinition","src":"26993:423:14"},{"attributes":{"constant":false,"documentation":"@dev Load a token card with the specified asset amount.\n @dev the amount send should be inclusive of the percent licence.\n @param _asset is the address of an ERC20 token or 0x0 for ether.\n @param _amount is the amount of assets to be transferred in base units.","implemented":true,"isConstructor":false,"name":"loadTokenCard","payable":true,"scope":2042,"stateMutability":"payable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_asset","scope":1667,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":1590,"name":"ElementaryTypeName","src":"27735:7:14"}],"id":1591,"name":"VariableDeclaration","src":"27735:14:14"},{"attributes":{"constant":false,"name":"_amount","scope":1667,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1592,"name":"ElementaryTypeName","src":"27751:4:14"}],"id":1593,"name":"VariableDeclaration","src":"27751:12:14"}],"id":1594,"name":"ParameterList","src":"27734:30:14"},{"attributes":{"parameters":[null]},"children":[],"id":1597,"name":"ParameterList","src":"27792:0:14"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2385,"type":"modifier ()","value":"onlyOwner"},"id":1595,"name":"Identifier","src":"27782:9:14"}],"id":1596,"name":"ModifierInvocation","src":"27782:9:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_96e30e7359d705e51778d9ae05179a78cb34ab813d824e29a3cd9fe209b16a67","typeString":"literal_string \"token not loadable\""}],"overloadedDeclarations":[6460,6461],"referencedDeclaration":6461,"type":"function (bool,string memory) pure","value":"require"},"id":1598,"name":"Identifier","src":"27870:7:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2648,"type":"function (address) view returns (bool)","value":"_isTokenLoadable"},"id":1599,"name":"Identifier","src":"27878:16:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1591,"type":"address","value":"_asset"},"id":1600,"name":"Identifier","src":"27895:6:14"}],"id":1601,"name":"FunctionCall","src":"27878:24:14"},{"attributes":{"argumentTypes":null,"hexvalue":"746f6b656e206e6f74206c6f616461626c65","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"token not loadable\"","value":"token not loadable"},"id":1602,"name":"Literal","src":"27904:20:14"}],"id":1603,"name":"FunctionCall","src":"27870:55:14"}],"id":1604,"name":"ExpressionStatement","src":"27870:55:14"},{"attributes":{"assignments":[1606]},"children":[{"attributes":{"constant":false,"name":"stablecoinValue","scope":1667,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1605,"name":"ElementaryTypeName","src":"27988:4:14"}],"id":1606,"name":"VariableDeclaration","src":"27988:20:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":1871,"type":"function (address,uint256) view returns (uint256)","value":"convertToStablecoin"},"id":1607,"name":"Identifier","src":"28011:19:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1591,"type":"address","value":"_asset"},"id":1608,"name":"Identifier","src":"28031:6:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1593,"type":"uint256","value":"_amount"},"id":1609,"name":"Identifier","src":"28039:7:14"}],"id":1610,"name":"FunctionCall","src":"28011:36:14"}],"id":1611,"name":"VariableDeclarationStatement","src":"27988:59:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_DailyLimit_$583_storage","typeString":"struct DailyLimitTrait.DailyLimit storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":636,"type":"function (struct DailyLimitTrait.DailyLimit storage pointer,uint256)","value":"_enforceLimit"},"id":1612,"name":"Identifier","src":"28177:13:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1080,"type":"struct DailyLimitTrait.DailyLimit storage ref","value":"_loadLimit"},"id":1613,"name":"Identifier","src":"28191:10:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1606,"type":"uint256","value":"stablecoinValue"},"id":1614,"name":"Identifier","src":"28203:15:14"}],"id":1615,"name":"FunctionCall","src":"28177:42:14"}],"id":1616,"name":"ExpressionStatement","src":"28177:42:14"},{"attributes":{"assignments":[1618]},"children":[{"attributes":{"constant":false,"name":"licenceAddress","scope":1667,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":1617,"name":"ElementaryTypeName","src":"28276:7:14"}],"id":1618,"name":"VariableDeclaration","src":"28276:22:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[null],"referencedDeclaration":2325,"type":"function (bytes32) view returns (address)","value":"_ensResolve"},"id":1619,"name":"Identifier","src":"28301:11:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1503,"type":"bytes32","value":"_licenceNode"},"id":1620,"name":"Identifier","src":"28313:12:14"}],"id":1621,"name":"FunctionCall","src":"28301:25:14"}],"id":1622,"name":"VariableDeclarationStatement","src":"28276:50:14"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1591,"type":"address","value":"_asset"},"id":1623,"name":"Identifier","src":"28340:6:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":1624,"name":"ElementaryTypeNameExpression","src":"28350:7:14"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1625,"name":"Literal","src":"28358:1:14"}],"id":1626,"name":"FunctionCall","src":"28350:10:14"}],"id":1627,"name":"BinaryOperation","src":"28340:20:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_030d151788e613bc7585ad6359692c36ed3231f0f75e71af530e46306fd2d85d","typeString":"literal_string \"ERC20 token approval was unsuccessful\""}],"overloadedDeclarations":[6460,6461],"referencedDeclaration":6461,"type":"function (bool,string memory) pure","value":"require"},"id":1628,"name":"Identifier","src":"28376:7:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"approve","referencedDeclaration":2063,"type":"function (address,uint256) external returns (bool)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract ERC20","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2091,"type":"type(contract ERC20)","value":"ERC20"},"id":1629,"name":"Identifier","src":"28384:5:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1591,"type":"address","value":"_asset"},"id":1630,"name":"Identifier","src":"28390:6:14"}],"id":1631,"name":"FunctionCall","src":"28384:13:14"}],"id":1632,"name":"MemberAccess","src":"28384:21:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1618,"type":"address","value":"licenceAddress"},"id":1633,"name":"Identifier","src":"28406:14:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1593,"type":"uint256","value":"_amount"},"id":1634,"name":"Identifier","src":"28422:7:14"}],"id":1635,"name":"FunctionCall","src":"28384:46:14"},{"attributes":{"argumentTypes":null,"hexvalue":"455243323020746f6b656e20617070726f76616c2077617320756e7375636365737366756c","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"ERC20 token approval was unsuccessful\"","value":"ERC20 token approval was unsuccessful"},"id":1636,"name":"Literal","src":"28432:39:14"}],"id":1637,"name":"FunctionCall","src":"28376:96:14"}],"id":1638,"name":"ExpressionStatement","src":"28376:96:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"load","referencedDeclaration":2676,"type":"function (address,uint256) payable external"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract ILicence","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2682,"type":"type(contract ILicence)","value":"ILicence"},"id":1639,"name":"Identifier","src":"28486:8:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1618,"type":"address","value":"licenceAddress"},"id":1640,"name":"Identifier","src":"28495:14:14"}],"id":1641,"name":"FunctionCall","src":"28486:24:14"}],"id":1642,"name":"MemberAccess","src":"28486:29:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1591,"type":"address","value":"_asset"},"id":1643,"name":"Identifier","src":"28516:6:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1593,"type":"uint256","value":"_amount"},"id":1644,"name":"Identifier","src":"28524:7:14"}],"id":1645,"name":"FunctionCall","src":"28486:46:14"}],"id":1646,"name":"ExpressionStatement","src":"28486:46:14"}],"id":1647,"name":"Block","src":"28362:181:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"function (address,uint256) payable external","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"value","referencedDeclaration":null,"type":"function (uint256) returns (function (address,uint256) payable external)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"load","referencedDeclaration":2676,"type":"function (address,uint256) payable external"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract ILicence","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2682,"type":"type(contract ILicence)","value":"ILicence"},"id":1648,"name":"Identifier","src":"28563:8:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1618,"type":"address","value":"licenceAddress"},"id":1649,"name":"Identifier","src":"28572:14:14"}],"id":1650,"name":"FunctionCall","src":"28563:24:14"}],"id":1651,"name":"MemberAccess","src":"28563:29:14"}],"id":1652,"name":"MemberAccess","src":"28563:35:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1593,"type":"uint256","value":"_amount"},"id":1653,"name":"Identifier","src":"28599:7:14"}],"id":1654,"name":"FunctionCall","src":"28563:44:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1591,"type":"address","value":"_asset"},"id":1655,"name":"Identifier","src":"28608:6:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1593,"type":"uint256","value":"_amount"},"id":1656,"name":"Identifier","src":"28616:7:14"}],"id":1657,"name":"FunctionCall","src":"28563:61:14"}],"id":1658,"name":"ExpressionStatement","src":"28563:61:14"}],"id":1659,"name":"Block","src":"28549:86:14"}],"id":1660,"name":"IfStatement","src":"28336:299:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":1490,"type":"function (address,uint256)","value":"LoadedTokenCard"},"id":1661,"name":"Identifier","src":"28650:15:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1591,"type":"address","value":"_asset"},"id":1662,"name":"Identifier","src":"28666:6:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1593,"type":"uint256","value":"_amount"},"id":1663,"name":"Identifier","src":"28674:7:14"}],"id":1664,"name":"FunctionCall","src":"28650:32:14"}],"id":1665,"name":"EmitStatement","src":"28645:37:14"}],"id":1666,"name":"Block","src":"27792:898:14"}],"id":1667,"name":"FunctionDefinition","src":"27712:978:14"},{"attributes":{"constant":false,"documentation":"@dev This function allows for the owner to send transaction from the Wallet to arbitrary addresses\n @param _destination address of the transaction\n @param _value ETH amount in wei\n @param _data transaction payload binary","implemented":true,"isConstructor":false,"name":"executeTransaction","payable":false,"scope":2042,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_destination","scope":1777,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":1668,"name":"ElementaryTypeName","src":"28974:7:14"}],"id":1669,"name":"VariableDeclaration","src":"28974:20:14"},{"attributes":{"constant":false,"name":"_value","scope":1777,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1670,"name":"ElementaryTypeName","src":"28996:4:14"}],"id":1671,"name":"VariableDeclaration","src":"28996:11:14"},{"attributes":{"constant":false,"name":"_data","scope":1777,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":1672,"name":"ElementaryTypeName","src":"29009:5:14"}],"id":1673,"name":"VariableDeclaration","src":"29009:11:14"}],"id":1674,"name":"ParameterList","src":"28973:48:14"},{"attributes":{"parameters":[null]},"children":[],"id":1677,"name":"ParameterList","src":"29041:0:14"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2385,"type":"modifier ()","value":"onlyOwner"},"id":1675,"name":"Identifier","src":"29031:9:14"}],"id":1676,"name":"ModifierInvocation","src":"29031:9:14"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1673,"type":"bytes calldata","value":"_data"},"id":1678,"name":"Identifier","src":"29143:5:14"}],"id":1679,"name":"MemberAccess","src":"29143:12:14"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":1680,"name":"Literal","src":"29159:1:14"}],"id":1681,"name":"BinaryOperation","src":"29143:17:14"},{"children":[{"attributes":{"assignments":[1683]},"children":[{"attributes":{"constant":false,"name":"signature","scope":1777,"stateVariable":false,"storageLocation":"default","type":"uint32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint32","type":"uint32"},"id":1682,"name":"ElementaryTypeName","src":"29212:6:14"}],"id":1683,"name":"VariableDeclaration","src":"29212:16:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"overloadedDeclarations":[null],"referencedDeclaration":2015,"type":"function (bytes memory,uint256) pure returns (uint32)","value":"_bytesToUint32"},"id":1684,"name":"Identifier","src":"29231:14:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1673,"type":"bytes calldata","value":"_data"},"id":1685,"name":"Identifier","src":"29246:5:14"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1686,"name":"Literal","src":"29253:1:14"}],"id":1687,"name":"FunctionCall","src":"29231:24:14"}],"id":1688,"name":"VariableDeclarationStatement","src":"29212:43:14"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"||","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint32","typeString":"uint32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1683,"type":"uint32","value":"signature"},"id":1689,"name":"Identifier","src":"29341:9:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1506,"type":"uint32","value":"_TRANSFER"},"id":1690,"name":"Identifier","src":"29354:9:14"}],"id":1691,"name":"BinaryOperation","src":"29341:22:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint32","typeString":"uint32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1683,"type":"uint32","value":"signature"},"id":1692,"name":"Identifier","src":"29367:9:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1509,"type":"uint32","value":"_APPROVE"},"id":1693,"name":"Identifier","src":"29380:8:14"}],"id":1694,"name":"BinaryOperation","src":"29367:21:14"}],"id":1695,"name":"BinaryOperation","src":"29341:47:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_60b02e5339acadd671190c6aff36d1b941b1032e82ca211538cb256ae0a5a6de","typeString":"literal_string \"invalid transfer / approve transaction data\""}],"overloadedDeclarations":[6460,6461],"referencedDeclaration":6461,"type":"function (bool,string memory) pure","value":"require"},"id":1696,"name":"Identifier","src":"29408:7:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1673,"type":"bytes calldata","value":"_data"},"id":1697,"name":"Identifier","src":"29416:5:14"}],"id":1698,"name":"MemberAccess","src":"29416:12:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_68_by_1","typeString":"int_const 68"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"+","type":"int_const 68"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_36_by_1","typeString":"int_const 36"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"+","type":"int_const 36"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":1699,"name":"Literal","src":"29432:1:14"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":1700,"name":"Literal","src":"29436:2:14"}],"id":1701,"name":"BinaryOperation","src":"29432:6:14"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":1702,"name":"Literal","src":"29441:2:14"}],"id":1703,"name":"BinaryOperation","src":"29432:11:14"}],"id":1704,"name":"BinaryOperation","src":"29416:27:14"},{"attributes":{"argumentTypes":null,"hexvalue":"696e76616c6964207472616e73666572202f20617070726f7665207472616e73616374696f6e2064617461","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"invalid transfer / approve transaction data\"","value":"invalid transfer / approve transaction data"},"id":1705,"name":"Literal","src":"29445:45:14"}],"id":1706,"name":"FunctionCall","src":"29408:83:14"}],"id":1707,"name":"ExpressionStatement","src":"29408:83:14"},{"attributes":{"assignments":[1709]},"children":[{"attributes":{"constant":false,"name":"amount","scope":1777,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1708,"name":"ElementaryTypeName","src":"29509:4:14"}],"id":1709,"name":"VariableDeclaration","src":"29509:11:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_rational_36_by_1","typeString":"int_const 36"}],"overloadedDeclarations":[null],"referencedDeclaration":2041,"type":"function (bytes memory,uint256) pure returns (uint256)","value":"_sliceUint"},"id":1710,"name":"Identifier","src":"29523:10:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1673,"type":"bytes calldata","value":"_data"},"id":1711,"name":"Identifier","src":"29534:5:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_36_by_1","typeString":"int_const 36"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"+","type":"int_const 36"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":1712,"name":"Literal","src":"29541:1:14"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":1713,"name":"Literal","src":"29545:2:14"}],"id":1714,"name":"BinaryOperation","src":"29541:6:14"}],"id":1715,"name":"FunctionCall","src":"29523:25:14"}],"id":1716,"name":"VariableDeclarationStatement","src":"29509:39:14"},{"attributes":{"assignments":[1718]},"children":[{"attributes":{"constant":false,"name":"toOrSpender","scope":1777,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":1717,"name":"ElementaryTypeName","src":"29754:7:14"}],"id":1718,"name":"VariableDeclaration","src":"29754:19:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"}],"overloadedDeclarations":[null],"referencedDeclaration":1954,"type":"function (bytes memory,uint256) pure returns (address)","value":"_bytesToAddress"},"id":1719,"name":"Identifier","src":"29776:15:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1673,"type":"bytes calldata","value":"_data"},"id":1720,"name":"Identifier","src":"29792:5:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"+","type":"int_const 16"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":1721,"name":"Literal","src":"29799:1:14"},{"attributes":{"argumentTypes":null,"hexvalue":"3132","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 12","value":"12"},"id":1722,"name":"Literal","src":"29803:2:14"}],"id":1723,"name":"BinaryOperation","src":"29799:6:14"}],"id":1724,"name":"FunctionCall","src":"29776:30:14"}],"id":1725,"name":"VariableDeclarationStatement","src":"29754:52:14"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":80,"type":"mapping(address => bool)","value":"whitelistMap"},"id":1726,"name":"Identifier","src":"29894:12:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1718,"type":"address","value":"toOrSpender"},"id":1727,"name":"Identifier","src":"29907:11:14"}],"id":1728,"name":"IndexAccess","src":"29894:25:14"}],"id":1729,"name":"UnaryOperation","src":"29893:26:14"},{"children":[{"attributes":{"assignments":[1731]},"children":[{"attributes":{"constant":false,"name":"etherValue","scope":1777,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1730,"name":"ElementaryTypeName","src":"30119:4:14"}],"id":1731,"name":"VariableDeclaration","src":"30119:15:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":1467,"type":"function (address,uint256) view returns (uint256)","value":"convertToEther"},"id":1732,"name":"Identifier","src":"30137:14:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1669,"type":"address","value":"_destination"},"id":1733,"name":"Identifier","src":"30152:12:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1709,"type":"uint256","value":"amount"},"id":1734,"name":"Identifier","src":"30166:6:14"}],"id":1735,"name":"FunctionCall","src":"30137:36:14"}],"id":1736,"name":"VariableDeclarationStatement","src":"30119:54:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_DailyLimit_$583_storage","typeString":"struct DailyLimitTrait.DailyLimit storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":636,"type":"function (struct DailyLimitTrait.DailyLimit storage pointer,uint256)","value":"_enforceLimit"},"id":1737,"name":"Identifier","src":"30195:13:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":799,"type":"struct DailyLimitTrait.DailyLimit storage ref","value":"_spendLimit"},"id":1738,"name":"Identifier","src":"30209:11:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1731,"type":"uint256","value":"etherValue"},"id":1739,"name":"Identifier","src":"30222:10:14"}],"id":1740,"name":"FunctionCall","src":"30195:38:14"}],"id":1741,"name":"ExpressionStatement","src":"30195:38:14"}],"id":1742,"name":"Block","src":"29921:331:14"}],"id":1743,"name":"IfStatement","src":"29889:363:14"}],"id":1744,"name":"Block","src":"29390:876:14"}],"id":1745,"name":"IfStatement","src":"29337:929:14"}],"id":1746,"name":"Block","src":"29162:1114:14"}],"id":1747,"name":"IfStatement","src":"29139:1137:14"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":80,"type":"mapping(address => bool)","value":"whitelistMap"},"id":1748,"name":"Identifier","src":"30481:12:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1669,"type":"address","value":"_destination"},"id":1749,"name":"Identifier","src":"30494:12:14"}],"id":1750,"name":"IndexAccess","src":"30481:26:14"}],"id":1751,"name":"UnaryOperation","src":"30480:27:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_DailyLimit_$583_storage","typeString":"struct DailyLimitTrait.DailyLimit storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":636,"type":"function (struct DailyLimitTrait.DailyLimit storage pointer,uint256)","value":"_enforceLimit"},"id":1752,"name":"Identifier","src":"30523:13:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":799,"type":"struct DailyLimitTrait.DailyLimit storage ref","value":"_spendLimit"},"id":1753,"name":"Identifier","src":"30537:11:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1671,"type":"uint256","value":"_value"},"id":1754,"name":"Identifier","src":"30550:6:14"}],"id":1755,"name":"FunctionCall","src":"30523:34:14"}],"id":1756,"name":"ExpressionStatement","src":"30523:34:14"}],"id":1757,"name":"Block","src":"30509:59:14"}],"id":1758,"name":"IfStatement","src":"30476:92:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c9dca63b84df20d1b1beebd2bfebabcdff15d16b9e9e3fea6496e3ba09597b1d","typeString":"literal_string \"executing transaction failed\""}],"overloadedDeclarations":[6460,6461],"referencedDeclaration":6461,"type":"function (bool,string memory) pure","value":"require"},"id":1759,"name":"Identifier","src":"30578:7:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"overloadedDeclarations":[null],"referencedDeclaration":1891,"type":"function (address,uint256,uint256,bytes memory) returns (bool)","value":"_externalCall"},"id":1760,"name":"Identifier","src":"30586:13:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1669,"type":"address","value":"_destination"},"id":1761,"name":"Identifier","src":"30600:12:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1671,"type":"uint256","value":"_value"},"id":1762,"name":"Identifier","src":"30614:6:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1673,"type":"bytes calldata","value":"_data"},"id":1763,"name":"Identifier","src":"30622:5:14"}],"id":1764,"name":"MemberAccess","src":"30622:12:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1673,"type":"bytes calldata","value":"_data"},"id":1765,"name":"Identifier","src":"30636:5:14"}],"id":1766,"name":"FunctionCall","src":"30586:56:14"},{"attributes":{"argumentTypes":null,"hexvalue":"657865637574696e67207472616e73616374696f6e206661696c6564","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"executing transaction failed\"","value":"executing transaction failed"},"id":1767,"name":"Literal","src":"30644:30:14"}],"id":1768,"name":"FunctionCall","src":"30578:97:14"}],"id":1769,"name":"ExpressionStatement","src":"30578:97:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"overloadedDeclarations":[null],"referencedDeclaration":1498,"type":"function (address,uint256,bytes memory)","value":"ExecutedTransaction"},"id":1770,"name":"Identifier","src":"30691:19:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1669,"type":"address","value":"_destination"},"id":1771,"name":"Identifier","src":"30711:12:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1671,"type":"uint256","value":"_value"},"id":1772,"name":"Identifier","src":"30725:6:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1673,"type":"bytes calldata","value":"_data"},"id":1773,"name":"Identifier","src":"30733:5:14"}],"id":1774,"name":"FunctionCall","src":"30691:48:14"}],"id":1775,"name":"EmitStatement","src":"30686:53:14"}],"id":1776,"name":"Block","src":"29041:1705:14"}],"id":1777,"name":"FunctionDefinition","src":"28946:1800:14"},{"attributes":{"constant":true,"documentation":"@return licence contract node registered in ENS.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"licenceNode","payable":false,"scope":2042,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":1778,"name":"ParameterList","src":"30829:2:14"},{"children":[{"attributes":{"constant":false,"name":"","scope":1785,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":1779,"name":"ElementaryTypeName","src":"30855:7:14"}],"id":1780,"name":"VariableDeclaration","src":"30855:7:14"}],"id":1781,"name":"ParameterList","src":"30854:9:14"},{"children":[{"attributes":{"functionReturnParameters":1781},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1503,"type":"bytes32","value":"_licenceNode"},"id":1782,"name":"Identifier","src":"30881:12:14"}],"id":1783,"name":"Return","src":"30874:19:14"}],"id":1784,"name":"Block","src":"30864:36:14"}],"id":1785,"name":"FunctionDefinition","src":"30809:91:14"},{"attributes":{"constant":true,"documentation":"@dev Convert ether or ERC20 token amount to the corresponding stablecoin amount.\n @param _token ERC20 token contract address.\n @param _amount amount of token in base units.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"convertToStablecoin","payable":false,"scope":2042,"stateMutability":"view","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"_token","scope":1871,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":1786,"name":"ElementaryTypeName","src":"31130:7:14"}],"id":1787,"name":"VariableDeclaration","src":"31130:14:14"},{"attributes":{"constant":false,"name":"_amount","scope":1871,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1788,"name":"ElementaryTypeName","src":"31146:4:14"}],"id":1789,"name":"VariableDeclaration","src":"31146:12:14"}],"id":1790,"name":"ParameterList","src":"31129:30:14"},{"children":[{"attributes":{"constant":false,"name":"","scope":1871,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1791,"name":"ElementaryTypeName","src":"31181:4:14"}],"id":1792,"name":"VariableDeclaration","src":"31181:4:14"}],"id":1793,"name":"ParameterList","src":"31180:6:14"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1787,"type":"address","value":"_token"},"id":1794,"name":"Identifier","src":"31297:6:14"},{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"overloadedDeclarations":[null],"referencedDeclaration":2662,"type":"function () view returns (address)","value":"_stablecoin"},"id":1795,"name":"Identifier","src":"31307:11:14"}],"id":1796,"name":"FunctionCall","src":"31307:13:14"}],"id":1797,"name":"BinaryOperation","src":"31297:23:14"},{"children":[{"attributes":{"functionReturnParameters":1793},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1789,"type":"uint256","value":"_amount"},"id":1798,"name":"Identifier","src":"31343:7:14"}],"id":1799,"name":"Return","src":"31336:14:14"}],"id":1800,"name":"Block","src":"31322:39:14"}],"id":1801,"name":"IfStatement","src":"31293:68:14"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1787,"type":"address","value":"_token"},"id":1802,"name":"Identifier","src":"31405:6:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":1803,"name":"ElementaryTypeNameExpression","src":"31415:7:14"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1804,"name":"Literal","src":"31423:1:14"}],"id":1805,"name":"FunctionCall","src":"31415:10:14"}],"id":1806,"name":"BinaryOperation","src":"31405:20:14"},{"children":[{"attributes":{"assignments":[null,1808,1810,1812,null,null,null]},"children":[{"attributes":{"constant":false,"name":"magnitude","scope":1871,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1807,"name":"ElementaryTypeName","src":"31575:7:14"}],"id":1808,"name":"VariableDeclaration","src":"31575:17:14"},{"attributes":{"constant":false,"name":"rate","scope":1871,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1809,"name":"ElementaryTypeName","src":"31594:7:14"}],"id":1810,"name":"VariableDeclaration","src":"31594:12:14"},{"attributes":{"constant":false,"name":"available","scope":1871,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":1811,"name":"ElementaryTypeName","src":"31608:4:14"}],"id":1812,"name":"VariableDeclaration","src":"31608:14:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple(string memory,uint256,uint256,bool,bool,bool,uint256)","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2538,"type":"function (address) view returns (string memory,uint256,uint256,bool,bool,bool,uint256)","value":"_getTokenInfo"},"id":1813,"name":"Identifier","src":"31632:13:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1787,"type":"address","value":"_token"},"id":1814,"name":"Identifier","src":"31646:6:14"}],"id":1815,"name":"FunctionCall","src":"31632:21:14"}],"id":1816,"name":"VariableDeclarationStatement","src":"31573:80:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d487155ec60125f09758305e6de21696dc3e345a5b0edca0b920691dd5be4852","typeString":"literal_string \"token is not available\""}],"overloadedDeclarations":[6460,6461],"referencedDeclaration":6461,"type":"function (bool,string memory) pure","value":"require"},"id":1817,"name":"Identifier","src":"31756:7:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1812,"type":"bool","value":"available"},"id":1818,"name":"Identifier","src":"31764:9:14"},{"attributes":{"argumentTypes":null,"hexvalue":"746f6b656e206973206e6f7420617661696c61626c65","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"token is not available\"","value":"token is not available"},"id":1819,"name":"Literal","src":"31775:24:14"}],"id":1820,"name":"FunctionCall","src":"31756:44:14"}],"id":1821,"name":"ExpressionStatement","src":"31756:44:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6a7d5da61473fd3819888b787e2ae4bd3c3ceb7f1a5528bd7126863f09e86c29","typeString":"literal_string \"token rate is 0\""}],"overloadedDeclarations":[6460,6461],"referencedDeclaration":6461,"type":"function (bool,string memory) pure","value":"require"},"id":1822,"name":"Identifier","src":"31814:7:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1810,"type":"uint256","value":"rate"},"id":1823,"name":"Identifier","src":"31822:4:14"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1824,"name":"Literal","src":"31830:1:14"}],"id":1825,"name":"BinaryOperation","src":"31822:9:14"},{"attributes":{"argumentTypes":null,"hexvalue":"746f6b656e20726174652069732030","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"token rate is 0\"","value":"token rate is 0"},"id":1826,"name":"Literal","src":"31833:17:14"}],"id":1827,"name":"FunctionCall","src":"31814:37:14"}],"id":1828,"name":"ExpressionStatement","src":"31814:37:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1789,"type":"uint256","value":"_amount"},"id":1829,"name":"Identifier","src":"31949:7:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"div","referencedDeclaration":2150,"type":"function (uint256,uint256) pure returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"mul","referencedDeclaration":2126,"type":"function (uint256,uint256) pure returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1789,"type":"uint256","value":"_amount"},"id":1830,"name":"Identifier","src":"31959:7:14"}],"id":1831,"name":"MemberAccess","src":"31959:11:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1810,"type":"uint256","value":"rate"},"id":1832,"name":"Identifier","src":"31971:4:14"}],"id":1833,"name":"FunctionCall","src":"31959:17:14"}],"id":1834,"name":"MemberAccess","src":"31959:21:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1808,"type":"uint256","value":"magnitude"},"id":1835,"name":"Identifier","src":"31981:9:14"}],"id":1836,"name":"FunctionCall","src":"31959:32:14"}],"id":1837,"name":"Assignment","src":"31949:42:14"}],"id":1838,"name":"ExpressionStatement","src":"31949:42:14"}],"id":1839,"name":"Block","src":"31427:575:14"}],"id":1840,"name":"IfStatement","src":"31401:601:14"},{"attributes":{"assignments":[null,1842,1844,1846,null,null,null]},"children":[{"attributes":{"constant":false,"name":"stablecoinMagnitude","scope":1871,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1841,"name":"ElementaryTypeName","src":"32112:7:14"}],"id":1842,"name":"VariableDeclaration","src":"32112:27:14"},{"attributes":{"constant":false,"name":"stablecoinRate","scope":1871,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1843,"name":"ElementaryTypeName","src":"32141:7:14"}],"id":1844,"name":"VariableDeclaration","src":"32141:22:14"},{"attributes":{"constant":false,"name":"stablecoinAvailable","scope":1871,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":1845,"name":"ElementaryTypeName","src":"32165:4:14"}],"id":1846,"name":"VariableDeclaration","src":"32165:24:14"},{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple(string memory,uint256,uint256,bool,bool,bool,uint256)","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"overloadedDeclarations":[null],"referencedDeclaration":2564,"type":"function () view returns (string memory,uint256,uint256,bool,bool,bool,uint256)","value":"_getStablecoinInfo"},"id":1847,"name":"Identifier","src":"32199:18:14"}],"id":1848,"name":"FunctionCall","src":"32199:20:14"}],"id":1849,"name":"VariableDeclarationStatement","src":"32109:110:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d487155ec60125f09758305e6de21696dc3e345a5b0edca0b920691dd5be4852","typeString":"literal_string \"token is not available\""}],"overloadedDeclarations":[6460,6461],"referencedDeclaration":6461,"type":"function (bool,string memory) pure","value":"require"},"id":1850,"name":"Identifier","src":"32281:7:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1846,"type":"bool","value":"stablecoinAvailable"},"id":1851,"name":"Identifier","src":"32289:19:14"},{"attributes":{"argumentTypes":null,"hexvalue":"746f6b656e206973206e6f7420617661696c61626c65","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"token is not available\"","value":"token is not available"},"id":1852,"name":"Literal","src":"32310:24:14"}],"id":1853,"name":"FunctionCall","src":"32281:54:14"}],"id":1854,"name":"ExpressionStatement","src":"32281:54:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7c122d7c6b188fb34176dcbbc8d0f72dcc4a30a0e6c8f0047ab0c21581c51619","typeString":"literal_string \"stablecoin rate is 0\""}],"overloadedDeclarations":[6460,6461],"referencedDeclaration":6461,"type":"function (bool,string memory) pure","value":"require"},"id":1855,"name":"Identifier","src":"32345:7:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1844,"type":"uint256","value":"stablecoinRate"},"id":1856,"name":"Identifier","src":"32353:14:14"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1857,"name":"Literal","src":"32371:1:14"}],"id":1858,"name":"BinaryOperation","src":"32353:19:14"},{"attributes":{"argumentTypes":null,"hexvalue":"737461626c65636f696e20726174652069732030","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"stablecoin rate is 0\"","value":"stablecoin rate is 0"},"id":1859,"name":"Literal","src":"32374:22:14"}],"id":1860,"name":"FunctionCall","src":"32345:52:14"}],"id":1861,"name":"ExpressionStatement","src":"32345:52:14"},{"attributes":{"functionReturnParameters":1793},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"div","referencedDeclaration":2150,"type":"function (uint256,uint256) pure returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"mul","referencedDeclaration":2126,"type":"function (uint256,uint256) pure returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1789,"type":"uint256","value":"_amount"},"id":1862,"name":"Identifier","src":"32532:7:14"}],"id":1863,"name":"MemberAccess","src":"32532:11:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1842,"type":"uint256","value":"stablecoinMagnitude"},"id":1864,"name":"Identifier","src":"32544:19:14"}],"id":1865,"name":"FunctionCall","src":"32532:32:14"}],"id":1866,"name":"MemberAccess","src":"32532:36:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1844,"type":"uint256","value":"stablecoinRate"},"id":1867,"name":"Identifier","src":"32569:14:14"}],"id":1868,"name":"FunctionCall","src":"32532:52:14"}],"id":1869,"name":"Return","src":"32525:59:14"}],"id":1870,"name":"Block","src":"31187:1404:14"}],"id":1871,"name":"FunctionDefinition","src":"31101:1490:14"},{"attributes":{"constant":false,"documentation":"@dev This function is taken from the Gnosis MultisigWallet: https://github.com/gnosis/MultiSigWallet/\n @dev License: https://github.com/gnosis/MultiSigWallet/blob/master/LICENSE\n @dev thanks :)\n @dev This calls proxies arbitrary transactions to addresses\n @param _destination address of the transaction\n @param _value ETH amount in wei\n @param _dataLength length of the transaction data\n @param _data transaction payload binary","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_externalCall","payable":false,"scope":2042,"stateMutability":"nonpayable","superFunction":null,"visibility":"private"},"children":[{"children":[{"attributes":{"constant":false,"name":"_destination","scope":1891,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":1872,"name":"ElementaryTypeName","src":"33276:7:14"}],"id":1873,"name":"VariableDeclaration","src":"33276:20:14"},{"attributes":{"constant":false,"name":"_value","scope":1891,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1874,"name":"ElementaryTypeName","src":"33298:4:14"}],"id":1875,"name":"VariableDeclaration","src":"33298:11:14"},{"attributes":{"constant":false,"name":"_dataLength","scope":1891,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1876,"name":"ElementaryTypeName","src":"33311:4:14"}],"id":1877,"name":"VariableDeclaration","src":"33311:16:14"},{"attributes":{"constant":false,"name":"_data","scope":1891,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":1878,"name":"ElementaryTypeName","src":"33329:5:14"}],"id":1879,"name":"VariableDeclaration","src":"33329:11:14"}],"id":1880,"name":"ParameterList","src":"33275:66:14"},{"children":[{"attributes":{"constant":false,"name":"","scope":1891,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":1881,"name":"ElementaryTypeName","src":"33359:4:14"}],"id":1882,"name":"VariableDeclaration","src":"33359:4:14"}],"id":1883,"name":"ParameterList","src":"33358:6:14"},{"children":[{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"result","scope":1891,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":1884,"name":"ElementaryTypeName","src":"33375:4:14"}],"id":1885,"name":"VariableDeclaration","src":"33375:11:14"}],"id":1886,"name":"VariableDeclarationStatement","src":"33375:11:14"},{"attributes":{"externalReferences":[{"_data":{"declaration":1879,"isOffset":false,"isSlot":false,"src":"33561:5:14","valueSize":1}},{"_destination":{"declaration":1873,"isOffset":false,"isSlot":false,"src":"34035:12:14","valueSize":1}},{"_value":{"declaration":1875,"isOffset":false,"isSlot":false,"src":"34065:6:14","valueSize":1}},{"_dataLength":{"declaration":1877,"isOffset":false,"isSlot":false,"src":"34108:11:14","valueSize":1}},{"result":{"declaration":1885,"isOffset":false,"isSlot":false,"src":"33649:6:14","valueSize":1}}],"operations":"{\n let x := mload(0x40)\n let d := add(_data, 32)\n result := call(sub(gas(), 34710), _destination, _value, d, _dataLength, x, 0)\n}"},"children":[],"id":1887,"name":"InlineAssembly","src":"33396:954:14"},{"attributes":{"functionReturnParameters":1883},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1885,"type":"bool","value":"result"},"id":1888,"name":"Identifier","src":"34351:6:14"}],"id":1889,"name":"Return","src":"34344:13:14"}],"id":1890,"name":"Block","src":"33365:999:14"}],"id":1891,"name":"FunctionDefinition","src":"33253:1111:14"},{"attributes":{"constant":true,"documentation":"@dev This function converts to an address\n @param _bts bytes\n @param _from start position","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_bytesToAddress","payable":false,"scope":2042,"stateMutability":"pure","superFunction":null,"visibility":"private"},"children":[{"children":[{"attributes":{"constant":false,"name":"_bts","scope":1954,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":1892,"name":"ElementaryTypeName","src":"34507:5:14"}],"id":1893,"name":"VariableDeclaration","src":"34507:10:14"},{"attributes":{"constant":false,"name":"_from","scope":1954,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1894,"name":"ElementaryTypeName","src":"34519:4:14"}],"id":1895,"name":"VariableDeclaration","src":"34519:10:14"}],"id":1896,"name":"ParameterList","src":"34506:24:14"},{"children":[{"attributes":{"constant":false,"name":"","scope":1954,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":1897,"name":"ElementaryTypeName","src":"34553:7:14"}],"id":1898,"name":"VariableDeclaration","src":"34553:7:14"}],"id":1899,"name":"ParameterList","src":"34552:9:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_294d2bd5b6fb7e8eb608d7ff076f4babdc08155a7a6671f4f35801fb90c8bda4","typeString":"literal_string \"slicing out of range\""}],"overloadedDeclarations":[6460,6461],"referencedDeclaration":6461,"type":"function (bool,string memory) pure","value":"require"},"id":1900,"name":"Identifier","src":"34572:7:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1893,"type":"bytes memory","value":"_bts"},"id":1901,"name":"Identifier","src":"34580:4:14"}],"id":1902,"name":"MemberAccess","src":"34580:11:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1895,"type":"uint256","value":"_from"},"id":1903,"name":"Identifier","src":"34595:5:14"},{"attributes":{"argumentTypes":null,"hexvalue":"3230","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 20","value":"20"},"id":1904,"name":"Literal","src":"34603:2:14"}],"id":1905,"name":"BinaryOperation","src":"34595:10:14"}],"id":1906,"name":"BinaryOperation","src":"34580:25:14"},{"attributes":{"argumentTypes":null,"hexvalue":"736c6963696e67206f7574206f662072616e6765","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"slicing out of range\"","value":"slicing out of range"},"id":1907,"name":"Literal","src":"34607:22:14"}],"id":1908,"name":"FunctionCall","src":"34572:58:14"}],"id":1909,"name":"ExpressionStatement","src":"34572:58:14"},{"attributes":{"assignments":[1911]},"children":[{"attributes":{"constant":false,"name":"m","scope":1954,"stateVariable":false,"storageLocation":"default","type":"uint160","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint160","type":"uint160"},"id":1910,"name":"ElementaryTypeName","src":"34641:7:14"}],"id":1911,"name":"VariableDeclaration","src":"34641:9:14"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1912,"name":"Literal","src":"34653:1:14"}],"id":1913,"name":"VariableDeclarationStatement","src":"34641:13:14"},{"attributes":{"assignments":[1915]},"children":[{"attributes":{"constant":false,"name":"b","scope":1954,"stateVariable":false,"storageLocation":"default","type":"uint160","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint160","type":"uint160"},"id":1914,"name":"ElementaryTypeName","src":"34664:7:14"}],"id":1915,"name":"VariableDeclaration","src":"34664:9:14"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1916,"name":"Literal","src":"34676:1:14"}],"id":1917,"name":"VariableDeclarationStatement","src":"34664:13:14"},{"children":[{"attributes":{"assignments":[1919]},"children":[{"attributes":{"constant":false,"name":"i","scope":1954,"stateVariable":false,"storageLocation":"default","type":"uint8","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint8","type":"uint8"},"id":1918,"name":"ElementaryTypeName","src":"34693:5:14"}],"id":1919,"name":"VariableDeclaration","src":"34693:7:14"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1920,"name":"Literal","src":"34703:1:14"}],"id":1921,"name":"VariableDeclarationStatement","src":"34693:11:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1919,"type":"uint8","value":"i"},"id":1922,"name":"Identifier","src":"34706:1:14"},{"attributes":{"argumentTypes":null,"hexvalue":"3230","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 20","value":"20"},"id":1923,"name":"Literal","src":"34710:2:14"}],"id":1924,"name":"BinaryOperation","src":"34706:6:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint8"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1919,"type":"uint8","value":"i"},"id":1925,"name":"Identifier","src":"34714:1:14"}],"id":1926,"name":"UnaryOperation","src":"34714:3:14"}],"id":1927,"name":"ExpressionStatement","src":"34714:3:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*=","type":"uint160"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1911,"type":"uint160","value":"m"},"id":1928,"name":"Identifier","src":"34733:1:14"},{"attributes":{"argumentTypes":null,"hexvalue":"323536","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 256","value":"256"},"id":1929,"name":"Literal","src":"34738:3:14"}],"id":1930,"name":"Assignment","src":"34733:8:14"}],"id":1931,"name":"ExpressionStatement","src":"34733:8:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint160"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1915,"type":"uint160","value":"b"},"id":1932,"name":"Identifier","src":"34755:1:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint160","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint160)","value":"uint160"},"id":1933,"name":"ElementaryTypeNameExpression","src":"34759:7:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1893,"type":"bytes memory","value":"_bts"},"id":1934,"name":"Identifier","src":"34768:4:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1895,"type":"uint256","value":"_from"},"id":1935,"name":"Identifier","src":"34773:5:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1919,"type":"uint8","value":"i"},"id":1936,"name":"Identifier","src":"34781:1:14"}],"id":1937,"name":"BinaryOperation","src":"34773:9:14"}],"id":1938,"name":"IndexAccess","src":"34768:15:14"}],"id":1939,"name":"FunctionCall","src":"34759:25:14"}],"id":1940,"name":"Assignment","src":"34755:29:14"}],"id":1941,"name":"ExpressionStatement","src":"34755:29:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint160"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1911,"type":"uint160","value":"m"},"id":1942,"name":"Identifier","src":"34798:1:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint160"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1915,"type":"uint160","value":"b"},"id":1943,"name":"Identifier","src":"34804:1:14"}],"id":1944,"name":"TupleExpression","src":"34803:3:14"}],"id":1945,"name":"Assignment","src":"34798:8:14"}],"id":1946,"name":"ExpressionStatement","src":"34798:8:14"}],"id":1947,"name":"Block","src":"34719:98:14"}],"id":1948,"name":"ForStatement","src":"34688:129:14"},{"attributes":{"functionReturnParameters":1899},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":1949,"name":"ElementaryTypeNameExpression","src":"34834:7:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1911,"type":"uint160","value":"m"},"id":1950,"name":"Identifier","src":"34842:1:14"}],"id":1951,"name":"FunctionCall","src":"34834:10:14"}],"id":1952,"name":"Return","src":"34827:17:14"}],"id":1953,"name":"Block","src":"34562:289:14"}],"id":1954,"name":"FunctionDefinition","src":"34482:369:14"},{"attributes":{"constant":true,"documentation":"@dev This function slicing bytes into uint32\n @param _bts some bytes\n @param _from a start position","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_bytesToUint32","payable":false,"scope":2042,"stateMutability":"pure","superFunction":null,"visibility":"private"},"children":[{"children":[{"attributes":{"constant":false,"name":"_bts","scope":2015,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":1955,"name":"ElementaryTypeName","src":"35004:5:14"}],"id":1956,"name":"VariableDeclaration","src":"35004:10:14"},{"attributes":{"constant":false,"name":"_from","scope":2015,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1957,"name":"ElementaryTypeName","src":"35016:4:14"}],"id":1958,"name":"VariableDeclaration","src":"35016:10:14"}],"id":1959,"name":"ParameterList","src":"35003:24:14"},{"children":[{"attributes":{"constant":false,"name":"","scope":2015,"stateVariable":false,"storageLocation":"default","type":"uint32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint32","type":"uint32"},"id":1960,"name":"ElementaryTypeName","src":"35050:6:14"}],"id":1961,"name":"VariableDeclaration","src":"35050:6:14"}],"id":1962,"name":"ParameterList","src":"35049:8:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_294d2bd5b6fb7e8eb608d7ff076f4babdc08155a7a6671f4f35801fb90c8bda4","typeString":"literal_string \"slicing out of range\""}],"overloadedDeclarations":[6460,6461],"referencedDeclaration":6461,"type":"function (bool,string memory) pure","value":"require"},"id":1963,"name":"Identifier","src":"35068:7:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1956,"type":"bytes memory","value":"_bts"},"id":1964,"name":"Identifier","src":"35076:4:14"}],"id":1965,"name":"MemberAccess","src":"35076:11:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1958,"type":"uint256","value":"_from"},"id":1966,"name":"Identifier","src":"35091:5:14"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":1967,"name":"Literal","src":"35099:1:14"}],"id":1968,"name":"BinaryOperation","src":"35091:9:14"}],"id":1969,"name":"BinaryOperation","src":"35076:24:14"},{"attributes":{"argumentTypes":null,"hexvalue":"736c6963696e67206f7574206f662072616e6765","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"slicing out of range\"","value":"slicing out of range"},"id":1970,"name":"Literal","src":"35102:22:14"}],"id":1971,"name":"FunctionCall","src":"35068:57:14"}],"id":1972,"name":"ExpressionStatement","src":"35068:57:14"},{"attributes":{"assignments":[1974]},"children":[{"attributes":{"constant":false,"name":"m","scope":2015,"stateVariable":false,"storageLocation":"default","type":"uint32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint32","type":"uint32"},"id":1973,"name":"ElementaryTypeName","src":"35136:6:14"}],"id":1974,"name":"VariableDeclaration","src":"35136:8:14"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1975,"name":"Literal","src":"35147:1:14"}],"id":1976,"name":"VariableDeclarationStatement","src":"35136:12:14"},{"attributes":{"assignments":[1978]},"children":[{"attributes":{"constant":false,"name":"b","scope":2015,"stateVariable":false,"storageLocation":"default","type":"uint32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint32","type":"uint32"},"id":1977,"name":"ElementaryTypeName","src":"35158:6:14"}],"id":1978,"name":"VariableDeclaration","src":"35158:8:14"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1979,"name":"Literal","src":"35169:1:14"}],"id":1980,"name":"VariableDeclarationStatement","src":"35158:12:14"},{"children":[{"attributes":{"assignments":[1982]},"children":[{"attributes":{"constant":false,"name":"i","scope":2015,"stateVariable":false,"storageLocation":"default","type":"uint8","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint8","type":"uint8"},"id":1981,"name":"ElementaryTypeName","src":"35186:5:14"}],"id":1982,"name":"VariableDeclaration","src":"35186:7:14"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1983,"name":"Literal","src":"35196:1:14"}],"id":1984,"name":"VariableDeclarationStatement","src":"35186:11:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1982,"type":"uint8","value":"i"},"id":1985,"name":"Identifier","src":"35199:1:14"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":1986,"name":"Literal","src":"35203:1:14"}],"id":1987,"name":"BinaryOperation","src":"35199:5:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint8"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1982,"type":"uint8","value":"i"},"id":1988,"name":"Identifier","src":"35206:1:14"}],"id":1989,"name":"UnaryOperation","src":"35206:3:14"}],"id":1990,"name":"ExpressionStatement","src":"35206:3:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*=","type":"uint32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1974,"type":"uint32","value":"m"},"id":1991,"name":"Identifier","src":"35225:1:14"},{"attributes":{"argumentTypes":null,"hexvalue":"323536","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 256","value":"256"},"id":1992,"name":"Literal","src":"35230:3:14"}],"id":1993,"name":"Assignment","src":"35225:8:14"}],"id":1994,"name":"ExpressionStatement","src":"35225:8:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1978,"type":"uint32","value":"b"},"id":1995,"name":"Identifier","src":"35247:1:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint32","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint32)","value":"uint32"},"id":1996,"name":"ElementaryTypeNameExpression","src":"35251:6:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1956,"type":"bytes memory","value":"_bts"},"id":1997,"name":"Identifier","src":"35259:4:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1958,"type":"uint256","value":"_from"},"id":1998,"name":"Identifier","src":"35264:5:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1982,"type":"uint8","value":"i"},"id":1999,"name":"Identifier","src":"35272:1:14"}],"id":2000,"name":"BinaryOperation","src":"35264:9:14"}],"id":2001,"name":"IndexAccess","src":"35259:15:14"}],"id":2002,"name":"FunctionCall","src":"35251:24:14"}],"id":2003,"name":"Assignment","src":"35247:28:14"}],"id":2004,"name":"ExpressionStatement","src":"35247:28:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1974,"type":"uint32","value":"m"},"id":2005,"name":"Identifier","src":"35289:1:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1978,"type":"uint32","value":"b"},"id":2006,"name":"Identifier","src":"35295:1:14"}],"id":2007,"name":"TupleExpression","src":"35294:3:14"}],"id":2008,"name":"Assignment","src":"35289:8:14"}],"id":2009,"name":"ExpressionStatement","src":"35289:8:14"}],"id":2010,"name":"Block","src":"35211:97:14"}],"id":2011,"name":"ForStatement","src":"35181:127:14"},{"attributes":{"functionReturnParameters":1962},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1974,"type":"uint32","value":"m"},"id":2012,"name":"Identifier","src":"35325:1:14"}],"id":2013,"name":"Return","src":"35318:8:14"}],"id":2014,"name":"Block","src":"35058:275:14"}],"id":2015,"name":"FunctionDefinition","src":"34980:353:14"},{"attributes":{"constant":true,"documentation":"@dev This function slices a uint\n @param _bts some bytes\n @param _from a start position","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_sliceUint","payable":false,"scope":2042,"stateMutability":"pure","superFunction":null,"visibility":"private"},"children":[{"children":[{"attributes":{"constant":false,"name":"_bts","scope":2041,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":2016,"name":"ElementaryTypeName","src":"35706:5:14"}],"id":2017,"name":"VariableDeclaration","src":"35706:10:14"},{"attributes":{"constant":false,"name":"_from","scope":2041,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2018,"name":"ElementaryTypeName","src":"35718:4:14"}],"id":2019,"name":"VariableDeclaration","src":"35718:10:14"}],"id":2020,"name":"ParameterList","src":"35705:24:14"},{"children":[{"attributes":{"constant":false,"name":"","scope":2041,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2021,"name":"ElementaryTypeName","src":"35752:4:14"}],"id":2022,"name":"VariableDeclaration","src":"35752:4:14"}],"id":2023,"name":"ParameterList","src":"35751:6:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_294d2bd5b6fb7e8eb608d7ff076f4babdc08155a7a6671f4f35801fb90c8bda4","typeString":"literal_string \"slicing out of range\""}],"overloadedDeclarations":[6460,6461],"referencedDeclaration":6461,"type":"function (bool,string memory) pure","value":"require"},"id":2024,"name":"Identifier","src":"35768:7:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2017,"type":"bytes memory","value":"_bts"},"id":2025,"name":"Identifier","src":"35776:4:14"}],"id":2026,"name":"MemberAccess","src":"35776:11:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2019,"type":"uint256","value":"_from"},"id":2027,"name":"Identifier","src":"35791:5:14"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":2028,"name":"Literal","src":"35799:2:14"}],"id":2029,"name":"BinaryOperation","src":"35791:10:14"}],"id":2030,"name":"BinaryOperation","src":"35776:25:14"},{"attributes":{"argumentTypes":null,"hexvalue":"736c6963696e67206f7574206f662072616e6765","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"slicing out of range\"","value":"slicing out of range"},"id":2031,"name":"Literal","src":"35803:22:14"}],"id":2032,"name":"FunctionCall","src":"35768:58:14"}],"id":2033,"name":"ExpressionStatement","src":"35768:58:14"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"x","scope":2041,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2034,"name":"ElementaryTypeName","src":"35837:4:14"}],"id":2035,"name":"VariableDeclaration","src":"35837:6:14"}],"id":2036,"name":"VariableDeclarationStatement","src":"35837:6:14"},{"attributes":{"externalReferences":[{"_bts":{"declaration":2017,"isOffset":false,"isSlot":false,"src":"35891:4:14","valueSize":1}},{"_from":{"declaration":2019,"isOffset":false,"isSlot":false,"src":"35907:5:14","valueSize":1}},{"x":{"declaration":2035,"isOffset":false,"isSlot":false,"src":"35876:1:14","valueSize":1}}],"operations":"{\n x := mload(add(_bts, add(0x20, _from)))\n}"},"children":[],"id":2037,"name":"InlineAssembly","src":"35853:88:14"},{"attributes":{"functionReturnParameters":2023},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2035,"type":"uint256","value":"x"},"id":2038,"name":"Identifier","src":"35942:1:14"}],"id":2039,"name":"Return","src":"35935:8:14"}],"id":2040,"name":"Block","src":"35758:192:14"}],"id":2041,"name":"FunctionDefinition","src":"35686:264:14"}],"id":2042,"name":"ContractDefinition","src":"24944:11009:14"}],"id":2043,"name":"SourceUnit","src":"757:35197:14"}}},"version":"0.4.25+commit.59dbf8f1.Linux.g++"} \ No newline at end of file +{"contracts":{"externals/ERC165.sol:ERC165":{"bin":"","bin-runtime":"","srcmap":"","srcmap-runtime":""},"externals/ERC20.sol:ERC20":{"bin":"","bin-runtime":"","srcmap":"","srcmap-runtime":""},"externals/SafeMath.sol:SafeMath":{"bin":"604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820564cf9c59188bb4d206d867a51ebdc48341c3b90a16491599b74ecfe95674b940029","bin-runtime":"73000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820564cf9c59188bb4d206d867a51ebdc48341c3b90a16491599b74ecfe95674b940029","srcmap":"1289:1531:2:-;;132:2:-1;166:7;155:9;146:7;137:37;252:7;246:14;243:1;238:23;232:4;229:33;270:1;265:20;;;;222:63;;265:20;274:9;222:63;;298:9;295:1;288:20;328:4;319:7;311:22;352:7;343;336:24","srcmap-runtime":"1289:1531:2:-;;;;;;;;"},"externals/ens/ENS.sol:ENS":{"bin":"","bin-runtime":"","srcmap":"","srcmap-runtime":""},"externals/ens/PublicResolver.sol:PublicResolver":{"bin":"608060405234801561001057600080fd5b50604051602080611400833981016040525160008054600160a060020a03909216600160a060020a03199092169190911790556113ae806100526000396000f3006080604052600436106100da5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166301ffc9a781146100df57806310f13a8c146101155780632203ab56146101b357806329cd62ea1461024d5780632dff69411461026b5780633b3b57de1461029557806359d1d43c146102c9578063623195b01461039c578063691f3431146103fc5780637737221314610414578063aa4cb54714610472578063c3d014d6146104d0578063c8690233146104eb578063d5fa2b001461051c578063e89401a114610540575b600080fd5b3480156100eb57600080fd5b50610101600160e060020a031960043516610558565b604080519115158252519081900360200190f35b34801561012157600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526101b195833595369560449491939091019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437509497506106f99650505050505050565b005b3480156101bf57600080fd5b506101ce60043560243561091f565b6040518083815260200180602001828103825283818151815260200191508051906020019080838360005b838110156102115781810151838201526020016101f9565b50505050905090810190601f16801561023e5780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b34801561025957600080fd5b506101b1600435602435604435610a2b565b34801561027757600080fd5b50610283600435610b2b565b60408051918252519081900360200190f35b3480156102a157600080fd5b506102ad600435610b41565b60408051600160a060020a039092168252519081900360200190f35b3480156102d557600080fd5b5060408051602060046024803582810135601f8101859004850286018501909652858552610327958335953695604494919390910191908190840183828082843750949750610b5c9650505050505050565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610361578181015183820152602001610349565b50505050905090810190601f16801561038e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103a857600080fd5b50604080516020600460443581810135601f81018490048402850184019095528484526101b1948235946024803595369594606494920191908190840183828082843750949750610c659650505050505050565b34801561040857600080fd5b50610327600435610d66565b34801561042057600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526101b1958335953695604494919390910191908190840183828082843750949750610e0a9650505050505050565b34801561047e57600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526101b1958335953695604494919390910191908190840183828082843750949750610f609650505050505050565b3480156104dc57600080fd5b506101b1600435602435611076565b3480156104f757600080fd5b50610503600435611157565b6040805192835260208301919091528051918290030190f35b34801561052857600080fd5b506101b1600435600160a060020a0360243516611174565b34801561054c57600080fd5b50610327600435611278565b6000600160e060020a031982167f3b3b57de0000000000000000000000000000000000000000000000000000000014806105bb5750600160e060020a031982167fd8389dc500000000000000000000000000000000000000000000000000000000145b806105ef5750600160e060020a031982167f691f343100000000000000000000000000000000000000000000000000000000145b806106235750600160e060020a031982167f2203ab5600000000000000000000000000000000000000000000000000000000145b806106575750600160e060020a031982167fc869023300000000000000000000000000000000000000000000000000000000145b8061068b5750600160e060020a031982167f59d1d43c00000000000000000000000000000000000000000000000000000000145b806106bf5750600160e060020a031982167fe89401a100000000000000000000000000000000000000000000000000000000145b806106f35750600160e060020a031982167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b600080546040805160e060020a6302571be302815260048101879052905186933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b15801561074c57600080fd5b505af1158015610760573d6000803e3d6000fd5b505050506040513d602081101561077657600080fd5b5051600160a060020a03161461078b57600080fd5b6000848152600160209081526040918290209151855185936005019287929182918401908083835b602083106107d25780518252601f1990920191602091820191016107b3565b51815160209384036101000a6000190180199092169116179052920194855250604051938490038101909320845161081395919491909101925090506112e7565b5083600019167fd8c9334b1a9c2f9da342a0a2b32629c1a229b6445dad78947f674b44444a75508485604051808060200180602001838103835285818151815260200191508051906020019080838360005b8381101561087d578181015183820152602001610865565b50505050905090810190601f1680156108aa5780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b838110156108dd5781810151838201526020016108c5565b50505050905090810190601f16801561090a5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a250505050565b60008281526001602081905260409091206060905b838311610a1e578284161580159061096d5750600083815260068201602052604081205460026000196101006001841615020190911604115b15610a1357600083815260068201602090815260409182902080548351601f600260001961010060018616150201909316929092049182018490048402810184019094528084529091830182828015610a075780601f106109dc57610100808354040283529160200191610a07565b820191906000526020600020905b8154815290600101906020018083116109ea57829003601f168201915b50505050509150610a23565b600290920291610934565b600092505b509250929050565b600080546040805160e060020a6302571be302815260048101879052905186933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b158015610a7e57600080fd5b505af1158015610a92573d6000803e3d6000fd5b505050506040513d6020811015610aa857600080fd5b5051600160a060020a031614610abd57600080fd5b604080518082018252848152602080820185815260008881526001835284902092516003840155516004909201919091558151858152908101849052815186927f1d6f5e03d3f63eb58751986629a5439baee5079ff04f345becb66e23eb154e46928290030190a250505050565b6000908152600160208190526040909120015490565b600090815260016020526040902054600160a060020a031690565b600082815260016020908152604091829020915183516060936005019285929182918401908083835b60208310610ba45780518252601f199092019160209182019101610b85565b518151600019602094850361010090810a820192831692199390931691909117909252949092019687526040805197889003820188208054601f6002600183161590980290950116959095049283018290048202880182019052818752929450925050830182828015610c585780601f10610c2d57610100808354040283529160200191610c58565b820191906000526020600020905b815481529060010190602001808311610c3b57829003601f168201915b5050505050905092915050565b600080546040805160e060020a6302571be302815260048101879052905186933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b158015610cb857600080fd5b505af1158015610ccc573d6000803e3d6000fd5b505050506040513d6020811015610ce257600080fd5b5051600160a060020a031614610cf757600080fd5b6000198301831615610d0857600080fd5b600084815260016020908152604080832086845260060182529091208351610d32928501906112e7565b50604051839085907faa121bbeef5f32f5961a2a28966e769023910fc9479059ee3495d4c1a696efe390600090a350505050565b6000818152600160208181526040928390206002908101805485516000199582161561010002959095011691909104601f81018390048302840183019094528383526060939091830182828015610dfe5780601f10610dd357610100808354040283529160200191610dfe565b820191906000526020600020905b815481529060010190602001808311610de157829003601f168201915b50505050509050919050565b600080546040805160e060020a6302571be302815260048101869052905185933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b158015610e5d57600080fd5b505af1158015610e71573d6000803e3d6000fd5b505050506040513d6020811015610e8757600080fd5b5051600160a060020a031614610e9c57600080fd5b60008381526001602090815260409091208351610ec1926002909201918501906112e7565b50604080516020808252845181830152845186937fb7d29e911041e8d9b843369e890bcb72c9388692ba48b65ac54e7214c4c348f79387939092839283019185019080838360005b83811015610f21578181015183820152602001610f09565b50505050905090810190601f168015610f4e5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505050565b600080546040805160e060020a6302571be302815260048101869052905185933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b158015610fb357600080fd5b505af1158015610fc7573d6000803e3d6000fd5b505050506040513d6020811015610fdd57600080fd5b5051600160a060020a031614610ff257600080fd5b60008381526001602090815260409091208351611017926007909201918501906112e7565b50604080516020808252845181830152845186937fc0b0fc07269fc2749adada3221c095a1d2187b2d075b51c915857b520f3a502193879390928392830191850190808383600083811015610f21578181015183820152602001610f09565b600080546040805160e060020a6302571be302815260048101869052905185933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b1580156110c957600080fd5b505af11580156110dd573d6000803e3d6000fd5b505050506040513d60208110156110f357600080fd5b5051600160a060020a03161461110857600080fd5b6000838152600160208181526040928390209091018490558151848152915185927f0424b6fe0d9c3bdbece0e7879dc241bb0c22e900be8b6c168b4ee08bd9bf83bc92908290030190a2505050565b600090815260016020526040902060038101546004909101549091565b600080546040805160e060020a6302571be302815260048101869052905185933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b1580156111c757600080fd5b505af11580156111db573d6000803e3d6000fd5b505050506040513d60208110156111f157600080fd5b5051600160a060020a03161461120657600080fd5b600083815260016020908152604091829020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386169081179091558251908152915185927f52d7d861f09ab3d26239d492e8968629f95e9e318cf0b73bfddc441522a15fd292908290030190a2505050565b60008181526001602081815260409283902060070180548451600260001995831615610100029590950190911693909304601f81018390048302840183019094528383526060939091830182828015610dfe5780601f10610dd357610100808354040283529160200191610dfe565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061132857805160ff1916838001178555611355565b82800160010185558215611355579182015b8281111561135557825182559160200191906001019061133a565b50611361929150611365565b5090565b61137f91905b80821115611361576000815560010161136b565b905600a165627a7a72305820bf76237672851602565e309e20eddff44fc668000bb45495e385fdd9e24f4e310029","bin-runtime":"6080604052600436106100da5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166301ffc9a781146100df57806310f13a8c146101155780632203ab56146101b357806329cd62ea1461024d5780632dff69411461026b5780633b3b57de1461029557806359d1d43c146102c9578063623195b01461039c578063691f3431146103fc5780637737221314610414578063aa4cb54714610472578063c3d014d6146104d0578063c8690233146104eb578063d5fa2b001461051c578063e89401a114610540575b600080fd5b3480156100eb57600080fd5b50610101600160e060020a031960043516610558565b604080519115158252519081900360200190f35b34801561012157600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526101b195833595369560449491939091019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437509497506106f99650505050505050565b005b3480156101bf57600080fd5b506101ce60043560243561091f565b6040518083815260200180602001828103825283818151815260200191508051906020019080838360005b838110156102115781810151838201526020016101f9565b50505050905090810190601f16801561023e5780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b34801561025957600080fd5b506101b1600435602435604435610a2b565b34801561027757600080fd5b50610283600435610b2b565b60408051918252519081900360200190f35b3480156102a157600080fd5b506102ad600435610b41565b60408051600160a060020a039092168252519081900360200190f35b3480156102d557600080fd5b5060408051602060046024803582810135601f8101859004850286018501909652858552610327958335953695604494919390910191908190840183828082843750949750610b5c9650505050505050565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610361578181015183820152602001610349565b50505050905090810190601f16801561038e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103a857600080fd5b50604080516020600460443581810135601f81018490048402850184019095528484526101b1948235946024803595369594606494920191908190840183828082843750949750610c659650505050505050565b34801561040857600080fd5b50610327600435610d66565b34801561042057600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526101b1958335953695604494919390910191908190840183828082843750949750610e0a9650505050505050565b34801561047e57600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526101b1958335953695604494919390910191908190840183828082843750949750610f609650505050505050565b3480156104dc57600080fd5b506101b1600435602435611076565b3480156104f757600080fd5b50610503600435611157565b6040805192835260208301919091528051918290030190f35b34801561052857600080fd5b506101b1600435600160a060020a0360243516611174565b34801561054c57600080fd5b50610327600435611278565b6000600160e060020a031982167f3b3b57de0000000000000000000000000000000000000000000000000000000014806105bb5750600160e060020a031982167fd8389dc500000000000000000000000000000000000000000000000000000000145b806105ef5750600160e060020a031982167f691f343100000000000000000000000000000000000000000000000000000000145b806106235750600160e060020a031982167f2203ab5600000000000000000000000000000000000000000000000000000000145b806106575750600160e060020a031982167fc869023300000000000000000000000000000000000000000000000000000000145b8061068b5750600160e060020a031982167f59d1d43c00000000000000000000000000000000000000000000000000000000145b806106bf5750600160e060020a031982167fe89401a100000000000000000000000000000000000000000000000000000000145b806106f35750600160e060020a031982167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b600080546040805160e060020a6302571be302815260048101879052905186933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b15801561074c57600080fd5b505af1158015610760573d6000803e3d6000fd5b505050506040513d602081101561077657600080fd5b5051600160a060020a03161461078b57600080fd5b6000848152600160209081526040918290209151855185936005019287929182918401908083835b602083106107d25780518252601f1990920191602091820191016107b3565b51815160209384036101000a6000190180199092169116179052920194855250604051938490038101909320845161081395919491909101925090506112e7565b5083600019167fd8c9334b1a9c2f9da342a0a2b32629c1a229b6445dad78947f674b44444a75508485604051808060200180602001838103835285818151815260200191508051906020019080838360005b8381101561087d578181015183820152602001610865565b50505050905090810190601f1680156108aa5780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b838110156108dd5781810151838201526020016108c5565b50505050905090810190601f16801561090a5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a250505050565b60008281526001602081905260409091206060905b838311610a1e578284161580159061096d5750600083815260068201602052604081205460026000196101006001841615020190911604115b15610a1357600083815260068201602090815260409182902080548351601f600260001961010060018616150201909316929092049182018490048402810184019094528084529091830182828015610a075780601f106109dc57610100808354040283529160200191610a07565b820191906000526020600020905b8154815290600101906020018083116109ea57829003601f168201915b50505050509150610a23565b600290920291610934565b600092505b509250929050565b600080546040805160e060020a6302571be302815260048101879052905186933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b158015610a7e57600080fd5b505af1158015610a92573d6000803e3d6000fd5b505050506040513d6020811015610aa857600080fd5b5051600160a060020a031614610abd57600080fd5b604080518082018252848152602080820185815260008881526001835284902092516003840155516004909201919091558151858152908101849052815186927f1d6f5e03d3f63eb58751986629a5439baee5079ff04f345becb66e23eb154e46928290030190a250505050565b6000908152600160208190526040909120015490565b600090815260016020526040902054600160a060020a031690565b600082815260016020908152604091829020915183516060936005019285929182918401908083835b60208310610ba45780518252601f199092019160209182019101610b85565b518151600019602094850361010090810a820192831692199390931691909117909252949092019687526040805197889003820188208054601f6002600183161590980290950116959095049283018290048202880182019052818752929450925050830182828015610c585780601f10610c2d57610100808354040283529160200191610c58565b820191906000526020600020905b815481529060010190602001808311610c3b57829003601f168201915b5050505050905092915050565b600080546040805160e060020a6302571be302815260048101879052905186933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b158015610cb857600080fd5b505af1158015610ccc573d6000803e3d6000fd5b505050506040513d6020811015610ce257600080fd5b5051600160a060020a031614610cf757600080fd5b6000198301831615610d0857600080fd5b600084815260016020908152604080832086845260060182529091208351610d32928501906112e7565b50604051839085907faa121bbeef5f32f5961a2a28966e769023910fc9479059ee3495d4c1a696efe390600090a350505050565b6000818152600160208181526040928390206002908101805485516000199582161561010002959095011691909104601f81018390048302840183019094528383526060939091830182828015610dfe5780601f10610dd357610100808354040283529160200191610dfe565b820191906000526020600020905b815481529060010190602001808311610de157829003601f168201915b50505050509050919050565b600080546040805160e060020a6302571be302815260048101869052905185933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b158015610e5d57600080fd5b505af1158015610e71573d6000803e3d6000fd5b505050506040513d6020811015610e8757600080fd5b5051600160a060020a031614610e9c57600080fd5b60008381526001602090815260409091208351610ec1926002909201918501906112e7565b50604080516020808252845181830152845186937fb7d29e911041e8d9b843369e890bcb72c9388692ba48b65ac54e7214c4c348f79387939092839283019185019080838360005b83811015610f21578181015183820152602001610f09565b50505050905090810190601f168015610f4e5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505050565b600080546040805160e060020a6302571be302815260048101869052905185933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b158015610fb357600080fd5b505af1158015610fc7573d6000803e3d6000fd5b505050506040513d6020811015610fdd57600080fd5b5051600160a060020a031614610ff257600080fd5b60008381526001602090815260409091208351611017926007909201918501906112e7565b50604080516020808252845181830152845186937fc0b0fc07269fc2749adada3221c095a1d2187b2d075b51c915857b520f3a502193879390928392830191850190808383600083811015610f21578181015183820152602001610f09565b600080546040805160e060020a6302571be302815260048101869052905185933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b1580156110c957600080fd5b505af11580156110dd573d6000803e3d6000fd5b505050506040513d60208110156110f357600080fd5b5051600160a060020a03161461110857600080fd5b6000838152600160208181526040928390209091018490558151848152915185927f0424b6fe0d9c3bdbece0e7879dc241bb0c22e900be8b6c168b4ee08bd9bf83bc92908290030190a2505050565b600090815260016020526040902060038101546004909101549091565b600080546040805160e060020a6302571be302815260048101869052905185933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b1580156111c757600080fd5b505af11580156111db573d6000803e3d6000fd5b505050506040513d60208110156111f157600080fd5b5051600160a060020a03161461120657600080fd5b600083815260016020908152604091829020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386169081179091558251908152915185927f52d7d861f09ab3d26239d492e8968629f95e9e318cf0b73bfddc441522a15fd292908290030190a2505050565b60008181526001602081815260409283902060070180548451600260001995831615610100029590950190911693909304601f81018390048302840183019094528383526060939091830182828015610dfe5780601f10610dd357610100808354040283529160200191610dfe565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061132857805160ff1916838001178555611355565b82800160010185558215611355579182015b8281111561135557825182559160200191906001019061133a565b50611361929150611365565b5090565b61137f91905b80821115611361576000815560010161136b565b905600a165627a7a72305820bf76237672851602565e309e20eddff44fc668000bb45495e385fdd9e24f4e310029","srcmap":"1553:8134:4:-;;;3005:62;8:9:-1;5:2;;;30:1;27;20:12;5:2;3005:62:4;;;;;;;;;;;;;3047:3;:13;;-1:-1:-1;;;;;3047:13:4;;;-1:-1:-1;;;;;;3047:13:4;;;;;;;;;1553:8134;;;;;;","srcmap-runtime":"1553:8134:4:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9238:447;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9238:447:4;-1:-1:-1;;;;;;9238:447:4;;;;;;;;;;;;;;;;;;;;;;;6084:171;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6084:171:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6084:171:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6084:171:4;;;;-1:-1:-1;6084:171:4;-1:-1:-1;6084:171:4;;-1:-1:-1;6084:171:4;;;;;;;;-1:-1:-1;6084:171:4;;-1:-1:-1;6084:171:4;;-1:-1:-1;;;;;;;6084:171:4;;;7296:451;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7296:451:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;7296:451:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5631:174;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5631:174:4;;;;;;;;;8351:106;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8351:106:4;;;;;;;;;;;;;;;;;;;;;8887:100;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8887:100:4;;;;;;;;;-1:-1:-1;;;;;8887:100:4;;;;;;;;;;;;;;6472:116;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6472:116:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6472:116:4;;-1:-1:-1;6472:116:4;;-1:-1:-1;;;;;;;6472:116:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;6472:116:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5057:297;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5057:297:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5057:297:4;;-1:-1:-1;5057:297:4;;-1:-1:-1;;;;;;;5057:297:4;7947:99;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7947:99:4;;;;;4607:148;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4607:148:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4607:148:4;;-1:-1:-1;4607:148:4;;-1:-1:-1;;;;;;;4607:148:4;4200:162;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4200:162:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4200:162:4;;-1:-1:-1;4200:162:4;;-1:-1:-1;;;;;;;4200:162:4;3813:158;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3813:158:4;;;;;;;6830:145;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6830:145:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;3293:149;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3293:149:4;;;-1:-1:-1;;;;;3293:149:4;;;;;8620:108;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8620:108:4;;;;;9238:447;9306:4;-1:-1:-1;;;;;;9329:32:4;;9344:17;9329:32;;:79;;-1:-1:-1;;;;;;;9373:35:4;;9388:20;9373:35;9329:79;:123;;;-1:-1:-1;;;;;;;9420:32:4;;9435:17;9420:32;9329:123;:166;;;-1:-1:-1;;;;;;;9464:31:4;;9479:16;9464:31;9329:166;:212;;;-1:-1:-1;;;;;;;9507:34:4;;9522:19;9507:34;9329:212;:256;;;-1:-1:-1;;;;;;;9553:32:4;;9568:17;9553:32;9329:256;:305;;;-1:-1:-1;;;;;;;9597:37:4;;9612:22;9597:37;9329:305;:349;;;-1:-1:-1;;;;;;;9646:32:4;;9661:17;9646:32;9329:349;9322:356;9238:447;-1:-1:-1;;9238:447:4:o;6084:171::-;2865:3;;;:15;;;-1:-1:-1;;;;;2865:15:4;;;;;;;;;;6159:4;;2884:10;;-1:-1:-1;;;;;2865:3:4;;:9;;:15;;;;;;;;;;;;;;;;:3;:15;;;5:2:-1;;;;30:1;27;20:12;5:2;2865:15:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2865:15:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2865:15:4;-1:-1:-1;;;;;2865:29:4;;2857:38;;;;;;6175:13;;;;:7;:13;;;;;;;;;:23;;;;6201:5;;6175:18;;;6194:3;;6175:23;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;6175:23:4;;;;;-1:-1:-1;6175:23:4;;;;;;;;;;;:31;;;;:23;;:31;;;;;-1:-1:-1;6175:31:4;-1:-1:-1;6175:31:4;:::i;:::-;;6233:4;6221:27;;;;6239:3;6244;6221:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;6221:27:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6221:27:4;;;;;;;;;;;;;;;;;;;;;;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;6221:27:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6084:171;;;;:::o;7296:451::-;7366:19;7433:13;;;:7;:13;;;;;;;;7387:10;;7456:260;7478:27;;;7456:260;;7545:26;;;7544:33;;;;:72;;-1:-1:-1;7615:1:4;7581:24;;;:11;;;:24;;;;;:31;;-1:-1:-1;;7581:31:4;;;;;;;;;;;:35;7544:72;7540:166;;;7643:24;;;;:11;;;:24;;;;;;;;;7636:31;;;;;;-1:-1:-1;;7636:31:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7643:24;;7636:31;;7643:24;7636:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7685:7;;7540:166;7507:17;;;;;7456:260;;;7739:1;7725:15;;7296:451;;;;;;;:::o;5631:174::-;2865:3;;;:15;;;-1:-1:-1;;;;;2865:15:4;;;;;;;;;;5704:4;;2884:10;;-1:-1:-1;;;;;2865:3:4;;:9;;:15;;;;;;;;;;;;;;;;:3;:15;;;5:2:-1;;;;30:1;27;20:12;5:2;2865:15:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2865:15:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2865:15:4;-1:-1:-1;;;;;2865:29:4;;2857:38;;;;;;5743:15;;;;;;;;;;;;;;;;;;-1:-1:-1;5720:13:4;;;:7;:13;;;;;:38;;:20;;;:38;;;;;;;;;;5773:25;;;;;;;;;;;;;5728:4;;5773:25;;;;;;;;5631:174;;;;:::o;8351:106::-;8403:7;8429:13;;;:7;:13;;;;;;;;:21;;;8351:106::o;8887:100::-;8936:7;8962:13;;;:7;:13;;;;;:18;-1:-1:-1;;;;;8962:18:4;;8887:100::o;6472:116::-;6558:13;;;;:7;:13;;;;;;;;;:23;;;;6533:6;;6558:18;;;6577:3;;6558:23;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;-1:-1;;263:2;259:12;;;254:3;250:22;;;246:30;;340:21;;;311:9;;295:26;;;;377:20;;;;365:33;;;6558:23:4;;;;;;;;;;;;;;;;;;6551:30;;;;274:1:-1;6551:30:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6558:23;;-1:-1:-1;6551:30:4;-1:-1:-1;;6551:30:4;;6558:23;6551:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6472:116;;;;:::o;5057:297::-;2865:3;;;:15;;;-1:-1:-1;;;;;2865:15:4;;;;;;;;;;5138:4;;2884:10;;-1:-1:-1;;;;;2865:3:4;;:9;;:15;;;;;;;;;;;;;;;;:3;:15;;;5:2:-1;;;;30:1;27;20:12;5:2;2865:15:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2865:15:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2865:15:4;-1:-1:-1;;;;;2865:29:4;;2857:38;;;;;;-1:-1:-1;;5209:15:4;;5208:31;;5207:38;5199:47;;;;;;5265:13;;;;:7;:13;;;;;;;;:31;;;:18;;:31;;;;;:38;;;;;;;;:::i;:::-;-1:-1:-1;5318:29:4;;5335:11;;5329:4;;5318:29;;;;;5057:297;;;;:::o;7947:99::-;8021:13;;;;:7;:13;;;;;;;;;:18;;;;8014:25;;;;-1:-1:-1;;8014:25:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7996:6;;8021:18;;8014:25;;8021:18;8014:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7947:99;;;:::o;4607:148::-;2865:3;;;:15;;;-1:-1:-1;;;;;2865:15:4;;;;;;;;;;4669:4;;2884:10;;-1:-1:-1;;;;;2865:3:4;;:9;;:15;;;;;;;;;;;;;;;;:3;:15;;;5:2:-1;;;;30:1;27;20:12;5:2;2865:15:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2865:15:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2865:15:4;-1:-1:-1;;;;;2865:29:4;;2857:38;;;;;;4685:13;;;;:7;:13;;;;;;;;:25;;;;:18;;;;;:25;;;;:::i;:::-;-1:-1:-1;4725:23:4;;;;;;;;;;;;;;;4737:4;;4725:23;;4743:4;;4725:23;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;4725:23:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4607:148;;;:::o;4200:162::-;2865:3;;;:15;;;-1:-1:-1;;;;;2865:15:4;;;;;;;;;;4266:4;;2884:10;;-1:-1:-1;;;;;2865:3:4;;:9;;:15;;;;;;;;;;;;;;;;:3;:15;;;5:2:-1;;;;30:1;27;20:12;5:2;2865:15:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2865:15:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2865:15:4;-1:-1:-1;;;;;2865:29:4;;2857:38;;;;;;4282:13;;;;:7;:13;;;;;;;;:30;;;;:23;;;;;:30;;;;:::i;:::-;-1:-1:-1;4327:28:4;;;;;;;;;;;;;;;4344:4;;4327:28;;4350:4;;4327:28;;;;;;;;;;;;;;33:3:-1;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;3813:158:4;2865:3;;;:15;;;-1:-1:-1;;;;;2865:15:4;;;;;;;;;;3879:4;;2884:10;;-1:-1:-1;;;;;2865:3:4;;:9;;:15;;;;;;;;;;;;;;;;:3;:15;;;5:2:-1;;;;30:1;27;20:12;5:2;2865:15:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2865:15:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2865:15:4;-1:-1:-1;;;;;2865:29:4;;2857:38;;;;;;3895:13;;;;:7;:13;;;;;;;;;:21;;;:28;;;3938:26;;;;;;;3903:4;;3938:26;;;;;;;;;3813:158;;;:::o;6830:145::-;6881:9;6921:13;;;:7;:13;;;;;:20;;;:22;6945;;;;;6921;;6830:145::o;3293:149::-;2865:3;;;:15;;;-1:-1:-1;;;;;2865:15:4;;;;;;;;;;3356:4;;2884:10;;-1:-1:-1;;;;;2865:3:4;;:9;;:15;;;;;;;;;;;;;;;;:3;:15;;;5:2:-1;;;;30:1;27;20:12;5:2;2865:15:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2865:15:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2865:15:4;-1:-1:-1;;;;;2865:29:4;;2857:38;;;;;;3372:13;;;;:7;:13;;;;;;;;;:25;;-1:-1:-1;;3372:25:4;-1:-1:-1;;;;;3372:25:4;;;;;;;;3412:23;;;;;;;3372:13;;3412:23;;;;;;;;;3293:149;;;:::o;8620:108::-;8698:13;;;;:7;:13;;;;;;;;;:23;;8691:30;;;;;-1:-1:-1;;8691:30:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8674:5;;8698:23;;8691:30;;8698:23;8691:30;;;;;;;;;;;;;;;;;;;;;;;;1553:8134;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1553:8134:4;;;-1:-1:-1;1553:8134:4;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o"},"externals/strings.sol:strings":{"bin":"604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a7230582024a2b0f9f886001e5fd3db71aa4fb1e8f4254fc3db05e9d54265f7c101091af20029","bin-runtime":"73000000000000000000000000000000000000000030146080604052600080fd00a165627a7a7230582024a2b0f9f886001e5fd3db71aa4fb1e8f4254fc3db05e9d54265f7c101091af20029","srcmap":"2600:23355:5:-;;132:2:-1;166:7;155:9;146:7;137:37;252:7;246:14;243:1;238:23;232:4;229:33;270:1;265:20;;;;222:63;;265:20;274:9;222:63;;298:9;295:1;288:20;328:4;319:7;311:22;352:7;343;336:24","srcmap-runtime":"2600:23355:5:-;;;;;;;;"},"internals/claimable.sol:Claimable":{"bin":"6080604052348015600f57600080fd5b50603580601d6000396000f3006080604052600080fd00a165627a7a72305820395b628221b28dc04b0498f55415adf15a37b484bd593b1cfd29b4eab19dc5300029","bin-runtime":"6080604052600080fd00a165627a7a72305820395b628221b28dc04b0498f55415adf15a37b484bd593b1cfd29b4eab19dc5300029","srcmap":"917:797:6:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;917:797:6;;;;;;;","srcmap-runtime":"917:797:6:-;;;;;"},"internals/controllable.sol:Controllable":{"bin":"","bin-runtime":"","srcmap":"","srcmap-runtime":""},"internals/controller.sol:Controller":{"bin":"608060405234801561001057600080fd5b5060405160408061128b83398101604052805160209091015160008054600160a060020a031916600160a060020a0384161760a060020a60ff02191674010000000000000000000000000000000000000000831515810291909117918290558391839160ff91041615156100bb5760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b6040805160008152600160a060020a038416602082015281517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea5929181900390910190a150505050611179806101126000396000f3006080604052600436106100c45763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166315b9a8b881146100c95780631785f53c146100f05780632121dc751461011357806324d7806c1461013c5780632b7832b31461015d5780637048027514610172578063715018a6146101935780638da5cb5b146101a8578063996cba68146101d9578063a7fc7a0714610203578063b242e53414610224578063b429afeb1461024a578063f6a74ed71461026b575b600080fd5b3480156100d557600080fd5b506100de61028c565b60408051918252519081900360200190f35b3480156100fc57600080fd5b50610111600160a060020a0360043516610292565b005b34801561011f57600080fd5b506101286102eb565b604080519115158252519081900360200190f35b34801561014857600080fd5b50610128600160a060020a036004351661030c565b34801561016957600080fd5b506100de61032a565b34801561017e57600080fd5b50610111600160a060020a0360043516610330565b34801561019f57600080fd5b50610111610386565b3480156101b457600080fd5b506101bd6104a1565b60408051600160a060020a039092168252519081900360200190f35b3480156101e557600080fd5b50610111600160a060020a03600435811690602435166044356104b0565b34801561020f57600080fd5b50610111600160a060020a036004351661050d565b34801561023057600080fd5b50610111600160a060020a03600435166024351515610575565b34801561025657600080fd5b50610128600160a060020a03600435166107b4565b34801561027757600080fd5b50610111600160a060020a03600435166107d2565b60045490565b61029b3361083a565b15156102df576040805160e560020a62461bcd028152602060048201526016602482015260008051602061112e833981519152604482015290519081900360640190fd5b6102e88161084e565b50565b60005474010000000000000000000000000000000000000000900460ff1690565b600160a060020a031660009081526001602052604090205460ff1690565b60025490565b6103393361083a565b151561037d576040805160e560020a62461bcd028152602060048201526016602482015260008051602061112e833981519152604482015290519081900360640190fd5b6102e881610929565b61038f3361083a565b15156103d3576040805160e560020a62461bcd028152602060048201526016602482015260008051602061112e833981519152604482015290519081900360640190fd5b60005474010000000000000000000000000000000000000000900460ff161515610447576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916815560408051828152602081019290925280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1565b600054600160a060020a031690565b6104b93361083a565b15156104fd576040805160e560020a62461bcd028152602060048201526016602482015260008051602061112e833981519152604482015290519081900360640190fd5b610508838383610bca565b505050565b6105163361030c565b151561056c576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e2061646d696e00000000000000000000604482015290519081900360640190fd5b6102e881610d89565b61057e3361083a565b15156105c2576040805160e560020a62461bcd028152602060048201526016602482015260008051602061112e833981519152604482015290519081900360640190fd5b60005474010000000000000000000000000000000000000000900460ff161515610636576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b600160a060020a03821615156106bc576040805160e560020a62461bcd02815260206004820152602360248201527f6f776e65722063616e6e6f742062652073657420746f207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6000805474ff00000000000000000000000000000000000000001916740100000000000000000000000000000000000000008315159081029190911790915561073c5760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b60005460408051600160a060020a039283168152918416602083015280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1506000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a031660009081526003602052604090205460ff1690565b6107db3361030c565b1515610831576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e2061646d696e00000000000000000000604482015290519081900360640190fd5b6102e88161102d565b600054600160a060020a0390811691161490565b600160a060020a03811660009081526001602052604090205460ff1615156108c0576040805160e560020a62461bcd02815260206004820181905260248201527f70726f7669646564206163636f756e74206973206e6f7420616e2061646d696e604482015290519081900360640190fd5b600160a060020a038116600081815260016020908152604091829020805460ff191690556002805460001901905581513381529081019290925280517f787a2e12f4a55b658b8f573c32432ee11a5e8b51677d1e1e937aaf6a0bb5776e9281900390910190a150565b600160a060020a03811660009081526001602052604090205460ff16156109bf576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320616c726561647920616e206160448201527f646d696e00000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a03811660009081526003602052604090205460ff1615610a56576040805160e560020a62461bcd02815260206004820152602860248201527f70726f7669646564206163636f756e7420697320616c7265616479206120636f60448201527f6e74726f6c6c6572000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b610a5f8161083a565b15610ada576040805160e560020a62461bcd02815260206004820152602560248201527f70726f7669646564206163636f756e7420697320616c7265616479207468652060448201527f6f776e6572000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0381161515610b5f576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260016020818152604092839020805460ff1916831790556002805490920190915581513381529081019290925280517fc58b647b8ba5a8cab2f11f32673636cc1061324240972ed05e8cc005b81a4b7a9281900390910190a150565b600160a060020a0382161515610c1657604051600160a060020a0384169082156108fc029083906000818181858888f19350505050158015610c10573d6000803e3d6000fd5b50610d3a565b81600160a060020a031663a9059cbb84836040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b158015610c9257600080fd5b505af1158015610ca6573d6000803e3d6000fd5b505050506040513d6020811015610cbc57600080fd5b50511515610d3a576040805160e560020a62461bcd02815260206004820152602560248201527f455243323020746f6b656e207472616e736665722077617320756e737563636560448201527f737366756c000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60408051600160a060020a0380861682528416602082015280820183905290517ff7a40077ff7a04c7e61f6f26fb13774259ddf1b6bce9ecf26a8276cdd39926839181900360600190a1505050565b600160a060020a03811660009081526001602052604090205460ff1615610e1f576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320616c726561647920616e206160448201527f646d696e00000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a03811660009081526003602052604090205460ff1615610eb6576040805160e560020a62461bcd02815260206004820152602860248201527f70726f7669646564206163636f756e7420697320616c7265616479206120636f60448201527f6e74726f6c6c6572000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b610ebf8161083a565b15610f3a576040805160e560020a62461bcd02815260206004820152602560248201527f70726f7669646564206163636f756e7420697320616c7265616479207468652060448201527f6f776e6572000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0381161515610fbf576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260036020908152604091829020805460ff1916600190811790915560048054909101905581513381529081019290925280517fb890d5abdcd5c2b61ce8bbc2cf6af9b6d7f7451830cbc85037cbdd182c86fe1d9281900390910190a150565b600160a060020a03811660009081526003602052604090205460ff1615156110c4576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e74206973206e6f74206120636f6e74726f60448201527f6c6c657200000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260036020908152604091829020805460ff191690556004805460001901905581513381529081019290925280517fb6a283aaede08e15ef55c74e3014e30eb0c0040d4b156cccb77391268ea373949281900390910190a150560073656e646572206973206e6f7420616e206f776e657200000000000000000000a165627a7a723058200e752e3a88decc3d8c5d0c377c032b4fe39f5eb66a5b9fe8ce60f184698d72480029","bin-runtime":"6080604052600436106100c45763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166315b9a8b881146100c95780631785f53c146100f05780632121dc751461011357806324d7806c1461013c5780632b7832b31461015d5780637048027514610172578063715018a6146101935780638da5cb5b146101a8578063996cba68146101d9578063a7fc7a0714610203578063b242e53414610224578063b429afeb1461024a578063f6a74ed71461026b575b600080fd5b3480156100d557600080fd5b506100de61028c565b60408051918252519081900360200190f35b3480156100fc57600080fd5b50610111600160a060020a0360043516610292565b005b34801561011f57600080fd5b506101286102eb565b604080519115158252519081900360200190f35b34801561014857600080fd5b50610128600160a060020a036004351661030c565b34801561016957600080fd5b506100de61032a565b34801561017e57600080fd5b50610111600160a060020a0360043516610330565b34801561019f57600080fd5b50610111610386565b3480156101b457600080fd5b506101bd6104a1565b60408051600160a060020a039092168252519081900360200190f35b3480156101e557600080fd5b50610111600160a060020a03600435811690602435166044356104b0565b34801561020f57600080fd5b50610111600160a060020a036004351661050d565b34801561023057600080fd5b50610111600160a060020a03600435166024351515610575565b34801561025657600080fd5b50610128600160a060020a03600435166107b4565b34801561027757600080fd5b50610111600160a060020a03600435166107d2565b60045490565b61029b3361083a565b15156102df576040805160e560020a62461bcd028152602060048201526016602482015260008051602061112e833981519152604482015290519081900360640190fd5b6102e88161084e565b50565b60005474010000000000000000000000000000000000000000900460ff1690565b600160a060020a031660009081526001602052604090205460ff1690565b60025490565b6103393361083a565b151561037d576040805160e560020a62461bcd028152602060048201526016602482015260008051602061112e833981519152604482015290519081900360640190fd5b6102e881610929565b61038f3361083a565b15156103d3576040805160e560020a62461bcd028152602060048201526016602482015260008051602061112e833981519152604482015290519081900360640190fd5b60005474010000000000000000000000000000000000000000900460ff161515610447576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916815560408051828152602081019290925280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1565b600054600160a060020a031690565b6104b93361083a565b15156104fd576040805160e560020a62461bcd028152602060048201526016602482015260008051602061112e833981519152604482015290519081900360640190fd5b610508838383610bca565b505050565b6105163361030c565b151561056c576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e2061646d696e00000000000000000000604482015290519081900360640190fd5b6102e881610d89565b61057e3361083a565b15156105c2576040805160e560020a62461bcd028152602060048201526016602482015260008051602061112e833981519152604482015290519081900360640190fd5b60005474010000000000000000000000000000000000000000900460ff161515610636576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b600160a060020a03821615156106bc576040805160e560020a62461bcd02815260206004820152602360248201527f6f776e65722063616e6e6f742062652073657420746f207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6000805474ff00000000000000000000000000000000000000001916740100000000000000000000000000000000000000008315159081029190911790915561073c5760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b60005460408051600160a060020a039283168152918416602083015280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1506000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a031660009081526003602052604090205460ff1690565b6107db3361030c565b1515610831576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e2061646d696e00000000000000000000604482015290519081900360640190fd5b6102e88161102d565b600054600160a060020a0390811691161490565b600160a060020a03811660009081526001602052604090205460ff1615156108c0576040805160e560020a62461bcd02815260206004820181905260248201527f70726f7669646564206163636f756e74206973206e6f7420616e2061646d696e604482015290519081900360640190fd5b600160a060020a038116600081815260016020908152604091829020805460ff191690556002805460001901905581513381529081019290925280517f787a2e12f4a55b658b8f573c32432ee11a5e8b51677d1e1e937aaf6a0bb5776e9281900390910190a150565b600160a060020a03811660009081526001602052604090205460ff16156109bf576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320616c726561647920616e206160448201527f646d696e00000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a03811660009081526003602052604090205460ff1615610a56576040805160e560020a62461bcd02815260206004820152602860248201527f70726f7669646564206163636f756e7420697320616c7265616479206120636f60448201527f6e74726f6c6c6572000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b610a5f8161083a565b15610ada576040805160e560020a62461bcd02815260206004820152602560248201527f70726f7669646564206163636f756e7420697320616c7265616479207468652060448201527f6f776e6572000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0381161515610b5f576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260016020818152604092839020805460ff1916831790556002805490920190915581513381529081019290925280517fc58b647b8ba5a8cab2f11f32673636cc1061324240972ed05e8cc005b81a4b7a9281900390910190a150565b600160a060020a0382161515610c1657604051600160a060020a0384169082156108fc029083906000818181858888f19350505050158015610c10573d6000803e3d6000fd5b50610d3a565b81600160a060020a031663a9059cbb84836040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b158015610c9257600080fd5b505af1158015610ca6573d6000803e3d6000fd5b505050506040513d6020811015610cbc57600080fd5b50511515610d3a576040805160e560020a62461bcd02815260206004820152602560248201527f455243323020746f6b656e207472616e736665722077617320756e737563636560448201527f737366756c000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60408051600160a060020a0380861682528416602082015280820183905290517ff7a40077ff7a04c7e61f6f26fb13774259ddf1b6bce9ecf26a8276cdd39926839181900360600190a1505050565b600160a060020a03811660009081526001602052604090205460ff1615610e1f576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320616c726561647920616e206160448201527f646d696e00000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a03811660009081526003602052604090205460ff1615610eb6576040805160e560020a62461bcd02815260206004820152602860248201527f70726f7669646564206163636f756e7420697320616c7265616479206120636f60448201527f6e74726f6c6c6572000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b610ebf8161083a565b15610f3a576040805160e560020a62461bcd02815260206004820152602560248201527f70726f7669646564206163636f756e7420697320616c7265616479207468652060448201527f6f776e6572000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0381161515610fbf576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260036020908152604091829020805460ff1916600190811790915560048054909101905581513381529081019290925280517fb890d5abdcd5c2b61ce8bbc2cf6af9b6d7f7451830cbc85037cbdd182c86fe1d9281900390910190a150565b600160a060020a03811660009081526003602052604090205460ff1615156110c4576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e74206973206e6f74206120636f6e74726f60448201527f6c6c657200000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260036020908152604091829020805460ff191690556004805460001901905581513381529081019290925280517fb6a283aaede08e15ef55c74e3014e30eb0c0040d4b156cccb77391268ea373949281900390910190a150560073656e646572206973206e6f7420616e206f776e657200000000000000000000a165627a7a723058200e752e3a88decc3d8c5d0c377c032b4fe39f5eb66a5b9fe8ce60f184698d72480029","srcmap":"1361:4838:8:-;;;2057:107;8:9:-1;5:2;;;30:1;27;20:12;5:2;2057:107:8;;;;;;;;;;;;;;;;;;;1527:6:10;:18;;-1:-1:-1;;;;;;1527:18:10;-1:-1:-1;;;;;1527:18:10;;;-1:-1:-1;;;;;;1555:32:10;;;;;;;;;;;;;;;2057:107:8;;;;1555:32:10;1671:15;;;1670:16;1666:78;;;1707:26;;;-1:-1:-1;;;;;1707:26:10;;;;;;;;;;;;;;;1666:78;1758:43;;;1787:1;1758:43;;-1:-1:-1;;;;;1758:43:10;;;;;;;;;;;;;;;;;;;1456:352;;2057:107:8;;1361:4838;;;;;;","srcmap-runtime":"1361:4838:8:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3671:96;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3671:96:8;;;;;;;;;;;;;;;;;;;;2851:97;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2851:97:8;-1:-1:-1;;;;;2851:97:8;;;;;;;3149:94:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3149:94:10;;;;;;;;;;;;;;;;;;;;;;3871:104:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3871:104:8;-1:-1:-1;;;;;3871:104:8;;;;;3000:86;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3000:86:8;;;;2631:91;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2631:91:8;-1:-1:-1;;;;;2631:91:8;;;;;3519:306:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3519:306:10;;;;3908:77;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3908:77:10;;;;;;;;-1:-1:-1;;;;;3908:77:10;;;;;;;;;;;;;;6075:122:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6075:122:8;-1:-1:-1;;;;;6075:122:8;;;;;;;;;;;;3224:101;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3224:101:8;-1:-1:-1;;;;;3224:101:8;;;;;2231:801:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2231:801:10;-1:-1:-1;;;;;2231:801:10;;;;;;;;;4087:114:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4087:114:8;-1:-1:-1;;;;;4087:114:8;;;;;3469:107;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3469:107:8;-1:-1:-1;;;;;3469:107:8;;;;;3671:96;3744:16;;3671:96;:::o;2851:97::-;1924:20:10;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1916:55:10;;;;;;;;;;;;;;;2919:22:8;2932:8;2919:12;:22::i;:::-;2851:97;:::o;3149:94:10:-;3198:4;3221:15;;;;;;;3149:94::o;3871:104:8:-;-1:-1:-1;;;;;3950:18:8;3927:4;3950:18;;;:8;:18;;;;;;;;;3871:104::o;3000:86::-;3068:11;;3000:86;:::o;2631:91::-;1924:20:10;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1916:55:10;;;;;;;;;;;;;;;2696:19:8;2706:8;2696:9;:19::i;3519:306:10:-;1924:20;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1916:55:10;;;;;;;;;;;;;;;3640:15;;;;;;;3632:57;;;;;;;-1:-1:-1;;;;;3632:57:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;3760:1;3743:19;;-1:-1:-1;;3743:19:10;;;3778:40;;;;;;;;;;;;;;;;;;;;;;;;;3519:306::o;3908:77::-;3946:7;3972:6;-1:-1:-1;;;;;3972:6:10;3908:77;:::o;6075:122:8:-;1924:20:10;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1916:55:10;;;;;;;;;;;;;;;6162:28:8;6169:3;6174:6;6182:7;6162:6;:28::i;:::-;6075:122;;;:::o;3224:101::-;2263:19;2271:10;2263:7;:19::i;:::-;2255:54;;;;;;;-1:-1:-1;;;;;2255:54:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;3294:24;3309:8;3294:14;:24::i;2231:801:10:-;1924:20;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1916:55:10;;;;;;;;;;;;;;;2388:15;;;;;;;2380:57;;;;;;;-1:-1:-1;;;;;2380:57:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2518:22:10;;;;2510:70;;;;;-1:-1:-1;;;;;2510:70:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2665:15;:31;;-1:-1:-1;;2665:31:10;;;;;;;;;;;;;;;2775:75;;2814:25;;;-1:-1:-1;;;;;2814:25:10;;;;;;;;;;;;;;;2775:75;2931:6;;2910:38;;;-1:-1:-1;;;;;2931:6:10;;;2910:38;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3008:6:10;:17;;-1:-1:-1;;3008:17:10;-1:-1:-1;;;;;3008:17:10;;;;;;;;;;2231:801::o;4087:114:8:-;-1:-1:-1;;;;;4171:23:8;4148:4;4171:23;;;:13;:23;;;;;;;;;4087:114::o;3469:107::-;2263:19;2271:10;2263:7;:19::i;:::-;2255:54;;;;;;;-1:-1:-1;;;;;2255:54:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;3542:27;3560:8;3542:17;:27::i;4091:107:10:-;4150:4;4185:6;-1:-1:-1;;;;;4185:6:10;;;4173:18;;;;4091:107::o;4828:236:8:-;-1:-1:-1;;;;;4894:18:8;;;;;;:8;:18;;;;;;;;4886:63;;;;;;;-1:-1:-1;;;;;4886:63:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4959:18:8;;4980:5;4959:18;;;:8;:18;;;;;;;;;:26;;-1:-1:-1;;4959:26:8;;;4995:11;:13;;-1:-1:-1;;4995:13:8;;;5023:34;;5036:10;5023:34;;;;;;;;;;;;;;;;;;;;;4828:236;:::o;4269:482::-;-1:-1:-1;;;;;4333:18:8;;;;;;:8;:18;;;;;;;;4332:19;4324:68;;;;;-1:-1:-1;;;;;4324:68:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4411:23:8;;;;;;:13;:23;;;;;;;;4410:24;4402:77;;;;;-1:-1:-1;;;;;4402:77:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4498:18;4507:8;4498;:18::i;:::-;4497:19;4489:69;;;;;-1:-1:-1;;;;;4489:69:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4576:22:8;;;;4568:71;;;;;-1:-1:-1;;;;;4568:71:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4649:18:8;;;;;;4670:4;4649:18;;;;;;;;;:25;;-1:-1:-1;;4649:25:8;;;;;4684:11;:13;;;;;;;;4712:32;;4723:10;4712:32;;;;;;;;;;;;;;;;;;;;;4269:482;:::o;1350:362:6:-;-1:-1:-1;;;;;1476:20:6;;;1472:189;;;1512:21;;-1:-1:-1;;;;;1512:12:6;;;:21;;;;;1525:7;;1512:21;;;;1525:7;1512:12;:21;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1512:21:6;1472:189;;;1578:6;-1:-1:-1;;;;;1572:22:6;;1595:3;1600:7;1572:36;;;;;;;;;;;;;-1:-1:-1;;;;;1572:36:6;-1:-1:-1;;;;;1572:36:6;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1572:36:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1572:36:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1572:36:6;1564:86;;;;;;;-1:-1:-1;;;;;1564:86:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1676:29;;;-1:-1:-1;;;;;1676:29:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;1350:362;;;:::o;5137:502:8:-;-1:-1:-1;;;;;5206:18:8;;;;;;:8;:18;;;;;;;;5205:19;5197:68;;;;;-1:-1:-1;;;;;5197:68:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5284:23:8;;;;;;:13;:23;;;;;;;;5283:24;5275:77;;;;;-1:-1:-1;;;;;5275:77:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5371:18;5380:8;5371;:18::i;:::-;5370:19;5362:69;;;;;-1:-1:-1;;;;;5362:69:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5449:22:8;;;;5441:71;;;;;-1:-1:-1;;;;;5441:71:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5522:23:8;;;;;;:13;:23;;;;;;;;;:30;;-1:-1:-1;;5522:30:8;5548:4;5522:30;;;;;;5562:16;:18;;;;;;;5595:37;;5611:10;5595:37;;;;;;;;;;;;;;;;;;;;;5137:502;:::o;5721:265::-;-1:-1:-1;;;;;5792:23:8;;;;;;:13;:23;;;;;;;;5784:72;;;;;;;-1:-1:-1;;;;;5784:72:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5866:23:8;;5892:5;5866:23;;;:13;:23;;;;;;;;;:31;;-1:-1:-1;;5866:31:8;;;5907:16;:18;;-1:-1:-1;;5907:18:8;;;5940:39;;5958:10;5940:39;;;;;;;;;;;;;;;;;;;;;5721:265;:::o"},"internals/controller.sol:IController":{"bin":"","bin-runtime":"","srcmap":"","srcmap-runtime":""},"internals/ensResolvable.sol:ENSResolvable":{"bin":"","bin-runtime":"","srcmap":"","srcmap-runtime":""},"internals/ownable.sol:Ownable":{"bin":"","bin-runtime":"","srcmap":"","srcmap-runtime":""},"internals/tokenWhitelist.sol:ITokenWhitelist":{"bin":"","bin-runtime":"","srcmap":"","srcmap-runtime":""},"internals/tokenWhitelist.sol:TokenWhitelist":{"bin":"608060405234801561001057600080fd5b5060405160c080611ab283398101604090815281516020830151918301516060840151608085015160a09095015160018054600160a060020a03808716600160a060020a03199283161792839055600080548316938216939093179092556002859055600380548915157401000000000000000000000000000000000000000090810260a060020a60ff0219958816929094169190911793909316919091179081905594969394929392849184910460ff1615156101055760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b6040805160008152600160a060020a038416602082015281517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea5929181900390910190a15050600794909455505060068054600160a060020a031916600160a060020a03909316929092179091555061192d9050806101856000396000f3006080604052600436106100c15763ffffffff60e060020a6000350416631f69565f81146100c65780632121dc751461019157806334c73edc146101ba5780633efec5e91461020f578063443dd2a4146102245780636c3824ef14610289578063715018a6146102a95780637d73b231146102be57806380cc0dda146102ef5780638da5cb5b14610316578063996cba681461032b578063b242e53414610355578063d545782e1461037b578063e2b4ce97146103a2578063e9cbd822146103b7575b600080fd5b3480156100d257600080fd5b506100e7600160a060020a03600435166103cc565b6040805160208082018990529181018790528515156060820152841515608082015283151560a082015260c0810183905260e08082528951908201528851909182916101008301918b019080838360005b83811015610150578181015183820152602001610138565b50505050905090810190601f16801561017d5780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b34801561019d57600080fd5b506101a66104c8565b604080519115158252519081900360200190f35b3480156101c657600080fd5b5061020d602460048035828101929082013591813580830192908201359160443580830192908201359160643580830192908201359160843591820191013560a4356104ea565b005b34801561021b57600080fd5b506100e7610981565b34801561023057600080fd5b50610239610a7d565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561027557818101518382015260200161025d565b505050509050019250505060405180910390f35b34801561029557600080fd5b5061020d6004803560248101910135610adf565b3480156102b557600080fd5b5061020d610d7e565b3480156102ca57600080fd5b506102d3610eab565b60408051600160a060020a039092168252519081900360200190f35b3480156102fb57600080fd5b50610304610eba565b60408051918252519081900360200190f35b34801561032257600080fd5b506102d3610ec0565b34801561033757600080fd5b5061020d600160a060020a0360043581169060243516604435610ecf565b34801561036157600080fd5b5061020d600160a060020a03600435166024351515610f3e565b34801561038757600080fd5b5061020d600160a060020a036004351660243560443561118f565b3480156103ae57600080fd5b506103046112f1565b3480156103c357600080fd5b506102d36112f7565b600160a060020a0381166000908152600460208181526040808420600180820154600280840154600385015497850154855487516101009682161587026000190190911693909304601f81018990048902840189019097528683526060999889988998899889988998919788979296929560ff80821696938204811695620100009092041693928991908301828280156104a75780601f1061047c576101008083540402835291602001916104a7565b820191906000526020600020905b81548152906001019060200180831161048a57829003601f168201915b50505050509650975097509750975097509750975050919395979092949650565b60035474010000000000000000000000000000000000000000900460ff165b90565b600060606104f733611306565b151561054d576040805160e560020a62461bcd02815260206004820152601a60248201527f73656e646572206973206e6f74206120636f6e74726f6c6c6572000000000000604482015290519081900360640190fd5b8b8a14801561055b57508b88145b801561056657508b86145b801561057157508b86145b15156105c7576040805160e560020a62461bcd02815260206004820152601e60248201527f706172616d65746572206c656e6774687320646f206e6f74206d617463680000604482015290519081900360640190fd5b600091505b8b82101561097257600460008e8e858181106105e457fe5b60209081029290920135600160a060020a03168352508101919091526040016000206003015460ff1615610662576040805160e560020a62461bcd02815260206004820152601760248201527f746f6b656e20616c726561647920617661696c61626c65000000000000000000604482015290519081900360640190fd5b6106886106838c8c8581811061067457fe5b6020029190910135905061139f565b6113cb565b905060e0604051908101604052808281526020018a8a8581811015156106aa57fe5b9050602002013581526020016000815260200160011515815260200188888581811015156106d457fe5b602090810292909201351515835250018686858181106106f057fe5b60209081029290920135151583525001849052600460008f8f8681811061071357fe5b90506020020135600160a060020a0316600160a060020a0316600160a060020a03168152602001908152602001600020600082015181600001908051906020019061075f9291906117e7565b5060208201516001820155604082015160028201556060820151600382018054608085015160a08601511515620100000262ff0000199115156101000261ff001995151560ff199094169390931794909416919091171691909117905560c09091015160049091015560058d8d848181106107d657fe5b8354600181018555600094855260209485902001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0395909202939093013593909316929092179055507f1802e89da3f6ef84e024e37454c226b1e13bf846ce71cd2a1d24faef9cbf779b338e8e8581811061084d57fe5b90506020020135600160a060020a0316838c8c87818110151561086c57fe5b905060200201358b8b88818110151561088157fe5b9050602002013515158a8a89818110151561089857fe5b9050602002013515156040518087600160a060020a0316600160a060020a0316815260200186600160a060020a0316600160a060020a03168152602001806020018581526020018415151515815260200183151515158152602001828103825286818151815260200191508051906020019080838360005b83811015610928578181015183820152602001610910565b50505050905090810190601f1680156109555780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390a16001909101906105cc565b50505050505050505050505050565b600654600160a060020a03166000908152600460208181526040808420600180820154600280840154600385015497850154855487516101009682161587026000190190911693909304601f81018990048902840189019097528683526060999889988998899889988998919788979296929560ff8082169693820481169562010000909204169392899190830182828015610a5e5780601f10610a3357610100808354040283529160200191610a5e565b820191906000526020600020905b815481529060010190602001808311610a4157829003601f168201915b5050505050965097509750975097509750975097505090919293949596565b60606005805480602002602001604051908101604052809291908181526020018280548015610ad557602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610ab7575b5050505050905090565b6000806000610aed33611306565b1515610b43576040805160e560020a62461bcd02815260206004820152601a60248201527f73656e646572206973206e6f74206120636f6e74726f6c6c6572000000000000604482015290519081900360640190fd5b600092505b83831015610d775760046000868686818110610b6057fe5b60209081029290920135600160a060020a03168352508101919091526040016000206003015460ff161515610bdf576040805160e560020a62461bcd02815260206004820152601660248201527f746f6b656e206973206e6f7420617661696c61626c6500000000000000000000604482015290519081900360640190fd5b848484818110610beb57fe5b60209081029290920135600160a060020a03166000818152600490935260408320909450919050610c1c8282611865565b506000600182018190556002820181905560038201805462ffffff19169055600490910181905590505b600554610c5a90600163ffffffff61142516565b811015610d155781600160a060020a0316600582815481101515610c7a57fe5b600091825260209091200154600160a060020a03161415610d0d5760058054610caa90600163ffffffff61142516565b81548110610cb457fe5b60009182526020909120015460058054600160a060020a039092169183908110610cda57fe5b9060005260206000200160006101000a815481600160a060020a030219169083600160a060020a03160217905550610d15565b600101610c46565b6005805490610d289060001983016118ac565b5060408051338152600160a060020a038416602082015281517f703f7e3f084d5b8dcc12fddcfd9a70d65b6b21ec7659e4608dbaf4419ede3ad0929181900390910190a1600190920191610b48565b5050505050565b610d873361143c565b1515610ddd576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e206f776e657200000000000000000000604482015290519081900360640190fd5b60035474010000000000000000000000000000000000000000900460ff161515610e51576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b6003805473ffffffffffffffffffffffffffffffffffffffff19169055604080516000808252602082015281517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea5929181900390910190a1565b600154600160a060020a031690565b60075490565b600354600160a060020a031690565b610ed83361143c565b1515610f2e576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e206f776e657200000000000000000000604482015290519081900360640190fd5b610f39838383611450565b505050565b610f473361143c565b1515610f9d576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e206f776e657200000000000000000000604482015290519081900360640190fd5b60035474010000000000000000000000000000000000000000900460ff161515611011576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b600160a060020a0382161515611097576040805160e560020a62461bcd02815260206004820152602360248201527f6f776e65722063616e6e6f742062652073657420746f207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6003805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000831515908102919091179091556111175760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b60035460408051600160a060020a039283168152918416602083015280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1506003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600061119c6007546115f6565b90506111a733611306565b806111ba575033600160a060020a038216145b1515611210576040805160e560020a62461bcd02815260206004820152601b60248201527f656974686572206f7261636c65206f7220636f6e74726f6c6c65720000000000604482015290519081900360640190fd5b600160a060020a03841660009081526004602052604090206003015460ff161515611285576040805160e560020a62461bcd02815260206004820152601660248201527f746f6b656e206973206e6f7420617661696c61626c6500000000000000000000604482015290519081900360640190fd5b600160a060020a03841660008181526004602081815260409283902060028101889055909101859055815133815290810192909252818101859052517fdb3a4cfb4cd8ac94343ff7440cee8d05ade309056203f0e53ca49b6db8197c7d9181900360600190a150505050565b60025490565b600654600160a060020a031690565b60006113136002546115f6565b600160a060020a031663b429afeb836040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b15801561136d57600080fd5b505af1158015611381573d6000803e3d6000fd5b505050506040513d602081101561139757600080fd5b505192915050565b6113a76118d0565b60405160208101604052828152806020830152506113c4826116ed565b8152919050565b606080600083600001516040519080825280601f01601f191660200182016040528015611402578160200160208202803883390190505b50915060208201905061141e81856020015186600001516117a3565b5092915050565b6000808383111561143557600080fd5b5050900390565b600354600160a060020a0390811691161490565b600160a060020a038216151561149c57604051600160a060020a0384169082156108fc029083906000818181858888f19350505050158015611496573d6000803e3d6000fd5b506115a7565b81600160a060020a031663a9059cbb84836040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b1580156114ff57600080fd5b505af1158015611513573d6000803e3d6000fd5b505050506040513d602081101561152957600080fd5b505115156115a7576040805160e560020a62461bcd02815260206004820152602560248201527f455243323020746f6b656e207472616e736665722077617320756e737563636560448201527f737366756c000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60408051600160a060020a0380861682528416602082015280820183905290517ff7a40077ff7a04c7e61f6f26fb13774259ddf1b6bce9ecf26a8276cdd39926839181900360600190a1505050565b60008054604080517f0178b8bf000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691630178b8bf9160248082019260209290919082900301818787803b15801561165d57600080fd5b505af1158015611671573d6000803e3d6000fd5b505050506040513d602081101561168757600080fd5b5051604080517f3b3b57de000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691633b3b57de916024808201926020929091908290030181600087803b15801561136d57600080fd5b600080821515611700576000915061179d565b6fffffffffffffffffffffffffffffffff8316151561173357601001700100000000000000000000000000000000830492505b67ffffffffffffffff831615156117565760080168010000000000000000830492505b63ffffffff8316151561177157600401640100000000830492505b61ffff831615156117885760020162010000830492505b60ff83161515611796576001015b8060200391505b50919050565b60005b602082106117c8578251845260209384019390920191601f19909101906117a6565b50905182516020929092036101000a6000190180199091169116179052565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061182857805160ff1916838001178555611855565b82800160010185558215611855579182015b8281111561185557825182559160200191906001019061183a565b506118619291506118e7565b5090565b50805460018160011615610100020316600290046000825580601f1061188b57506118a9565b601f0160209004906000526020600020908101906118a991906118e7565b50565b815481835581811115610f3957600083815260209020610f399181019083016118e7565b604080518082019091526000808252602082015290565b6104e791905b8082111561186157600081556001016118ed5600a165627a7a723058208c4be71ac085882be552fd06a3c105b468b8d2bbdf25c86681a98320fb418c500029","bin-runtime":"6080604052600436106100c15763ffffffff60e060020a6000350416631f69565f81146100c65780632121dc751461019157806334c73edc146101ba5780633efec5e91461020f578063443dd2a4146102245780636c3824ef14610289578063715018a6146102a95780637d73b231146102be57806380cc0dda146102ef5780638da5cb5b14610316578063996cba681461032b578063b242e53414610355578063d545782e1461037b578063e2b4ce97146103a2578063e9cbd822146103b7575b600080fd5b3480156100d257600080fd5b506100e7600160a060020a03600435166103cc565b6040805160208082018990529181018790528515156060820152841515608082015283151560a082015260c0810183905260e08082528951908201528851909182916101008301918b019080838360005b83811015610150578181015183820152602001610138565b50505050905090810190601f16801561017d5780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b34801561019d57600080fd5b506101a66104c8565b604080519115158252519081900360200190f35b3480156101c657600080fd5b5061020d602460048035828101929082013591813580830192908201359160443580830192908201359160643580830192908201359160843591820191013560a4356104ea565b005b34801561021b57600080fd5b506100e7610981565b34801561023057600080fd5b50610239610a7d565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561027557818101518382015260200161025d565b505050509050019250505060405180910390f35b34801561029557600080fd5b5061020d6004803560248101910135610adf565b3480156102b557600080fd5b5061020d610d7e565b3480156102ca57600080fd5b506102d3610eab565b60408051600160a060020a039092168252519081900360200190f35b3480156102fb57600080fd5b50610304610eba565b60408051918252519081900360200190f35b34801561032257600080fd5b506102d3610ec0565b34801561033757600080fd5b5061020d600160a060020a0360043581169060243516604435610ecf565b34801561036157600080fd5b5061020d600160a060020a03600435166024351515610f3e565b34801561038757600080fd5b5061020d600160a060020a036004351660243560443561118f565b3480156103ae57600080fd5b506103046112f1565b3480156103c357600080fd5b506102d36112f7565b600160a060020a0381166000908152600460208181526040808420600180820154600280840154600385015497850154855487516101009682161587026000190190911693909304601f81018990048902840189019097528683526060999889988998899889988998919788979296929560ff80821696938204811695620100009092041693928991908301828280156104a75780601f1061047c576101008083540402835291602001916104a7565b820191906000526020600020905b81548152906001019060200180831161048a57829003601f168201915b50505050509650975097509750975097509750975050919395979092949650565b60035474010000000000000000000000000000000000000000900460ff165b90565b600060606104f733611306565b151561054d576040805160e560020a62461bcd02815260206004820152601a60248201527f73656e646572206973206e6f74206120636f6e74726f6c6c6572000000000000604482015290519081900360640190fd5b8b8a14801561055b57508b88145b801561056657508b86145b801561057157508b86145b15156105c7576040805160e560020a62461bcd02815260206004820152601e60248201527f706172616d65746572206c656e6774687320646f206e6f74206d617463680000604482015290519081900360640190fd5b600091505b8b82101561097257600460008e8e858181106105e457fe5b60209081029290920135600160a060020a03168352508101919091526040016000206003015460ff1615610662576040805160e560020a62461bcd02815260206004820152601760248201527f746f6b656e20616c726561647920617661696c61626c65000000000000000000604482015290519081900360640190fd5b6106886106838c8c8581811061067457fe5b6020029190910135905061139f565b6113cb565b905060e0604051908101604052808281526020018a8a8581811015156106aa57fe5b9050602002013581526020016000815260200160011515815260200188888581811015156106d457fe5b602090810292909201351515835250018686858181106106f057fe5b60209081029290920135151583525001849052600460008f8f8681811061071357fe5b90506020020135600160a060020a0316600160a060020a0316600160a060020a03168152602001908152602001600020600082015181600001908051906020019061075f9291906117e7565b5060208201516001820155604082015160028201556060820151600382018054608085015160a08601511515620100000262ff0000199115156101000261ff001995151560ff199094169390931794909416919091171691909117905560c09091015160049091015560058d8d848181106107d657fe5b8354600181018555600094855260209485902001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0395909202939093013593909316929092179055507f1802e89da3f6ef84e024e37454c226b1e13bf846ce71cd2a1d24faef9cbf779b338e8e8581811061084d57fe5b90506020020135600160a060020a0316838c8c87818110151561086c57fe5b905060200201358b8b88818110151561088157fe5b9050602002013515158a8a89818110151561089857fe5b9050602002013515156040518087600160a060020a0316600160a060020a0316815260200186600160a060020a0316600160a060020a03168152602001806020018581526020018415151515815260200183151515158152602001828103825286818151815260200191508051906020019080838360005b83811015610928578181015183820152602001610910565b50505050905090810190601f1680156109555780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390a16001909101906105cc565b50505050505050505050505050565b600654600160a060020a03166000908152600460208181526040808420600180820154600280840154600385015497850154855487516101009682161587026000190190911693909304601f81018990048902840189019097528683526060999889988998899889988998919788979296929560ff8082169693820481169562010000909204169392899190830182828015610a5e5780601f10610a3357610100808354040283529160200191610a5e565b820191906000526020600020905b815481529060010190602001808311610a4157829003601f168201915b5050505050965097509750975097509750975097505090919293949596565b60606005805480602002602001604051908101604052809291908181526020018280548015610ad557602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610ab7575b5050505050905090565b6000806000610aed33611306565b1515610b43576040805160e560020a62461bcd02815260206004820152601a60248201527f73656e646572206973206e6f74206120636f6e74726f6c6c6572000000000000604482015290519081900360640190fd5b600092505b83831015610d775760046000868686818110610b6057fe5b60209081029290920135600160a060020a03168352508101919091526040016000206003015460ff161515610bdf576040805160e560020a62461bcd02815260206004820152601660248201527f746f6b656e206973206e6f7420617661696c61626c6500000000000000000000604482015290519081900360640190fd5b848484818110610beb57fe5b60209081029290920135600160a060020a03166000818152600490935260408320909450919050610c1c8282611865565b506000600182018190556002820181905560038201805462ffffff19169055600490910181905590505b600554610c5a90600163ffffffff61142516565b811015610d155781600160a060020a0316600582815481101515610c7a57fe5b600091825260209091200154600160a060020a03161415610d0d5760058054610caa90600163ffffffff61142516565b81548110610cb457fe5b60009182526020909120015460058054600160a060020a039092169183908110610cda57fe5b9060005260206000200160006101000a815481600160a060020a030219169083600160a060020a03160217905550610d15565b600101610c46565b6005805490610d289060001983016118ac565b5060408051338152600160a060020a038416602082015281517f703f7e3f084d5b8dcc12fddcfd9a70d65b6b21ec7659e4608dbaf4419ede3ad0929181900390910190a1600190920191610b48565b5050505050565b610d873361143c565b1515610ddd576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e206f776e657200000000000000000000604482015290519081900360640190fd5b60035474010000000000000000000000000000000000000000900460ff161515610e51576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b6003805473ffffffffffffffffffffffffffffffffffffffff19169055604080516000808252602082015281517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea5929181900390910190a1565b600154600160a060020a031690565b60075490565b600354600160a060020a031690565b610ed83361143c565b1515610f2e576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e206f776e657200000000000000000000604482015290519081900360640190fd5b610f39838383611450565b505050565b610f473361143c565b1515610f9d576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e206f776e657200000000000000000000604482015290519081900360640190fd5b60035474010000000000000000000000000000000000000000900460ff161515611011576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b600160a060020a0382161515611097576040805160e560020a62461bcd02815260206004820152602360248201527f6f776e65722063616e6e6f742062652073657420746f207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6003805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000831515908102919091179091556111175760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b60035460408051600160a060020a039283168152918416602083015280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1506003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600061119c6007546115f6565b90506111a733611306565b806111ba575033600160a060020a038216145b1515611210576040805160e560020a62461bcd02815260206004820152601b60248201527f656974686572206f7261636c65206f7220636f6e74726f6c6c65720000000000604482015290519081900360640190fd5b600160a060020a03841660009081526004602052604090206003015460ff161515611285576040805160e560020a62461bcd02815260206004820152601660248201527f746f6b656e206973206e6f7420617661696c61626c6500000000000000000000604482015290519081900360640190fd5b600160a060020a03841660008181526004602081815260409283902060028101889055909101859055815133815290810192909252818101859052517fdb3a4cfb4cd8ac94343ff7440cee8d05ade309056203f0e53ca49b6db8197c7d9181900360600190a150505050565b60025490565b600654600160a060020a031690565b60006113136002546115f6565b600160a060020a031663b429afeb836040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b15801561136d57600080fd5b505af1158015611381573d6000803e3d6000fd5b505050506040513d602081101561139757600080fd5b505192915050565b6113a76118d0565b60405160208101604052828152806020830152506113c4826116ed565b8152919050565b606080600083600001516040519080825280601f01601f191660200182016040528015611402578160200160208202803883390190505b50915060208201905061141e81856020015186600001516117a3565b5092915050565b6000808383111561143557600080fd5b5050900390565b600354600160a060020a0390811691161490565b600160a060020a038216151561149c57604051600160a060020a0384169082156108fc029083906000818181858888f19350505050158015611496573d6000803e3d6000fd5b506115a7565b81600160a060020a031663a9059cbb84836040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b1580156114ff57600080fd5b505af1158015611513573d6000803e3d6000fd5b505050506040513d602081101561152957600080fd5b505115156115a7576040805160e560020a62461bcd02815260206004820152602560248201527f455243323020746f6b656e207472616e736665722077617320756e737563636560448201527f737366756c000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60408051600160a060020a0380861682528416602082015280820183905290517ff7a40077ff7a04c7e61f6f26fb13774259ddf1b6bce9ecf26a8276cdd39926839181900360600190a1505050565b60008054604080517f0178b8bf000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691630178b8bf9160248082019260209290919082900301818787803b15801561165d57600080fd5b505af1158015611671573d6000803e3d6000fd5b505050506040513d602081101561168757600080fd5b5051604080517f3b3b57de000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691633b3b57de916024808201926020929091908290030181600087803b15801561136d57600080fd5b600080821515611700576000915061179d565b6fffffffffffffffffffffffffffffffff8316151561173357601001700100000000000000000000000000000000830492505b67ffffffffffffffff831615156117565760080168010000000000000000830492505b63ffffffff8316151561177157600401640100000000830492505b61ffff831615156117885760020162010000830492505b60ff83161515611796576001015b8060200391505b50919050565b60005b602082106117c8578251845260209384019390920191601f19909101906117a6565b50905182516020929092036101000a6000190180199091169116179052565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061182857805160ff1916838001178555611855565b82800160010185558215611855579182015b8281111561185557825182559160200191906001019061183a565b506118619291506118e7565b5090565b50805460018160011615610100020316600290046000825580601f1061188b57506118a9565b601f0160209004906000526020600020908101906118a991906118e7565b50565b815481835581811115610f3957600083815260209020610f399181019083016118e7565b604080518082019091526000808252602082015290565b6104e791905b8082111561186157600081556001016118ed5600a165627a7a723058208c4be71ac085882be552fd06a3c105b468b8d2bbdf25c86681a98320fb418c500029","srcmap":"1619:8461:11:-;;;3201:336;8:9:-1;5:2;;;30:1;27;20:12;5:2;3201:336:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1312:12:9;:23;;-1:-1:-1;;;;;1312:23:9;;;-1:-1:-1;;;;;;1312:23:9;;;;;;;;:12;1345:24;;;;1356:12;;;1345:24;;;;;;;1334:15:7;:38;;;1527:6:10;:18;;1555:32;;;;;;;-1:-1:-1;;;;;;1527:18:10;;;;;;;;;;;1555:32;;;;;;;;;;;;3201:336:11;;;;;;;;;;;1671:15:10;1555:32;1671:15;1670:16;1666:78;;;1707:26;;;-1:-1:-1;;;;;1707:26:10;;;;;;;;;;;;;;;1666:78;1758:43;;;1787:1;1758:43;;-1:-1:-1;;;;;1758:43:10;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3457:11:11;:30;;;;-1:-1:-1;;3497:11:11;:33;;-1:-1:-1;;;;;;3497:33:11;-1:-1:-1;;;;;3497:33:11;;;;;;;;;;-1:-1:-1;1619:8461:11;;-1:-1:-1;1619:8461:11;;-1:-1:-1;1619:8461:11;;","srcmap-runtime":"1619:8461:11:-;;;;;;;;;-1:-1:-1;;;1619:8461:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8241:325;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8241:325:11;-1:-1:-1;;;;;8241:325:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-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;8241:325:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3149:94:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3149:94:10;;;;;;;;;;;;;;;;;;;;;;4101:1439:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4101:1439:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9058:369;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9058:369:11;;;;9550:105;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9550:105:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;9550:105:11;;;;;;;;;;;;;;;;;5667:1031;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5667:1031:11;;;;;;;;;;;;3519:306:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3519:306:10;;;;1468:91:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1468:91:9;;;;;;;;-1:-1:-1;;;;;1468:91:9;;;;;;;;;;;;;;9989:89:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9989:89:11;;;;;;;;;;;;;;;;;;;;3908:77:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3908:77:10;;;;7578:122:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7578:122:11;-1:-1:-1;;;;;7578:122:11;;;;;;;;;;;;2231:801:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2231:801:10;-1:-1:-1;;;;;2231:801:10;;;;;;;;;6975:514:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6975:514:11;-1:-1:-1;;;;;6975:514:11;;;;;;;;;1629:97:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1629:97:7;;;;9786:89:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9786:89:11;;;;8241:325;-1:-1:-1;;;;;8387:17:11;;8306:7;8387:17;;;:13;:17;;;;;;;;8440:19;;;;;8461:14;;;;;8477:19;;;;8538:20;;;;8414:145;;;;8477:19;8414:145;;;;;;-1:-1:-1;;8414:145:11;;;;;;;;;;;;;;;;;;;;;;;;;;8298:6;;8306:7;;;;;;;;;;;8387:17;;;;8440:19;;8461:14;;8477:19;;;;;8498:18;;;;;;8518;;;;;;8538:20;8387:17;;8414:145;;;8387:17;8414:145;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8241:325;;;;;;;;;;:::o;3149:94:10:-;3221:15;;;;;;;3149:94;;:::o;4101:1439:11:-;4592:6;4838:20;1489:25:7;1503:10;1489:13;:25::i;:::-;1481:64;;;;;;;-1:-1:-1;;;;;1481:64:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;4335:33:11;;;:72;;;;-1:-1:-1;4372:35:11;;;4335:72;:110;;;;-1:-1:-1;4411:34:11;;;4335:110;:148;;;;-1:-1:-1;4449:34:11;;;4335:148;4327:191;;;;;;;-1:-1:-1;;;;;4327:191:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;4601:1;4592:10;;4587:947;4604:18;;;4587:947;;;4715:13;:25;4729:7;;4737:1;4729:10;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4729:10:11;4715:25;;-1:-1:-1;4715:25:11;;;;;;;;-1:-1:-1;4715:25:11;:35;;;;;4714:36;4706:72;;;;;-1:-1:-1;;;;;4706:72:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;4861:35;:24;:8;;4870:1;4861:11;;;;;;;;;;;;;;;-1:-1:-1;4861:22:11;:24::i;:::-;:33;:35::i;:::-;4838:58;;4986:284;;;;;;;;;5019:6;4986:284;;;;5055:10;;5066:1;5055:13;;;;;;;;;;;;;;;4986:284;;;;5093:1;4986:284;;;;5124:4;4986:284;;;;;;5157:9;;5167:1;5157:12;;;;;;;;;;;;;;;;;;;;4986:284;;-1:-1:-1;4986:284:11;5197:9;;5207:1;5197:12;;;;;;;;;;;;;;;;;;4986:284;;-1:-1:-1;4986:284:11;;;;4958:13;-1:-1:-1;4972:7:11;;4980:1;4972:10;;;;;;;;;;;;;-1:-1:-1;;;;;4972:10:11;-1:-1:-1;;;;;4958:25:11;-1:-1:-1;;;;;4958:25:11;;;;;;;;;;;;:312;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;4958:312:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4958:312:11;;;;;-1:-1:-1;;4958:312:11;;;-1:-1:-1;;4958:312:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5342:18;5366:7;;5374:1;5366:10;;;;;;;27::-1;;39:1;23:18;;45:23;;-1:-1;5342:35:11;;;5366:10;5342:35;;;;;;;-1:-1:-1;;5342:35:11;-1:-1:-1;;;;;5366:10:11;;;;;;;;;;;;;5342:35;;;;;;-1:-1:-1;5438:85:11;5449:10;5461:7;;5469:1;5461:10;;;;;;;;;;;;;-1:-1:-1;;;;;5461:10:11;5473:6;5481:10;;5492:1;5481:13;;;;;;;;;;;;;;;5496:9;;5506:1;5496:12;;;;;;;;;;;;;;;;;5510:9;;5520:1;5510:12;;;;;;;;;;;;;;;;;5438:85;;;;-1:-1:-1;;;;;5438:85:11;-1:-1:-1;;;;;5438:85:11;;;;;;-1:-1:-1;;;;;5438:85:11;-1:-1:-1;;;;;5438:85:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;5438:85:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4624:3;;;;;4587:947;;;4101:1439;;;;;;;;;;;;;:::o;9058:369::-;9218:11;;-1:-1:-1;;;;;9218:11:11;9118:7;9204:26;;;:13;:26;;;;;;;;9218:11;9271:24;;;;9297:19;;;;;9318:24;;;;9394:25;;;;9240:180;;;;9218:11;9240:180;;;;;;-1:-1:-1;;9240:180:11;;;;;;;;;;;;;;;;;;;;;;;;;;9110:6;;9118:7;;;;;;;;;;;9204:26;;;;9271:24;;9297:19;;9318:24;;;;;9344:23;;;;;;9369;;;;;;9394:25;9204:26;;9240:180;;;9204:26;9240:180;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9058:369;;;;;;;;:::o;9550:105::-;9602:9;9630:18;9623:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9623:25:11;;;;;;;;;;;;;;;;;;;;;;;9550:105;:::o;5667:1031::-;5850:6;6094:13;6283:6;1489:25:7;1503:10;1489:13;:25::i;:::-;1481:64;;;;;;;-1:-1:-1;;;;;1481:64:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;5859:1:11;5850:10;;5845:847;5862:18;;;5845:847;;;5978:13;:25;5992:7;;6000:1;5992:10;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5992:10:11;5978:25;;-1:-1:-1;5978:25:11;;;;;;;;-1:-1:-1;5978:25:11;:35;;;;;5970:70;;;;;;;-1:-1:-1;;;;;5970:70:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;6110:7;;6118:1;6110:10;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6110:10:11;6181:20;;;;:13;:20;;;;;;6110:10;;-1:-1:-1;6181:20:11;;-1:-1:-1;6174:27:11;6181:20;;6174:27;:::i;:::-;-1:-1:-1;6174:27:11;;;;;;;;;;;;;;;;;;-1:-1:-1;;6174:27:11;;;;;;;;;;;-1:-1:-1;6278:272:11;6299:18;:25;:32;;6329:1;6299:32;:29;:32;:::i;:::-;6295:1;:36;6278:272;;;6385:5;-1:-1:-1;;;;;6360:30:11;:18;6379:1;6360:21;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6360:21:11;:30;6356:180;;;6438:18;6457:25;;:32;;6487:1;6457:32;:29;:32;:::i;:::-;6438:52;;;;;;;;;;;;;;;;;;6414:18;:21;;-1:-1:-1;;;;;6438:52:11;;;;6433:1;;6414:21;;;;;;;;;;;;;;:76;;;;;-1:-1:-1;;;;;6414:76:11;;;;;-1:-1:-1;;;;;6414:76:11;;;;;;6512:5;;6356:180;6333:3;;6278:272;;;6563:18;:27;;;;;-1:-1:-1;;6563:27:11;;;:::i;:::-;-1:-1:-1;6650:31:11;;;6663:10;6650:31;;-1:-1:-1;;;;;6650:31:11;;;;;;;;;;;;;;;;;;;5882:3;;;;;5845:847;;;5667:1031;;;;;:::o;3519:306:10:-;1924:20;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;3640:15;;;;;;;3632:57;;;;;;;-1:-1:-1;;;;;3632:57:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;3743:6;:19;;-1:-1:-1;;3743:19:10;;;3778:40;;;3760:1;3778:40;;;;;;;;;;;;;;;;;;;;3519:306::o;1468:91:9:-;1540:12;;-1:-1:-1;;;;;1540:12:9;1468:91;:::o;9989:89:11:-;10060:11;;9989:89;:::o;3908:77:10:-;3972:6;;-1:-1:-1;;;;;3972:6:10;3908:77;:::o;7578:122:11:-;1924:20:10;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;7665:28:11;7672:3;7677:6;7685:7;7665:6;:28::i;:::-;7578:122;;;:::o;2231:801:10:-;1924:20;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;2388:15;;;;;;;2380:57;;;;;;;-1:-1:-1;;;;;2380:57:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2518:22:10;;;;2510:70;;;;;-1:-1:-1;;;;;2510:70:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2665:15;:31;;-1:-1:-1;;2665:31:10;;;;;;;;;;;;;;;2775:75;;2814:25;;;-1:-1:-1;;;;;2814:25:10;;;;;;;;;;;;;;;2775:75;2931:6;;2910:38;;;-1:-1:-1;;;;;2931:6:10;;;2910:38;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3008:6:10;:17;;-1:-1:-1;;3008:17:10;-1:-1:-1;;;;;3008:17:10;;;;;;;;;;2231:801::o;6975:514:11:-;2597:21;2621:24;2633:11;;2621;:24::i;:::-;2597:48;;2664:25;2678:10;2664:13;:25::i;:::-;:56;;;-1:-1:-1;2693:10:11;-1:-1:-1;;;;;2693:27:11;;;2664:56;2655:97;;;;;;;-1:-1:-1;;;;;2655:97:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7138:21:11;;;;;;:13;:21;;;;;:31;;;;;7130:66;;;;;;;-1:-1:-1;;;;;7130:66:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7242:21:11;;;;;;:13;:21;;;;;;;;;:26;;;:34;;;7339:32;;;:46;;;7439:43;;7456:10;7439:43;;;;;;;;;;;;;;;;;;;;;;;;;6975:514;;;;:::o;1629:97:7:-;1704:15;;1629:97;:::o;9786:89:11:-;9857:11;;-1:-1:-1;;;;;9857:11:11;9786:89;:::o;1796:158:7:-;1860:4;1895:28;1907:15;;1895:11;:28::i;:::-;-1:-1:-1;;;;;1883:54:7;;1938:8;1883:64;;;;;-1:-1:-1;;;1883:64:7;;;;;;;-1:-1:-1;;;;;1883:64:7;-1:-1:-1;;;;;1883:64:7;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1883:64:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1883:64:7;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1883:64:7;;1796:158;-1:-1:-1;;1796:158:7:o;4914:370:5:-;4971:16;;:::i;:::-;5122:4;5116:11;5162:4;5157:3;5153:14;5147:4;5140:28;5193:4;5188:3;5181:17;5234:3;5227:4;5222:3;5218:14;5211:27;5091:157;5268:9;5272:4;5268:3;:9::i;:::-;5257:20;;:3;4914:370;-1:-1:-1;4914:370:5:o;5778:265::-;5838:6;5863:17;5914:11;5894:4;:9;;;5883:21;;;;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;5883:21:5;;5863:41;;5965:2;5960:3;5956:12;5946:22;;5980:36;5987:6;5995:4;:9;;;6006:4;:9;;;5980:6;:36::i;:::-;-1:-1:-1;6033:3:5;5778:265;-1:-1:-1;;5778:265:5:o;2250:131:2:-;2308:7;;2331:6;;;;2323:15;;;;;;-1:-1:-1;;2356:5:2;;;2250:131::o;4091:107:10:-;4185:6;;-1:-1:-1;;;;;4185:6:10;;;4173:18;;;;4091:107::o;1350:362:6:-;-1:-1:-1;;;;;1476:20:6;;;1472:189;;;1512:21;;-1:-1:-1;;;;;1512:12:6;;;:21;;;;;1525:7;;1512:21;;;;1525:7;1512:12;:21;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1512:21:6;1472:189;;;1578:6;-1:-1:-1;;;;;1572:22:6;;1595:3;1600:7;1572:36;;;;;-1:-1:-1;;;1572:36:6;;;;;;;-1:-1:-1;;;;;1572:36:6;-1:-1:-1;;;;;1572:36:6;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1572:36:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1572:36:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1572:36:6;1564:86;;;;;;;-1:-1:-1;;;;;1564:86:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1676:29;;;-1:-1:-1;;;;;1676:29:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;1350:362;;;:::o;1748:152:9:-;1811:7;1852:4;;:24;;;;;;;;;;;;;;-1:-1:-1;;;;;1852:4:9;;;;:13;;:24;;;;;;;;;;;;;;;1811:7;1852:4;:24;;;5:2:-1;;;;30:1;27;20:12;5:2;1852:24:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1852:24:9;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1852:24:9;1837:56;;;;;;;;;;;;;;-1:-1:-1;;;;;1837:45:9;;;;;;:56;;;;;1852:24;;1837:56;;;;;;;;;:45;:56;;;5:2:-1;;;;30:1;27;20:12;3840:768:5;3890:4;;3928:9;;3924:35;;;3958:1;3951:8;;;;3924:35;3980:34;3973:41;;:46;3969:164;;;4042:2;4035:9;4086:35;4078:4;4073:48;;-1:-1:-1;3969:164:5;4153:18;4146:25;;:30;4142:131;;;4199:1;4192:8;4242:19;4234:4;4229:32;;-1:-1:-1;4142:131:5;4293:10;4286:17;;:22;4282:115;;;4331:1;4324:8;4374:11;4366:4;4361:24;;-1:-1:-1;4282:115:5;4417:6;4410:13;;:18;4406:107;;;4451:1;4444:8;4494:7;4486:4;4481:20;;-1:-1:-1;4406:107:5;4533:4;4526:11;;:16;4522:55;;;4565:1;4558:8;4522:55;4598:3;4593:2;:8;4586:15;;3840:768;;;;;:::o;2686:548::-;3012:9;2806:164;2819:2;2812:9;;2806:164;;2888:10;;2875:24;;2934:2;2926:10;;;;2950:9;;;;-1:-1:-1;;2823:9:5;;;;2806:164;;;-1:-1:-1;3097:10:5;;3152:11;;3032:2;:8;;;;3024:3;:17;-1:-1:-1;;3024:21:5;3109:9;;3093:26;;;3148:22;;3196:21;3183:35;;3064:164::o;1619:8461:11:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1619:8461:11;;;-1:-1:-1;1619:8461:11;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;1619:8461:11;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;"},"internals/tokenWhitelistable.sol:TokenWhitelistable":{"bin":"","bin-runtime":"","srcmap":"","srcmap-runtime":""},"licence.sol:ILicence":{"bin":"","bin-runtime":"","srcmap":"","srcmap-runtime":""},"licence.sol:Licence":{"bin":"608060405260018054600160a060020a03191673aaaf91d9b90df800df4f55c205fd6989c977e73a17905534801561003657600080fd5b5060405160c0806119d283398101604090815281516020830151918301516060840151608085015160a09095015160008054600160a060020a031916600160a060020a0386161760a060020a60ff0219167401000000000000000000000000000000000000000087151581029190911791829055949693949293928791879160ff91041615156100fd5760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b6040805160008152600160a060020a038416602082015281517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea5929181900390910190a15050600584905560028054600160a060020a03808616600160a060020a0319928316179092556003805485841692169190911790558116156101995760018054600160a060020a031916600160a060020a0383161790555b505050505050611824806101ae6000396000f3006080604052600436106101485763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630bf25c9181146101da5780630d42e82f146101f15780631b3c96b4146102125780632121dc75146102295780633a7afe0214610252578063420a83e71461028357806342719faa146102985780634ac22b3c146102b957806368ce74e7146102ce578063715018a6146102e6578063837c70ef146102fb5780638da5cb5b14610310578063940b9c3b14610325578063996cba681461033a57806399a5e1d014610364578063a036ba6014610379578063ac904c631461038e578063b242e534146103b5578063ca0e2e20146103db578063d08b4ecc146103f0578063d0cddd6714610405578063d1696b1614610426578063e30c5fa81461043b578063e3d8024214610450578063f15ff45514610471575b361561019e576040805160e560020a62461bcd02815260206004820152601b60248201527f6d73672064617461206c656e6774682073686f756c6420626520300000000000604482015290519081900360640190fd5b6040805133815234602082015281517f88a5966d370b9919b20f3e2c13ff65706f196a4e32cc2c12bf57088f88525874929181900390910190a1005b3480156101e657600080fd5b506101ef610486565b005b3480156101fd57600080fd5b506101ef600160a060020a0360043516610510565b6101ef600160a060020a036004351660243561061b565b34801561023557600080fd5b5061023e610b86565b604080519115158252519081900360200190f35b34801561025e57600080fd5b50610267610b96565b60408051600160a060020a039092168252519081900360200190f35b34801561028f57600080fd5b50610267610ba5565b3480156102a457600080fd5b506101ef600160a060020a0360043516610bb4565b3480156102c557600080fd5b506101ef610cbf565b3480156102da57600080fd5b506101ef600435610d47565b3480156102f257600080fd5b506101ef610e4d565b34801561030757600080fd5b5061023e610f57565b34801561031c57600080fd5b50610267610f7b565b34801561033157600080fd5b5061023e610f8a565b34801561034657600080fd5b506101ef600160a060020a0360043581169060243516604435610f9a565b34801561037057600080fd5b50610267610ff7565b34801561038557600080fd5b50610267611006565b34801561039a57600080fd5b506103a3611015565b60408051918252519081900360200190f35b3480156103c157600080fd5b506101ef600160a060020a0360043516602435151561101b565b3480156103e757600080fd5b506103a3611238565b3480156103fc57600080fd5b506101ef61123e565b34801561041157600080fd5b506101ef600160a060020a03600435166112b1565b34801561043257600080fd5b506101ef6113bc565b34801561044757600080fd5b5061023e611442565b34801561045c57600080fd5b506101ef600160a060020a0360043516611465565b34801561047d57600080fd5b5061023e611570565b61048f33611592565b15156104d3576040805160e560020a62461bcd02815260206004820152601660248201526000805160206117d9833981519152604482015290519081900360640190fd5b6004805477ff0000000000000000000000000000000000000000000000191677010000000000000000000000000000000000000000000000179055565b61051933611592565b151561055d576040805160e560020a62461bcd02815260206004820152601660248201526000805160206117d9833981519152604482015290519081900360640190fd5b610565610f57565b156105ba576040805160e560020a62461bcd02815260206004820152600d60248201527f544b4e206973206c6f636b656400000000000000000000000000000000000000604482015290519081900360640190fd5b60018054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff19909116811790915560408051918252517f2aeed92123e61fe64748a447c2ba122c4bfc0201d1ed5149e9ce9ede5adda5459181900360200190a150565b6001548190600090600160a060020a038581169116141561075857600254604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152600160a060020a039283166024820152604481018590529051918616916323b872dd916064808201926020929091908290030181600087803b1580156106ab57600080fd5b505af11580156106bf573d6000803e3d6000fd5b505050506040513d60208110156106d557600080fd5b50511515610753576040805160e560020a62461bcd02815260206004820152603360248201527f544b4e207472616e736665722066726f6d2065787465726e616c206163636f7560448201527f6e742077617320756e7375636365737366756c00000000000000000000000000606482015290519081900360840190fd5b610b2d565b6107836103e8600554016107776103e8866115a690919063ffffffff16565b9063ffffffff6115df16565b9150610795838363ffffffff61160216565b9050600160a060020a03841615610a0b57600354604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152600160a060020a039283166024820152604481018490529051918616916323b872dd916064808201926020929091908290030181600087803b15801561081b57600080fd5b505af115801561082f573d6000803e3d6000fd5b505050506040513d602081101561084557600080fd5b505115156108e9576040805160e560020a62461bcd02815260206004820152604360248201527f4552433230206c6963656e6365416d6f756e74207472616e736665722066726f60448201527f6d2065787465726e616c206163636f756e742077617320756e7375636365737360648201527f66756c0000000000000000000000000000000000000000000000000000000000608482015290519081900360a40190fd5b600254604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152600160a060020a039283166024820152604481018590529051918616916323b872dd916064808201926020929091908290030181600087803b15801561095e57600080fd5b505af1158015610972573d6000803e3d6000fd5b505050506040513d602081101561098857600080fd5b50511515610a06576040805160e560020a62461bcd02815260206004820152603b60248201527f455243323020746f6b656e207472616e736665722066726f6d2065787465726e60448201527f616c206163636f756e742077617320756e7375636365737366756c0000000000606482015290519081900360840190fd5b610ad9565b348314610a62576040805160e560020a62461bcd02815260206004820152601f60248201527f4554482073656e74206973206e6f7420657175616c20746f20616d6f756e7400604482015290519081900360640190fd5b600354604051600160a060020a039091169082156108fc029083906000818181858888f19350505050158015610a9c573d6000803e3d6000fd5b50600254604051600160a060020a039091169083156108fc029084906000818181858888f19350505050158015610ad7573d6000803e3d6000fd5b505b60035460408051338152600160a060020a0392831660208201529186168282015260608201839052517fdd9dfad7b30d6b224e235f89565871419d3dec3b563a4e231f12d2cc97f9acfc9181900360800190a15b60025460408051338152600160a060020a0392831660208201529186168282015260608201849052517fc8a7b0bd71097b47b2cad75e4e939d2aeb7fae88110e68f93b83fed08e9d3c389181900360800190a150505050565b60005460a060020a900460ff1690565b600454600160a060020a031690565b600354600160a060020a031690565b610bbd33611592565b1515610c01576040805160e560020a62461bcd02815260206004820152601660248201526000805160206117d9833981519152604482015290519081900360640190fd5b610c09611570565b15610c5e576040805160e560020a62461bcd02815260206004820152601960248201527f686f6c64657220636f6e7472616374206973206c6f636b656400000000000000604482015290519081900360640190fd5b60038054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff19909116811790915560408051918252517ffa6bae0f250db86534a013b1c7a6c4076aa8f8d1ac248771a1c73f4ba366922a9181900360200190a150565b610cc833611592565b1515610d0c576040805160e560020a62461bcd02815260206004820152601660248201526000805160206117d9833981519152604482015290519081900360640190fd5b6004805476ff000000000000000000000000000000000000000000001916760100000000000000000000000000000000000000000000179055565b600454600160a060020a03163314610da9576040805160e560020a62461bcd02815260206004820152601860248201527f7468652073656e6465722069736e2774207468652044414f0000000000000000604482015290519081900360640190fd5b80600111158015610dbc57506103e88111155b1515610e12576040805160e560020a62461bcd02815260206004820152601b60248201527f6c6963656e636520616d6f756e74206f7574206f662072616e67650000000000604482015290519081900360640190fd5b60058190556040805182815290517f587b6068be8c555e2cddc6ad8a56df5e8dfb1533cc063d6703f79c791de151489181900360200190a150565b610e5633611592565b1515610e9a576040805160e560020a62461bcd02815260206004820152601660248201526000805160206117d9833981519152604482015290519081900360640190fd5b60005460a060020a900460ff161515610efd576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916815560408051828152602081019290925280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1565b60045477010000000000000000000000000000000000000000000000900460ff1690565b600054600160a060020a031690565b60045460a060020a900460ff1690565b610fa333611592565b1515610fe7576040805160e560020a62461bcd02815260206004820152601660248201526000805160206117d9833981519152604482015290519081900360640190fd5b610ff2838383611619565b505050565b600154600160a060020a031690565b600254600160a060020a031690565b60055490565b61102433611592565b1515611068576040805160e560020a62461bcd02815260206004820152601660248201526000805160206117d9833981519152604482015290519081900360640190fd5b60005460a060020a900460ff1615156110cb576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b600160a060020a0382161515611151576040805160e560020a62461bcd02815260206004820152602360248201527f6f776e65722063616e6e6f742062652073657420746f207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6000805474ff0000000000000000000000000000000000000000191660a060020a831515908102919091179091556111c05760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b60005460408051600160a060020a039283168152918416602083015280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1506000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6103e881565b61124733611592565b151561128b576040805160e560020a62461bcd02815260206004820152601660248201526000805160206117d9833981519152604482015290519081900360640190fd5b6004805474ff0000000000000000000000000000000000000000191660a060020a179055565b6112ba33611592565b15156112fe576040805160e560020a62461bcd02815260206004820152601660248201526000805160206117d9833981519152604482015290519081900360640190fd5b611306610f8a565b1561135b576040805160e560020a62461bcd02815260206004820152600f60248201527f666c6f6174206973206c6f636b65640000000000000000000000000000000000604482015290519081900360640190fd5b60028054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff19909116811790915560408051918252517f9af2841b0db134bda87280e2a9cababb156f95023c87023d708a677d61b4b6d89181900360200190a150565b6113c533611592565b1515611409576040805160e560020a62461bcd02815260206004820152601660248201526000805160206117d9833981519152604482015290519081900360640190fd5b6004805475ff00000000000000000000000000000000000000000019167501000000000000000000000000000000000000000000179055565b600454760100000000000000000000000000000000000000000000900460ff1690565b61146e33611592565b15156114b2576040805160e560020a62461bcd02815260206004820152601660248201526000805160206117d9833981519152604482015290519081900360640190fd5b6114ba611442565b1561150f576040805160e560020a62461bcd02815260206004820152600d60248201527f44414f206973206c6f636b656400000000000000000000000000000000000000604482015290519081900360640190fd5b60048054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff19909116811790915560408051918252517fd32c17b277c7e87842861153d758814a267634f4308ec2461f88756df7dd70689181900360200190a150565b6004547501000000000000000000000000000000000000000000900460ff1690565b600054600160a060020a0390811691161490565b6000808315156115b957600091506115d8565b508282028284828115156115c957fe5b04146115d457600080fd5b8091505b5092915050565b6000808083116115ee57600080fd5b82848115156115f957fe5b04949350505050565b6000808383111561161257600080fd5b5050900390565b600160a060020a038216151561166557604051600160a060020a0384169082156108fc029083906000818181858888f1935050505015801561165f573d6000803e3d6000fd5b50611789565b81600160a060020a031663a9059cbb84836040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b1580156116e157600080fd5b505af11580156116f5573d6000803e3d6000fd5b505050506040513d602081101561170b57600080fd5b50511515611789576040805160e560020a62461bcd02815260206004820152602560248201527f455243323020746f6b656e207472616e736665722077617320756e737563636560448201527f737366756c000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60408051600160a060020a0380861682528416602082015280820183905290517ff7a40077ff7a04c7e61f6f26fb13774259ddf1b6bce9ecf26a8276cdd39926839181900360600190a1505050560073656e646572206973206e6f7420616e206f776e657200000000000000000000a165627a7a72305820c730e6bd6e321957cab9813e7774e9d7bba014408eb0ad114becdf9c6bb6d0500029","bin-runtime":"6080604052600436106101485763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630bf25c9181146101da5780630d42e82f146101f15780631b3c96b4146102125780632121dc75146102295780633a7afe0214610252578063420a83e71461028357806342719faa146102985780634ac22b3c146102b957806368ce74e7146102ce578063715018a6146102e6578063837c70ef146102fb5780638da5cb5b14610310578063940b9c3b14610325578063996cba681461033a57806399a5e1d014610364578063a036ba6014610379578063ac904c631461038e578063b242e534146103b5578063ca0e2e20146103db578063d08b4ecc146103f0578063d0cddd6714610405578063d1696b1614610426578063e30c5fa81461043b578063e3d8024214610450578063f15ff45514610471575b361561019e576040805160e560020a62461bcd02815260206004820152601b60248201527f6d73672064617461206c656e6774682073686f756c6420626520300000000000604482015290519081900360640190fd5b6040805133815234602082015281517f88a5966d370b9919b20f3e2c13ff65706f196a4e32cc2c12bf57088f88525874929181900390910190a1005b3480156101e657600080fd5b506101ef610486565b005b3480156101fd57600080fd5b506101ef600160a060020a0360043516610510565b6101ef600160a060020a036004351660243561061b565b34801561023557600080fd5b5061023e610b86565b604080519115158252519081900360200190f35b34801561025e57600080fd5b50610267610b96565b60408051600160a060020a039092168252519081900360200190f35b34801561028f57600080fd5b50610267610ba5565b3480156102a457600080fd5b506101ef600160a060020a0360043516610bb4565b3480156102c557600080fd5b506101ef610cbf565b3480156102da57600080fd5b506101ef600435610d47565b3480156102f257600080fd5b506101ef610e4d565b34801561030757600080fd5b5061023e610f57565b34801561031c57600080fd5b50610267610f7b565b34801561033157600080fd5b5061023e610f8a565b34801561034657600080fd5b506101ef600160a060020a0360043581169060243516604435610f9a565b34801561037057600080fd5b50610267610ff7565b34801561038557600080fd5b50610267611006565b34801561039a57600080fd5b506103a3611015565b60408051918252519081900360200190f35b3480156103c157600080fd5b506101ef600160a060020a0360043516602435151561101b565b3480156103e757600080fd5b506103a3611238565b3480156103fc57600080fd5b506101ef61123e565b34801561041157600080fd5b506101ef600160a060020a03600435166112b1565b34801561043257600080fd5b506101ef6113bc565b34801561044757600080fd5b5061023e611442565b34801561045c57600080fd5b506101ef600160a060020a0360043516611465565b34801561047d57600080fd5b5061023e611570565b61048f33611592565b15156104d3576040805160e560020a62461bcd02815260206004820152601660248201526000805160206117d9833981519152604482015290519081900360640190fd5b6004805477ff0000000000000000000000000000000000000000000000191677010000000000000000000000000000000000000000000000179055565b61051933611592565b151561055d576040805160e560020a62461bcd02815260206004820152601660248201526000805160206117d9833981519152604482015290519081900360640190fd5b610565610f57565b156105ba576040805160e560020a62461bcd02815260206004820152600d60248201527f544b4e206973206c6f636b656400000000000000000000000000000000000000604482015290519081900360640190fd5b60018054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff19909116811790915560408051918252517f2aeed92123e61fe64748a447c2ba122c4bfc0201d1ed5149e9ce9ede5adda5459181900360200190a150565b6001548190600090600160a060020a038581169116141561075857600254604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152600160a060020a039283166024820152604481018590529051918616916323b872dd916064808201926020929091908290030181600087803b1580156106ab57600080fd5b505af11580156106bf573d6000803e3d6000fd5b505050506040513d60208110156106d557600080fd5b50511515610753576040805160e560020a62461bcd02815260206004820152603360248201527f544b4e207472616e736665722066726f6d2065787465726e616c206163636f7560448201527f6e742077617320756e7375636365737366756c00000000000000000000000000606482015290519081900360840190fd5b610b2d565b6107836103e8600554016107776103e8866115a690919063ffffffff16565b9063ffffffff6115df16565b9150610795838363ffffffff61160216565b9050600160a060020a03841615610a0b57600354604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152600160a060020a039283166024820152604481018490529051918616916323b872dd916064808201926020929091908290030181600087803b15801561081b57600080fd5b505af115801561082f573d6000803e3d6000fd5b505050506040513d602081101561084557600080fd5b505115156108e9576040805160e560020a62461bcd02815260206004820152604360248201527f4552433230206c6963656e6365416d6f756e74207472616e736665722066726f60448201527f6d2065787465726e616c206163636f756e742077617320756e7375636365737360648201527f66756c0000000000000000000000000000000000000000000000000000000000608482015290519081900360a40190fd5b600254604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152600160a060020a039283166024820152604481018590529051918616916323b872dd916064808201926020929091908290030181600087803b15801561095e57600080fd5b505af1158015610972573d6000803e3d6000fd5b505050506040513d602081101561098857600080fd5b50511515610a06576040805160e560020a62461bcd02815260206004820152603b60248201527f455243323020746f6b656e207472616e736665722066726f6d2065787465726e60448201527f616c206163636f756e742077617320756e7375636365737366756c0000000000606482015290519081900360840190fd5b610ad9565b348314610a62576040805160e560020a62461bcd02815260206004820152601f60248201527f4554482073656e74206973206e6f7420657175616c20746f20616d6f756e7400604482015290519081900360640190fd5b600354604051600160a060020a039091169082156108fc029083906000818181858888f19350505050158015610a9c573d6000803e3d6000fd5b50600254604051600160a060020a039091169083156108fc029084906000818181858888f19350505050158015610ad7573d6000803e3d6000fd5b505b60035460408051338152600160a060020a0392831660208201529186168282015260608201839052517fdd9dfad7b30d6b224e235f89565871419d3dec3b563a4e231f12d2cc97f9acfc9181900360800190a15b60025460408051338152600160a060020a0392831660208201529186168282015260608201849052517fc8a7b0bd71097b47b2cad75e4e939d2aeb7fae88110e68f93b83fed08e9d3c389181900360800190a150505050565b60005460a060020a900460ff1690565b600454600160a060020a031690565b600354600160a060020a031690565b610bbd33611592565b1515610c01576040805160e560020a62461bcd02815260206004820152601660248201526000805160206117d9833981519152604482015290519081900360640190fd5b610c09611570565b15610c5e576040805160e560020a62461bcd02815260206004820152601960248201527f686f6c64657220636f6e7472616374206973206c6f636b656400000000000000604482015290519081900360640190fd5b60038054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff19909116811790915560408051918252517ffa6bae0f250db86534a013b1c7a6c4076aa8f8d1ac248771a1c73f4ba366922a9181900360200190a150565b610cc833611592565b1515610d0c576040805160e560020a62461bcd02815260206004820152601660248201526000805160206117d9833981519152604482015290519081900360640190fd5b6004805476ff000000000000000000000000000000000000000000001916760100000000000000000000000000000000000000000000179055565b600454600160a060020a03163314610da9576040805160e560020a62461bcd02815260206004820152601860248201527f7468652073656e6465722069736e2774207468652044414f0000000000000000604482015290519081900360640190fd5b80600111158015610dbc57506103e88111155b1515610e12576040805160e560020a62461bcd02815260206004820152601b60248201527f6c6963656e636520616d6f756e74206f7574206f662072616e67650000000000604482015290519081900360640190fd5b60058190556040805182815290517f587b6068be8c555e2cddc6ad8a56df5e8dfb1533cc063d6703f79c791de151489181900360200190a150565b610e5633611592565b1515610e9a576040805160e560020a62461bcd02815260206004820152601660248201526000805160206117d9833981519152604482015290519081900360640190fd5b60005460a060020a900460ff161515610efd576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916815560408051828152602081019290925280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1565b60045477010000000000000000000000000000000000000000000000900460ff1690565b600054600160a060020a031690565b60045460a060020a900460ff1690565b610fa333611592565b1515610fe7576040805160e560020a62461bcd02815260206004820152601660248201526000805160206117d9833981519152604482015290519081900360640190fd5b610ff2838383611619565b505050565b600154600160a060020a031690565b600254600160a060020a031690565b60055490565b61102433611592565b1515611068576040805160e560020a62461bcd02815260206004820152601660248201526000805160206117d9833981519152604482015290519081900360640190fd5b60005460a060020a900460ff1615156110cb576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b600160a060020a0382161515611151576040805160e560020a62461bcd02815260206004820152602360248201527f6f776e65722063616e6e6f742062652073657420746f207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6000805474ff0000000000000000000000000000000000000000191660a060020a831515908102919091179091556111c05760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b60005460408051600160a060020a039283168152918416602083015280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1506000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6103e881565b61124733611592565b151561128b576040805160e560020a62461bcd02815260206004820152601660248201526000805160206117d9833981519152604482015290519081900360640190fd5b6004805474ff0000000000000000000000000000000000000000191660a060020a179055565b6112ba33611592565b15156112fe576040805160e560020a62461bcd02815260206004820152601660248201526000805160206117d9833981519152604482015290519081900360640190fd5b611306610f8a565b1561135b576040805160e560020a62461bcd02815260206004820152600f60248201527f666c6f6174206973206c6f636b65640000000000000000000000000000000000604482015290519081900360640190fd5b60028054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff19909116811790915560408051918252517f9af2841b0db134bda87280e2a9cababb156f95023c87023d708a677d61b4b6d89181900360200190a150565b6113c533611592565b1515611409576040805160e560020a62461bcd02815260206004820152601660248201526000805160206117d9833981519152604482015290519081900360640190fd5b6004805475ff00000000000000000000000000000000000000000019167501000000000000000000000000000000000000000000179055565b600454760100000000000000000000000000000000000000000000900460ff1690565b61146e33611592565b15156114b2576040805160e560020a62461bcd02815260206004820152601660248201526000805160206117d9833981519152604482015290519081900360640190fd5b6114ba611442565b1561150f576040805160e560020a62461bcd02815260206004820152600d60248201527f44414f206973206c6f636b656400000000000000000000000000000000000000604482015290519081900360640190fd5b60048054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff19909116811790915560408051918252517fd32c17b277c7e87842861153d758814a267634f4308ec2461f88756df7dd70689181900360200190a150565b6004547501000000000000000000000000000000000000000000900460ff1690565b600054600160a060020a0390811691161490565b6000808315156115b957600091506115d8565b508282028284828115156115c957fe5b04146115d457600080fd5b8091505b5092915050565b6000808083116115ee57600080fd5b82848115156115f957fe5b04949350505050565b6000808383111561161257600080fd5b5050900390565b600160a060020a038216151561166557604051600160a060020a0384169082156108fc029083906000818181858888f1935050505015801561165f573d6000803e3d6000fd5b50611789565b81600160a060020a031663a9059cbb84836040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b1580156116e157600080fd5b505af11580156116f5573d6000803e3d6000fd5b505050506040513d602081101561170b57600080fd5b50511515611789576040805160e560020a62461bcd02815260206004820152602560248201527f455243323020746f6b656e207472616e736665722077617320756e737563636560448201527f737366756c000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60408051600160a060020a0380861682528416602082015280820183905290517ff7a40077ff7a04c7e61f6f26fb13774259ddf1b6bce9ecf26a8276cdd39926839181900360600190a1505050560073656e646572206973206e6f7420616e206f776e657200000000000000000000a165627a7a72305820c730e6bd6e321957cab9813e7774e9d7bba014408eb0ad114becdf9c6bb6d0500029","srcmap":"1320:8846:13:-;;;2192:80;;;-1:-1:-1;;;;;;2192:80:13;2230:42;2192:80;;;3430:377;5:2:-1;;;;30:1;27;20:12;5:2;3430:377:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1527:6:10;:18;;-1:-1:-1;;;;;;1527:18:10;-1:-1:-1;;;;;1527:18:10;;;-1:-1:-1;;;;;;1555:32:10;;;;;;;;;;;;;;;3430:377:13;;;;;;;;;;;1555:32:10;1671:15;;;1670:16;1666:78;;;1707:26;;;-1:-1:-1;;;;;1707:26:10;;;;;;;;;;;;;;;1666:78;1758:43;;;1787:1;1758:43;;-1:-1:-1;;;;;1758:43:10;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3603:20:13;:32;;;3645:12;:22;;-1:-1:-1;;;;;3645:22:13;;;-1:-1:-1;;;;;;3645:22:13;;;;;;;-1:-1:-1;3677:23:13;;;;;;;;;;;;;3714:26;;;3710:91;;3756:19;:34;;-1:-1:-1;;;;;;3756:34:13;-1:-1:-1;;;;;3756:34:13;;;;;3710:91;3430:377;;;;;;1320:8846;;;;;;","srcmap-runtime":"1320:8846:13:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3961:8;:20;3953:60;;;;;-1:-1:-1;;;;;3953:60:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;4028:31;;;4037:10;4028:31;;4049:9;4028:31;;;;;;;;;;;;;;;;;1320:8846;5857:102;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5857:102:13;;;;;;7089:228;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7089:228:13;-1:-1:-1;;;;;7089:228:13;;;;;7970:1282;;-1:-1:-1;;;;;7970:1282:13;;;;;;;3149:94:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3149:94:10;;;;;;;;;;;;;;;;;;;;;;4904:89:13;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4904:89:13;;;;;;;;-1:-1:-1;;;;;4904:89:13;;;;;;;;;;;;;;4701:91;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4701:91:13;;;;6421:211;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6421:211:13;-1:-1:-1;;;;;6421:211:13;;;;;5673:86;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5673:86:13;;;;7439:259;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7439:259:13;;;;;3519:306:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3519:306:10;;;;10052:112:13;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10052:112:13;;;;3908:77:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3908:77:10;;;;9542:92:13;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9542:92:13;;;;9341:122;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9341:122:13;-1:-1:-1;;;;;9341:122:13;;;;;;;;;;;;5093:105;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5093:105:13;;;;4480:91;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4480:91:13;;;;4229:104;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4229:104:13;;;;;;;;;;;;;;;;;;;;2231:801:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2231:801:10;-1:-1:-1;;;;;2231:801:10;;;;;;;;;2141:44:13;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2141:44:13;;;;5304:82;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5304:82:13;;;;6089:196;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6089:196:13;-1:-1:-1;;;;;6089:196:13;;;;;5492:83;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5492:83:13;;;;9885:96;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9885:96:13;;;;6762:196;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6762:196:13;-1:-1:-1;;;;;6762:196:13;;;;;9713:93;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9713:93:13;;;;5857:102;1924:20:10;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1916:55:10;;;;;;;;;;;;;;;5920:25:13;:32;;-1:-1:-1;;5920:32:13;;;;;5857:102::o;7089:228::-;1924:20:10;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1916:55:10;;;;;;;;;;;;;;;7178:26:13;:24;:26::i;:::-;7177:27;7169:53;;;;;-1:-1:-1;;;;;7169:53:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;7232:19;:29;;-1:-1:-1;;;;;7232:29:13;;-1:-1:-1;;7232:29:13;;;;;;;;7276:34;;;;;;;;;;;;;;;;7089:228;:::o;7970:1282::-;8135:19;;8059:7;;8041:15;;-1:-1:-1;;;;;8125:29:13;;;8135:19;;8125:29;8121:1039;;;8217:12;;8178:64;;;;;;8205:10;8178:64;;;;-1:-1:-1;;;;;8217:12:13;;;8178:64;;;;;;;;;;;;:26;;;;;;:64;;;;;;;;;;;;;;;8217:12;8178:26;:64;;;5:2:-1;;;;30:1;27;20:12;5:2;8178:64:13;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8178:64:13;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8178:64:13;8170:128;;;;;;;-1:-1:-1;;;;;8170:128:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8121:1039;;;8342:74;2181:4;8376:20;;:39;8342:29;2181:4;8342:7;:11;;:29;;;;:::i;:::-;:33;:74;:33;:74;:::i;:::-;8329:87;-1:-1:-1;8451:23:13;:7;8329:87;8451:23;:11;:23;:::i;:::-;8430:44;-1:-1:-1;;;;;;8493:20:13;;;8489:568;;8580:12;;8541:67;;;;;;8568:10;8541:67;;;;-1:-1:-1;;;;;8580:12:13;;;8541:67;;;;;;;;;;;;:26;;;;;;:67;;;;;;;;;;;;;;;8580:12;8541:26;:67;;;5:2:-1;;;;30:1;27;20:12;5:2;8541:67:13;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8541:67:13;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8541:67:13;8533:147;;;;;;;-1:-1:-1;;;;;8533:147:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8745:12;;8706:64;;;;;;8733:10;8706:64;;;;-1:-1:-1;;;;;8745:12:13;;;8706:64;;;;;;;;;;;;:26;;;;;;:64;;;;;;;;;;;;;;;8745:12;8706:26;:64;;;5:2:-1;;;;30:1;27;20:12;5:2;8706:64:13;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8706:64:13;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8706:64:13;8698:136;;;;;;;-1:-1:-1;;;;;8698:136:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8489:568;;;8881:9;:20;;8873:64;;;;;-1:-1:-1;;;;;8873:64:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;8955:12;;:36;;-1:-1:-1;;;;;8955:12:13;;;;:36;;;;;8977:13;;8955:12;:36;:12;:36;8977:13;8955:12;:36;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;9009:12:13;;:33;;-1:-1:-1;;;;;9009:12:13;;;;:33;;;;;9031:10;;9009:12;:33;:12;:33;9031:10;9009:12;:33;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9009:33:13;8489:568;9113:12;;9076:73;;;9101:10;9076:73;;-1:-1:-1;;;;;9113:12:13;;;9076:73;;;;;;;;;;;;;;;;;;;;;;;;;;;8121:1039;9212:12;;9175:70;;;9200:10;9175:70;;-1:-1:-1;;;;;9212:12:13;;;9175:70;;;;;;;;;;;;;;;;;;;;;;;;;;;7970:1282;;;;:::o;3149:94:10:-;3198:4;3221:15;-1:-1:-1;;;3221:15:10;;;;;3149:94::o;4904:89:13:-;4975:11;;-1:-1:-1;;;;;4975:11:13;4904:89;:::o;4701:91::-;4773:12;;-1:-1:-1;;;;;4773:12:13;4701:91;:::o;6421:211::-;1924:20:10;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1916:55:10;;;;;;;;;;;;;;;6501:14:13;:12;:14::i;:::-;6500:15;6492:53;;;;;-1:-1:-1;;;;;6492:53:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;6555:12;:25;;-1:-1:-1;;;;;6555:25:13;;-1:-1:-1;;6555:25:13;;;;;;;;6595:30;;;;;;;;;;;;;;;;6421:211;:::o;5673:86::-;1924:20:10;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1916:55:10;;;;;;;;;;;;;;;5728:17:13;:24;;-1:-1:-1;;5728:24:13;;;;;5673:86::o;7439:259::-;2885:11;;-1:-1:-1;;;;;2885:11:13;2871:10;:25;2863:62;;;;;-1:-1:-1;;;;;2863:62:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;7525:10;7520:1;:15;;:49;;;;;2181:4;7539:10;:30;;7520:49;7512:89;;;;;;;-1:-1:-1;;;;;7512:89:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;7611:20;:33;;;7659:32;;;;;;;;;;;;;;;;;7439:259;:::o;3519:306:10:-;1924:20;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1916:55:10;;;;;;;;;;;;;;;3640:15;;-1:-1:-1;;;3640:15:10;;;;3632:57;;;;;;;-1:-1:-1;;;;;3632:57:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;3760:1;3743:19;;-1:-1:-1;;3743:19:10;;;3778:40;;;;;;;;;;;;;;;;;;;;;;;;;3519:306::o;10052:112:13:-;10132:25;;;;;;;;10052:112::o;3908:77:10:-;3946:7;3972:6;-1:-1:-1;;;;;3972:6:10;3908:77;:::o;9542:92:13:-;9609:18;;-1:-1:-1;;;9609:18:13;;;;;9542:92::o;9341:122::-;1924:20:10;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1916:55:10;;;;;;;;;;;;;;;9428:28:13;9435:3;9440:6;9448:7;9428:6;:28::i;:::-;9341:122;;;:::o;5093:105::-;5172:19;;-1:-1:-1;;;;;5172:19:13;5093:105;:::o;4480:91::-;4552:12;;-1:-1:-1;;;;;4552:12:13;4480:91;:::o;4229:104::-;4306:20;;4229:104;:::o;2231:801:10:-;1924:20;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1916:55:10;;;;;;;;;;;;;;;2388:15;;-1:-1:-1;;;2388:15:10;;;;2380:57;;;;;;;-1:-1:-1;;;;;2380:57:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2518:22:10;;;;2510:70;;;;;-1:-1:-1;;;;;2510:70:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2665:15;:31;;-1:-1:-1;;2665:31:10;-1:-1:-1;;;2665:31:10;;;;;;;;;;;;;2775:75;;2814:25;;;-1:-1:-1;;;;;2814:25:10;;;;;;;;;;;;;;;2775:75;2931:6;;2910:38;;;-1:-1:-1;;;;;2931:6:10;;;2910:38;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3008:6:10;:17;;-1:-1:-1;;3008:17:10;-1:-1:-1;;;;;3008:17:10;;;;;;;;;;2231:801::o;2141:44:13:-;2181:4;2141:44;:::o;5304:82::-;1924:20:10;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1916:55:10;;;;;;;;;;;;;;;5354:18:13;:25;;-1:-1:-1;;5354:25:13;-1:-1:-1;;;5354:25:13;;;5304:82::o;6089:196::-;1924:20:10;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1916:55:10;;;;;;;;;;;;;;;6167:13:13;:11;:13::i;:::-;6166:14;6158:42;;;;;-1:-1:-1;;;;;6158:42:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;6210:12;:24;;-1:-1:-1;;;;;6210:24:13;;-1:-1:-1;;6210:24:13;;;;;;;;6249:29;;;;;;;;;;;;;;;;6089:196;:::o;5492:83::-;1924:20:10;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1916:55:10;;;;;;;;;;;;;;;5543:18:13;:25;;-1:-1:-1;;5543:25:13;;;;;5492:83::o;9885:96::-;9957:17;;;;;;;;9885:96::o;6762:196::-;1924:20:10;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1916:55:10;;;;;;;;;;;;;;;6843:18:13;:16;:18::i;:::-;6842:19;6834:45;;;;;-1:-1:-1;;;;;6834:45:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;6889:11;:21;;-1:-1:-1;;;;;6889:21:13;;-1:-1:-1;;6889:21:13;;;;;;;;6925:26;;;;;;;;;;;;;;;;6762:196;:::o;9713:93::-;9781:18;;;;;;;;9713:93::o;4091:107:10:-;4150:4;4185:6;-1:-1:-1;;;;;4185:6:10;;;4173:18;;;;4091:107::o;1376:381:2:-;1434:7;;1658:6;;1654:35;;;1681:1;1674:8;;;;1654:35;-1:-1:-1;1707:5:2;;;1711:1;1707;:5;1726;;;;;;;;:10;1718:19;;;;;;1751:1;1744:8;;1376:381;;;;;;:::o;1867:270::-;1925:7;;1948:5;;;1940:14;;;;;;2034:1;2030;:5;;;;;;;;;1867:270;-1:-1:-1;;;;1867:270:2:o;2250:131::-;2308:7;;2331:6;;;;2323:15;;;;;;-1:-1:-1;;2356:5:2;;;2250:131::o;1350:362:6:-;-1:-1:-1;;;;;1476:20:6;;;1472:189;;;1512:21;;-1:-1:-1;;;;;1512:12:6;;;:21;;;;;1525:7;;1512:21;;;;1525:7;1512:12;:21;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1512:21:6;1472:189;;;1578:6;-1:-1:-1;;;;;1572:22:6;;1595:3;1600:7;1572:36;;;;;;;;;;;;;-1:-1:-1;;;;;1572:36:6;-1:-1:-1;;;;;1572:36:6;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1572:36:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1572:36:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1572:36:6;1564:86;;;;;;;-1:-1:-1;;;;;1564:86:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1676:29;;;-1:-1:-1;;;;;1676:29:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;1350:362;;;:::o"},"wallet.sol:AddressWhitelist":{"bin":"","bin-runtime":"","srcmap":"","srcmap-runtime":""},"wallet.sol:ControllableOwnable":{"bin":"","bin-runtime":"","srcmap":"","srcmap-runtime":""},"wallet.sol:DailyLimitTrait":{"bin":"6080604052348015600f57600080fd5b50603580601d6000396000f3006080604052600080fd00a165627a7a72305820517417f312f95dcc961376b13ee947e6c0c54ca43c0bce814eb16ccdf73663f70029","bin-runtime":"6080604052600080fd00a165627a7a72305820517417f312f95dcc961376b13ee947e6c0c54ca43c0bce814eb16ccdf73663f70029","srcmap":"10813:3328:14:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10813:3328:14;;;;;;;","srcmap-runtime":"10813:3328:14:-;;;;;"},"wallet.sol:GasTopUpLimit":{"bin":"","bin-runtime":"","srcmap":"","srcmap-runtime":""},"wallet.sol:LoadLimit":{"bin":"","bin-runtime":"","srcmap":"","srcmap-runtime":""},"wallet.sol:SpendLimit":{"bin":"","bin-runtime":"","srcmap":"","srcmap-runtime":""},"wallet.sol:Vault":{"bin":"","bin-runtime":"","srcmap":"","srcmap-runtime":""},"wallet.sol:Wallet":{"bin":"60806040523480156200001157600080fd5b5060405160e08062004adb83398101604090815281516020830151918301516060840151608085015160a086015160c09096015160018054600160a060020a0319908116600160a060020a038088169190911792839055600080549382169383169390931783556002859055600380549092169088161760a060020a60ff0219167401000000000000000000000000000000000000000089151581029190911791829055969895969495939489918991889188918791849183918891889160ff919004161515620001195760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b6040805160008152600160a060020a038416602082015281517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea5929181900390910190a150506040805160a081810183528382526020808301859052428385018190526000606080860182905260809586018290526009889055600a97909755600b829055600c819055600d805460ff19908116909155600e98909855855193840186526706f05b59d3b200008085529284018390529483018190529482018490529101829052600f8190556010556011919091556012556013805490911690555062000214935050640100000000620002b7810204915050565b50505050509150506000811115156200028e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f737461626c65636f696e206e6f74207365740000000000000000000000000000604482015290519081900360640190fd5b620002a66127108202640100000000620003f4810204565b5050601a5550620005719350505050565b6060600080600080600080620002de600e5462000442640100000000026401000000009004565b600160a060020a0316633efec5e96040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b1580156200033557600080fd5b505af11580156200034a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260e08110156200037457600080fd5b8101908080516401000000008111156200038d57600080fd5b82016020810184811115620003a157600080fd5b8151640100000000811182820187101715620003bc57600080fd5b5050602082015160408301516060840151608085015160a086015160c090960151949f939e50919c509a509850919650945092505050565b60148190556040805160a0810182528281526020810183905242918101829052600060608201819052608090910181905260158390556016929092556017556018556019805460ff19169055565b60008054604080517f0178b8bf000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691630178b8bf9160248082019260209290919082900301818787803b158015620004aa57600080fd5b505af1158015620004bf573d6000803e3d6000fd5b505050506040513d6020811015620004d657600080fd5b5051604080517f3b3b57de000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691633b3b57de916024808201926020929091908290030181600087803b1580156200053d57600080fd5b505af115801562000552573d6000803e3d6000fd5b505050506040513d60208110156200056957600080fd5b505192915050565b61455a80620005816000396000f3006080604052600436106102585763ffffffff60e060020a60003504166301ffc9a781146102ea578063027ef3eb146103355780630f3a85d81461035c578063100f23fd146103765780631efd02991461038e5780632121dc75146103a357806321ce918d146103b85780632587a6a2146103d057806326d05ab2146103e5578063294f4025146103fa578063324e9f531461045f57806332531c3c146104745780633a43199f146104955780633bfec254146104ac5780633c672eb7146104c45780633f579f42146104dc57806347b55a9d1461050d5780635adc02ab146105225780635d2362a81461053a5780636137d6701461054f57806365e6bd8a1461056f578063715018a61461058457806374624c5514610599578063747c31d6146105b15780637d73b231146105c65780637d7d0046146105f75780637fd004fa1461060c578063877337b01461062c5780638da5cb5b146106415780639b0dfd2714610656578063b221f3161461066b578063b242e53414610683578063b87e21ef146106a9578063be40ba79146106cd578063beabacc8146106e2578063c4856cd91461070c578063c583143814610721578063cbd2ac6814610736578063cc0e7e561461074e578063cd7958dd14610763578063ce0b5bd5146107b8578063d251fefc146107d0578063da84b1ed146107e8578063de212bf3146107fd578063e2b4ce9714610812578063e3d670d714610827578063e61c51ca14610848578063eadd3cea14610860578063f36febda14610878578063f40b51f81461089c578063f41c4319146108b4578063f4217648146108cc575b36156102ae576040805160e560020a62461bcd02815260206004820152601a60248201527f6d73672064617461206e6565647320746f20626520656d707479000000000000604482015290519081900360640190fd5b6040805133815234602082015281517f88a5966d370b9919b20f3e2c13ff65706f196a4e32cc2c12bf57088f88525874929181900390910190a1005b3480156102f657600080fd5b506103217bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19600435166108ec565b604080519115158252519081900360200190f35b34801561034157600080fd5b5061034a610934565b60408051918252519081900360200190f35b34801561036857600080fd5b5061037460043561093b565b005b34801561038257600080fd5b50610374600435610a6c565b34801561039a57600080fd5b5061034a610c8f565b3480156103af57600080fd5b50610321610ca0565b3480156103c457600080fd5b50610374600435610cc1565b3480156103dc57600080fd5b5061034a610d4f565b3480156103f157600080fd5b50610321610d55565b34801561040657600080fd5b5061040f610d5e565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561044b578181015183820152602001610433565b505050509050019250505060405180910390f35b34801561046b57600080fd5b50610321610dc0565b34801561048057600080fd5b50610321600160a060020a0360043516610dc9565b610374600160a060020a0360043516602435610dde565b3480156104b857600080fd5b50610374600435611112565b3480156104d057600080fd5b5061037460043561123d565b3480156104e857600080fd5b5061037460048035600160a060020a03169060248035916044359182019101356112d3565b34801561051957600080fd5b5061040f611605565b34801561052e57600080fd5b50610374600435611665565b34801561054657600080fd5b5061034a6119c2565b34801561055b57600080fd5b5061037460048035602481019101356119ce565b34801561057b57600080fd5b50610321611c68565b34801561059057600080fd5b50610374611c71565b3480156105a557600080fd5b50610374600435611d8c565b3480156105bd57600080fd5b5061034a611eb5565b3480156105d257600080fd5b506105db611ebb565b60408051600160a060020a039092168252519081900360200190f35b34801561060357600080fd5b5061034a611eca565b34801561061857600080fd5b506103746004803560248101910135611ed6565b34801561063857600080fd5b5061034a6122c9565b34801561064d57600080fd5b506105db6122cf565b34801561066257600080fd5b5061034a6122de565b34801561067757600080fd5b506103746004356122e4565b34801561068f57600080fd5b50610374600160a060020a03600435166024351515612407565b3480156106b557600080fd5b5061034a600160a060020a0360043516602435612646565b3480156106d957600080fd5b506103216126f1565b3480156106ee57600080fd5b50610374600160a060020a0360043581169060243516604435612700565b34801561071857600080fd5b5061034a6129fb565b34801561072d57600080fd5b50610321612a01565b34801561074257600080fd5b50610374600435612a0a565b34801561075a57600080fd5b5061034a612e33565b34801561076f57600080fd5b506040805160206004803580820135838102808601850190965280855261034a95369593946024949385019291829185019084908082843750949750612e399650505050505050565b3480156107c457600080fd5b50610374600435612ee6565b3480156107dc57600080fd5b506105db60043561310d565b3480156107f457600080fd5b5061034a613135565b34801561080957600080fd5b5061032161313b565b34801561081e57600080fd5b5061034a613149565b34801561083357600080fd5b5061034a600160a060020a036004351661314f565b34801561085457600080fd5b506103746004356131fc565b34801561086c57600080fd5b50610374600435613367565b34801561088457600080fd5b5061034a600160a060020a03600435166024356133bf565b3480156108a857600080fd5b506103746004356135bd565b3480156108c057600080fd5b50610374600435613615565b3480156108d857600080fd5b50610374600480356024810191013561366d565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1981167f01ffc9a700000000000000000000000000000000000000000000000000000000145b919050565b600c545b90565b610944336139b3565b1515610988576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b8066038d7ea4c68000111580156109a757506706f05b59d3b200008111155b1515610a23576040805160e560020a62461bcd02815260206004820152602e60248201527f67617320746f7020757020616d6f756e74206973206f7574736964652074686560448201527f206d696e2f6d61782072616e6765000000000000000000000000000000000000606482015290519081900360840190fd5b610a2e600f826139c7565b604080513381526020810183905281517f41ff5d5ce3b7935893a4e7269ec5caae9cca5e3bf0eb4b21d2f443489667112e929181900390910190a150565b610a75336139b3565b80610a845750610a8433613a3f565b1515610ada576040805160e560020a62461bcd02815260206004820152601a60248201527f656974686572206f776e6572206f7220636f6e74726f6c6c6572000000000000604482015290519081900360640190fd5b60085460ff161515610b5c576040805160e560020a62461bcd02815260206004820152602960248201527f77686974656c697374206164646974696f6e20686173206e6f74206265656e2060448201527f7375626d69747465640000000000000000000000000000000000000000000000606482015290519081900360840190fd5b610bbf6006805480602002602001604051908101604052809291908181526020018280548015610bb557602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610b97575b5050505050612e39565b8114610c3b576040805160e560020a62461bcd02815260206004820152603560248201527f68617368206f66207468652070656e64696e672077686974656c69737420616460448201527f646974696f6e20646f6573206e6f74206d617463680000000000000000000000606482015290519081900360840190fd5b610c47600660006143c9565b6008805460ff19169055604080513381526020810183905281517f7794eff834d760583543e6e510e717a5e66d2c064e225f4db448343c3e66afcf929181900390910190a150565b6000610c9b6015613ad8565b905090565b60035474010000000000000000000000000000000000000000900460ff1690565b610cca336139b3565b1515610d0e576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b610d19600982613afe565b6040805182815290517f4b1b970c8a0fa761e7803ed70c13d7aca71904b13df60fbe03f981da1730da919181900360200190a150565b600f5490565b60085460ff1681565b60606007805480602002602001604051908101604052809291908181526020018280548015610db657602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610d98575b5050505050905090565b60195460ff1690565b60046020526000908152604090205460ff1681565b600080610dea336139b3565b1515610e2e576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b610e3784613b64565b1515610e8d576040805160e560020a62461bcd02815260206004820152601260248201527f746f6b656e206e6f74206c6f616461626c650000000000000000000000000000604482015290519081900360640190fd5b610e9784846133bf565b9150610ea4601583613b7e565b610eaf601a54613c2a565b9050600160a060020a0384161561104b5783600160a060020a031663095ea7b382856040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b158015610f2357600080fd5b505af1158015610f37573d6000803e3d6000fd5b505050506040513d6020811015610f4d57600080fd5b50511515610fcb576040805160e560020a62461bcd02815260206004820152602560248201527f455243323020746f6b656e20617070726f76616c2077617320756e737563636560448201527f737366756c000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b80600160a060020a0316631b3c96b485856040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050600060405180830381600087803b15801561102e57600080fd5b505af1158015611042573d6000803e3d6000fd5b505050506110c8565b80600160a060020a0316631b3c96b48486866040518463ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a03168152602001828152602001925050506000604051808303818588803b1580156110ae57600080fd5b505af11580156110c2573d6000803e3d6000fd5b50505050505b60408051600160a060020a03861681526020810185905281517f5f65674bec9af81f71be68674135a0ea3f163fb91984e3893d06da9f6ea2ce8a929181900390910190a150505050565b61111b336139b3565b151561115f576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b8066038d7ea4c680001115801561117857506014548111155b15156111f4576040805160e560020a62461bcd02815260206004820152602d60248201527f63617264206c6f616420616d6f756e74206973206f757473696465207468652060448201527f6d696e2f6d61782072616e676500000000000000000000000000000000000000606482015290519081900360840190fd5b6111ff6015826139c7565b604080513381526020810183905281517f0b05243483e17c3f3377aee82b7d47e5700b48288695fc08b7ecc2759afa44ef929181900390910190a150565b611246336139b3565b151561128a576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b6112956009826139c7565b604080513381526020810183905281517f068f112e5ec923d412be64779fe69e0fcbb6784c6617e94cccc8fd348f2e0f21929181900390910190a150565b6000806000806112e2336139b3565b1515611326576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b600485106114c75761136a86868080601f0160208091040260200160405190810160405280939291908181526020018383808284375060009450613d219350505050565b935063ffffffff841663a9059cbb148061138d575063ffffffff841663095ea7b3145b156114c7576044851015611411576040805160e560020a62461bcd02815260206004820152602b60248201527f696e76616c6964207472616e73666572202f20617070726f7665207472616e7360448201527f616374696f6e2064617461000000000000000000000000000000000000000000606482015290519081900360840190fd5b61144d86868080601f0160208091040260200160405190810160405280939291908181526020018383808284375060249450613dfa9350505050565b925061148b86868080601f0160208091040260200160405190810160405280939291908181526020018383808284375060109450613e6d9350505050565b600160a060020a03811660009081526004602052604090205490925060ff1615156114c7576114ba8884612646565b90506114c7600982613b7e565b600160a060020a03881660009081526004602052604090205460ff1615156114f4576114f4600988613b7e565b61153388888888905089898080601f01602080910402602001604051908101604052809392919081815260200183838082843750613f3c945050505050565b1515611589576040805160e560020a62461bcd02815260206004820152601c60248201527f657865637574696e67207472616e73616374696f6e206661696c656400000000604482015290519081900360640190fd5b7faf022f6b53b11c364e2dfc0aea08eb9416c94f2661451ea82ead8831385617a6888888886040518085600160a060020a0316600160a060020a03168152602001848152602001806020018281038252848482818152602001925080828437604051920182900397509095505050505050a15050505050505050565b60606006805480602002602001604051908101604052809291908181526020018280548015610db657602002820191906000526020600020908154600160a060020a03168152600190910190602001808311610d98575050505050905090565b600061167033613a3f565b15156116b4576040805160e560020a62461bcd02815260206004820152601a60248201526000805160206144ef833981519152604482015290519081900360640190fd5b60085460ff161515611736576040805160e560020a62461bcd02815260206004820152602960248201527f77686974656c697374206164646974696f6e20686173206e6f74206265656e2060448201527f7375626d69747465640000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6117976006805480602002602001604051908101604052809291908181526020018280548015610bb557602002820191906000526020600020908154600160a060020a03168152600190910190602001808311610b97575050505050612e39565b8214611813576040805160e560020a62461bcd02815260206004820152603360248201527f68617368206f66207468652070656e64696e672077686974656c69737420616460448201527f646974696f6e20646f206e6f74206d6174636800000000000000000000000000606482015290519081900360840190fd5b5060005b60065481101561190e576004600060068381548110151561183457fe5b6000918252602080832090910154600160a060020a0316835282019290925260400190205460ff1615156119065760016004600060068481548110151561187757fe5b600091825260208083209190910154600160a060020a031683528201929092526040019020805460ff19169115159190911790556006805460059190839081106118bd57fe5b600091825260208083209091015483546001810185559383529120909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039092169190911790555b600101611817565b7fb2f6cccee7a369e23e293c25aa19bef80af11eb26deba3ea0f2a02783f752e4a3360066040518083600160a060020a0316600160a060020a0316815260200180602001828103825283818154815260200191508054801561199957602002820191906000526020600020905b8154600160a060020a0316815260019091019060200180831161197b575b5050935050505060405180910390a16119b4600660006143c9565b50506008805460ff19169055565b6000610c9b6009613ad8565b6119d7336139b3565b1515611a1b576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b60085460ff16158015611a365750600854610100900460ff16155b1515611ab2576040805160e560020a62461bcd02815260206004820152602e60248201527f77686974656c697374206f7065726174696f6e2068617320616c72656164792060448201527f6265656e207375626d6974746564000000000000000000000000000000000000606482015290519081900360840190fd5b60085462010000900460ff161515611b3a576040805160e560020a62461bcd02815260206004820152602260248201527f77686974656c69737420686173206e6f74206265656e20696e697469616c697a60448201527f6564000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60008111611bb8576040805160e560020a62461bcd02815260206004820152602260248201527f70656e64696e672077686974656c6973742072656d6f76616c20697320656d7060448201527f7479000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b611bc4600783836143ea565b506008805461ff00191661010017905560408051602080840282810182019093528382527ffbc0e5ca6c7e4858daf0fdb185ef5186203e74ec9c64737e93c0aeaec596e1d19285928592611c2d9285918591829185019084908082843750612e39945050505050565b604080516020808201849052828252918101849052908190606082019086908602808284376040519201829003965090945050505050a15050565b600d5460ff1690565b611c7a336139b3565b1515611cbe576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b60035474010000000000000000000000000000000000000000900460ff161515611d32576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b6003805473ffffffffffffffffffffffffffffffffffffffff19169055604080516000808252602082015281517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea5929181900390910190a1565b611d95336139b3565b1515611dd9576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b8066038d7ea4c6800011158015611df857506706f05b59d3b200008111155b1515611e74576040805160e560020a62461bcd02815260206004820152602e60248201527f67617320746f7020757020616d6f756e74206973206f7574736964652074686560448201527f206d696e2f6d61782072616e6765000000000000000000000000000000000000606482015290519081900360840190fd5b611e7f600f82613afe565b6040805182815290517faf2a77cd04c3cc155588dd3bf67b310ab4fb3b1da3cf6b8d7d4d2aa1d09b794c9181900360200190a150565b601a5490565b600154600160a060020a031690565b6000610c9b600f613ad8565b611edf336139b3565b1515611f23576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b60085460ff16158015611f3e5750600854610100900460ff16155b1515611fba576040805160e560020a62461bcd02815260206004820152602e60248201527f77686974656c697374206f7065726174696f6e2068617320616c72656164792060448201527f6265656e207375626d6974746564000000000000000000000000000000000000606482015290519081900360840190fd5b8181808060200260200160405190810160405280939291908181526020018383602002808284375060009450505050505b815181101561211357612014828281518110151561200557fe5b906020019060200201516139b3565b1561207d576040805160e560020a62461bcd02815260206004820152602d602482015260008051602061450f83398151915260448201527f6f776e6572206164647265737300000000000000000000000000000000000000606482015290519081900360840190fd5b815160009083908390811061208e57fe5b60209081029091010151600160a060020a0316141561210b576040805160e560020a62461bcd02815260206004820152602c602482015260008051602061450f83398151915260448201527f7a65726f20616464726573730000000000000000000000000000000000000000606482015290519081900360840190fd5b600101611feb565b60085462010000900460ff16151561219b576040805160e560020a62461bcd02815260206004820152602260248201527f77686974656c69737420686173206e6f74206265656e20696e697469616c697a60448201527f6564000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60008311612219576040805160e560020a62461bcd02815260206004820152602360248201527f70656e64696e672077686974656c697374206164646974696f6e20697320656d60448201527f7074790000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b612225600685856143ea565b506008805460ff1916600117905560408051602080860282810182019093528582527f9c80b3b5f68b3e017766d59e8d09b34efe6462b05c398f35cab9e271d9bc3b9c928792879261228c9285918591829185019084908082843750612e39945050505050565b604080516020808201849052828252918101849052908190606082019086908602808284376040519201829003965090945050505050a150505050565b600e5490565b600354600160a060020a031690565b60095490565b6122ed336139b3565b1515612331576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b8066038d7ea4c680001115801561234a57506014548111155b15156123c6576040805160e560020a62461bcd02815260206004820152602d60248201527f63617264206c6f616420616d6f756e74206973206f757473696465207468652060448201527f6d696e2f6d61782072616e676500000000000000000000000000000000000000606482015290519081900360840190fd5b6123d1601582613afe565b6040805182815290517fc178d379965e5657b6fc57494e392f121a14119215dfb422aad7db4cc03f2d109181900360200190a150565b612410336139b3565b1515612454576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b60035474010000000000000000000000000000000000000000900460ff1615156124c8576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b600160a060020a038216151561254e576040805160e560020a62461bcd02815260206004820152602360248201527f6f776e65722063616e6e6f742062652073657420746f207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6003805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000831515908102919091179091556125ce5760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b60035460408051600160a060020a039283168152918416602083015280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1506003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60008060008061265586613f5f565b5050509350935093505080156126e3578115156126bc576040805160e560020a62461bcd02815260206004820152600f60248201527f746f6b656e207261746520697320300000000000000000000000000000000000604482015290519081900360640190fd5b6126dc836126d0878563ffffffff61409116565b9063ffffffff6140c616565b93506126e8565b600093505b50505092915050565b60085462010000900460ff1681565b600061270b336139b3565b151561274f576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b818015156127a7576040805160e560020a62461bcd02815260206004820152601d60248201527f70726f76696465642076616c75652063616e6e6f74206265207a65726f000000604482015290519081900360640190fd5b600160a060020a0385161515612807576040805160e560020a62461bcd02815260206004820181905260248201527f5f746f20616464726573732063616e6e6f742062652073657420746f20307830604482015290519081900360640190fd5b600160a060020a03851660009081526004602052604090205460ff16151561285357829150600160a060020a03841615612848576128458484612646565b91505b612853600983613b7e565b600160a060020a038416156129725783600160a060020a031663a9059cbb86856040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b1580156128c557600080fd5b505af11580156128d9573d6000803e3d6000fd5b505050506040513d60208110156128ef57600080fd5b5051151561296d576040805160e560020a62461bcd02815260206004820152602560248201527f455243323020746f6b656e207472616e736665722077617320756e737563636560448201527f737366756c000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6129aa565b604051600160a060020a0386169084156108fc029085906000818181858888f193505050501580156129a8573d6000803e3d6000fd5b505b60408051600160a060020a0380881682528616602082015280820185905290517fd1ba4ac2e2a11b5101f6cb4d978f514a155b421e8ec396d2d9abaf0bb02917ee9181900360600190a15050505050565b60185490565b60135460ff1690565b600080612a1633613a3f565b1515612a5a576040805160e560020a62461bcd02815260206004820152601a60248201526000805160206144ef833981519152604482015290519081900360640190fd5b600854610100900460ff161515612ae1576040805160e560020a62461bcd02815260206004820152602860248201527f77686974656c6973742072656d6f76616c20686173206e6f74206265656e207360448201527f75626d6974746564000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b612b426007805480602002602001604051908101604052809291908181526020018280548015610bb557602002820191906000526020600020908154600160a060020a03168152600190910190602001808311610b97575050505050612e39565b8314612be4576040805160e560020a62461bcd02815260206004820152604760248201527f68617368206f66207468652070656e64696e672077686974656c69737420726560448201527f6d6f76616c20646f6573206e6f74206d617463682074686520636f6e6669726d60648201527f6564206861736800000000000000000000000000000000000000000000000000608482015290519081900360a40190fd5b600091505b600754821015612d7d5760046000600784815481101515612c0657fe5b6000918252602080832090910154600160a060020a0316835282019290925260400190205460ff1615612d7257600060046000600785815481101515612c4857fe5b600091825260208083209190910154600160a060020a031683528201929092526040018120805460ff19169215159290921790915590505b600554612c9490600163ffffffff6140e916565b811015612d5d576007805483908110612ca957fe5b60009182526020909120015460058054600160a060020a039092169183908110612ccf57fe5b600091825260209091200154600160a060020a03161415612d5557600580546000198101908110612cfc57fe5b60009182526020909120015460058054600160a060020a039092169183908110612d2257fe5b9060005260206000200160006101000a815481600160a060020a030219169083600160a060020a03160217905550612d5d565b600101612c80565b6005805490612d7090600019830161445a565b505b600190910190612be9565b7fd218c430fa348f4ce67791021b6b89c0c3eacd4ead1d8f5b83c60038ec28249b3360076040518083600160a060020a0316600160a060020a03168152602001806020018281038252838181548152602001915080548015612e0857602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311612dea575b5050935050505060405180910390a1612e23600760006143c9565b50506008805461ff001916905550565b60125490565b60008160405160200180828051906020019060200280838360005b83811015612e6c578181015183820152602001612e54565b505050509050019150506040516020818303038152906040526040518082805190602001908083835b60208310612eb45780518252601f199092019160209182019101612e95565b5181516020939093036101000a6000190180199091169216919091179052604051920182900390912095945050505050565b612eef336139b3565b80612efe5750612efe33613a3f565b1515612f54576040805160e560020a62461bcd02815260206004820152601a60248201527f656974686572206f776e6572206f7220636f6e74726f6c6c6572000000000000604482015290519081900360640190fd5b600854610100900460ff161515612fdb576040805160e560020a62461bcd02815260206004820152602860248201527f77686974656c6973742072656d6f76616c20686173206e6f74206265656e207360448201527f75626d6974746564000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b61303c6007805480602002602001604051908101604052809291908181526020018280548015610bb557602002820191906000526020600020908154600160a060020a03168152600190910190602001808311610b97575050505050612e39565b81146130b8576040805160e560020a62461bcd02815260206004820152603260248201527f68617368206f66207468652070656e64696e672077686974656c69737420726560448201527f6d6f76616c20646f206e6f74206d617463680000000000000000000000000000606482015290519081900360840190fd5b6130c4600760006143c9565b6008805461ff0019169055604080513381526020810183905281517f13c935eb475aa0f6e931fece83e2ac44569ce2d53460d29a6dedab40b965c8a3929181900390910190a150565b600580548290811061311b57fe5b600091825260209091200154600160a060020a0316905081565b60155490565b600854610100900460ff1681565b60025490565b6000600160a060020a038216156131f457604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a038416916370a082319160248083019260209291908290030181600087803b1580156131c157600080fd5b505af11580156131d5573d6000803e3d6000fd5b505050506040513d60208110156131eb57600080fd5b5051905061092f565b50303161092f565b80801515613254576040805160e560020a62461bcd02815260206004820152601d60248201527f70726f76696465642076616c75652063616e6e6f74206265207a65726f000000604482015290519081900360640190fd5b61325d336139b3565b8061326c575061326c33613a3f565b15156132c2576040805160e560020a62461bcd02815260206004820152601a60248201527f656974686572206f776e6572206f7220636f6e74726f6c6c6572000000000000604482015290519081900360640190fd5b6132cd600f83613b7e565b6132d56122cf565b600160a060020a03166108fc839081150290604051600060405180830381858888f1935050505015801561330d573d6000803e3d6000fd5b507f611b7c0d84fda988026215bef9b3e4d81cbceced7e679be6d5e044b588467c0e336133386122cf565b60408051600160a060020a03938416815291909216602082015280820185905290519081900360600190a15050565b61337033613a3f565b15156133b4576040805160e560020a62461bcd02815260206004820152601a60248201526000805160206144ef833981519152604482015290519081900360640190fd5b611295600982614100565b60008060008060008060006133d2614193565b600160a060020a031689600160a060020a031614156133f3578796506135b1565b600160a060020a038916156134da5761340b89613f5f565b5050509650965096505083151561346c576040805160e560020a62461bcd02815260206004820152601660248201527f746f6b656e206973206e6f7420617661696c61626c6500000000000000000000604482015290519081900360640190fd5b8415156134c3576040805160e560020a62461bcd02815260206004820152600f60248201527f746f6b656e207261746520697320300000000000000000000000000000000000604482015290519081900360640190fd5b6134d7866126d08a8863ffffffff61409116565b97505b6134e261420e565b50505093509350935050801515613543576040805160e560020a62461bcd02815260206004820152601660248201527f746f6b656e206973206e6f7420617661696c61626c6500000000000000000000604482015290519081900360640190fd5b81151561359a576040805160e560020a62461bcd02815260206004820152601460248201527f737461626c65636f696e20726174652069732030000000000000000000000000604482015290519081900360640190fd5b6135ae826126d08a8663ffffffff61409116565b96505b50505050505092915050565b6135c633613a3f565b151561360a576040805160e560020a62461bcd02815260206004820152601a60248201526000805160206144ef833981519152604482015290519081900360640190fd5b6111ff601582614100565b61361e33613a3f565b1515613662576040805160e560020a62461bcd02815260206004820152601a60248201526000805160206144ef833981519152604482015290519081900360640190fd5b610a2e600f82614100565b6000613678336139b3565b15156136bc576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b8282808060200260200160405190810160405280939291908181526020018383602002808284375060009450505050505b815181101561380657613707828281518110151561200557fe5b15613770576040805160e560020a62461bcd02815260206004820152602d602482015260008051602061450f83398151915260448201527f6f776e6572206164647265737300000000000000000000000000000000000000606482015290519081900360840190fd5b815160009083908390811061378157fe5b60209081029091010151600160a060020a031614156137fe576040805160e560020a62461bcd02815260206004820152602c602482015260008051602061450f83398151915260448201527f7a65726f20616464726573730000000000000000000000000000000000000000606482015290519081900360840190fd5b6001016136ed565b60085462010000900460ff161561388d576040805160e560020a62461bcd02815260206004820152602660248201527f77686974656c6973742068617320616c7265616479206265656e20696e69746960448201527f616c697a65640000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600092505b8383101561393e576001600460008787878181106138ac57fe5b60209081029290920135600160a060020a0316835250810191909152604001600020805460ff191691151591909117905560058585858181106138eb57fe5b83546001808201865560009586526020958690209091018054929095029390930135600160a060020a031673ffffffffffffffffffffffffffffffffffffffff1990911617909255939093019250613892565b6008805462ff0000191662010000179055604080513380825260208083018481529383018890527fb2f6cccee7a369e23e293c25aa19bef80af11eb26deba3ea0f2a02783f752e4a93919289928992606083019085908502808284376040519201829003965090945050505050a15050505050565b600354600160a060020a0390811691161490565b600482015460ff1615613a24576040805160e560020a62461bcd02815260206004820181905260248201527f6461696c79206c696d69742068617320616c7265616479206265656e20736574604482015290519081900360640190fd5b613a2e828261431b565b50600401805460ff19166001179055565b6000613a4c600254613c2a565b600160a060020a031663b429afeb836040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b158015613aa657600080fd5b505af1158015613aba573d6000803e3d6000fd5b505050506040513d6020811015613ad057600080fd5b505192915050565b600081600201546201518001421115613af35750805461092f565b50600181015461092f565b600482015460ff161515613b5c576040805160e560020a62461bcd02815260206004820152601660248201527f6c696d697420686173206e6f74206265656e2073657400000000000000000000604482015290519081900360640190fd5b600390910155565b600080613b7083613f5f565b509098975050505050505050565b613b878261433e565b6001820154811115613c09576040805160e560020a62461bcd02815260206004820152603260248201527f617661696c61626c652068617320746f2062652067726561746572206f72206560448201527f7175616c20746f2075736520616d6f756e740000000000000000000000000000606482015290519081900360840190fd5b6001820154613c1e908263ffffffff6140e916565b82600101819055505050565b60008054604080517f0178b8bf000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691630178b8bf9160248082019260209290919082900301818787803b158015613c9157600080fd5b505af1158015613ca5573d6000803e3d6000fd5b505050506040513d6020811015613cbb57600080fd5b5051604080517f3b3b57de000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691633b3b57de916024808201926020929091908290030181600087803b158015613aa657600080fd5b60008060008084600401865110151515613d85576040805160e560020a62461bcd02815260206004820152601460248201527f736c6963696e67206f7574206f662072616e6765000000000000000000000000604482015290519081900360640190fd5b5060009150819050805b60048160ff161015613df05761010083029250858160ff168601815181101515613db557fe5b01602001517f010000000000000000000000000000000000000000000000000000000000000090819004810204928301929150600101613d8f565b5090949350505050565b60008082602001845110151515613e5b576040805160e560020a62461bcd02815260206004820152601460248201527f736c6963696e67206f7574206f662072616e6765000000000000000000000000604482015290519081900360640190fd5b505081810160200151805b5092915050565b60008060008084601401865110151515613ed1576040805160e560020a62461bcd02815260206004820152601460248201527f736c6963696e67206f7574206f662072616e6765000000000000000000000000604482015290519081900360640190fd5b5060009150819050805b60148160ff161015613df05761010083029250858160ff168601815181101515613f0157fe5b01602001517f010000000000000000000000000000000000000000000000000000000000000090819004810204928301929150600101613edb565b6000806040516020840160008287838a8c6187965a03f198975050505050505050565b6060600080600080600080613f75600e54613c2a565b600160a060020a0316631f69565f896040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b158015613fcf57600080fd5b505af1158015613fe3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260e081101561400c57600080fd5b81019080805164010000000081111561402457600080fd5b8201602081018481111561403757600080fd5b815164010000000081118282018710171561405157600080fd5b5050602082015160408301516060840151608085015160a086015160c090960151949e50929c50909a509850965090945092505050919395979092949650565b6000808315156140a45760009150613e66565b508282028284828115156140b457fe5b04146140bf57600080fd5b9392505050565b6000808083116140d557600080fd5b82848115156140e057fe5b04949350505050565b600080838311156140f957600080fd5b5050900390565b60038201548114614181576040805160e560020a62461bcd02815260206004820152602960248201527f636f6e6669726d656420616e64207375626d6974746564206c696d697473206460448201527f6f6e74206d617463680000000000000000000000000000000000000000000000606482015290519081900360840190fd5b61418f82836003015461431b565b5050565b60006141a0600e54613c2a565b600160a060020a031663e9cbd8226040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156141dd57600080fd5b505af11580156141f1573d6000803e3d6000fd5b505050506040513d602081101561420757600080fd5b5051905090565b6060600080600080600080614224600e54613c2a565b600160a060020a0316633efec5e96040518163ffffffff1660e060020a028152600401600060405180830381600087803b15801561426157600080fd5b505af1158015614275573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260e081101561429e57600080fd5b8101908080516401000000008111156142b657600080fd5b820160208101848111156142c957600080fd5b81516401000000008111828201871017156142e357600080fd5b5050602082015160408301516060840151608085015160a086015160c090960151949f939e50919c509a509850919650945092505050565b6143248261433e565b808255600182015481101561418f57815460018301555050565b6002810154600090614359906201518063ffffffff6143b716565b42111561418f5761437e620151806126d08460020154426140e990919063ffffffff16565b90506143a7614396826201518063ffffffff61409116565b60028401549063ffffffff6143b716565b6002830155815460018301555050565b6000828201838110156140bf57600080fd5b50805460008255906000526020600020908101906143e79190614483565b50565b82805482825590600052602060002090810192821561444a579160200282015b8281111561444a57815473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0384351617825560209092019160019091019061440a565b5061445692915061449d565b5090565b81548183558181111561447e5760008381526020902061447e918101908301614483565b505050565b61093891905b808211156144565760008155600101614489565b61093891905b8082111561445657805473ffffffffffffffffffffffffffffffffffffffff191681556001016144a3560073656e646572206973206e6f7420616e206f776e65720000000000000000000073656e646572206973206e6f74206120636f6e74726f6c6c657200000000000070726f76696465642077686974656c69737420636f6e7461696e732074686520a165627a7a72305820088d8f3def4506637bda6d36374fb74cb4bbc7c2550ce8c58aba78a2564232eb0029","bin-runtime":"6080604052600436106102585763ffffffff60e060020a60003504166301ffc9a781146102ea578063027ef3eb146103355780630f3a85d81461035c578063100f23fd146103765780631efd02991461038e5780632121dc75146103a357806321ce918d146103b85780632587a6a2146103d057806326d05ab2146103e5578063294f4025146103fa578063324e9f531461045f57806332531c3c146104745780633a43199f146104955780633bfec254146104ac5780633c672eb7146104c45780633f579f42146104dc57806347b55a9d1461050d5780635adc02ab146105225780635d2362a81461053a5780636137d6701461054f57806365e6bd8a1461056f578063715018a61461058457806374624c5514610599578063747c31d6146105b15780637d73b231146105c65780637d7d0046146105f75780637fd004fa1461060c578063877337b01461062c5780638da5cb5b146106415780639b0dfd2714610656578063b221f3161461066b578063b242e53414610683578063b87e21ef146106a9578063be40ba79146106cd578063beabacc8146106e2578063c4856cd91461070c578063c583143814610721578063cbd2ac6814610736578063cc0e7e561461074e578063cd7958dd14610763578063ce0b5bd5146107b8578063d251fefc146107d0578063da84b1ed146107e8578063de212bf3146107fd578063e2b4ce9714610812578063e3d670d714610827578063e61c51ca14610848578063eadd3cea14610860578063f36febda14610878578063f40b51f81461089c578063f41c4319146108b4578063f4217648146108cc575b36156102ae576040805160e560020a62461bcd02815260206004820152601a60248201527f6d73672064617461206e6565647320746f20626520656d707479000000000000604482015290519081900360640190fd5b6040805133815234602082015281517f88a5966d370b9919b20f3e2c13ff65706f196a4e32cc2c12bf57088f88525874929181900390910190a1005b3480156102f657600080fd5b506103217bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19600435166108ec565b604080519115158252519081900360200190f35b34801561034157600080fd5b5061034a610934565b60408051918252519081900360200190f35b34801561036857600080fd5b5061037460043561093b565b005b34801561038257600080fd5b50610374600435610a6c565b34801561039a57600080fd5b5061034a610c8f565b3480156103af57600080fd5b50610321610ca0565b3480156103c457600080fd5b50610374600435610cc1565b3480156103dc57600080fd5b5061034a610d4f565b3480156103f157600080fd5b50610321610d55565b34801561040657600080fd5b5061040f610d5e565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561044b578181015183820152602001610433565b505050509050019250505060405180910390f35b34801561046b57600080fd5b50610321610dc0565b34801561048057600080fd5b50610321600160a060020a0360043516610dc9565b610374600160a060020a0360043516602435610dde565b3480156104b857600080fd5b50610374600435611112565b3480156104d057600080fd5b5061037460043561123d565b3480156104e857600080fd5b5061037460048035600160a060020a03169060248035916044359182019101356112d3565b34801561051957600080fd5b5061040f611605565b34801561052e57600080fd5b50610374600435611665565b34801561054657600080fd5b5061034a6119c2565b34801561055b57600080fd5b5061037460048035602481019101356119ce565b34801561057b57600080fd5b50610321611c68565b34801561059057600080fd5b50610374611c71565b3480156105a557600080fd5b50610374600435611d8c565b3480156105bd57600080fd5b5061034a611eb5565b3480156105d257600080fd5b506105db611ebb565b60408051600160a060020a039092168252519081900360200190f35b34801561060357600080fd5b5061034a611eca565b34801561061857600080fd5b506103746004803560248101910135611ed6565b34801561063857600080fd5b5061034a6122c9565b34801561064d57600080fd5b506105db6122cf565b34801561066257600080fd5b5061034a6122de565b34801561067757600080fd5b506103746004356122e4565b34801561068f57600080fd5b50610374600160a060020a03600435166024351515612407565b3480156106b557600080fd5b5061034a600160a060020a0360043516602435612646565b3480156106d957600080fd5b506103216126f1565b3480156106ee57600080fd5b50610374600160a060020a0360043581169060243516604435612700565b34801561071857600080fd5b5061034a6129fb565b34801561072d57600080fd5b50610321612a01565b34801561074257600080fd5b50610374600435612a0a565b34801561075a57600080fd5b5061034a612e33565b34801561076f57600080fd5b506040805160206004803580820135838102808601850190965280855261034a95369593946024949385019291829185019084908082843750949750612e399650505050505050565b3480156107c457600080fd5b50610374600435612ee6565b3480156107dc57600080fd5b506105db60043561310d565b3480156107f457600080fd5b5061034a613135565b34801561080957600080fd5b5061032161313b565b34801561081e57600080fd5b5061034a613149565b34801561083357600080fd5b5061034a600160a060020a036004351661314f565b34801561085457600080fd5b506103746004356131fc565b34801561086c57600080fd5b50610374600435613367565b34801561088457600080fd5b5061034a600160a060020a03600435166024356133bf565b3480156108a857600080fd5b506103746004356135bd565b3480156108c057600080fd5b50610374600435613615565b3480156108d857600080fd5b50610374600480356024810191013561366d565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1981167f01ffc9a700000000000000000000000000000000000000000000000000000000145b919050565b600c545b90565b610944336139b3565b1515610988576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b8066038d7ea4c68000111580156109a757506706f05b59d3b200008111155b1515610a23576040805160e560020a62461bcd02815260206004820152602e60248201527f67617320746f7020757020616d6f756e74206973206f7574736964652074686560448201527f206d696e2f6d61782072616e6765000000000000000000000000000000000000606482015290519081900360840190fd5b610a2e600f826139c7565b604080513381526020810183905281517f41ff5d5ce3b7935893a4e7269ec5caae9cca5e3bf0eb4b21d2f443489667112e929181900390910190a150565b610a75336139b3565b80610a845750610a8433613a3f565b1515610ada576040805160e560020a62461bcd02815260206004820152601a60248201527f656974686572206f776e6572206f7220636f6e74726f6c6c6572000000000000604482015290519081900360640190fd5b60085460ff161515610b5c576040805160e560020a62461bcd02815260206004820152602960248201527f77686974656c697374206164646974696f6e20686173206e6f74206265656e2060448201527f7375626d69747465640000000000000000000000000000000000000000000000606482015290519081900360840190fd5b610bbf6006805480602002602001604051908101604052809291908181526020018280548015610bb557602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610b97575b5050505050612e39565b8114610c3b576040805160e560020a62461bcd02815260206004820152603560248201527f68617368206f66207468652070656e64696e672077686974656c69737420616460448201527f646974696f6e20646f6573206e6f74206d617463680000000000000000000000606482015290519081900360840190fd5b610c47600660006143c9565b6008805460ff19169055604080513381526020810183905281517f7794eff834d760583543e6e510e717a5e66d2c064e225f4db448343c3e66afcf929181900390910190a150565b6000610c9b6015613ad8565b905090565b60035474010000000000000000000000000000000000000000900460ff1690565b610cca336139b3565b1515610d0e576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b610d19600982613afe565b6040805182815290517f4b1b970c8a0fa761e7803ed70c13d7aca71904b13df60fbe03f981da1730da919181900360200190a150565b600f5490565b60085460ff1681565b60606007805480602002602001604051908101604052809291908181526020018280548015610db657602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610d98575b5050505050905090565b60195460ff1690565b60046020526000908152604090205460ff1681565b600080610dea336139b3565b1515610e2e576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b610e3784613b64565b1515610e8d576040805160e560020a62461bcd02815260206004820152601260248201527f746f6b656e206e6f74206c6f616461626c650000000000000000000000000000604482015290519081900360640190fd5b610e9784846133bf565b9150610ea4601583613b7e565b610eaf601a54613c2a565b9050600160a060020a0384161561104b5783600160a060020a031663095ea7b382856040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b158015610f2357600080fd5b505af1158015610f37573d6000803e3d6000fd5b505050506040513d6020811015610f4d57600080fd5b50511515610fcb576040805160e560020a62461bcd02815260206004820152602560248201527f455243323020746f6b656e20617070726f76616c2077617320756e737563636560448201527f737366756c000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b80600160a060020a0316631b3c96b485856040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050600060405180830381600087803b15801561102e57600080fd5b505af1158015611042573d6000803e3d6000fd5b505050506110c8565b80600160a060020a0316631b3c96b48486866040518463ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a03168152602001828152602001925050506000604051808303818588803b1580156110ae57600080fd5b505af11580156110c2573d6000803e3d6000fd5b50505050505b60408051600160a060020a03861681526020810185905281517f5f65674bec9af81f71be68674135a0ea3f163fb91984e3893d06da9f6ea2ce8a929181900390910190a150505050565b61111b336139b3565b151561115f576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b8066038d7ea4c680001115801561117857506014548111155b15156111f4576040805160e560020a62461bcd02815260206004820152602d60248201527f63617264206c6f616420616d6f756e74206973206f757473696465207468652060448201527f6d696e2f6d61782072616e676500000000000000000000000000000000000000606482015290519081900360840190fd5b6111ff6015826139c7565b604080513381526020810183905281517f0b05243483e17c3f3377aee82b7d47e5700b48288695fc08b7ecc2759afa44ef929181900390910190a150565b611246336139b3565b151561128a576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b6112956009826139c7565b604080513381526020810183905281517f068f112e5ec923d412be64779fe69e0fcbb6784c6617e94cccc8fd348f2e0f21929181900390910190a150565b6000806000806112e2336139b3565b1515611326576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b600485106114c75761136a86868080601f0160208091040260200160405190810160405280939291908181526020018383808284375060009450613d219350505050565b935063ffffffff841663a9059cbb148061138d575063ffffffff841663095ea7b3145b156114c7576044851015611411576040805160e560020a62461bcd02815260206004820152602b60248201527f696e76616c6964207472616e73666572202f20617070726f7665207472616e7360448201527f616374696f6e2064617461000000000000000000000000000000000000000000606482015290519081900360840190fd5b61144d86868080601f0160208091040260200160405190810160405280939291908181526020018383808284375060249450613dfa9350505050565b925061148b86868080601f0160208091040260200160405190810160405280939291908181526020018383808284375060109450613e6d9350505050565b600160a060020a03811660009081526004602052604090205490925060ff1615156114c7576114ba8884612646565b90506114c7600982613b7e565b600160a060020a03881660009081526004602052604090205460ff1615156114f4576114f4600988613b7e565b61153388888888905089898080601f01602080910402602001604051908101604052809392919081815260200183838082843750613f3c945050505050565b1515611589576040805160e560020a62461bcd02815260206004820152601c60248201527f657865637574696e67207472616e73616374696f6e206661696c656400000000604482015290519081900360640190fd5b7faf022f6b53b11c364e2dfc0aea08eb9416c94f2661451ea82ead8831385617a6888888886040518085600160a060020a0316600160a060020a03168152602001848152602001806020018281038252848482818152602001925080828437604051920182900397509095505050505050a15050505050505050565b60606006805480602002602001604051908101604052809291908181526020018280548015610db657602002820191906000526020600020908154600160a060020a03168152600190910190602001808311610d98575050505050905090565b600061167033613a3f565b15156116b4576040805160e560020a62461bcd02815260206004820152601a60248201526000805160206144ef833981519152604482015290519081900360640190fd5b60085460ff161515611736576040805160e560020a62461bcd02815260206004820152602960248201527f77686974656c697374206164646974696f6e20686173206e6f74206265656e2060448201527f7375626d69747465640000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6117976006805480602002602001604051908101604052809291908181526020018280548015610bb557602002820191906000526020600020908154600160a060020a03168152600190910190602001808311610b97575050505050612e39565b8214611813576040805160e560020a62461bcd02815260206004820152603360248201527f68617368206f66207468652070656e64696e672077686974656c69737420616460448201527f646974696f6e20646f206e6f74206d6174636800000000000000000000000000606482015290519081900360840190fd5b5060005b60065481101561190e576004600060068381548110151561183457fe5b6000918252602080832090910154600160a060020a0316835282019290925260400190205460ff1615156119065760016004600060068481548110151561187757fe5b600091825260208083209190910154600160a060020a031683528201929092526040019020805460ff19169115159190911790556006805460059190839081106118bd57fe5b600091825260208083209091015483546001810185559383529120909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039092169190911790555b600101611817565b7fb2f6cccee7a369e23e293c25aa19bef80af11eb26deba3ea0f2a02783f752e4a3360066040518083600160a060020a0316600160a060020a0316815260200180602001828103825283818154815260200191508054801561199957602002820191906000526020600020905b8154600160a060020a0316815260019091019060200180831161197b575b5050935050505060405180910390a16119b4600660006143c9565b50506008805460ff19169055565b6000610c9b6009613ad8565b6119d7336139b3565b1515611a1b576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b60085460ff16158015611a365750600854610100900460ff16155b1515611ab2576040805160e560020a62461bcd02815260206004820152602e60248201527f77686974656c697374206f7065726174696f6e2068617320616c72656164792060448201527f6265656e207375626d6974746564000000000000000000000000000000000000606482015290519081900360840190fd5b60085462010000900460ff161515611b3a576040805160e560020a62461bcd02815260206004820152602260248201527f77686974656c69737420686173206e6f74206265656e20696e697469616c697a60448201527f6564000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60008111611bb8576040805160e560020a62461bcd02815260206004820152602260248201527f70656e64696e672077686974656c6973742072656d6f76616c20697320656d7060448201527f7479000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b611bc4600783836143ea565b506008805461ff00191661010017905560408051602080840282810182019093528382527ffbc0e5ca6c7e4858daf0fdb185ef5186203e74ec9c64737e93c0aeaec596e1d19285928592611c2d9285918591829185019084908082843750612e39945050505050565b604080516020808201849052828252918101849052908190606082019086908602808284376040519201829003965090945050505050a15050565b600d5460ff1690565b611c7a336139b3565b1515611cbe576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b60035474010000000000000000000000000000000000000000900460ff161515611d32576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b6003805473ffffffffffffffffffffffffffffffffffffffff19169055604080516000808252602082015281517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea5929181900390910190a1565b611d95336139b3565b1515611dd9576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b8066038d7ea4c6800011158015611df857506706f05b59d3b200008111155b1515611e74576040805160e560020a62461bcd02815260206004820152602e60248201527f67617320746f7020757020616d6f756e74206973206f7574736964652074686560448201527f206d696e2f6d61782072616e6765000000000000000000000000000000000000606482015290519081900360840190fd5b611e7f600f82613afe565b6040805182815290517faf2a77cd04c3cc155588dd3bf67b310ab4fb3b1da3cf6b8d7d4d2aa1d09b794c9181900360200190a150565b601a5490565b600154600160a060020a031690565b6000610c9b600f613ad8565b611edf336139b3565b1515611f23576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b60085460ff16158015611f3e5750600854610100900460ff16155b1515611fba576040805160e560020a62461bcd02815260206004820152602e60248201527f77686974656c697374206f7065726174696f6e2068617320616c72656164792060448201527f6265656e207375626d6974746564000000000000000000000000000000000000606482015290519081900360840190fd5b8181808060200260200160405190810160405280939291908181526020018383602002808284375060009450505050505b815181101561211357612014828281518110151561200557fe5b906020019060200201516139b3565b1561207d576040805160e560020a62461bcd02815260206004820152602d602482015260008051602061450f83398151915260448201527f6f776e6572206164647265737300000000000000000000000000000000000000606482015290519081900360840190fd5b815160009083908390811061208e57fe5b60209081029091010151600160a060020a0316141561210b576040805160e560020a62461bcd02815260206004820152602c602482015260008051602061450f83398151915260448201527f7a65726f20616464726573730000000000000000000000000000000000000000606482015290519081900360840190fd5b600101611feb565b60085462010000900460ff16151561219b576040805160e560020a62461bcd02815260206004820152602260248201527f77686974656c69737420686173206e6f74206265656e20696e697469616c697a60448201527f6564000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60008311612219576040805160e560020a62461bcd02815260206004820152602360248201527f70656e64696e672077686974656c697374206164646974696f6e20697320656d60448201527f7074790000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b612225600685856143ea565b506008805460ff1916600117905560408051602080860282810182019093528582527f9c80b3b5f68b3e017766d59e8d09b34efe6462b05c398f35cab9e271d9bc3b9c928792879261228c9285918591829185019084908082843750612e39945050505050565b604080516020808201849052828252918101849052908190606082019086908602808284376040519201829003965090945050505050a150505050565b600e5490565b600354600160a060020a031690565b60095490565b6122ed336139b3565b1515612331576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b8066038d7ea4c680001115801561234a57506014548111155b15156123c6576040805160e560020a62461bcd02815260206004820152602d60248201527f63617264206c6f616420616d6f756e74206973206f757473696465207468652060448201527f6d696e2f6d61782072616e676500000000000000000000000000000000000000606482015290519081900360840190fd5b6123d1601582613afe565b6040805182815290517fc178d379965e5657b6fc57494e392f121a14119215dfb422aad7db4cc03f2d109181900360200190a150565b612410336139b3565b1515612454576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b60035474010000000000000000000000000000000000000000900460ff1615156124c8576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b600160a060020a038216151561254e576040805160e560020a62461bcd02815260206004820152602360248201527f6f776e65722063616e6e6f742062652073657420746f207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6003805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000831515908102919091179091556125ce5760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b60035460408051600160a060020a039283168152918416602083015280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1506003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60008060008061265586613f5f565b5050509350935093505080156126e3578115156126bc576040805160e560020a62461bcd02815260206004820152600f60248201527f746f6b656e207261746520697320300000000000000000000000000000000000604482015290519081900360640190fd5b6126dc836126d0878563ffffffff61409116565b9063ffffffff6140c616565b93506126e8565b600093505b50505092915050565b60085462010000900460ff1681565b600061270b336139b3565b151561274f576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b818015156127a7576040805160e560020a62461bcd02815260206004820152601d60248201527f70726f76696465642076616c75652063616e6e6f74206265207a65726f000000604482015290519081900360640190fd5b600160a060020a0385161515612807576040805160e560020a62461bcd02815260206004820181905260248201527f5f746f20616464726573732063616e6e6f742062652073657420746f20307830604482015290519081900360640190fd5b600160a060020a03851660009081526004602052604090205460ff16151561285357829150600160a060020a03841615612848576128458484612646565b91505b612853600983613b7e565b600160a060020a038416156129725783600160a060020a031663a9059cbb86856040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b1580156128c557600080fd5b505af11580156128d9573d6000803e3d6000fd5b505050506040513d60208110156128ef57600080fd5b5051151561296d576040805160e560020a62461bcd02815260206004820152602560248201527f455243323020746f6b656e207472616e736665722077617320756e737563636560448201527f737366756c000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6129aa565b604051600160a060020a0386169084156108fc029085906000818181858888f193505050501580156129a8573d6000803e3d6000fd5b505b60408051600160a060020a0380881682528616602082015280820185905290517fd1ba4ac2e2a11b5101f6cb4d978f514a155b421e8ec396d2d9abaf0bb02917ee9181900360600190a15050505050565b60185490565b60135460ff1690565b600080612a1633613a3f565b1515612a5a576040805160e560020a62461bcd02815260206004820152601a60248201526000805160206144ef833981519152604482015290519081900360640190fd5b600854610100900460ff161515612ae1576040805160e560020a62461bcd02815260206004820152602860248201527f77686974656c6973742072656d6f76616c20686173206e6f74206265656e207360448201527f75626d6974746564000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b612b426007805480602002602001604051908101604052809291908181526020018280548015610bb557602002820191906000526020600020908154600160a060020a03168152600190910190602001808311610b97575050505050612e39565b8314612be4576040805160e560020a62461bcd02815260206004820152604760248201527f68617368206f66207468652070656e64696e672077686974656c69737420726560448201527f6d6f76616c20646f6573206e6f74206d617463682074686520636f6e6669726d60648201527f6564206861736800000000000000000000000000000000000000000000000000608482015290519081900360a40190fd5b600091505b600754821015612d7d5760046000600784815481101515612c0657fe5b6000918252602080832090910154600160a060020a0316835282019290925260400190205460ff1615612d7257600060046000600785815481101515612c4857fe5b600091825260208083209190910154600160a060020a031683528201929092526040018120805460ff19169215159290921790915590505b600554612c9490600163ffffffff6140e916565b811015612d5d576007805483908110612ca957fe5b60009182526020909120015460058054600160a060020a039092169183908110612ccf57fe5b600091825260209091200154600160a060020a03161415612d5557600580546000198101908110612cfc57fe5b60009182526020909120015460058054600160a060020a039092169183908110612d2257fe5b9060005260206000200160006101000a815481600160a060020a030219169083600160a060020a03160217905550612d5d565b600101612c80565b6005805490612d7090600019830161445a565b505b600190910190612be9565b7fd218c430fa348f4ce67791021b6b89c0c3eacd4ead1d8f5b83c60038ec28249b3360076040518083600160a060020a0316600160a060020a03168152602001806020018281038252838181548152602001915080548015612e0857602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311612dea575b5050935050505060405180910390a1612e23600760006143c9565b50506008805461ff001916905550565b60125490565b60008160405160200180828051906020019060200280838360005b83811015612e6c578181015183820152602001612e54565b505050509050019150506040516020818303038152906040526040518082805190602001908083835b60208310612eb45780518252601f199092019160209182019101612e95565b5181516020939093036101000a6000190180199091169216919091179052604051920182900390912095945050505050565b612eef336139b3565b80612efe5750612efe33613a3f565b1515612f54576040805160e560020a62461bcd02815260206004820152601a60248201527f656974686572206f776e6572206f7220636f6e74726f6c6c6572000000000000604482015290519081900360640190fd5b600854610100900460ff161515612fdb576040805160e560020a62461bcd02815260206004820152602860248201527f77686974656c6973742072656d6f76616c20686173206e6f74206265656e207360448201527f75626d6974746564000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b61303c6007805480602002602001604051908101604052809291908181526020018280548015610bb557602002820191906000526020600020908154600160a060020a03168152600190910190602001808311610b97575050505050612e39565b81146130b8576040805160e560020a62461bcd02815260206004820152603260248201527f68617368206f66207468652070656e64696e672077686974656c69737420726560448201527f6d6f76616c20646f206e6f74206d617463680000000000000000000000000000606482015290519081900360840190fd5b6130c4600760006143c9565b6008805461ff0019169055604080513381526020810183905281517f13c935eb475aa0f6e931fece83e2ac44569ce2d53460d29a6dedab40b965c8a3929181900390910190a150565b600580548290811061311b57fe5b600091825260209091200154600160a060020a0316905081565b60155490565b600854610100900460ff1681565b60025490565b6000600160a060020a038216156131f457604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a038416916370a082319160248083019260209291908290030181600087803b1580156131c157600080fd5b505af11580156131d5573d6000803e3d6000fd5b505050506040513d60208110156131eb57600080fd5b5051905061092f565b50303161092f565b80801515613254576040805160e560020a62461bcd02815260206004820152601d60248201527f70726f76696465642076616c75652063616e6e6f74206265207a65726f000000604482015290519081900360640190fd5b61325d336139b3565b8061326c575061326c33613a3f565b15156132c2576040805160e560020a62461bcd02815260206004820152601a60248201527f656974686572206f776e6572206f7220636f6e74726f6c6c6572000000000000604482015290519081900360640190fd5b6132cd600f83613b7e565b6132d56122cf565b600160a060020a03166108fc839081150290604051600060405180830381858888f1935050505015801561330d573d6000803e3d6000fd5b507f611b7c0d84fda988026215bef9b3e4d81cbceced7e679be6d5e044b588467c0e336133386122cf565b60408051600160a060020a03938416815291909216602082015280820185905290519081900360600190a15050565b61337033613a3f565b15156133b4576040805160e560020a62461bcd02815260206004820152601a60248201526000805160206144ef833981519152604482015290519081900360640190fd5b611295600982614100565b60008060008060008060006133d2614193565b600160a060020a031689600160a060020a031614156133f3578796506135b1565b600160a060020a038916156134da5761340b89613f5f565b5050509650965096505083151561346c576040805160e560020a62461bcd02815260206004820152601660248201527f746f6b656e206973206e6f7420617661696c61626c6500000000000000000000604482015290519081900360640190fd5b8415156134c3576040805160e560020a62461bcd02815260206004820152600f60248201527f746f6b656e207261746520697320300000000000000000000000000000000000604482015290519081900360640190fd5b6134d7866126d08a8863ffffffff61409116565b97505b6134e261420e565b50505093509350935050801515613543576040805160e560020a62461bcd02815260206004820152601660248201527f746f6b656e206973206e6f7420617661696c61626c6500000000000000000000604482015290519081900360640190fd5b81151561359a576040805160e560020a62461bcd02815260206004820152601460248201527f737461626c65636f696e20726174652069732030000000000000000000000000604482015290519081900360640190fd5b6135ae826126d08a8663ffffffff61409116565b96505b50505050505092915050565b6135c633613a3f565b151561360a576040805160e560020a62461bcd02815260206004820152601a60248201526000805160206144ef833981519152604482015290519081900360640190fd5b6111ff601582614100565b61361e33613a3f565b1515613662576040805160e560020a62461bcd02815260206004820152601a60248201526000805160206144ef833981519152604482015290519081900360640190fd5b610a2e600f82614100565b6000613678336139b3565b15156136bc576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b8282808060200260200160405190810160405280939291908181526020018383602002808284375060009450505050505b815181101561380657613707828281518110151561200557fe5b15613770576040805160e560020a62461bcd02815260206004820152602d602482015260008051602061450f83398151915260448201527f6f776e6572206164647265737300000000000000000000000000000000000000606482015290519081900360840190fd5b815160009083908390811061378157fe5b60209081029091010151600160a060020a031614156137fe576040805160e560020a62461bcd02815260206004820152602c602482015260008051602061450f83398151915260448201527f7a65726f20616464726573730000000000000000000000000000000000000000606482015290519081900360840190fd5b6001016136ed565b60085462010000900460ff161561388d576040805160e560020a62461bcd02815260206004820152602660248201527f77686974656c6973742068617320616c7265616479206265656e20696e69746960448201527f616c697a65640000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600092505b8383101561393e576001600460008787878181106138ac57fe5b60209081029290920135600160a060020a0316835250810191909152604001600020805460ff191691151591909117905560058585858181106138eb57fe5b83546001808201865560009586526020958690209091018054929095029390930135600160a060020a031673ffffffffffffffffffffffffffffffffffffffff1990911617909255939093019250613892565b6008805462ff0000191662010000179055604080513380825260208083018481529383018890527fb2f6cccee7a369e23e293c25aa19bef80af11eb26deba3ea0f2a02783f752e4a93919289928992606083019085908502808284376040519201829003965090945050505050a15050505050565b600354600160a060020a0390811691161490565b600482015460ff1615613a24576040805160e560020a62461bcd02815260206004820181905260248201527f6461696c79206c696d69742068617320616c7265616479206265656e20736574604482015290519081900360640190fd5b613a2e828261431b565b50600401805460ff19166001179055565b6000613a4c600254613c2a565b600160a060020a031663b429afeb836040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b158015613aa657600080fd5b505af1158015613aba573d6000803e3d6000fd5b505050506040513d6020811015613ad057600080fd5b505192915050565b600081600201546201518001421115613af35750805461092f565b50600181015461092f565b600482015460ff161515613b5c576040805160e560020a62461bcd02815260206004820152601660248201527f6c696d697420686173206e6f74206265656e2073657400000000000000000000604482015290519081900360640190fd5b600390910155565b600080613b7083613f5f565b509098975050505050505050565b613b878261433e565b6001820154811115613c09576040805160e560020a62461bcd02815260206004820152603260248201527f617661696c61626c652068617320746f2062652067726561746572206f72206560448201527f7175616c20746f2075736520616d6f756e740000000000000000000000000000606482015290519081900360840190fd5b6001820154613c1e908263ffffffff6140e916565b82600101819055505050565b60008054604080517f0178b8bf000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691630178b8bf9160248082019260209290919082900301818787803b158015613c9157600080fd5b505af1158015613ca5573d6000803e3d6000fd5b505050506040513d6020811015613cbb57600080fd5b5051604080517f3b3b57de000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691633b3b57de916024808201926020929091908290030181600087803b158015613aa657600080fd5b60008060008084600401865110151515613d85576040805160e560020a62461bcd02815260206004820152601460248201527f736c6963696e67206f7574206f662072616e6765000000000000000000000000604482015290519081900360640190fd5b5060009150819050805b60048160ff161015613df05761010083029250858160ff168601815181101515613db557fe5b01602001517f010000000000000000000000000000000000000000000000000000000000000090819004810204928301929150600101613d8f565b5090949350505050565b60008082602001845110151515613e5b576040805160e560020a62461bcd02815260206004820152601460248201527f736c6963696e67206f7574206f662072616e6765000000000000000000000000604482015290519081900360640190fd5b505081810160200151805b5092915050565b60008060008084601401865110151515613ed1576040805160e560020a62461bcd02815260206004820152601460248201527f736c6963696e67206f7574206f662072616e6765000000000000000000000000604482015290519081900360640190fd5b5060009150819050805b60148160ff161015613df05761010083029250858160ff168601815181101515613f0157fe5b01602001517f010000000000000000000000000000000000000000000000000000000000000090819004810204928301929150600101613edb565b6000806040516020840160008287838a8c6187965a03f198975050505050505050565b6060600080600080600080613f75600e54613c2a565b600160a060020a0316631f69565f896040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b158015613fcf57600080fd5b505af1158015613fe3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260e081101561400c57600080fd5b81019080805164010000000081111561402457600080fd5b8201602081018481111561403757600080fd5b815164010000000081118282018710171561405157600080fd5b5050602082015160408301516060840151608085015160a086015160c090960151949e50929c50909a509850965090945092505050919395979092949650565b6000808315156140a45760009150613e66565b508282028284828115156140b457fe5b04146140bf57600080fd5b9392505050565b6000808083116140d557600080fd5b82848115156140e057fe5b04949350505050565b600080838311156140f957600080fd5b5050900390565b60038201548114614181576040805160e560020a62461bcd02815260206004820152602960248201527f636f6e6669726d656420616e64207375626d6974746564206c696d697473206460448201527f6f6e74206d617463680000000000000000000000000000000000000000000000606482015290519081900360840190fd5b61418f82836003015461431b565b5050565b60006141a0600e54613c2a565b600160a060020a031663e9cbd8226040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156141dd57600080fd5b505af11580156141f1573d6000803e3d6000fd5b505050506040513d602081101561420757600080fd5b5051905090565b6060600080600080600080614224600e54613c2a565b600160a060020a0316633efec5e96040518163ffffffff1660e060020a028152600401600060405180830381600087803b15801561426157600080fd5b505af1158015614275573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260e081101561429e57600080fd5b8101908080516401000000008111156142b657600080fd5b820160208101848111156142c957600080fd5b81516401000000008111828201871017156142e357600080fd5b5050602082015160408301516060840151608085015160a086015160c090960151949f939e50919c509a509850919650945092505050565b6143248261433e565b808255600182015481101561418f57815460018301555050565b6002810154600090614359906201518063ffffffff6143b716565b42111561418f5761437e620151806126d08460020154426140e990919063ffffffff16565b90506143a7614396826201518063ffffffff61409116565b60028401549063ffffffff6143b716565b6002830155815460018301555050565b6000828201838110156140bf57600080fd5b50805460008255906000526020600020908101906143e79190614483565b50565b82805482825590600052602060002090810192821561444a579160200282015b8281111561444a57815473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0384351617825560209092019160019091019061440a565b5061445692915061449d565b5090565b81548183558181111561447e5760008381526020902061447e918101908301614483565b505050565b61093891905b808211156144565760008155600101614489565b61093891905b8082111561445657805473ffffffffffffffffffffffffffffffffffffffff191681556001016144a3560073656e646572206973206e6f7420616e206f776e65720000000000000000000073656e646572206973206e6f74206120636f6e74726f6c6c657200000000000070726f76696465642077686974656c69737420636f6e7461696e732074686520a165627a7a72305820088d8f3def4506637bda6d36374fb74cb4bbc7c2550ce8c58aba78a2564232eb0029","srcmap":"24944:11009:14:-;;;26199:614;8:9:-1;5:2;;;30:1;27;20:12;5:2;26199:614:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1312:12:9;:23;;-1:-1:-1;;;;;;1312:23:9;;;-1:-1:-1;;;;;1312:23:9;;;;;;;;;;;-1:-1:-1;1345:24:9;;1356:12;;;1345:24;;;;;;;;;1334:15:7;:38;;;1527:6:10;:18;;;;;;;;;-1:-1:-1;;;;;;1555:32:10;;;;;;;;;;;;;;;26199:614:14;;;;;;;;;;;;;;;;;;;;;;;;;;1555:32:10;1671:15;;;;1670:16;1666:78;;;1707:26;;;-1:-1:-1;;;;;1707:26:10;;;;;;;;;;;;;;;1666:78;1758:43;;;1787:1;1758:43;;-1:-1:-1;;;;;1758:43:10;;;;;;;;;;;;;;;;;;;-1:-1:-1;;14539:43:14;;;;;;;;;;;;;;;;;;;14568:3;14539:43;;;;;;-1:-1:-1;14539:43:14;;;;;;;;;;;;;;14525:11;:57;;;;;;;;;;;;;;;;;;;-1:-1:-1;;14525:57:14;;;;;;1366:19:12;:46;;;;16426:77:14;;;;;;;16247:10;16426:77;;;;;;;;;;;;;;;;;;;;;;;;;;16409:14;:94;;;;;;;;;;;;;;;;;;;;-1:-1:-1;26592:20:14;;-1:-1:-1;;26592:18:14;;;;:20;;-1:-1:-1;;26592:20:14:i;:::-;26548:64;;;;;;;;26652:1;26630:19;:23;26622:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26686:78;25283:5;26707:56;;26686:20;;;;:78;:::i;:::-;-1:-1:-1;;26774:12:14;:32;-1:-1:-1;24944:11009:14;;-1:-1:-1;;;;24944:11009:14;2897:199:12;2950:6;2958:7;2967;2976:4;2982;2988;2994:7;3036:32;3048:19;;3036:11;;;:32;;;:::i;:::-;-1:-1:-1;;;;;3020:67:12;;:69;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3020:69:12;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3020:69:12;;;;;;39:16:-1;36:1;17:17;2:54;101:4;3020:69:12;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:3;5:12;;2:2;;;30:1;27;20:12;2:2;3020:69:12;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;218:10;;268:11;251:29;;293:43;;;290:58;-1:-1;239:118;236:2;;;370:1;367;360:12;236:2;-1:-1;;3020:69:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3020:69:12;;-1:-1:-1;3020:69:12;-1:-1:-1;3020:69:12;-1:-1:-1;3020:69:12;;-1:-1:-1;3020:69:12;-1:-1:-1;2897:199:12;-1:-1:-1;;;2897:199:12:o;20064:187:14:-;20129:17;:29;;;20181:63;;;;;;;;;;;;;;;;;20230:3;20181:63;;;;;;-1:-1:-1;20181:63:14;;;;;;;;;;;;;20168:10;:76;;;;;;;;;;;;;;;-1:-1:-1;;20168:76:14;;;20064:187::o;1748:152:9:-;1811:7;1852:4;;:24;;;;;;;;;;;;;;-1:-1:-1;;;;;1852:4:9;;;;:13;;:24;;;;;;;;;;;;;;;1811:7;1852:4;:24;;;5:2:-1;;;;30:1;27;20:12;5:2;1852:24:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1852:24:9;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1852:24:9;1837:56;;;;;;;;;;;;;;-1:-1:-1;;;;;1837:45:9;;;;;;:56;;;;;1852:24;;1837:56;;;;;;;;;:45;:56;;;5:2:-1;;;;30:1;27;20:12;5:2;1837:56:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1837:56:9;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1837:56:9;;1748:152;-1:-1:-1;;1748:152:9:o;24944:11009:14:-;;;;;;;","srcmap-runtime":"24944:11009:14:-;;;;;;;;;-1:-1:-1;;;24944:11009:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21839:8;:20;21831:59;;;;;-1:-1:-1;;;;;21831:59:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;21905:31;;;21914:10;21905:31;;21926:9;21905:31;;;;;;;;;;;;;;;;;24944:11009;23966:135;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;23966:135:14;-1:-1:-1;;23966:135:14;;;;;;;;;;;;;;;;;;;;;;;15783:101;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15783:101:14;;;;;;;;;;;;;;;;;;;;16618:305;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;16618:305:14;;;;;;;6660:715;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6660:715:14;;;;;19511:113;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19511:113:14;;;;3149:94:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3149:94:10;;;;15043:171:14;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;15043:171:14;;;;;17760:103;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17760:103:14;;;;2412:38;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2412:38:14;;;;3455:117;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3455:117:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;3455:117:14;;;;;;;;;;;;;;;;;19731:91;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19731:91:14;;;;2228:44;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2228:44:14;-1:-1:-1;;;;;2228:44:14;;;;;27712:978;;-1:-1:-1;;;;;27712:978:14;;;;;;;18576:280;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;18576:280:14;;;;;14746:153;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;14746:153:14;;;;;28946:1800;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;28946:1800:14;;;;-1:-1:-1;;;;;28946:1800:14;;;;;;;;;;;;;;;;3283:119;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3283:119:14;;;;5455:1151;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5455:1151:14;;;;;15460:115;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15460:115:14;;;;7499:686;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7499:686:14;;;;;;;;;;;;15684:93;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15684:93:14;;;;3519:306:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3519:306:10;;;;17050:323:14;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;17050:323:14;;;;;30809:91;;8:9:-1;5:2;;;30:1;27;20:12;5:2;30809:91:14;;;;1468::9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1468:91:9;;;;;;;;-1:-1:-1;;;;;1468:91:9;;;;;;;;;;;;;;17633:121:14;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17633:121:14;;;;4507:725;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4507:725:14;;;;;;;;;;;;1552:105:12;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1552:105:12;;;;3908:77:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3908:77:10;;;;15581:97:14;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15581:97:14;;;;18971:298;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;18971:298:14;;;;;2231:801:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2231:801:10;-1:-1:-1;;;;;2231:801:10;;;;;;;;;24288:552:14;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;24288:552:14;-1:-1:-1;;;;;24288:552:14;;;;;;;2499:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2499:26:14;;;;22650:1251;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;22650:1251:14;-1:-1:-1;;;;;22650:1251:14;;;;;;;;;;;;19828:99;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19828:99:14;;;;17869;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17869:99:14;;;;8254:1407;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8254:1407:14;;;;;17974:107;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17974:107:14;;;;10491:138;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10491:138:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10491:138:14;;-1:-1:-1;10491:138:14;;-1:-1:-1;;;;;;;10491:138:14;9729:693;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9729:693:14;;;;;2278:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2278:31:14;;;;;19630:95;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19630:95:14;;;;2456:37;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2456:37:14;;;;1629:97:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1629:97:7;;;;22149:224:14;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;22149:224:14;-1:-1:-1;;;;;22149:224:14;;;;;26993:423;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;26993:423:14;;;;;15276:178;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;15276:178:14;;;;;31101:1490;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;31101:1490:14;-1:-1:-1;;;;;31101:1490:14;;;;;;;19330:175;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;19330:175:14;;;;;17440:187;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;17440:187:14;;;;;3703:681;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3703:681:14;;;;;;;;;;;;23966:135;-1:-1:-1;;24059:35:14;;24074:20;24059:35;23966:135;;;;:::o;15783:101::-;15858:19;;15783:101;;:::o;16618:305::-;1924:20:10;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1916:55:10;;;;;;;;;;;;;;;16723:7:14;16184:8;16695:35;;:74;;;;;16247:10;16734:7;:35;;16695:74;16687:133;;;;;;;-1:-1:-1;;;;;16687:133:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16830:34;16840:14;16856:7;16830:9;:34::i;:::-;16879:37;;;16896:10;16879:37;;;;;;;;;;;;;;;;;;;;;16618:305;:::o;6660:715::-;1390:20;1399:10;1390:8;:20::i;:::-;:49;;;;1414:25;1428:10;1414:13;:25::i;:::-;1381:89;;;;;;;-1:-1:-1;;;;;1381:89:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;6807:26;;;;6799:80;;;;;;;-1:-1:-1;;;;;6799:80:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7001:40;7015:25;7001:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7001:40:14;;;;;;;;;;;;;;;;;;;;;:13;:40::i;:::-;6992:49;;6984:115;;;;;-1:-1:-1;;;;;6984:115:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7145:32;7152:25;;7145:32;:::i;:::-;7234:26;:34;;-1:-1:-1;;7234:34:14;;;7323:45;;;7350:10;7323:45;;;;;;;;;;;;;;;;;;;;;6660:715;:::o;19511:113::-;19564:4;19587:30;19606:10;19587:18;:30::i;:::-;19580:37;;19511:113;:::o;3149:94:10:-;3221:15;;;;;;;;3149:94::o;15043:171:14:-;1924:20:10;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1916:55:10;;;;;;;;;;;;;;;15118:40:14;15137:11;15150:7;15118:18;:40::i;:::-;15173:34;;;;;;;;;;;;;;;;;15043:171;:::o;17760:103::-;17836:14;:20;17760:103;:::o;2412:38::-;;;;;;:::o;3455:117::-;3513:9;3541:24;3534:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3534:31:14;;;;;;;;;;;;;;;;;;;;;;;3455:117;:::o;19731:91::-;19801:14;;;;19731:91;:::o;2228:44::-;;;;;;;;;;;;;;;:::o;27712:978::-;27988:20;28276:22;1924:20:10;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1916:55:10;;;;;;;;;;;;;;;27878:24:14;27895:6;27878:16;:24::i;:::-;27870:55;;;;;;;-1:-1:-1;;;;;27870:55:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;28011:36;28031:6;28039:7;28011:19;:36::i;:::-;27988:59;;28177:42;28191:10;28203:15;28177:13;:42::i;:::-;28301:25;28313:12;;28301:11;:25::i;:::-;28276:50;-1:-1:-1;;;;;;28340:20:14;;;28336:299;;28390:6;-1:-1:-1;;;;;28384:21:14;;28406:14;28422:7;28384:46;;;;;-1:-1:-1;;;28384:46:14;;;;;;;-1:-1:-1;;;;;28384:46:14;-1:-1:-1;;;;;28384:46:14;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;28384:46:14;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;28384:46:14;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;28384:46:14;28376:96;;;;;;;-1:-1:-1;;;;;28376:96:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28495:14;-1:-1:-1;;;;;28486:29:14;;28516:6;28524:7;28486:46;;;;;-1:-1:-1;;;28486:46:14;;;;;;;-1:-1:-1;;;;;28486:46:14;-1:-1:-1;;;;;28486:46:14;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;28486:46:14;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;28486:46:14;;;;28336:299;;;28572:14;-1:-1:-1;;;;;28563:29:14;;28599:7;28608:6;28616:7;28563:61;;;;;-1:-1:-1;;;28563:61:14;;;;;;;-1:-1:-1;;;;;28563:61:14;-1:-1:-1;;;;;28563:61:14;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;28563:61:14;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;28563:61:14;;;;;28336:299;28650:32;;;-1:-1:-1;;;;;28650:32:14;;;;;;;;;;;;;;;;;;;;;;;27712:978;;;;:::o;18576:280::-;1924:20:10;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1916:55:10;;;;;;;;;;;;;;;18672:7:14;18364:8;18649:30;;:62;;;;;18694:17;;18683:7;:28;;18649:62;18641:120;;;;;;;-1:-1:-1;;;;;18641:120:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18771:30;18781:10;18793:7;18771:9;:30::i;:::-;18816:33;;;18829:10;18816:33;;;;;;;;;;;;;;;;;;;;;18576:280;:::o;14746:153::-;1924:20:10;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1916:55:10;;;;;;;;;;;;;;;14812:31:14;14822:11;14835:7;14812:9;:31::i;:::-;14858:34;;;14872:10;14858:34;;;;;;;;;;;;;;;;;;;;;14746:153;:::o;28946:1800::-;29212:16;29509:11;29754:19;30119:15;1924:20:10;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1916:55:10;;;;;;;;;;;;;;;29159:1:14;29143:17;;29139:1137;;29231:24;29246:5;;29231:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;29253:1:14;;-1:-1:-1;29231:14:14;;-1:-1:-1;;;;29231:24:14:i;:::-;29212:43;-1:-1:-1;29341:22:14;;;25525:10;29341:22;;:47;;-1:-1:-1;29367:21:14;;;25576:10;29367:21;29341:47;29337:929;;;29432:11;29416:27;;;29408:83;;;;;-1:-1:-1;;;;;29408:83:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29523:25;29534:5;;29523:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;29541:6:14;;-1:-1:-1;29523:10:14;;-1:-1:-1;;;;29523:25:14:i;:::-;29509:39;;29776:30;29792:5;;29776:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;29799:6:14;;-1:-1:-1;29776:15:14;;-1:-1:-1;;;;29776:30:14:i;:::-;-1:-1:-1;;;;;29894:25:14;;;;;;:12;:25;;;;;;29754:52;;-1:-1:-1;29894:25:14;;29893:26;29889:363;;;30137:36;30152:12;30166:6;30137:14;:36::i;:::-;30119:54;;30195:38;30209:11;30222:10;30195:13;:38::i;:::-;-1:-1:-1;;;;;30481:26:14;;;;;;:12;:26;;;;;;;;30480:27;30476:92;;;30523:34;30537:11;30550:6;30523:13;:34::i;:::-;30586:56;30600:12;30614:6;30622:5;;:12;;30636:5;;30586:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;30586:13:14;;-1:-1:-1;;;;;30586:56:14:i;:::-;30578:97;;;;;;;-1:-1:-1;;;;;30578:97:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;30691:48;30711:12;30725:6;30733:5;;30691:48;;;;-1:-1:-1;;;;;30691:48:14;-1:-1:-1;;;;;30691:48:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;30691:48:14;;-1:-1:-1;;;;;;30691:48:14;28946:1800;;;;;;;;:::o;3283:119::-;3342:9;3370:25;3363:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3363:32:14;;;;;;;;;;;;;;;;;;;;;;3283:119;:::o;5455:1151::-;5958:6;1489:25:7;1503:10;1489:13;:25::i;:::-;1481:64;;;;;;;-1:-1:-1;;;;;1481:64:7;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1481:64:7;;;;;;;;;;;;;;;5613:26:14;;;;5605:80;;;;;;;-1:-1:-1;;;;;5605:80:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5807:40;5821:25;5807:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5807:40:14;;;;;;;;;;;;;;;;;;;;:13;:40::i;:::-;5798:49;;5790:113;;;;;-1:-1:-1;;;;;5790:113:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5967:1:14;5953:381;5974:25;:32;5970:36;;5953:381;;;6082:12;:42;6095:25;6121:1;6095:28;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6095:28:14;6082:42;;;;;;;;;;;;;;;6081:43;6077:247;;;6238:4;6193:12;:42;6206:25;6232:1;6206:28;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6206:28:14;6193:42;;;;;;;;;;;;:49;;-1:-1:-1;;6193:49:14;;;;;;;;;;6280:25;:28;;6260:14;;6280:25;6306:1;;6280:28;;;;;;;;;;;;;;;;;;27:10:-1;;6280:28:14;23:18:-1;;45:23;;6260:49:14;;;;;;;;;;-1:-1:-1;;6260:49:14;-1:-1:-1;;;;;6280:28:14;;;6260:49;;;;;;6077:247;6008:3;;5953:381;;;6384:55;6401:10;6413:25;6384:55;;;;-1:-1:-1;;;;;6384:55:14;-1:-1:-1;;;;;6384:55:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6384:55:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6485:32;6492:25;;6485:32;:::i;:::-;-1:-1:-1;;6565:26:14;:34;;-1:-1:-1;;6565:34:14;;;5455:1151::o;15460:115::-;15514:4;15537:31;15556:11;15537:18;:31::i;7499:686::-;1924:20:10;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1916:55:10;;;;;;;;;;;;;;;3104:26:14;;;;3103:27;:57;;;;-1:-1:-1;3135:25:14;;;;;;;3134:26;3103:57;3095:116;;;;;;;-1:-1:-1;;;;;3095:116:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7669:14;;;;;;;7661:61;;;;;;;-1:-1:-1;;;;;7661:61:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7820:1;7800:21;;7792:68;;;;;-1:-1:-1;;;;;7792:68:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7938:37;:24;7965:10;;7938:37;:::i;:::-;-1:-1:-1;8029:25:14;:32;;-1:-1:-1;;8029:32:14;;;;;8152:25;;;;;;;;;;;;;;;;;;8114:64;;8140:10;;;;8152:25;;8140:10;;;;;;8152:25;;;8140:10;;8152:25;8140:10;8152:25;;-1:-1:-1;8152:13:14;;-1:-1:-1;;;;;8152:25:14:i;:::-;8114:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8114:64:14;;-1:-1:-1;;;;;8114:64:14;7499:686;;:::o;15684:93::-;15755:15;;;;15684:93;:::o;3519:306:10:-;1924:20;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1916:55:10;;;;;;;;;;;;;;;3640:15;;;;;;;3632:57;;;;;;;-1:-1:-1;;;;;3632:57:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;3743:6;:19;;-1:-1:-1;;3743:19:10;;;3778:40;;;3760:1;3778:40;;;;;;;;;;;;;;;;;;;;3519:306::o;17050:323:14:-;1924:20:10;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1916:55:10;;;;;;;;;;;;;;;17164:7:14;16184:8;17136:35;;:74;;;;;16247:10;17175:7;:35;;17136:74;17128:133;;;;;;;-1:-1:-1;;;;;17128:133:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17271:43;17290:14;17306:7;17271:18;:43::i;:::-;17329:37;;;;;;;;;;;;;;;;;17050:323;:::o;30809:91::-;30881:12;;30809:91;:::o;1468::9:-;1540:12;;-1:-1:-1;;;;;1540:12:9;1468:91;:::o;17633:121:14:-;17690:4;17713:34;17732:14;17713:18;:34::i;4507:725::-;1924:20:10;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1916:55:10;;;;;;;;;;;;;;;3104:26:14;;;;3103:27;:57;;;;-1:-1:-1;3135:25:14;;;;;;;3134:26;3103:57;3095:116;;;;;;;-1:-1:-1;;;;;3095:116:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4624:10;;2624:332;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2694:6:14;;-1:-1:-1;;;;;2689:250:14;2710:10;:17;2706:1;:21;2689:250;;;2757:23;2766:10;2777:1;2766:13;;;;;;;;;;;;;;;;;;2757:8;:23::i;:::-;2756:24;2748:82;;;;;-1:-1:-1;;;;;2748:82:14;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2748:82:14;;;;;;;;;;;;;;;;;;;;2852:13;;2877:1;;2852:10;;2863:1;;2852:13;;;;;;;;;;;;;;;-1:-1:-1;;;;;2852:27:14;;;2844:84;;;;;-1:-1:-1;;;;;2844:84:14;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2844:84:14;;;;;;;;;;;;;;;;;;;;2729:3;;2689:250;;;4714:14;;;;;;;4706:61;;;;;;;-1:-1:-1;;;;;4706:61:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4858:1;4838:21;;4830:69;;;;;-1:-1:-1;;;;;4830:69:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4982:38;:25;5010:10;;4982:38;:::i;:::-;-1:-1:-1;5074:26:14;:33;;-1:-1:-1;;5074:33:14;5103:4;5074:33;;;5199:25;;;;;;;;;;;;;;;;;;5160:65;;5187:10;;;;5199:25;;5187:10;;;;;;5199:25;;;5187:10;;5199:25;5187:10;5199:25;;-1:-1:-1;5199:13:14;;-1:-1:-1;;;;;5199:25:14:i;:::-;5160:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5160:65:14;;-1:-1:-1;;;;;5160:65:14;3221:1;;4507:725;;:::o;1552:105:12:-;1631:19;;1552:105;:::o;3908:77:10:-;3972:6;;-1:-1:-1;;;;;3972:6:10;3908:77;:::o;15581:97:14:-;15654:11;:17;15581:97;:::o;18971:298::-;1924:20:10;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1916:55:10;;;;;;;;;;;;;;;19076:7:14;18364:8;19053:30;;:62;;;;;19098:17;;19087:7;:28;;19053:62;19045:120;;;;;;;-1:-1:-1;;;;;19045:120:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19175:39;19194:10;19206:7;19175:18;:39::i;:::-;19229:33;;;;;;;;;;;;;;;;;18971:298;:::o;2231:801:10:-;1924:20;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1916:55:10;;;;;;;;;;;;;;;2388:15;;;;;;;2380:57;;;;;;;-1:-1:-1;;;;;2380:57:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2518:22:10;;;;2510:70;;;;;-1:-1:-1;;;;;2510:70:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2665:15;:31;;-1:-1:-1;;2665:31:10;;;;;;;;;;;;;;;2775:75;;2814:25;;;-1:-1:-1;;;;;2814:25:10;;;;;;;;;;;;;;;2775:75;2931:6;;2910:38;;;-1:-1:-1;;;;;2931:6:10;;;2910:38;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3008:6:10;:17;;-1:-1:-1;;3008:17:10;-1:-1:-1;;;;;3008:17:10;;;;;;;;;;2231:801::o;24288:552:14:-;24363:4;24448:17;24467:12;24481:14;24505:21;24519:6;24505:13;:21::i;:::-;24446:80;;;;;;;;;;24606:9;24602:214;;;24639:9;;;24631:37;;;;;-1:-1:-1;;;;;24631:37:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;24773:32;24795:9;24773:17;:7;24785:4;24773:17;:11;:17;:::i;:::-;:21;:32;:21;:32;:::i;:::-;24766:39;;;;24602:214;24832:1;24825:8;;24288:552;;;;;;;;:::o;2499:26::-;;;;;;;;;:::o;22650:1251::-;23066:15;1924:20:10;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1916:55:10;;;;;;;;;;;;;;;22740:7:14;21627:11;;;21619:53;;;;;-1:-1:-1;;;;;21619:53:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;22828:17:14;;;;22820:62;;;;;-1:-1:-1;;;;;22820:62:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;22971:17:14;;;;;;:12;:17;;;;;;;;22970:18;22966:581;;;23084:7;;-1:-1:-1;;;;;;23188:20:14;;;23184:103;;23241:31;23256:6;23264:7;23241:14;:31::i;:::-;23228:44;;23184:103;23498:38;23512:11;23525:10;23498:13;:38::i;:::-;-1:-1:-1;;;;;23626:20:14;;;23622:189;;23676:6;-1:-1:-1;;;;;23670:22:14;;23693:3;23698:7;23670:36;;;;;-1:-1:-1;;;23670:36:14;;;;;;;-1:-1:-1;;;;;23670:36:14;-1:-1:-1;;;;;23670:36:14;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;23670:36:14;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;23670:36:14;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;23670:36:14;23662:86;;;;;;;-1:-1:-1;;;;;23662:86:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23622:189;;;23779:21;;-1:-1:-1;;;;;23779:12:14;;;:21;;;;;23792:7;;23779:21;;;;23792:7;23779:12;:21;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;23779:21:14;23622:189;23861:33;;;-1:-1:-1;;;;;23861:33:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;1981:1:10;22650:1251:14;;;;:::o;19828:99::-;19902:18;;19828:99;:::o;17869:::-;17943:18;;;;17869:99;:::o;8254:1407::-;8799:6;9038;1489:25:7;1503:10;1489:13;:25::i;:::-;1481:64;;;;;;;-1:-1:-1;;;;;1481:64:7;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1481:64:7;;;;;;;;;;;;;;;8441:25:14;;;;;;;8433:78;;;;;;;-1:-1:-1;;;;;8433:78:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8632:39;8646:24;8632:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8632:39:14;;;;;;;;;;;;;;;;;;;;:13;:39::i;:::-;8623:48;;8615:132;;;;;-1:-1:-1;;;;;8615:132:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8808:1;8799:10;;8794:595;8815:24;:31;8811:35;;8794:595;;;8905:12;:41;8918:24;8943:1;8918:27;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8918:27:14;8905:41;;;;;;;;;;;;;;;8901:478;;;9010:5;8966:12;:41;8979:24;9004:1;8979:27;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8979:27:14;8966:41;;;;;;;;;;;;:49;;-1:-1:-1;;8966:49:14;;;;;;;;;;;8979:27;-1:-1:-1;9033:291:14;9054:14;:21;:28;;9080:1;9054:28;:25;:28;:::i;:::-;9050:1;:32;9033:291;;;9136:24;:27;;9161:1;;9136:27;;;;;;;;;;;;;;;;9115:14;:17;;-1:-1:-1;;;;;9136:27:14;;;;9130:1;;9115:17;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9115:17:14;:48;9111:195;;;9211:14;9226:21;;-1:-1:-1;;9226:25:14;;;9211:41;;;;;;;;;;;;;;;;9191:14;:17;;-1:-1:-1;;;;;9211:41:14;;;;9206:1;;9191:17;;;;;;;;;;;;;;:61;;;;;-1:-1:-1;;;;;9191:61:14;;;;;-1:-1:-1;;;;;9191:61:14;;;;;;9278:5;;9111:195;9084:3;;9033:291;;;9341:14;:23;;;;;-1:-1:-1;;9341:23:14;;;:::i;:::-;;8901:478;8848:3;;;;;8794:595;;;9438:58;9459:10;9471:24;9438:58;;;;-1:-1:-1;;;;;9438:58:14;-1:-1:-1;;;;;9438:58:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9438:58:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9542:31;9549:24;;9542:31;:::i;:::-;-1:-1:-1;;9621:25:14;:33;;-1:-1:-1;;9621:33:14;;;-1:-1:-1;8254:1407:14:o;17974:107::-;18052:22;;17974:107;:::o;10491:138::-;10557:7;10610:10;10593:28;;;;;;;;;;;;;;;;;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;10593:28:14;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;10593:28:14;;;10583:39;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;;;;365:33;;10583:39:14;;;;;;;;;;;;-1:-1:-1;;;;;10491:138:14:o;9729:693::-;1390:20;1399:10;1390:8;:20::i;:::-;:49;;;;1414:25;1428:10;1414:13;:25::i;:::-;1381:89;;;;;;;-1:-1:-1;;;;;1381:89:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;9875:25;;;;;;;9867:78;;;;;;;-1:-1:-1;;;;;9867:78:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10066:39;10080:24;10066:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10066:39:14;;;;;;;;;;;;;;;;;;;;:13;:39::i;:::-;10057:48;;10049:111;;;;;-1:-1:-1;;;;;10049:111:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10206:31;10213:24;;10206:31;:::i;:::-;10283:25;:33;;-1:-1:-1;;10283:33:14;;;10371:44;;;10397:10;10371:44;;;;;;;;;;;;;;;;;;;;;9729:693;:::o;2278:31::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2278:31:14;;-1:-1:-1;2278:31:14;:::o;19630:95::-;19702:10;:16;19630:95;:::o;2456:37::-;;;;;;;;;:::o;1629:97:7:-;1704:15;;1629:97;:::o;22149:224:14:-;22205:4;-1:-1:-1;;;;;22225:20:14;;;22221:146;;22268:29;;;;;;22292:4;22268:29;;;;;;-1:-1:-1;;;;;22268:23:14;;;;;:29;;;;;;;;;;;;;;-1:-1:-1;22268:23:14;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;22268:29:14;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;22268:29:14;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;22268:29:14;;-1:-1:-1;22261:36:14;;22221:146;-1:-1:-1;22343:4:14;22335:21;22328:28;;26993:423;27044:7;21627:11;;;21619:53;;;;;-1:-1:-1;;;;;21619:53:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;1390:20;1399:10;1390:8;:20::i;:::-;:49;;;;1414:25;1428:10;1414:13;:25::i;:::-;1381:89;;;;;;;-1:-1:-1;;;;;1381:89:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;27205:38;27219:14;27235:7;27205:13;:38::i;:::-;27290:7;:5;:7::i;:::-;-1:-1:-1;;;;;27290:16:14;:25;27307:7;27290:25;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;27290:25:14;27368:41;27380:10;27392:7;:5;:7::i;:::-;27368:41;;;-1:-1:-1;;;;;27368:41:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26993:423;;:::o;15276:178::-;1489:25:7;1503:10;1489:13;:25::i;:::-;1481:64;;;;;;;-1:-1:-1;;;;;1481:64:7;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1481:64:7;;;;;;;;;;;;;;;15357:41:14;15377:11;15390:7;15357:19;:41::i;31101:1490::-;31181:4;31575:17;31594:12;31608:14;32112:27;32141:22;32165:24;31307:13;:11;:13::i;:::-;-1:-1:-1;;;;;31297:23:14;:6;-1:-1:-1;;;;;31297:23:14;;31293:68;;;31343:7;31336:14;;;;31293:68;-1:-1:-1;;;;;31405:20:14;;;31401:601;;31632:21;31646:6;31632:13;:21::i;:::-;31573:80;;;;;;;;;;31764:9;31756:44;;;;;;;-1:-1:-1;;;;;31756:44:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;31822:9;;;31814:37;;;;;-1:-1:-1;;;;;31814:37:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;31959:32;31981:9;31959:17;:7;31971:4;31959:17;:11;:17;:::i;:32::-;31949:42;;31401:601;32199:20;:18;:20::i;:::-;32109:110;;;;;;;;;;32289:19;32281:54;;;;;;;-1:-1:-1;;;;;32281:54:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;32353:19;;;32345:52;;;;;-1:-1:-1;;;;;32345:52:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;32532;32569:14;32532:32;:7;32544:19;32532:32;:11;:32;:::i;:52::-;32525:59;;31101:1490;;;;;;;;;;;:::o;19330:175::-;1489:25:7;1503:10;1489:13;:25::i;:::-;1481:64;;;;;;;-1:-1:-1;;;;;1481:64:7;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1481:64:7;;;;;;;;;;;;;;;19410:40:14;19430:10;19442:7;19410:19;:40::i;17440:187::-;1489:25:7;1503:10;1489:13;:25::i;:::-;1481:64;;;;;;;-1:-1:-1;;;;;1481:64:7;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1481:64:7;;;;;;;;;;;;;;;17524:44:14;17544:14;17560:7;17524:19;:44::i;3703:681::-;4021:6;1924:20:10;1933:10;1924:8;:20::i;:::-;1916:55;;;;;;;-1:-1:-1;;;;;1916:55:10;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1916:55:10;;;;;;;;;;;;;;;3790:10:14;;2624:332;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2694:6:14;;-1:-1:-1;;;;;2689:250:14;2710:10;:17;2706:1;:21;2689:250;;;2757:23;2766:10;2777:1;2766:13;;;;;;;;;2757:23;2756:24;2748:82;;;;;-1:-1:-1;;;;;2748:82:14;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2748:82:14;;;;;;;;;;;;;;;;;;;;2852:13;;2877:1;;2852:10;;2863:1;;2852:13;;;;;;;;;;;;;;;-1:-1:-1;;;;;2852:27:14;;;2844:84;;;;;-1:-1:-1;;;;;2844:84:14;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2844:84:14;;;;;;;;;;;;;;;;;;;;2729:3;;2689:250;;;3885:14;;;;;;;3884:15;3876:66;;;;;-1:-1:-1;;;;;3876:66:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4030:1;4021:10;;4016:240;4033:21;;;4016:240;;;4150:4;4120:12;:27;4133:10;;4144:1;4133:13;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4133:13:14;4120:27;;-1:-1:-1;4120:27:14;;;;;;;;-1:-1:-1;4120:27:14;:34;;-1:-1:-1;;4120:34:14;;;;;;;;;;4211:14;4231:10;;4242:1;4231:13;;;;;;;27:10:-1;;39:1;23:18;;;45:23;;-1:-1;4211:34:14;;;4231:13;4211:34;;;;;;;;;4231:13;;;;;;;;;-1:-1:-1;;;;;4231:13:14;-1:-1:-1;;4211:34:14;;;;;;;4056:3;;;;;-1:-1:-1;4016:240:14;;;4265:14;:21;;-1:-1:-1;;4265:21:14;;;;;4337:40;;;4354:10;4337:40;;;;;;;;;;;;;;;;;;4354:10;;4366;;;;4337:40;;;;4366:10;;4337:40;;;4366:10;4337:40;;;;;;;;;;-1:-1:-1;4337:40:14;;-1:-1:-1;;;;;4337:40:14;1981:1:10;;3703:681:14;;;:::o;4091:107:10:-;4185:6;;-1:-1:-1;;;;;4185:6:10;;;4173:18;;;;4091:107::o;11919:351:14:-;12065:6;;;;;;12064:7;12056:52;;;;;-1:-1:-1;;;;;12056:52:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12177:25;12190:2;12194:7;12177:12;:25::i;:::-;-1:-1:-1;12250:6:14;;:13;;-1:-1:-1;;12250:13:14;12259:4;12250:13;;;11919:351::o;1796:158:7:-;1860:4;1895:28;1907:15;;1895:11;:28::i;:::-;-1:-1:-1;;;;;1883:54:7;;1938:8;1883:64;;;;;-1:-1:-1;;;1883:64:7;;;;;;;-1:-1:-1;;;;;1883:64:7;-1:-1:-1;;;;;1883:64:7;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1883:64:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1883:64:7;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1883:64:7;;1796:158;-1:-1:-1;;1796:158:7:o;11181:220:14:-;11255:4;11281:2;:11;;;11295:8;11281:22;11275:3;:28;11271:124;;;-1:-1:-1;11326:8:14;;11319:15;;11271:124;-1:-1:-1;11372:12:14;;;;11365:19;;12405:278;12551:6;;;;;;12543:41;;;;;;;-1:-1:-1;;;;;12543:41:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;12656:10;;;;:20;12405:278::o;4445:157:12:-;4506:4;4532:13;4553:17;4567:2;4553:13;:17::i;:::-;-1:-1:-1;4522:48:12;;4445:157;-1:-1:-1;;;;;;;;4445:157:12:o;11506:309:14:-;11637:25;11659:2;11637:21;:25::i;:::-;11680:12;;;;:23;-1:-1:-1;11680:23:14;11672:86;;;;;-1:-1:-1;;;;;11672:86:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11783:12;;;;:25;;11800:7;11783:25;:16;:25;:::i;:::-;11768:2;:12;;:40;;;;11506:309;;:::o;1748:152:9:-;1811:7;1852:4;;:24;;;;;;;;;;;;;;-1:-1:-1;;;;;1852:4:9;;;;:13;;:24;;;;;;;;;;;;;;;1811:7;1852:4;:24;;;5:2:-1;;;;30:1;27;20:12;5:2;1852:24:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1852:24:9;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1852:24:9;1837:56;;;;;;;;;;;;;;-1:-1:-1;;;;;1837:45:9;;;;;;:56;;;;;1852:24;;1837:56;;;;;;;;;:45;:56;;;5:2:-1;;;;30:1;27;20:12;34980:353:14;35050:6;35136:8;35158;35186:7;35091:5;35099:1;35091:9;35076:4;:11;:24;;35068:57;;;;;;;-1:-1:-1;;;;;35068:57:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;35147:1:14;;-1:-1:-1;35147:1:14;;-1:-1:-1;35147:1:14;35181:127;35203:1;35199;:5;;;35181:127;;;35230:3;35225:8;;;;35259:4;35272:1;35264:9;;:5;:9;35259:15;;;;;;;;;;;;;;;;;;;;;35251:24;35289:8;;;;35251:24;-1:-1:-1;35206:3:14;;35181:127;;;-1:-1:-1;35325:1:14;;34980:353;-1:-1:-1;;;;34980:353:14:o;35686:264::-;35752:4;35837:6;35791:5;35799:2;35791:10;35776:4;:11;:25;;35768:58;;;;;;;-1:-1:-1;;;;;35768:58:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;35887:27:14;;;35901:4;35887:27;35881:34;;35686:264;;;;;;:::o;34482:369::-;34553:7;34641:9;34664;34693:7;34595:5;34603:2;34595:10;34580:4;:11;:25;;34572:58;;;;;;;-1:-1:-1;;;;;34572:58:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;34653:1:14;;-1:-1:-1;34653:1:14;;-1:-1:-1;34653:1:14;34688:129;34710:2;34706:1;:6;;;34688:129;;;34738:3;34733:8;;;;34768:4;34781:1;34773:9;;:5;:9;34768:15;;;;;;;;;;;;;;;;;;;;;34759:25;34798:8;;;;34759:25;-1:-1:-1;34714:3:14;;34688:129;;33253:1111;33359:4;33375:11;33434:4;33428:11;33568:2;33561:5;33557:14;34236:1;34217;34108:11;34089:1;34065:6;34035:12;33690:5;33685:3;33681:15;33659:665;33649:675;33253:1111;-1:-1:-1;;;;;;;;33253:1111:14:o;2198:201:12:-;2256:6;2264:7;2273;2282:4;2288;2294;2300:7;2342:32;2354:19;;2342:11;:32::i;:::-;-1:-1:-1;;;;;2326:62:12;;2389:2;2326:66;;;;;-1:-1:-1;;;2326:66:12;;;;;;;-1:-1:-1;;;;;2326:66:12;-1:-1:-1;;;;;2326:66:12;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2326:66:12;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2326:66:12;;;;;;39:16:-1;36:1;17:17;2:54;101:4;2326:66:12;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:3;5:12;;2:2;;;30:1;27;20:12;2:2;2326:66:12;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;218:10;;268:11;251:29;;293:43;;;290:58;-1:-1;239:118;236:2;;;370:1;367;360:12;236:2;-1:-1;;2326:66:12;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2326:66:12;;-1:-1:-1;2326:66:12;;-1:-1:-1;2326:66:12;-1:-1:-1;2326:66:12;-1:-1:-1;2326:66:12;;-1:-1:-1;2326:66:12;-1:-1:-1;;;2198:201:12;;;;;;;;;:::o;1376:381:2:-;1434:7;;1658:6;;1654:35;;;1681:1;1674:8;;;;1654:35;-1:-1:-1;1707:5:2;;;1711:1;1707;:5;1726;;;;;;;;:10;1718:19;;;;;;1751:1;1376:381;-1:-1:-1;;;1376:381:2:o;1867:270::-;1925:7;;1948:5;;;1940:14;;;;;;2034:1;2030;:5;;;;;;;;;1867:270;-1:-1:-1;;;;1867:270:2:o;2250:131::-;2308:7;;2331:6;;;;2323:15;;;;;;-1:-1:-1;;2356:5:2;;;2250:131::o;12745:334:14:-;12909:10;;;;:21;;12901:75;;;;;-1:-1:-1;;;;;12901:75:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13044:28;13057:2;13061;:10;;;13044:12;:28::i;:::-;12745:334;;:::o;4720:141:12:-;4766:7;4808:32;4820:19;;4808:11;:32::i;:::-;-1:-1:-1;;;;;4792:60:12;;:62;;;;;-1:-1:-1;;;4792:62:12;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4792:62:12;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4792:62:12;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4792:62:12;;-1:-1:-1;4720:141:12;:::o;2897:199::-;2950:6;2958:7;2967;2976:4;2982;2988;2994:7;3036:32;3048:19;;3036:11;:32::i;:::-;-1:-1:-1;;;;;3020:67:12;;:69;;;;;-1:-1:-1;;;3020:69:12;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3020:69:12;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3020:69:12;;;;;;39:16:-1;36:1;17:17;2:54;101:4;3020:69:12;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:3;5:12;;2:2;;;30:1;27;20:12;2:2;3020:69:12;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;218:10;;268:11;251:29;;293:43;;;290:58;-1:-1;239:118;236:2;;;370:1;367;360:12;236:2;-1:-1;;3020:69:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3020:69:12;;-1:-1:-1;3020:69:12;-1:-1:-1;3020:69:12;-1:-1:-1;3020:69:12;;-1:-1:-1;3020:69:12;-1:-1:-1;2897:199:12;-1:-1:-1;;;2897:199:12:o;13731:408:14:-;13860:25;13882:2;13860:21;:25::i;:::-;13950:18;;;14060:12;;;;:23;-1:-1:-1;14056:77:14;;;14114:8;;14099:12;;;:23;13731:408;;:::o;13153:432::-;13235:11;;;;13345:14;;13235:25;;13251:8;13235:25;:15;:25;:::i;:::-;13229:3;:31;13225:354;;;13362:34;13387:8;13362:20;13370:2;:11;;;13362:3;:7;;:20;;;;:::i;:34::-;13345:51;-1:-1:-1;13424:40:14;13440:23;13345:51;13454:8;13440:23;:13;:23;:::i;:::-;13424:11;;;;;:40;:15;:40;:::i;:::-;13410:11;;;:54;13560:8;;13545:12;;;:23;13153:432;;:::o;2444:131:2:-;2502:7;2529:5;;;2548:6;;;;2540:15;;;;;24944:11009:14;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;24944:11009:14;-1:-1:-1;;;;;24944:11009:14;;;;;;;;;;;;;;;;;;;-1:-1:-1;24944:11009:14;;;-1:-1:-1;24944:11009:14;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;24944:11009:14;;;;;;"}},"sourceList":["externals/ERC165.sol","externals/ERC20.sol","externals/SafeMath.sol","externals/ens/ENS.sol","externals/ens/PublicResolver.sol","externals/strings.sol","internals/claimable.sol","internals/controllable.sol","internals/controller.sol","internals/ensResolvable.sol","internals/ownable.sol","internals/tokenWhitelist.sol","internals/tokenWhitelistable.sol","licence.sol","wallet.sol"],"sources":{"externals/ERC165.sol":{"AST":{"attributes":{"absolutePath":"externals/ERC165.sol","exportedSymbols":{"ERC165":[2052]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".25"]},"id":2044,"name":"PragmaDirective","src":"0:24:0"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"interface","documentation":"@title ERC165 interface specifies a standard way of querying if a contract implements an interface.","fullyImplemented":false,"linearizedBaseContracts":[2052],"name":"ERC165","scope":2053},"children":[{"attributes":{"body":null,"constant":true,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"supportsInterface","payable":false,"scope":2052,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"","scope":2051,"stateVariable":false,"storageLocation":"default","type":"bytes4","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes4","type":"bytes4"},"id":2045,"name":"ElementaryTypeName","src":"180:6:0"}],"id":2046,"name":"VariableDeclaration","src":"180:6:0"}],"id":2047,"name":"ParameterList","src":"179:8:0"},{"children":[{"attributes":{"constant":false,"name":"","scope":2051,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2048,"name":"ElementaryTypeName","src":"211:4:0"}],"id":2049,"name":"VariableDeclaration","src":"211:4:0"}],"id":2050,"name":"ParameterList","src":"210:6:0"}],"id":2051,"name":"FunctionDefinition","src":"153:64:0"}],"id":2052,"name":"ContractDefinition","src":"130:89:0"}],"id":2053,"name":"SourceUnit","src":"0:220:0"}},"externals/ERC20.sol":{"AST":{"attributes":{"absolutePath":"externals/ERC20.sol","exportedSymbols":{"ERC20":[2091]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".25"]},"id":2054,"name":"PragmaDirective","src":"0:24:1"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"interface","documentation":"@title ERC20 interface is a subset of the ERC20 specification.","fullyImplemented":false,"linearizedBaseContracts":[2091],"name":"ERC20","scope":2092},"children":[{"attributes":{"body":null,"constant":false,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"approve","payable":false,"scope":2091,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"","scope":2063,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2055,"name":"ElementaryTypeName","src":"132:7:1"}],"id":2056,"name":"VariableDeclaration","src":"132:7:1"},{"attributes":{"constant":false,"name":"","scope":2063,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":2057,"name":"ElementaryTypeName","src":"141:7:1"}],"id":2058,"name":"VariableDeclaration","src":"141:7:1"}],"id":2059,"name":"ParameterList","src":"131:18:1"},{"children":[{"attributes":{"constant":false,"name":"","scope":2063,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2060,"name":"ElementaryTypeName","src":"168:4:1"}],"id":2061,"name":"VariableDeclaration","src":"168:4:1"}],"id":2062,"name":"ParameterList","src":"167:6:1"}],"id":2063,"name":"FunctionDefinition","src":"115:59:1"},{"attributes":{"body":null,"constant":true,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"balanceOf","payable":false,"scope":2091,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"","scope":2070,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2064,"name":"ElementaryTypeName","src":"198:7:1"}],"id":2065,"name":"VariableDeclaration","src":"198:7:1"}],"id":2066,"name":"ParameterList","src":"197:9:1"},{"children":[{"attributes":{"constant":false,"name":"","scope":2070,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2067,"name":"ElementaryTypeName","src":"230:4:1"}],"id":2068,"name":"VariableDeclaration","src":"230:4:1"}],"id":2069,"name":"ParameterList","src":"229:6:1"}],"id":2070,"name":"FunctionDefinition","src":"179:57:1"},{"attributes":{"body":null,"constant":false,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"transfer","payable":false,"scope":2091,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"","scope":2079,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2071,"name":"ElementaryTypeName","src":"259:7:1"}],"id":2072,"name":"VariableDeclaration","src":"259:7:1"},{"attributes":{"constant":false,"name":"","scope":2079,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2073,"name":"ElementaryTypeName","src":"268:4:1"}],"id":2074,"name":"VariableDeclaration","src":"268:4:1"}],"id":2075,"name":"ParameterList","src":"258:15:1"},{"children":[{"attributes":{"constant":false,"name":"","scope":2079,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2076,"name":"ElementaryTypeName","src":"292:4:1"}],"id":2077,"name":"VariableDeclaration","src":"292:4:1"}],"id":2078,"name":"ParameterList","src":"291:6:1"}],"id":2079,"name":"FunctionDefinition","src":"241:57:1"},{"attributes":{"body":null,"constant":false,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"transferFrom","payable":false,"scope":2091,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_from","scope":2090,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2080,"name":"ElementaryTypeName","src":"325:7:1"}],"id":2081,"name":"VariableDeclaration","src":"325:13:1"},{"attributes":{"constant":false,"name":"_to","scope":2090,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2082,"name":"ElementaryTypeName","src":"340:7:1"}],"id":2083,"name":"VariableDeclaration","src":"340:11:1"},{"attributes":{"constant":false,"name":"_value","scope":2090,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":2084,"name":"ElementaryTypeName","src":"353:7:1"}],"id":2085,"name":"VariableDeclaration","src":"353:14:1"}],"id":2086,"name":"ParameterList","src":"324:44:1"},{"children":[{"attributes":{"constant":false,"name":"success","scope":2090,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2087,"name":"ElementaryTypeName","src":"387:4:1"}],"id":2088,"name":"VariableDeclaration","src":"387:12:1"}],"id":2089,"name":"ParameterList","src":"386:14:1"}],"id":2090,"name":"FunctionDefinition","src":"303:98:1"}],"id":2091,"name":"ContractDefinition","src":"93:310:1"}],"id":2092,"name":"SourceUnit","src":"0:404:1"}},"externals/SafeMath.sol":{"AST":{"attributes":{"absolutePath":"externals/SafeMath.sol","exportedSymbols":{"SafeMath":[2219]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".24"]},"id":2093,"name":"PragmaDirective","src":"1172:24:2"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"library","documentation":"@title SafeMath\n@dev Math operations with safety checks that revert on error","fullyImplemented":true,"linearizedBaseContracts":[2219],"name":"SafeMath","scope":2220},"children":[{"attributes":{"constant":true,"documentation":"@dev Multiplies two numbers, reverts on overflow.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"mul","payable":false,"scope":2219,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"a","scope":2126,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":2094,"name":"ElementaryTypeName","src":"1389:7:2"}],"id":2095,"name":"VariableDeclaration","src":"1389:9:2"},{"attributes":{"constant":false,"name":"b","scope":2126,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":2096,"name":"ElementaryTypeName","src":"1400:7:2"}],"id":2097,"name":"VariableDeclaration","src":"1400:9:2"}],"id":2098,"name":"ParameterList","src":"1388:22:2"},{"children":[{"attributes":{"constant":false,"name":"","scope":2126,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":2099,"name":"ElementaryTypeName","src":"1434:7:2"}],"id":2100,"name":"VariableDeclaration","src":"1434:7:2"}],"id":2101,"name":"ParameterList","src":"1433:9:2"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2095,"type":"uint256","value":"a"},"id":2102,"name":"Identifier","src":"1658:1:2"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2103,"name":"Literal","src":"1663:1:2"}],"id":2104,"name":"BinaryOperation","src":"1658:6:2"},{"children":[{"attributes":{"functionReturnParameters":2101},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2105,"name":"Literal","src":"1681:1:2"}],"id":2106,"name":"Return","src":"1674:8:2"}],"id":2107,"name":"Block","src":"1666:23:2"}],"id":2108,"name":"IfStatement","src":"1654:35:2"},{"attributes":{"assignments":[2110]},"children":[{"attributes":{"constant":false,"name":"c","scope":2126,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":2109,"name":"ElementaryTypeName","src":"1695:7:2"}],"id":2110,"name":"VariableDeclaration","src":"1695:9:2"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2095,"type":"uint256","value":"a"},"id":2111,"name":"Identifier","src":"1707:1:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2097,"type":"uint256","value":"b"},"id":2112,"name":"Identifier","src":"1711:1:2"}],"id":2113,"name":"BinaryOperation","src":"1707:5:2"}],"id":2114,"name":"VariableDeclarationStatement","src":"1695:17:2"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"overloadedDeclarations":[6502,6503],"referencedDeclaration":6502,"type":"function (bool) pure","value":"require"},"id":2115,"name":"Identifier","src":"1718:7:2"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"/","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2110,"type":"uint256","value":"c"},"id":2116,"name":"Identifier","src":"1726:1:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2095,"type":"uint256","value":"a"},"id":2117,"name":"Identifier","src":"1730:1:2"}],"id":2118,"name":"BinaryOperation","src":"1726:5:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2097,"type":"uint256","value":"b"},"id":2119,"name":"Identifier","src":"1735:1:2"}],"id":2120,"name":"BinaryOperation","src":"1726:10:2"}],"id":2121,"name":"FunctionCall","src":"1718:19:2"}],"id":2122,"name":"ExpressionStatement","src":"1718:19:2"},{"attributes":{"functionReturnParameters":2101},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2110,"type":"uint256","value":"c"},"id":2123,"name":"Identifier","src":"1751:1:2"}],"id":2124,"name":"Return","src":"1744:8:2"}],"id":2125,"name":"Block","src":"1443:314:2"}],"id":2126,"name":"FunctionDefinition","src":"1376:381:2"},{"attributes":{"constant":true,"documentation":"@dev Integer division of two numbers truncating the quotient, reverts on division by zero.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"div","payable":false,"scope":2219,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"a","scope":2150,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":2127,"name":"ElementaryTypeName","src":"1880:7:2"}],"id":2128,"name":"VariableDeclaration","src":"1880:9:2"},{"attributes":{"constant":false,"name":"b","scope":2150,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":2129,"name":"ElementaryTypeName","src":"1891:7:2"}],"id":2130,"name":"VariableDeclaration","src":"1891:9:2"}],"id":2131,"name":"ParameterList","src":"1879:22:2"},{"children":[{"attributes":{"constant":false,"name":"","scope":2150,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":2132,"name":"ElementaryTypeName","src":"1925:7:2"}],"id":2133,"name":"VariableDeclaration","src":"1925:7:2"}],"id":2134,"name":"ParameterList","src":"1924:9:2"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"overloadedDeclarations":[6502,6503],"referencedDeclaration":6502,"type":"function (bool) pure","value":"require"},"id":2135,"name":"Identifier","src":"1940:7:2"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2130,"type":"uint256","value":"b"},"id":2136,"name":"Identifier","src":"1948:1:2"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2137,"name":"Literal","src":"1952:1:2"}],"id":2138,"name":"BinaryOperation","src":"1948:5:2"}],"id":2139,"name":"FunctionCall","src":"1940:14:2"}],"id":2140,"name":"ExpressionStatement","src":"1940:14:2"},{"attributes":{"assignments":[2142]},"children":[{"attributes":{"constant":false,"name":"c","scope":2150,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":2141,"name":"ElementaryTypeName","src":"2018:7:2"}],"id":2142,"name":"VariableDeclaration","src":"2018:9:2"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"/","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2128,"type":"uint256","value":"a"},"id":2143,"name":"Identifier","src":"2030:1:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2130,"type":"uint256","value":"b"},"id":2144,"name":"Identifier","src":"2034:1:2"}],"id":2145,"name":"BinaryOperation","src":"2030:5:2"}],"id":2146,"name":"VariableDeclarationStatement","src":"2018:17:2"},{"attributes":{"functionReturnParameters":2134},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2142,"type":"uint256","value":"c"},"id":2147,"name":"Identifier","src":"2131:1:2"}],"id":2148,"name":"Return","src":"2124:8:2"}],"id":2149,"name":"Block","src":"1934:203:2"}],"id":2150,"name":"FunctionDefinition","src":"1867:270:2"},{"attributes":{"constant":true,"documentation":"@dev Subtracts two numbers, reverts on overflow (i.e. if subtrahend is greater than minuend).","implemented":true,"isConstructor":false,"modifiers":[null],"name":"sub","payable":false,"scope":2219,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"a","scope":2174,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":2151,"name":"ElementaryTypeName","src":"2263:7:2"}],"id":2152,"name":"VariableDeclaration","src":"2263:9:2"},{"attributes":{"constant":false,"name":"b","scope":2174,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":2153,"name":"ElementaryTypeName","src":"2274:7:2"}],"id":2154,"name":"VariableDeclaration","src":"2274:9:2"}],"id":2155,"name":"ParameterList","src":"2262:22:2"},{"children":[{"attributes":{"constant":false,"name":"","scope":2174,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":2156,"name":"ElementaryTypeName","src":"2308:7:2"}],"id":2157,"name":"VariableDeclaration","src":"2308:7:2"}],"id":2158,"name":"ParameterList","src":"2307:9:2"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"overloadedDeclarations":[6502,6503],"referencedDeclaration":6502,"type":"function (bool) pure","value":"require"},"id":2159,"name":"Identifier","src":"2323:7:2"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2154,"type":"uint256","value":"b"},"id":2160,"name":"Identifier","src":"2331:1:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2152,"type":"uint256","value":"a"},"id":2161,"name":"Identifier","src":"2336:1:2"}],"id":2162,"name":"BinaryOperation","src":"2331:6:2"}],"id":2163,"name":"FunctionCall","src":"2323:15:2"}],"id":2164,"name":"ExpressionStatement","src":"2323:15:2"},{"attributes":{"assignments":[2166]},"children":[{"attributes":{"constant":false,"name":"c","scope":2174,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":2165,"name":"ElementaryTypeName","src":"2344:7:2"}],"id":2166,"name":"VariableDeclaration","src":"2344:9:2"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2152,"type":"uint256","value":"a"},"id":2167,"name":"Identifier","src":"2356:1:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2154,"type":"uint256","value":"b"},"id":2168,"name":"Identifier","src":"2360:1:2"}],"id":2169,"name":"BinaryOperation","src":"2356:5:2"}],"id":2170,"name":"VariableDeclarationStatement","src":"2344:17:2"},{"attributes":{"functionReturnParameters":2158},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2166,"type":"uint256","value":"c"},"id":2171,"name":"Identifier","src":"2375:1:2"}],"id":2172,"name":"Return","src":"2368:8:2"}],"id":2173,"name":"Block","src":"2317:64:2"}],"id":2174,"name":"FunctionDefinition","src":"2250:131:2"},{"attributes":{"constant":true,"documentation":"@dev Adds two numbers, reverts on overflow.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"add","payable":false,"scope":2219,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"a","scope":2198,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":2175,"name":"ElementaryTypeName","src":"2457:7:2"}],"id":2176,"name":"VariableDeclaration","src":"2457:9:2"},{"attributes":{"constant":false,"name":"b","scope":2198,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":2177,"name":"ElementaryTypeName","src":"2468:7:2"}],"id":2178,"name":"VariableDeclaration","src":"2468:9:2"}],"id":2179,"name":"ParameterList","src":"2456:22:2"},{"children":[{"attributes":{"constant":false,"name":"","scope":2198,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":2180,"name":"ElementaryTypeName","src":"2502:7:2"}],"id":2181,"name":"VariableDeclaration","src":"2502:7:2"}],"id":2182,"name":"ParameterList","src":"2501:9:2"},{"children":[{"attributes":{"assignments":[2184]},"children":[{"attributes":{"constant":false,"name":"c","scope":2198,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":2183,"name":"ElementaryTypeName","src":"2517:7:2"}],"id":2184,"name":"VariableDeclaration","src":"2517:9:2"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2176,"type":"uint256","value":"a"},"id":2185,"name":"Identifier","src":"2529:1:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2178,"type":"uint256","value":"b"},"id":2186,"name":"Identifier","src":"2533:1:2"}],"id":2187,"name":"BinaryOperation","src":"2529:5:2"}],"id":2188,"name":"VariableDeclarationStatement","src":"2517:17:2"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"overloadedDeclarations":[6502,6503],"referencedDeclaration":6502,"type":"function (bool) pure","value":"require"},"id":2189,"name":"Identifier","src":"2540:7:2"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2184,"type":"uint256","value":"c"},"id":2190,"name":"Identifier","src":"2548:1:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2176,"type":"uint256","value":"a"},"id":2191,"name":"Identifier","src":"2553:1:2"}],"id":2192,"name":"BinaryOperation","src":"2548:6:2"}],"id":2193,"name":"FunctionCall","src":"2540:15:2"}],"id":2194,"name":"ExpressionStatement","src":"2540:15:2"},{"attributes":{"functionReturnParameters":2182},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2184,"type":"uint256","value":"c"},"id":2195,"name":"Identifier","src":"2569:1:2"}],"id":2196,"name":"Return","src":"2562:8:2"}],"id":2197,"name":"Block","src":"2511:64:2"}],"id":2198,"name":"FunctionDefinition","src":"2444:131:2"},{"attributes":{"constant":true,"documentation":"@dev Divides two numbers and returns the remainder (unsigned integer modulo),\nreverts when dividing by zero.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"mod","payable":false,"scope":2219,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"a","scope":2218,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":2199,"name":"ElementaryTypeName","src":"2720:7:2"}],"id":2200,"name":"VariableDeclaration","src":"2720:9:2"},{"attributes":{"constant":false,"name":"b","scope":2218,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":2201,"name":"ElementaryTypeName","src":"2731:7:2"}],"id":2202,"name":"VariableDeclaration","src":"2731:9:2"}],"id":2203,"name":"ParameterList","src":"2719:22:2"},{"children":[{"attributes":{"constant":false,"name":"","scope":2218,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":2204,"name":"ElementaryTypeName","src":"2765:7:2"}],"id":2205,"name":"VariableDeclaration","src":"2765:7:2"}],"id":2206,"name":"ParameterList","src":"2764:9:2"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"overloadedDeclarations":[6502,6503],"referencedDeclaration":6502,"type":"function (bool) pure","value":"require"},"id":2207,"name":"Identifier","src":"2780:7:2"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2202,"type":"uint256","value":"b"},"id":2208,"name":"Identifier","src":"2788:1:2"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2209,"name":"Literal","src":"2793:1:2"}],"id":2210,"name":"BinaryOperation","src":"2788:6:2"}],"id":2211,"name":"FunctionCall","src":"2780:15:2"}],"id":2212,"name":"ExpressionStatement","src":"2780:15:2"},{"attributes":{"functionReturnParameters":2206},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"%","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2200,"type":"uint256","value":"a"},"id":2213,"name":"Identifier","src":"2808:1:2"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2202,"type":"uint256","value":"b"},"id":2214,"name":"Identifier","src":"2812:1:2"}],"id":2215,"name":"BinaryOperation","src":"2808:5:2"}],"id":2216,"name":"Return","src":"2801:12:2"}],"id":2217,"name":"Block","src":"2774:44:2"}],"id":2218,"name":"FunctionDefinition","src":"2707:111:2"}],"id":2219,"name":"ContractDefinition","src":"1289:1531:2"}],"id":2220,"name":"SourceUnit","src":"1172:1649:2"}},"externals/ens/ENS.sol":{"AST":{"attributes":{"absolutePath":"externals/ens/ENS.sol","exportedSymbols":{"ENS":[3651]}},"children":[{"attributes":{"literals":["solidity",">=","0.4",".24"]},"id":3573,"name":"PragmaDirective","src":"1400:25:3"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"interface","documentation":null,"fullyImplemented":false,"linearizedBaseContracts":[3651],"name":"ENS","scope":3652},"children":[{"attributes":{"anonymous":false,"documentation":null,"name":"NewOwner"},"children":[{"children":[{"attributes":{"constant":false,"indexed":true,"name":"node","scope":3581,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3574,"name":"ElementaryTypeName","src":"1536:7:3"}],"id":3575,"name":"VariableDeclaration","src":"1536:20:3"},{"attributes":{"constant":false,"indexed":true,"name":"label","scope":3581,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3576,"name":"ElementaryTypeName","src":"1558:7:3"}],"id":3577,"name":"VariableDeclaration","src":"1558:21:3"},{"attributes":{"constant":false,"indexed":false,"name":"owner","scope":3581,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3578,"name":"ElementaryTypeName","src":"1581:7:3"}],"id":3579,"name":"VariableDeclaration","src":"1581:13:3"}],"id":3580,"name":"ParameterList","src":"1535:60:3"}],"id":3581,"name":"EventDefinition","src":"1521:75:3"},{"attributes":{"anonymous":false,"documentation":null,"name":"Transfer"},"children":[{"children":[{"attributes":{"constant":false,"indexed":true,"name":"node","scope":3587,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3582,"name":"ElementaryTypeName","src":"1694:7:3"}],"id":3583,"name":"VariableDeclaration","src":"1694:20:3"},{"attributes":{"constant":false,"indexed":false,"name":"owner","scope":3587,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3584,"name":"ElementaryTypeName","src":"1716:7:3"}],"id":3585,"name":"VariableDeclaration","src":"1716:13:3"}],"id":3586,"name":"ParameterList","src":"1693:37:3"}],"id":3587,"name":"EventDefinition","src":"1679:52:3"},{"attributes":{"anonymous":false,"documentation":null,"name":"NewResolver"},"children":[{"children":[{"attributes":{"constant":false,"indexed":true,"name":"node","scope":3593,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3588,"name":"ElementaryTypeName","src":"1807:7:3"}],"id":3589,"name":"VariableDeclaration","src":"1807:20:3"},{"attributes":{"constant":false,"indexed":false,"name":"resolver","scope":3593,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3590,"name":"ElementaryTypeName","src":"1829:7:3"}],"id":3591,"name":"VariableDeclaration","src":"1829:16:3"}],"id":3592,"name":"ParameterList","src":"1806:40:3"}],"id":3593,"name":"EventDefinition","src":"1789:58:3"},{"attributes":{"anonymous":false,"documentation":null,"name":"NewTTL"},"children":[{"children":[{"attributes":{"constant":false,"indexed":true,"name":"node","scope":3599,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3594,"name":"ElementaryTypeName","src":"1911:7:3"}],"id":3595,"name":"VariableDeclaration","src":"1911:20:3"},{"attributes":{"constant":false,"indexed":false,"name":"ttl","scope":3599,"stateVariable":false,"storageLocation":"default","type":"uint64","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint64","type":"uint64"},"id":3596,"name":"ElementaryTypeName","src":"1933:6:3"}],"id":3597,"name":"VariableDeclaration","src":"1933:10:3"}],"id":3598,"name":"ParameterList","src":"1910:34:3"}],"id":3599,"name":"EventDefinition","src":"1898:47:3"},{"attributes":{"body":null,"constant":false,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"setSubnodeOwner","payable":false,"scope":3651,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":3608,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3600,"name":"ElementaryTypeName","src":"1977:7:3"}],"id":3601,"name":"VariableDeclaration","src":"1977:12:3"},{"attributes":{"constant":false,"name":"label","scope":3608,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3602,"name":"ElementaryTypeName","src":"1991:7:3"}],"id":3603,"name":"VariableDeclaration","src":"1991:13:3"},{"attributes":{"constant":false,"name":"owner","scope":3608,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3604,"name":"ElementaryTypeName","src":"2006:7:3"}],"id":3605,"name":"VariableDeclaration","src":"2006:13:3"}],"id":3606,"name":"ParameterList","src":"1976:44:3"},{"attributes":{"parameters":[null]},"children":[],"id":3607,"name":"ParameterList","src":"2029:0:3"}],"id":3608,"name":"FunctionDefinition","src":"1952:78:3"},{"attributes":{"body":null,"constant":false,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"setResolver","payable":false,"scope":3651,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":3615,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3609,"name":"ElementaryTypeName","src":"2056:7:3"}],"id":3610,"name":"VariableDeclaration","src":"2056:12:3"},{"attributes":{"constant":false,"name":"resolver","scope":3615,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3611,"name":"ElementaryTypeName","src":"2070:7:3"}],"id":3612,"name":"VariableDeclaration","src":"2070:16:3"}],"id":3613,"name":"ParameterList","src":"2055:32:3"},{"attributes":{"parameters":[null]},"children":[],"id":3614,"name":"ParameterList","src":"2096:0:3"}],"id":3615,"name":"FunctionDefinition","src":"2035:62:3"},{"attributes":{"body":null,"constant":false,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"setOwner","payable":false,"scope":3651,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":3622,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3616,"name":"ElementaryTypeName","src":"2120:7:3"}],"id":3617,"name":"VariableDeclaration","src":"2120:12:3"},{"attributes":{"constant":false,"name":"owner","scope":3622,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3618,"name":"ElementaryTypeName","src":"2134:7:3"}],"id":3619,"name":"VariableDeclaration","src":"2134:13:3"}],"id":3620,"name":"ParameterList","src":"2119:29:3"},{"attributes":{"parameters":[null]},"children":[],"id":3621,"name":"ParameterList","src":"2157:0:3"}],"id":3622,"name":"FunctionDefinition","src":"2102:56:3"},{"attributes":{"body":null,"constant":false,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"setTTL","payable":false,"scope":3651,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":3629,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3623,"name":"ElementaryTypeName","src":"2179:7:3"}],"id":3624,"name":"VariableDeclaration","src":"2179:12:3"},{"attributes":{"constant":false,"name":"ttl","scope":3629,"stateVariable":false,"storageLocation":"default","type":"uint64","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint64","type":"uint64"},"id":3625,"name":"ElementaryTypeName","src":"2193:6:3"}],"id":3626,"name":"VariableDeclaration","src":"2193:10:3"}],"id":3627,"name":"ParameterList","src":"2178:26:3"},{"attributes":{"parameters":[null]},"children":[],"id":3628,"name":"ParameterList","src":"2213:0:3"}],"id":3629,"name":"FunctionDefinition","src":"2163:51:3"},{"attributes":{"body":null,"constant":true,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"owner","payable":false,"scope":3651,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":3636,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3630,"name":"ElementaryTypeName","src":"2234:7:3"}],"id":3631,"name":"VariableDeclaration","src":"2234:12:3"}],"id":3632,"name":"ParameterList","src":"2233:14:3"},{"children":[{"attributes":{"constant":false,"name":"","scope":3636,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3633,"name":"ElementaryTypeName","src":"2271:7:3"}],"id":3634,"name":"VariableDeclaration","src":"2271:7:3"}],"id":3635,"name":"ParameterList","src":"2270:9:3"}],"id":3636,"name":"FunctionDefinition","src":"2219:61:3"},{"attributes":{"body":null,"constant":true,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"resolver","payable":false,"scope":3651,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":3643,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3637,"name":"ElementaryTypeName","src":"2303:7:3"}],"id":3638,"name":"VariableDeclaration","src":"2303:12:3"}],"id":3639,"name":"ParameterList","src":"2302:14:3"},{"children":[{"attributes":{"constant":false,"name":"","scope":3643,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3640,"name":"ElementaryTypeName","src":"2340:7:3"}],"id":3641,"name":"VariableDeclaration","src":"2340:7:3"}],"id":3642,"name":"ParameterList","src":"2339:9:3"}],"id":3643,"name":"FunctionDefinition","src":"2285:64:3"},{"attributes":{"body":null,"constant":true,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"ttl","payable":false,"scope":3651,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":3650,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3644,"name":"ElementaryTypeName","src":"2367:7:3"}],"id":3645,"name":"VariableDeclaration","src":"2367:12:3"}],"id":3646,"name":"ParameterList","src":"2366:14:3"},{"children":[{"attributes":{"constant":false,"name":"","scope":3650,"stateVariable":false,"storageLocation":"default","type":"uint64","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint64","type":"uint64"},"id":3647,"name":"ElementaryTypeName","src":"2404:6:3"}],"id":3648,"name":"VariableDeclaration","src":"2404:6:3"}],"id":3649,"name":"ParameterList","src":"2403:8:3"}],"id":3650,"name":"FunctionDefinition","src":"2354:58:3"}],"id":3651,"name":"ContractDefinition","src":"1427:988:3"}],"id":3652,"name":"SourceUnit","src":"1400:1017:3"}},"externals/ens/PublicResolver.sol":{"AST":{"attributes":{"absolutePath":"externals/ens/PublicResolver.sol","exportedSymbols":{"PublicResolver":[4159]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".24"]},"id":3653,"name":"PragmaDirective","src":"1406:24:4"},{"attributes":{"SourceUnit":3652,"absolutePath":"externals/ens/ENS.sol","file":"./ENS.sol","scope":4160,"symbolAliases":[null],"unitAlias":""},"id":3654,"name":"ImportDirective","src":"1432:19:4"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"contract","documentation":"A simple resolver anyone can use; only allows the owner of a node to set its\naddress.","fullyImplemented":true,"linearizedBaseContracts":[4159],"name":"PublicResolver","scope":4160},"children":[{"attributes":{"constant":true,"name":"INTERFACE_META_ID","scope":4159,"stateVariable":true,"storageLocation":"default","type":"bytes4","visibility":"internal"},"children":[{"attributes":{"name":"bytes4","type":"bytes4"},"id":3655,"name":"ElementaryTypeName","src":"1584:6:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30783031666663396137","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 33540519","value":"0x01ffc9a7"},"id":3656,"name":"Literal","src":"1620:10:4"}],"id":3657,"name":"VariableDeclaration","src":"1584:46:4"},{"attributes":{"constant":true,"name":"ADDR_INTERFACE_ID","scope":4159,"stateVariable":true,"storageLocation":"default","type":"bytes4","visibility":"internal"},"children":[{"attributes":{"name":"bytes4","type":"bytes4"},"id":3658,"name":"ElementaryTypeName","src":"1636:6:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30783362336235376465","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 993744862","value":"0x3b3b57de"},"id":3659,"name":"Literal","src":"1672:10:4"}],"id":3660,"name":"VariableDeclaration","src":"1636:46:4"},{"attributes":{"constant":true,"name":"CONTENT_INTERFACE_ID","scope":4159,"stateVariable":true,"storageLocation":"default","type":"bytes4","visibility":"internal"},"children":[{"attributes":{"name":"bytes4","type":"bytes4"},"id":3661,"name":"ElementaryTypeName","src":"1688:6:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30786438333839646335","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3627589061","value":"0xd8389dc5"},"id":3662,"name":"Literal","src":"1727:10:4"}],"id":3663,"name":"VariableDeclaration","src":"1688:49:4"},{"attributes":{"constant":true,"name":"NAME_INTERFACE_ID","scope":4159,"stateVariable":true,"storageLocation":"default","type":"bytes4","visibility":"internal"},"children":[{"attributes":{"name":"bytes4","type":"bytes4"},"id":3664,"name":"ElementaryTypeName","src":"1743:6:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30783639316633343331","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1763652657","value":"0x691f3431"},"id":3665,"name":"Literal","src":"1779:10:4"}],"id":3666,"name":"VariableDeclaration","src":"1743:46:4"},{"attributes":{"constant":true,"name":"ABI_INTERFACE_ID","scope":4159,"stateVariable":true,"storageLocation":"default","type":"bytes4","visibility":"internal"},"children":[{"attributes":{"name":"bytes4","type":"bytes4"},"id":3667,"name":"ElementaryTypeName","src":"1795:6:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30783232303361623536","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 570665814","value":"0x2203ab56"},"id":3668,"name":"Literal","src":"1830:10:4"}],"id":3669,"name":"VariableDeclaration","src":"1795:45:4"},{"attributes":{"constant":true,"name":"PUBKEY_INTERFACE_ID","scope":4159,"stateVariable":true,"storageLocation":"default","type":"bytes4","visibility":"internal"},"children":[{"attributes":{"name":"bytes4","type":"bytes4"},"id":3670,"name":"ElementaryTypeName","src":"1846:6:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30786338363930323333","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3362325043","value":"0xc8690233"},"id":3671,"name":"Literal","src":"1884:10:4"}],"id":3672,"name":"VariableDeclaration","src":"1846:48:4"},{"attributes":{"constant":true,"name":"TEXT_INTERFACE_ID","scope":4159,"stateVariable":true,"storageLocation":"default","type":"bytes4","visibility":"internal"},"children":[{"attributes":{"name":"bytes4","type":"bytes4"},"id":3673,"name":"ElementaryTypeName","src":"1900:6:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30783539643164343363","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1506923580","value":"0x59d1d43c"},"id":3674,"name":"Literal","src":"1936:10:4"}],"id":3675,"name":"VariableDeclaration","src":"1900:46:4"},{"attributes":{"constant":true,"name":"MULTIHASH_INTERFACE_ID","scope":4159,"stateVariable":true,"storageLocation":"default","type":"bytes4","visibility":"internal"},"children":[{"attributes":{"name":"bytes4","type":"bytes4"},"id":3676,"name":"ElementaryTypeName","src":"1952:6:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30786538393430316131","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3902013857","value":"0xe89401a1"},"id":3677,"name":"Literal","src":"1993:10:4"}],"id":3678,"name":"VariableDeclaration","src":"1952:51:4"},{"attributes":{"anonymous":false,"documentation":null,"name":"AddrChanged"},"children":[{"children":[{"attributes":{"constant":false,"indexed":true,"name":"node","scope":3684,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3679,"name":"ElementaryTypeName","src":"2028:7:4"}],"id":3680,"name":"VariableDeclaration","src":"2028:20:4"},{"attributes":{"constant":false,"indexed":false,"name":"a","scope":3684,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3681,"name":"ElementaryTypeName","src":"2050:7:4"}],"id":3682,"name":"VariableDeclaration","src":"2050:9:4"}],"id":3683,"name":"ParameterList","src":"2027:33:4"}],"id":3684,"name":"EventDefinition","src":"2010:51:4"},{"attributes":{"anonymous":false,"documentation":null,"name":"ContentChanged"},"children":[{"children":[{"attributes":{"constant":false,"indexed":true,"name":"node","scope":3690,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3685,"name":"ElementaryTypeName","src":"2087:7:4"}],"id":3686,"name":"VariableDeclaration","src":"2087:20:4"},{"attributes":{"constant":false,"indexed":false,"name":"hash","scope":3690,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3687,"name":"ElementaryTypeName","src":"2109:7:4"}],"id":3688,"name":"VariableDeclaration","src":"2109:12:4"}],"id":3689,"name":"ParameterList","src":"2086:36:4"}],"id":3690,"name":"EventDefinition","src":"2066:57:4"},{"attributes":{"anonymous":false,"documentation":null,"name":"NameChanged"},"children":[{"children":[{"attributes":{"constant":false,"indexed":true,"name":"node","scope":3696,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3691,"name":"ElementaryTypeName","src":"2146:7:4"}],"id":3692,"name":"VariableDeclaration","src":"2146:20:4"},{"attributes":{"constant":false,"indexed":false,"name":"name","scope":3696,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":3693,"name":"ElementaryTypeName","src":"2168:6:4"}],"id":3694,"name":"VariableDeclaration","src":"2168:11:4"}],"id":3695,"name":"ParameterList","src":"2145:35:4"}],"id":3696,"name":"EventDefinition","src":"2128:53:4"},{"attributes":{"anonymous":false,"documentation":null,"name":"ABIChanged"},"children":[{"children":[{"attributes":{"constant":false,"indexed":true,"name":"node","scope":3702,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3697,"name":"ElementaryTypeName","src":"2203:7:4"}],"id":3698,"name":"VariableDeclaration","src":"2203:20:4"},{"attributes":{"constant":false,"indexed":true,"name":"contentType","scope":3702,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":3699,"name":"ElementaryTypeName","src":"2225:7:4"}],"id":3700,"name":"VariableDeclaration","src":"2225:27:4"}],"id":3701,"name":"ParameterList","src":"2202:51:4"}],"id":3702,"name":"EventDefinition","src":"2186:68:4"},{"attributes":{"anonymous":false,"documentation":null,"name":"PubkeyChanged"},"children":[{"children":[{"attributes":{"constant":false,"indexed":true,"name":"node","scope":3710,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3703,"name":"ElementaryTypeName","src":"2279:7:4"}],"id":3704,"name":"VariableDeclaration","src":"2279:20:4"},{"attributes":{"constant":false,"indexed":false,"name":"x","scope":3710,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3705,"name":"ElementaryTypeName","src":"2301:7:4"}],"id":3706,"name":"VariableDeclaration","src":"2301:9:4"},{"attributes":{"constant":false,"indexed":false,"name":"y","scope":3710,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3707,"name":"ElementaryTypeName","src":"2312:7:4"}],"id":3708,"name":"VariableDeclaration","src":"2312:9:4"}],"id":3709,"name":"ParameterList","src":"2278:44:4"}],"id":3710,"name":"EventDefinition","src":"2259:64:4"},{"attributes":{"anonymous":false,"documentation":null,"name":"TextChanged"},"children":[{"children":[{"attributes":{"constant":false,"indexed":true,"name":"node","scope":3718,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3711,"name":"ElementaryTypeName","src":"2346:7:4"}],"id":3712,"name":"VariableDeclaration","src":"2346:20:4"},{"attributes":{"constant":false,"indexed":false,"name":"indexedKey","scope":3718,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":3713,"name":"ElementaryTypeName","src":"2368:6:4"}],"id":3714,"name":"VariableDeclaration","src":"2368:17:4"},{"attributes":{"constant":false,"indexed":false,"name":"key","scope":3718,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":3715,"name":"ElementaryTypeName","src":"2387:6:4"}],"id":3716,"name":"VariableDeclaration","src":"2387:10:4"}],"id":3717,"name":"ParameterList","src":"2345:53:4"}],"id":3718,"name":"EventDefinition","src":"2328:71:4"},{"attributes":{"anonymous":false,"documentation":null,"name":"MultihashChanged"},"children":[{"children":[{"attributes":{"constant":false,"indexed":true,"name":"node","scope":3724,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3719,"name":"ElementaryTypeName","src":"2427:7:4"}],"id":3720,"name":"VariableDeclaration","src":"2427:20:4"},{"attributes":{"constant":false,"indexed":false,"name":"hash","scope":3724,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":3721,"name":"ElementaryTypeName","src":"2449:5:4"}],"id":3722,"name":"VariableDeclaration","src":"2449:10:4"}],"id":3723,"name":"ParameterList","src":"2426:34:4"}],"id":3724,"name":"EventDefinition","src":"2404:57:4"},{"attributes":{"canonicalName":"PublicResolver.PublicKey","name":"PublicKey","scope":4159,"visibility":"public"},"children":[{"attributes":{"constant":false,"name":"x","scope":3729,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3725,"name":"ElementaryTypeName","src":"2494:7:4"}],"id":3726,"name":"VariableDeclaration","src":"2494:9:4"},{"attributes":{"constant":false,"name":"y","scope":3729,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3727,"name":"ElementaryTypeName","src":"2513:7:4"}],"id":3728,"name":"VariableDeclaration","src":"2513:9:4"}],"id":3729,"name":"StructDefinition","src":"2467:62:4"},{"attributes":{"canonicalName":"PublicResolver.Record","name":"Record","scope":4159,"visibility":"public"},"children":[{"attributes":{"constant":false,"name":"addr","scope":3748,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3730,"name":"ElementaryTypeName","src":"2559:7:4"}],"id":3731,"name":"VariableDeclaration","src":"2559:12:4"},{"attributes":{"constant":false,"name":"content","scope":3748,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3732,"name":"ElementaryTypeName","src":"2581:7:4"}],"id":3733,"name":"VariableDeclaration","src":"2581:15:4"},{"attributes":{"constant":false,"name":"name","scope":3748,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":3734,"name":"ElementaryTypeName","src":"2606:6:4"}],"id":3735,"name":"VariableDeclaration","src":"2606:11:4"},{"attributes":{"constant":false,"name":"pubkey","scope":3748,"stateVariable":false,"storageLocation":"default","type":"struct PublicResolver.PublicKey","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"PublicKey","referencedDeclaration":3729,"type":"struct PublicResolver.PublicKey"},"id":3736,"name":"UserDefinedTypeName","src":"2627:9:4"}],"id":3737,"name":"VariableDeclaration","src":"2627:16:4"},{"attributes":{"constant":false,"name":"text","scope":3748,"stateVariable":false,"storageLocation":"default","type":"mapping(string => string)","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"mapping(string => string)"},"children":[{"attributes":{"name":"string","type":"string"},"id":3738,"name":"ElementaryTypeName","src":"2661:6:4"},{"attributes":{"name":"string","type":"string"},"id":3739,"name":"ElementaryTypeName","src":"2669:6:4"}],"id":3740,"name":"Mapping","src":"2653:23:4"}],"id":3741,"name":"VariableDeclaration","src":"2653:28:4"},{"attributes":{"constant":false,"name":"abis","scope":3748,"stateVariable":false,"storageLocation":"default","type":"mapping(uint256 => bytes)","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"mapping(uint256 => bytes)"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":3742,"name":"ElementaryTypeName","src":"2699:7:4"},{"attributes":{"name":"bytes","type":"bytes"},"id":3743,"name":"ElementaryTypeName","src":"2708:5:4"}],"id":3744,"name":"Mapping","src":"2691:23:4"}],"id":3745,"name":"VariableDeclaration","src":"2691:28:4"},{"attributes":{"constant":false,"name":"multihash","scope":3748,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":3746,"name":"ElementaryTypeName","src":"2729:5:4"}],"id":3747,"name":"VariableDeclaration","src":"2729:15:4"}],"id":3748,"name":"StructDefinition","src":"2535:216:4"},{"attributes":{"constant":false,"name":"ens","scope":4159,"stateVariable":true,"storageLocation":"default","type":"contract ENS","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"ENS","referencedDeclaration":3651,"type":"contract ENS"},"id":3749,"name":"UserDefinedTypeName","src":"2757:3:4"}],"id":3750,"name":"VariableDeclaration","src":"2757:7:4"},{"attributes":{"constant":false,"name":"records","scope":4159,"stateVariable":true,"storageLocation":"default","type":"mapping(bytes32 => struct PublicResolver.Record)","value":null,"visibility":"internal"},"children":[{"attributes":{"type":"mapping(bytes32 => struct PublicResolver.Record)"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3751,"name":"ElementaryTypeName","src":"2780:7:4"},{"attributes":{"contractScope":null,"name":"Record","referencedDeclaration":3748,"type":"struct PublicResolver.Record"},"id":3752,"name":"UserDefinedTypeName","src":"2791:6:4"}],"id":3753,"name":"Mapping","src":"2771:27:4"}],"id":3754,"name":"VariableDeclaration","src":"2771:35:4"},{"attributes":{"documentation":null,"name":"only_owner","visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":3770,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3755,"name":"ElementaryTypeName","src":"2833:7:4"}],"id":3756,"name":"VariableDeclaration","src":"2833:12:4"}],"id":3757,"name":"ParameterList","src":"2832:14:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"overloadedDeclarations":[6502,6503],"referencedDeclaration":6502,"type":"function (bool) pure","value":"require"},"id":3758,"name":"Identifier","src":"2857:7:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"owner","referencedDeclaration":3636,"type":"function (bytes32) view external returns (address)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3750,"type":"contract ENS","value":"ens"},"id":3759,"name":"Identifier","src":"2865:3:4"}],"id":3760,"name":"MemberAccess","src":"2865:9:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3756,"type":"bytes32","value":"node"},"id":3761,"name":"Identifier","src":"2875:4:4"}],"id":3762,"name":"FunctionCall","src":"2865:15:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6499,"type":"msg","value":"msg"},"id":3763,"name":"Identifier","src":"2884:3:4"}],"id":3764,"name":"MemberAccess","src":"2884:10:4"}],"id":3765,"name":"BinaryOperation","src":"2865:29:4"}],"id":3766,"name":"FunctionCall","src":"2857:38:4"}],"id":3767,"name":"ExpressionStatement","src":"2857:38:4"},{"id":3768,"name":"PlaceholderStatement","src":"2905:1:4"}],"id":3769,"name":"Block","src":"2847:66:4"}],"id":3770,"name":"ModifierDefinition","src":"2813:100:4"},{"attributes":{"constant":false,"documentation":"Constructor.\n@param ensAddr The ENS registrar contract.","implemented":true,"isConstructor":true,"modifiers":[null],"name":"","payable":false,"scope":4159,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"ensAddr","scope":3780,"stateVariable":false,"storageLocation":"default","type":"contract ENS","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"ENS","referencedDeclaration":3651,"type":"contract ENS"},"id":3771,"name":"UserDefinedTypeName","src":"3017:3:4"}],"id":3772,"name":"VariableDeclaration","src":"3017:11:4"}],"id":3773,"name":"ParameterList","src":"3016:13:4"},{"attributes":{"parameters":[null]},"children":[],"id":3774,"name":"ParameterList","src":"3037:0:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"contract ENS"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3750,"type":"contract ENS","value":"ens"},"id":3775,"name":"Identifier","src":"3047:3:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3772,"type":"contract ENS","value":"ensAddr"},"id":3776,"name":"Identifier","src":"3053:7:4"}],"id":3777,"name":"Assignment","src":"3047:13:4"}],"id":3778,"name":"ExpressionStatement","src":"3047:13:4"}],"id":3779,"name":"Block","src":"3037:30:4"}],"id":3780,"name":"FunctionDefinition","src":"3005:62:4"},{"attributes":{"constant":false,"documentation":"Sets the address associated with an ENS node.\nMay only be called by the owner of that node in the ENS registry.\n@param node The node to update.\n@param addr The address to set.","implemented":true,"isConstructor":false,"name":"setAddr","payable":false,"scope":4159,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":3803,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3781,"name":"ElementaryTypeName","src":"3310:7:4"}],"id":3782,"name":"VariableDeclaration","src":"3310:12:4"},{"attributes":{"constant":false,"name":"addr","scope":3803,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3783,"name":"ElementaryTypeName","src":"3324:7:4"}],"id":3784,"name":"VariableDeclaration","src":"3324:12:4"}],"id":3785,"name":"ParameterList","src":"3309:28:4"},{"attributes":{"parameters":[null]},"children":[],"id":3789,"name":"ParameterList","src":"3362:0:4"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3770,"type":"modifier (bytes32)","value":"only_owner"},"id":3786,"name":"Identifier","src":"3345:10:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3782,"type":"bytes32","value":"node"},"id":3787,"name":"Identifier","src":"3356:4:4"}],"id":3788,"name":"ModifierInvocation","src":"3345:16:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"address"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"addr","referencedDeclaration":3731,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3754,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":3790,"name":"Identifier","src":"3372:7:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3782,"type":"bytes32","value":"node"},"id":3791,"name":"Identifier","src":"3380:4:4"}],"id":3792,"name":"IndexAccess","src":"3372:13:4"}],"id":3793,"name":"MemberAccess","src":"3372:18:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3784,"type":"address","value":"addr"},"id":3794,"name":"Identifier","src":"3393:4:4"}],"id":3795,"name":"Assignment","src":"3372:25:4"}],"id":3796,"name":"ExpressionStatement","src":"3372:25:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":3684,"type":"function (bytes32,address)","value":"AddrChanged"},"id":3797,"name":"Identifier","src":"3412:11:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3782,"type":"bytes32","value":"node"},"id":3798,"name":"Identifier","src":"3424:4:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3784,"type":"address","value":"addr"},"id":3799,"name":"Identifier","src":"3430:4:4"}],"id":3800,"name":"FunctionCall","src":"3412:23:4"}],"id":3801,"name":"EmitStatement","src":"3407:28:4"}],"id":3802,"name":"Block","src":"3362:80:4"}],"id":3803,"name":"FunctionDefinition","src":"3293:149:4"},{"attributes":{"constant":false,"documentation":"Sets the content hash associated with an ENS node.\nMay only be called by the owner of that node in the ENS registry.\nNote that this resource type is not standardized, and will likely change\nin future to a resource type based on multihash.\n@param node The node to update.\n@param hash The content hash to set","implemented":true,"isConstructor":false,"name":"setContent","payable":false,"scope":4159,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":3826,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3804,"name":"ElementaryTypeName","src":"3833:7:4"}],"id":3805,"name":"VariableDeclaration","src":"3833:12:4"},{"attributes":{"constant":false,"name":"hash","scope":3826,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3806,"name":"ElementaryTypeName","src":"3847:7:4"}],"id":3807,"name":"VariableDeclaration","src":"3847:12:4"}],"id":3808,"name":"ParameterList","src":"3832:28:4"},{"attributes":{"parameters":[null]},"children":[],"id":3812,"name":"ParameterList","src":"3885:0:4"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3770,"type":"modifier (bytes32)","value":"only_owner"},"id":3809,"name":"Identifier","src":"3868:10:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3805,"type":"bytes32","value":"node"},"id":3810,"name":"Identifier","src":"3879:4:4"}],"id":3811,"name":"ModifierInvocation","src":"3868:16:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"content","referencedDeclaration":3733,"type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3754,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":3813,"name":"Identifier","src":"3895:7:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3805,"type":"bytes32","value":"node"},"id":3814,"name":"Identifier","src":"3903:4:4"}],"id":3815,"name":"IndexAccess","src":"3895:13:4"}],"id":3816,"name":"MemberAccess","src":"3895:21:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3807,"type":"bytes32","value":"hash"},"id":3817,"name":"Identifier","src":"3919:4:4"}],"id":3818,"name":"Assignment","src":"3895:28:4"}],"id":3819,"name":"ExpressionStatement","src":"3895:28:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[null],"referencedDeclaration":3690,"type":"function (bytes32,bytes32)","value":"ContentChanged"},"id":3820,"name":"Identifier","src":"3938:14:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3805,"type":"bytes32","value":"node"},"id":3821,"name":"Identifier","src":"3953:4:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3807,"type":"bytes32","value":"hash"},"id":3822,"name":"Identifier","src":"3959:4:4"}],"id":3823,"name":"FunctionCall","src":"3938:26:4"}],"id":3824,"name":"EmitStatement","src":"3933:31:4"}],"id":3825,"name":"Block","src":"3885:86:4"}],"id":3826,"name":"FunctionDefinition","src":"3813:158:4"},{"attributes":{"constant":false,"documentation":"Sets the multihash associated with an ENS node.\nMay only be called by the owner of that node in the ENS registry.\n@param node The node to update.\n@param hash The multihash to set","implemented":true,"isConstructor":false,"name":"setMultihash","payable":false,"scope":4159,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":3849,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3827,"name":"ElementaryTypeName","src":"4222:7:4"}],"id":3828,"name":"VariableDeclaration","src":"4222:12:4"},{"attributes":{"constant":false,"name":"hash","scope":3849,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":3829,"name":"ElementaryTypeName","src":"4236:5:4"}],"id":3830,"name":"VariableDeclaration","src":"4236:10:4"}],"id":3831,"name":"ParameterList","src":"4221:26:4"},{"attributes":{"parameters":[null]},"children":[],"id":3835,"name":"ParameterList","src":"4272:0:4"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3770,"type":"modifier (bytes32)","value":"only_owner"},"id":3832,"name":"Identifier","src":"4255:10:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3828,"type":"bytes32","value":"node"},"id":3833,"name":"Identifier","src":"4266:4:4"}],"id":3834,"name":"ModifierInvocation","src":"4255:16:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"multihash","referencedDeclaration":3747,"type":"bytes storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3754,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":3836,"name":"Identifier","src":"4282:7:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3828,"type":"bytes32","value":"node"},"id":3837,"name":"Identifier","src":"4290:4:4"}],"id":3838,"name":"IndexAccess","src":"4282:13:4"}],"id":3839,"name":"MemberAccess","src":"4282:23:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3830,"type":"bytes memory","value":"hash"},"id":3840,"name":"Identifier","src":"4308:4:4"}],"id":3841,"name":"Assignment","src":"4282:30:4"}],"id":3842,"name":"ExpressionStatement","src":"4282:30:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"overloadedDeclarations":[null],"referencedDeclaration":3724,"type":"function (bytes32,bytes memory)","value":"MultihashChanged"},"id":3843,"name":"Identifier","src":"4327:16:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3828,"type":"bytes32","value":"node"},"id":3844,"name":"Identifier","src":"4344:4:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3830,"type":"bytes memory","value":"hash"},"id":3845,"name":"Identifier","src":"4350:4:4"}],"id":3846,"name":"FunctionCall","src":"4327:28:4"}],"id":3847,"name":"EmitStatement","src":"4322:33:4"}],"id":3848,"name":"Block","src":"4272:90:4"}],"id":3849,"name":"FunctionDefinition","src":"4200:162:4"},{"attributes":{"constant":false,"documentation":"Sets the name associated with an ENS node, for reverse records.\nMay only be called by the owner of that node in the ENS registry.\n@param node The node to update.\n@param name The name to set.","implemented":true,"isConstructor":false,"name":"setName","payable":false,"scope":4159,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":3872,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3850,"name":"ElementaryTypeName","src":"4624:7:4"}],"id":3851,"name":"VariableDeclaration","src":"4624:12:4"},{"attributes":{"constant":false,"name":"name","scope":3872,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":3852,"name":"ElementaryTypeName","src":"4638:6:4"}],"id":3853,"name":"VariableDeclaration","src":"4638:11:4"}],"id":3854,"name":"ParameterList","src":"4623:27:4"},{"attributes":{"parameters":[null]},"children":[],"id":3858,"name":"ParameterList","src":"4675:0:4"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3770,"type":"modifier (bytes32)","value":"only_owner"},"id":3855,"name":"Identifier","src":"4658:10:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3851,"type":"bytes32","value":"node"},"id":3856,"name":"Identifier","src":"4669:4:4"}],"id":3857,"name":"ModifierInvocation","src":"4658:16:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"name","referencedDeclaration":3735,"type":"string storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3754,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":3859,"name":"Identifier","src":"4685:7:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3851,"type":"bytes32","value":"node"},"id":3860,"name":"Identifier","src":"4693:4:4"}],"id":3861,"name":"IndexAccess","src":"4685:13:4"}],"id":3862,"name":"MemberAccess","src":"4685:18:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3853,"type":"string memory","value":"name"},"id":3863,"name":"Identifier","src":"4706:4:4"}],"id":3864,"name":"Assignment","src":"4685:25:4"}],"id":3865,"name":"ExpressionStatement","src":"4685:25:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"overloadedDeclarations":[null],"referencedDeclaration":3696,"type":"function (bytes32,string memory)","value":"NameChanged"},"id":3866,"name":"Identifier","src":"4725:11:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3851,"type":"bytes32","value":"node"},"id":3867,"name":"Identifier","src":"4737:4:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3853,"type":"string memory","value":"name"},"id":3868,"name":"Identifier","src":"4743:4:4"}],"id":3869,"name":"FunctionCall","src":"4725:23:4"}],"id":3870,"name":"EmitStatement","src":"4720:28:4"}],"id":3871,"name":"Block","src":"4675:80:4"}],"id":3872,"name":"FunctionDefinition","src":"4607:148:4"},{"attributes":{"constant":false,"documentation":"Sets the ABI associated with an ENS node.\nNodes may have one ABI of each content type. To remove an ABI, set it to\nthe empty string.\n@param node The node to update.\n@param contentType The content type of the ABI\n@param data The ABI data.","implemented":true,"isConstructor":false,"name":"setABI","payable":false,"scope":4159,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":3911,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3873,"name":"ElementaryTypeName","src":"5073:7:4"}],"id":3874,"name":"VariableDeclaration","src":"5073:12:4"},{"attributes":{"constant":false,"name":"contentType","scope":3911,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":3875,"name":"ElementaryTypeName","src":"5087:7:4"}],"id":3876,"name":"VariableDeclaration","src":"5087:19:4"},{"attributes":{"constant":false,"name":"data","scope":3911,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":3877,"name":"ElementaryTypeName","src":"5108:5:4"}],"id":3878,"name":"VariableDeclaration","src":"5108:10:4"}],"id":3879,"name":"ParameterList","src":"5072:47:4"},{"attributes":{"parameters":[null]},"children":[],"id":3883,"name":"ParameterList","src":"5144:0:4"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3770,"type":"modifier (bytes32)","value":"only_owner"},"id":3880,"name":"Identifier","src":"5127:10:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3874,"type":"bytes32","value":"node"},"id":3881,"name":"Identifier","src":"5138:4:4"}],"id":3882,"name":"ModifierInvocation","src":"5127:16:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"overloadedDeclarations":[6502,6503],"referencedDeclaration":6502,"type":"function (bool) pure","value":"require"},"id":3884,"name":"Identifier","src":"5199:7:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3876,"type":"uint256","value":"contentType"},"id":3885,"name":"Identifier","src":"5209:11:4"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":3886,"name":"Literal","src":"5223:1:4"}],"id":3887,"name":"BinaryOperation","src":"5209:15:4"}],"id":3888,"name":"TupleExpression","src":"5208:17:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3876,"type":"uint256","value":"contentType"},"id":3889,"name":"Identifier","src":"5228:11:4"}],"id":3890,"name":"BinaryOperation","src":"5208:31:4"}],"id":3891,"name":"TupleExpression","src":"5207:33:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3892,"name":"Literal","src":"5244:1:4"}],"id":3893,"name":"BinaryOperation","src":"5207:38:4"}],"id":3894,"name":"FunctionCall","src":"5199:47:4"}],"id":3895,"name":"ExpressionStatement","src":"5199:47:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bytes storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"abis","referencedDeclaration":3745,"type":"mapping(uint256 => bytes storage ref)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3754,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":3896,"name":"Identifier","src":"5265:7:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3874,"type":"bytes32","value":"node"},"id":3897,"name":"Identifier","src":"5273:4:4"}],"id":3898,"name":"IndexAccess","src":"5265:13:4"}],"id":3899,"name":"MemberAccess","src":"5265:18:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3876,"type":"uint256","value":"contentType"},"id":3900,"name":"Identifier","src":"5284:11:4"}],"id":3901,"name":"IndexAccess","src":"5265:31:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3878,"type":"bytes memory","value":"data"},"id":3902,"name":"Identifier","src":"5299:4:4"}],"id":3903,"name":"Assignment","src":"5265:38:4"}],"id":3904,"name":"ExpressionStatement","src":"5265:38:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":3702,"type":"function (bytes32,uint256)","value":"ABIChanged"},"id":3905,"name":"Identifier","src":"5318:10:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3874,"type":"bytes32","value":"node"},"id":3906,"name":"Identifier","src":"5329:4:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3876,"type":"uint256","value":"contentType"},"id":3907,"name":"Identifier","src":"5335:11:4"}],"id":3908,"name":"FunctionCall","src":"5318:29:4"}],"id":3909,"name":"EmitStatement","src":"5313:34:4"}],"id":3910,"name":"Block","src":"5144:210:4"}],"id":3911,"name":"FunctionDefinition","src":"5057:297:4"},{"attributes":{"constant":false,"documentation":"Sets the SECP256k1 public key associated with an ENS node.\n@param node The ENS node to query\n@param x the X coordinate of the curve point for the public key.\n@param y the Y coordinate of the curve point for the public key.","implemented":true,"isConstructor":false,"name":"setPubkey","payable":false,"scope":4159,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":3940,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3912,"name":"ElementaryTypeName","src":"5650:7:4"}],"id":3913,"name":"VariableDeclaration","src":"5650:12:4"},{"attributes":{"constant":false,"name":"x","scope":3940,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3914,"name":"ElementaryTypeName","src":"5664:7:4"}],"id":3915,"name":"VariableDeclaration","src":"5664:9:4"},{"attributes":{"constant":false,"name":"y","scope":3940,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3916,"name":"ElementaryTypeName","src":"5675:7:4"}],"id":3917,"name":"VariableDeclaration","src":"5675:9:4"}],"id":3918,"name":"ParameterList","src":"5649:36:4"},{"attributes":{"parameters":[null]},"children":[],"id":3922,"name":"ParameterList","src":"5710:0:4"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3770,"type":"modifier (bytes32)","value":"only_owner"},"id":3919,"name":"Identifier","src":"5693:10:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3913,"type":"bytes32","value":"node"},"id":3920,"name":"Identifier","src":"5704:4:4"}],"id":3921,"name":"ModifierInvocation","src":"5693:16:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"struct PublicResolver.PublicKey storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"pubkey","referencedDeclaration":3737,"type":"struct PublicResolver.PublicKey storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3754,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":3923,"name":"Identifier","src":"5720:7:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3913,"type":"bytes32","value":"node"},"id":3924,"name":"Identifier","src":"5728:4:4"}],"id":3925,"name":"IndexAccess","src":"5720:13:4"}],"id":3926,"name":"MemberAccess","src":"5720:20:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":true,"lValueRequested":false,"names":[null],"type":"struct PublicResolver.PublicKey memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[null],"referencedDeclaration":3729,"type":"type(struct PublicResolver.PublicKey storage pointer)","value":"PublicKey"},"id":3927,"name":"Identifier","src":"5743:9:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3915,"type":"bytes32","value":"x"},"id":3928,"name":"Identifier","src":"5753:1:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3917,"type":"bytes32","value":"y"},"id":3929,"name":"Identifier","src":"5756:1:4"}],"id":3930,"name":"FunctionCall","src":"5743:15:4"}],"id":3931,"name":"Assignment","src":"5720:38:4"}],"id":3932,"name":"ExpressionStatement","src":"5720:38:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[null],"referencedDeclaration":3710,"type":"function (bytes32,bytes32,bytes32)","value":"PubkeyChanged"},"id":3933,"name":"Identifier","src":"5773:13:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3913,"type":"bytes32","value":"node"},"id":3934,"name":"Identifier","src":"5787:4:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3915,"type":"bytes32","value":"x"},"id":3935,"name":"Identifier","src":"5793:1:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3917,"type":"bytes32","value":"y"},"id":3936,"name":"Identifier","src":"5796:1:4"}],"id":3937,"name":"FunctionCall","src":"5773:25:4"}],"id":3938,"name":"EmitStatement","src":"5768:30:4"}],"id":3939,"name":"Block","src":"5710:95:4"}],"id":3940,"name":"FunctionDefinition","src":"5631:174:4"},{"attributes":{"constant":false,"documentation":"Sets the text data associated with an ENS node and key.\nMay only be called by the owner of that node in the ENS registry.\n@param node The node to update.\n@param key The key to set.\n@param value The text data value to set.","implemented":true,"isConstructor":false,"name":"setText","payable":false,"scope":4159,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":3968,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3941,"name":"ElementaryTypeName","src":"6101:7:4"}],"id":3942,"name":"VariableDeclaration","src":"6101:12:4"},{"attributes":{"constant":false,"name":"key","scope":3968,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":3943,"name":"ElementaryTypeName","src":"6115:6:4"}],"id":3944,"name":"VariableDeclaration","src":"6115:10:4"},{"attributes":{"constant":false,"name":"value","scope":3968,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":3945,"name":"ElementaryTypeName","src":"6127:6:4"}],"id":3946,"name":"VariableDeclaration","src":"6127:12:4"}],"id":3947,"name":"ParameterList","src":"6100:40:4"},{"attributes":{"parameters":[null]},"children":[],"id":3951,"name":"ParameterList","src":"6165:0:4"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3770,"type":"modifier (bytes32)","value":"only_owner"},"id":3948,"name":"Identifier","src":"6148:10:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3942,"type":"bytes32","value":"node"},"id":3949,"name":"Identifier","src":"6159:4:4"}],"id":3950,"name":"ModifierInvocation","src":"6148:16:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"string storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"string storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"text","referencedDeclaration":3741,"type":"mapping(string memory => string storage ref)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3754,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":3952,"name":"Identifier","src":"6175:7:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3942,"type":"bytes32","value":"node"},"id":3953,"name":"Identifier","src":"6183:4:4"}],"id":3954,"name":"IndexAccess","src":"6175:13:4"}],"id":3955,"name":"MemberAccess","src":"6175:18:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3944,"type":"string memory","value":"key"},"id":3956,"name":"Identifier","src":"6194:3:4"}],"id":3957,"name":"IndexAccess","src":"6175:23:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3946,"type":"string memory","value":"value"},"id":3958,"name":"Identifier","src":"6201:5:4"}],"id":3959,"name":"Assignment","src":"6175:31:4"}],"id":3960,"name":"ExpressionStatement","src":"6175:31:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"overloadedDeclarations":[null],"referencedDeclaration":3718,"type":"function (bytes32,string memory,string memory)","value":"TextChanged"},"id":3961,"name":"Identifier","src":"6221:11:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3942,"type":"bytes32","value":"node"},"id":3962,"name":"Identifier","src":"6233:4:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3944,"type":"string memory","value":"key"},"id":3963,"name":"Identifier","src":"6239:3:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3944,"type":"string memory","value":"key"},"id":3964,"name":"Identifier","src":"6244:3:4"}],"id":3965,"name":"FunctionCall","src":"6221:27:4"}],"id":3966,"name":"EmitStatement","src":"6216:32:4"}],"id":3967,"name":"Block","src":"6165:90:4"}],"id":3968,"name":"FunctionDefinition","src":"6084:171:4"},{"attributes":{"constant":true,"documentation":"Returns the text data associated with an ENS node and key.\n@param node The ENS node to query.\n@param key The text data key to query.\n@return The associated text data.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"text","payable":false,"scope":4159,"stateMutability":"view","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":3985,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3969,"name":"ElementaryTypeName","src":"6486:7:4"}],"id":3970,"name":"VariableDeclaration","src":"6486:12:4"},{"attributes":{"constant":false,"name":"key","scope":3985,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":3971,"name":"ElementaryTypeName","src":"6500:6:4"}],"id":3972,"name":"VariableDeclaration","src":"6500:10:4"}],"id":3973,"name":"ParameterList","src":"6485:26:4"},{"children":[{"attributes":{"constant":false,"name":"","scope":3985,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":3974,"name":"ElementaryTypeName","src":"6533:6:4"}],"id":3975,"name":"VariableDeclaration","src":"6533:6:4"}],"id":3976,"name":"ParameterList","src":"6532:8:4"},{"children":[{"attributes":{"functionReturnParameters":3976},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"string storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"text","referencedDeclaration":3741,"type":"mapping(string memory => string storage ref)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3754,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":3977,"name":"Identifier","src":"6558:7:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3970,"type":"bytes32","value":"node"},"id":3978,"name":"Identifier","src":"6566:4:4"}],"id":3979,"name":"IndexAccess","src":"6558:13:4"}],"id":3980,"name":"MemberAccess","src":"6558:18:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3972,"type":"string memory","value":"key"},"id":3981,"name":"Identifier","src":"6577:3:4"}],"id":3982,"name":"IndexAccess","src":"6558:23:4"}],"id":3983,"name":"Return","src":"6551:30:4"}],"id":3984,"name":"Block","src":"6541:47:4"}],"id":3985,"name":"FunctionDefinition","src":"6472:116:4"},{"attributes":{"constant":true,"documentation":"Returns the SECP256k1 public key associated with an ENS node.\nDefined in EIP 619.\n@param node The ENS node to query\n@return x, y the X and Y coordinates of the curve point for the public key.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"pubkey","payable":false,"scope":4159,"stateMutability":"view","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":4007,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3986,"name":"ElementaryTypeName","src":"6846:7:4"}],"id":3987,"name":"VariableDeclaration","src":"6846:12:4"}],"id":3988,"name":"ParameterList","src":"6845:14:4"},{"children":[{"attributes":{"constant":false,"name":"x","scope":4007,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3989,"name":"ElementaryTypeName","src":"6881:7:4"}],"id":3990,"name":"VariableDeclaration","src":"6881:9:4"},{"attributes":{"constant":false,"name":"y","scope":4007,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":3991,"name":"ElementaryTypeName","src":"6892:7:4"}],"id":3992,"name":"VariableDeclaration","src":"6892:9:4"}],"id":3993,"name":"ParameterList","src":"6880:22:4"},{"children":[{"attributes":{"functionReturnParameters":3993},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"tuple(bytes32,bytes32)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"x","referencedDeclaration":3726,"type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"pubkey","referencedDeclaration":3737,"type":"struct PublicResolver.PublicKey storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3754,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":3994,"name":"Identifier","src":"6921:7:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3987,"type":"bytes32","value":"node"},"id":3995,"name":"Identifier","src":"6929:4:4"}],"id":3996,"name":"IndexAccess","src":"6921:13:4"}],"id":3997,"name":"MemberAccess","src":"6921:20:4"}],"id":3998,"name":"MemberAccess","src":"6921:22:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"y","referencedDeclaration":3728,"type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"pubkey","referencedDeclaration":3737,"type":"struct PublicResolver.PublicKey storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3754,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":3999,"name":"Identifier","src":"6945:7:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3987,"type":"bytes32","value":"node"},"id":4000,"name":"Identifier","src":"6953:4:4"}],"id":4001,"name":"IndexAccess","src":"6945:13:4"}],"id":4002,"name":"MemberAccess","src":"6945:20:4"}],"id":4003,"name":"MemberAccess","src":"6945:22:4"}],"id":4004,"name":"TupleExpression","src":"6920:48:4"}],"id":4005,"name":"Return","src":"6913:55:4"}],"id":4006,"name":"Block","src":"6903:72:4"}],"id":4007,"name":"FunctionDefinition","src":"6830:145:4"},{"attributes":{"constant":true,"documentation":"Returns the ABI associated with an ENS node.\nDefined in EIP205.\n@param node The ENS node to query\n@param contentTypes A bitwise OR of the ABI formats accepted by the caller.\n@return contentType The content type of the return value\n@return data The ABI data","implemented":true,"isConstructor":false,"modifiers":[null],"name":"ABI","payable":false,"scope":4159,"stateMutability":"view","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":4066,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":4008,"name":"ElementaryTypeName","src":"7309:7:4"}],"id":4009,"name":"VariableDeclaration","src":"7309:12:4"},{"attributes":{"constant":false,"name":"contentTypes","scope":4066,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":4010,"name":"ElementaryTypeName","src":"7323:7:4"}],"id":4011,"name":"VariableDeclaration","src":"7323:20:4"}],"id":4012,"name":"ParameterList","src":"7308:36:4"},{"children":[{"attributes":{"constant":false,"name":"contentType","scope":4066,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":4013,"name":"ElementaryTypeName","src":"7366:7:4"}],"id":4014,"name":"VariableDeclaration","src":"7366:19:4"},{"attributes":{"constant":false,"name":"data","scope":4066,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4015,"name":"ElementaryTypeName","src":"7387:5:4"}],"id":4016,"name":"VariableDeclaration","src":"7387:10:4"}],"id":4017,"name":"ParameterList","src":"7365:33:4"},{"children":[{"attributes":{"assignments":[4019]},"children":[{"attributes":{"constant":false,"name":"record","scope":4066,"stateVariable":false,"storageLocation":"storage","type":"struct PublicResolver.Record","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"Record","referencedDeclaration":3748,"type":"struct PublicResolver.Record"},"id":4018,"name":"UserDefinedTypeName","src":"7409:6:4"}],"id":4019,"name":"VariableDeclaration","src":"7409:21:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3754,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":4020,"name":"Identifier","src":"7433:7:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4009,"type":"bytes32","value":"node"},"id":4021,"name":"Identifier","src":"7441:4:4"}],"id":4022,"name":"IndexAccess","src":"7433:13:4"}],"id":4023,"name":"VariableDeclarationStatement","src":"7409:37:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4014,"type":"uint256","value":"contentType"},"id":4024,"name":"Identifier","src":"7461:11:4"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":4025,"name":"Literal","src":"7475:1:4"}],"id":4026,"name":"Assignment","src":"7461:15:4"}],"id":4027,"name":"ExpressionStatement","src":"7461:15:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4014,"type":"uint256","value":"contentType"},"id":4028,"name":"Identifier","src":"7478:11:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4011,"type":"uint256","value":"contentTypes"},"id":4029,"name":"Identifier","src":"7493:12:4"}],"id":4030,"name":"BinaryOperation","src":"7478:27:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<<=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4014,"type":"uint256","value":"contentType"},"id":4031,"name":"Identifier","src":"7507:11:4"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":4032,"name":"Literal","src":"7523:1:4"}],"id":4033,"name":"Assignment","src":"7507:17:4"}],"id":4034,"name":"ExpressionStatement","src":"7507:17:4"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&&","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4014,"type":"uint256","value":"contentType"},"id":4035,"name":"Identifier","src":"7545:11:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4011,"type":"uint256","value":"contentTypes"},"id":4036,"name":"Identifier","src":"7559:12:4"}],"id":4037,"name":"BinaryOperation","src":"7545:26:4"}],"id":4038,"name":"TupleExpression","src":"7544:28:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4039,"name":"Literal","src":"7576:1:4"}],"id":4040,"name":"BinaryOperation","src":"7544:33:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"abis","referencedDeclaration":3745,"type":"mapping(uint256 => bytes storage ref)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4019,"type":"struct PublicResolver.Record storage pointer","value":"record"},"id":4041,"name":"Identifier","src":"7581:6:4"}],"id":4042,"name":"MemberAccess","src":"7581:11:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4014,"type":"uint256","value":"contentType"},"id":4043,"name":"Identifier","src":"7593:11:4"}],"id":4044,"name":"IndexAccess","src":"7581:24:4"}],"id":4045,"name":"MemberAccess","src":"7581:31:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4046,"name":"Literal","src":"7615:1:4"}],"id":4047,"name":"BinaryOperation","src":"7581:35:4"}],"id":4048,"name":"BinaryOperation","src":"7544:72:4"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4016,"type":"bytes memory","value":"data"},"id":4049,"name":"Identifier","src":"7636:4:4"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"abis","referencedDeclaration":3745,"type":"mapping(uint256 => bytes storage ref)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4019,"type":"struct PublicResolver.Record storage pointer","value":"record"},"id":4050,"name":"Identifier","src":"7643:6:4"}],"id":4051,"name":"MemberAccess","src":"7643:11:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4014,"type":"uint256","value":"contentType"},"id":4052,"name":"Identifier","src":"7655:11:4"}],"id":4053,"name":"IndexAccess","src":"7643:24:4"}],"id":4054,"name":"Assignment","src":"7636:31:4"}],"id":4055,"name":"ExpressionStatement","src":"7636:31:4"},{"attributes":{"expression":null,"functionReturnParameters":4017},"id":4056,"name":"Return","src":"7685:7:4"}],"id":4057,"name":"Block","src":"7618:88:4"}],"id":4058,"name":"IfStatement","src":"7540:166:4"}],"id":4059,"name":"Block","src":"7526:190:4"}],"id":4060,"name":"ForStatement","src":"7456:260:4"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4014,"type":"uint256","value":"contentType"},"id":4061,"name":"Identifier","src":"7725:11:4"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4062,"name":"Literal","src":"7739:1:4"}],"id":4063,"name":"Assignment","src":"7725:15:4"}],"id":4064,"name":"ExpressionStatement","src":"7725:15:4"}],"id":4065,"name":"Block","src":"7399:348:4"}],"id":4066,"name":"FunctionDefinition","src":"7296:451:4"},{"attributes":{"constant":true,"documentation":"Returns the name associated with an ENS node, for reverse records.\nDefined in EIP181.\n@param node The ENS node to query.\n@return The associated name.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"name","payable":false,"scope":4159,"stateMutability":"view","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":4079,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":4067,"name":"ElementaryTypeName","src":"7961:7:4"}],"id":4068,"name":"VariableDeclaration","src":"7961:12:4"}],"id":4069,"name":"ParameterList","src":"7960:14:4"},{"children":[{"attributes":{"constant":false,"name":"","scope":4079,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":4070,"name":"ElementaryTypeName","src":"7996:6:4"}],"id":4071,"name":"VariableDeclaration","src":"7996:6:4"}],"id":4072,"name":"ParameterList","src":"7995:8:4"},{"children":[{"attributes":{"functionReturnParameters":4072},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"name","referencedDeclaration":3735,"type":"string storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3754,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":4073,"name":"Identifier","src":"8021:7:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4068,"type":"bytes32","value":"node"},"id":4074,"name":"Identifier","src":"8029:4:4"}],"id":4075,"name":"IndexAccess","src":"8021:13:4"}],"id":4076,"name":"MemberAccess","src":"8021:18:4"}],"id":4077,"name":"Return","src":"8014:25:4"}],"id":4078,"name":"Block","src":"8004:42:4"}],"id":4079,"name":"FunctionDefinition","src":"7947:99:4"},{"attributes":{"constant":true,"documentation":"Returns the content hash associated with an ENS node.\nNote that this resource type is not standardized, and will likely change\nin future to a resource type based on multihash.\n@param node The ENS node to query.\n@return The associated content hash.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"content","payable":false,"scope":4159,"stateMutability":"view","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":4092,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":4080,"name":"ElementaryTypeName","src":"8368:7:4"}],"id":4081,"name":"VariableDeclaration","src":"8368:12:4"}],"id":4082,"name":"ParameterList","src":"8367:14:4"},{"children":[{"attributes":{"constant":false,"name":"","scope":4092,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":4083,"name":"ElementaryTypeName","src":"8403:7:4"}],"id":4084,"name":"VariableDeclaration","src":"8403:7:4"}],"id":4085,"name":"ParameterList","src":"8402:9:4"},{"children":[{"attributes":{"functionReturnParameters":4085},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"content","referencedDeclaration":3733,"type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3754,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":4086,"name":"Identifier","src":"8429:7:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4081,"type":"bytes32","value":"node"},"id":4087,"name":"Identifier","src":"8437:4:4"}],"id":4088,"name":"IndexAccess","src":"8429:13:4"}],"id":4089,"name":"MemberAccess","src":"8429:21:4"}],"id":4090,"name":"Return","src":"8422:28:4"}],"id":4091,"name":"Block","src":"8412:45:4"}],"id":4092,"name":"FunctionDefinition","src":"8351:106:4"},{"attributes":{"constant":true,"documentation":"Returns the multihash associated with an ENS node.\n@param node The ENS node to query.\n@return The associated multihash.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"multihash","payable":false,"scope":4159,"stateMutability":"view","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":4105,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":4093,"name":"ElementaryTypeName","src":"8639:7:4"}],"id":4094,"name":"VariableDeclaration","src":"8639:12:4"}],"id":4095,"name":"ParameterList","src":"8638:14:4"},{"children":[{"attributes":{"constant":false,"name":"","scope":4105,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":4096,"name":"ElementaryTypeName","src":"8674:5:4"}],"id":4097,"name":"VariableDeclaration","src":"8674:5:4"}],"id":4098,"name":"ParameterList","src":"8673:7:4"},{"children":[{"attributes":{"functionReturnParameters":4098},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"multihash","referencedDeclaration":3747,"type":"bytes storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3754,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":4099,"name":"Identifier","src":"8698:7:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4094,"type":"bytes32","value":"node"},"id":4100,"name":"Identifier","src":"8706:4:4"}],"id":4101,"name":"IndexAccess","src":"8698:13:4"}],"id":4102,"name":"MemberAccess","src":"8698:23:4"}],"id":4103,"name":"Return","src":"8691:30:4"}],"id":4104,"name":"Block","src":"8681:47:4"}],"id":4105,"name":"FunctionDefinition","src":"8620:108:4"},{"attributes":{"constant":true,"documentation":"Returns the address associated with an ENS node.\n@param node The ENS node to query.\n@return The associated address.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"addr","payable":false,"scope":4159,"stateMutability":"view","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"node","scope":4118,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":4106,"name":"ElementaryTypeName","src":"8901:7:4"}],"id":4107,"name":"VariableDeclaration","src":"8901:12:4"}],"id":4108,"name":"ParameterList","src":"8900:14:4"},{"children":[{"attributes":{"constant":false,"name":"","scope":4118,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":4109,"name":"ElementaryTypeName","src":"8936:7:4"}],"id":4110,"name":"VariableDeclaration","src":"8936:7:4"}],"id":4111,"name":"ParameterList","src":"8935:9:4"},{"children":[{"attributes":{"functionReturnParameters":4111},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"addr","referencedDeclaration":3731,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct PublicResolver.Record storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3754,"type":"mapping(bytes32 => struct PublicResolver.Record storage ref)","value":"records"},"id":4112,"name":"Identifier","src":"8962:7:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4107,"type":"bytes32","value":"node"},"id":4113,"name":"Identifier","src":"8970:4:4"}],"id":4114,"name":"IndexAccess","src":"8962:13:4"}],"id":4115,"name":"MemberAccess","src":"8962:18:4"}],"id":4116,"name":"Return","src":"8955:25:4"}],"id":4117,"name":"Block","src":"8945:42:4"}],"id":4118,"name":"FunctionDefinition","src":"8887:100:4"},{"attributes":{"constant":true,"documentation":"Returns true if the resolver implements the interface specified by the provided hash.\n@param interfaceID The ID of the interface to check for.\n@return True if the contract implements the requested interface.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"supportsInterface","payable":false,"scope":4159,"stateMutability":"pure","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"interfaceID","scope":4158,"stateVariable":false,"storageLocation":"default","type":"bytes4","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes4","type":"bytes4"},"id":4119,"name":"ElementaryTypeName","src":"9265:6:4"}],"id":4120,"name":"VariableDeclaration","src":"9265:18:4"}],"id":4121,"name":"ParameterList","src":"9264:20:4"},{"children":[{"attributes":{"constant":false,"name":"","scope":4158,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":4122,"name":"ElementaryTypeName","src":"9306:4:4"}],"id":4123,"name":"VariableDeclaration","src":"9306:4:4"}],"id":4124,"name":"ParameterList","src":"9305:6:4"},{"children":[{"attributes":{"functionReturnParameters":4124},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"||","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"||","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"||","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"||","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"||","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"||","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"||","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4120,"type":"bytes4","value":"interfaceID"},"id":4125,"name":"Identifier","src":"9329:11:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3660,"type":"bytes4","value":"ADDR_INTERFACE_ID"},"id":4126,"name":"Identifier","src":"9344:17:4"}],"id":4127,"name":"BinaryOperation","src":"9329:32:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4120,"type":"bytes4","value":"interfaceID"},"id":4128,"name":"Identifier","src":"9373:11:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3663,"type":"bytes4","value":"CONTENT_INTERFACE_ID"},"id":4129,"name":"Identifier","src":"9388:20:4"}],"id":4130,"name":"BinaryOperation","src":"9373:35:4"}],"id":4131,"name":"BinaryOperation","src":"9329:79:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4120,"type":"bytes4","value":"interfaceID"},"id":4132,"name":"Identifier","src":"9420:11:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3666,"type":"bytes4","value":"NAME_INTERFACE_ID"},"id":4133,"name":"Identifier","src":"9435:17:4"}],"id":4134,"name":"BinaryOperation","src":"9420:32:4"}],"id":4135,"name":"BinaryOperation","src":"9329:123:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4120,"type":"bytes4","value":"interfaceID"},"id":4136,"name":"Identifier","src":"9464:11:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3669,"type":"bytes4","value":"ABI_INTERFACE_ID"},"id":4137,"name":"Identifier","src":"9479:16:4"}],"id":4138,"name":"BinaryOperation","src":"9464:31:4"}],"id":4139,"name":"BinaryOperation","src":"9329:166:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4120,"type":"bytes4","value":"interfaceID"},"id":4140,"name":"Identifier","src":"9507:11:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3672,"type":"bytes4","value":"PUBKEY_INTERFACE_ID"},"id":4141,"name":"Identifier","src":"9522:19:4"}],"id":4142,"name":"BinaryOperation","src":"9507:34:4"}],"id":4143,"name":"BinaryOperation","src":"9329:212:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4120,"type":"bytes4","value":"interfaceID"},"id":4144,"name":"Identifier","src":"9553:11:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3675,"type":"bytes4","value":"TEXT_INTERFACE_ID"},"id":4145,"name":"Identifier","src":"9568:17:4"}],"id":4146,"name":"BinaryOperation","src":"9553:32:4"}],"id":4147,"name":"BinaryOperation","src":"9329:256:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4120,"type":"bytes4","value":"interfaceID"},"id":4148,"name":"Identifier","src":"9597:11:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3678,"type":"bytes4","value":"MULTIHASH_INTERFACE_ID"},"id":4149,"name":"Identifier","src":"9612:22:4"}],"id":4150,"name":"BinaryOperation","src":"9597:37:4"}],"id":4151,"name":"BinaryOperation","src":"9329:305:4"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4120,"type":"bytes4","value":"interfaceID"},"id":4152,"name":"Identifier","src":"9646:11:4"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3657,"type":"bytes4","value":"INTERFACE_META_ID"},"id":4153,"name":"Identifier","src":"9661:17:4"}],"id":4154,"name":"BinaryOperation","src":"9646:32:4"}],"id":4155,"name":"BinaryOperation","src":"9329:349:4"}],"id":4156,"name":"Return","src":"9322:356:4"}],"id":4157,"name":"Block","src":"9312:373:4"}],"id":4158,"name":"FunctionDefinition","src":"9238:447:4"}],"id":4159,"name":"ContractDefinition","src":"1553:8134:4"}],"id":4160,"name":"SourceUnit","src":"1406:8282:4"}},"externals/strings.sol":{"AST":{"attributes":{"absolutePath":"externals/strings.sol","exportedSymbols":{"strings":[6484]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".14"]},"id":4791,"name":"PragmaDirective","src":"2574:24:5"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"library","documentation":null,"fullyImplemented":true,"linearizedBaseContracts":[6484],"name":"strings","scope":6485},"children":[{"attributes":{"canonicalName":"strings.slice","name":"slice","scope":6484,"visibility":"public"},"children":[{"attributes":{"constant":false,"name":"_len","scope":4796,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4792,"name":"ElementaryTypeName","src":"2645:4:5"}],"id":4793,"name":"VariableDeclaration","src":"2645:9:5"},{"attributes":{"constant":false,"name":"_ptr","scope":4796,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4794,"name":"ElementaryTypeName","src":"2664:4:5"}],"id":4795,"name":"VariableDeclaration","src":"2664:9:5"}],"id":4796,"name":"StructDefinition","src":"2622:58:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"memcpy","payable":false,"scope":6484,"stateMutability":"pure","superFunction":null,"visibility":"private"},"children":[{"children":[{"attributes":{"constant":false,"name":"dest","scope":4836,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4797,"name":"ElementaryTypeName","src":"2702:4:5"}],"id":4798,"name":"VariableDeclaration","src":"2702:9:5"},{"attributes":{"constant":false,"name":"src","scope":4836,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4799,"name":"ElementaryTypeName","src":"2713:4:5"}],"id":4800,"name":"VariableDeclaration","src":"2713:8:5"},{"attributes":{"constant":false,"name":"len","scope":4836,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4801,"name":"ElementaryTypeName","src":"2723:4:5"}],"id":4802,"name":"VariableDeclaration","src":"2723:8:5"}],"id":4803,"name":"ParameterList","src":"2701:31:5"},{"attributes":{"parameters":[null]},"children":[],"id":4804,"name":"ParameterList","src":"2746:0:5"},{"children":[{"attributes":{"initializationExpression":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4802,"type":"uint256","value":"len"},"id":4805,"name":"Identifier","src":"2812:3:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":4806,"name":"Literal","src":"2819:2:5"}],"id":4807,"name":"BinaryOperation","src":"2812:9:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4802,"type":"uint256","value":"len"},"id":4808,"name":"Identifier","src":"2823:3:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":4809,"name":"Literal","src":"2830:2:5"}],"id":4810,"name":"Assignment","src":"2823:9:5"}],"id":4811,"name":"ExpressionStatement","src":"2823:9:5"},{"children":[{"attributes":{"externalReferences":[{"dest":{"declaration":4798,"isOffset":false,"isSlot":false,"src":"2882:4:5","valueSize":1}},{"src":{"declaration":4800,"isOffset":false,"isSlot":false,"src":"2894:3:5","valueSize":1}}],"operations":"{\n mstore(dest, mload(src))\n}"},"children":[],"id":4812,"name":"InlineAssembly","src":"2848:82:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4798,"type":"uint256","value":"dest"},"id":4813,"name":"Identifier","src":"2926:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":4814,"name":"Literal","src":"2934:2:5"}],"id":4815,"name":"Assignment","src":"2926:10:5"}],"id":4816,"name":"ExpressionStatement","src":"2926:10:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4800,"type":"uint256","value":"src"},"id":4817,"name":"Identifier","src":"2950:3:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":4818,"name":"Literal","src":"2957:2:5"}],"id":4819,"name":"Assignment","src":"2950:9:5"}],"id":4820,"name":"ExpressionStatement","src":"2950:9:5"}],"id":4821,"name":"Block","src":"2834:136:5"}],"id":4822,"name":"ForStatement","src":"2806:164:5"},{"attributes":{"assignments":[4824]},"children":[{"attributes":{"constant":false,"name":"mask","scope":4836,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4823,"name":"ElementaryTypeName","src":"3012:4:5"}],"id":4824,"name":"VariableDeclaration","src":"3012:9:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"**","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"323536","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 256","value":"256"},"id":4825,"name":"Literal","src":"3024:3:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":4826,"name":"Literal","src":"3032:2:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4802,"type":"uint256","value":"len"},"id":4827,"name":"Identifier","src":"3037:3:5"}],"id":4828,"name":"BinaryOperation","src":"3032:8:5"}],"id":4829,"name":"TupleExpression","src":"3031:10:5"}],"id":4830,"name":"BinaryOperation","src":"3024:17:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":4831,"name":"Literal","src":"3044:1:5"}],"id":4832,"name":"BinaryOperation","src":"3024:21:5"}],"id":4833,"name":"VariableDeclarationStatement","src":"3012:33:5"},{"attributes":{"externalReferences":[{"mask":{"declaration":4824,"isOffset":false,"isSlot":false,"src":"3113:4:5","valueSize":1}},{"src":{"declaration":4800,"isOffset":false,"isSlot":false,"src":"3103:3:5","valueSize":1}},{"dest":{"declaration":4798,"isOffset":false,"isSlot":false,"src":"3158:4:5","valueSize":1}},{"mask":{"declaration":4824,"isOffset":false,"isSlot":false,"src":"3165:4:5","valueSize":1}},{"dest":{"declaration":4798,"isOffset":false,"isSlot":false,"src":"3190:4:5","valueSize":1}}],"operations":"{\n let srcpart := and(mload(src), not(mask))\n let destpart := and(mload(dest), mask)\n mstore(dest, or(destpart, srcpart))\n}"},"children":[],"id":4834,"name":"InlineAssembly","src":"3055:179:5"}],"id":4835,"name":"Block","src":"2746:488:5"}],"id":4836,"name":"FunctionDefinition","src":"2686:548:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"toSlice","payable":false,"scope":6484,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":4856,"stateVariable":false,"storageLocation":"memory","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":4837,"name":"ElementaryTypeName","src":"3451:6:5"}],"id":4838,"name":"VariableDeclaration","src":"3451:18:5"}],"id":4839,"name":"ParameterList","src":"3450:20:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":4856,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4796,"type":"struct strings.slice"},"id":4840,"name":"UserDefinedTypeName","src":"3494:5:5"}],"id":4841,"name":"VariableDeclaration","src":"3494:5:5"}],"id":4842,"name":"ParameterList","src":"3493:14:5"},{"children":[{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"ptr","scope":4856,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4843,"name":"ElementaryTypeName","src":"3518:4:5"}],"id":4844,"name":"VariableDeclaration","src":"3518:8:5"}],"id":4845,"name":"VariableDeclarationStatement","src":"3518:8:5"},{"attributes":{"externalReferences":[{"ptr":{"declaration":4844,"isOffset":false,"isSlot":false,"src":"3559:3:5","valueSize":1}},{"self":{"declaration":4838,"isOffset":false,"isSlot":false,"src":"3570:4:5","valueSize":1}}],"operations":"{\n ptr := add(self, 0x20)\n}"},"children":[],"id":4846,"name":"InlineAssembly","src":"3536:70:5"},{"attributes":{"functionReturnParameters":4842},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":true,"lValueRequested":false,"names":[null],"type":"struct strings.slice memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":4796,"type":"type(struct strings.slice storage pointer)","value":"slice"},"id":4847,"name":"Identifier","src":"3607:5:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes storage pointer)","value":"bytes"},"id":4848,"name":"ElementaryTypeNameExpression","src":"3613:5:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4838,"type":"string memory","value":"self"},"id":4849,"name":"Identifier","src":"3619:4:5"}],"id":4850,"name":"FunctionCall","src":"3613:11:5"}],"id":4851,"name":"MemberAccess","src":"3613:18:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4844,"type":"uint256","value":"ptr"},"id":4852,"name":"Identifier","src":"3633:3:5"}],"id":4853,"name":"FunctionCall","src":"3607:30:5"}],"id":4854,"name":"Return","src":"3600:37:5"}],"id":4855,"name":"Block","src":"3508:136:5"}],"id":4856,"name":"FunctionDefinition","src":"3434:210:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"len","payable":false,"scope":6484,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":4972,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":4857,"name":"ElementaryTypeName","src":"3853:7:5"}],"id":4858,"name":"VariableDeclaration","src":"3853:12:5"}],"id":4859,"name":"ParameterList","src":"3852:14:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":4972,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4860,"name":"ElementaryTypeName","src":"3890:4:5"}],"id":4861,"name":"VariableDeclaration","src":"3890:4:5"}],"id":4862,"name":"ParameterList","src":"3889:6:5"},{"children":[{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"ret","scope":4972,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4863,"name":"ElementaryTypeName","src":"3906:4:5"}],"id":4864,"name":"VariableDeclaration","src":"3906:8:5"}],"id":4865,"name":"VariableDeclarationStatement","src":"3906:8:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4858,"type":"bytes32","value":"self"},"id":4866,"name":"Identifier","src":"3928:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4867,"name":"Literal","src":"3936:1:5"}],"id":4868,"name":"BinaryOperation","src":"3928:9:5"},{"attributes":{"functionReturnParameters":4862},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4869,"name":"Literal","src":"3958:1:5"}],"id":4870,"name":"Return","src":"3951:8:5"}],"id":4871,"name":"IfStatement","src":"3924:35:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4858,"type":"bytes32","value":"self"},"id":4872,"name":"Identifier","src":"3973:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30786666666666666666666666666666666666666666666666666666666666666666","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3402...(31 digits omitted)...1455","value":"0xffffffffffffffffffffffffffffffff"},"id":4873,"name":"Literal","src":"3980:34:5"}],"id":4874,"name":"BinaryOperation","src":"3973:41:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4875,"name":"Literal","src":"4018:1:5"}],"id":4876,"name":"BinaryOperation","src":"3973:46:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4864,"type":"uint256","value":"ret"},"id":4877,"name":"Identifier","src":"4035:3:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3136","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 16","value":"16"},"id":4878,"name":"Literal","src":"4042:2:5"}],"id":4879,"name":"Assignment","src":"4035:9:5"}],"id":4880,"name":"ExpressionStatement","src":"4035:9:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4858,"type":"bytes32","value":"self"},"id":4881,"name":"Identifier","src":"4058:4:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes32)","value":"bytes32"},"id":4882,"name":"ElementaryTypeNameExpression","src":"4065:7:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"/","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint"},"id":4883,"name":"ElementaryTypeNameExpression","src":"4073:4:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4858,"type":"bytes32","value":"self"},"id":4884,"name":"Identifier","src":"4078:4:5"}],"id":4885,"name":"FunctionCall","src":"4073:10:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3078313030303030303030303030303030303030303030303030303030303030303030","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3402...(31 digits omitted)...1456","value":"0x100000000000000000000000000000000"},"id":4886,"name":"Literal","src":"4086:35:5"}],"id":4887,"name":"BinaryOperation","src":"4073:48:5"}],"id":4888,"name":"FunctionCall","src":"4065:57:5"}],"id":4889,"name":"Assignment","src":"4058:64:5"}],"id":4890,"name":"ExpressionStatement","src":"4058:64:5"}],"id":4891,"name":"Block","src":"4021:112:5"}],"id":4892,"name":"IfStatement","src":"3969:164:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4858,"type":"bytes32","value":"self"},"id":4893,"name":"Identifier","src":"4146:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"307866666666666666666666666666666666","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 18446744073709551615","value":"0xffffffffffffffff"},"id":4894,"name":"Literal","src":"4153:18:5"}],"id":4895,"name":"BinaryOperation","src":"4146:25:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4896,"name":"Literal","src":"4175:1:5"}],"id":4897,"name":"BinaryOperation","src":"4146:30:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4864,"type":"uint256","value":"ret"},"id":4898,"name":"Identifier","src":"4192:3:5"},{"attributes":{"argumentTypes":null,"hexvalue":"38","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 8","value":"8"},"id":4899,"name":"Literal","src":"4199:1:5"}],"id":4900,"name":"Assignment","src":"4192:8:5"}],"id":4901,"name":"ExpressionStatement","src":"4192:8:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4858,"type":"bytes32","value":"self"},"id":4902,"name":"Identifier","src":"4214:4:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes32)","value":"bytes32"},"id":4903,"name":"ElementaryTypeNameExpression","src":"4221:7:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"/","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint"},"id":4904,"name":"ElementaryTypeNameExpression","src":"4229:4:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4858,"type":"bytes32","value":"self"},"id":4905,"name":"Identifier","src":"4234:4:5"}],"id":4906,"name":"FunctionCall","src":"4229:10:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30783130303030303030303030303030303030","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 18446744073709551616","value":"0x10000000000000000"},"id":4907,"name":"Literal","src":"4242:19:5"}],"id":4908,"name":"BinaryOperation","src":"4229:32:5"}],"id":4909,"name":"FunctionCall","src":"4221:41:5"}],"id":4910,"name":"Assignment","src":"4214:48:5"}],"id":4911,"name":"ExpressionStatement","src":"4214:48:5"}],"id":4912,"name":"Block","src":"4178:95:5"}],"id":4913,"name":"IfStatement","src":"4142:131:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4858,"type":"bytes32","value":"self"},"id":4914,"name":"Identifier","src":"4286:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30786666666666666666","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4294967295","value":"0xffffffff"},"id":4915,"name":"Literal","src":"4293:10:5"}],"id":4916,"name":"BinaryOperation","src":"4286:17:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4917,"name":"Literal","src":"4307:1:5"}],"id":4918,"name":"BinaryOperation","src":"4286:22:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4864,"type":"uint256","value":"ret"},"id":4919,"name":"Identifier","src":"4324:3:5"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":4920,"name":"Literal","src":"4331:1:5"}],"id":4921,"name":"Assignment","src":"4324:8:5"}],"id":4922,"name":"ExpressionStatement","src":"4324:8:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4858,"type":"bytes32","value":"self"},"id":4923,"name":"Identifier","src":"4346:4:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes32)","value":"bytes32"},"id":4924,"name":"ElementaryTypeNameExpression","src":"4353:7:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"/","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint"},"id":4925,"name":"ElementaryTypeNameExpression","src":"4361:4:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4858,"type":"bytes32","value":"self"},"id":4926,"name":"Identifier","src":"4366:4:5"}],"id":4927,"name":"FunctionCall","src":"4361:10:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3078313030303030303030","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4294967296","value":"0x100000000"},"id":4928,"name":"Literal","src":"4374:11:5"}],"id":4929,"name":"BinaryOperation","src":"4361:24:5"}],"id":4930,"name":"FunctionCall","src":"4353:33:5"}],"id":4931,"name":"Assignment","src":"4346:40:5"}],"id":4932,"name":"ExpressionStatement","src":"4346:40:5"}],"id":4933,"name":"Block","src":"4310:87:5"}],"id":4934,"name":"IfStatement","src":"4282:115:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4858,"type":"bytes32","value":"self"},"id":4935,"name":"Identifier","src":"4410:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"307866666666","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 65535","value":"0xffff"},"id":4936,"name":"Literal","src":"4417:6:5"}],"id":4937,"name":"BinaryOperation","src":"4410:13:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4938,"name":"Literal","src":"4427:1:5"}],"id":4939,"name":"BinaryOperation","src":"4410:18:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4864,"type":"uint256","value":"ret"},"id":4940,"name":"Identifier","src":"4444:3:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":4941,"name":"Literal","src":"4451:1:5"}],"id":4942,"name":"Assignment","src":"4444:8:5"}],"id":4943,"name":"ExpressionStatement","src":"4444:8:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4858,"type":"bytes32","value":"self"},"id":4944,"name":"Identifier","src":"4466:4:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes32)","value":"bytes32"},"id":4945,"name":"ElementaryTypeNameExpression","src":"4473:7:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"/","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint"},"id":4946,"name":"ElementaryTypeNameExpression","src":"4481:4:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4858,"type":"bytes32","value":"self"},"id":4947,"name":"Identifier","src":"4486:4:5"}],"id":4948,"name":"FunctionCall","src":"4481:10:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30783130303030","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 65536","value":"0x10000"},"id":4949,"name":"Literal","src":"4494:7:5"}],"id":4950,"name":"BinaryOperation","src":"4481:20:5"}],"id":4951,"name":"FunctionCall","src":"4473:29:5"}],"id":4952,"name":"Assignment","src":"4466:36:5"}],"id":4953,"name":"ExpressionStatement","src":"4466:36:5"}],"id":4954,"name":"Block","src":"4430:83:5"}],"id":4955,"name":"IfStatement","src":"4406:107:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4858,"type":"bytes32","value":"self"},"id":4956,"name":"Identifier","src":"4526:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30786666","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 255","value":"0xff"},"id":4957,"name":"Literal","src":"4533:4:5"}],"id":4958,"name":"BinaryOperation","src":"4526:11:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4959,"name":"Literal","src":"4541:1:5"}],"id":4960,"name":"BinaryOperation","src":"4526:16:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4864,"type":"uint256","value":"ret"},"id":4961,"name":"Identifier","src":"4558:3:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":4962,"name":"Literal","src":"4565:1:5"}],"id":4963,"name":"Assignment","src":"4558:8:5"}],"id":4964,"name":"ExpressionStatement","src":"4558:8:5"}],"id":4965,"name":"Block","src":"4544:33:5"}],"id":4966,"name":"IfStatement","src":"4522:55:5"},{"attributes":{"functionReturnParameters":4862},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":4967,"name":"Literal","src":"4593:2:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4864,"type":"uint256","value":"ret"},"id":4968,"name":"Identifier","src":"4598:3:5"}],"id":4969,"name":"BinaryOperation","src":"4593:8:5"}],"id":4970,"name":"Return","src":"4586:15:5"}],"id":4971,"name":"Block","src":"3896:712:5"}],"id":4972,"name":"FunctionDefinition","src":"3840:768:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"toSliceB32","payable":false,"scope":6484,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":4989,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":4973,"name":"ElementaryTypeName","src":"4934:7:5"}],"id":4974,"name":"VariableDeclaration","src":"4934:12:5"}],"id":4975,"name":"ParameterList","src":"4933:14:5"},{"children":[{"attributes":{"constant":false,"name":"ret","scope":4989,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4796,"type":"struct strings.slice"},"id":4976,"name":"UserDefinedTypeName","src":"4971:5:5"}],"id":4977,"name":"VariableDeclaration","src":"4971:16:5"}],"id":4978,"name":"ParameterList","src":"4970:18:5"},{"children":[{"attributes":{"externalReferences":[{"ret":{"declaration":4977,"isOffset":false,"isSlot":false,"src":"5222:3:5","valueSize":1}},{"self":{"declaration":4974,"isOffset":false,"isSlot":false,"src":"5193:4:5","valueSize":1}}],"operations":"{\n let ptr := mload(0x40)\n mstore(0x40, add(ptr, 0x20))\n mstore(ptr, self)\n mstore(add(ret, 0x20), ptr)\n}"},"children":[],"id":4979,"name":"InlineAssembly","src":"5082:178:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":4793,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4977,"type":"struct strings.slice memory","value":"ret"},"id":4980,"name":"Identifier","src":"5257:3:5"}],"id":4982,"name":"MemberAccess","src":"5257:8:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[4972,5122],"referencedDeclaration":4972,"type":"function (bytes32) pure returns (uint256)","value":"len"},"id":4983,"name":"Identifier","src":"5268:3:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4974,"type":"bytes32","value":"self"},"id":4984,"name":"Identifier","src":"5272:4:5"}],"id":4985,"name":"FunctionCall","src":"5268:9:5"}],"id":4986,"name":"Assignment","src":"5257:20:5"}],"id":4987,"name":"ExpressionStatement","src":"5257:20:5"}],"id":4988,"name":"Block","src":"4989:295:5"}],"id":4989,"name":"FunctionDefinition","src":"4914:370:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"copy","payable":false,"scope":6484,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":5004,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4796,"type":"struct strings.slice"},"id":4990,"name":"UserDefinedTypeName","src":"5499:5:5"}],"id":4991,"name":"VariableDeclaration","src":"5499:17:5"}],"id":4992,"name":"ParameterList","src":"5498:19:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":5004,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4796,"type":"struct strings.slice"},"id":4993,"name":"UserDefinedTypeName","src":"5541:5:5"}],"id":4994,"name":"VariableDeclaration","src":"5541:5:5"}],"id":4995,"name":"ParameterList","src":"5540:14:5"},{"children":[{"attributes":{"functionReturnParameters":4995},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":true,"lValueRequested":false,"names":[null],"type":"struct strings.slice memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":4796,"type":"type(struct strings.slice storage pointer)","value":"slice"},"id":4996,"name":"Identifier","src":"5572:5:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4793,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4991,"type":"struct strings.slice memory","value":"self"},"id":4997,"name":"Identifier","src":"5578:4:5"}],"id":4998,"name":"MemberAccess","src":"5578:9:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":4795,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4991,"type":"struct strings.slice memory","value":"self"},"id":4999,"name":"Identifier","src":"5589:4:5"}],"id":5000,"name":"MemberAccess","src":"5589:9:5"}],"id":5001,"name":"FunctionCall","src":"5572:27:5"}],"id":5002,"name":"Return","src":"5565:34:5"}],"id":5003,"name":"Block","src":"5555:51:5"}],"id":5004,"name":"FunctionDefinition","src":"5485:121:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"toString","payable":false,"scope":6484,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":5034,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4796,"type":"struct strings.slice"},"id":5005,"name":"UserDefinedTypeName","src":"5796:5:5"}],"id":5006,"name":"VariableDeclaration","src":"5796:17:5"}],"id":5007,"name":"ParameterList","src":"5795:19:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":5034,"stateVariable":false,"storageLocation":"memory","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":5008,"name":"ElementaryTypeName","src":"5838:6:5"}],"id":5009,"name":"VariableDeclaration","src":"5838:6:5"}],"id":5010,"name":"ParameterList","src":"5837:15:5"},{"children":[{"attributes":{"assignments":[5012]},"children":[{"attributes":{"constant":false,"name":"ret","scope":5034,"stateVariable":false,"storageLocation":"memory","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":5011,"name":"ElementaryTypeName","src":"5863:6:5"}],"id":5012,"name":"VariableDeclaration","src":"5863:17:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (string memory)"},"children":[{"attributes":{"name":"string","type":"string"},"id":5013,"name":"ElementaryTypeName","src":"5887:6:5"}],"id":5014,"name":"NewExpression","src":"5883:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4793,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5006,"type":"struct strings.slice memory","value":"self"},"id":5015,"name":"Identifier","src":"5894:4:5"}],"id":5016,"name":"MemberAccess","src":"5894:9:5"}],"id":5017,"name":"FunctionCall","src":"5883:21:5"}],"id":5018,"name":"VariableDeclarationStatement","src":"5863:41:5"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"retptr","scope":5034,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5019,"name":"ElementaryTypeName","src":"5914:4:5"}],"id":5020,"name":"VariableDeclaration","src":"5914:11:5"}],"id":5021,"name":"VariableDeclarationStatement","src":"5914:11:5"},{"attributes":{"externalReferences":[{"retptr":{"declaration":5020,"isOffset":false,"isSlot":false,"src":"5946:6:5","valueSize":1}},{"ret":{"declaration":5012,"isOffset":false,"isSlot":false,"src":"5960:3:5","valueSize":1}}],"operations":"{\n retptr := add(ret, 32)\n}"},"children":[],"id":5022,"name":"InlineAssembly","src":"5935:51:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":4836,"type":"function (uint256,uint256,uint256) pure","value":"memcpy"},"id":5023,"name":"Identifier","src":"5980:6:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5020,"type":"uint256","value":"retptr"},"id":5024,"name":"Identifier","src":"5987:6:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":4795,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5006,"type":"struct strings.slice memory","value":"self"},"id":5025,"name":"Identifier","src":"5995:4:5"}],"id":5026,"name":"MemberAccess","src":"5995:9:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4793,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5006,"type":"struct strings.slice memory","value":"self"},"id":5027,"name":"Identifier","src":"6006:4:5"}],"id":5028,"name":"MemberAccess","src":"6006:9:5"}],"id":5029,"name":"FunctionCall","src":"5980:36:5"}],"id":5030,"name":"ExpressionStatement","src":"5980:36:5"},{"attributes":{"functionReturnParameters":5010},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5012,"type":"string memory","value":"ret"},"id":5031,"name":"Identifier","src":"6033:3:5"}],"id":5032,"name":"Return","src":"6026:10:5"}],"id":5033,"name":"Block","src":"5853:190:5"}],"id":5034,"name":"FunctionDefinition","src":"5778:265:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"len","payable":false,"scope":6484,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":5122,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4796,"type":"struct strings.slice"},"id":5035,"name":"UserDefinedTypeName","src":"6447:5:5"}],"id":5036,"name":"VariableDeclaration","src":"6447:17:5"}],"id":5037,"name":"ParameterList","src":"6446:19:5"},{"children":[{"attributes":{"constant":false,"name":"l","scope":5122,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5038,"name":"ElementaryTypeName","src":"6489:4:5"}],"id":5039,"name":"VariableDeclaration","src":"6489:6:5"}],"id":5040,"name":"ParameterList","src":"6488:8:5"},{"children":[{"attributes":{"assignments":[5042]},"children":[{"attributes":{"constant":false,"name":"ptr","scope":5122,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5041,"name":"ElementaryTypeName","src":"6582:4:5"}],"id":5042,"name":"VariableDeclaration","src":"6582:8:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":4795,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5036,"type":"struct strings.slice memory","value":"self"},"id":5043,"name":"Identifier","src":"6593:4:5"}],"id":5044,"name":"MemberAccess","src":"6593:9:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3331","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 31","value":"31"},"id":5045,"name":"Literal","src":"6605:2:5"}],"id":5046,"name":"BinaryOperation","src":"6593:14:5"}],"id":5047,"name":"VariableDeclarationStatement","src":"6582:25:5"},{"attributes":{"assignments":[5049]},"children":[{"attributes":{"constant":false,"name":"end","scope":5122,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5048,"name":"ElementaryTypeName","src":"6617:4:5"}],"id":5049,"name":"VariableDeclaration","src":"6617:8:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5042,"type":"uint256","value":"ptr"},"id":5050,"name":"Identifier","src":"6628:3:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4793,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5036,"type":"struct strings.slice memory","value":"self"},"id":5051,"name":"Identifier","src":"6634:4:5"}],"id":5052,"name":"MemberAccess","src":"6634:9:5"}],"id":5053,"name":"BinaryOperation","src":"6628:15:5"}],"id":5054,"name":"VariableDeclarationStatement","src":"6617:26:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5039,"type":"uint256","value":"l"},"id":5055,"name":"Identifier","src":"6658:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":5056,"name":"Literal","src":"6662:1:5"}],"id":5057,"name":"Assignment","src":"6658:5:5"}],"id":5058,"name":"ExpressionStatement","src":"6658:5:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5042,"type":"uint256","value":"ptr"},"id":5059,"name":"Identifier","src":"6665:3:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5049,"type":"uint256","value":"end"},"id":5060,"name":"Identifier","src":"6671:3:5"}],"id":5061,"name":"BinaryOperation","src":"6665:9:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5039,"type":"uint256","value":"l"},"id":5062,"name":"Identifier","src":"6676:1:5"}],"id":5063,"name":"UnaryOperation","src":"6676:3:5"}],"id":5064,"name":"ExpressionStatement","src":"6676:3:5"},{"children":[{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"b","scope":5122,"stateVariable":false,"storageLocation":"default","type":"uint8","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint8","type":"uint8"},"id":5065,"name":"ElementaryTypeName","src":"6695:5:5"}],"id":5066,"name":"VariableDeclaration","src":"6695:7:5"}],"id":5067,"name":"VariableDeclarationStatement","src":"6695:7:5"},{"attributes":{"externalReferences":[{"ptr":{"declaration":5042,"isOffset":false,"isSlot":false,"src":"6742:3:5","valueSize":1}},{"b":{"declaration":5066,"isOffset":false,"isSlot":false,"src":"6727:1:5","valueSize":1}}],"operations":"{\n b := and(mload(ptr), 0xFF)\n}"},"children":[],"id":5068,"name":"InlineAssembly","src":"6716:54:5"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5066,"type":"uint8","value":"b"},"id":5069,"name":"Identifier","src":"6772:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30783830","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 128","value":"0x80"},"id":5070,"name":"Literal","src":"6776:4:5"}],"id":5071,"name":"BinaryOperation","src":"6772:8:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5042,"type":"uint256","value":"ptr"},"id":5072,"name":"Identifier","src":"6800:3:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":5073,"name":"Literal","src":"6807:1:5"}],"id":5074,"name":"Assignment","src":"6800:8:5"}],"id":5075,"name":"ExpressionStatement","src":"6800:8:5"}],"id":5076,"name":"Block","src":"6782:41:5"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5066,"type":"uint8","value":"b"},"id":5077,"name":"Identifier","src":"6832:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30784530","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 224","value":"0xE0"},"id":5078,"name":"Literal","src":"6836:4:5"}],"id":5079,"name":"BinaryOperation","src":"6832:8:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5042,"type":"uint256","value":"ptr"},"id":5080,"name":"Identifier","src":"6860:3:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":5081,"name":"Literal","src":"6867:1:5"}],"id":5082,"name":"Assignment","src":"6860:8:5"}],"id":5083,"name":"ExpressionStatement","src":"6860:8:5"}],"id":5084,"name":"Block","src":"6842:41:5"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5066,"type":"uint8","value":"b"},"id":5085,"name":"Identifier","src":"6892:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30784630","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 240","value":"0xF0"},"id":5086,"name":"Literal","src":"6896:4:5"}],"id":5087,"name":"BinaryOperation","src":"6892:8:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5042,"type":"uint256","value":"ptr"},"id":5088,"name":"Identifier","src":"6920:3:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":5089,"name":"Literal","src":"6927:1:5"}],"id":5090,"name":"Assignment","src":"6920:8:5"}],"id":5091,"name":"ExpressionStatement","src":"6920:8:5"}],"id":5092,"name":"Block","src":"6902:41:5"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5066,"type":"uint8","value":"b"},"id":5093,"name":"Identifier","src":"6952:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30784638","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 248","value":"0xF8"},"id":5094,"name":"Literal","src":"6956:4:5"}],"id":5095,"name":"BinaryOperation","src":"6952:8:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5042,"type":"uint256","value":"ptr"},"id":5096,"name":"Identifier","src":"6980:3:5"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":5097,"name":"Literal","src":"6987:1:5"}],"id":5098,"name":"Assignment","src":"6980:8:5"}],"id":5099,"name":"ExpressionStatement","src":"6980:8:5"}],"id":5100,"name":"Block","src":"6962:41:5"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5066,"type":"uint8","value":"b"},"id":5101,"name":"Identifier","src":"7012:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30784643","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 252","value":"0xFC"},"id":5102,"name":"Literal","src":"7016:4:5"}],"id":5103,"name":"BinaryOperation","src":"7012:8:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5042,"type":"uint256","value":"ptr"},"id":5104,"name":"Identifier","src":"7040:3:5"},{"attributes":{"argumentTypes":null,"hexvalue":"35","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 5","value":"5"},"id":5105,"name":"Literal","src":"7047:1:5"}],"id":5106,"name":"Assignment","src":"7040:8:5"}],"id":5107,"name":"ExpressionStatement","src":"7040:8:5"}],"id":5108,"name":"Block","src":"7022:41:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5042,"type":"uint256","value":"ptr"},"id":5109,"name":"Identifier","src":"7087:3:5"},{"attributes":{"argumentTypes":null,"hexvalue":"36","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 6","value":"6"},"id":5110,"name":"Literal","src":"7094:1:5"}],"id":5111,"name":"Assignment","src":"7087:8:5"}],"id":5112,"name":"ExpressionStatement","src":"7087:8:5"}],"id":5113,"name":"Block","src":"7069:41:5"}],"id":5114,"name":"IfStatement","src":"7009:101:5"}],"id":5115,"name":"IfStatement","src":"6949:161:5"}],"id":5116,"name":"IfStatement","src":"6889:221:5"}],"id":5117,"name":"IfStatement","src":"6829:281:5"}],"id":5118,"name":"IfStatement","src":"6768:342:5"}],"id":5119,"name":"Block","src":"6681:439:5"}],"id":5120,"name":"ForStatement","src":"6653:467:5"}],"id":5121,"name":"Block","src":"6497:629:5"}],"id":5122,"name":"FunctionDefinition","src":"6434:692:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"empty","payable":false,"scope":6484,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":5135,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4796,"type":"struct strings.slice"},"id":5123,"name":"UserDefinedTypeName","src":"7334:5:5"}],"id":5124,"name":"VariableDeclaration","src":"7334:17:5"}],"id":5125,"name":"ParameterList","src":"7333:19:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":5135,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":5126,"name":"ElementaryTypeName","src":"7376:4:5"}],"id":5127,"name":"VariableDeclaration","src":"7376:4:5"}],"id":5128,"name":"ParameterList","src":"7375:6:5"},{"children":[{"attributes":{"functionReturnParameters":5128},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4793,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5124,"type":"struct strings.slice memory","value":"self"},"id":5129,"name":"Identifier","src":"7399:4:5"}],"id":5130,"name":"MemberAccess","src":"7399:9:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":5131,"name":"Literal","src":"7412:1:5"}],"id":5132,"name":"BinaryOperation","src":"7399:14:5"}],"id":5133,"name":"Return","src":"7392:21:5"}],"id":5134,"name":"Block","src":"7382:38:5"}],"id":5135,"name":"FunctionDefinition","src":"7319:101:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"compare","payable":false,"scope":6484,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":5264,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4796,"type":"struct strings.slice"},"id":5136,"name":"UserDefinedTypeName","src":"7865:5:5"}],"id":5137,"name":"VariableDeclaration","src":"7865:17:5"},{"attributes":{"constant":false,"name":"other","scope":5264,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4796,"type":"struct strings.slice"},"id":5138,"name":"UserDefinedTypeName","src":"7884:5:5"}],"id":5139,"name":"VariableDeclaration","src":"7884:18:5"}],"id":5140,"name":"ParameterList","src":"7864:39:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":5264,"stateVariable":false,"storageLocation":"default","type":"int256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"int","type":"int256"},"id":5141,"name":"ElementaryTypeName","src":"7927:3:5"}],"id":5142,"name":"VariableDeclaration","src":"7927:3:5"}],"id":5143,"name":"ParameterList","src":"7926:5:5"},{"children":[{"attributes":{"assignments":[5145]},"children":[{"attributes":{"constant":false,"name":"shortest","scope":5264,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5144,"name":"ElementaryTypeName","src":"7942:4:5"}],"id":5145,"name":"VariableDeclaration","src":"7942:13:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4793,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5137,"type":"struct strings.slice memory","value":"self"},"id":5146,"name":"Identifier","src":"7958:4:5"}],"id":5147,"name":"MemberAccess","src":"7958:9:5"}],"id":5148,"name":"VariableDeclarationStatement","src":"7942:25:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4793,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5139,"type":"struct strings.slice memory","value":"other"},"id":5149,"name":"Identifier","src":"7981:5:5"}],"id":5150,"name":"MemberAccess","src":"7981:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4793,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5137,"type":"struct strings.slice memory","value":"self"},"id":5151,"name":"Identifier","src":"7994:4:5"}],"id":5152,"name":"MemberAccess","src":"7994:9:5"}],"id":5153,"name":"BinaryOperation","src":"7981:22:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5145,"type":"uint256","value":"shortest"},"id":5154,"name":"Identifier","src":"8017:8:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4793,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5139,"type":"struct strings.slice memory","value":"other"},"id":5155,"name":"Identifier","src":"8028:5:5"}],"id":5156,"name":"MemberAccess","src":"8028:10:5"}],"id":5157,"name":"Assignment","src":"8017:21:5"}],"id":5158,"name":"ExpressionStatement","src":"8017:21:5"}],"id":5159,"name":"IfStatement","src":"7977:61:5"},{"attributes":{"assignments":[5161]},"children":[{"attributes":{"constant":false,"name":"selfptr","scope":5264,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5160,"name":"ElementaryTypeName","src":"8049:4:5"}],"id":5161,"name":"VariableDeclaration","src":"8049:12:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":4795,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5137,"type":"struct strings.slice memory","value":"self"},"id":5162,"name":"Identifier","src":"8064:4:5"}],"id":5163,"name":"MemberAccess","src":"8064:9:5"}],"id":5164,"name":"VariableDeclarationStatement","src":"8049:24:5"},{"attributes":{"assignments":[5166]},"children":[{"attributes":{"constant":false,"name":"otherptr","scope":5264,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5165,"name":"ElementaryTypeName","src":"8083:4:5"}],"id":5166,"name":"VariableDeclaration","src":"8083:13:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":4795,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5139,"type":"struct strings.slice memory","value":"other"},"id":5167,"name":"Identifier","src":"8099:5:5"}],"id":5168,"name":"MemberAccess","src":"8099:10:5"}],"id":5169,"name":"VariableDeclarationStatement","src":"8083:26:5"},{"children":[{"attributes":{"assignments":[5171]},"children":[{"attributes":{"constant":false,"name":"idx","scope":5264,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5170,"name":"ElementaryTypeName","src":"8124:4:5"}],"id":5171,"name":"VariableDeclaration","src":"8124:8:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":5172,"name":"Literal","src":"8135:1:5"}],"id":5173,"name":"VariableDeclarationStatement","src":"8124:12:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5171,"type":"uint256","value":"idx"},"id":5174,"name":"Identifier","src":"8138:3:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5145,"type":"uint256","value":"shortest"},"id":5175,"name":"Identifier","src":"8144:8:5"}],"id":5176,"name":"BinaryOperation","src":"8138:14:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5171,"type":"uint256","value":"idx"},"id":5177,"name":"Identifier","src":"8154:3:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":5178,"name":"Literal","src":"8161:2:5"}],"id":5179,"name":"Assignment","src":"8154:9:5"}],"id":5180,"name":"ExpressionStatement","src":"8154:9:5"},{"children":[{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"a","scope":5264,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5181,"name":"ElementaryTypeName","src":"8179:4:5"}],"id":5182,"name":"VariableDeclaration","src":"8179:6:5"}],"id":5183,"name":"VariableDeclarationStatement","src":"8179:6:5"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"b","scope":5264,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5184,"name":"ElementaryTypeName","src":"8199:4:5"}],"id":5185,"name":"VariableDeclaration","src":"8199:6:5"}],"id":5186,"name":"VariableDeclarationStatement","src":"8199:6:5"},{"attributes":{"externalReferences":[{"selfptr":{"declaration":5161,"isOffset":false,"isSlot":false,"src":"8257:7:5","valueSize":1}},{"a":{"declaration":5182,"isOffset":false,"isSlot":false,"src":"8246:1:5","valueSize":1}},{"b":{"declaration":5185,"isOffset":false,"isSlot":false,"src":"8282:1:5","valueSize":1}},{"otherptr":{"declaration":5166,"isOffset":false,"isSlot":false,"src":"8293:8:5","valueSize":1}}],"operations":"{\n a := mload(selfptr)\n b := mload(otherptr)\n}"},"children":[],"id":5187,"name":"InlineAssembly","src":"8219:112:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5182,"type":"uint256","value":"a"},"id":5188,"name":"Identifier","src":"8333:1:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5185,"type":"uint256","value":"b"},"id":5189,"name":"Identifier","src":"8338:1:5"}],"id":5190,"name":"BinaryOperation","src":"8333:6:5"},{"children":[{"attributes":{"assignments":[5192]},"children":[{"attributes":{"constant":false,"name":"mask","scope":5264,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":5191,"name":"ElementaryTypeName","src":"8420:7:5"}],"id":5192,"name":"VariableDeclaration","src":"8420:12:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_-1_by_1","typeString":"int_const -1"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint256)","value":"uint256"},"id":5193,"name":"ElementaryTypeNameExpression","src":"8435:7:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"-","prefix":true,"type":"int_const -1"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":5194,"name":"Literal","src":"8444:1:5"}],"id":5195,"name":"UnaryOperation","src":"8443:2:5"}],"id":5196,"name":"FunctionCall","src":"8435:11:5"}],"id":5197,"name":"VariableDeclarationStatement","src":"8420:26:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5145,"type":"uint256","value":"shortest"},"id":5198,"name":"Identifier","src":"8480:8:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":5199,"name":"Literal","src":"8491:2:5"}],"id":5200,"name":"BinaryOperation","src":"8480:13:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5192,"type":"uint256","value":"mask"},"id":5201,"name":"Identifier","src":"8515:4:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"~","prefix":true,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"**","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":5202,"name":"Literal","src":"8524:1:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"38","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 8","value":"8"},"id":5203,"name":"Literal","src":"8530:1:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":5204,"name":"Literal","src":"8535:2:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5145,"type":"uint256","value":"shortest"},"id":5205,"name":"Identifier","src":"8540:8:5"}],"id":5206,"name":"BinaryOperation","src":"8535:13:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5171,"type":"uint256","value":"idx"},"id":5207,"name":"Identifier","src":"8551:3:5"}],"id":5208,"name":"BinaryOperation","src":"8535:19:5"}],"id":5209,"name":"TupleExpression","src":"8534:21:5"}],"id":5210,"name":"BinaryOperation","src":"8530:25:5"}],"id":5211,"name":"TupleExpression","src":"8529:27:5"}],"id":5212,"name":"BinaryOperation","src":"8524:32:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":5213,"name":"Literal","src":"8559:1:5"}],"id":5214,"name":"BinaryOperation","src":"8524:36:5"}],"id":5215,"name":"TupleExpression","src":"8523:38:5"}],"id":5216,"name":"UnaryOperation","src":"8522:39:5"}],"id":5217,"name":"Assignment","src":"8515:46:5"}],"id":5218,"name":"ExpressionStatement","src":"8515:46:5"}],"id":5219,"name":"Block","src":"8495:85:5"}],"id":5220,"name":"IfStatement","src":"8477:103:5"},{"attributes":{"assignments":[5222]},"children":[{"attributes":{"constant":false,"name":"diff","scope":5264,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":5221,"name":"ElementaryTypeName","src":"8597:7:5"}],"id":5222,"name":"VariableDeclaration","src":"8597:12:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5182,"type":"uint256","value":"a"},"id":5223,"name":"Identifier","src":"8613:1:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5192,"type":"uint256","value":"mask"},"id":5224,"name":"Identifier","src":"8617:4:5"}],"id":5225,"name":"BinaryOperation","src":"8613:8:5"}],"id":5226,"name":"TupleExpression","src":"8612:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5185,"type":"uint256","value":"b"},"id":5227,"name":"Identifier","src":"8626:1:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5192,"type":"uint256","value":"mask"},"id":5228,"name":"Identifier","src":"8630:4:5"}],"id":5229,"name":"BinaryOperation","src":"8626:8:5"}],"id":5230,"name":"TupleExpression","src":"8625:10:5"}],"id":5231,"name":"BinaryOperation","src":"8612:23:5"}],"id":5232,"name":"VariableDeclarationStatement","src":"8597:38:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5222,"type":"uint256","value":"diff"},"id":5233,"name":"Identifier","src":"8657:4:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":5234,"name":"Literal","src":"8665:1:5"}],"id":5235,"name":"BinaryOperation","src":"8657:9:5"},{"attributes":{"functionReturnParameters":5143},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"int256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(int256)","value":"int"},"id":5236,"name":"ElementaryTypeNameExpression","src":"8695:3:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5222,"type":"uint256","value":"diff"},"id":5237,"name":"Identifier","src":"8699:4:5"}],"id":5238,"name":"FunctionCall","src":"8695:9:5"}],"id":5239,"name":"Return","src":"8688:16:5"}],"id":5240,"name":"IfStatement","src":"8653:51:5"}],"id":5241,"name":"Block","src":"8341:378:5"}],"id":5242,"name":"IfStatement","src":"8329:390:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5161,"type":"uint256","value":"selfptr"},"id":5243,"name":"Identifier","src":"8732:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":5244,"name":"Literal","src":"8743:2:5"}],"id":5245,"name":"Assignment","src":"8732:13:5"}],"id":5246,"name":"ExpressionStatement","src":"8732:13:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5166,"type":"uint256","value":"otherptr"},"id":5247,"name":"Identifier","src":"8759:8:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":5248,"name":"Literal","src":"8771:2:5"}],"id":5249,"name":"Assignment","src":"8759:14:5"}],"id":5250,"name":"ExpressionStatement","src":"8759:14:5"}],"id":5251,"name":"Block","src":"8165:619:5"}],"id":5252,"name":"ForStatement","src":"8119:665:5"},{"attributes":{"functionReturnParameters":5143},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"int256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"int256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(int256)","value":"int"},"id":5253,"name":"ElementaryTypeNameExpression","src":"8800:3:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4793,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5137,"type":"struct strings.slice memory","value":"self"},"id":5254,"name":"Identifier","src":"8804:4:5"}],"id":5255,"name":"MemberAccess","src":"8804:9:5"}],"id":5256,"name":"FunctionCall","src":"8800:14:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"int256","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(int256)","value":"int"},"id":5257,"name":"ElementaryTypeNameExpression","src":"8817:3:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4793,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5139,"type":"struct strings.slice memory","value":"other"},"id":5258,"name":"Identifier","src":"8821:5:5"}],"id":5259,"name":"MemberAccess","src":"8821:10:5"}],"id":5260,"name":"FunctionCall","src":"8817:15:5"}],"id":5261,"name":"BinaryOperation","src":"8800:32:5"}],"id":5262,"name":"Return","src":"8793:39:5"}],"id":5263,"name":"Block","src":"7932:907:5"}],"id":5264,"name":"FunctionDefinition","src":"7848:991:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"equals","payable":false,"scope":6484,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":5281,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4796,"type":"struct strings.slice"},"id":5265,"name":"UserDefinedTypeName","src":"9099:5:5"}],"id":5266,"name":"VariableDeclaration","src":"9099:17:5"},{"attributes":{"constant":false,"name":"other","scope":5281,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4796,"type":"struct strings.slice"},"id":5267,"name":"UserDefinedTypeName","src":"9118:5:5"}],"id":5268,"name":"VariableDeclaration","src":"9118:18:5"}],"id":5269,"name":"ParameterList","src":"9098:39:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":5281,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":5270,"name":"ElementaryTypeName","src":"9161:4:5"}],"id":5271,"name":"VariableDeclaration","src":"9161:4:5"}],"id":5272,"name":"ParameterList","src":"9160:6:5"},{"children":[{"attributes":{"functionReturnParameters":5272},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"int256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$4796_memory_ptr","typeString":"struct strings.slice memory"},{"typeIdentifier":"t_struct$_slice_$4796_memory_ptr","typeString":"struct strings.slice memory"}],"overloadedDeclarations":[null],"referencedDeclaration":5264,"type":"function (struct strings.slice memory,struct strings.slice memory) pure returns (int256)","value":"compare"},"id":5273,"name":"Identifier","src":"9184:7:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5266,"type":"struct strings.slice memory","value":"self"},"id":5274,"name":"Identifier","src":"9192:4:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5268,"type":"struct strings.slice memory","value":"other"},"id":5275,"name":"Identifier","src":"9198:5:5"}],"id":5276,"name":"FunctionCall","src":"9184:20:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":5277,"name":"Literal","src":"9208:1:5"}],"id":5278,"name":"BinaryOperation","src":"9184:25:5"}],"id":5279,"name":"Return","src":"9177:32:5"}],"id":5280,"name":"Block","src":"9167:49:5"}],"id":5281,"name":"FunctionDefinition","src":"9083:133:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"nextRune","payable":false,"scope":6484,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":5399,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4796,"type":"struct strings.slice"},"id":5282,"name":"UserDefinedTypeName","src":"9527:5:5"}],"id":5283,"name":"VariableDeclaration","src":"9527:17:5"},{"attributes":{"constant":false,"name":"rune","scope":5399,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4796,"type":"struct strings.slice"},"id":5284,"name":"UserDefinedTypeName","src":"9546:5:5"}],"id":5285,"name":"VariableDeclaration","src":"9546:17:5"}],"id":5286,"name":"ParameterList","src":"9526:38:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":5399,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4796,"type":"struct strings.slice"},"id":5287,"name":"UserDefinedTypeName","src":"9588:5:5"}],"id":5288,"name":"VariableDeclaration","src":"9588:5:5"}],"id":5289,"name":"ParameterList","src":"9587:14:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_ptr","referencedDeclaration":4795,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5285,"type":"struct strings.slice memory","value":"rune"},"id":5290,"name":"Identifier","src":"9612:4:5"}],"id":5292,"name":"MemberAccess","src":"9612:9:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":4795,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5283,"type":"struct strings.slice memory","value":"self"},"id":5293,"name":"Identifier","src":"9624:4:5"}],"id":5294,"name":"MemberAccess","src":"9624:9:5"}],"id":5295,"name":"Assignment","src":"9612:21:5"}],"id":5296,"name":"ExpressionStatement","src":"9612:21:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4793,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5283,"type":"struct strings.slice memory","value":"self"},"id":5297,"name":"Identifier","src":"9648:4:5"}],"id":5298,"name":"MemberAccess","src":"9648:9:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":5299,"name":"Literal","src":"9661:1:5"}],"id":5300,"name":"BinaryOperation","src":"9648:14:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":4793,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5285,"type":"struct strings.slice memory","value":"rune"},"id":5301,"name":"Identifier","src":"9678:4:5"}],"id":5303,"name":"MemberAccess","src":"9678:9:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":5304,"name":"Literal","src":"9690:1:5"}],"id":5305,"name":"Assignment","src":"9678:13:5"}],"id":5306,"name":"ExpressionStatement","src":"9678:13:5"},{"attributes":{"functionReturnParameters":5289},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5285,"type":"struct strings.slice memory","value":"rune"},"id":5307,"name":"Identifier","src":"9712:4:5"}],"id":5308,"name":"Return","src":"9705:11:5"}],"id":5309,"name":"Block","src":"9664:63:5"}],"id":5310,"name":"IfStatement","src":"9644:83:5"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"l","scope":5399,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5311,"name":"ElementaryTypeName","src":"9737:4:5"}],"id":5312,"name":"VariableDeclaration","src":"9737:6:5"}],"id":5313,"name":"VariableDeclarationStatement","src":"9737:6:5"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"b","scope":5399,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5314,"name":"ElementaryTypeName","src":"9753:4:5"}],"id":5315,"name":"VariableDeclaration","src":"9753:6:5"}],"id":5316,"name":"VariableDeclarationStatement","src":"9753:6:5"},{"attributes":{"externalReferences":[{"b":{"declaration":5315,"isOffset":false,"isSlot":false,"src":"9842:1:5","valueSize":1}},{"self":{"declaration":5283,"isOffset":false,"isSlot":false,"src":"9871:4:5","valueSize":1}}],"operations":"{\n b := and(mload(sub(mload(add(self, 32)), 31)), 0xFF)\n}"},"children":[],"id":5317,"name":"InlineAssembly","src":"9831:76:5"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5315,"type":"uint256","value":"b"},"id":5318,"name":"Identifier","src":"9909:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30783830","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 128","value":"0x80"},"id":5319,"name":"Literal","src":"9913:4:5"}],"id":5320,"name":"BinaryOperation","src":"9909:8:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5312,"type":"uint256","value":"l"},"id":5321,"name":"Identifier","src":"9933:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":5322,"name":"Literal","src":"9937:1:5"}],"id":5323,"name":"Assignment","src":"9933:5:5"}],"id":5324,"name":"ExpressionStatement","src":"9933:5:5"}],"id":5325,"name":"Block","src":"9919:30:5"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5315,"type":"uint256","value":"b"},"id":5326,"name":"Identifier","src":"9958:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30784530","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 224","value":"0xE0"},"id":5327,"name":"Literal","src":"9962:4:5"}],"id":5328,"name":"BinaryOperation","src":"9958:8:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5312,"type":"uint256","value":"l"},"id":5329,"name":"Identifier","src":"9982:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":5330,"name":"Literal","src":"9986:1:5"}],"id":5331,"name":"Assignment","src":"9982:5:5"}],"id":5332,"name":"ExpressionStatement","src":"9982:5:5"}],"id":5333,"name":"Block","src":"9968:30:5"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5315,"type":"uint256","value":"b"},"id":5334,"name":"Identifier","src":"10007:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30784630","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 240","value":"0xF0"},"id":5335,"name":"Literal","src":"10011:4:5"}],"id":5336,"name":"BinaryOperation","src":"10007:8:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5312,"type":"uint256","value":"l"},"id":5337,"name":"Identifier","src":"10031:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":5338,"name":"Literal","src":"10035:1:5"}],"id":5339,"name":"Assignment","src":"10031:5:5"}],"id":5340,"name":"ExpressionStatement","src":"10031:5:5"}],"id":5341,"name":"Block","src":"10017:30:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5312,"type":"uint256","value":"l"},"id":5342,"name":"Identifier","src":"10067:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":5343,"name":"Literal","src":"10071:1:5"}],"id":5344,"name":"Assignment","src":"10067:5:5"}],"id":5345,"name":"ExpressionStatement","src":"10067:5:5"}],"id":5346,"name":"Block","src":"10053:30:5"}],"id":5347,"name":"IfStatement","src":"10004:79:5"}],"id":5348,"name":"IfStatement","src":"9955:128:5"}],"id":5349,"name":"IfStatement","src":"9905:178:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5312,"type":"uint256","value":"l"},"id":5350,"name":"Identifier","src":"10139:1:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4793,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5283,"type":"struct strings.slice memory","value":"self"},"id":5351,"name":"Identifier","src":"10143:4:5"}],"id":5352,"name":"MemberAccess","src":"10143:9:5"}],"id":5353,"name":"BinaryOperation","src":"10139:13:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":4793,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5285,"type":"struct strings.slice memory","value":"rune"},"id":5354,"name":"Identifier","src":"10168:4:5"}],"id":5356,"name":"MemberAccess","src":"10168:9:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4793,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5283,"type":"struct strings.slice memory","value":"self"},"id":5357,"name":"Identifier","src":"10180:4:5"}],"id":5358,"name":"MemberAccess","src":"10180:9:5"}],"id":5359,"name":"Assignment","src":"10168:21:5"}],"id":5360,"name":"ExpressionStatement","src":"10168:21:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_ptr","referencedDeclaration":4795,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5283,"type":"struct strings.slice memory","value":"self"},"id":5361,"name":"Identifier","src":"10203:4:5"}],"id":5363,"name":"MemberAccess","src":"10203:9:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4793,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5283,"type":"struct strings.slice memory","value":"self"},"id":5364,"name":"Identifier","src":"10216:4:5"}],"id":5365,"name":"MemberAccess","src":"10216:9:5"}],"id":5366,"name":"Assignment","src":"10203:22:5"}],"id":5367,"name":"ExpressionStatement","src":"10203:22:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":4793,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5283,"type":"struct strings.slice memory","value":"self"},"id":5368,"name":"Identifier","src":"10239:4:5"}],"id":5370,"name":"MemberAccess","src":"10239:9:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":5371,"name":"Literal","src":"10251:1:5"}],"id":5372,"name":"Assignment","src":"10239:13:5"}],"id":5373,"name":"ExpressionStatement","src":"10239:13:5"},{"attributes":{"functionReturnParameters":5289},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5285,"type":"struct strings.slice memory","value":"rune"},"id":5374,"name":"Identifier","src":"10273:4:5"}],"id":5375,"name":"Return","src":"10266:11:5"}],"id":5376,"name":"Block","src":"10154:134:5"}],"id":5377,"name":"IfStatement","src":"10135:153:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_ptr","referencedDeclaration":4795,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5283,"type":"struct strings.slice memory","value":"self"},"id":5378,"name":"Identifier","src":"10298:4:5"}],"id":5380,"name":"MemberAccess","src":"10298:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5312,"type":"uint256","value":"l"},"id":5381,"name":"Identifier","src":"10311:1:5"}],"id":5382,"name":"Assignment","src":"10298:14:5"}],"id":5383,"name":"ExpressionStatement","src":"10298:14:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":4793,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5283,"type":"struct strings.slice memory","value":"self"},"id":5384,"name":"Identifier","src":"10322:4:5"}],"id":5386,"name":"MemberAccess","src":"10322:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5312,"type":"uint256","value":"l"},"id":5387,"name":"Identifier","src":"10335:1:5"}],"id":5388,"name":"Assignment","src":"10322:14:5"}],"id":5389,"name":"ExpressionStatement","src":"10322:14:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":4793,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5285,"type":"struct strings.slice memory","value":"rune"},"id":5390,"name":"Identifier","src":"10346:4:5"}],"id":5392,"name":"MemberAccess","src":"10346:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5312,"type":"uint256","value":"l"},"id":5393,"name":"Identifier","src":"10358:1:5"}],"id":5394,"name":"Assignment","src":"10346:13:5"}],"id":5395,"name":"ExpressionStatement","src":"10346:13:5"},{"attributes":{"functionReturnParameters":5289},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5285,"type":"struct strings.slice memory","value":"rune"},"id":5396,"name":"Identifier","src":"10376:4:5"}],"id":5397,"name":"Return","src":"10369:11:5"}],"id":5398,"name":"Block","src":"9602:785:5"}],"id":5399,"name":"FunctionDefinition","src":"9509:878:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"nextRune","payable":false,"scope":6484,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":5412,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4796,"type":"struct strings.slice"},"id":5400,"name":"UserDefinedTypeName","src":"10645:5:5"}],"id":5401,"name":"VariableDeclaration","src":"10645:17:5"}],"id":5402,"name":"ParameterList","src":"10644:19:5"},{"children":[{"attributes":{"constant":false,"name":"ret","scope":5412,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4796,"type":"struct strings.slice"},"id":5403,"name":"UserDefinedTypeName","src":"10687:5:5"}],"id":5404,"name":"VariableDeclaration","src":"10687:16:5"}],"id":5405,"name":"ParameterList","src":"10686:18:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"struct strings.slice memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$4796_memory_ptr","typeString":"struct strings.slice memory"},{"typeIdentifier":"t_struct$_slice_$4796_memory_ptr","typeString":"struct strings.slice memory"}],"overloadedDeclarations":[5399,5412],"referencedDeclaration":5399,"type":"function (struct strings.slice memory,struct strings.slice memory) pure returns (struct strings.slice memory)","value":"nextRune"},"id":5406,"name":"Identifier","src":"10715:8:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5401,"type":"struct strings.slice memory","value":"self"},"id":5407,"name":"Identifier","src":"10724:4:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5404,"type":"struct strings.slice memory","value":"ret"},"id":5408,"name":"Identifier","src":"10730:3:5"}],"id":5409,"name":"FunctionCall","src":"10715:19:5"}],"id":5410,"name":"ExpressionStatement","src":"10715:19:5"}],"id":5411,"name":"Block","src":"10705:36:5"}],"id":5412,"name":"FunctionDefinition","src":"10627:114:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"ord","payable":false,"scope":6484,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":5559,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4796,"type":"struct strings.slice"},"id":5413,"name":"UserDefinedTypeName","src":"10950:5:5"}],"id":5414,"name":"VariableDeclaration","src":"10950:17:5"}],"id":5415,"name":"ParameterList","src":"10949:19:5"},{"children":[{"attributes":{"constant":false,"name":"ret","scope":5559,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5416,"name":"ElementaryTypeName","src":"10992:4:5"}],"id":5417,"name":"VariableDeclaration","src":"10992:8:5"}],"id":5418,"name":"ParameterList","src":"10991:10:5"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4793,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5414,"type":"struct strings.slice memory","value":"self"},"id":5419,"name":"Identifier","src":"11016:4:5"}],"id":5420,"name":"MemberAccess","src":"11016:9:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":5421,"name":"Literal","src":"11029:1:5"}],"id":5422,"name":"BinaryOperation","src":"11016:14:5"},{"children":[{"attributes":{"functionReturnParameters":5418},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":5423,"name":"Literal","src":"11053:1:5"}],"id":5424,"name":"Return","src":"11046:8:5"}],"id":5425,"name":"Block","src":"11032:33:5"}],"id":5426,"name":"IfStatement","src":"11012:53:5"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"word","scope":5559,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5427,"name":"ElementaryTypeName","src":"11075:4:5"}],"id":5428,"name":"VariableDeclaration","src":"11075:9:5"}],"id":5429,"name":"VariableDeclarationStatement","src":"11075:9:5"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"length","scope":5559,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5430,"name":"ElementaryTypeName","src":"11094:4:5"}],"id":5431,"name":"VariableDeclaration","src":"11094:11:5"}],"id":5432,"name":"VariableDeclarationStatement","src":"11094:11:5"},{"attributes":{"assignments":[5434]},"children":[{"attributes":{"constant":false,"name":"divisor","scope":5559,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5433,"name":"ElementaryTypeName","src":"11115:4:5"}],"id":5434,"name":"VariableDeclaration","src":"11115:12:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_452312848583266388373324160190187140051835877600158453279131187530910662656_by_1","typeString":"int_const 4523...(67 digits omitted)...2656"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"**","type":"int_const 4523...(67 digits omitted)...2656"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":5435,"name":"Literal","src":"11130:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"323438","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 248","value":"248"},"id":5436,"name":"Literal","src":"11135:3:5"}],"id":5437,"name":"BinaryOperation","src":"11130:8:5"}],"id":5438,"name":"VariableDeclarationStatement","src":"11115:23:5"},{"attributes":{"externalReferences":[{"word":{"declaration":5428,"isOffset":false,"isSlot":false,"src":"11204:4:5","valueSize":1}},{"self":{"declaration":5414,"isOffset":false,"isSlot":false,"src":"11227:4:5","valueSize":1}}],"operations":"{\n word := mload(mload(add(self, 32)))\n}"},"children":[],"id":5439,"name":"InlineAssembly","src":"11193:60:5"},{"attributes":{"assignments":[5441]},"children":[{"attributes":{"constant":false,"name":"b","scope":5559,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5440,"name":"ElementaryTypeName","src":"11249:4:5"}],"id":5441,"name":"VariableDeclaration","src":"11249:6:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"/","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5428,"type":"uint256","value":"word"},"id":5442,"name":"Identifier","src":"11258:4:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5434,"type":"uint256","value":"divisor"},"id":5443,"name":"Identifier","src":"11265:7:5"}],"id":5444,"name":"BinaryOperation","src":"11258:14:5"}],"id":5445,"name":"VariableDeclarationStatement","src":"11249:23:5"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5441,"type":"uint256","value":"b"},"id":5446,"name":"Identifier","src":"11286:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30783830","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 128","value":"0x80"},"id":5447,"name":"Literal","src":"11290:4:5"}],"id":5448,"name":"BinaryOperation","src":"11286:8:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5417,"type":"uint256","value":"ret"},"id":5449,"name":"Identifier","src":"11310:3:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5441,"type":"uint256","value":"b"},"id":5450,"name":"Identifier","src":"11316:1:5"}],"id":5451,"name":"Assignment","src":"11310:7:5"}],"id":5452,"name":"ExpressionStatement","src":"11310:7:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5431,"type":"uint256","value":"length"},"id":5453,"name":"Identifier","src":"11331:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":5454,"name":"Literal","src":"11340:1:5"}],"id":5455,"name":"Assignment","src":"11331:10:5"}],"id":5456,"name":"ExpressionStatement","src":"11331:10:5"}],"id":5457,"name":"Block","src":"11296:56:5"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5441,"type":"uint256","value":"b"},"id":5458,"name":"Identifier","src":"11361:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30784530","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 224","value":"0xE0"},"id":5459,"name":"Literal","src":"11365:4:5"}],"id":5460,"name":"BinaryOperation","src":"11361:8:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5417,"type":"uint256","value":"ret"},"id":5461,"name":"Identifier","src":"11385:3:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5441,"type":"uint256","value":"b"},"id":5462,"name":"Identifier","src":"11391:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30783146","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 31","value":"0x1F"},"id":5463,"name":"Literal","src":"11395:4:5"}],"id":5464,"name":"BinaryOperation","src":"11391:8:5"}],"id":5465,"name":"Assignment","src":"11385:14:5"}],"id":5466,"name":"ExpressionStatement","src":"11385:14:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5431,"type":"uint256","value":"length"},"id":5467,"name":"Identifier","src":"11413:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":5468,"name":"Literal","src":"11422:1:5"}],"id":5469,"name":"Assignment","src":"11413:10:5"}],"id":5470,"name":"ExpressionStatement","src":"11413:10:5"}],"id":5471,"name":"Block","src":"11371:63:5"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5441,"type":"uint256","value":"b"},"id":5472,"name":"Identifier","src":"11443:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30784630","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 240","value":"0xF0"},"id":5473,"name":"Literal","src":"11447:4:5"}],"id":5474,"name":"BinaryOperation","src":"11443:8:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5417,"type":"uint256","value":"ret"},"id":5475,"name":"Identifier","src":"11467:3:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5441,"type":"uint256","value":"b"},"id":5476,"name":"Identifier","src":"11473:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30783046","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 15","value":"0x0F"},"id":5477,"name":"Literal","src":"11477:4:5"}],"id":5478,"name":"BinaryOperation","src":"11473:8:5"}],"id":5479,"name":"Assignment","src":"11467:14:5"}],"id":5480,"name":"ExpressionStatement","src":"11467:14:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5431,"type":"uint256","value":"length"},"id":5481,"name":"Identifier","src":"11495:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"33","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 3","value":"3"},"id":5482,"name":"Literal","src":"11504:1:5"}],"id":5483,"name":"Assignment","src":"11495:10:5"}],"id":5484,"name":"ExpressionStatement","src":"11495:10:5"}],"id":5485,"name":"Block","src":"11453:63:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5417,"type":"uint256","value":"ret"},"id":5486,"name":"Identifier","src":"11536:3:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5441,"type":"uint256","value":"b"},"id":5487,"name":"Identifier","src":"11542:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30783037","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 7","value":"0x07"},"id":5488,"name":"Literal","src":"11546:4:5"}],"id":5489,"name":"BinaryOperation","src":"11542:8:5"}],"id":5490,"name":"Assignment","src":"11536:14:5"}],"id":5491,"name":"ExpressionStatement","src":"11536:14:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5431,"type":"uint256","value":"length"},"id":5492,"name":"Identifier","src":"11564:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":5493,"name":"Literal","src":"11573:1:5"}],"id":5494,"name":"Assignment","src":"11564:10:5"}],"id":5495,"name":"ExpressionStatement","src":"11564:10:5"}],"id":5496,"name":"Block","src":"11522:63:5"}],"id":5497,"name":"IfStatement","src":"11440:145:5"}],"id":5498,"name":"IfStatement","src":"11358:227:5"}],"id":5499,"name":"IfStatement","src":"11282:303:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5431,"type":"uint256","value":"length"},"id":5500,"name":"Identifier","src":"11641:6:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4793,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5414,"type":"struct strings.slice memory","value":"self"},"id":5501,"name":"Identifier","src":"11650:4:5"}],"id":5502,"name":"MemberAccess","src":"11650:9:5"}],"id":5503,"name":"BinaryOperation","src":"11641:18:5"},{"children":[{"attributes":{"functionReturnParameters":5418},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":5504,"name":"Literal","src":"11682:1:5"}],"id":5505,"name":"Return","src":"11675:8:5"}],"id":5506,"name":"Block","src":"11661:33:5"}],"id":5507,"name":"IfStatement","src":"11637:57:5"},{"children":[{"attributes":{"assignments":[5509]},"children":[{"attributes":{"constant":false,"name":"i","scope":5559,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5508,"name":"ElementaryTypeName","src":"11709:4:5"}],"id":5509,"name":"VariableDeclaration","src":"11709:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":5510,"name":"Literal","src":"11718:1:5"}],"id":5511,"name":"VariableDeclarationStatement","src":"11709:10:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5509,"type":"uint256","value":"i"},"id":5512,"name":"Identifier","src":"11721:1:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5431,"type":"uint256","value":"length"},"id":5513,"name":"Identifier","src":"11725:6:5"}],"id":5514,"name":"BinaryOperation","src":"11721:10:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5509,"type":"uint256","value":"i"},"id":5515,"name":"Identifier","src":"11733:1:5"}],"id":5516,"name":"UnaryOperation","src":"11733:3:5"}],"id":5517,"name":"ExpressionStatement","src":"11733:3:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5434,"type":"uint256","value":"divisor"},"id":5518,"name":"Identifier","src":"11752:7:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"/","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5434,"type":"uint256","value":"divisor"},"id":5519,"name":"Identifier","src":"11762:7:5"},{"attributes":{"argumentTypes":null,"hexvalue":"323536","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 256","value":"256"},"id":5520,"name":"Literal","src":"11772:3:5"}],"id":5521,"name":"BinaryOperation","src":"11762:13:5"}],"id":5522,"name":"Assignment","src":"11752:23:5"}],"id":5523,"name":"ExpressionStatement","src":"11752:23:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5441,"type":"uint256","value":"b"},"id":5524,"name":"Identifier","src":"11789:1:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"/","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5428,"type":"uint256","value":"word"},"id":5525,"name":"Identifier","src":"11794:4:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5434,"type":"uint256","value":"divisor"},"id":5526,"name":"Identifier","src":"11801:7:5"}],"id":5527,"name":"BinaryOperation","src":"11794:14:5"}],"id":5528,"name":"TupleExpression","src":"11793:16:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30784646","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 255","value":"0xFF"},"id":5529,"name":"Literal","src":"11812:4:5"}],"id":5530,"name":"BinaryOperation","src":"11793:23:5"}],"id":5531,"name":"Assignment","src":"11789:27:5"}],"id":5532,"name":"ExpressionStatement","src":"11789:27:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5441,"type":"uint256","value":"b"},"id":5533,"name":"Identifier","src":"11834:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30784330","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 192","value":"0xC0"},"id":5534,"name":"Literal","src":"11838:4:5"}],"id":5535,"name":"BinaryOperation","src":"11834:8:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30783830","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 128","value":"0x80"},"id":5536,"name":"Literal","src":"11846:4:5"}],"id":5537,"name":"BinaryOperation","src":"11834:16:5"},{"children":[{"attributes":{"functionReturnParameters":5418},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":5538,"name":"Literal","src":"11919:1:5"}],"id":5539,"name":"Return","src":"11912:8:5"}],"id":5540,"name":"Block","src":"11852:83:5"}],"id":5541,"name":"IfStatement","src":"11830:105:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5417,"type":"uint256","value":"ret"},"id":5542,"name":"Identifier","src":"11948:3:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"|","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5417,"type":"uint256","value":"ret"},"id":5543,"name":"Identifier","src":"11955:3:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3634","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 64","value":"64"},"id":5544,"name":"Literal","src":"11961:2:5"}],"id":5545,"name":"BinaryOperation","src":"11955:8:5"}],"id":5546,"name":"TupleExpression","src":"11954:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5441,"type":"uint256","value":"b"},"id":5547,"name":"Identifier","src":"11968:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30783346","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 63","value":"0x3F"},"id":5548,"name":"Literal","src":"11972:4:5"}],"id":5549,"name":"BinaryOperation","src":"11968:8:5"}],"id":5550,"name":"TupleExpression","src":"11967:10:5"}],"id":5551,"name":"BinaryOperation","src":"11954:23:5"}],"id":5552,"name":"Assignment","src":"11948:29:5"}],"id":5553,"name":"ExpressionStatement","src":"11948:29:5"}],"id":5554,"name":"Block","src":"11738:250:5"}],"id":5555,"name":"ForStatement","src":"11704:284:5"},{"attributes":{"functionReturnParameters":5418},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5417,"type":"uint256","value":"ret"},"id":5556,"name":"Identifier","src":"12005:3:5"}],"id":5557,"name":"Return","src":"11998:10:5"}],"id":5558,"name":"Block","src":"11002:1013:5"}],"id":5559,"name":"FunctionDefinition","src":"10937:1078:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"keccak","payable":false,"scope":6484,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":5568,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4796,"type":"struct strings.slice"},"id":5560,"name":"UserDefinedTypeName","src":"12182:5:5"}],"id":5561,"name":"VariableDeclaration","src":"12182:17:5"}],"id":5562,"name":"ParameterList","src":"12181:19:5"},{"children":[{"attributes":{"constant":false,"name":"ret","scope":5568,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":5563,"name":"ElementaryTypeName","src":"12224:7:5"}],"id":5564,"name":"VariableDeclaration","src":"12224:11:5"}],"id":5565,"name":"ParameterList","src":"12223:13:5"},{"children":[{"attributes":{"externalReferences":[{"ret":{"declaration":5564,"isOffset":false,"isSlot":false,"src":"12270:3:5","valueSize":1}},{"self":{"declaration":5561,"isOffset":false,"isSlot":false,"src":"12315:4:5","valueSize":1}},{"self":{"declaration":5561,"isOffset":false,"isSlot":false,"src":"12297:4:5","valueSize":1}}],"operations":"{\n ret := keccak256(mload(add(self, 32)), mload(self))\n}"},"children":[],"id":5566,"name":"InlineAssembly","src":"12247:90:5"}],"id":5567,"name":"Block","src":"12237:100:5"}],"id":5568,"name":"FunctionDefinition","src":"12166:171:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"startsWith","payable":false,"scope":6484,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":5602,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4796,"type":"struct strings.slice"},"id":5569,"name":"UserDefinedTypeName","src":"12606:5:5"}],"id":5570,"name":"VariableDeclaration","src":"12606:17:5"},{"attributes":{"constant":false,"name":"needle","scope":5602,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4796,"type":"struct strings.slice"},"id":5571,"name":"UserDefinedTypeName","src":"12625:5:5"}],"id":5572,"name":"VariableDeclaration","src":"12625:19:5"}],"id":5573,"name":"ParameterList","src":"12605:40:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":5602,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":5574,"name":"ElementaryTypeName","src":"12669:4:5"}],"id":5575,"name":"VariableDeclaration","src":"12669:4:5"}],"id":5576,"name":"ParameterList","src":"12668:6:5"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4793,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5570,"type":"struct strings.slice memory","value":"self"},"id":5577,"name":"Identifier","src":"12689:4:5"}],"id":5578,"name":"MemberAccess","src":"12689:9:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4793,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5572,"type":"struct strings.slice memory","value":"needle"},"id":5579,"name":"Identifier","src":"12701:6:5"}],"id":5580,"name":"MemberAccess","src":"12701:11:5"}],"id":5581,"name":"BinaryOperation","src":"12689:23:5"},{"children":[{"attributes":{"functionReturnParameters":5576},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"66616c7365","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"false"},"id":5582,"name":"Literal","src":"12735:5:5"}],"id":5583,"name":"Return","src":"12728:12:5"}],"id":5584,"name":"Block","src":"12714:37:5"}],"id":5585,"name":"IfStatement","src":"12685:66:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":4795,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5570,"type":"struct strings.slice memory","value":"self"},"id":5586,"name":"Identifier","src":"12765:4:5"}],"id":5587,"name":"MemberAccess","src":"12765:9:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":4795,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5572,"type":"struct strings.slice memory","value":"needle"},"id":5588,"name":"Identifier","src":"12778:6:5"}],"id":5589,"name":"MemberAccess","src":"12778:11:5"}],"id":5590,"name":"BinaryOperation","src":"12765:24:5"},{"children":[{"attributes":{"functionReturnParameters":5576},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":5591,"name":"Literal","src":"12812:4:5"}],"id":5592,"name":"Return","src":"12805:11:5"}],"id":5593,"name":"Block","src":"12791:36:5"}],"id":5594,"name":"IfStatement","src":"12761:66:5"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"equal","scope":5602,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":5595,"name":"ElementaryTypeName","src":"12837:4:5"}],"id":5596,"name":"VariableDeclaration","src":"12837:10:5"}],"id":5597,"name":"VariableDeclarationStatement","src":"12837:10:5"},{"attributes":{"externalReferences":[{"needle":{"declaration":5572,"isOffset":false,"isSlot":false,"src":"12900:6:5","valueSize":1}},{"self":{"declaration":5570,"isOffset":false,"isSlot":false,"src":"12945:4:5","valueSize":1}},{"needle":{"declaration":5572,"isOffset":false,"isSlot":false,"src":"12997:6:5","valueSize":1}},{"equal":{"declaration":5596,"isOffset":false,"isSlot":false,"src":"13024:5:5","valueSize":1}}],"operations":"{\n let length := mload(needle)\n let selfptr := mload(add(self, 0x20))\n let needleptr := mload(add(needle, 0x20))\n equal := eq(keccak256(selfptr, length), keccak256(needleptr, length))\n}"},"children":[],"id":5598,"name":"InlineAssembly","src":"12857:261:5"},{"attributes":{"functionReturnParameters":5576},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5596,"type":"bool","value":"equal"},"id":5599,"name":"Identifier","src":"13119:5:5"}],"id":5600,"name":"Return","src":"13112:12:5"}],"id":5601,"name":"Block","src":"12675:456:5"}],"id":5602,"name":"FunctionDefinition","src":"12586:545:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"beyond","payable":false,"scope":6484,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":5652,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4796,"type":"struct strings.slice"},"id":5603,"name":"UserDefinedTypeName","src":"13419:5:5"}],"id":5604,"name":"VariableDeclaration","src":"13419:17:5"},{"attributes":{"constant":false,"name":"needle","scope":5652,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4796,"type":"struct strings.slice"},"id":5605,"name":"UserDefinedTypeName","src":"13438:5:5"}],"id":5606,"name":"VariableDeclaration","src":"13438:19:5"}],"id":5607,"name":"ParameterList","src":"13418:40:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":5652,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4796,"type":"struct strings.slice"},"id":5608,"name":"UserDefinedTypeName","src":"13482:5:5"}],"id":5609,"name":"VariableDeclaration","src":"13482:5:5"}],"id":5610,"name":"ParameterList","src":"13481:14:5"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4793,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5604,"type":"struct strings.slice memory","value":"self"},"id":5611,"name":"Identifier","src":"13510:4:5"}],"id":5612,"name":"MemberAccess","src":"13510:9:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4793,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5606,"type":"struct strings.slice memory","value":"needle"},"id":5613,"name":"Identifier","src":"13522:6:5"}],"id":5614,"name":"MemberAccess","src":"13522:11:5"}],"id":5615,"name":"BinaryOperation","src":"13510:23:5"},{"children":[{"attributes":{"functionReturnParameters":5610},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5604,"type":"struct strings.slice memory","value":"self"},"id":5616,"name":"Identifier","src":"13556:4:5"}],"id":5617,"name":"Return","src":"13549:11:5"}],"id":5618,"name":"Block","src":"13535:36:5"}],"id":5619,"name":"IfStatement","src":"13506:65:5"},{"attributes":{"assignments":[5621]},"children":[{"attributes":{"constant":false,"name":"equal","scope":5652,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":5620,"name":"ElementaryTypeName","src":"13581:4:5"}],"id":5621,"name":"VariableDeclaration","src":"13581:10:5"},{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":5622,"name":"Literal","src":"13594:4:5"}],"id":5623,"name":"VariableDeclarationStatement","src":"13581:17:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":4795,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5604,"type":"struct strings.slice memory","value":"self"},"id":5624,"name":"Identifier","src":"13612:4:5"}],"id":5625,"name":"MemberAccess","src":"13612:9:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":4795,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5606,"type":"struct strings.slice memory","value":"needle"},"id":5626,"name":"Identifier","src":"13625:6:5"}],"id":5627,"name":"MemberAccess","src":"13625:11:5"}],"id":5628,"name":"BinaryOperation","src":"13612:24:5"},{"children":[{"attributes":{"externalReferences":[{"needle":{"declaration":5606,"isOffset":false,"isSlot":false,"src":"13699:6:5","valueSize":1}},{"self":{"declaration":5604,"isOffset":false,"isSlot":false,"src":"13748:4:5","valueSize":1}},{"needle":{"declaration":5606,"isOffset":false,"isSlot":false,"src":"13804:6:5","valueSize":1}},{"equal":{"declaration":5621,"isOffset":false,"isSlot":false,"src":"13835:5:5","valueSize":1}}],"operations":"{\n let length := mload(needle)\n let selfptr := mload(add(self, 0x20))\n let needleptr := mload(add(needle, 0x20))\n equal := eq(keccak256(selfptr, length), keccak256(needleptr, length))\n}"},"children":[],"id":5629,"name":"InlineAssembly","src":"13652:276:5"}],"id":5630,"name":"Block","src":"13638:290:5"}],"id":5631,"name":"IfStatement","src":"13608:320:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5621,"type":"bool","value":"equal"},"id":5632,"name":"Identifier","src":"13942:5:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":4793,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5604,"type":"struct strings.slice memory","value":"self"},"id":5633,"name":"Identifier","src":"13963:4:5"}],"id":5635,"name":"MemberAccess","src":"13963:9:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4793,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5606,"type":"struct strings.slice memory","value":"needle"},"id":5636,"name":"Identifier","src":"13976:6:5"}],"id":5637,"name":"MemberAccess","src":"13976:11:5"}],"id":5638,"name":"Assignment","src":"13963:24:5"}],"id":5639,"name":"ExpressionStatement","src":"13963:24:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_ptr","referencedDeclaration":4795,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5604,"type":"struct strings.slice memory","value":"self"},"id":5640,"name":"Identifier","src":"14001:4:5"}],"id":5642,"name":"MemberAccess","src":"14001:9:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4793,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5606,"type":"struct strings.slice memory","value":"needle"},"id":5643,"name":"Identifier","src":"14014:6:5"}],"id":5644,"name":"MemberAccess","src":"14014:11:5"}],"id":5645,"name":"Assignment","src":"14001:24:5"}],"id":5646,"name":"ExpressionStatement","src":"14001:24:5"}],"id":5647,"name":"Block","src":"13949:87:5"}],"id":5648,"name":"IfStatement","src":"13938:98:5"},{"attributes":{"functionReturnParameters":5610},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5604,"type":"struct strings.slice memory","value":"self"},"id":5649,"name":"Identifier","src":"14053:4:5"}],"id":5650,"name":"Return","src":"14046:11:5"}],"id":5651,"name":"Block","src":"13496:568:5"}],"id":5652,"name":"FunctionDefinition","src":"13403:661:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"endsWith","payable":false,"scope":6484,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":5696,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4796,"type":"struct strings.slice"},"id":5653,"name":"UserDefinedTypeName","src":"14332:5:5"}],"id":5654,"name":"VariableDeclaration","src":"14332:17:5"},{"attributes":{"constant":false,"name":"needle","scope":5696,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4796,"type":"struct strings.slice"},"id":5655,"name":"UserDefinedTypeName","src":"14351:5:5"}],"id":5656,"name":"VariableDeclaration","src":"14351:19:5"}],"id":5657,"name":"ParameterList","src":"14331:40:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":5696,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":5658,"name":"ElementaryTypeName","src":"14395:4:5"}],"id":5659,"name":"VariableDeclaration","src":"14395:4:5"}],"id":5660,"name":"ParameterList","src":"14394:6:5"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4793,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5654,"type":"struct strings.slice memory","value":"self"},"id":5661,"name":"Identifier","src":"14415:4:5"}],"id":5662,"name":"MemberAccess","src":"14415:9:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4793,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5656,"type":"struct strings.slice memory","value":"needle"},"id":5663,"name":"Identifier","src":"14427:6:5"}],"id":5664,"name":"MemberAccess","src":"14427:11:5"}],"id":5665,"name":"BinaryOperation","src":"14415:23:5"},{"children":[{"attributes":{"functionReturnParameters":5660},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"66616c7365","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"false"},"id":5666,"name":"Literal","src":"14461:5:5"}],"id":5667,"name":"Return","src":"14454:12:5"}],"id":5668,"name":"Block","src":"14440:37:5"}],"id":5669,"name":"IfStatement","src":"14411:66:5"},{"attributes":{"assignments":[5671]},"children":[{"attributes":{"constant":false,"name":"selfptr","scope":5696,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5670,"name":"ElementaryTypeName","src":"14487:4:5"}],"id":5671,"name":"VariableDeclaration","src":"14487:12:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":4795,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5654,"type":"struct strings.slice memory","value":"self"},"id":5672,"name":"Identifier","src":"14502:4:5"}],"id":5673,"name":"MemberAccess","src":"14502:9:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4793,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5654,"type":"struct strings.slice memory","value":"self"},"id":5674,"name":"Identifier","src":"14514:4:5"}],"id":5675,"name":"MemberAccess","src":"14514:9:5"}],"id":5676,"name":"BinaryOperation","src":"14502:21:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4793,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5656,"type":"struct strings.slice memory","value":"needle"},"id":5677,"name":"Identifier","src":"14526:6:5"}],"id":5678,"name":"MemberAccess","src":"14526:11:5"}],"id":5679,"name":"BinaryOperation","src":"14502:35:5"}],"id":5680,"name":"VariableDeclarationStatement","src":"14487:50:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5671,"type":"uint256","value":"selfptr"},"id":5681,"name":"Identifier","src":"14552:7:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":4795,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5656,"type":"struct strings.slice memory","value":"needle"},"id":5682,"name":"Identifier","src":"14563:6:5"}],"id":5683,"name":"MemberAccess","src":"14563:11:5"}],"id":5684,"name":"BinaryOperation","src":"14552:22:5"},{"children":[{"attributes":{"functionReturnParameters":5660},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":5685,"name":"Literal","src":"14597:4:5"}],"id":5686,"name":"Return","src":"14590:11:5"}],"id":5687,"name":"Block","src":"14576:36:5"}],"id":5688,"name":"IfStatement","src":"14548:64:5"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"equal","scope":5696,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":5689,"name":"ElementaryTypeName","src":"14622:4:5"}],"id":5690,"name":"VariableDeclaration","src":"14622:10:5"}],"id":5691,"name":"VariableDeclarationStatement","src":"14622:10:5"},{"attributes":{"externalReferences":[{"needle":{"declaration":5656,"isOffset":false,"isSlot":false,"src":"14685:6:5","valueSize":1}},{"needle":{"declaration":5656,"isOffset":false,"isSlot":false,"src":"14732:6:5","valueSize":1}},{"selfptr":{"declaration":5671,"isOffset":false,"isSlot":false,"src":"14781:7:5","valueSize":1}},{"equal":{"declaration":5690,"isOffset":false,"isSlot":false,"src":"14759:5:5","valueSize":1}}],"operations":"{\n let length := mload(needle)\n let needleptr := mload(add(needle, 0x20))\n equal := eq(keccak256(selfptr, length), keccak256(needleptr, length))\n}"},"children":[],"id":5692,"name":"InlineAssembly","src":"14642:212:5"},{"attributes":{"functionReturnParameters":5660},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5690,"type":"bool","value":"equal"},"id":5693,"name":"Identifier","src":"14855:5:5"}],"id":5694,"name":"Return","src":"14848:12:5"}],"id":5695,"name":"Block","src":"14401:466:5"}],"id":5696,"name":"FunctionDefinition","src":"14314:553:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"until","payable":false,"scope":6484,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":5749,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4796,"type":"struct strings.slice"},"id":5697,"name":"UserDefinedTypeName","src":"15146:5:5"}],"id":5698,"name":"VariableDeclaration","src":"15146:17:5"},{"attributes":{"constant":false,"name":"needle","scope":5749,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4796,"type":"struct strings.slice"},"id":5699,"name":"UserDefinedTypeName","src":"15165:5:5"}],"id":5700,"name":"VariableDeclaration","src":"15165:19:5"}],"id":5701,"name":"ParameterList","src":"15145:40:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":5749,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4796,"type":"struct strings.slice"},"id":5702,"name":"UserDefinedTypeName","src":"15209:5:5"}],"id":5703,"name":"VariableDeclaration","src":"15209:5:5"}],"id":5704,"name":"ParameterList","src":"15208:14:5"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4793,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5698,"type":"struct strings.slice memory","value":"self"},"id":5705,"name":"Identifier","src":"15237:4:5"}],"id":5706,"name":"MemberAccess","src":"15237:9:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4793,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5700,"type":"struct strings.slice memory","value":"needle"},"id":5707,"name":"Identifier","src":"15249:6:5"}],"id":5708,"name":"MemberAccess","src":"15249:11:5"}],"id":5709,"name":"BinaryOperation","src":"15237:23:5"},{"children":[{"attributes":{"functionReturnParameters":5704},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5698,"type":"struct strings.slice memory","value":"self"},"id":5710,"name":"Identifier","src":"15283:4:5"}],"id":5711,"name":"Return","src":"15276:11:5"}],"id":5712,"name":"Block","src":"15262:36:5"}],"id":5713,"name":"IfStatement","src":"15233:65:5"},{"attributes":{"assignments":[5715]},"children":[{"attributes":{"constant":false,"name":"selfptr","scope":5749,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5714,"name":"ElementaryTypeName","src":"15308:4:5"}],"id":5715,"name":"VariableDeclaration","src":"15308:12:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":4795,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5698,"type":"struct strings.slice memory","value":"self"},"id":5716,"name":"Identifier","src":"15323:4:5"}],"id":5717,"name":"MemberAccess","src":"15323:9:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4793,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5698,"type":"struct strings.slice memory","value":"self"},"id":5718,"name":"Identifier","src":"15335:4:5"}],"id":5719,"name":"MemberAccess","src":"15335:9:5"}],"id":5720,"name":"BinaryOperation","src":"15323:21:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4793,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5700,"type":"struct strings.slice memory","value":"needle"},"id":5721,"name":"Identifier","src":"15347:6:5"}],"id":5722,"name":"MemberAccess","src":"15347:11:5"}],"id":5723,"name":"BinaryOperation","src":"15323:35:5"}],"id":5724,"name":"VariableDeclarationStatement","src":"15308:50:5"},{"attributes":{"assignments":[5726]},"children":[{"attributes":{"constant":false,"name":"equal","scope":5749,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":5725,"name":"ElementaryTypeName","src":"15368:4:5"}],"id":5726,"name":"VariableDeclaration","src":"15368:10:5"},{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":5727,"name":"Literal","src":"15381:4:5"}],"id":5728,"name":"VariableDeclarationStatement","src":"15368:17:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5715,"type":"uint256","value":"selfptr"},"id":5729,"name":"Identifier","src":"15399:7:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":4795,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5700,"type":"struct strings.slice memory","value":"needle"},"id":5730,"name":"Identifier","src":"15410:6:5"}],"id":5731,"name":"MemberAccess","src":"15410:11:5"}],"id":5732,"name":"BinaryOperation","src":"15399:22:5"},{"children":[{"attributes":{"externalReferences":[{"needle":{"declaration":5700,"isOffset":false,"isSlot":false,"src":"15484:6:5","valueSize":1}},{"equal":{"declaration":5726,"isOffset":false,"isSlot":false,"src":"15566:5:5","valueSize":1}},{"needle":{"declaration":5700,"isOffset":false,"isSlot":false,"src":"15535:6:5","valueSize":1}},{"selfptr":{"declaration":5715,"isOffset":false,"isSlot":false,"src":"15588:7:5","valueSize":1}}],"operations":"{\n let length := mload(needle)\n let needleptr := mload(add(needle, 0x20))\n equal := eq(keccak256(selfptr, length), keccak256(needleptr, length))\n}"},"children":[],"id":5733,"name":"InlineAssembly","src":"15437:222:5"}],"id":5734,"name":"Block","src":"15423:236:5"}],"id":5735,"name":"IfStatement","src":"15395:264:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5726,"type":"bool","value":"equal"},"id":5736,"name":"Identifier","src":"15673:5:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":4793,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5698,"type":"struct strings.slice memory","value":"self"},"id":5737,"name":"Identifier","src":"15694:4:5"}],"id":5739,"name":"MemberAccess","src":"15694:9:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4793,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5700,"type":"struct strings.slice memory","value":"needle"},"id":5740,"name":"Identifier","src":"15707:6:5"}],"id":5741,"name":"MemberAccess","src":"15707:11:5"}],"id":5742,"name":"Assignment","src":"15694:24:5"}],"id":5743,"name":"ExpressionStatement","src":"15694:24:5"}],"id":5744,"name":"Block","src":"15680:49:5"}],"id":5745,"name":"IfStatement","src":"15669:60:5"},{"attributes":{"functionReturnParameters":5704},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5698,"type":"struct strings.slice memory","value":"self"},"id":5746,"name":"Identifier","src":"15746:4:5"}],"id":5747,"name":"Return","src":"15739:11:5"}],"id":5748,"name":"Block","src":"15223:534:5"}],"id":5749,"name":"FunctionDefinition","src":"15131:626:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"findPtr","payable":false,"scope":6484,"stateMutability":"pure","superFunction":null,"visibility":"private"},"children":[{"children":[{"attributes":{"constant":false,"name":"selflen","scope":5870,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5750,"name":"ElementaryTypeName","src":"15931:4:5"}],"id":5751,"name":"VariableDeclaration","src":"15931:12:5"},{"attributes":{"constant":false,"name":"selfptr","scope":5870,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5752,"name":"ElementaryTypeName","src":"15945:4:5"}],"id":5753,"name":"VariableDeclaration","src":"15945:12:5"},{"attributes":{"constant":false,"name":"needlelen","scope":5870,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5754,"name":"ElementaryTypeName","src":"15959:4:5"}],"id":5755,"name":"VariableDeclaration","src":"15959:14:5"},{"attributes":{"constant":false,"name":"needleptr","scope":5870,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5756,"name":"ElementaryTypeName","src":"15975:4:5"}],"id":5757,"name":"VariableDeclaration","src":"15975:14:5"}],"id":5758,"name":"ParameterList","src":"15930:60:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":5870,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5759,"name":"ElementaryTypeName","src":"16013:4:5"}],"id":5760,"name":"VariableDeclaration","src":"16013:4:5"}],"id":5761,"name":"ParameterList","src":"16012:6:5"},{"children":[{"attributes":{"assignments":[5763]},"children":[{"attributes":{"constant":false,"name":"ptr","scope":5870,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5762,"name":"ElementaryTypeName","src":"16029:4:5"}],"id":5763,"name":"VariableDeclaration","src":"16029:8:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5753,"type":"uint256","value":"selfptr"},"id":5764,"name":"Identifier","src":"16040:7:5"}],"id":5765,"name":"VariableDeclarationStatement","src":"16029:18:5"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"idx","scope":5870,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5766,"name":"ElementaryTypeName","src":"16057:4:5"}],"id":5767,"name":"VariableDeclaration","src":"16057:8:5"}],"id":5768,"name":"VariableDeclarationStatement","src":"16057:8:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5755,"type":"uint256","value":"needlelen"},"id":5769,"name":"Identifier","src":"16080:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5751,"type":"uint256","value":"selflen"},"id":5770,"name":"Identifier","src":"16093:7:5"}],"id":5771,"name":"BinaryOperation","src":"16080:20:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5755,"type":"uint256","value":"needlelen"},"id":5772,"name":"Identifier","src":"16120:9:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":5773,"name":"Literal","src":"16133:2:5"}],"id":5774,"name":"BinaryOperation","src":"16120:15:5"},{"children":[{"attributes":{"assignments":[5776]},"children":[{"attributes":{"constant":false,"name":"mask","scope":5870,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":5775,"name":"ElementaryTypeName","src":"16155:7:5"}],"id":5776,"name":"VariableDeclaration","src":"16155:12:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes32)","value":"bytes32"},"id":5777,"name":"ElementaryTypeNameExpression","src":"16170:7:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"~","prefix":true,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"**","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":5778,"name":"Literal","src":"16180:1:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"38","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 8","value":"8"},"id":5779,"name":"Literal","src":"16186:1:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":5780,"name":"Literal","src":"16191:2:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5755,"type":"uint256","value":"needlelen"},"id":5781,"name":"Identifier","src":"16196:9:5"}],"id":5782,"name":"BinaryOperation","src":"16191:14:5"}],"id":5783,"name":"TupleExpression","src":"16190:16:5"}],"id":5784,"name":"BinaryOperation","src":"16186:20:5"}],"id":5785,"name":"TupleExpression","src":"16185:22:5"}],"id":5786,"name":"BinaryOperation","src":"16180:27:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":5787,"name":"Literal","src":"16210:1:5"}],"id":5788,"name":"BinaryOperation","src":"16180:31:5"}],"id":5789,"name":"TupleExpression","src":"16179:33:5"}],"id":5790,"name":"UnaryOperation","src":"16178:34:5"}],"id":5791,"name":"FunctionCall","src":"16170:43:5"}],"id":5792,"name":"VariableDeclarationStatement","src":"16155:58:5"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"needledata","scope":5870,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":5793,"name":"ElementaryTypeName","src":"16232:7:5"}],"id":5794,"name":"VariableDeclaration","src":"16232:18:5"}],"id":5795,"name":"VariableDeclarationStatement","src":"16232:18:5"},{"attributes":{"externalReferences":[{"needleptr":{"declaration":5757,"isOffset":false,"isSlot":false,"src":"16303:9:5","valueSize":1}},{"needledata":{"declaration":5794,"isOffset":false,"isSlot":false,"src":"16279:10:5","valueSize":1}},{"mask":{"declaration":5776,"isOffset":false,"isSlot":false,"src":"16315:4:5","valueSize":1}}],"operations":"{\n needledata := and(mload(needleptr), mask)\n}"},"children":[],"id":5796,"name":"InlineAssembly","src":"16268:76:5"},{"attributes":{"assignments":[5798]},"children":[{"attributes":{"constant":false,"name":"end","scope":5870,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5797,"name":"ElementaryTypeName","src":"16340:4:5"}],"id":5798,"name":"VariableDeclaration","src":"16340:8:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5753,"type":"uint256","value":"selfptr"},"id":5799,"name":"Identifier","src":"16351:7:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5751,"type":"uint256","value":"selflen"},"id":5800,"name":"Identifier","src":"16361:7:5"}],"id":5801,"name":"BinaryOperation","src":"16351:17:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5755,"type":"uint256","value":"needlelen"},"id":5802,"name":"Identifier","src":"16371:9:5"}],"id":5803,"name":"BinaryOperation","src":"16351:29:5"}],"id":5804,"name":"VariableDeclarationStatement","src":"16340:40:5"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"ptrdata","scope":5870,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":5805,"name":"ElementaryTypeName","src":"16398:7:5"}],"id":5806,"name":"VariableDeclaration","src":"16398:15:5"}],"id":5807,"name":"VariableDeclarationStatement","src":"16398:15:5"},{"attributes":{"externalReferences":[{"ptr":{"declaration":5763,"isOffset":false,"isSlot":false,"src":"16463:3:5","valueSize":1}},{"ptrdata":{"declaration":5806,"isOffset":false,"isSlot":false,"src":"16442:7:5","valueSize":1}},{"mask":{"declaration":5776,"isOffset":false,"isSlot":false,"src":"16469:4:5","valueSize":1}}],"operations":"{\n ptrdata := and(mload(ptr), mask)\n}"},"children":[],"id":5808,"name":"InlineAssembly","src":"16431:68:5"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5806,"type":"bytes32","value":"ptrdata"},"id":5809,"name":"Identifier","src":"16501:7:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5794,"type":"bytes32","value":"needledata"},"id":5810,"name":"Identifier","src":"16512:10:5"}],"id":5811,"name":"BinaryOperation","src":"16501:21:5"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5763,"type":"uint256","value":"ptr"},"id":5812,"name":"Identifier","src":"16550:3:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5798,"type":"uint256","value":"end"},"id":5813,"name":"Identifier","src":"16557:3:5"}],"id":5814,"name":"BinaryOperation","src":"16550:10:5"},{"attributes":{"functionReturnParameters":5761},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5753,"type":"uint256","value":"selfptr"},"id":5815,"name":"Identifier","src":"16593:7:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5751,"type":"uint256","value":"selflen"},"id":5816,"name":"Identifier","src":"16603:7:5"}],"id":5817,"name":"BinaryOperation","src":"16593:17:5"}],"id":5818,"name":"Return","src":"16586:24:5"}],"id":5819,"name":"IfStatement","src":"16546:64:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5763,"type":"uint256","value":"ptr"},"id":5820,"name":"Identifier","src":"16632:3:5"}],"id":5821,"name":"UnaryOperation","src":"16632:5:5"}],"id":5822,"name":"ExpressionStatement","src":"16632:5:5"},{"attributes":{"externalReferences":[{"ptr":{"declaration":5763,"isOffset":false,"isSlot":false,"src":"16691:3:5","valueSize":1}},{"ptrdata":{"declaration":5806,"isOffset":false,"isSlot":false,"src":"16670:7:5","valueSize":1}},{"mask":{"declaration":5776,"isOffset":false,"isSlot":false,"src":"16697:4:5","valueSize":1}}],"operations":"{\n ptrdata := and(mload(ptr), mask)\n}"},"children":[],"id":5823,"name":"InlineAssembly","src":"16659:63:5"}],"id":5824,"name":"Block","src":"16524:198:5"}],"id":5825,"name":"WhileStatement","src":"16494:228:5"},{"attributes":{"functionReturnParameters":5761},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5763,"type":"uint256","value":"ptr"},"id":5826,"name":"Identifier","src":"16746:3:5"}],"id":5827,"name":"Return","src":"16739:10:5"}],"id":5828,"name":"Block","src":"16137:627:5"},{"children":[{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"hash","scope":5870,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":5829,"name":"ElementaryTypeName","src":"16837:7:5"}],"id":5830,"name":"VariableDeclaration","src":"16837:12:5"}],"id":5831,"name":"VariableDeclarationStatement","src":"16837:12:5"},{"attributes":{"externalReferences":[{"hash":{"declaration":5830,"isOffset":false,"isSlot":false,"src":"16878:4:5","valueSize":1}},{"needleptr":{"declaration":5757,"isOffset":false,"isSlot":false,"src":"16896:9:5","valueSize":1}},{"needlelen":{"declaration":5755,"isOffset":false,"isSlot":false,"src":"16907:9:5","valueSize":1}}],"operations":"{\n hash := keccak256(needleptr, needlelen)\n}"},"children":[],"id":5832,"name":"InlineAssembly","src":"16867:73:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5767,"type":"uint256","value":"idx"},"id":5833,"name":"Identifier","src":"16942:3:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":5834,"name":"Literal","src":"16948:1:5"}],"id":5835,"name":"Assignment","src":"16942:7:5"}],"id":5836,"name":"ExpressionStatement","src":"16942:7:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5767,"type":"uint256","value":"idx"},"id":5837,"name":"Identifier","src":"16951:3:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5751,"type":"uint256","value":"selflen"},"id":5838,"name":"Identifier","src":"16958:7:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5755,"type":"uint256","value":"needlelen"},"id":5839,"name":"Identifier","src":"16968:9:5"}],"id":5840,"name":"BinaryOperation","src":"16958:19:5"}],"id":5841,"name":"BinaryOperation","src":"16951:26:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5767,"type":"uint256","value":"idx"},"id":5842,"name":"Identifier","src":"16979:3:5"}],"id":5843,"name":"UnaryOperation","src":"16979:5:5"}],"id":5844,"name":"ExpressionStatement","src":"16979:5:5"},{"children":[{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"testHash","scope":5870,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":5845,"name":"ElementaryTypeName","src":"17008:7:5"}],"id":5846,"name":"VariableDeclaration","src":"17008:16:5"}],"id":5847,"name":"VariableDeclarationStatement","src":"17008:16:5"},{"attributes":{"externalReferences":[{"testHash":{"declaration":5846,"isOffset":false,"isSlot":false,"src":"17057:8:5","valueSize":1}},{"ptr":{"declaration":5763,"isOffset":false,"isSlot":false,"src":"17079:3:5","valueSize":1}},{"needlelen":{"declaration":5755,"isOffset":false,"isSlot":false,"src":"17084:9:5","valueSize":1}}],"operations":"{\n testHash := keccak256(ptr, needlelen)\n}"},"children":[],"id":5848,"name":"InlineAssembly","src":"17046:73:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5830,"type":"bytes32","value":"hash"},"id":5849,"name":"Identifier","src":"17121:4:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5846,"type":"bytes32","value":"testHash"},"id":5850,"name":"Identifier","src":"17129:8:5"}],"id":5851,"name":"BinaryOperation","src":"17121:16:5"},{"attributes":{"functionReturnParameters":5761},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5763,"type":"uint256","value":"ptr"},"id":5852,"name":"Identifier","src":"17170:3:5"}],"id":5853,"name":"Return","src":"17163:10:5"}],"id":5854,"name":"IfStatement","src":"17117:56:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5763,"type":"uint256","value":"ptr"},"id":5855,"name":"Identifier","src":"17195:3:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":5856,"name":"Literal","src":"17202:1:5"}],"id":5857,"name":"Assignment","src":"17195:8:5"}],"id":5858,"name":"ExpressionStatement","src":"17195:8:5"}],"id":5859,"name":"Block","src":"16986:236:5"}],"id":5860,"name":"ForStatement","src":"16937:285:5"}],"id":5861,"name":"Block","src":"16770:466:5"}],"id":5862,"name":"IfStatement","src":"16116:1120:5"}],"id":5863,"name":"Block","src":"16102:1144:5"}],"id":5864,"name":"IfStatement","src":"16076:1170:5"},{"attributes":{"functionReturnParameters":5761},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5753,"type":"uint256","value":"selfptr"},"id":5865,"name":"Identifier","src":"17262:7:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5751,"type":"uint256","value":"selflen"},"id":5866,"name":"Identifier","src":"17272:7:5"}],"id":5867,"name":"BinaryOperation","src":"17262:17:5"}],"id":5868,"name":"Return","src":"17255:24:5"}],"id":5869,"name":"Block","src":"16019:1267:5"}],"id":5870,"name":"FunctionDefinition","src":"15914:1372:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"rfindPtr","payable":false,"scope":6484,"stateMutability":"pure","superFunction":null,"visibility":"private"},"children":[{"children":[{"attributes":{"constant":false,"name":"selflen","scope":5987,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5871,"name":"ElementaryTypeName","src":"17457:4:5"}],"id":5872,"name":"VariableDeclaration","src":"17457:12:5"},{"attributes":{"constant":false,"name":"selfptr","scope":5987,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5873,"name":"ElementaryTypeName","src":"17471:4:5"}],"id":5874,"name":"VariableDeclaration","src":"17471:12:5"},{"attributes":{"constant":false,"name":"needlelen","scope":5987,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5875,"name":"ElementaryTypeName","src":"17485:4:5"}],"id":5876,"name":"VariableDeclaration","src":"17485:14:5"},{"attributes":{"constant":false,"name":"needleptr","scope":5987,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5877,"name":"ElementaryTypeName","src":"17501:4:5"}],"id":5878,"name":"VariableDeclaration","src":"17501:14:5"}],"id":5879,"name":"ParameterList","src":"17456:60:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":5987,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5880,"name":"ElementaryTypeName","src":"17539:4:5"}],"id":5881,"name":"VariableDeclaration","src":"17539:4:5"}],"id":5882,"name":"ParameterList","src":"17538:6:5"},{"children":[{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"ptr","scope":5987,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5883,"name":"ElementaryTypeName","src":"17555:4:5"}],"id":5884,"name":"VariableDeclaration","src":"17555:8:5"}],"id":5885,"name":"VariableDeclarationStatement","src":"17555:8:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5876,"type":"uint256","value":"needlelen"},"id":5886,"name":"Identifier","src":"17578:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5872,"type":"uint256","value":"selflen"},"id":5887,"name":"Identifier","src":"17591:7:5"}],"id":5888,"name":"BinaryOperation","src":"17578:20:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5876,"type":"uint256","value":"needlelen"},"id":5889,"name":"Identifier","src":"17618:9:5"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":5890,"name":"Literal","src":"17631:2:5"}],"id":5891,"name":"BinaryOperation","src":"17618:15:5"},{"children":[{"attributes":{"assignments":[5893]},"children":[{"attributes":{"constant":false,"name":"mask","scope":5987,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":5892,"name":"ElementaryTypeName","src":"17653:7:5"}],"id":5893,"name":"VariableDeclaration","src":"17653:12:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(bytes32)","value":"bytes32"},"id":5894,"name":"ElementaryTypeNameExpression","src":"17668:7:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"~","prefix":true,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"**","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"32","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2","value":"2"},"id":5895,"name":"Literal","src":"17678:1:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"38","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 8","value":"8"},"id":5896,"name":"Literal","src":"17684:1:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":5897,"name":"Literal","src":"17689:2:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5876,"type":"uint256","value":"needlelen"},"id":5898,"name":"Identifier","src":"17694:9:5"}],"id":5899,"name":"BinaryOperation","src":"17689:14:5"}],"id":5900,"name":"TupleExpression","src":"17688:16:5"}],"id":5901,"name":"BinaryOperation","src":"17684:20:5"}],"id":5902,"name":"TupleExpression","src":"17683:22:5"}],"id":5903,"name":"BinaryOperation","src":"17678:27:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":5904,"name":"Literal","src":"17708:1:5"}],"id":5905,"name":"BinaryOperation","src":"17678:31:5"}],"id":5906,"name":"TupleExpression","src":"17677:33:5"}],"id":5907,"name":"UnaryOperation","src":"17676:34:5"}],"id":5908,"name":"FunctionCall","src":"17668:43:5"}],"id":5909,"name":"VariableDeclarationStatement","src":"17653:58:5"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"needledata","scope":5987,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":5910,"name":"ElementaryTypeName","src":"17730:7:5"}],"id":5911,"name":"VariableDeclaration","src":"17730:18:5"}],"id":5912,"name":"VariableDeclarationStatement","src":"17730:18:5"},{"attributes":{"externalReferences":[{"needleptr":{"declaration":5878,"isOffset":false,"isSlot":false,"src":"17801:9:5","valueSize":1}},{"needledata":{"declaration":5911,"isOffset":false,"isSlot":false,"src":"17777:10:5","valueSize":1}},{"mask":{"declaration":5893,"isOffset":false,"isSlot":false,"src":"17813:4:5","valueSize":1}}],"operations":"{\n needledata := and(mload(needleptr), mask)\n}"},"children":[],"id":5913,"name":"InlineAssembly","src":"17766:75:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5884,"type":"uint256","value":"ptr"},"id":5914,"name":"Identifier","src":"17838:3:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5874,"type":"uint256","value":"selfptr"},"id":5915,"name":"Identifier","src":"17844:7:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5872,"type":"uint256","value":"selflen"},"id":5916,"name":"Identifier","src":"17854:7:5"}],"id":5917,"name":"BinaryOperation","src":"17844:17:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5876,"type":"uint256","value":"needlelen"},"id":5918,"name":"Identifier","src":"17864:9:5"}],"id":5919,"name":"BinaryOperation","src":"17844:29:5"}],"id":5920,"name":"Assignment","src":"17838:35:5"}],"id":5921,"name":"ExpressionStatement","src":"17838:35:5"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"ptrdata","scope":5987,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":5922,"name":"ElementaryTypeName","src":"17891:7:5"}],"id":5923,"name":"VariableDeclaration","src":"17891:15:5"}],"id":5924,"name":"VariableDeclarationStatement","src":"17891:15:5"},{"attributes":{"externalReferences":[{"ptr":{"declaration":5884,"isOffset":false,"isSlot":false,"src":"17956:3:5","valueSize":1}},{"ptrdata":{"declaration":5923,"isOffset":false,"isSlot":false,"src":"17935:7:5","valueSize":1}},{"mask":{"declaration":5893,"isOffset":false,"isSlot":false,"src":"17962:4:5","valueSize":1}}],"operations":"{\n ptrdata := and(mload(ptr), mask)\n}"},"children":[],"id":5925,"name":"InlineAssembly","src":"17924:68:5"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5923,"type":"bytes32","value":"ptrdata"},"id":5926,"name":"Identifier","src":"17994:7:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5911,"type":"bytes32","value":"needledata"},"id":5927,"name":"Identifier","src":"18005:10:5"}],"id":5928,"name":"BinaryOperation","src":"17994:21:5"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5884,"type":"uint256","value":"ptr"},"id":5929,"name":"Identifier","src":"18043:3:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5874,"type":"uint256","value":"selfptr"},"id":5930,"name":"Identifier","src":"18050:7:5"}],"id":5931,"name":"BinaryOperation","src":"18043:14:5"},{"attributes":{"functionReturnParameters":5882},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5874,"type":"uint256","value":"selfptr"},"id":5932,"name":"Identifier","src":"18090:7:5"}],"id":5933,"name":"Return","src":"18083:14:5"}],"id":5934,"name":"IfStatement","src":"18039:58:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"--","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5884,"type":"uint256","value":"ptr"},"id":5935,"name":"Identifier","src":"18119:3:5"}],"id":5936,"name":"UnaryOperation","src":"18119:5:5"}],"id":5937,"name":"ExpressionStatement","src":"18119:5:5"},{"attributes":{"externalReferences":[{"ptr":{"declaration":5884,"isOffset":false,"isSlot":false,"src":"18178:3:5","valueSize":1}},{"ptrdata":{"declaration":5923,"isOffset":false,"isSlot":false,"src":"18157:7:5","valueSize":1}},{"mask":{"declaration":5893,"isOffset":false,"isSlot":false,"src":"18184:4:5","valueSize":1}}],"operations":"{\n ptrdata := and(mload(ptr), mask)\n}"},"children":[],"id":5938,"name":"InlineAssembly","src":"18146:63:5"}],"id":5939,"name":"Block","src":"18017:192:5"}],"id":5940,"name":"WhileStatement","src":"17987:222:5"},{"attributes":{"functionReturnParameters":5882},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5884,"type":"uint256","value":"ptr"},"id":5941,"name":"Identifier","src":"18233:3:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5876,"type":"uint256","value":"needlelen"},"id":5942,"name":"Identifier","src":"18239:9:5"}],"id":5943,"name":"BinaryOperation","src":"18233:15:5"}],"id":5944,"name":"Return","src":"18226:22:5"}],"id":5945,"name":"Block","src":"17635:628:5"},{"children":[{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"hash","scope":5987,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":5946,"name":"ElementaryTypeName","src":"18336:7:5"}],"id":5947,"name":"VariableDeclaration","src":"18336:12:5"}],"id":5948,"name":"VariableDeclarationStatement","src":"18336:12:5"},{"attributes":{"externalReferences":[{"hash":{"declaration":5947,"isOffset":false,"isSlot":false,"src":"18377:4:5","valueSize":1}},{"needleptr":{"declaration":5878,"isOffset":false,"isSlot":false,"src":"18395:9:5","valueSize":1}},{"needlelen":{"declaration":5876,"isOffset":false,"isSlot":false,"src":"18406:9:5","valueSize":1}}],"operations":"{\n hash := keccak256(needleptr, needlelen)\n}"},"children":[],"id":5949,"name":"InlineAssembly","src":"18366:72:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5884,"type":"uint256","value":"ptr"},"id":5950,"name":"Identifier","src":"18435:3:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5874,"type":"uint256","value":"selfptr"},"id":5951,"name":"Identifier","src":"18441:7:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5872,"type":"uint256","value":"selflen"},"id":5952,"name":"Identifier","src":"18452:7:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5876,"type":"uint256","value":"needlelen"},"id":5953,"name":"Identifier","src":"18462:9:5"}],"id":5954,"name":"BinaryOperation","src":"18452:19:5"}],"id":5955,"name":"TupleExpression","src":"18451:21:5"}],"id":5956,"name":"BinaryOperation","src":"18441:31:5"}],"id":5957,"name":"Assignment","src":"18435:37:5"}],"id":5958,"name":"ExpressionStatement","src":"18435:37:5"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5884,"type":"uint256","value":"ptr"},"id":5959,"name":"Identifier","src":"18497:3:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5874,"type":"uint256","value":"selfptr"},"id":5960,"name":"Identifier","src":"18504:7:5"}],"id":5961,"name":"BinaryOperation","src":"18497:14:5"},{"children":[{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"testHash","scope":5987,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":5962,"name":"ElementaryTypeName","src":"18535:7:5"}],"id":5963,"name":"VariableDeclaration","src":"18535:16:5"}],"id":5964,"name":"VariableDeclarationStatement","src":"18535:16:5"},{"attributes":{"externalReferences":[{"testHash":{"declaration":5963,"isOffset":false,"isSlot":false,"src":"18584:8:5","valueSize":1}},{"ptr":{"declaration":5884,"isOffset":false,"isSlot":false,"src":"18606:3:5","valueSize":1}},{"needlelen":{"declaration":5876,"isOffset":false,"isSlot":false,"src":"18611:9:5","valueSize":1}}],"operations":"{\n testHash := keccak256(ptr, needlelen)\n}"},"children":[],"id":5965,"name":"InlineAssembly","src":"18573:73:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5947,"type":"bytes32","value":"hash"},"id":5966,"name":"Identifier","src":"18648:4:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5963,"type":"bytes32","value":"testHash"},"id":5967,"name":"Identifier","src":"18656:8:5"}],"id":5968,"name":"BinaryOperation","src":"18648:16:5"},{"attributes":{"functionReturnParameters":5882},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5884,"type":"uint256","value":"ptr"},"id":5969,"name":"Identifier","src":"18697:3:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5876,"type":"uint256","value":"needlelen"},"id":5970,"name":"Identifier","src":"18703:9:5"}],"id":5971,"name":"BinaryOperation","src":"18697:15:5"}],"id":5972,"name":"Return","src":"18690:22:5"}],"id":5973,"name":"IfStatement","src":"18644:68:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5884,"type":"uint256","value":"ptr"},"id":5974,"name":"Identifier","src":"18734:3:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":5975,"name":"Literal","src":"18741:1:5"}],"id":5976,"name":"Assignment","src":"18734:8:5"}],"id":5977,"name":"ExpressionStatement","src":"18734:8:5"}],"id":5978,"name":"Block","src":"18513:248:5"}],"id":5979,"name":"WhileStatement","src":"18490:271:5"}],"id":5980,"name":"Block","src":"18269:506:5"}],"id":5981,"name":"IfStatement","src":"17614:1161:5"}],"id":5982,"name":"Block","src":"17600:1185:5"}],"id":5983,"name":"IfStatement","src":"17574:1211:5"},{"attributes":{"functionReturnParameters":5882},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5874,"type":"uint256","value":"selfptr"},"id":5984,"name":"Identifier","src":"18801:7:5"}],"id":5985,"name":"Return","src":"18794:14:5"}],"id":5986,"name":"Block","src":"17545:1270:5"}],"id":5987,"name":"FunctionDefinition","src":"17439:1376:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"find","payable":false,"scope":6484,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":6027,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4796,"type":"struct strings.slice"},"id":5988,"name":"UserDefinedTypeName","src":"19165:5:5"}],"id":5989,"name":"VariableDeclaration","src":"19165:17:5"},{"attributes":{"constant":false,"name":"needle","scope":6027,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4796,"type":"struct strings.slice"},"id":5990,"name":"UserDefinedTypeName","src":"19184:5:5"}],"id":5991,"name":"VariableDeclaration","src":"19184:19:5"}],"id":5992,"name":"ParameterList","src":"19164:40:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":6027,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4796,"type":"struct strings.slice"},"id":5993,"name":"UserDefinedTypeName","src":"19228:5:5"}],"id":5994,"name":"VariableDeclaration","src":"19228:5:5"}],"id":5995,"name":"ParameterList","src":"19227:14:5"},{"children":[{"attributes":{"assignments":[5997]},"children":[{"attributes":{"constant":false,"name":"ptr","scope":6027,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":5996,"name":"ElementaryTypeName","src":"19252:4:5"}],"id":5997,"name":"VariableDeclaration","src":"19252:8:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":5870,"type":"function (uint256,uint256,uint256,uint256) pure returns (uint256)","value":"findPtr"},"id":5998,"name":"Identifier","src":"19263:7:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4793,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5989,"type":"struct strings.slice memory","value":"self"},"id":5999,"name":"Identifier","src":"19271:4:5"}],"id":6000,"name":"MemberAccess","src":"19271:9:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":4795,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5989,"type":"struct strings.slice memory","value":"self"},"id":6001,"name":"Identifier","src":"19282:4:5"}],"id":6002,"name":"MemberAccess","src":"19282:9:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4793,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5991,"type":"struct strings.slice memory","value":"needle"},"id":6003,"name":"Identifier","src":"19293:6:5"}],"id":6004,"name":"MemberAccess","src":"19293:11:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":4795,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5991,"type":"struct strings.slice memory","value":"needle"},"id":6005,"name":"Identifier","src":"19306:6:5"}],"id":6006,"name":"MemberAccess","src":"19306:11:5"}],"id":6007,"name":"FunctionCall","src":"19263:55:5"}],"id":6008,"name":"VariableDeclarationStatement","src":"19252:66:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":4793,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5989,"type":"struct strings.slice memory","value":"self"},"id":6009,"name":"Identifier","src":"19328:4:5"}],"id":6011,"name":"MemberAccess","src":"19328:9:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5997,"type":"uint256","value":"ptr"},"id":6012,"name":"Identifier","src":"19341:3:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":4795,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5989,"type":"struct strings.slice memory","value":"self"},"id":6013,"name":"Identifier","src":"19347:4:5"}],"id":6014,"name":"MemberAccess","src":"19347:9:5"}],"id":6015,"name":"BinaryOperation","src":"19341:15:5"}],"id":6016,"name":"Assignment","src":"19328:28:5"}],"id":6017,"name":"ExpressionStatement","src":"19328:28:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_ptr","referencedDeclaration":4795,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5989,"type":"struct strings.slice memory","value":"self"},"id":6018,"name":"Identifier","src":"19366:4:5"}],"id":6020,"name":"MemberAccess","src":"19366:9:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5997,"type":"uint256","value":"ptr"},"id":6021,"name":"Identifier","src":"19378:3:5"}],"id":6022,"name":"Assignment","src":"19366:15:5"}],"id":6023,"name":"ExpressionStatement","src":"19366:15:5"},{"attributes":{"functionReturnParameters":5995},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":5989,"type":"struct strings.slice memory","value":"self"},"id":6024,"name":"Identifier","src":"19398:4:5"}],"id":6025,"name":"Return","src":"19391:11:5"}],"id":6026,"name":"Block","src":"19242:167:5"}],"id":6027,"name":"FunctionDefinition","src":"19151:258:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"rfind","payable":false,"scope":6484,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":6061,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4796,"type":"struct strings.slice"},"id":6028,"name":"UserDefinedTypeName","src":"19783:5:5"}],"id":6029,"name":"VariableDeclaration","src":"19783:17:5"},{"attributes":{"constant":false,"name":"needle","scope":6061,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4796,"type":"struct strings.slice"},"id":6030,"name":"UserDefinedTypeName","src":"19802:5:5"}],"id":6031,"name":"VariableDeclaration","src":"19802:19:5"}],"id":6032,"name":"ParameterList","src":"19782:40:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":6061,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4796,"type":"struct strings.slice"},"id":6033,"name":"UserDefinedTypeName","src":"19846:5:5"}],"id":6034,"name":"VariableDeclaration","src":"19846:5:5"}],"id":6035,"name":"ParameterList","src":"19845:14:5"},{"children":[{"attributes":{"assignments":[6037]},"children":[{"attributes":{"constant":false,"name":"ptr","scope":6061,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":6036,"name":"ElementaryTypeName","src":"19870:4:5"}],"id":6037,"name":"VariableDeclaration","src":"19870:8:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":5987,"type":"function (uint256,uint256,uint256,uint256) pure returns (uint256)","value":"rfindPtr"},"id":6038,"name":"Identifier","src":"19881:8:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4793,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6029,"type":"struct strings.slice memory","value":"self"},"id":6039,"name":"Identifier","src":"19890:4:5"}],"id":6040,"name":"MemberAccess","src":"19890:9:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":4795,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6029,"type":"struct strings.slice memory","value":"self"},"id":6041,"name":"Identifier","src":"19901:4:5"}],"id":6042,"name":"MemberAccess","src":"19901:9:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4793,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6031,"type":"struct strings.slice memory","value":"needle"},"id":6043,"name":"Identifier","src":"19912:6:5"}],"id":6044,"name":"MemberAccess","src":"19912:11:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":4795,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6031,"type":"struct strings.slice memory","value":"needle"},"id":6045,"name":"Identifier","src":"19925:6:5"}],"id":6046,"name":"MemberAccess","src":"19925:11:5"}],"id":6047,"name":"FunctionCall","src":"19881:56:5"}],"id":6048,"name":"VariableDeclarationStatement","src":"19870:67:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":4793,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6029,"type":"struct strings.slice memory","value":"self"},"id":6049,"name":"Identifier","src":"19947:4:5"}],"id":6051,"name":"MemberAccess","src":"19947:9:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6037,"type":"uint256","value":"ptr"},"id":6052,"name":"Identifier","src":"19959:3:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":4795,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6029,"type":"struct strings.slice memory","value":"self"},"id":6053,"name":"Identifier","src":"19965:4:5"}],"id":6054,"name":"MemberAccess","src":"19965:9:5"}],"id":6055,"name":"BinaryOperation","src":"19959:15:5"}],"id":6056,"name":"Assignment","src":"19947:27:5"}],"id":6057,"name":"ExpressionStatement","src":"19947:27:5"},{"attributes":{"functionReturnParameters":6035},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6029,"type":"struct strings.slice memory","value":"self"},"id":6058,"name":"Identifier","src":"19991:4:5"}],"id":6059,"name":"Return","src":"19984:11:5"}],"id":6060,"name":"Block","src":"19860:142:5"}],"id":6061,"name":"FunctionDefinition","src":"19768:234:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"split","payable":false,"scope":6484,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":6139,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4796,"type":"struct strings.slice"},"id":6062,"name":"UserDefinedTypeName","src":"20523:5:5"}],"id":6063,"name":"VariableDeclaration","src":"20523:17:5"},{"attributes":{"constant":false,"name":"needle","scope":6139,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4796,"type":"struct strings.slice"},"id":6064,"name":"UserDefinedTypeName","src":"20542:5:5"}],"id":6065,"name":"VariableDeclaration","src":"20542:19:5"},{"attributes":{"constant":false,"name":"token","scope":6139,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4796,"type":"struct strings.slice"},"id":6066,"name":"UserDefinedTypeName","src":"20563:5:5"}],"id":6067,"name":"VariableDeclaration","src":"20563:18:5"}],"id":6068,"name":"ParameterList","src":"20522:60:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":6139,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4796,"type":"struct strings.slice"},"id":6069,"name":"UserDefinedTypeName","src":"20606:5:5"}],"id":6070,"name":"VariableDeclaration","src":"20606:5:5"}],"id":6071,"name":"ParameterList","src":"20605:14:5"},{"children":[{"attributes":{"assignments":[6073]},"children":[{"attributes":{"constant":false,"name":"ptr","scope":6139,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":6072,"name":"ElementaryTypeName","src":"20630:4:5"}],"id":6073,"name":"VariableDeclaration","src":"20630:8:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":5870,"type":"function (uint256,uint256,uint256,uint256) pure returns (uint256)","value":"findPtr"},"id":6074,"name":"Identifier","src":"20641:7:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4793,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6063,"type":"struct strings.slice memory","value":"self"},"id":6075,"name":"Identifier","src":"20649:4:5"}],"id":6076,"name":"MemberAccess","src":"20649:9:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":4795,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6063,"type":"struct strings.slice memory","value":"self"},"id":6077,"name":"Identifier","src":"20660:4:5"}],"id":6078,"name":"MemberAccess","src":"20660:9:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4793,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6065,"type":"struct strings.slice memory","value":"needle"},"id":6079,"name":"Identifier","src":"20671:6:5"}],"id":6080,"name":"MemberAccess","src":"20671:11:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":4795,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6065,"type":"struct strings.slice memory","value":"needle"},"id":6081,"name":"Identifier","src":"20684:6:5"}],"id":6082,"name":"MemberAccess","src":"20684:11:5"}],"id":6083,"name":"FunctionCall","src":"20641:55:5"}],"id":6084,"name":"VariableDeclarationStatement","src":"20630:66:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_ptr","referencedDeclaration":4795,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6067,"type":"struct strings.slice memory","value":"token"},"id":6085,"name":"Identifier","src":"20706:5:5"}],"id":6087,"name":"MemberAccess","src":"20706:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":4795,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6063,"type":"struct strings.slice memory","value":"self"},"id":6088,"name":"Identifier","src":"20719:4:5"}],"id":6089,"name":"MemberAccess","src":"20719:9:5"}],"id":6090,"name":"Assignment","src":"20706:22:5"}],"id":6091,"name":"ExpressionStatement","src":"20706:22:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":4793,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6067,"type":"struct strings.slice memory","value":"token"},"id":6092,"name":"Identifier","src":"20738:5:5"}],"id":6094,"name":"MemberAccess","src":"20738:10:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6073,"type":"uint256","value":"ptr"},"id":6095,"name":"Identifier","src":"20751:3:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":4795,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6063,"type":"struct strings.slice memory","value":"self"},"id":6096,"name":"Identifier","src":"20757:4:5"}],"id":6097,"name":"MemberAccess","src":"20757:9:5"}],"id":6098,"name":"BinaryOperation","src":"20751:15:5"}],"id":6099,"name":"Assignment","src":"20738:28:5"}],"id":6100,"name":"ExpressionStatement","src":"20738:28:5"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6073,"type":"uint256","value":"ptr"},"id":6101,"name":"Identifier","src":"20780:3:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":4795,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6063,"type":"struct strings.slice memory","value":"self"},"id":6102,"name":"Identifier","src":"20787:4:5"}],"id":6103,"name":"MemberAccess","src":"20787:9:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4793,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6063,"type":"struct strings.slice memory","value":"self"},"id":6104,"name":"Identifier","src":"20799:4:5"}],"id":6105,"name":"MemberAccess","src":"20799:9:5"}],"id":6106,"name":"BinaryOperation","src":"20787:21:5"}],"id":6107,"name":"BinaryOperation","src":"20780:28:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":4793,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6063,"type":"struct strings.slice memory","value":"self"},"id":6108,"name":"Identifier","src":"20849:4:5"}],"id":6110,"name":"MemberAccess","src":"20849:9:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":6111,"name":"Literal","src":"20861:1:5"}],"id":6112,"name":"Assignment","src":"20849:13:5"}],"id":6113,"name":"ExpressionStatement","src":"20849:13:5"}],"id":6114,"name":"Block","src":"20810:63:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":4793,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6063,"type":"struct strings.slice memory","value":"self"},"id":6115,"name":"Identifier","src":"20893:4:5"}],"id":6117,"name":"MemberAccess","src":"20893:9:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4793,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6067,"type":"struct strings.slice memory","value":"token"},"id":6118,"name":"Identifier","src":"20906:5:5"}],"id":6119,"name":"MemberAccess","src":"20906:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4793,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6065,"type":"struct strings.slice memory","value":"needle"},"id":6120,"name":"Identifier","src":"20919:6:5"}],"id":6121,"name":"MemberAccess","src":"20919:11:5"}],"id":6122,"name":"BinaryOperation","src":"20906:24:5"}],"id":6123,"name":"Assignment","src":"20893:37:5"}],"id":6124,"name":"ExpressionStatement","src":"20893:37:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_ptr","referencedDeclaration":4795,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6063,"type":"struct strings.slice memory","value":"self"},"id":6125,"name":"Identifier","src":"20944:4:5"}],"id":6127,"name":"MemberAccess","src":"20944:9:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6073,"type":"uint256","value":"ptr"},"id":6128,"name":"Identifier","src":"20956:3:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4793,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6065,"type":"struct strings.slice memory","value":"needle"},"id":6129,"name":"Identifier","src":"20962:6:5"}],"id":6130,"name":"MemberAccess","src":"20962:11:5"}],"id":6131,"name":"BinaryOperation","src":"20956:17:5"}],"id":6132,"name":"Assignment","src":"20944:29:5"}],"id":6133,"name":"ExpressionStatement","src":"20944:29:5"}],"id":6134,"name":"Block","src":"20879:105:5"}],"id":6135,"name":"IfStatement","src":"20776:208:5"},{"attributes":{"functionReturnParameters":6071},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6067,"type":"struct strings.slice memory","value":"token"},"id":6136,"name":"Identifier","src":"21000:5:5"}],"id":6137,"name":"Return","src":"20993:12:5"}],"id":6138,"name":"Block","src":"20620:392:5"}],"id":6139,"name":"FunctionDefinition","src":"20508:504:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"split","payable":false,"scope":6484,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":6155,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4796,"type":"struct strings.slice"},"id":6140,"name":"UserDefinedTypeName","src":"21498:5:5"}],"id":6141,"name":"VariableDeclaration","src":"21498:17:5"},{"attributes":{"constant":false,"name":"needle","scope":6155,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4796,"type":"struct strings.slice"},"id":6142,"name":"UserDefinedTypeName","src":"21517:5:5"}],"id":6143,"name":"VariableDeclaration","src":"21517:19:5"}],"id":6144,"name":"ParameterList","src":"21497:40:5"},{"children":[{"attributes":{"constant":false,"name":"token","scope":6155,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4796,"type":"struct strings.slice"},"id":6145,"name":"UserDefinedTypeName","src":"21561:5:5"}],"id":6146,"name":"VariableDeclaration","src":"21561:18:5"}],"id":6147,"name":"ParameterList","src":"21560:20:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"struct strings.slice memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$4796_memory_ptr","typeString":"struct strings.slice memory"},{"typeIdentifier":"t_struct$_slice_$4796_memory_ptr","typeString":"struct strings.slice memory"},{"typeIdentifier":"t_struct$_slice_$4796_memory_ptr","typeString":"struct strings.slice memory"}],"overloadedDeclarations":[6139,6155],"referencedDeclaration":6139,"type":"function (struct strings.slice memory,struct strings.slice memory,struct strings.slice memory) pure returns (struct strings.slice memory)","value":"split"},"id":6148,"name":"Identifier","src":"21591:5:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6141,"type":"struct strings.slice memory","value":"self"},"id":6149,"name":"Identifier","src":"21597:4:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6143,"type":"struct strings.slice memory","value":"needle"},"id":6150,"name":"Identifier","src":"21603:6:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6146,"type":"struct strings.slice memory","value":"token"},"id":6151,"name":"Identifier","src":"21611:5:5"}],"id":6152,"name":"FunctionCall","src":"21591:26:5"}],"id":6153,"name":"ExpressionStatement","src":"21591:26:5"}],"id":6154,"name":"Block","src":"21581:43:5"}],"id":6155,"name":"FunctionDefinition","src":"21483:141:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"rsplit","payable":false,"scope":6484,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":6224,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4796,"type":"struct strings.slice"},"id":6156,"name":"UserDefinedTypeName","src":"22145:5:5"}],"id":6157,"name":"VariableDeclaration","src":"22145:17:5"},{"attributes":{"constant":false,"name":"needle","scope":6224,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4796,"type":"struct strings.slice"},"id":6158,"name":"UserDefinedTypeName","src":"22164:5:5"}],"id":6159,"name":"VariableDeclaration","src":"22164:19:5"},{"attributes":{"constant":false,"name":"token","scope":6224,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4796,"type":"struct strings.slice"},"id":6160,"name":"UserDefinedTypeName","src":"22185:5:5"}],"id":6161,"name":"VariableDeclaration","src":"22185:18:5"}],"id":6162,"name":"ParameterList","src":"22144:60:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":6224,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4796,"type":"struct strings.slice"},"id":6163,"name":"UserDefinedTypeName","src":"22228:5:5"}],"id":6164,"name":"VariableDeclaration","src":"22228:5:5"}],"id":6165,"name":"ParameterList","src":"22227:14:5"},{"children":[{"attributes":{"assignments":[6167]},"children":[{"attributes":{"constant":false,"name":"ptr","scope":6224,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":6166,"name":"ElementaryTypeName","src":"22252:4:5"}],"id":6167,"name":"VariableDeclaration","src":"22252:8:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":5987,"type":"function (uint256,uint256,uint256,uint256) pure returns (uint256)","value":"rfindPtr"},"id":6168,"name":"Identifier","src":"22263:8:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4793,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6157,"type":"struct strings.slice memory","value":"self"},"id":6169,"name":"Identifier","src":"22272:4:5"}],"id":6170,"name":"MemberAccess","src":"22272:9:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":4795,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6157,"type":"struct strings.slice memory","value":"self"},"id":6171,"name":"Identifier","src":"22283:4:5"}],"id":6172,"name":"MemberAccess","src":"22283:9:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4793,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6159,"type":"struct strings.slice memory","value":"needle"},"id":6173,"name":"Identifier","src":"22294:6:5"}],"id":6174,"name":"MemberAccess","src":"22294:11:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":4795,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6159,"type":"struct strings.slice memory","value":"needle"},"id":6175,"name":"Identifier","src":"22307:6:5"}],"id":6176,"name":"MemberAccess","src":"22307:11:5"}],"id":6177,"name":"FunctionCall","src":"22263:56:5"}],"id":6178,"name":"VariableDeclarationStatement","src":"22252:67:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_ptr","referencedDeclaration":4795,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6161,"type":"struct strings.slice memory","value":"token"},"id":6179,"name":"Identifier","src":"22329:5:5"}],"id":6181,"name":"MemberAccess","src":"22329:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6167,"type":"uint256","value":"ptr"},"id":6182,"name":"Identifier","src":"22342:3:5"}],"id":6183,"name":"Assignment","src":"22329:16:5"}],"id":6184,"name":"ExpressionStatement","src":"22329:16:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":4793,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6161,"type":"struct strings.slice memory","value":"token"},"id":6185,"name":"Identifier","src":"22355:5:5"}],"id":6187,"name":"MemberAccess","src":"22355:10:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4793,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6157,"type":"struct strings.slice memory","value":"self"},"id":6188,"name":"Identifier","src":"22368:4:5"}],"id":6189,"name":"MemberAccess","src":"22368:9:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6167,"type":"uint256","value":"ptr"},"id":6190,"name":"Identifier","src":"22381:3:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":4795,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6157,"type":"struct strings.slice memory","value":"self"},"id":6191,"name":"Identifier","src":"22387:4:5"}],"id":6192,"name":"MemberAccess","src":"22387:9:5"}],"id":6193,"name":"BinaryOperation","src":"22381:15:5"}],"id":6194,"name":"TupleExpression","src":"22380:17:5"}],"id":6195,"name":"BinaryOperation","src":"22368:29:5"}],"id":6196,"name":"Assignment","src":"22355:42:5"}],"id":6197,"name":"ExpressionStatement","src":"22355:42:5"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6167,"type":"uint256","value":"ptr"},"id":6198,"name":"Identifier","src":"22411:3:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":4795,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6157,"type":"struct strings.slice memory","value":"self"},"id":6199,"name":"Identifier","src":"22418:4:5"}],"id":6200,"name":"MemberAccess","src":"22418:9:5"}],"id":6201,"name":"BinaryOperation","src":"22411:16:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":4793,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6157,"type":"struct strings.slice memory","value":"self"},"id":6202,"name":"Identifier","src":"22468:4:5"}],"id":6204,"name":"MemberAccess","src":"22468:9:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":6205,"name":"Literal","src":"22480:1:5"}],"id":6206,"name":"Assignment","src":"22468:13:5"}],"id":6207,"name":"ExpressionStatement","src":"22468:13:5"}],"id":6208,"name":"Block","src":"22429:63:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"_len","referencedDeclaration":4793,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6157,"type":"struct strings.slice memory","value":"self"},"id":6209,"name":"Identifier","src":"22512:4:5"}],"id":6211,"name":"MemberAccess","src":"22512:9:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4793,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6161,"type":"struct strings.slice memory","value":"token"},"id":6212,"name":"Identifier","src":"22525:5:5"}],"id":6213,"name":"MemberAccess","src":"22525:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4793,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6159,"type":"struct strings.slice memory","value":"needle"},"id":6214,"name":"Identifier","src":"22538:6:5"}],"id":6215,"name":"MemberAccess","src":"22538:11:5"}],"id":6216,"name":"BinaryOperation","src":"22525:24:5"}],"id":6217,"name":"Assignment","src":"22512:37:5"}],"id":6218,"name":"ExpressionStatement","src":"22512:37:5"}],"id":6219,"name":"Block","src":"22498:62:5"}],"id":6220,"name":"IfStatement","src":"22407:153:5"},{"attributes":{"functionReturnParameters":6165},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6161,"type":"struct strings.slice memory","value":"token"},"id":6221,"name":"Identifier","src":"22576:5:5"}],"id":6222,"name":"Return","src":"22569:12:5"}],"id":6223,"name":"Block","src":"22242:346:5"}],"id":6224,"name":"FunctionDefinition","src":"22129:459:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"rsplit","payable":false,"scope":6484,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":6240,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4796,"type":"struct strings.slice"},"id":6225,"name":"UserDefinedTypeName","src":"23073:5:5"}],"id":6226,"name":"VariableDeclaration","src":"23073:17:5"},{"attributes":{"constant":false,"name":"needle","scope":6240,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4796,"type":"struct strings.slice"},"id":6227,"name":"UserDefinedTypeName","src":"23092:5:5"}],"id":6228,"name":"VariableDeclaration","src":"23092:19:5"}],"id":6229,"name":"ParameterList","src":"23072:40:5"},{"children":[{"attributes":{"constant":false,"name":"token","scope":6240,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4796,"type":"struct strings.slice"},"id":6230,"name":"UserDefinedTypeName","src":"23136:5:5"}],"id":6231,"name":"VariableDeclaration","src":"23136:18:5"}],"id":6232,"name":"ParameterList","src":"23135:20:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"struct strings.slice memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$4796_memory_ptr","typeString":"struct strings.slice memory"},{"typeIdentifier":"t_struct$_slice_$4796_memory_ptr","typeString":"struct strings.slice memory"},{"typeIdentifier":"t_struct$_slice_$4796_memory_ptr","typeString":"struct strings.slice memory"}],"overloadedDeclarations":[6224,6240],"referencedDeclaration":6224,"type":"function (struct strings.slice memory,struct strings.slice memory,struct strings.slice memory) pure returns (struct strings.slice memory)","value":"rsplit"},"id":6233,"name":"Identifier","src":"23166:6:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6226,"type":"struct strings.slice memory","value":"self"},"id":6234,"name":"Identifier","src":"23173:4:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6228,"type":"struct strings.slice memory","value":"needle"},"id":6235,"name":"Identifier","src":"23179:6:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6231,"type":"struct strings.slice memory","value":"token"},"id":6236,"name":"Identifier","src":"23187:5:5"}],"id":6237,"name":"FunctionCall","src":"23166:27:5"}],"id":6238,"name":"ExpressionStatement","src":"23166:27:5"}],"id":6239,"name":"Block","src":"23156:44:5"}],"id":6240,"name":"FunctionDefinition","src":"23057:143:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"count","payable":false,"scope":6484,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":6299,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4796,"type":"struct strings.slice"},"id":6241,"name":"UserDefinedTypeName","src":"23484:5:5"}],"id":6242,"name":"VariableDeclaration","src":"23484:17:5"},{"attributes":{"constant":false,"name":"needle","scope":6299,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4796,"type":"struct strings.slice"},"id":6243,"name":"UserDefinedTypeName","src":"23503:5:5"}],"id":6244,"name":"VariableDeclaration","src":"23503:19:5"}],"id":6245,"name":"ParameterList","src":"23483:40:5"},{"children":[{"attributes":{"constant":false,"name":"cnt","scope":6299,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":6246,"name":"ElementaryTypeName","src":"23547:4:5"}],"id":6247,"name":"VariableDeclaration","src":"23547:8:5"}],"id":6248,"name":"ParameterList","src":"23546:10:5"},{"children":[{"attributes":{"assignments":[6250]},"children":[{"attributes":{"constant":false,"name":"ptr","scope":6299,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":6249,"name":"ElementaryTypeName","src":"23567:4:5"}],"id":6250,"name":"VariableDeclaration","src":"23567:8:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":5870,"type":"function (uint256,uint256,uint256,uint256) pure returns (uint256)","value":"findPtr"},"id":6251,"name":"Identifier","src":"23578:7:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4793,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6242,"type":"struct strings.slice memory","value":"self"},"id":6252,"name":"Identifier","src":"23586:4:5"}],"id":6253,"name":"MemberAccess","src":"23586:9:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":4795,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6242,"type":"struct strings.slice memory","value":"self"},"id":6254,"name":"Identifier","src":"23597:4:5"}],"id":6255,"name":"MemberAccess","src":"23597:9:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4793,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6244,"type":"struct strings.slice memory","value":"needle"},"id":6256,"name":"Identifier","src":"23608:6:5"}],"id":6257,"name":"MemberAccess","src":"23608:11:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":4795,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6244,"type":"struct strings.slice memory","value":"needle"},"id":6258,"name":"Identifier","src":"23621:6:5"}],"id":6259,"name":"MemberAccess","src":"23621:11:5"}],"id":6260,"name":"FunctionCall","src":"23578:55:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4793,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6244,"type":"struct strings.slice memory","value":"needle"},"id":6261,"name":"Identifier","src":"23636:6:5"}],"id":6262,"name":"MemberAccess","src":"23636:11:5"}],"id":6263,"name":"BinaryOperation","src":"23578:69:5"}],"id":6264,"name":"VariableDeclarationStatement","src":"23567:80:5"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6250,"type":"uint256","value":"ptr"},"id":6265,"name":"Identifier","src":"23664:3:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":4795,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6242,"type":"struct strings.slice memory","value":"self"},"id":6266,"name":"Identifier","src":"23671:4:5"}],"id":6267,"name":"MemberAccess","src":"23671:9:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4793,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6242,"type":"struct strings.slice memory","value":"self"},"id":6268,"name":"Identifier","src":"23683:4:5"}],"id":6269,"name":"MemberAccess","src":"23683:9:5"}],"id":6270,"name":"BinaryOperation","src":"23671:21:5"}],"id":6271,"name":"BinaryOperation","src":"23664:28:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6247,"type":"uint256","value":"cnt"},"id":6272,"name":"Identifier","src":"23708:3:5"}],"id":6273,"name":"UnaryOperation","src":"23708:5:5"}],"id":6274,"name":"ExpressionStatement","src":"23708:5:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6250,"type":"uint256","value":"ptr"},"id":6275,"name":"Identifier","src":"23727:3:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":5870,"type":"function (uint256,uint256,uint256,uint256) pure returns (uint256)","value":"findPtr"},"id":6276,"name":"Identifier","src":"23733:7:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4793,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6242,"type":"struct strings.slice memory","value":"self"},"id":6277,"name":"Identifier","src":"23741:4:5"}],"id":6278,"name":"MemberAccess","src":"23741:9:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6250,"type":"uint256","value":"ptr"},"id":6279,"name":"Identifier","src":"23754:3:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":4795,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6242,"type":"struct strings.slice memory","value":"self"},"id":6280,"name":"Identifier","src":"23760:4:5"}],"id":6281,"name":"MemberAccess","src":"23760:9:5"}],"id":6282,"name":"BinaryOperation","src":"23754:15:5"}],"id":6283,"name":"TupleExpression","src":"23753:17:5"}],"id":6284,"name":"BinaryOperation","src":"23741:29:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6250,"type":"uint256","value":"ptr"},"id":6285,"name":"Identifier","src":"23772:3:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4793,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6244,"type":"struct strings.slice memory","value":"needle"},"id":6286,"name":"Identifier","src":"23777:6:5"}],"id":6287,"name":"MemberAccess","src":"23777:11:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":4795,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6244,"type":"struct strings.slice memory","value":"needle"},"id":6288,"name":"Identifier","src":"23790:6:5"}],"id":6289,"name":"MemberAccess","src":"23790:11:5"}],"id":6290,"name":"FunctionCall","src":"23733:69:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4793,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6244,"type":"struct strings.slice memory","value":"needle"},"id":6291,"name":"Identifier","src":"23805:6:5"}],"id":6292,"name":"MemberAccess","src":"23805:11:5"}],"id":6293,"name":"BinaryOperation","src":"23733:83:5"}],"id":6294,"name":"Assignment","src":"23727:89:5"}],"id":6295,"name":"ExpressionStatement","src":"23727:89:5"}],"id":6296,"name":"Block","src":"23694:133:5"}],"id":6297,"name":"WhileStatement","src":"23657:170:5"}],"id":6298,"name":"Block","src":"23557:276:5"}],"id":6299,"name":"FunctionDefinition","src":"23469:364:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"contains","payable":false,"scope":6484,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":6323,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4796,"type":"struct strings.slice"},"id":6300,"name":"UserDefinedTypeName","src":"24090:5:5"}],"id":6301,"name":"VariableDeclaration","src":"24090:17:5"},{"attributes":{"constant":false,"name":"needle","scope":6323,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4796,"type":"struct strings.slice"},"id":6302,"name":"UserDefinedTypeName","src":"24109:5:5"}],"id":6303,"name":"VariableDeclaration","src":"24109:19:5"}],"id":6304,"name":"ParameterList","src":"24089:40:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":6323,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":6305,"name":"ElementaryTypeName","src":"24153:4:5"}],"id":6306,"name":"VariableDeclaration","src":"24153:4:5"}],"id":6307,"name":"ParameterList","src":"24152:6:5"},{"children":[{"attributes":{"functionReturnParameters":6307},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":5987,"type":"function (uint256,uint256,uint256,uint256) pure returns (uint256)","value":"rfindPtr"},"id":6308,"name":"Identifier","src":"24176:8:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4793,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6301,"type":"struct strings.slice memory","value":"self"},"id":6309,"name":"Identifier","src":"24185:4:5"}],"id":6310,"name":"MemberAccess","src":"24185:9:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":4795,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6301,"type":"struct strings.slice memory","value":"self"},"id":6311,"name":"Identifier","src":"24196:4:5"}],"id":6312,"name":"MemberAccess","src":"24196:9:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4793,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6303,"type":"struct strings.slice memory","value":"needle"},"id":6313,"name":"Identifier","src":"24207:6:5"}],"id":6314,"name":"MemberAccess","src":"24207:11:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":4795,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6303,"type":"struct strings.slice memory","value":"needle"},"id":6315,"name":"Identifier","src":"24220:6:5"}],"id":6316,"name":"MemberAccess","src":"24220:11:5"}],"id":6317,"name":"FunctionCall","src":"24176:56:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":4795,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6301,"type":"struct strings.slice memory","value":"self"},"id":6318,"name":"Identifier","src":"24236:4:5"}],"id":6319,"name":"MemberAccess","src":"24236:9:5"}],"id":6320,"name":"BinaryOperation","src":"24176:69:5"}],"id":6321,"name":"Return","src":"24169:76:5"}],"id":6322,"name":"Block","src":"24159:93:5"}],"id":6323,"name":"FunctionDefinition","src":"24072:180:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"concat","payable":false,"scope":6484,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":6369,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4796,"type":"struct strings.slice"},"id":6324,"name":"UserDefinedTypeName","src":"24555:5:5"}],"id":6325,"name":"VariableDeclaration","src":"24555:17:5"},{"attributes":{"constant":false,"name":"other","scope":6369,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4796,"type":"struct strings.slice"},"id":6326,"name":"UserDefinedTypeName","src":"24574:5:5"}],"id":6327,"name":"VariableDeclaration","src":"24574:18:5"}],"id":6328,"name":"ParameterList","src":"24554:39:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":6369,"stateVariable":false,"storageLocation":"memory","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":6329,"name":"ElementaryTypeName","src":"24617:6:5"}],"id":6330,"name":"VariableDeclaration","src":"24617:6:5"}],"id":6331,"name":"ParameterList","src":"24616:15:5"},{"children":[{"attributes":{"assignments":[6333]},"children":[{"attributes":{"constant":false,"name":"ret","scope":6369,"stateVariable":false,"storageLocation":"memory","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":6332,"name":"ElementaryTypeName","src":"24642:6:5"}],"id":6333,"name":"VariableDeclaration","src":"24642:17:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (string memory)"},"children":[{"attributes":{"name":"string","type":"string"},"id":6334,"name":"ElementaryTypeName","src":"24666:6:5"}],"id":6335,"name":"NewExpression","src":"24662:10:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4793,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6325,"type":"struct strings.slice memory","value":"self"},"id":6336,"name":"Identifier","src":"24673:4:5"}],"id":6337,"name":"MemberAccess","src":"24673:9:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4793,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6327,"type":"struct strings.slice memory","value":"other"},"id":6338,"name":"Identifier","src":"24685:5:5"}],"id":6339,"name":"MemberAccess","src":"24685:10:5"}],"id":6340,"name":"BinaryOperation","src":"24673:22:5"}],"id":6341,"name":"FunctionCall","src":"24662:34:5"}],"id":6342,"name":"VariableDeclarationStatement","src":"24642:54:5"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"retptr","scope":6369,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":6343,"name":"ElementaryTypeName","src":"24706:4:5"}],"id":6344,"name":"VariableDeclaration","src":"24706:11:5"}],"id":6345,"name":"VariableDeclarationStatement","src":"24706:11:5"},{"attributes":{"externalReferences":[{"ret":{"declaration":6333,"isOffset":false,"isSlot":false,"src":"24752:3:5","valueSize":1}},{"retptr":{"declaration":6344,"isOffset":false,"isSlot":false,"src":"24738:6:5","valueSize":1}}],"operations":"{\n retptr := add(ret, 32)\n}"},"children":[],"id":6346,"name":"InlineAssembly","src":"24727:50:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":4836,"type":"function (uint256,uint256,uint256) pure","value":"memcpy"},"id":6347,"name":"Identifier","src":"24771:6:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6344,"type":"uint256","value":"retptr"},"id":6348,"name":"Identifier","src":"24778:6:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":4795,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6325,"type":"struct strings.slice memory","value":"self"},"id":6349,"name":"Identifier","src":"24786:4:5"}],"id":6350,"name":"MemberAccess","src":"24786:9:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4793,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6325,"type":"struct strings.slice memory","value":"self"},"id":6351,"name":"Identifier","src":"24797:4:5"}],"id":6352,"name":"MemberAccess","src":"24797:9:5"}],"id":6353,"name":"FunctionCall","src":"24771:36:5"}],"id":6354,"name":"ExpressionStatement","src":"24771:36:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":4836,"type":"function (uint256,uint256,uint256) pure","value":"memcpy"},"id":6355,"name":"Identifier","src":"24817:6:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6344,"type":"uint256","value":"retptr"},"id":6356,"name":"Identifier","src":"24824:6:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4793,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6325,"type":"struct strings.slice memory","value":"self"},"id":6357,"name":"Identifier","src":"24833:4:5"}],"id":6358,"name":"MemberAccess","src":"24833:9:5"}],"id":6359,"name":"BinaryOperation","src":"24824:18:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":4795,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6327,"type":"struct strings.slice memory","value":"other"},"id":6360,"name":"Identifier","src":"24844:5:5"}],"id":6361,"name":"MemberAccess","src":"24844:10:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4793,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6327,"type":"struct strings.slice memory","value":"other"},"id":6362,"name":"Identifier","src":"24856:5:5"}],"id":6363,"name":"MemberAccess","src":"24856:10:5"}],"id":6364,"name":"FunctionCall","src":"24817:50:5"}],"id":6365,"name":"ExpressionStatement","src":"24817:50:5"},{"attributes":{"functionReturnParameters":6331},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6333,"type":"string memory","value":"ret"},"id":6366,"name":"Identifier","src":"24884:3:5"}],"id":6367,"name":"Return","src":"24877:10:5"}],"id":6368,"name":"Block","src":"24632:262:5"}],"id":6369,"name":"FunctionDefinition","src":"24539:355:5"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"join","payable":false,"scope":6484,"stateMutability":"pure","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"self","scope":6483,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4796,"type":"struct strings.slice"},"id":6370,"name":"UserDefinedTypeName","src":"25244:5:5"}],"id":6371,"name":"VariableDeclaration","src":"25244:17:5"},{"attributes":{"constant":false,"name":"parts","scope":6483,"stateVariable":false,"storageLocation":"memory","type":"struct strings.slice[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"struct strings.slice[]"},"children":[{"attributes":{"contractScope":null,"name":"slice","referencedDeclaration":4796,"type":"struct strings.slice"},"id":6372,"name":"UserDefinedTypeName","src":"25263:5:5"}],"id":6373,"name":"ArrayTypeName","src":"25263:7:5"}],"id":6374,"name":"VariableDeclaration","src":"25263:20:5"}],"id":6375,"name":"ParameterList","src":"25243:41:5"},{"children":[{"attributes":{"constant":false,"name":"","scope":6483,"stateVariable":false,"storageLocation":"memory","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":6376,"name":"ElementaryTypeName","src":"25308:6:5"}],"id":6377,"name":"VariableDeclaration","src":"25308:6:5"}],"id":6378,"name":"ParameterList","src":"25307:15:5"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6374,"type":"struct strings.slice memory[] memory","value":"parts"},"id":6379,"name":"Identifier","src":"25337:5:5"}],"id":6380,"name":"MemberAccess","src":"25337:12:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":6381,"name":"Literal","src":"25353:1:5"}],"id":6382,"name":"BinaryOperation","src":"25337:17:5"},{"attributes":{"functionReturnParameters":6378},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"\"","value":""},"id":6383,"name":"Literal","src":"25375:2:5"}],"id":6384,"name":"Return","src":"25368:9:5"}],"id":6385,"name":"IfStatement","src":"25333:44:5"},{"attributes":{"assignments":[6387]},"children":[{"attributes":{"constant":false,"name":"length","scope":6483,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":6386,"name":"ElementaryTypeName","src":"25388:4:5"}],"id":6387,"name":"VariableDeclaration","src":"25388:11:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4793,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6371,"type":"struct strings.slice memory","value":"self"},"id":6388,"name":"Identifier","src":"25402:4:5"}],"id":6389,"name":"MemberAccess","src":"25402:9:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6374,"type":"struct strings.slice memory[] memory","value":"parts"},"id":6390,"name":"Identifier","src":"25415:5:5"}],"id":6391,"name":"MemberAccess","src":"25415:12:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":6392,"name":"Literal","src":"25430:1:5"}],"id":6393,"name":"BinaryOperation","src":"25415:16:5"}],"id":6394,"name":"TupleExpression","src":"25414:18:5"}],"id":6395,"name":"BinaryOperation","src":"25402:30:5"}],"id":6396,"name":"VariableDeclarationStatement","src":"25388:44:5"},{"children":[{"attributes":{"assignments":[6398]},"children":[{"attributes":{"constant":false,"name":"i","scope":6483,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":6397,"name":"ElementaryTypeName","src":"25446:4:5"}],"id":6398,"name":"VariableDeclaration","src":"25446:6:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":6399,"name":"Literal","src":"25455:1:5"}],"id":6400,"name":"VariableDeclarationStatement","src":"25446:10:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6398,"type":"uint256","value":"i"},"id":6401,"name":"Identifier","src":"25458:1:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6374,"type":"struct strings.slice memory[] memory","value":"parts"},"id":6402,"name":"Identifier","src":"25462:5:5"}],"id":6403,"name":"MemberAccess","src":"25462:12:5"}],"id":6404,"name":"BinaryOperation","src":"25458:16:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6398,"type":"uint256","value":"i"},"id":6405,"name":"Identifier","src":"25476:1:5"}],"id":6406,"name":"UnaryOperation","src":"25476:3:5"}],"id":6407,"name":"ExpressionStatement","src":"25476:3:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6387,"type":"uint256","value":"length"},"id":6408,"name":"Identifier","src":"25493:6:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4793,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct strings.slice memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6374,"type":"struct strings.slice memory[] memory","value":"parts"},"id":6409,"name":"Identifier","src":"25503:5:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6398,"type":"uint256","value":"i"},"id":6410,"name":"Identifier","src":"25509:1:5"}],"id":6411,"name":"IndexAccess","src":"25503:8:5"}],"id":6412,"name":"MemberAccess","src":"25503:13:5"}],"id":6413,"name":"Assignment","src":"25493:23:5"}],"id":6414,"name":"ExpressionStatement","src":"25493:23:5"}],"id":6415,"name":"ForStatement","src":"25442:74:5"},{"attributes":{"assignments":[6417]},"children":[{"attributes":{"constant":false,"name":"ret","scope":6483,"stateVariable":false,"storageLocation":"memory","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":6416,"name":"ElementaryTypeName","src":"25527:6:5"}],"id":6417,"name":"VariableDeclaration","src":"25527:17:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"function (uint256) pure returns (string memory)"},"children":[{"attributes":{"name":"string","type":"string"},"id":6418,"name":"ElementaryTypeName","src":"25551:6:5"}],"id":6419,"name":"NewExpression","src":"25547:10:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6387,"type":"uint256","value":"length"},"id":6420,"name":"Identifier","src":"25558:6:5"}],"id":6421,"name":"FunctionCall","src":"25547:18:5"}],"id":6422,"name":"VariableDeclarationStatement","src":"25527:38:5"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"retptr","scope":6483,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":6423,"name":"ElementaryTypeName","src":"25575:4:5"}],"id":6424,"name":"VariableDeclaration","src":"25575:11:5"}],"id":6425,"name":"VariableDeclarationStatement","src":"25575:11:5"},{"attributes":{"externalReferences":[{"retptr":{"declaration":6424,"isOffset":false,"isSlot":false,"src":"25607:6:5","valueSize":1}},{"ret":{"declaration":6417,"isOffset":false,"isSlot":false,"src":"25621:3:5","valueSize":1}}],"operations":"{\n retptr := add(ret, 32)\n}"},"children":[],"id":6426,"name":"InlineAssembly","src":"25596:48:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6398,"type":"uint256","value":"i"},"id":6427,"name":"Identifier","src":"25645:1:5"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":6428,"name":"Literal","src":"25649:1:5"}],"id":6429,"name":"Assignment","src":"25645:5:5"}],"id":6430,"name":"ExpressionStatement","src":"25645:5:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6398,"type":"uint256","value":"i"},"id":6431,"name":"Identifier","src":"25652:1:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6374,"type":"struct strings.slice memory[] memory","value":"parts"},"id":6432,"name":"Identifier","src":"25656:5:5"}],"id":6433,"name":"MemberAccess","src":"25656:12:5"}],"id":6434,"name":"BinaryOperation","src":"25652:16:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6398,"type":"uint256","value":"i"},"id":6435,"name":"Identifier","src":"25670:1:5"}],"id":6436,"name":"UnaryOperation","src":"25670:3:5"}],"id":6437,"name":"ExpressionStatement","src":"25670:3:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":4836,"type":"function (uint256,uint256,uint256) pure","value":"memcpy"},"id":6438,"name":"Identifier","src":"25689:6:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6424,"type":"uint256","value":"retptr"},"id":6439,"name":"Identifier","src":"25696:6:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":4795,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct strings.slice memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6374,"type":"struct strings.slice memory[] memory","value":"parts"},"id":6440,"name":"Identifier","src":"25704:5:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6398,"type":"uint256","value":"i"},"id":6441,"name":"Identifier","src":"25710:1:5"}],"id":6442,"name":"IndexAccess","src":"25704:8:5"}],"id":6443,"name":"MemberAccess","src":"25704:13:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4793,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct strings.slice memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6374,"type":"struct strings.slice memory[] memory","value":"parts"},"id":6444,"name":"Identifier","src":"25719:5:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6398,"type":"uint256","value":"i"},"id":6445,"name":"Identifier","src":"25725:1:5"}],"id":6446,"name":"IndexAccess","src":"25719:8:5"}],"id":6447,"name":"MemberAccess","src":"25719:13:5"}],"id":6448,"name":"FunctionCall","src":"25689:44:5"}],"id":6449,"name":"ExpressionStatement","src":"25689:44:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6424,"type":"uint256","value":"retptr"},"id":6450,"name":"Identifier","src":"25747:6:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4793,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct strings.slice memory"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6374,"type":"struct strings.slice memory[] memory","value":"parts"},"id":6451,"name":"Identifier","src":"25757:5:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6398,"type":"uint256","value":"i"},"id":6452,"name":"Identifier","src":"25763:1:5"}],"id":6453,"name":"IndexAccess","src":"25757:8:5"}],"id":6454,"name":"MemberAccess","src":"25757:13:5"}],"id":6455,"name":"Assignment","src":"25747:23:5"}],"id":6456,"name":"ExpressionStatement","src":"25747:23:5"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6398,"type":"uint256","value":"i"},"id":6457,"name":"Identifier","src":"25788:1:5"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6374,"type":"struct strings.slice memory[] memory","value":"parts"},"id":6458,"name":"Identifier","src":"25792:5:5"}],"id":6459,"name":"MemberAccess","src":"25792:12:5"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":6460,"name":"Literal","src":"25807:1:5"}],"id":6461,"name":"BinaryOperation","src":"25792:16:5"}],"id":6462,"name":"BinaryOperation","src":"25788:20:5"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":4836,"type":"function (uint256,uint256,uint256) pure","value":"memcpy"},"id":6463,"name":"Identifier","src":"25828:6:5"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6424,"type":"uint256","value":"retptr"},"id":6464,"name":"Identifier","src":"25835:6:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_ptr","referencedDeclaration":4795,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6371,"type":"struct strings.slice memory","value":"self"},"id":6465,"name":"Identifier","src":"25843:4:5"}],"id":6466,"name":"MemberAccess","src":"25843:9:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4793,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6371,"type":"struct strings.slice memory","value":"self"},"id":6467,"name":"Identifier","src":"25854:4:5"}],"id":6468,"name":"MemberAccess","src":"25854:9:5"}],"id":6469,"name":"FunctionCall","src":"25828:36:5"}],"id":6470,"name":"ExpressionStatement","src":"25828:36:5"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6424,"type":"uint256","value":"retptr"},"id":6471,"name":"Identifier","src":"25882:6:5"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"_len","referencedDeclaration":4793,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6371,"type":"struct strings.slice memory","value":"self"},"id":6472,"name":"Identifier","src":"25892:4:5"}],"id":6473,"name":"MemberAccess","src":"25892:9:5"}],"id":6474,"name":"Assignment","src":"25882:19:5"}],"id":6475,"name":"ExpressionStatement","src":"25882:19:5"}],"id":6476,"name":"Block","src":"25810:106:5"}],"id":6477,"name":"IfStatement","src":"25784:132:5"}],"id":6478,"name":"Block","src":"25675:251:5"}],"id":6479,"name":"ForStatement","src":"25641:285:5"},{"attributes":{"functionReturnParameters":6378},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6417,"type":"string memory","value":"ret"},"id":6480,"name":"Identifier","src":"25943:3:5"}],"id":6481,"name":"Return","src":"25936:10:5"}],"id":6482,"name":"Block","src":"25323:630:5"}],"id":6483,"name":"FunctionDefinition","src":"25230:723:5"}],"id":6484,"name":"ContractDefinition","src":"2600:23355:5"}],"id":6485,"name":"SourceUnit","src":"2574:23382:5"}},"internals/claimable.sol":{"AST":{"attributes":{"absolutePath":"internals/claimable.sol","exportedSymbols":{"Claimable":[4789]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".25"]},"id":4738,"name":"PragmaDirective","src":"769:24:6"},{"attributes":{"SourceUnit":2092,"absolutePath":"externals/ERC20.sol","file":"../externals/ERC20.sol","scope":4790,"symbolAliases":[null],"unitAlias":""},"id":4739,"name":"ImportDirective","src":"795:32:6"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"contract","documentation":"@title Claimable, allowing contract to withdraw tokens accidentally sent to itself","fullyImplemented":true,"linearizedBaseContracts":[4789],"name":"Claimable","scope":4790},"children":[{"attributes":{"anonymous":false,"documentation":null,"name":"Claimed"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_to","scope":4747,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":4740,"name":"ElementaryTypeName","src":"957:7:6"}],"id":4741,"name":"VariableDeclaration","src":"957:11:6"},{"attributes":{"constant":false,"indexed":false,"name":"_asset","scope":4747,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":4742,"name":"ElementaryTypeName","src":"970:7:6"}],"id":4743,"name":"VariableDeclaration","src":"970:14:6"},{"attributes":{"constant":false,"indexed":false,"name":"_amount","scope":4747,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4744,"name":"ElementaryTypeName","src":"986:4:6"}],"id":4745,"name":"VariableDeclaration","src":"986:12:6"}],"id":4746,"name":"ParameterList","src":"956:43:6"}],"id":4747,"name":"EventDefinition","src":"943:57:6"},{"attributes":{"constant":false,"documentation":"@dev This function is used to move tokens sent accidentally to this contract method.\n @dev The owner can chose the new destination address\n @param _to is the recipient's address.\n @param _asset is the address of an ERC20 token or 0x0 for ether.\n @param _amount is the amount to be transferred in base units.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_claim","payable":false,"scope":4789,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_to","scope":4788,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":4748,"name":"ElementaryTypeName","src":"1366:7:6"}],"id":4749,"name":"VariableDeclaration","src":"1366:11:6"},{"attributes":{"constant":false,"name":"_asset","scope":4788,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":4750,"name":"ElementaryTypeName","src":"1379:7:6"}],"id":4751,"name":"VariableDeclaration","src":"1379:14:6"},{"attributes":{"constant":false,"name":"_amount","scope":4788,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4752,"name":"ElementaryTypeName","src":"1395:4:6"}],"id":4753,"name":"VariableDeclaration","src":"1395:12:6"}],"id":4754,"name":"ParameterList","src":"1365:43:6"},{"attributes":{"parameters":[null]},"children":[],"id":4755,"name":"ParameterList","src":"1418:0:6"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4751,"type":"address","value":"_asset"},"id":4756,"name":"Identifier","src":"1476:6:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":4757,"name":"ElementaryTypeNameExpression","src":"1486:7:6"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4758,"name":"Literal","src":"1494:1:6"}],"id":4759,"name":"FunctionCall","src":"1486:10:6"}],"id":4760,"name":"BinaryOperation","src":"1476:20:6"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"transfer","referencedDeclaration":null,"type":"function (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4749,"type":"address","value":"_to"},"id":4761,"name":"Identifier","src":"1512:3:6"}],"id":4763,"name":"MemberAccess","src":"1512:12:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4753,"type":"uint256","value":"_amount"},"id":4764,"name":"Identifier","src":"1525:7:6"}],"id":4765,"name":"FunctionCall","src":"1512:21:6"}],"id":4766,"name":"ExpressionStatement","src":"1512:21:6"}],"id":4767,"name":"Block","src":"1498:46:6"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_bebbba0e3133c903fb13ff92bbd373380a11a38636d3fcb2a56e9eeaa3171b67","typeString":"literal_string \"ERC20 token transfer was unsuccessful\""}],"overloadedDeclarations":[6502,6503],"referencedDeclaration":6503,"type":"function (bool,string memory) pure","value":"require"},"id":4768,"name":"Identifier","src":"1564:7:6"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"transfer","referencedDeclaration":2079,"type":"function (address,uint256) external returns (bool)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract ERC20","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2091,"type":"type(contract ERC20)","value":"ERC20"},"id":4769,"name":"Identifier","src":"1572:5:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4751,"type":"address","value":"_asset"},"id":4770,"name":"Identifier","src":"1578:6:6"}],"id":4771,"name":"FunctionCall","src":"1572:13:6"}],"id":4772,"name":"MemberAccess","src":"1572:22:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4749,"type":"address","value":"_to"},"id":4773,"name":"Identifier","src":"1595:3:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4753,"type":"uint256","value":"_amount"},"id":4774,"name":"Identifier","src":"1600:7:6"}],"id":4775,"name":"FunctionCall","src":"1572:36:6"},{"attributes":{"argumentTypes":null,"hexvalue":"455243323020746f6b656e207472616e736665722077617320756e7375636365737366756c","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"ERC20 token transfer was unsuccessful\"","value":"ERC20 token transfer was unsuccessful"},"id":4776,"name":"Literal","src":"1610:39:6"}],"id":4777,"name":"FunctionCall","src":"1564:86:6"}],"id":4778,"name":"ExpressionStatement","src":"1564:86:6"}],"id":4779,"name":"Block","src":"1550:111:6"}],"id":4780,"name":"IfStatement","src":"1472:189:6"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":4747,"type":"function (address,address,uint256)","value":"Claimed"},"id":4781,"name":"Identifier","src":"1676:7:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4749,"type":"address","value":"_to"},"id":4782,"name":"Identifier","src":"1684:3:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4751,"type":"address","value":"_asset"},"id":4783,"name":"Identifier","src":"1689:6:6"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4753,"type":"uint256","value":"_amount"},"id":4784,"name":"Identifier","src":"1697:7:6"}],"id":4785,"name":"FunctionCall","src":"1676:29:6"}],"id":4786,"name":"EmitStatement","src":"1671:34:6"}],"id":4787,"name":"Block","src":"1418:294:6"}],"id":4788,"name":"FunctionDefinition","src":"1350:362:6"}],"id":4789,"name":"ContractDefinition","src":"917:797:6"}],"id":4790,"name":"SourceUnit","src":"769:946:6"}},"internals/controllable.sol":{"AST":{"attributes":{"absolutePath":"internals/controllable.sol","exportedSymbols":{"Controllable":[2275]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".25"]},"id":2221,"name":"PragmaDirective","src":"772:24:7"},{"attributes":{"SourceUnit":3572,"absolutePath":"internals/controller.sol","file":"./controller.sol","scope":2276,"symbolAliases":[null],"unitAlias":""},"id":2222,"name":"ImportDirective","src":"798:26:7"},{"attributes":{"SourceUnit":2327,"absolutePath":"internals/ensResolvable.sol","file":"../internals/ensResolvable.sol","scope":2276,"symbolAliases":[null],"unitAlias":""},"id":2223,"name":"ImportDirective","src":"825:40:7"},{"attributes":{"contractDependencies":[2326],"contractKind":"contract","documentation":"@title Controllable implements access control functionality of the Controller found via ENS.","fullyImplemented":false,"linearizedBaseContracts":[2275,2326],"name":"Controllable","scope":2276},"children":[{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"ENSResolvable","referencedDeclaration":2326,"type":"contract ENSResolvable"},"id":2224,"name":"UserDefinedTypeName","src":"990:13:7"}],"id":2225,"name":"InheritanceSpecifier","src":"990:13:7"},{"attributes":{"constant":false,"name":"_controllerNode","scope":2275,"stateVariable":true,"storageLocation":"default","type":"bytes32","value":null,"visibility":"private"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":2226,"name":"ElementaryTypeName","src":"1087:7:7"}],"id":2227,"name":"VariableDeclaration","src":"1087:31:7"},{"attributes":{"constant":false,"documentation":"@notice Constructor initializes the controller contract object.\n @param _controllerNameHash_ is the ENS name hash of the Controller.","implemented":true,"isConstructor":true,"modifiers":[null],"name":"","payable":false,"scope":2275,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_controllerNameHash_","scope":2237,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":2228,"name":"ElementaryTypeName","src":"1285:7:7"}],"id":2229,"name":"VariableDeclaration","src":"1285:28:7"}],"id":2230,"name":"ParameterList","src":"1284:30:7"},{"attributes":{"parameters":[null]},"children":[],"id":2231,"name":"ParameterList","src":"1324:0:7"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2227,"type":"bytes32","value":"_controllerNode"},"id":2232,"name":"Identifier","src":"1334:15:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2229,"type":"bytes32","value":"_controllerNameHash_"},"id":2233,"name":"Identifier","src":"1352:20:7"}],"id":2234,"name":"Assignment","src":"1334:38:7"}],"id":2235,"name":"ExpressionStatement","src":"1334:38:7"}],"id":2236,"name":"Block","src":"1324:55:7"}],"id":2237,"name":"FunctionDefinition","src":"1273:106:7"},{"attributes":{"documentation":"@notice Checks if message sender is the controller.","name":"onlyController","visibility":"internal"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":2238,"name":"ParameterList","src":"1468:2:7"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_918bc5a096178f6e8c423f958a6008c4b24fd25b7a3ca0123b85463c61a2e566","typeString":"literal_string \"sender is not a controller\""}],"overloadedDeclarations":[6502,6503],"referencedDeclaration":6503,"type":"function (bool,string memory) pure","value":"require"},"id":2239,"name":"Identifier","src":"1481:7:7"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2274,"type":"function (address) view returns (bool)","value":"_isController"},"id":2240,"name":"Identifier","src":"1489:13:7"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6499,"type":"msg","value":"msg"},"id":2241,"name":"Identifier","src":"1503:3:7"}],"id":2242,"name":"MemberAccess","src":"1503:10:7"}],"id":2243,"name":"FunctionCall","src":"1489:25:7"},{"attributes":{"argumentTypes":null,"hexvalue":"73656e646572206973206e6f74206120636f6e74726f6c6c6572","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"sender is not a controller\"","value":"sender is not a controller"},"id":2244,"name":"Literal","src":"1516:28:7"}],"id":2245,"name":"FunctionCall","src":"1481:64:7"}],"id":2246,"name":"ExpressionStatement","src":"1481:64:7"},{"id":2247,"name":"PlaceholderStatement","src":"1555:1:7"}],"id":2248,"name":"Block","src":"1471:92:7"}],"id":2249,"name":"ModifierDefinition","src":"1445:118:7"},{"attributes":{"constant":true,"documentation":"@return the controller name hash registered in ENS.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"controllerNode","payable":false,"scope":2275,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":2250,"name":"ParameterList","src":"1652:2:7"},{"children":[{"attributes":{"constant":false,"name":"","scope":2257,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":2251,"name":"ElementaryTypeName","src":"1678:7:7"}],"id":2252,"name":"VariableDeclaration","src":"1678:7:7"}],"id":2253,"name":"ParameterList","src":"1677:9:7"},{"children":[{"attributes":{"functionReturnParameters":2253},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2227,"type":"bytes32","value":"_controllerNode"},"id":2254,"name":"Identifier","src":"1704:15:7"}],"id":2255,"name":"Return","src":"1697:22:7"}],"id":2256,"name":"Block","src":"1687:39:7"}],"id":2257,"name":"FunctionDefinition","src":"1629:97:7"},{"attributes":{"constant":true,"documentation":"@return true if the provided account is the controller.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_isController","payable":false,"scope":2275,"stateMutability":"view","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":2274,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2258,"name":"ElementaryTypeName","src":"1819:7:7"}],"id":2259,"name":"VariableDeclaration","src":"1819:16:7"}],"id":2260,"name":"ParameterList","src":"1818:18:7"},{"children":[{"attributes":{"constant":false,"name":"","scope":2274,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2261,"name":"ElementaryTypeName","src":"1860:4:7"}],"id":2262,"name":"VariableDeclaration","src":"1860:4:7"}],"id":2263,"name":"ParameterList","src":"1859:6:7"},{"children":[{"attributes":{"functionReturnParameters":2263},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"isController","referencedDeclaration":3221,"type":"function (address) view external returns (bool)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract IController","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":3222,"type":"type(contract IController)","value":"IController"},"id":2264,"name":"Identifier","src":"1883:11:7"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[null],"referencedDeclaration":2325,"type":"function (bytes32) view returns (address)","value":"_ensResolve"},"id":2265,"name":"Identifier","src":"1895:11:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2227,"type":"bytes32","value":"_controllerNode"},"id":2266,"name":"Identifier","src":"1907:15:7"}],"id":2267,"name":"FunctionCall","src":"1895:28:7"}],"id":2268,"name":"FunctionCall","src":"1883:41:7"}],"id":2269,"name":"MemberAccess","src":"1883:54:7"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2259,"type":"address","value":"_account"},"id":2270,"name":"Identifier","src":"1938:8:7"}],"id":2271,"name":"FunctionCall","src":"1883:64:7"}],"id":2272,"name":"Return","src":"1876:71:7"}],"id":2273,"name":"Block","src":"1866:88:7"}],"id":2274,"name":"FunctionDefinition","src":"1796:158:7"}],"id":2275,"name":"ContractDefinition","src":"965:992:7"}],"id":2276,"name":"SourceUnit","src":"772:1186:7"}},"internals/controller.sol":{"AST":{"attributes":{"absolutePath":"internals/controller.sol","exportedSymbols":{"Controller":[3571],"IController":[3222]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".25"]},"id":3212,"name":"PragmaDirective","src":"770:24:8"},{"attributes":{"SourceUnit":2484,"absolutePath":"internals/ownable.sol","file":"./ownable.sol","scope":3572,"symbolAliases":[null],"unitAlias":""},"id":3213,"name":"ImportDirective","src":"796:23:8"},{"attributes":{"SourceUnit":4790,"absolutePath":"internals/claimable.sol","file":"./claimable.sol","scope":3572,"symbolAliases":[null],"unitAlias":""},"id":3214,"name":"ImportDirective","src":"820:25:8"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"interface","documentation":"@title The IController interface provides access to the isController check.","fullyImplemented":false,"linearizedBaseContracts":[3222],"name":"IController","scope":3572},"children":[{"attributes":{"body":null,"constant":true,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"isController","payable":false,"scope":3222,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"","scope":3221,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3215,"name":"ElementaryTypeName","src":"977:7:8"}],"id":3216,"name":"VariableDeclaration","src":"977:7:8"}],"id":3217,"name":"ParameterList","src":"976:9:8"},{"children":[{"attributes":{"constant":false,"name":"","scope":3221,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":3218,"name":"ElementaryTypeName","src":"1009:4:8"}],"id":3219,"name":"VariableDeclaration","src":"1009:4:8"}],"id":3220,"name":"ParameterList","src":"1008:6:8"}],"id":3221,"name":"FunctionDefinition","src":"955:60:8"}],"id":3222,"name":"ContractDefinition","src":"927:90:8"},{"attributes":{"contractDependencies":[2483,3222,4789],"contractKind":"contract","documentation":"@title Controller stores a list of controller addresses that can be used for authentication in other contracts.\n @notice The Controller implements a hierarchy of concepts, Owner, Admin, and the Controllers.\n @dev Owner can change the Admins\n @dev Admins and can the Controllers\n @dev Controllers are used by the application.","fullyImplemented":true,"linearizedBaseContracts":[3571,4789,2483,3222],"name":"Controller","scope":3572},"children":[{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"IController","referencedDeclaration":3222,"type":"contract IController"},"id":3223,"name":"UserDefinedTypeName","src":"1384:11:8"}],"id":3224,"name":"InheritanceSpecifier","src":"1384:11:8"},{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"Ownable","referencedDeclaration":2483,"type":"contract Ownable"},"id":3225,"name":"UserDefinedTypeName","src":"1397:7:8"}],"id":3226,"name":"InheritanceSpecifier","src":"1397:7:8"},{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"Claimable","referencedDeclaration":4789,"type":"contract Claimable"},"id":3227,"name":"UserDefinedTypeName","src":"1406:9:8"}],"id":3228,"name":"InheritanceSpecifier","src":"1406:9:8"},{"attributes":{"anonymous":false,"documentation":null,"name":"AddedController"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_sender","scope":3234,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3229,"name":"ElementaryTypeName","src":"1445:7:8"}],"id":3230,"name":"VariableDeclaration","src":"1445:15:8"},{"attributes":{"constant":false,"indexed":false,"name":"_controller","scope":3234,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3231,"name":"ElementaryTypeName","src":"1462:7:8"}],"id":3232,"name":"VariableDeclaration","src":"1462:19:8"}],"id":3233,"name":"ParameterList","src":"1444:38:8"}],"id":3234,"name":"EventDefinition","src":"1423:60:8"},{"attributes":{"anonymous":false,"documentation":null,"name":"RemovedController"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_sender","scope":3240,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3235,"name":"ElementaryTypeName","src":"1512:7:8"}],"id":3236,"name":"VariableDeclaration","src":"1512:15:8"},{"attributes":{"constant":false,"indexed":false,"name":"_controller","scope":3240,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3237,"name":"ElementaryTypeName","src":"1529:7:8"}],"id":3238,"name":"VariableDeclaration","src":"1529:19:8"}],"id":3239,"name":"ParameterList","src":"1511:38:8"}],"id":3240,"name":"EventDefinition","src":"1488:62:8"},{"attributes":{"anonymous":false,"documentation":null,"name":"AddedAdmin"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_sender","scope":3246,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3241,"name":"ElementaryTypeName","src":"1573:7:8"}],"id":3242,"name":"VariableDeclaration","src":"1573:15:8"},{"attributes":{"constant":false,"indexed":false,"name":"_admin","scope":3246,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3243,"name":"ElementaryTypeName","src":"1590:7:8"}],"id":3244,"name":"VariableDeclaration","src":"1590:14:8"}],"id":3245,"name":"ParameterList","src":"1572:33:8"}],"id":3246,"name":"EventDefinition","src":"1556:50:8"},{"attributes":{"anonymous":false,"documentation":null,"name":"RemovedAdmin"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_sender","scope":3252,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3247,"name":"ElementaryTypeName","src":"1630:7:8"}],"id":3248,"name":"VariableDeclaration","src":"1630:15:8"},{"attributes":{"constant":false,"indexed":false,"name":"_admin","scope":3252,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3249,"name":"ElementaryTypeName","src":"1647:7:8"}],"id":3250,"name":"VariableDeclaration","src":"1647:14:8"}],"id":3251,"name":"ParameterList","src":"1629:33:8"}],"id":3252,"name":"EventDefinition","src":"1611:52:8"},{"attributes":{"constant":false,"name":"_isAdmin","scope":3571,"stateVariable":true,"storageLocation":"default","type":"mapping(address => bool)","value":null,"visibility":"private"},"children":[{"attributes":{"type":"mapping(address => bool)"},"children":[{"attributes":{"name":"address","type":"address"},"id":3253,"name":"ElementaryTypeName","src":"1678:7:8"},{"attributes":{"name":"bool","type":"bool"},"id":3254,"name":"ElementaryTypeName","src":"1689:4:8"}],"id":3255,"name":"Mapping","src":"1669:25:8"}],"id":3256,"name":"VariableDeclaration","src":"1669:42:8"},{"attributes":{"constant":false,"name":"_adminCount","scope":3571,"stateVariable":true,"storageLocation":"default","type":"uint256","value":null,"visibility":"private"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":3257,"name":"ElementaryTypeName","src":"1717:4:8"}],"id":3258,"name":"VariableDeclaration","src":"1717:24:8"},{"attributes":{"constant":false,"name":"_isController","scope":3571,"stateVariable":true,"storageLocation":"default","type":"mapping(address => bool)","value":null,"visibility":"private"},"children":[{"attributes":{"type":"mapping(address => bool)"},"children":[{"attributes":{"name":"address","type":"address"},"id":3259,"name":"ElementaryTypeName","src":"1757:7:8"},{"attributes":{"name":"bool","type":"bool"},"id":3260,"name":"ElementaryTypeName","src":"1768:4:8"}],"id":3261,"name":"Mapping","src":"1748:25:8"}],"id":3262,"name":"VariableDeclaration","src":"1748:47:8"},{"attributes":{"constant":false,"name":"_controllerCount","scope":3571,"stateVariable":true,"storageLocation":"default","type":"uint256","value":null,"visibility":"private"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":3263,"name":"ElementaryTypeName","src":"1801:4:8"}],"id":3264,"name":"VariableDeclaration","src":"1801:29:8"},{"attributes":{"constant":false,"documentation":"@notice Constructor initializes the owner with the provided address.\n @param _ownerAddress_ address of the owner.\n @param _transferable_ indicates whether the contract ownership can be transferred.","implemented":true,"isConstructor":true,"name":"","payable":false,"scope":3571,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"_ownerAddress_","scope":3276,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3265,"name":"ElementaryTypeName","src":"2069:7:8"}],"id":3266,"name":"VariableDeclaration","src":"2069:22:8"},{"attributes":{"constant":false,"name":"_transferable_","scope":3276,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":3267,"name":"ElementaryTypeName","src":"2093:4:8"}],"id":3268,"name":"VariableDeclaration","src":"2093:19:8"}],"id":3269,"name":"ParameterList","src":"2068:45:8"},{"attributes":{"parameters":[null]},"children":[],"id":3274,"name":"ParameterList","src":"2161:0:8"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2483,"type":"type(contract Ownable)","value":"Ownable"},"id":3270,"name":"Identifier","src":"2114:7:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3266,"type":"address","value":"_ownerAddress_"},"id":3271,"name":"Identifier","src":"2122:14:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3268,"type":"bool","value":"_transferable_"},"id":3272,"name":"Identifier","src":"2138:14:8"}],"id":3273,"name":"ModifierInvocation","src":"2114:39:8"},{"attributes":{"statements":[null]},"children":[],"id":3275,"name":"Block","src":"2161:3:8"}],"id":3276,"name":"FunctionDefinition","src":"2057:107:8"},{"attributes":{"documentation":"@notice Checks if message sender is an admin.","name":"onlyAdmin","visibility":"internal"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":3277,"name":"ParameterList","src":"2242:2:8"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_156cbb05733026f4aa0b363c6a3be5f21b7ab8f248a865cc639a4d928ddeabb8","typeString":"literal_string \"sender is not an admin\""}],"overloadedDeclarations":[6502,6503],"referencedDeclaration":6503,"type":"function (bool,string memory) pure","value":"require"},"id":3278,"name":"Identifier","src":"2255:7:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":3376,"type":"function (address) view returns (bool)","value":"isAdmin"},"id":3279,"name":"Identifier","src":"2263:7:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6499,"type":"msg","value":"msg"},"id":3280,"name":"Identifier","src":"2271:3:8"}],"id":3281,"name":"MemberAccess","src":"2271:10:8"}],"id":3282,"name":"FunctionCall","src":"2263:19:8"},{"attributes":{"argumentTypes":null,"hexvalue":"73656e646572206973206e6f7420616e2061646d696e","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"sender is not an admin\"","value":"sender is not an admin"},"id":3283,"name":"Literal","src":"2284:24:8"}],"id":3284,"name":"FunctionCall","src":"2255:54:8"}],"id":3285,"name":"ExpressionStatement","src":"2255:54:8"},{"id":3286,"name":"PlaceholderStatement","src":"2319:1:8"}],"id":3287,"name":"Block","src":"2245:82:8"}],"id":3288,"name":"ModifierDefinition","src":"2224:103:8"},{"attributes":{"documentation":"@notice Checks if message sender is a controller.","name":"onlyController","visibility":"internal"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":3289,"name":"ParameterList","src":"2414:2:8"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_918bc5a096178f6e8c423f958a6008c4b24fd25b7a3ca0123b85463c61a2e566","typeString":"literal_string \"sender is not a controller\""}],"overloadedDeclarations":[6502,6503],"referencedDeclaration":6503,"type":"function (bool,string memory) pure","value":"require"},"id":3290,"name":"Identifier","src":"2427:7:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":3388,"type":"function (address) view returns (bool)","value":"isController"},"id":3291,"name":"Identifier","src":"2435:12:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6499,"type":"msg","value":"msg"},"id":3292,"name":"Identifier","src":"2448:3:8"}],"id":3293,"name":"MemberAccess","src":"2448:10:8"}],"id":3294,"name":"FunctionCall","src":"2435:24:8"},{"attributes":{"argumentTypes":null,"hexvalue":"73656e646572206973206e6f74206120636f6e74726f6c6c6572","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"sender is not a controller\"","value":"sender is not a controller"},"id":3295,"name":"Literal","src":"2461:28:8"}],"id":3296,"name":"FunctionCall","src":"2427:63:8"}],"id":3297,"name":"ExpressionStatement","src":"2427:63:8"},{"id":3298,"name":"PlaceholderStatement","src":"2500:1:8"}],"id":3299,"name":"Block","src":"2417:91:8"}],"id":3300,"name":"ModifierDefinition","src":"2391:117:8"},{"attributes":{"constant":false,"documentation":"@notice Add a new admin to the list of admins.\n @param _account address to add to the list of admins.","implemented":true,"isConstructor":false,"name":"addAdmin","payable":false,"scope":3571,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":3312,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3301,"name":"ElementaryTypeName","src":"2649:7:8"}],"id":3302,"name":"VariableDeclaration","src":"2649:16:8"}],"id":3303,"name":"ParameterList","src":"2648:18:8"},{"attributes":{"parameters":[null]},"children":[],"id":3306,"name":"ParameterList","src":"2686:0:8"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2385,"type":"modifier ()","value":"onlyOwner"},"id":3304,"name":"Identifier","src":"2676:9:8"}],"id":3305,"name":"ModifierInvocation","src":"2676:9:8"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":3442,"type":"function (address)","value":"_addAdmin"},"id":3307,"name":"Identifier","src":"2696:9:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3302,"type":"address","value":"_account"},"id":3308,"name":"Identifier","src":"2706:8:8"}],"id":3309,"name":"FunctionCall","src":"2696:19:8"}],"id":3310,"name":"ExpressionStatement","src":"2696:19:8"}],"id":3311,"name":"Block","src":"2686:36:8"}],"id":3312,"name":"FunctionDefinition","src":"2631:91:8"},{"attributes":{"constant":false,"documentation":"@notice Remove a admin from the list of admins.\n @param _account address to remove from the list of admins.","implemented":true,"isConstructor":false,"name":"removeAdmin","payable":false,"scope":3571,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":3324,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3313,"name":"ElementaryTypeName","src":"2872:7:8"}],"id":3314,"name":"VariableDeclaration","src":"2872:16:8"}],"id":3315,"name":"ParameterList","src":"2871:18:8"},{"attributes":{"parameters":[null]},"children":[],"id":3318,"name":"ParameterList","src":"2909:0:8"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2385,"type":"modifier ()","value":"onlyOwner"},"id":3316,"name":"Identifier","src":"2899:9:8"}],"id":3317,"name":"ModifierInvocation","src":"2899:9:8"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":3470,"type":"function (address)","value":"_removeAdmin"},"id":3319,"name":"Identifier","src":"2919:12:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3314,"type":"address","value":"_account"},"id":3320,"name":"Identifier","src":"2932:8:8"}],"id":3321,"name":"FunctionCall","src":"2919:22:8"}],"id":3322,"name":"ExpressionStatement","src":"2919:22:8"}],"id":3323,"name":"Block","src":"2909:39:8"}],"id":3324,"name":"FunctionDefinition","src":"2851:97:8"},{"attributes":{"constant":true,"documentation":"@return the current number of admins.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"adminCount","payable":false,"scope":3571,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":3325,"name":"ParameterList","src":"3019:2:8"},{"children":[{"attributes":{"constant":false,"name":"","scope":3332,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":3326,"name":"ElementaryTypeName","src":"3045:4:8"}],"id":3327,"name":"VariableDeclaration","src":"3045:4:8"}],"id":3328,"name":"ParameterList","src":"3044:6:8"},{"children":[{"attributes":{"functionReturnParameters":3328},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3258,"type":"uint256","value":"_adminCount"},"id":3329,"name":"Identifier","src":"3068:11:8"}],"id":3330,"name":"Return","src":"3061:18:8"}],"id":3331,"name":"Block","src":"3051:35:8"}],"id":3332,"name":"FunctionDefinition","src":"3000:86:8"},{"attributes":{"constant":false,"documentation":"@notice Add a new controller to the list of controllers.\n @param _account address to add to the list of controllers.","implemented":true,"isConstructor":false,"name":"addController","payable":false,"scope":3571,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":3344,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3333,"name":"ElementaryTypeName","src":"3247:7:8"}],"id":3334,"name":"VariableDeclaration","src":"3247:16:8"}],"id":3335,"name":"ParameterList","src":"3246:18:8"},{"attributes":{"parameters":[null]},"children":[],"id":3338,"name":"ParameterList","src":"3284:0:8"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3288,"type":"modifier ()","value":"onlyAdmin"},"id":3336,"name":"Identifier","src":"3274:9:8"}],"id":3337,"name":"ModifierInvocation","src":"3274:9:8"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":3524,"type":"function (address)","value":"_addController"},"id":3339,"name":"Identifier","src":"3294:14:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3334,"type":"address","value":"_account"},"id":3340,"name":"Identifier","src":"3309:8:8"}],"id":3341,"name":"FunctionCall","src":"3294:24:8"}],"id":3342,"name":"ExpressionStatement","src":"3294:24:8"}],"id":3343,"name":"Block","src":"3284:41:8"}],"id":3344,"name":"FunctionDefinition","src":"3224:101:8"},{"attributes":{"constant":false,"documentation":"@notice Remove a controller from the list of controllers.\n @param _account address to remove from the list of controllers.","implemented":true,"isConstructor":false,"name":"removeController","payable":false,"scope":3571,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":3356,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3345,"name":"ElementaryTypeName","src":"3495:7:8"}],"id":3346,"name":"VariableDeclaration","src":"3495:16:8"}],"id":3347,"name":"ParameterList","src":"3494:18:8"},{"attributes":{"parameters":[null]},"children":[],"id":3350,"name":"ParameterList","src":"3532:0:8"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3288,"type":"modifier ()","value":"onlyAdmin"},"id":3348,"name":"Identifier","src":"3522:9:8"}],"id":3349,"name":"ModifierInvocation","src":"3522:9:8"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":3552,"type":"function (address)","value":"_removeController"},"id":3351,"name":"Identifier","src":"3542:17:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3346,"type":"address","value":"_account"},"id":3352,"name":"Identifier","src":"3560:8:8"}],"id":3353,"name":"FunctionCall","src":"3542:27:8"}],"id":3354,"name":"ExpressionStatement","src":"3542:27:8"}],"id":3355,"name":"Block","src":"3532:44:8"}],"id":3356,"name":"FunctionDefinition","src":"3469:107:8"},{"attributes":{"constant":true,"documentation":"@notice count the Controllers\n @return the current number of controllers.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"controllerCount","payable":false,"scope":3571,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":3357,"name":"ParameterList","src":"3695:2:8"},{"children":[{"attributes":{"constant":false,"name":"","scope":3364,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":3358,"name":"ElementaryTypeName","src":"3721:4:8"}],"id":3359,"name":"VariableDeclaration","src":"3721:4:8"}],"id":3360,"name":"ParameterList","src":"3720:6:8"},{"children":[{"attributes":{"functionReturnParameters":3360},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3264,"type":"uint256","value":"_controllerCount"},"id":3361,"name":"Identifier","src":"3744:16:8"}],"id":3362,"name":"Return","src":"3737:23:8"}],"id":3363,"name":"Block","src":"3727:40:8"}],"id":3364,"name":"FunctionDefinition","src":"3671:96:8"},{"attributes":{"constant":true,"documentation":"@notice is an address an Admin?\n @return true if the provided account is an admin.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"isAdmin","payable":false,"scope":3571,"stateMutability":"view","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":3376,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3365,"name":"ElementaryTypeName","src":"3888:7:8"}],"id":3366,"name":"VariableDeclaration","src":"3888:16:8"}],"id":3367,"name":"ParameterList","src":"3887:18:8"},{"children":[{"attributes":{"constant":false,"name":"","scope":3376,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":3368,"name":"ElementaryTypeName","src":"3927:4:8"}],"id":3369,"name":"VariableDeclaration","src":"3927:4:8"}],"id":3370,"name":"ParameterList","src":"3926:6:8"},{"children":[{"attributes":{"functionReturnParameters":3370},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3256,"type":"mapping(address => bool)","value":"_isAdmin"},"id":3371,"name":"Identifier","src":"3950:8:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3366,"type":"address","value":"_account"},"id":3372,"name":"Identifier","src":"3959:8:8"}],"id":3373,"name":"IndexAccess","src":"3950:18:8"}],"id":3374,"name":"Return","src":"3943:25:8"}],"id":3375,"name":"Block","src":"3933:42:8"}],"id":3376,"name":"FunctionDefinition","src":"3871:104:8"},{"attributes":{"constant":true,"documentation":"@notice is an address a Controller?\n @return true if the provided account is a controller.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"isController","payable":false,"scope":3571,"stateMutability":"view","superFunction":3221,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":3388,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3377,"name":"ElementaryTypeName","src":"4109:7:8"}],"id":3378,"name":"VariableDeclaration","src":"4109:16:8"}],"id":3379,"name":"ParameterList","src":"4108:18:8"},{"children":[{"attributes":{"constant":false,"name":"","scope":3388,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":3380,"name":"ElementaryTypeName","src":"4148:4:8"}],"id":3381,"name":"VariableDeclaration","src":"4148:4:8"}],"id":3382,"name":"ParameterList","src":"4147:6:8"},{"children":[{"attributes":{"functionReturnParameters":3382},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3262,"type":"mapping(address => bool)","value":"_isController"},"id":3383,"name":"Identifier","src":"4171:13:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3378,"type":"address","value":"_account"},"id":3384,"name":"Identifier","src":"4185:8:8"}],"id":3385,"name":"IndexAccess","src":"4171:23:8"}],"id":3386,"name":"Return","src":"4164:30:8"}],"id":3387,"name":"Block","src":"4154:47:8"}],"id":3388,"name":"FunctionDefinition","src":"4087:114:8"},{"attributes":{"constant":false,"documentation":"@notice Internal-only function that adds a new admin.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_addAdmin","payable":false,"scope":3571,"stateMutability":"nonpayable","superFunction":null,"visibility":"private"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":3442,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3389,"name":"ElementaryTypeName","src":"4288:7:8"}],"id":3390,"name":"VariableDeclaration","src":"4288:16:8"}],"id":3391,"name":"ParameterList","src":"4287:18:8"},{"attributes":{"parameters":[null]},"children":[],"id":3392,"name":"ParameterList","src":"4314:0:8"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_491ef411eef1615ecf908753bd22ae846aac933d79b0327335a18e3988db6215","typeString":"literal_string \"provided account is already an admin\""}],"overloadedDeclarations":[6502,6503],"referencedDeclaration":6503,"type":"function (bool,string memory) pure","value":"require"},"id":3393,"name":"Identifier","src":"4324:7:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3256,"type":"mapping(address => bool)","value":"_isAdmin"},"id":3394,"name":"Identifier","src":"4333:8:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3390,"type":"address","value":"_account"},"id":3395,"name":"Identifier","src":"4342:8:8"}],"id":3396,"name":"IndexAccess","src":"4333:18:8"}],"id":3397,"name":"UnaryOperation","src":"4332:19:8"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e7420697320616c726561647920616e2061646d696e","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is already an admin\"","value":"provided account is already an admin"},"id":3398,"name":"Literal","src":"4353:38:8"}],"id":3399,"name":"FunctionCall","src":"4324:68:8"}],"id":3400,"name":"ExpressionStatement","src":"4324:68:8"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ea5e43d1c86e3916e6efb6c5ad4a915069293195e26cfb0847e731b480c61b69","typeString":"literal_string \"provided account is already a controller\""}],"overloadedDeclarations":[6502,6503],"referencedDeclaration":6503,"type":"function (bool,string memory) pure","value":"require"},"id":3401,"name":"Identifier","src":"4402:7:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3262,"type":"mapping(address => bool)","value":"_isController"},"id":3402,"name":"Identifier","src":"4411:13:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3390,"type":"address","value":"_account"},"id":3403,"name":"Identifier","src":"4425:8:8"}],"id":3404,"name":"IndexAccess","src":"4411:23:8"}],"id":3405,"name":"UnaryOperation","src":"4410:24:8"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e7420697320616c7265616479206120636f6e74726f6c6c6572","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is already a controller\"","value":"provided account is already a controller"},"id":3406,"name":"Literal","src":"4436:42:8"}],"id":3407,"name":"FunctionCall","src":"4402:77:8"}],"id":3408,"name":"ExpressionStatement","src":"4402:77:8"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_28b510b314348cd3eee423698115cd76923e2c39fff2abeefc9606aa1cd4c741","typeString":"literal_string \"provided account is already the owner\""}],"overloadedDeclarations":[6502,6503],"referencedDeclaration":6503,"type":"function (bool,string memory) pure","value":"require"},"id":3409,"name":"Identifier","src":"4489:7:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2482,"type":"function (address) view returns (bool)","value":"_isOwner"},"id":3410,"name":"Identifier","src":"4498:8:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3390,"type":"address","value":"_account"},"id":3411,"name":"Identifier","src":"4507:8:8"}],"id":3412,"name":"FunctionCall","src":"4498:18:8"}],"id":3413,"name":"UnaryOperation","src":"4497:19:8"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e7420697320616c726561647920746865206f776e6572","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is already the owner\"","value":"provided account is already the owner"},"id":3414,"name":"Literal","src":"4518:39:8"}],"id":3415,"name":"FunctionCall","src":"4489:69:8"}],"id":3416,"name":"ExpressionStatement","src":"4489:69:8"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_da72d12cc1dab77bb87826430977e9a5d381ba54a70ad14cb2761e202f01ff3b","typeString":"literal_string \"provided account is the zero address\""}],"overloadedDeclarations":[6502,6503],"referencedDeclaration":6503,"type":"function (bool,string memory) pure","value":"require"},"id":3417,"name":"Identifier","src":"4568:7:8"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3390,"type":"address","value":"_account"},"id":3418,"name":"Identifier","src":"4576:8:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":3419,"name":"ElementaryTypeNameExpression","src":"4588:7:8"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3420,"name":"Literal","src":"4596:1:8"}],"id":3421,"name":"FunctionCall","src":"4588:10:8"}],"id":3422,"name":"BinaryOperation","src":"4576:22:8"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e7420697320746865207a65726f2061646472657373","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is the zero address\"","value":"provided account is the zero address"},"id":3423,"name":"Literal","src":"4600:38:8"}],"id":3424,"name":"FunctionCall","src":"4568:71:8"}],"id":3425,"name":"ExpressionStatement","src":"4568:71:8"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3256,"type":"mapping(address => bool)","value":"_isAdmin"},"id":3426,"name":"Identifier","src":"4649:8:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3390,"type":"address","value":"_account"},"id":3427,"name":"Identifier","src":"4658:8:8"}],"id":3428,"name":"IndexAccess","src":"4649:18:8"},{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":3429,"name":"Literal","src":"4670:4:8"}],"id":3430,"name":"Assignment","src":"4649:25:8"}],"id":3431,"name":"ExpressionStatement","src":"4649:25:8"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3258,"type":"uint256","value":"_adminCount"},"id":3432,"name":"Identifier","src":"4684:11:8"}],"id":3433,"name":"UnaryOperation","src":"4684:13:8"}],"id":3434,"name":"ExpressionStatement","src":"4684:13:8"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":3246,"type":"function (address,address)","value":"AddedAdmin"},"id":3435,"name":"Identifier","src":"4712:10:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6499,"type":"msg","value":"msg"},"id":3436,"name":"Identifier","src":"4723:3:8"}],"id":3437,"name":"MemberAccess","src":"4723:10:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3390,"type":"address","value":"_account"},"id":3438,"name":"Identifier","src":"4735:8:8"}],"id":3439,"name":"FunctionCall","src":"4712:32:8"}],"id":3440,"name":"EmitStatement","src":"4707:37:8"}],"id":3441,"name":"Block","src":"4314:437:8"}],"id":3442,"name":"FunctionDefinition","src":"4269:482:8"},{"attributes":{"constant":false,"documentation":"@notice Internal-only function that removes an existing admin.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_removeAdmin","payable":false,"scope":3571,"stateMutability":"nonpayable","superFunction":null,"visibility":"private"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":3470,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3443,"name":"ElementaryTypeName","src":"4850:7:8"}],"id":3444,"name":"VariableDeclaration","src":"4850:16:8"}],"id":3445,"name":"ParameterList","src":"4849:18:8"},{"attributes":{"parameters":[null]},"children":[],"id":3446,"name":"ParameterList","src":"4876:0:8"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1c739c60677de73f71e20970ace8544e82a98bdcd16e21df5754e7a2756cbedc","typeString":"literal_string \"provided account is not an admin\""}],"overloadedDeclarations":[6502,6503],"referencedDeclaration":6503,"type":"function (bool,string memory) pure","value":"require"},"id":3447,"name":"Identifier","src":"4886:7:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3256,"type":"mapping(address => bool)","value":"_isAdmin"},"id":3448,"name":"Identifier","src":"4894:8:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3444,"type":"address","value":"_account"},"id":3449,"name":"Identifier","src":"4903:8:8"}],"id":3450,"name":"IndexAccess","src":"4894:18:8"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e74206973206e6f7420616e2061646d696e","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is not an admin\"","value":"provided account is not an admin"},"id":3451,"name":"Literal","src":"4914:34:8"}],"id":3452,"name":"FunctionCall","src":"4886:63:8"}],"id":3453,"name":"ExpressionStatement","src":"4886:63:8"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3256,"type":"mapping(address => bool)","value":"_isAdmin"},"id":3454,"name":"Identifier","src":"4959:8:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3444,"type":"address","value":"_account"},"id":3455,"name":"Identifier","src":"4968:8:8"}],"id":3456,"name":"IndexAccess","src":"4959:18:8"},{"attributes":{"argumentTypes":null,"hexvalue":"66616c7365","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"false"},"id":3457,"name":"Literal","src":"4980:5:8"}],"id":3458,"name":"Assignment","src":"4959:26:8"}],"id":3459,"name":"ExpressionStatement","src":"4959:26:8"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"--","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3258,"type":"uint256","value":"_adminCount"},"id":3460,"name":"Identifier","src":"4995:11:8"}],"id":3461,"name":"UnaryOperation","src":"4995:13:8"}],"id":3462,"name":"ExpressionStatement","src":"4995:13:8"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":3252,"type":"function (address,address)","value":"RemovedAdmin"},"id":3463,"name":"Identifier","src":"5023:12:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6499,"type":"msg","value":"msg"},"id":3464,"name":"Identifier","src":"5036:3:8"}],"id":3465,"name":"MemberAccess","src":"5036:10:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3444,"type":"address","value":"_account"},"id":3466,"name":"Identifier","src":"5048:8:8"}],"id":3467,"name":"FunctionCall","src":"5023:34:8"}],"id":3468,"name":"EmitStatement","src":"5018:39:8"}],"id":3469,"name":"Block","src":"4876:188:8"}],"id":3470,"name":"FunctionDefinition","src":"4828:236:8"},{"attributes":{"constant":false,"documentation":"@notice Internal-only function that adds a new controller.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_addController","payable":false,"scope":3571,"stateMutability":"nonpayable","superFunction":null,"visibility":"private"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":3524,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3471,"name":"ElementaryTypeName","src":"5161:7:8"}],"id":3472,"name":"VariableDeclaration","src":"5161:16:8"}],"id":3473,"name":"ParameterList","src":"5160:18:8"},{"attributes":{"parameters":[null]},"children":[],"id":3474,"name":"ParameterList","src":"5187:0:8"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_491ef411eef1615ecf908753bd22ae846aac933d79b0327335a18e3988db6215","typeString":"literal_string \"provided account is already an admin\""}],"overloadedDeclarations":[6502,6503],"referencedDeclaration":6503,"type":"function (bool,string memory) pure","value":"require"},"id":3475,"name":"Identifier","src":"5197:7:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3256,"type":"mapping(address => bool)","value":"_isAdmin"},"id":3476,"name":"Identifier","src":"5206:8:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3472,"type":"address","value":"_account"},"id":3477,"name":"Identifier","src":"5215:8:8"}],"id":3478,"name":"IndexAccess","src":"5206:18:8"}],"id":3479,"name":"UnaryOperation","src":"5205:19:8"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e7420697320616c726561647920616e2061646d696e","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is already an admin\"","value":"provided account is already an admin"},"id":3480,"name":"Literal","src":"5226:38:8"}],"id":3481,"name":"FunctionCall","src":"5197:68:8"}],"id":3482,"name":"ExpressionStatement","src":"5197:68:8"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ea5e43d1c86e3916e6efb6c5ad4a915069293195e26cfb0847e731b480c61b69","typeString":"literal_string \"provided account is already a controller\""}],"overloadedDeclarations":[6502,6503],"referencedDeclaration":6503,"type":"function (bool,string memory) pure","value":"require"},"id":3483,"name":"Identifier","src":"5275:7:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3262,"type":"mapping(address => bool)","value":"_isController"},"id":3484,"name":"Identifier","src":"5284:13:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3472,"type":"address","value":"_account"},"id":3485,"name":"Identifier","src":"5298:8:8"}],"id":3486,"name":"IndexAccess","src":"5284:23:8"}],"id":3487,"name":"UnaryOperation","src":"5283:24:8"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e7420697320616c7265616479206120636f6e74726f6c6c6572","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is already a controller\"","value":"provided account is already a controller"},"id":3488,"name":"Literal","src":"5309:42:8"}],"id":3489,"name":"FunctionCall","src":"5275:77:8"}],"id":3490,"name":"ExpressionStatement","src":"5275:77:8"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_28b510b314348cd3eee423698115cd76923e2c39fff2abeefc9606aa1cd4c741","typeString":"literal_string \"provided account is already the owner\""}],"overloadedDeclarations":[6502,6503],"referencedDeclaration":6503,"type":"function (bool,string memory) pure","value":"require"},"id":3491,"name":"Identifier","src":"5362:7:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2482,"type":"function (address) view returns (bool)","value":"_isOwner"},"id":3492,"name":"Identifier","src":"5371:8:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3472,"type":"address","value":"_account"},"id":3493,"name":"Identifier","src":"5380:8:8"}],"id":3494,"name":"FunctionCall","src":"5371:18:8"}],"id":3495,"name":"UnaryOperation","src":"5370:19:8"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e7420697320616c726561647920746865206f776e6572","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is already the owner\"","value":"provided account is already the owner"},"id":3496,"name":"Literal","src":"5391:39:8"}],"id":3497,"name":"FunctionCall","src":"5362:69:8"}],"id":3498,"name":"ExpressionStatement","src":"5362:69:8"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_da72d12cc1dab77bb87826430977e9a5d381ba54a70ad14cb2761e202f01ff3b","typeString":"literal_string \"provided account is the zero address\""}],"overloadedDeclarations":[6502,6503],"referencedDeclaration":6503,"type":"function (bool,string memory) pure","value":"require"},"id":3499,"name":"Identifier","src":"5441:7:8"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3472,"type":"address","value":"_account"},"id":3500,"name":"Identifier","src":"5449:8:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":3501,"name":"ElementaryTypeNameExpression","src":"5461:7:8"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3502,"name":"Literal","src":"5469:1:8"}],"id":3503,"name":"FunctionCall","src":"5461:10:8"}],"id":3504,"name":"BinaryOperation","src":"5449:22:8"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e7420697320746865207a65726f2061646472657373","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is the zero address\"","value":"provided account is the zero address"},"id":3505,"name":"Literal","src":"5473:38:8"}],"id":3506,"name":"FunctionCall","src":"5441:71:8"}],"id":3507,"name":"ExpressionStatement","src":"5441:71:8"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3262,"type":"mapping(address => bool)","value":"_isController"},"id":3508,"name":"Identifier","src":"5522:13:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3472,"type":"address","value":"_account"},"id":3509,"name":"Identifier","src":"5536:8:8"}],"id":3510,"name":"IndexAccess","src":"5522:23:8"},{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":3511,"name":"Literal","src":"5548:4:8"}],"id":3512,"name":"Assignment","src":"5522:30:8"}],"id":3513,"name":"ExpressionStatement","src":"5522:30:8"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3264,"type":"uint256","value":"_controllerCount"},"id":3514,"name":"Identifier","src":"5562:16:8"}],"id":3515,"name":"UnaryOperation","src":"5562:18:8"}],"id":3516,"name":"ExpressionStatement","src":"5562:18:8"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":3234,"type":"function (address,address)","value":"AddedController"},"id":3517,"name":"Identifier","src":"5595:15:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6499,"type":"msg","value":"msg"},"id":3518,"name":"Identifier","src":"5611:3:8"}],"id":3519,"name":"MemberAccess","src":"5611:10:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3472,"type":"address","value":"_account"},"id":3520,"name":"Identifier","src":"5623:8:8"}],"id":3521,"name":"FunctionCall","src":"5595:37:8"}],"id":3522,"name":"EmitStatement","src":"5590:42:8"}],"id":3523,"name":"Block","src":"5187:452:8"}],"id":3524,"name":"FunctionDefinition","src":"5137:502:8"},{"attributes":{"constant":false,"documentation":"@notice Internal-only function that removes an existing controller.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_removeController","payable":false,"scope":3571,"stateMutability":"nonpayable","superFunction":null,"visibility":"private"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":3552,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3525,"name":"ElementaryTypeName","src":"5748:7:8"}],"id":3526,"name":"VariableDeclaration","src":"5748:16:8"}],"id":3527,"name":"ParameterList","src":"5747:18:8"},{"attributes":{"parameters":[null]},"children":[],"id":3528,"name":"ParameterList","src":"5774:0:8"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_61b6700985eb6a295850095b1dc6d25862c09fd9ea7ce39c0e5f303dfe8ed582","typeString":"literal_string \"provided account is not a controller\""}],"overloadedDeclarations":[6502,6503],"referencedDeclaration":6503,"type":"function (bool,string memory) pure","value":"require"},"id":3529,"name":"Identifier","src":"5784:7:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3262,"type":"mapping(address => bool)","value":"_isController"},"id":3530,"name":"Identifier","src":"5792:13:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3526,"type":"address","value":"_account"},"id":3531,"name":"Identifier","src":"5806:8:8"}],"id":3532,"name":"IndexAccess","src":"5792:23:8"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f7669646564206163636f756e74206973206e6f74206120636f6e74726f6c6c6572","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided account is not a controller\"","value":"provided account is not a controller"},"id":3533,"name":"Literal","src":"5817:38:8"}],"id":3534,"name":"FunctionCall","src":"5784:72:8"}],"id":3535,"name":"ExpressionStatement","src":"5784:72:8"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3262,"type":"mapping(address => bool)","value":"_isController"},"id":3536,"name":"Identifier","src":"5866:13:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3526,"type":"address","value":"_account"},"id":3537,"name":"Identifier","src":"5880:8:8"}],"id":3538,"name":"IndexAccess","src":"5866:23:8"},{"attributes":{"argumentTypes":null,"hexvalue":"66616c7365","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"false"},"id":3539,"name":"Literal","src":"5892:5:8"}],"id":3540,"name":"Assignment","src":"5866:31:8"}],"id":3541,"name":"ExpressionStatement","src":"5866:31:8"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"--","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3264,"type":"uint256","value":"_controllerCount"},"id":3542,"name":"Identifier","src":"5907:16:8"}],"id":3543,"name":"UnaryOperation","src":"5907:18:8"}],"id":3544,"name":"ExpressionStatement","src":"5907:18:8"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":3240,"type":"function (address,address)","value":"RemovedController"},"id":3545,"name":"Identifier","src":"5940:17:8"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6499,"type":"msg","value":"msg"},"id":3546,"name":"Identifier","src":"5958:3:8"}],"id":3547,"name":"MemberAccess","src":"5958:10:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3526,"type":"address","value":"_account"},"id":3548,"name":"Identifier","src":"5970:8:8"}],"id":3549,"name":"FunctionCall","src":"5940:39:8"}],"id":3550,"name":"EmitStatement","src":"5935:44:8"}],"id":3551,"name":"Block","src":"5774:212:8"}],"id":3552,"name":"FunctionDefinition","src":"5721:265:8"},{"attributes":{"constant":false,"documentation":"/ @notice Withdraw tokens from the smart contract to the specified account.","implemented":true,"isConstructor":false,"name":"claim","payable":false,"scope":3571,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_to","scope":3570,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3553,"name":"ElementaryTypeName","src":"6090:7:8"}],"id":3554,"name":"VariableDeclaration","src":"6090:11:8"},{"attributes":{"constant":false,"name":"_asset","scope":3570,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3555,"name":"ElementaryTypeName","src":"6103:7:8"}],"id":3556,"name":"VariableDeclaration","src":"6103:14:8"},{"attributes":{"constant":false,"name":"_amount","scope":3570,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":3557,"name":"ElementaryTypeName","src":"6119:4:8"}],"id":3558,"name":"VariableDeclaration","src":"6119:12:8"}],"id":3559,"name":"ParameterList","src":"6089:43:8"},{"attributes":{"parameters":[null]},"children":[],"id":3562,"name":"ParameterList","src":"6152:0:8"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2385,"type":"modifier ()","value":"onlyOwner"},"id":3560,"name":"Identifier","src":"6142:9:8"}],"id":3561,"name":"ModifierInvocation","src":"6142:9:8"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":4788,"type":"function (address,address,uint256)","value":"_claim"},"id":3563,"name":"Identifier","src":"6162:6:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3554,"type":"address","value":"_to"},"id":3564,"name":"Identifier","src":"6169:3:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3556,"type":"address","value":"_asset"},"id":3565,"name":"Identifier","src":"6174:6:8"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3558,"type":"uint256","value":"_amount"},"id":3566,"name":"Identifier","src":"6182:7:8"}],"id":3567,"name":"FunctionCall","src":"6162:28:8"}],"id":3568,"name":"ExpressionStatement","src":"6162:28:8"}],"id":3569,"name":"Block","src":"6152:45:8"}],"id":3570,"name":"FunctionDefinition","src":"6075:122:8"}],"id":3571,"name":"ContractDefinition","src":"1361:4838:8"}],"id":3572,"name":"SourceUnit","src":"770:5430:8"}},"internals/ensResolvable.sol":{"AST":{"attributes":{"absolutePath":"internals/ensResolvable.sol","exportedSymbols":{"ENSResolvable":[2326]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".25"]},"id":2277,"name":"PragmaDirective","src":"773:24:9"},{"attributes":{"SourceUnit":3652,"absolutePath":"externals/ens/ENS.sol","file":"../externals/ens/ENS.sol","scope":2327,"symbolAliases":[null],"unitAlias":""},"id":2278,"name":"ImportDirective","src":"799:34:9"},{"attributes":{"SourceUnit":4160,"absolutePath":"externals/ens/PublicResolver.sol","file":"../externals/ens/PublicResolver.sol","scope":2327,"symbolAliases":[null],"unitAlias":""},"id":2279,"name":"ImportDirective","src":"834:45:9"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"contract","documentation":"@title ENSResolvable - Ethereum Name Service Resolver\n@notice contract should be used to get an address for an ENS nodeHash","fullyImplemented":true,"linearizedBaseContracts":[2326],"name":"ENSResolvable","scope":2327},"children":[{"attributes":{"constant":false,"name":"_ens","scope":2326,"stateVariable":true,"storageLocation":"default","type":"contract ENS","value":null,"visibility":"private"},"children":[{"attributes":{"contractScope":null,"name":"ENS","referencedDeclaration":3651,"type":"contract ENS"},"id":2280,"name":"UserDefinedTypeName","src":"1084:3:9"}],"id":2281,"name":"VariableDeclaration","src":"1084:16:9"},{"attributes":{"constant":false,"name":"_ensRegistry","scope":2326,"stateVariable":true,"storageLocation":"default","type":"address","value":null,"visibility":"private"},"children":[{"attributes":{"name":"address","type":"address"},"id":2282,"name":"ElementaryTypeName","src":"1179:7:9"}],"id":2283,"name":"VariableDeclaration","src":"1179:28:9"},{"attributes":{"constant":false,"documentation":"@param _ensReg_ is the ENS registry used","implemented":true,"isConstructor":true,"modifiers":[null],"name":"","payable":false,"scope":2326,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_ensReg_","scope":2299,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2284,"name":"ElementaryTypeName","src":"1275:7:9"}],"id":2285,"name":"VariableDeclaration","src":"1275:16:9"}],"id":2286,"name":"ParameterList","src":"1274:18:9"},{"attributes":{"parameters":[null]},"children":[],"id":2287,"name":"ParameterList","src":"1302:0:9"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2283,"type":"address","value":"_ensRegistry"},"id":2288,"name":"Identifier","src":"1312:12:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2285,"type":"address","value":"_ensReg_"},"id":2289,"name":"Identifier","src":"1327:8:9"}],"id":2290,"name":"Assignment","src":"1312:23:9"}],"id":2291,"name":"ExpressionStatement","src":"1312:23:9"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"contract ENS"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2281,"type":"contract ENS","value":"_ens"},"id":2292,"name":"Identifier","src":"1345:4:9"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract ENS","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":3651,"type":"type(contract ENS)","value":"ENS"},"id":2293,"name":"Identifier","src":"1352:3:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2283,"type":"address","value":"_ensRegistry"},"id":2294,"name":"Identifier","src":"1356:12:9"}],"id":2295,"name":"FunctionCall","src":"1352:17:9"}],"id":2296,"name":"Assignment","src":"1345:24:9"}],"id":2297,"name":"ExpressionStatement","src":"1345:24:9"}],"id":2298,"name":"Block","src":"1302:74:9"}],"id":2299,"name":"FunctionDefinition","src":"1263:113:9"},{"attributes":{"constant":true,"documentation":"@notice this is used to that one can observe which ENS registry is being used","implemented":true,"isConstructor":false,"modifiers":[null],"name":"ensRegistry","payable":false,"scope":2326,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":2300,"name":"ParameterList","src":"1488:2:9"},{"children":[{"attributes":{"constant":false,"name":"","scope":2307,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2301,"name":"ElementaryTypeName","src":"1514:7:9"}],"id":2302,"name":"VariableDeclaration","src":"1514:7:9"}],"id":2303,"name":"ParameterList","src":"1513:9:9"},{"children":[{"attributes":{"functionReturnParameters":2303},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2283,"type":"address","value":"_ensRegistry"},"id":2304,"name":"Identifier","src":"1540:12:9"}],"id":2305,"name":"Return","src":"1533:19:9"}],"id":2306,"name":"Block","src":"1523:36:9"}],"id":2307,"name":"FunctionDefinition","src":"1468:91:9"},{"attributes":{"constant":true,"documentation":"@notice helper function used to get the address of a node Hash\n @param _nodeHash of the ENS entry that needs resolving\n @return the address of the said nodeHash","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_ensResolve","payable":false,"scope":2326,"stateMutability":"view","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_nodeHash","scope":2325,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":2308,"name":"ElementaryTypeName","src":"1769:7:9"}],"id":2309,"name":"VariableDeclaration","src":"1769:17:9"}],"id":2310,"name":"ParameterList","src":"1768:19:9"},{"children":[{"attributes":{"constant":false,"name":"","scope":2325,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2311,"name":"ElementaryTypeName","src":"1811:7:9"}],"id":2312,"name":"VariableDeclaration","src":"1811:7:9"}],"id":2313,"name":"ParameterList","src":"1810:9:9"},{"children":[{"attributes":{"functionReturnParameters":2313},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"addr","referencedDeclaration":4118,"type":"function (bytes32) view external returns (address)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract PublicResolver","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":4159,"type":"type(contract PublicResolver)","value":"PublicResolver"},"id":2314,"name":"Identifier","src":"1837:14:9"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"resolver","referencedDeclaration":3643,"type":"function (bytes32) view external returns (address)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2281,"type":"contract ENS","value":"_ens"},"id":2315,"name":"Identifier","src":"1852:4:9"}],"id":2316,"name":"MemberAccess","src":"1852:13:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2309,"type":"bytes32","value":"_nodeHash"},"id":2317,"name":"Identifier","src":"1866:9:9"}],"id":2318,"name":"FunctionCall","src":"1852:24:9"}],"id":2319,"name":"FunctionCall","src":"1837:40:9"}],"id":2320,"name":"MemberAccess","src":"1837:45:9"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2309,"type":"bytes32","value":"_nodeHash"},"id":2321,"name":"Identifier","src":"1883:9:9"}],"id":2322,"name":"FunctionCall","src":"1837:56:9"}],"id":2323,"name":"Return","src":"1830:63:9"}],"id":2324,"name":"Block","src":"1820:80:9"}],"id":2325,"name":"FunctionDefinition","src":"1748:152:9"}],"id":2326,"name":"ContractDefinition","src":"1012:891:9"}],"id":2327,"name":"SourceUnit","src":"773:1131:9"}},"internals/ownable.sol":{"AST":{"attributes":{"absolutePath":"internals/ownable.sol","exportedSymbols":{"Ownable":[2483]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".25"]},"id":2328,"name":"PragmaDirective","src":"767:24:10"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"contract","documentation":"@title Ownable has an owner address and provides basic authorization control functions.\n This contract is modified version of the MIT OpenZepplin Ownable contract\n This contract allows for the transferOwnership operation to be made impossible\n https://github.com/OpenZeppelin/openzeppelin-solidity/blob/master/contracts/ownership/Ownable.sol","fullyImplemented":true,"linearizedBaseContracts":[2483],"name":"Ownable","scope":2484},"children":[{"attributes":{"anonymous":false,"documentation":null,"name":"TransferredOwnership"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_from","scope":2334,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2329,"name":"ElementaryTypeName","src":"1199:7:10"}],"id":2330,"name":"VariableDeclaration","src":"1199:13:10"},{"attributes":{"constant":false,"indexed":false,"name":"_to","scope":2334,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2331,"name":"ElementaryTypeName","src":"1214:7:10"}],"id":2332,"name":"VariableDeclaration","src":"1214:11:10"}],"id":2333,"name":"ParameterList","src":"1198:28:10"}],"id":2334,"name":"EventDefinition","src":"1172:55:10"},{"attributes":{"anonymous":false,"documentation":null,"name":"LockedOwnership"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_locked","scope":2338,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2335,"name":"ElementaryTypeName","src":"1254:7:10"}],"id":2336,"name":"VariableDeclaration","src":"1254:15:10"}],"id":2337,"name":"ParameterList","src":"1253:17:10"}],"id":2338,"name":"EventDefinition","src":"1232:39:10"},{"attributes":{"constant":false,"name":"_owner","scope":2483,"stateVariable":true,"storageLocation":"default","type":"address","value":null,"visibility":"private"},"children":[{"attributes":{"name":"address","type":"address"},"id":2339,"name":"ElementaryTypeName","src":"1277:7:10"}],"id":2340,"name":"VariableDeclaration","src":"1277:22:10"},{"attributes":{"constant":false,"name":"_isTransferable","scope":2483,"stateVariable":true,"storageLocation":"default","type":"bool","value":null,"visibility":"private"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2341,"name":"ElementaryTypeName","src":"1305:4:10"}],"id":2342,"name":"VariableDeclaration","src":"1305:28:10"},{"attributes":{"constant":false,"documentation":"@notice Constructor sets the original owner of the contract and whether or not it is one time transferable.","implemented":true,"isConstructor":true,"modifiers":[null],"name":"","payable":false,"scope":2483,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account_","scope":2373,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2343,"name":"ElementaryTypeName","src":"1468:7:10"}],"id":2344,"name":"VariableDeclaration","src":"1468:17:10"},{"attributes":{"constant":false,"name":"_transferable_","scope":2373,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2345,"name":"ElementaryTypeName","src":"1487:4:10"}],"id":2346,"name":"VariableDeclaration","src":"1487:19:10"}],"id":2347,"name":"ParameterList","src":"1467:40:10"},{"attributes":{"parameters":[null]},"children":[],"id":2348,"name":"ParameterList","src":"1517:0:10"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2340,"type":"address","value":"_owner"},"id":2349,"name":"Identifier","src":"1527:6:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2344,"type":"address","value":"_account_"},"id":2350,"name":"Identifier","src":"1536:9:10"}],"id":2351,"name":"Assignment","src":"1527:18:10"}],"id":2352,"name":"ExpressionStatement","src":"1527:18:10"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2342,"type":"bool","value":"_isTransferable"},"id":2353,"name":"Identifier","src":"1555:15:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2346,"type":"bool","value":"_transferable_"},"id":2354,"name":"Identifier","src":"1573:14:10"}],"id":2355,"name":"Assignment","src":"1555:32:10"}],"id":2356,"name":"ExpressionStatement","src":"1555:32:10"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2342,"type":"bool","value":"_isTransferable"},"id":2357,"name":"Identifier","src":"1671:15:10"}],"id":2358,"name":"UnaryOperation","src":"1670:16:10"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2338,"type":"function (address)","value":"LockedOwnership"},"id":2359,"name":"Identifier","src":"1707:15:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2344,"type":"address","value":"_account_"},"id":2360,"name":"Identifier","src":"1723:9:10"}],"id":2361,"name":"FunctionCall","src":"1707:26:10"}],"id":2362,"name":"EmitStatement","src":"1702:31:10"}],"id":2363,"name":"Block","src":"1688:56:10"}],"id":2364,"name":"IfStatement","src":"1666:78:10"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2334,"type":"function (address,address)","value":"TransferredOwnership"},"id":2365,"name":"Identifier","src":"1758:20:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":2366,"name":"ElementaryTypeNameExpression","src":"1779:7:10"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2367,"name":"Literal","src":"1787:1:10"}],"id":2368,"name":"FunctionCall","src":"1779:10:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2344,"type":"address","value":"_account_"},"id":2369,"name":"Identifier","src":"1791:9:10"}],"id":2370,"name":"FunctionCall","src":"1758:43:10"}],"id":2371,"name":"EmitStatement","src":"1753:48:10"}],"id":2372,"name":"Block","src":"1517:291:10"}],"id":2373,"name":"FunctionDefinition","src":"1456:352:10"},{"attributes":{"documentation":"@notice Reverts if called by any account other than the owner.","name":"onlyOwner","visibility":"internal"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":2374,"name":"ParameterList","src":"1903:2:10"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_96d7cc6c06f3d4101b2a14e4ad2906b79dc824ab8a44b63e774a71d2b9c7abd2","typeString":"literal_string \"sender is not an owner\""}],"overloadedDeclarations":[6502,6503],"referencedDeclaration":6503,"type":"function (bool,string memory) pure","value":"require"},"id":2375,"name":"Identifier","src":"1916:7:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2482,"type":"function (address) view returns (bool)","value":"_isOwner"},"id":2376,"name":"Identifier","src":"1924:8:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6499,"type":"msg","value":"msg"},"id":2377,"name":"Identifier","src":"1933:3:10"}],"id":2378,"name":"MemberAccess","src":"1933:10:10"}],"id":2379,"name":"FunctionCall","src":"1924:20:10"},{"attributes":{"argumentTypes":null,"hexvalue":"73656e646572206973206e6f7420616e206f776e6572","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"sender is not an owner\"","value":"sender is not an owner"},"id":2380,"name":"Literal","src":"1946:24:10"}],"id":2381,"name":"FunctionCall","src":"1916:55:10"}],"id":2382,"name":"ExpressionStatement","src":"1916:55:10"},{"id":2383,"name":"PlaceholderStatement","src":"1981:1:10"}],"id":2384,"name":"Block","src":"1906:83:10"}],"id":2385,"name":"ModifierDefinition","src":"1885:104:10"},{"attributes":{"constant":false,"documentation":"@notice Allows the current owner to transfer control of the contract to a new address.\n @param _account address to transfer ownership to.\n @param _transferable indicates whether to keep the ownership transferable.","implemented":true,"isConstructor":false,"name":"transferOwnership","payable":false,"scope":2483,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_account","scope":2430,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2386,"name":"ElementaryTypeName","src":"2258:7:10"}],"id":2387,"name":"VariableDeclaration","src":"2258:16:10"},{"attributes":{"constant":false,"name":"_transferable","scope":2430,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2388,"name":"ElementaryTypeName","src":"2276:4:10"}],"id":2389,"name":"VariableDeclaration","src":"2276:18:10"}],"id":2390,"name":"ParameterList","src":"2257:38:10"},{"attributes":{"parameters":[null]},"children":[],"id":2393,"name":"ParameterList","src":"2315:0:10"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2385,"type":"modifier ()","value":"onlyOwner"},"id":2391,"name":"Identifier","src":"2305:9:10"}],"id":2392,"name":"ModifierInvocation","src":"2305:9:10"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b2967f1eb3e333ead270a5eb332284149554452f916a981f27e70894d40a893f","typeString":"literal_string \"ownership is not transferable\""}],"overloadedDeclarations":[6502,6503],"referencedDeclaration":6503,"type":"function (bool,string memory) pure","value":"require"},"id":2394,"name":"Identifier","src":"2380:7:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2342,"type":"bool","value":"_isTransferable"},"id":2395,"name":"Identifier","src":"2388:15:10"},{"attributes":{"argumentTypes":null,"hexvalue":"6f776e657273686970206973206e6f74207472616e7366657261626c65","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"ownership is not transferable\"","value":"ownership is not transferable"},"id":2396,"name":"Literal","src":"2405:31:10"}],"id":2397,"name":"FunctionCall","src":"2380:57:10"}],"id":2398,"name":"ExpressionStatement","src":"2380:57:10"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_be619f073d6b85c603c617050d1729f1cf3b31bf6ae5ae03f35765577d9bb6c8","typeString":"literal_string \"owner cannot be set to zero address\""}],"overloadedDeclarations":[6502,6503],"referencedDeclaration":6503,"type":"function (bool,string memory) pure","value":"require"},"id":2399,"name":"Identifier","src":"2510:7:10"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2387,"type":"address","value":"_account"},"id":2400,"name":"Identifier","src":"2518:8:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":2401,"name":"ElementaryTypeNameExpression","src":"2530:7:10"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2402,"name":"Literal","src":"2538:1:10"}],"id":2403,"name":"FunctionCall","src":"2530:10:10"}],"id":2404,"name":"BinaryOperation","src":"2518:22:10"},{"attributes":{"argumentTypes":null,"hexvalue":"6f776e65722063616e6e6f742062652073657420746f207a65726f2061646472657373","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"owner cannot be set to zero address\"","value":"owner cannot be set to zero address"},"id":2405,"name":"Literal","src":"2542:37:10"}],"id":2406,"name":"FunctionCall","src":"2510:70:10"}],"id":2407,"name":"ExpressionStatement","src":"2510:70:10"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2342,"type":"bool","value":"_isTransferable"},"id":2408,"name":"Identifier","src":"2665:15:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2389,"type":"bool","value":"_transferable"},"id":2409,"name":"Identifier","src":"2683:13:10"}],"id":2410,"name":"Assignment","src":"2665:31:10"}],"id":2411,"name":"ExpressionStatement","src":"2665:31:10"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2389,"type":"bool","value":"_transferable"},"id":2412,"name":"Identifier","src":"2780:13:10"}],"id":2413,"name":"UnaryOperation","src":"2779:14:10"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2338,"type":"function (address)","value":"LockedOwnership"},"id":2414,"name":"Identifier","src":"2814:15:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2387,"type":"address","value":"_account"},"id":2415,"name":"Identifier","src":"2830:8:10"}],"id":2416,"name":"FunctionCall","src":"2814:25:10"}],"id":2417,"name":"EmitStatement","src":"2809:30:10"}],"id":2418,"name":"Block","src":"2795:55:10"}],"id":2419,"name":"IfStatement","src":"2775:75:10"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2334,"type":"function (address,address)","value":"TransferredOwnership"},"id":2420,"name":"Identifier","src":"2910:20:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2340,"type":"address","value":"_owner"},"id":2421,"name":"Identifier","src":"2931:6:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2387,"type":"address","value":"_account"},"id":2422,"name":"Identifier","src":"2939:8:10"}],"id":2423,"name":"FunctionCall","src":"2910:38:10"}],"id":2424,"name":"EmitStatement","src":"2905:43:10"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2340,"type":"address","value":"_owner"},"id":2425,"name":"Identifier","src":"3008:6:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2387,"type":"address","value":"_account"},"id":2426,"name":"Identifier","src":"3017:8:10"}],"id":2427,"name":"Assignment","src":"3008:17:10"}],"id":2428,"name":"ExpressionStatement","src":"3008:17:10"}],"id":2429,"name":"Block","src":"2315:717:10"}],"id":2430,"name":"FunctionDefinition","src":"2231:801:10"},{"attributes":{"constant":true,"documentation":"@notice check if the ownership is transferable.\n @return true if the ownership is transferable.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"isTransferable","payable":false,"scope":2483,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":2431,"name":"ParameterList","src":"3172:2:10"},{"children":[{"attributes":{"constant":false,"name":"","scope":2438,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2432,"name":"ElementaryTypeName","src":"3198:4:10"}],"id":2433,"name":"VariableDeclaration","src":"3198:4:10"}],"id":2434,"name":"ParameterList","src":"3197:6:10"},{"children":[{"attributes":{"functionReturnParameters":2434},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2342,"type":"bool","value":"_isTransferable"},"id":2435,"name":"Identifier","src":"3221:15:10"}],"id":2436,"name":"Return","src":"3214:22:10"}],"id":2437,"name":"Block","src":"3204:39:10"}],"id":2438,"name":"FunctionDefinition","src":"3149:94:10"},{"attributes":{"constant":false,"documentation":"@notice Allows the current owner to relinquish control of the contract.\n @dev Renouncing to ownership will leave the contract without an owner and unusable.\n @dev It will not be possible to call the functions with the `onlyOwner` modifier anymore.","implemented":true,"isConstructor":false,"name":"renounceOwnership","payable":false,"scope":2483,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":2439,"name":"ParameterList","src":"3545:2:10"},{"attributes":{"parameters":[null]},"children":[],"id":2442,"name":"ParameterList","src":"3567:0:10"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2385,"type":"modifier ()","value":"onlyOwner"},"id":2440,"name":"Identifier","src":"3557:9:10"}],"id":2441,"name":"ModifierInvocation","src":"3557:9:10"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b2967f1eb3e333ead270a5eb332284149554452f916a981f27e70894d40a893f","typeString":"literal_string \"ownership is not transferable\""}],"overloadedDeclarations":[6502,6503],"referencedDeclaration":6503,"type":"function (bool,string memory) pure","value":"require"},"id":2443,"name":"Identifier","src":"3632:7:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2342,"type":"bool","value":"_isTransferable"},"id":2444,"name":"Identifier","src":"3640:15:10"},{"attributes":{"argumentTypes":null,"hexvalue":"6f776e657273686970206973206e6f74207472616e7366657261626c65","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"ownership is not transferable\"","value":"ownership is not transferable"},"id":2445,"name":"Literal","src":"3657:31:10"}],"id":2446,"name":"FunctionCall","src":"3632:57:10"}],"id":2447,"name":"ExpressionStatement","src":"3632:57:10"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2340,"type":"address","value":"_owner"},"id":2448,"name":"Identifier","src":"3743:6:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":2449,"name":"ElementaryTypeNameExpression","src":"3752:7:10"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2450,"name":"Literal","src":"3760:1:10"}],"id":2451,"name":"FunctionCall","src":"3752:10:10"}],"id":2452,"name":"Assignment","src":"3743:19:10"}],"id":2453,"name":"ExpressionStatement","src":"3743:19:10"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2334,"type":"function (address,address)","value":"TransferredOwnership"},"id":2454,"name":"Identifier","src":"3778:20:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2340,"type":"address","value":"_owner"},"id":2455,"name":"Identifier","src":"3799:6:10"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":2456,"name":"ElementaryTypeNameExpression","src":"3807:7:10"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2457,"name":"Literal","src":"3815:1:10"}],"id":2458,"name":"FunctionCall","src":"3807:10:10"}],"id":2459,"name":"FunctionCall","src":"3778:40:10"}],"id":2460,"name":"EmitStatement","src":"3773:45:10"}],"id":2461,"name":"Block","src":"3567:258:10"}],"id":2462,"name":"FunctionDefinition","src":"3519:306:10"},{"attributes":{"constant":true,"documentation":"@notice Find out owner address\n @return address of the owner.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"owner","payable":false,"scope":2483,"stateMutability":"view","superFunction":null,"visibility":"public"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":2463,"name":"ParameterList","src":"3922:2:10"},{"children":[{"attributes":{"constant":false,"name":"","scope":2470,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2464,"name":"ElementaryTypeName","src":"3946:7:10"}],"id":2465,"name":"VariableDeclaration","src":"3946:7:10"}],"id":2466,"name":"ParameterList","src":"3945:9:10"},{"children":[{"attributes":{"functionReturnParameters":2466},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2340,"type":"address","value":"_owner"},"id":2467,"name":"Identifier","src":"3972:6:10"}],"id":2468,"name":"Return","src":"3965:13:10"}],"id":2469,"name":"Block","src":"3955:30:10"}],"id":2470,"name":"FunctionDefinition","src":"3908:77:10"},{"attributes":{"constant":true,"documentation":"@notice Check if owner address\n @return true if sender is the owner of the contract.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_isOwner","payable":false,"scope":2483,"stateMutability":"view","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_address","scope":2482,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2471,"name":"ElementaryTypeName","src":"4109:7:10"}],"id":2472,"name":"VariableDeclaration","src":"4109:16:10"}],"id":2473,"name":"ParameterList","src":"4108:18:10"},{"children":[{"attributes":{"constant":false,"name":"","scope":2482,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2474,"name":"ElementaryTypeName","src":"4150:4:10"}],"id":2475,"name":"VariableDeclaration","src":"4150:4:10"}],"id":2476,"name":"ParameterList","src":"4149:6:10"},{"children":[{"attributes":{"functionReturnParameters":2476},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2472,"type":"address","value":"_address"},"id":2477,"name":"Identifier","src":"4173:8:10"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2340,"type":"address","value":"_owner"},"id":2478,"name":"Identifier","src":"4185:6:10"}],"id":2479,"name":"BinaryOperation","src":"4173:18:10"}],"id":2480,"name":"Return","src":"4166:25:10"}],"id":2481,"name":"Block","src":"4156:42:10"}],"id":2482,"name":"FunctionDefinition","src":"4091:107:10"}],"id":2483,"name":"ContractDefinition","src":"1149:3051:10"}],"id":2484,"name":"SourceUnit","src":"767:3434:10"}},"internals/tokenWhitelist.sol":{"AST":{"attributes":{"absolutePath":"internals/tokenWhitelist.sol","exportedSymbols":{"ITokenWhitelist":[4223],"TokenWhitelist":[4736]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".25"]},"id":4161,"name":"PragmaDirective","src":"774:24:11"},{"attributes":{"SourceUnit":2484,"absolutePath":"internals/ownable.sol","file":"./ownable.sol","scope":4737,"symbolAliases":[null],"unitAlias":""},"id":4162,"name":"ImportDirective","src":"800:23:11"},{"attributes":{"SourceUnit":2276,"absolutePath":"internals/controllable.sol","file":"./controllable.sol","scope":4737,"symbolAliases":[null],"unitAlias":""},"id":4163,"name":"ImportDirective","src":"824:28:11"},{"attributes":{"SourceUnit":4790,"absolutePath":"internals/claimable.sol","file":"./claimable.sol","scope":4737,"symbolAliases":[null],"unitAlias":""},"id":4164,"name":"ImportDirective","src":"853:25:11"},{"attributes":{"SourceUnit":6485,"absolutePath":"externals/strings.sol","file":"../externals/strings.sol","scope":4737,"symbolAliases":[null],"unitAlias":""},"id":4165,"name":"ImportDirective","src":"879:34:11"},{"attributes":{"SourceUnit":2220,"absolutePath":"externals/SafeMath.sol","file":"../externals/SafeMath.sol","scope":4737,"symbolAliases":[null],"unitAlias":""},"id":4166,"name":"ImportDirective","src":"914:35:11"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"interface","documentation":"@title The ITokenWhitelist interface provides access to a whitelist of tokens.","fullyImplemented":false,"linearizedBaseContracts":[4223],"name":"ITokenWhitelist","scope":4737},"children":[{"attributes":{"body":null,"constant":true,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"getTokenInfo","payable":false,"scope":4223,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"","scope":4185,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":4167,"name":"ElementaryTypeName","src":"1088:7:11"}],"id":4168,"name":"VariableDeclaration","src":"1088:7:11"}],"id":4169,"name":"ParameterList","src":"1087:9:11"},{"children":[{"attributes":{"constant":false,"name":"","scope":4185,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":4170,"name":"ElementaryTypeName","src":"1120:6:11"}],"id":4171,"name":"VariableDeclaration","src":"1120:6:11"},{"attributes":{"constant":false,"name":"","scope":4185,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":4172,"name":"ElementaryTypeName","src":"1128:7:11"}],"id":4173,"name":"VariableDeclaration","src":"1128:7:11"},{"attributes":{"constant":false,"name":"","scope":4185,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":4174,"name":"ElementaryTypeName","src":"1137:7:11"}],"id":4175,"name":"VariableDeclaration","src":"1137:7:11"},{"attributes":{"constant":false,"name":"","scope":4185,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":4176,"name":"ElementaryTypeName","src":"1146:4:11"}],"id":4177,"name":"VariableDeclaration","src":"1146:4:11"},{"attributes":{"constant":false,"name":"","scope":4185,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":4178,"name":"ElementaryTypeName","src":"1152:4:11"}],"id":4179,"name":"VariableDeclaration","src":"1152:4:11"},{"attributes":{"constant":false,"name":"","scope":4185,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":4180,"name":"ElementaryTypeName","src":"1158:4:11"}],"id":4181,"name":"VariableDeclaration","src":"1158:4:11"},{"attributes":{"constant":false,"name":"","scope":4185,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":4182,"name":"ElementaryTypeName","src":"1164:7:11"}],"id":4183,"name":"VariableDeclaration","src":"1164:7:11"}],"id":4184,"name":"ParameterList","src":"1119:53:11"}],"id":4185,"name":"FunctionDefinition","src":"1066:107:11"},{"attributes":{"body":null,"constant":true,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"getStablecoinInfo","payable":false,"scope":4223,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":4186,"name":"ParameterList","src":"1204:2:11"},{"children":[{"attributes":{"constant":false,"name":"","scope":4202,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":4187,"name":"ElementaryTypeName","src":"1230:6:11"}],"id":4188,"name":"VariableDeclaration","src":"1230:6:11"},{"attributes":{"constant":false,"name":"","scope":4202,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":4189,"name":"ElementaryTypeName","src":"1238:7:11"}],"id":4190,"name":"VariableDeclaration","src":"1238:7:11"},{"attributes":{"constant":false,"name":"","scope":4202,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":4191,"name":"ElementaryTypeName","src":"1247:7:11"}],"id":4192,"name":"VariableDeclaration","src":"1247:7:11"},{"attributes":{"constant":false,"name":"","scope":4202,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":4193,"name":"ElementaryTypeName","src":"1256:4:11"}],"id":4194,"name":"VariableDeclaration","src":"1256:4:11"},{"attributes":{"constant":false,"name":"","scope":4202,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":4195,"name":"ElementaryTypeName","src":"1262:4:11"}],"id":4196,"name":"VariableDeclaration","src":"1262:4:11"},{"attributes":{"constant":false,"name":"","scope":4202,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":4197,"name":"ElementaryTypeName","src":"1268:4:11"}],"id":4198,"name":"VariableDeclaration","src":"1268:4:11"},{"attributes":{"constant":false,"name":"","scope":4202,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":4199,"name":"ElementaryTypeName","src":"1274:7:11"}],"id":4200,"name":"VariableDeclaration","src":"1274:7:11"}],"id":4201,"name":"ParameterList","src":"1229:53:11"}],"id":4202,"name":"FunctionDefinition","src":"1178:105:11"},{"attributes":{"body":null,"constant":true,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"tokenAddressArray","payable":false,"scope":4223,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":4203,"name":"ParameterList","src":"1314:2:11"},{"children":[{"attributes":{"constant":false,"name":"","scope":4208,"stateVariable":false,"storageLocation":"default","type":"address[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"address[]"},"children":[{"attributes":{"name":"address","type":"address"},"id":4204,"name":"ElementaryTypeName","src":"1340:7:11"}],"id":4205,"name":"ArrayTypeName","src":"1340:9:11"}],"id":4206,"name":"VariableDeclaration","src":"1340:9:11"}],"id":4207,"name":"ParameterList","src":"1339:11:11"}],"id":4208,"name":"FunctionDefinition","src":"1288:63:11"},{"attributes":{"body":null,"constant":false,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"updateTokenRate","payable":false,"scope":4223,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"","scope":4217,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":4209,"name":"ElementaryTypeName","src":"1381:7:11"}],"id":4210,"name":"VariableDeclaration","src":"1381:7:11"},{"attributes":{"constant":false,"name":"","scope":4217,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4211,"name":"ElementaryTypeName","src":"1390:4:11"}],"id":4212,"name":"VariableDeclaration","src":"1390:4:11"},{"attributes":{"constant":false,"name":"","scope":4217,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4213,"name":"ElementaryTypeName","src":"1396:4:11"}],"id":4214,"name":"VariableDeclaration","src":"1396:4:11"}],"id":4215,"name":"ParameterList","src":"1380:21:11"},{"attributes":{"parameters":[null]},"children":[],"id":4216,"name":"ParameterList","src":"1410:0:11"}],"id":4217,"name":"FunctionDefinition","src":"1356:55:11"},{"attributes":{"body":null,"constant":true,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"stablecoin","payable":false,"scope":4223,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":4218,"name":"ParameterList","src":"1435:2:11"},{"children":[{"attributes":{"constant":false,"name":"","scope":4222,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":4219,"name":"ElementaryTypeName","src":"1461:7:11"}],"id":4220,"name":"VariableDeclaration","src":"1461:7:11"}],"id":4221,"name":"ParameterList","src":"1460:9:11"}],"id":4222,"name":"FunctionDefinition","src":"1416:54:11"}],"id":4223,"name":"ContractDefinition","src":"1034:438:11"},{"attributes":{"contractDependencies":[2275,2326,2483,4789],"contractKind":"contract","documentation":"@title TokenWhitelist stores a list of tokens used by the Consumer Contract Wallet, the Oracle, the TKN Holder and the TKN Licence Contract","fullyImplemented":true,"linearizedBaseContracts":[4736,4789,2483,2275,2326],"name":"TokenWhitelist","scope":4737},"children":[{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"ENSResolvable","referencedDeclaration":2326,"type":"contract ENSResolvable"},"id":4224,"name":"UserDefinedTypeName","src":"1646:13:11"}],"id":4225,"name":"InheritanceSpecifier","src":"1646:13:11"},{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"Controllable","referencedDeclaration":2275,"type":"contract Controllable"},"id":4226,"name":"UserDefinedTypeName","src":"1661:12:11"}],"id":4227,"name":"InheritanceSpecifier","src":"1661:12:11"},{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"Ownable","referencedDeclaration":2483,"type":"contract Ownable"},"id":4228,"name":"UserDefinedTypeName","src":"1675:7:11"}],"id":4229,"name":"InheritanceSpecifier","src":"1675:7:11"},{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"Claimable","referencedDeclaration":4789,"type":"contract Claimable"},"id":4230,"name":"UserDefinedTypeName","src":"1684:9:11"}],"id":4231,"name":"InheritanceSpecifier","src":"1684:9:11"},{"attributes":{"typeName":null},"children":[{"attributes":{"contractScope":null,"name":"strings","referencedDeclaration":6484,"type":"library strings"},"id":4232,"name":"UserDefinedTypeName","src":"1706:7:11"}],"id":4233,"name":"UsingForDirective","src":"1700:20:11"},{"children":[{"attributes":{"contractScope":null,"name":"SafeMath","referencedDeclaration":2219,"type":"library SafeMath"},"id":4234,"name":"UserDefinedTypeName","src":"1731:8:11"},{"attributes":{"name":"uint256","type":"uint256"},"id":4235,"name":"ElementaryTypeName","src":"1744:7:11"}],"id":4236,"name":"UsingForDirective","src":"1725:27:11"},{"attributes":{"anonymous":false,"documentation":null,"name":"UpdatedTokenRate"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_sender","scope":4244,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":4237,"name":"ElementaryTypeName","src":"1781:7:11"}],"id":4238,"name":"VariableDeclaration","src":"1781:15:11"},{"attributes":{"constant":false,"indexed":false,"name":"_token","scope":4244,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":4239,"name":"ElementaryTypeName","src":"1798:7:11"}],"id":4240,"name":"VariableDeclaration","src":"1798:14:11"},{"attributes":{"constant":false,"indexed":false,"name":"_rate","scope":4244,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4241,"name":"ElementaryTypeName","src":"1814:4:11"}],"id":4242,"name":"VariableDeclaration","src":"1814:10:11"}],"id":4243,"name":"ParameterList","src":"1780:45:11"}],"id":4244,"name":"EventDefinition","src":"1758:68:11"},{"attributes":{"anonymous":false,"documentation":null,"name":"AddedToken"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_sender","scope":4258,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":4245,"name":"ElementaryTypeName","src":"1849:7:11"}],"id":4246,"name":"VariableDeclaration","src":"1849:15:11"},{"attributes":{"constant":false,"indexed":false,"name":"_token","scope":4258,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":4247,"name":"ElementaryTypeName","src":"1866:7:11"}],"id":4248,"name":"VariableDeclaration","src":"1866:14:11"},{"attributes":{"constant":false,"indexed":false,"name":"_symbol","scope":4258,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":4249,"name":"ElementaryTypeName","src":"1882:6:11"}],"id":4250,"name":"VariableDeclaration","src":"1882:14:11"},{"attributes":{"constant":false,"indexed":false,"name":"_magnitude","scope":4258,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4251,"name":"ElementaryTypeName","src":"1898:4:11"}],"id":4252,"name":"VariableDeclaration","src":"1898:15:11"},{"attributes":{"constant":false,"indexed":false,"name":"_loadable","scope":4258,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":4253,"name":"ElementaryTypeName","src":"1915:4:11"}],"id":4254,"name":"VariableDeclaration","src":"1915:14:11"},{"attributes":{"constant":false,"indexed":false,"name":"_burnable","scope":4258,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":4255,"name":"ElementaryTypeName","src":"1931:4:11"}],"id":4256,"name":"VariableDeclaration","src":"1931:14:11"}],"id":4257,"name":"ParameterList","src":"1848:98:11"}],"id":4258,"name":"EventDefinition","src":"1832:115:11"},{"attributes":{"anonymous":false,"documentation":null,"name":"RemovedToken"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_sender","scope":4264,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":4259,"name":"ElementaryTypeName","src":"1971:7:11"}],"id":4260,"name":"VariableDeclaration","src":"1971:15:11"},{"attributes":{"constant":false,"indexed":false,"name":"_token","scope":4264,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":4261,"name":"ElementaryTypeName","src":"1988:7:11"}],"id":4262,"name":"VariableDeclaration","src":"1988:14:11"}],"id":4263,"name":"ParameterList","src":"1970:33:11"}],"id":4264,"name":"EventDefinition","src":"1952:52:11"},{"attributes":{"canonicalName":"TokenWhitelist.Token","name":"Token","scope":4736,"visibility":"public"},"children":[{"attributes":{"constant":false,"name":"symbol","scope":4279,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":4265,"name":"ElementaryTypeName","src":"2033:6:11"}],"id":4266,"name":"VariableDeclaration","src":"2033:13:11"},{"attributes":{"constant":false,"name":"magnitude","scope":4279,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4267,"name":"ElementaryTypeName","src":"2075:4:11"}],"id":4268,"name":"VariableDeclaration","src":"2075:14:11"},{"attributes":{"constant":false,"name":"rate","scope":4279,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4269,"name":"ElementaryTypeName","src":"2116:4:11"}],"id":4270,"name":"VariableDeclaration","src":"2116:9:11"},{"attributes":{"constant":false,"name":"available","scope":4279,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":4271,"name":"ElementaryTypeName","src":"2172:4:11"}],"id":4272,"name":"VariableDeclaration","src":"2172:14:11"},{"attributes":{"constant":false,"name":"loadable","scope":4279,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":4273,"name":"ElementaryTypeName","src":"2240:4:11"}],"id":4274,"name":"VariableDeclaration","src":"2240:13:11"},{"attributes":{"constant":false,"name":"burnable","scope":4279,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":4275,"name":"ElementaryTypeName","src":"2313:4:11"}],"id":4276,"name":"VariableDeclaration","src":"2313:13:11"},{"attributes":{"constant":false,"name":"lastUpdate","scope":4279,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4277,"name":"ElementaryTypeName","src":"2396:4:11"}],"id":4278,"name":"VariableDeclaration","src":"2396:15:11"}],"id":4279,"name":"StructDefinition","src":"2010:441:11"},{"attributes":{"constant":false,"name":"_tokenInfoMap","scope":4736,"stateVariable":true,"storageLocation":"default","type":"mapping(address => struct TokenWhitelist.Token)","value":null,"visibility":"private"},"children":[{"attributes":{"type":"mapping(address => struct TokenWhitelist.Token)"},"children":[{"attributes":{"name":"address","type":"address"},"id":4280,"name":"ElementaryTypeName","src":"2465:7:11"},{"attributes":{"contractScope":null,"name":"Token","referencedDeclaration":4279,"type":"struct TokenWhitelist.Token"},"id":4281,"name":"UserDefinedTypeName","src":"2476:5:11"}],"id":4282,"name":"Mapping","src":"2457:25:11"}],"id":4283,"name":"VariableDeclaration","src":"2457:47:11"},{"attributes":{"constant":false,"name":"_tokenAddressArray","scope":4736,"stateVariable":true,"storageLocation":"default","type":"address[]","value":null,"visibility":"private"},"children":[{"attributes":{"length":null,"type":"address[]"},"children":[{"attributes":{"name":"address","type":"address"},"id":4284,"name":"ElementaryTypeName","src":"2510:7:11"}],"id":4285,"name":"ArrayTypeName","src":"2510:9:11"}],"id":4286,"name":"VariableDeclaration","src":"2510:36:11"},{"attributes":{"documentation":null,"name":"onlyControllerOrOracle","visibility":"internal"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":4287,"name":"ParameterList","src":"2584:2:11"},{"children":[{"attributes":{"assignments":[4289]},"children":[{"attributes":{"constant":false,"name":"oracleAddress","scope":4309,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":4288,"name":"ElementaryTypeName","src":"2597:7:11"}],"id":4289,"name":"VariableDeclaration","src":"2597:21:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[null],"referencedDeclaration":2325,"type":"function (bytes32) view returns (address)","value":"_ensResolve"},"id":4290,"name":"Identifier","src":"2621:11:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4313,"type":"bytes32","value":"_oracleNode"},"id":4291,"name":"Identifier","src":"2633:11:11"}],"id":4292,"name":"FunctionCall","src":"2621:24:11"}],"id":4293,"name":"VariableDeclarationStatement","src":"2597:48:11"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7f651a1c3852ff2a697b659eaace9616ca61af623afbb095898c910cf89ec35f","typeString":"literal_string \"either oracle or controller\""}],"overloadedDeclarations":[6502,6503],"referencedDeclaration":6503,"type":"function (bool,string memory) pure","value":"require"},"id":4294,"name":"Identifier","src":"2655:7:11"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"||","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2274,"type":"function (address) view returns (bool)","value":"_isController"},"id":4295,"name":"Identifier","src":"2664:13:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6499,"type":"msg","value":"msg"},"id":4296,"name":"Identifier","src":"2678:3:11"}],"id":4297,"name":"MemberAccess","src":"2678:10:11"}],"id":4298,"name":"FunctionCall","src":"2664:25:11"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6499,"type":"msg","value":"msg"},"id":4299,"name":"Identifier","src":"2693:3:11"}],"id":4300,"name":"MemberAccess","src":"2693:10:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4289,"type":"address","value":"oracleAddress"},"id":4301,"name":"Identifier","src":"2707:13:11"}],"id":4302,"name":"BinaryOperation","src":"2693:27:11"}],"id":4303,"name":"BinaryOperation","src":"2664:56:11"},{"attributes":{"argumentTypes":null,"hexvalue":"656974686572206f7261636c65206f7220636f6e74726f6c6c6572","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"either oracle or controller\"","value":"either oracle or controller"},"id":4304,"name":"Literal","src":"2722:29:11"}],"id":4305,"name":"FunctionCall","src":"2655:97:11"}],"id":4306,"name":"ExpressionStatement","src":"2655:97:11"},{"id":4307,"name":"PlaceholderStatement","src":"2762:1:11"}],"id":4308,"name":"Block","src":"2587:183:11"}],"id":4309,"name":"ModifierDefinition","src":"2553:217:11"},{"attributes":{"constant":false,"name":"_stablecoin","scope":4736,"stateVariable":true,"storageLocation":"default","type":"address","value":null,"visibility":"private"},"children":[{"attributes":{"name":"address","type":"address"},"id":4310,"name":"ElementaryTypeName","src":"2819:7:11"}],"id":4311,"name":"VariableDeclaration","src":"2819:27:11"},{"attributes":{"constant":false,"name":"_oracleNode","scope":4736,"stateVariable":true,"storageLocation":"default","type":"bytes32","value":null,"visibility":"private"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":4312,"name":"ElementaryTypeName","src":"2930:7:11"}],"id":4313,"name":"VariableDeclaration","src":"2930:27:11"},{"attributes":{"constant":false,"documentation":"@notice Constructor initializes ENSResolvable, Controllable, and Ownable\n @param _oracleNameHash_ is the ENS name hash of the Oracle.\n @param _stabelcoinAddress_ is the address of the stablecoint used by the wallet","implemented":true,"isConstructor":true,"name":"","payable":false,"scope":4736,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"_ens_","scope":4347,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":4314,"name":"ElementaryTypeName","src":"3213:7:11"}],"id":4315,"name":"VariableDeclaration","src":"3213:13:11"},{"attributes":{"constant":false,"name":"_oracleNameHash_","scope":4347,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":4316,"name":"ElementaryTypeName","src":"3228:7:11"}],"id":4317,"name":"VariableDeclaration","src":"3228:24:11"},{"attributes":{"constant":false,"name":"_controllerNameHash_","scope":4347,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":4318,"name":"ElementaryTypeName","src":"3254:7:11"}],"id":4319,"name":"VariableDeclaration","src":"3254:28:11"},{"attributes":{"constant":false,"name":"_owner_","scope":4347,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":4320,"name":"ElementaryTypeName","src":"3284:7:11"}],"id":4321,"name":"VariableDeclaration","src":"3284:15:11"},{"attributes":{"constant":false,"name":"_transferable_","scope":4347,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":4322,"name":"ElementaryTypeName","src":"3301:4:11"}],"id":4323,"name":"VariableDeclaration","src":"3301:19:11"},{"attributes":{"constant":false,"name":"_stabelcoinAddress_","scope":4347,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":4324,"name":"ElementaryTypeName","src":"3322:7:11"}],"id":4325,"name":"VariableDeclaration","src":"3322:27:11"}],"id":4326,"name":"ParameterList","src":"3212:138:11"},{"attributes":{"parameters":[null]},"children":[],"id":4337,"name":"ParameterList","src":"3447:0:11"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2326,"type":"type(contract ENSResolvable)","value":"ENSResolvable"},"id":4327,"name":"Identifier","src":"3351:13:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4315,"type":"address","value":"_ens_"},"id":4328,"name":"Identifier","src":"3365:5:11"}],"id":4329,"name":"ModifierInvocation","src":"3351:20:11"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2275,"type":"type(contract Controllable)","value":"Controllable"},"id":4330,"name":"Identifier","src":"3372:12:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4319,"type":"bytes32","value":"_controllerNameHash_"},"id":4331,"name":"Identifier","src":"3385:20:11"}],"id":4332,"name":"ModifierInvocation","src":"3372:34:11"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2483,"type":"type(contract Ownable)","value":"Ownable"},"id":4333,"name":"Identifier","src":"3407:7:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4321,"type":"address","value":"_owner_"},"id":4334,"name":"Identifier","src":"3415:7:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4323,"type":"bool","value":"_transferable_"},"id":4335,"name":"Identifier","src":"3424:14:11"}],"id":4336,"name":"ModifierInvocation","src":"3407:32:11"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4313,"type":"bytes32","value":"_oracleNode"},"id":4338,"name":"Identifier","src":"3457:11:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4317,"type":"bytes32","value":"_oracleNameHash_"},"id":4339,"name":"Identifier","src":"3471:16:11"}],"id":4340,"name":"Assignment","src":"3457:30:11"}],"id":4341,"name":"ExpressionStatement","src":"3457:30:11"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4311,"type":"address","value":"_stablecoin"},"id":4342,"name":"Identifier","src":"3497:11:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4325,"type":"address","value":"_stabelcoinAddress_"},"id":4343,"name":"Identifier","src":"3511:19:11"}],"id":4344,"name":"Assignment","src":"3497:33:11"}],"id":4345,"name":"ExpressionStatement","src":"3497:33:11"}],"id":4346,"name":"Block","src":"3447:90:11"}],"id":4347,"name":"FunctionDefinition","src":"3201:336:11"},{"attributes":{"constant":false,"documentation":"@notice Add ERC20 tokens to the list of whitelisted tokens.\n @param _tokens ERC20 token contract addresses.\n @param _symbols ERC20 token names.\n @param _magnitude 10 to the power of number of decimal places used by each ERC20 token.\n @param _loadable is a bool that states whether or not a token is loadable to the TokenCard.\n @param _burnable is a bool that states whether or not a token is burnable in the TKN Holder Contract.\n @param _lastUpdate is a unit representing an ISO datetime e.g. 20180913153211","implemented":true,"isConstructor":false,"name":"addTokens","payable":false,"scope":4736,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_tokens","scope":4479,"stateVariable":false,"storageLocation":"default","type":"address[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"address[]"},"children":[{"attributes":{"name":"address","type":"address"},"id":4348,"name":"ElementaryTypeName","src":"4120:7:11"}],"id":4349,"name":"ArrayTypeName","src":"4120:9:11"}],"id":4350,"name":"VariableDeclaration","src":"4120:17:11"},{"attributes":{"constant":false,"name":"_symbols","scope":4479,"stateVariable":false,"storageLocation":"default","type":"bytes32[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"bytes32[]"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":4351,"name":"ElementaryTypeName","src":"4139:7:11"}],"id":4352,"name":"ArrayTypeName","src":"4139:9:11"}],"id":4353,"name":"VariableDeclaration","src":"4139:18:11"},{"attributes":{"constant":false,"name":"_magnitude","scope":4479,"stateVariable":false,"storageLocation":"default","type":"uint256[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"uint256[]"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4354,"name":"ElementaryTypeName","src":"4159:4:11"}],"id":4355,"name":"ArrayTypeName","src":"4159:6:11"}],"id":4356,"name":"VariableDeclaration","src":"4159:17:11"},{"attributes":{"constant":false,"name":"_loadable","scope":4479,"stateVariable":false,"storageLocation":"default","type":"bool[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"bool[]"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":4357,"name":"ElementaryTypeName","src":"4178:4:11"}],"id":4358,"name":"ArrayTypeName","src":"4178:6:11"}],"id":4359,"name":"VariableDeclaration","src":"4178:16:11"},{"attributes":{"constant":false,"name":"_burnable","scope":4479,"stateVariable":false,"storageLocation":"default","type":"bool[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"bool[]"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":4360,"name":"ElementaryTypeName","src":"4196:4:11"}],"id":4361,"name":"ArrayTypeName","src":"4196:6:11"}],"id":4362,"name":"VariableDeclaration","src":"4196:16:11"},{"attributes":{"constant":false,"name":"_lastUpdate","scope":4479,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4363,"name":"ElementaryTypeName","src":"4214:4:11"}],"id":4364,"name":"VariableDeclaration","src":"4214:16:11"}],"id":4365,"name":"ParameterList","src":"4119:112:11"},{"attributes":{"parameters":[null]},"children":[],"id":4368,"name":"ParameterList","src":"4256:0:11"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2249,"type":"modifier ()","value":"onlyController"},"id":4366,"name":"Identifier","src":"4241:14:11"}],"id":4367,"name":"ModifierInvocation","src":"4241:14:11"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_229d13192b5da189e34c035711b06ef00014d6b1ae3d20f5919a9f7f0dc28e53","typeString":"literal_string \"parameter lengths do not match\""}],"overloadedDeclarations":[6502,6503],"referencedDeclaration":6503,"type":"function (bool,string memory) pure","value":"require"},"id":4369,"name":"Identifier","src":"4327:7:11"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&&","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&&","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&&","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4350,"type":"address[] calldata","value":"_tokens"},"id":4370,"name":"Identifier","src":"4335:7:11"}],"id":4371,"name":"MemberAccess","src":"4335:14:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4353,"type":"bytes32[] calldata","value":"_symbols"},"id":4372,"name":"Identifier","src":"4353:8:11"}],"id":4373,"name":"MemberAccess","src":"4353:15:11"}],"id":4374,"name":"BinaryOperation","src":"4335:33:11"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4350,"type":"address[] calldata","value":"_tokens"},"id":4375,"name":"Identifier","src":"4372:7:11"}],"id":4376,"name":"MemberAccess","src":"4372:14:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4356,"type":"uint256[] calldata","value":"_magnitude"},"id":4377,"name":"Identifier","src":"4390:10:11"}],"id":4378,"name":"MemberAccess","src":"4390:17:11"}],"id":4379,"name":"BinaryOperation","src":"4372:35:11"}],"id":4380,"name":"BinaryOperation","src":"4335:72:11"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4350,"type":"address[] calldata","value":"_tokens"},"id":4381,"name":"Identifier","src":"4411:7:11"}],"id":4382,"name":"MemberAccess","src":"4411:14:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4359,"type":"bool[] calldata","value":"_loadable"},"id":4383,"name":"Identifier","src":"4429:9:11"}],"id":4384,"name":"MemberAccess","src":"4429:16:11"}],"id":4385,"name":"BinaryOperation","src":"4411:34:11"}],"id":4386,"name":"BinaryOperation","src":"4335:110:11"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4350,"type":"address[] calldata","value":"_tokens"},"id":4387,"name":"Identifier","src":"4449:7:11"}],"id":4388,"name":"MemberAccess","src":"4449:14:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4359,"type":"bool[] calldata","value":"_loadable"},"id":4389,"name":"Identifier","src":"4467:9:11"}],"id":4390,"name":"MemberAccess","src":"4467:16:11"}],"id":4391,"name":"BinaryOperation","src":"4449:34:11"}],"id":4392,"name":"BinaryOperation","src":"4335:148:11"},{"attributes":{"argumentTypes":null,"hexvalue":"706172616d65746572206c656e6774687320646f206e6f74206d61746368","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"parameter lengths do not match\"","value":"parameter lengths do not match"},"id":4393,"name":"Literal","src":"4485:32:11"}],"id":4394,"name":"FunctionCall","src":"4327:191:11"}],"id":4395,"name":"ExpressionStatement","src":"4327:191:11"},{"children":[{"attributes":{"assignments":[4397]},"children":[{"attributes":{"constant":false,"name":"i","scope":4479,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4396,"name":"ElementaryTypeName","src":"4592:4:11"}],"id":4397,"name":"VariableDeclaration","src":"4592:6:11"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4398,"name":"Literal","src":"4601:1:11"}],"id":4399,"name":"VariableDeclarationStatement","src":"4592:10:11"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4397,"type":"uint256","value":"i"},"id":4400,"name":"Identifier","src":"4604:1:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4350,"type":"address[] calldata","value":"_tokens"},"id":4401,"name":"Identifier","src":"4608:7:11"}],"id":4402,"name":"MemberAccess","src":"4608:14:11"}],"id":4403,"name":"BinaryOperation","src":"4604:18:11"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4397,"type":"uint256","value":"i"},"id":4404,"name":"Identifier","src":"4624:1:11"}],"id":4405,"name":"UnaryOperation","src":"4624:3:11"}],"id":4406,"name":"ExpressionStatement","src":"4624:3:11"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e7eb3a05df4990307bc322b918e16d072d8c2936ee70a5abacdb05979a5cec23","typeString":"literal_string \"token already available\""}],"overloadedDeclarations":[6502,6503],"referencedDeclaration":6503,"type":"function (bool,string memory) pure","value":"require"},"id":4407,"name":"Identifier","src":"4706:7:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"available","referencedDeclaration":4272,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct TokenWhitelist.Token storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4283,"type":"mapping(address => struct TokenWhitelist.Token storage ref)","value":"_tokenInfoMap"},"id":4408,"name":"Identifier","src":"4715:13:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4350,"type":"address[] calldata","value":"_tokens"},"id":4409,"name":"Identifier","src":"4729:7:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4397,"type":"uint256","value":"i"},"id":4410,"name":"Identifier","src":"4737:1:11"}],"id":4411,"name":"IndexAccess","src":"4729:10:11"}],"id":4412,"name":"IndexAccess","src":"4715:25:11"}],"id":4413,"name":"MemberAccess","src":"4715:35:11"}],"id":4414,"name":"UnaryOperation","src":"4714:36:11"},{"attributes":{"argumentTypes":null,"hexvalue":"746f6b656e20616c726561647920617661696c61626c65","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"token already available\"","value":"token already available"},"id":4415,"name":"Literal","src":"4752:25:11"}],"id":4416,"name":"FunctionCall","src":"4706:72:11"}],"id":4417,"name":"ExpressionStatement","src":"4706:72:11"},{"attributes":{"assignments":[4419]},"children":[{"attributes":{"constant":false,"name":"symbol","scope":4479,"stateVariable":false,"storageLocation":"memory","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":4418,"name":"ElementaryTypeName","src":"4838:6:11"}],"id":4419,"name":"VariableDeclaration","src":"4838:20:11"},{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"string memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"toString","referencedDeclaration":5034,"type":"function (struct strings.slice memory) pure returns (string memory)"},"children":[{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"struct strings.slice memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"toSliceB32","referencedDeclaration":4989,"type":"function (bytes32) pure returns (struct strings.slice memory)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4353,"type":"bytes32[] calldata","value":"_symbols"},"id":4420,"name":"Identifier","src":"4861:8:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4397,"type":"uint256","value":"i"},"id":4421,"name":"Identifier","src":"4870:1:11"}],"id":4422,"name":"IndexAccess","src":"4861:11:11"}],"id":4423,"name":"MemberAccess","src":"4861:22:11"}],"id":4424,"name":"FunctionCall","src":"4861:24:11"}],"id":4425,"name":"MemberAccess","src":"4861:33:11"}],"id":4426,"name":"FunctionCall","src":"4861:35:11"}],"id":4427,"name":"VariableDeclarationStatement","src":"4838:58:11"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"struct TokenWhitelist.Token storage ref"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"struct TokenWhitelist.Token storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4283,"type":"mapping(address => struct TokenWhitelist.Token storage ref)","value":"_tokenInfoMap"},"id":4428,"name":"Identifier","src":"4958:13:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4350,"type":"address[] calldata","value":"_tokens"},"id":4429,"name":"Identifier","src":"4972:7:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4397,"type":"uint256","value":"i"},"id":4430,"name":"Identifier","src":"4980:1:11"}],"id":4431,"name":"IndexAccess","src":"4972:10:11"}],"id":4432,"name":"IndexAccess","src":"4958:25:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":true,"lValueRequested":false,"names":["symbol","magnitude","rate","available","loadable","burnable","lastUpdate"],"type":"struct TokenWhitelist.Token memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4279,"type":"type(struct TokenWhitelist.Token storage pointer)","value":"Token"},"id":4433,"name":"Identifier","src":"4986:5:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4419,"type":"string memory","value":"symbol"},"id":4434,"name":"Identifier","src":"5019:6:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4356,"type":"uint256[] calldata","value":"_magnitude"},"id":4435,"name":"Identifier","src":"5055:10:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4397,"type":"uint256","value":"i"},"id":4436,"name":"Identifier","src":"5066:1:11"}],"id":4437,"name":"IndexAccess","src":"5055:13:11"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4438,"name":"Literal","src":"5093:1:11"},{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":4439,"name":"Literal","src":"5124:4:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4359,"type":"bool[] calldata","value":"_loadable"},"id":4440,"name":"Identifier","src":"5157:9:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4397,"type":"uint256","value":"i"},"id":4441,"name":"Identifier","src":"5167:1:11"}],"id":4442,"name":"IndexAccess","src":"5157:12:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4362,"type":"bool[] calldata","value":"_burnable"},"id":4443,"name":"Identifier","src":"5197:9:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4397,"type":"uint256","value":"i"},"id":4444,"name":"Identifier","src":"5207:1:11"}],"id":4445,"name":"IndexAccess","src":"5197:12:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4364,"type":"uint256","value":"_lastUpdate"},"id":4446,"name":"Identifier","src":"5240:11:11"}],"id":4447,"name":"FunctionCall","src":"4986:284:11"}],"id":4448,"name":"Assignment","src":"4958:312:11"}],"id":4449,"name":"ExpressionStatement","src":"4958:312:11"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"push","referencedDeclaration":null,"type":"function (address) returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4286,"type":"address[] storage ref","value":"_tokenAddressArray"},"id":4450,"name":"Identifier","src":"5342:18:11"}],"id":4452,"name":"MemberAccess","src":"5342:23:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4350,"type":"address[] calldata","value":"_tokens"},"id":4453,"name":"Identifier","src":"5366:7:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4397,"type":"uint256","value":"i"},"id":4454,"name":"Identifier","src":"5374:1:11"}],"id":4455,"name":"IndexAccess","src":"5366:10:11"}],"id":4456,"name":"FunctionCall","src":"5342:35:11"}],"id":4457,"name":"ExpressionStatement","src":"5342:35:11"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"overloadedDeclarations":[null],"referencedDeclaration":4258,"type":"function (address,address,string memory,uint256,bool,bool)","value":"AddedToken"},"id":4458,"name":"Identifier","src":"5438:10:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6499,"type":"msg","value":"msg"},"id":4459,"name":"Identifier","src":"5449:3:11"}],"id":4460,"name":"MemberAccess","src":"5449:10:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4350,"type":"address[] calldata","value":"_tokens"},"id":4461,"name":"Identifier","src":"5461:7:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4397,"type":"uint256","value":"i"},"id":4462,"name":"Identifier","src":"5469:1:11"}],"id":4463,"name":"IndexAccess","src":"5461:10:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4419,"type":"string memory","value":"symbol"},"id":4464,"name":"Identifier","src":"5473:6:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4356,"type":"uint256[] calldata","value":"_magnitude"},"id":4465,"name":"Identifier","src":"5481:10:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4397,"type":"uint256","value":"i"},"id":4466,"name":"Identifier","src":"5492:1:11"}],"id":4467,"name":"IndexAccess","src":"5481:13:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4359,"type":"bool[] calldata","value":"_loadable"},"id":4468,"name":"Identifier","src":"5496:9:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4397,"type":"uint256","value":"i"},"id":4469,"name":"Identifier","src":"5506:1:11"}],"id":4470,"name":"IndexAccess","src":"5496:12:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4362,"type":"bool[] calldata","value":"_burnable"},"id":4471,"name":"Identifier","src":"5510:9:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4397,"type":"uint256","value":"i"},"id":4472,"name":"Identifier","src":"5520:1:11"}],"id":4473,"name":"IndexAccess","src":"5510:12:11"}],"id":4474,"name":"FunctionCall","src":"5438:85:11"}],"id":4475,"name":"EmitStatement","src":"5433:90:11"}],"id":4476,"name":"Block","src":"4629:905:11"}],"id":4477,"name":"ForStatement","src":"4587:947:11"}],"id":4478,"name":"Block","src":"4256:1284:11"}],"id":4479,"name":"FunctionDefinition","src":"4101:1439:11"},{"attributes":{"constant":false,"documentation":"@notice Remove ERC20 tokens from the whitelist of tokens.\n @param _tokens ERC20 token contract addresses.","implemented":true,"isConstructor":false,"name":"removeTokens","payable":false,"scope":4736,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_tokens","scope":4569,"stateVariable":false,"storageLocation":"default","type":"address[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"address[]"},"children":[{"attributes":{"name":"address","type":"address"},"id":4480,"name":"ElementaryTypeName","src":"5689:7:11"}],"id":4481,"name":"ArrayTypeName","src":"5689:9:11"}],"id":4482,"name":"VariableDeclaration","src":"5689:17:11"}],"id":4483,"name":"ParameterList","src":"5688:19:11"},{"attributes":{"parameters":[null]},"children":[],"id":4486,"name":"ParameterList","src":"5732:0:11"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2249,"type":"modifier ()","value":"onlyController"},"id":4484,"name":"Identifier","src":"5717:14:11"}],"id":4485,"name":"ModifierInvocation","src":"5717:14:11"},{"children":[{"children":[{"attributes":{"assignments":[4488]},"children":[{"attributes":{"constant":false,"name":"i","scope":4569,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4487,"name":"ElementaryTypeName","src":"5850:4:11"}],"id":4488,"name":"VariableDeclaration","src":"5850:6:11"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4489,"name":"Literal","src":"5859:1:11"}],"id":4490,"name":"VariableDeclarationStatement","src":"5850:10:11"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4488,"type":"uint256","value":"i"},"id":4491,"name":"Identifier","src":"5862:1:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4482,"type":"address[] calldata","value":"_tokens"},"id":4492,"name":"Identifier","src":"5866:7:11"}],"id":4493,"name":"MemberAccess","src":"5866:14:11"}],"id":4494,"name":"BinaryOperation","src":"5862:18:11"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4488,"type":"uint256","value":"i"},"id":4495,"name":"Identifier","src":"5882:1:11"}],"id":4496,"name":"UnaryOperation","src":"5882:3:11"}],"id":4497,"name":"ExpressionStatement","src":"5882:3:11"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d487155ec60125f09758305e6de21696dc3e345a5b0edca0b920691dd5be4852","typeString":"literal_string \"token is not available\""}],"overloadedDeclarations":[6502,6503],"referencedDeclaration":6503,"type":"function (bool,string memory) pure","value":"require"},"id":4498,"name":"Identifier","src":"5970:7:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"available","referencedDeclaration":4272,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct TokenWhitelist.Token storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4283,"type":"mapping(address => struct TokenWhitelist.Token storage ref)","value":"_tokenInfoMap"},"id":4499,"name":"Identifier","src":"5978:13:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4482,"type":"address[] calldata","value":"_tokens"},"id":4500,"name":"Identifier","src":"5992:7:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4488,"type":"uint256","value":"i"},"id":4501,"name":"Identifier","src":"6000:1:11"}],"id":4502,"name":"IndexAccess","src":"5992:10:11"}],"id":4503,"name":"IndexAccess","src":"5978:25:11"}],"id":4504,"name":"MemberAccess","src":"5978:35:11"},{"attributes":{"argumentTypes":null,"hexvalue":"746f6b656e206973206e6f7420617661696c61626c65","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"token is not available\"","value":"token is not available"},"id":4505,"name":"Literal","src":"6015:24:11"}],"id":4506,"name":"FunctionCall","src":"5970:70:11"}],"id":4507,"name":"ExpressionStatement","src":"5970:70:11"},{"attributes":{"assignments":[4509]},"children":[{"attributes":{"constant":false,"name":"token","scope":4569,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":4508,"name":"ElementaryTypeName","src":"6094:7:11"}],"id":4509,"name":"VariableDeclaration","src":"6094:13:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4482,"type":"address[] calldata","value":"_tokens"},"id":4510,"name":"Identifier","src":"6110:7:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4488,"type":"uint256","value":"i"},"id":4511,"name":"Identifier","src":"6118:1:11"}],"id":4512,"name":"IndexAccess","src":"6110:10:11"}],"id":4513,"name":"VariableDeclarationStatement","src":"6094:26:11"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"delete","prefix":true,"type":"tuple()"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"struct TokenWhitelist.Token storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4283,"type":"mapping(address => struct TokenWhitelist.Token storage ref)","value":"_tokenInfoMap"},"id":4514,"name":"Identifier","src":"6181:13:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4509,"type":"address","value":"token"},"id":4515,"name":"Identifier","src":"6195:5:11"}],"id":4516,"name":"IndexAccess","src":"6181:20:11"}],"id":4517,"name":"UnaryOperation","src":"6174:27:11"}],"id":4518,"name":"ExpressionStatement","src":"6174:27:11"},{"children":[{"attributes":{"assignments":[4520]},"children":[{"attributes":{"constant":false,"name":"j","scope":4569,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4519,"name":"ElementaryTypeName","src":"6283:4:11"}],"id":4520,"name":"VariableDeclaration","src":"6283:6:11"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":4521,"name":"Literal","src":"6292:1:11"}],"id":4522,"name":"VariableDeclarationStatement","src":"6283:10:11"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4520,"type":"uint256","value":"j"},"id":4523,"name":"Identifier","src":"6295:1:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sub","referencedDeclaration":2174,"type":"function (uint256,uint256) pure returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4286,"type":"address[] storage ref","value":"_tokenAddressArray"},"id":4524,"name":"Identifier","src":"6299:18:11"}],"id":4525,"name":"MemberAccess","src":"6299:25:11"}],"id":4526,"name":"MemberAccess","src":"6299:29:11"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":4527,"name":"Literal","src":"6329:1:11"}],"id":4528,"name":"FunctionCall","src":"6299:32:11"}],"id":4529,"name":"BinaryOperation","src":"6295:36:11"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4520,"type":"uint256","value":"j"},"id":4530,"name":"Identifier","src":"6333:1:11"}],"id":4531,"name":"UnaryOperation","src":"6333:3:11"}],"id":4532,"name":"ExpressionStatement","src":"6333:3:11"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4286,"type":"address[] storage ref","value":"_tokenAddressArray"},"id":4533,"name":"Identifier","src":"6360:18:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4520,"type":"uint256","value":"j"},"id":4534,"name":"Identifier","src":"6379:1:11"}],"id":4535,"name":"IndexAccess","src":"6360:21:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4509,"type":"address","value":"token"},"id":4536,"name":"Identifier","src":"6385:5:11"}],"id":4537,"name":"BinaryOperation","src":"6360:30:11"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"address"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4286,"type":"address[] storage ref","value":"_tokenAddressArray"},"id":4538,"name":"Identifier","src":"6414:18:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4520,"type":"uint256","value":"j"},"id":4539,"name":"Identifier","src":"6433:1:11"}],"id":4540,"name":"IndexAccess","src":"6414:21:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4286,"type":"address[] storage ref","value":"_tokenAddressArray"},"id":4541,"name":"Identifier","src":"6438:18:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sub","referencedDeclaration":2174,"type":"function (uint256,uint256) pure returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4286,"type":"address[] storage ref","value":"_tokenAddressArray"},"id":4542,"name":"Identifier","src":"6457:18:11"}],"id":4543,"name":"MemberAccess","src":"6457:25:11"}],"id":4544,"name":"MemberAccess","src":"6457:29:11"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":4545,"name":"Literal","src":"6487:1:11"}],"id":4546,"name":"FunctionCall","src":"6457:32:11"}],"id":4547,"name":"IndexAccess","src":"6438:52:11"}],"id":4548,"name":"Assignment","src":"6414:76:11"}],"id":4549,"name":"ExpressionStatement","src":"6414:76:11"},{"id":4550,"name":"Break","src":"6512:5:11"}],"id":4551,"name":"Block","src":"6392:144:11"}],"id":4552,"name":"IfStatement","src":"6356:180:11"}],"id":4553,"name":"Block","src":"6338:212:11"}],"id":4554,"name":"ForStatement","src":"6278:272:11"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"--","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4286,"type":"address[] storage ref","value":"_tokenAddressArray"},"id":4555,"name":"Identifier","src":"6563:18:11"}],"id":4557,"name":"MemberAccess","src":"6563:25:11"}],"id":4558,"name":"UnaryOperation","src":"6563:27:11"}],"id":4559,"name":"ExpressionStatement","src":"6563:27:11"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":4264,"type":"function (address,address)","value":"RemovedToken"},"id":4560,"name":"Identifier","src":"6650:12:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6499,"type":"msg","value":"msg"},"id":4561,"name":"Identifier","src":"6663:3:11"}],"id":4562,"name":"MemberAccess","src":"6663:10:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4509,"type":"address","value":"token"},"id":4563,"name":"Identifier","src":"6675:5:11"}],"id":4564,"name":"FunctionCall","src":"6650:31:11"}],"id":4565,"name":"EmitStatement","src":"6645:36:11"}],"id":4566,"name":"Block","src":"5887:805:11"}],"id":4567,"name":"ForStatement","src":"5845:847:11"}],"id":4568,"name":"Block","src":"5732:966:11"}],"id":4569,"name":"FunctionDefinition","src":"5667:1031:11"},{"attributes":{"constant":false,"documentation":"@notice Update ERC20 token exchange rate.\n @param _token ERC20 token contract address.\n @param _rate ERC20 token exchange rate in wei.\n @param _updateDate date for the token updates. This will be compared to when oracle updates are received.","implemented":true,"isConstructor":false,"name":"updateTokenRate","payable":false,"scope":4736,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_token","scope":4610,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":4570,"name":"ElementaryTypeName","src":"7000:7:11"}],"id":4571,"name":"VariableDeclaration","src":"7000:14:11"},{"attributes":{"constant":false,"name":"_rate","scope":4610,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4572,"name":"ElementaryTypeName","src":"7016:4:11"}],"id":4573,"name":"VariableDeclaration","src":"7016:10:11"},{"attributes":{"constant":false,"name":"_updateDate","scope":4610,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4574,"name":"ElementaryTypeName","src":"7028:4:11"}],"id":4575,"name":"VariableDeclaration","src":"7028:16:11"}],"id":4576,"name":"ParameterList","src":"6999:46:11"},{"attributes":{"parameters":[null]},"children":[],"id":4579,"name":"ParameterList","src":"7078:0:11"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4309,"type":"modifier ()","value":"onlyControllerOrOracle"},"id":4577,"name":"Identifier","src":"7055:22:11"}],"id":4578,"name":"ModifierInvocation","src":"7055:22:11"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d487155ec60125f09758305e6de21696dc3e345a5b0edca0b920691dd5be4852","typeString":"literal_string \"token is not available\""}],"overloadedDeclarations":[6502,6503],"referencedDeclaration":6503,"type":"function (bool,string memory) pure","value":"require"},"id":4580,"name":"Identifier","src":"7130:7:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"available","referencedDeclaration":4272,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct TokenWhitelist.Token storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4283,"type":"mapping(address => struct TokenWhitelist.Token storage ref)","value":"_tokenInfoMap"},"id":4581,"name":"Identifier","src":"7138:13:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4571,"type":"address","value":"_token"},"id":4582,"name":"Identifier","src":"7152:6:11"}],"id":4583,"name":"IndexAccess","src":"7138:21:11"}],"id":4584,"name":"MemberAccess","src":"7138:31:11"},{"attributes":{"argumentTypes":null,"hexvalue":"746f6b656e206973206e6f7420617661696c61626c65","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"token is not available\"","value":"token is not available"},"id":4585,"name":"Literal","src":"7171:24:11"}],"id":4586,"name":"FunctionCall","src":"7130:66:11"}],"id":4587,"name":"ExpressionStatement","src":"7130:66:11"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"rate","referencedDeclaration":4270,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct TokenWhitelist.Token storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4283,"type":"mapping(address => struct TokenWhitelist.Token storage ref)","value":"_tokenInfoMap"},"id":4588,"name":"Identifier","src":"7242:13:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4571,"type":"address","value":"_token"},"id":4589,"name":"Identifier","src":"7256:6:11"}],"id":4590,"name":"IndexAccess","src":"7242:21:11"}],"id":4591,"name":"MemberAccess","src":"7242:26:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4573,"type":"uint256","value":"_rate"},"id":4592,"name":"Identifier","src":"7271:5:11"}],"id":4593,"name":"Assignment","src":"7242:34:11"}],"id":4594,"name":"ExpressionStatement","src":"7242:34:11"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"lastUpdate","referencedDeclaration":4278,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct TokenWhitelist.Token storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4283,"type":"mapping(address => struct TokenWhitelist.Token storage ref)","value":"_tokenInfoMap"},"id":4595,"name":"Identifier","src":"7339:13:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4571,"type":"address","value":"_token"},"id":4596,"name":"Identifier","src":"7353:6:11"}],"id":4597,"name":"IndexAccess","src":"7339:21:11"}],"id":4598,"name":"MemberAccess","src":"7339:32:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4575,"type":"uint256","value":"_updateDate"},"id":4599,"name":"Identifier","src":"7374:11:11"}],"id":4600,"name":"Assignment","src":"7339:46:11"}],"id":4601,"name":"ExpressionStatement","src":"7339:46:11"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":4244,"type":"function (address,address,uint256)","value":"UpdatedTokenRate"},"id":4602,"name":"Identifier","src":"7439:16:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6499,"type":"msg","value":"msg"},"id":4603,"name":"Identifier","src":"7456:3:11"}],"id":4604,"name":"MemberAccess","src":"7456:10:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4571,"type":"address","value":"_token"},"id":4605,"name":"Identifier","src":"7468:6:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4573,"type":"uint256","value":"_rate"},"id":4606,"name":"Identifier","src":"7476:5:11"}],"id":4607,"name":"FunctionCall","src":"7439:43:11"}],"id":4608,"name":"EmitStatement","src":"7434:48:11"}],"id":4609,"name":"Block","src":"7078:411:11"}],"id":4610,"name":"FunctionDefinition","src":"6975:514:11"},{"attributes":{"constant":false,"documentation":"/ @notice Withdraw tokens from the smart contract to the specified account.","implemented":true,"isConstructor":false,"name":"claim","payable":false,"scope":4736,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_to","scope":4628,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":4611,"name":"ElementaryTypeName","src":"7593:7:11"}],"id":4612,"name":"VariableDeclaration","src":"7593:11:11"},{"attributes":{"constant":false,"name":"_asset","scope":4628,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":4613,"name":"ElementaryTypeName","src":"7606:7:11"}],"id":4614,"name":"VariableDeclaration","src":"7606:14:11"},{"attributes":{"constant":false,"name":"_amount","scope":4628,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":4615,"name":"ElementaryTypeName","src":"7622:4:11"}],"id":4616,"name":"VariableDeclaration","src":"7622:12:11"}],"id":4617,"name":"ParameterList","src":"7592:43:11"},{"attributes":{"parameters":[null]},"children":[],"id":4620,"name":"ParameterList","src":"7655:0:11"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2385,"type":"modifier ()","value":"onlyOwner"},"id":4618,"name":"Identifier","src":"7645:9:11"}],"id":4619,"name":"ModifierInvocation","src":"7645:9:11"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":4788,"type":"function (address,address,uint256)","value":"_claim"},"id":4621,"name":"Identifier","src":"7665:6:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4612,"type":"address","value":"_to"},"id":4622,"name":"Identifier","src":"7672:3:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4614,"type":"address","value":"_asset"},"id":4623,"name":"Identifier","src":"7677:6:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4616,"type":"uint256","value":"_amount"},"id":4624,"name":"Identifier","src":"7685:7:11"}],"id":4625,"name":"FunctionCall","src":"7665:28:11"}],"id":4626,"name":"ExpressionStatement","src":"7665:28:11"}],"id":4627,"name":"Block","src":"7655:45:11"}],"id":4628,"name":"FunctionDefinition","src":"7578:122:11"},{"attributes":{"constant":true,"documentation":"@notice This returns all of the fields for a given token\n @param _a is the address of a given token\n @return string of the token's symbol\n @return uint of the token's magnitude\n @return uint of the token's exchange rate to ETH\n @return bool whether the token is available\n @return bool whether the token is loadable to the TokenCard\n @return bool whether the token is burnable to the TKN Holder Contract\n @return uint of the lastUpdated time of the token's exchange rate","implemented":true,"isConstructor":false,"modifiers":[null],"name":"getTokenInfo","payable":false,"scope":4736,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_a","scope":4670,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":4629,"name":"ElementaryTypeName","src":"8263:7:11"}],"id":4630,"name":"VariableDeclaration","src":"8263:10:11"}],"id":4631,"name":"ParameterList","src":"8262:12:11"},{"children":[{"attributes":{"constant":false,"name":"","scope":4670,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":4632,"name":"ElementaryTypeName","src":"8298:6:11"}],"id":4633,"name":"VariableDeclaration","src":"8298:6:11"},{"attributes":{"constant":false,"name":"","scope":4670,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":4634,"name":"ElementaryTypeName","src":"8306:7:11"}],"id":4635,"name":"VariableDeclaration","src":"8306:7:11"},{"attributes":{"constant":false,"name":"","scope":4670,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":4636,"name":"ElementaryTypeName","src":"8315:7:11"}],"id":4637,"name":"VariableDeclaration","src":"8315:7:11"},{"attributes":{"constant":false,"name":"","scope":4670,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":4638,"name":"ElementaryTypeName","src":"8324:4:11"}],"id":4639,"name":"VariableDeclaration","src":"8324:4:11"},{"attributes":{"constant":false,"name":"","scope":4670,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":4640,"name":"ElementaryTypeName","src":"8330:4:11"}],"id":4641,"name":"VariableDeclaration","src":"8330:4:11"},{"attributes":{"constant":false,"name":"","scope":4670,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":4642,"name":"ElementaryTypeName","src":"8336:4:11"}],"id":4643,"name":"VariableDeclaration","src":"8336:4:11"},{"attributes":{"constant":false,"name":"","scope":4670,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":4644,"name":"ElementaryTypeName","src":"8342:7:11"}],"id":4645,"name":"VariableDeclaration","src":"8342:7:11"}],"id":4646,"name":"ParameterList","src":"8297:53:11"},{"children":[{"attributes":{"assignments":[4648]},"children":[{"attributes":{"constant":false,"name":"tokenInfo","scope":4670,"stateVariable":false,"storageLocation":"storage","type":"struct TokenWhitelist.Token","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"Token","referencedDeclaration":4279,"type":"struct TokenWhitelist.Token"},"id":4647,"name":"UserDefinedTypeName","src":"8361:5:11"}],"id":4648,"name":"VariableDeclaration","src":"8361:23:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct TokenWhitelist.Token storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4283,"type":"mapping(address => struct TokenWhitelist.Token storage ref)","value":"_tokenInfoMap"},"id":4649,"name":"Identifier","src":"8387:13:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4630,"type":"address","value":"_a"},"id":4650,"name":"Identifier","src":"8401:2:11"}],"id":4651,"name":"IndexAccess","src":"8387:17:11"}],"id":4652,"name":"VariableDeclarationStatement","src":"8361:43:11"},{"attributes":{"functionReturnParameters":4646},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"tuple(string storage ref,uint256,uint256,bool,bool,bool,uint256)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"symbol","referencedDeclaration":4266,"type":"string storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4648,"type":"struct TokenWhitelist.Token storage pointer","value":"tokenInfo"},"id":4653,"name":"Identifier","src":"8422:9:11"}],"id":4654,"name":"MemberAccess","src":"8422:16:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"magnitude","referencedDeclaration":4268,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4648,"type":"struct TokenWhitelist.Token storage pointer","value":"tokenInfo"},"id":4655,"name":"Identifier","src":"8440:9:11"}],"id":4656,"name":"MemberAccess","src":"8440:19:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"rate","referencedDeclaration":4270,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4648,"type":"struct TokenWhitelist.Token storage pointer","value":"tokenInfo"},"id":4657,"name":"Identifier","src":"8461:9:11"}],"id":4658,"name":"MemberAccess","src":"8461:14:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"available","referencedDeclaration":4272,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4648,"type":"struct TokenWhitelist.Token storage pointer","value":"tokenInfo"},"id":4659,"name":"Identifier","src":"8477:9:11"}],"id":4660,"name":"MemberAccess","src":"8477:19:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"loadable","referencedDeclaration":4274,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4648,"type":"struct TokenWhitelist.Token storage pointer","value":"tokenInfo"},"id":4661,"name":"Identifier","src":"8498:9:11"}],"id":4662,"name":"MemberAccess","src":"8498:18:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"burnable","referencedDeclaration":4276,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4648,"type":"struct TokenWhitelist.Token storage pointer","value":"tokenInfo"},"id":4663,"name":"Identifier","src":"8518:9:11"}],"id":4664,"name":"MemberAccess","src":"8518:18:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"lastUpdate","referencedDeclaration":4278,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4648,"type":"struct TokenWhitelist.Token storage pointer","value":"tokenInfo"},"id":4665,"name":"Identifier","src":"8538:9:11"}],"id":4666,"name":"MemberAccess","src":"8538:20:11"}],"id":4667,"name":"TupleExpression","src":"8421:138:11"}],"id":4668,"name":"Return","src":"8414:145:11"}],"id":4669,"name":"Block","src":"8351:215:11"}],"id":4670,"name":"FunctionDefinition","src":"8241:325:11"},{"attributes":{"constant":true,"documentation":"@notice This returns all of the fields for our StableCoin\n @return string of the token's symbol\n @return uint of the token's magnitude\n @return uint of the token's exchange rate to ETH\n @return bool whether the token is available\n @return bool whether the token is loadable to the TokenCard\n @return bool whether the token is burnable to the TKN Holder Contract\n @return uint of the lastUpdated time of the token's exchange rate","implemented":true,"isConstructor":false,"modifiers":[null],"name":"getStablecoinInfo","payable":false,"scope":4736,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":4671,"name":"ParameterList","src":"9084:2:11"},{"children":[{"attributes":{"constant":false,"name":"","scope":4710,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":4672,"name":"ElementaryTypeName","src":"9110:6:11"}],"id":4673,"name":"VariableDeclaration","src":"9110:6:11"},{"attributes":{"constant":false,"name":"","scope":4710,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":4674,"name":"ElementaryTypeName","src":"9118:7:11"}],"id":4675,"name":"VariableDeclaration","src":"9118:7:11"},{"attributes":{"constant":false,"name":"","scope":4710,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":4676,"name":"ElementaryTypeName","src":"9127:7:11"}],"id":4677,"name":"VariableDeclaration","src":"9127:7:11"},{"attributes":{"constant":false,"name":"","scope":4710,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":4678,"name":"ElementaryTypeName","src":"9136:4:11"}],"id":4679,"name":"VariableDeclaration","src":"9136:4:11"},{"attributes":{"constant":false,"name":"","scope":4710,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":4680,"name":"ElementaryTypeName","src":"9142:4:11"}],"id":4681,"name":"VariableDeclaration","src":"9142:4:11"},{"attributes":{"constant":false,"name":"","scope":4710,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":4682,"name":"ElementaryTypeName","src":"9148:4:11"}],"id":4683,"name":"VariableDeclaration","src":"9148:4:11"},{"attributes":{"constant":false,"name":"","scope":4710,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":4684,"name":"ElementaryTypeName","src":"9154:7:11"}],"id":4685,"name":"VariableDeclaration","src":"9154:7:11"}],"id":4686,"name":"ParameterList","src":"9109:53:11"},{"children":[{"attributes":{"assignments":[4688]},"children":[{"attributes":{"constant":false,"name":"stablecoinInfo","scope":4710,"stateVariable":false,"storageLocation":"storage","type":"struct TokenWhitelist.Token","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"Token","referencedDeclaration":4279,"type":"struct TokenWhitelist.Token"},"id":4687,"name":"UserDefinedTypeName","src":"9173:5:11"}],"id":4688,"name":"VariableDeclaration","src":"9173:28:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"struct TokenWhitelist.Token storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4283,"type":"mapping(address => struct TokenWhitelist.Token storage ref)","value":"_tokenInfoMap"},"id":4689,"name":"Identifier","src":"9204:13:11"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4311,"type":"address","value":"_stablecoin"},"id":4690,"name":"Identifier","src":"9218:11:11"}],"id":4691,"name":"IndexAccess","src":"9204:26:11"}],"id":4692,"name":"VariableDeclarationStatement","src":"9173:57:11"},{"attributes":{"functionReturnParameters":4686},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"tuple(string storage ref,uint256,uint256,bool,bool,bool,uint256)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"symbol","referencedDeclaration":4266,"type":"string storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4688,"type":"struct TokenWhitelist.Token storage pointer","value":"stablecoinInfo"},"id":4693,"name":"Identifier","src":"9248:14:11"}],"id":4694,"name":"MemberAccess","src":"9248:21:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"magnitude","referencedDeclaration":4268,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4688,"type":"struct TokenWhitelist.Token storage pointer","value":"stablecoinInfo"},"id":4695,"name":"Identifier","src":"9271:14:11"}],"id":4696,"name":"MemberAccess","src":"9271:24:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"rate","referencedDeclaration":4270,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4688,"type":"struct TokenWhitelist.Token storage pointer","value":"stablecoinInfo"},"id":4697,"name":"Identifier","src":"9297:14:11"}],"id":4698,"name":"MemberAccess","src":"9297:19:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"available","referencedDeclaration":4272,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4688,"type":"struct TokenWhitelist.Token storage pointer","value":"stablecoinInfo"},"id":4699,"name":"Identifier","src":"9318:14:11"}],"id":4700,"name":"MemberAccess","src":"9318:24:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"loadable","referencedDeclaration":4274,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4688,"type":"struct TokenWhitelist.Token storage pointer","value":"stablecoinInfo"},"id":4701,"name":"Identifier","src":"9344:14:11"}],"id":4702,"name":"MemberAccess","src":"9344:23:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"burnable","referencedDeclaration":4276,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4688,"type":"struct TokenWhitelist.Token storage pointer","value":"stablecoinInfo"},"id":4703,"name":"Identifier","src":"9369:14:11"}],"id":4704,"name":"MemberAccess","src":"9369:23:11"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"lastUpdate","referencedDeclaration":4278,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4688,"type":"struct TokenWhitelist.Token storage pointer","value":"stablecoinInfo"},"id":4705,"name":"Identifier","src":"9394:14:11"}],"id":4706,"name":"MemberAccess","src":"9394:25:11"}],"id":4707,"name":"TupleExpression","src":"9247:173:11"}],"id":4708,"name":"Return","src":"9240:180:11"}],"id":4709,"name":"Block","src":"9163:264:11"}],"id":4710,"name":"FunctionDefinition","src":"9058:369:11"},{"attributes":{"constant":true,"documentation":"@notice This returns an array of our whitelisted address\n @return address[] of our whitelisted tokens","implemented":true,"isConstructor":false,"modifiers":[null],"name":"tokenAddressArray","payable":false,"scope":4736,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":4711,"name":"ParameterList","src":"9576:2:11"},{"children":[{"attributes":{"constant":false,"name":"","scope":4719,"stateVariable":false,"storageLocation":"default","type":"address[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"address[]"},"children":[{"attributes":{"name":"address","type":"address"},"id":4712,"name":"ElementaryTypeName","src":"9602:7:11"}],"id":4713,"name":"ArrayTypeName","src":"9602:9:11"}],"id":4714,"name":"VariableDeclaration","src":"9602:9:11"}],"id":4715,"name":"ParameterList","src":"9601:11:11"},{"children":[{"attributes":{"functionReturnParameters":4715},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4286,"type":"address[] storage ref","value":"_tokenAddressArray"},"id":4716,"name":"Identifier","src":"9630:18:11"}],"id":4717,"name":"Return","src":"9623:25:11"}],"id":4718,"name":"Block","src":"9613:42:11"}],"id":4719,"name":"FunctionDefinition","src":"9550:105:11"},{"attributes":{"constant":true,"documentation":"@notice This returns the address of our stablecoin of choice\n @return the address of the stablecoin contract.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"stablecoin","payable":false,"scope":4736,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":4720,"name":"ParameterList","src":"9805:2:11"},{"children":[{"attributes":{"constant":false,"name":"","scope":4727,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":4721,"name":"ElementaryTypeName","src":"9831:7:11"}],"id":4722,"name":"VariableDeclaration","src":"9831:7:11"}],"id":4723,"name":"ParameterList","src":"9830:9:11"},{"children":[{"attributes":{"functionReturnParameters":4723},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4311,"type":"address","value":"_stablecoin"},"id":4724,"name":"Identifier","src":"9857:11:11"}],"id":4725,"name":"Return","src":"9850:18:11"}],"id":4726,"name":"Block","src":"9840:35:11"}],"id":4727,"name":"FunctionDefinition","src":"9786:89:11"},{"attributes":{"constant":true,"documentation":"@notice this returns the node hash of our Oracle\n @return the oracle node registered in ENS.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"oracleNode","payable":false,"scope":4736,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":4728,"name":"ParameterList","src":"10008:2:11"},{"children":[{"attributes":{"constant":false,"name":"","scope":4735,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":4729,"name":"ElementaryTypeName","src":"10034:7:11"}],"id":4730,"name":"VariableDeclaration","src":"10034:7:11"}],"id":4731,"name":"ParameterList","src":"10033:9:11"},{"children":[{"attributes":{"functionReturnParameters":4731},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":4313,"type":"bytes32","value":"_oracleNode"},"id":4732,"name":"Identifier","src":"10060:11:11"}],"id":4733,"name":"Return","src":"10053:18:11"}],"id":4734,"name":"Block","src":"10043:35:11"}],"id":4735,"name":"FunctionDefinition","src":"9989:89:11"}],"id":4736,"name":"ContractDefinition","src":"1619:8461:11"}],"id":4737,"name":"SourceUnit","src":"774:9307:11"}},"internals/tokenWhitelistable.sol":{"AST":{"attributes":{"absolutePath":"internals/tokenWhitelistable.sol","exportedSymbols":{"TokenWhitelistable":[2663]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".25"]},"id":2485,"name":"PragmaDirective","src":"778:24:12"},{"attributes":{"SourceUnit":4737,"absolutePath":"internals/tokenWhitelist.sol","file":"./tokenWhitelist.sol","scope":2664,"symbolAliases":[null],"unitAlias":""},"id":2486,"name":"ImportDirective","src":"804:30:12"},{"attributes":{"SourceUnit":2327,"absolutePath":"internals/ensResolvable.sol","file":"../internals/ensResolvable.sol","scope":2664,"symbolAliases":[null],"unitAlias":""},"id":2487,"name":"ImportDirective","src":"835:40:12"},{"attributes":{"contractDependencies":[2326],"contractKind":"contract","documentation":"@title TokenWhitelistable implements access to the TokenWhitelist located behind ENS.","fullyImplemented":false,"linearizedBaseContracts":[2663,2326],"name":"TokenWhitelistable","scope":2664},"children":[{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"ENSResolvable","referencedDeclaration":2326,"type":"contract ENSResolvable"},"id":2488,"name":"UserDefinedTypeName","src":"999:13:12"}],"id":2489,"name":"InheritanceSpecifier","src":"999:13:12"},{"attributes":{"constant":false,"name":"_tokenWhitelistNode","scope":2663,"stateVariable":true,"storageLocation":"default","type":"bytes32","value":null,"visibility":"private"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":2490,"name":"ElementaryTypeName","src":"1104:7:12"}],"id":2491,"name":"VariableDeclaration","src":"1104:35:12"},{"attributes":{"constant":false,"documentation":"@notice Constructor initializes the TokenWhitelistable object.\n @param _tokenWhitelistNameHash_ is the ENS name hash of the TokenWhitelist.","implemented":true,"isConstructor":true,"modifiers":[null],"name":"","payable":false,"scope":2663,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_tokenWhitelistNameHash_","scope":2501,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":2492,"name":"ElementaryTypeName","src":"1313:7:12"}],"id":2493,"name":"VariableDeclaration","src":"1313:32:12"}],"id":2494,"name":"ParameterList","src":"1312:34:12"},{"attributes":{"parameters":[null]},"children":[],"id":2495,"name":"ParameterList","src":"1356:0:12"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2491,"type":"bytes32","value":"_tokenWhitelistNode"},"id":2496,"name":"Identifier","src":"1366:19:12"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2493,"type":"bytes32","value":"_tokenWhitelistNameHash_"},"id":2497,"name":"Identifier","src":"1388:24:12"}],"id":2498,"name":"Assignment","src":"1366:46:12"}],"id":2499,"name":"ExpressionStatement","src":"1366:46:12"}],"id":2500,"name":"Block","src":"1356:63:12"}],"id":2501,"name":"FunctionDefinition","src":"1301:118:12"},{"attributes":{"constant":true,"documentation":"@notice This shows what TokenWhitelist is being used\n @return the TokenWhitelist's name hash registered in ENS.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"tokenWhitelistNode","payable":false,"scope":2663,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":2502,"name":"ParameterList","src":"1579:2:12"},{"children":[{"attributes":{"constant":false,"name":"","scope":2509,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":2503,"name":"ElementaryTypeName","src":"1605:7:12"}],"id":2504,"name":"VariableDeclaration","src":"1605:7:12"}],"id":2505,"name":"ParameterList","src":"1604:9:12"},{"children":[{"attributes":{"functionReturnParameters":2505},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2491,"type":"bytes32","value":"_tokenWhitelistNode"},"id":2506,"name":"Identifier","src":"1631:19:12"}],"id":2507,"name":"Return","src":"1624:26:12"}],"id":2508,"name":"Block","src":"1614:43:12"}],"id":2509,"name":"FunctionDefinition","src":"1552:105:12"},{"attributes":{"constant":true,"documentation":"@notice This returns all of the fields for a given token\n @param _a is the address of a given token\n @return string of the token's symbol\n @return uint of the token's magnitude\n @return uint of the token's exchange rate to ETH\n @return bool whether the token is available\n @return bool whether the token is loadable to the TokenCard\n @return bool whether the token is burnable to the TKN Holder Contract\n @return uint of the lastUpdated time of the token's exchange rate","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_getTokenInfo","payable":false,"scope":2663,"stateMutability":"view","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_a","scope":2538,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2510,"name":"ElementaryTypeName","src":"2221:7:12"}],"id":2511,"name":"VariableDeclaration","src":"2221:10:12"}],"id":2512,"name":"ParameterList","src":"2220:12:12"},{"children":[{"attributes":{"constant":false,"name":"","scope":2538,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":2513,"name":"ElementaryTypeName","src":"2256:6:12"}],"id":2514,"name":"VariableDeclaration","src":"2256:6:12"},{"attributes":{"constant":false,"name":"","scope":2538,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":2515,"name":"ElementaryTypeName","src":"2264:7:12"}],"id":2516,"name":"VariableDeclaration","src":"2264:7:12"},{"attributes":{"constant":false,"name":"","scope":2538,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":2517,"name":"ElementaryTypeName","src":"2273:7:12"}],"id":2518,"name":"VariableDeclaration","src":"2273:7:12"},{"attributes":{"constant":false,"name":"","scope":2538,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2519,"name":"ElementaryTypeName","src":"2282:4:12"}],"id":2520,"name":"VariableDeclaration","src":"2282:4:12"},{"attributes":{"constant":false,"name":"","scope":2538,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2521,"name":"ElementaryTypeName","src":"2288:4:12"}],"id":2522,"name":"VariableDeclaration","src":"2288:4:12"},{"attributes":{"constant":false,"name":"","scope":2538,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2523,"name":"ElementaryTypeName","src":"2294:4:12"}],"id":2524,"name":"VariableDeclaration","src":"2294:4:12"},{"attributes":{"constant":false,"name":"","scope":2538,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":2525,"name":"ElementaryTypeName","src":"2300:7:12"}],"id":2526,"name":"VariableDeclaration","src":"2300:7:12"}],"id":2527,"name":"ParameterList","src":"2255:53:12"},{"children":[{"attributes":{"functionReturnParameters":2527},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple(string memory,uint256,uint256,bool,bool,bool,uint256)","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"getTokenInfo","referencedDeclaration":4185,"type":"function (address) view external returns (string memory,uint256,uint256,bool,bool,bool,uint256)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract ITokenWhitelist","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":4223,"type":"type(contract ITokenWhitelist)","value":"ITokenWhitelist"},"id":2528,"name":"Identifier","src":"2326:15:12"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[null],"referencedDeclaration":2325,"type":"function (bytes32) view returns (address)","value":"_ensResolve"},"id":2529,"name":"Identifier","src":"2342:11:12"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2491,"type":"bytes32","value":"_tokenWhitelistNode"},"id":2530,"name":"Identifier","src":"2354:19:12"}],"id":2531,"name":"FunctionCall","src":"2342:32:12"}],"id":2532,"name":"FunctionCall","src":"2326:49:12"}],"id":2533,"name":"MemberAccess","src":"2326:62:12"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2511,"type":"address","value":"_a"},"id":2534,"name":"Identifier","src":"2389:2:12"}],"id":2535,"name":"FunctionCall","src":"2326:66:12"}],"id":2536,"name":"Return","src":"2319:73:12"}],"id":2537,"name":"Block","src":"2309:90:12"}],"id":2538,"name":"FunctionDefinition","src":"2198:201:12"},{"attributes":{"constant":true,"documentation":"@notice This returns all of the fields for our stablecoin token\n @return string of the token's symbol\n @return uint of the token's magnitude\n @return uint of the token's exchange rate to ETH\n @return bool whether the token is available\n @return bool whether the token is loadable to the TokenCard\n @return bool whether the token is burnable to the TKN Holder Contract\n @return uint of the lastUpdated time of the token's exchange rate","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_getStablecoinInfo","payable":false,"scope":2663,"stateMutability":"view","superFunction":null,"visibility":"internal"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":2539,"name":"ParameterList","src":"2924:2:12"},{"children":[{"attributes":{"constant":false,"name":"","scope":2564,"stateVariable":false,"storageLocation":"default","type":"string","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"string","type":"string"},"id":2540,"name":"ElementaryTypeName","src":"2950:6:12"}],"id":2541,"name":"VariableDeclaration","src":"2950:6:12"},{"attributes":{"constant":false,"name":"","scope":2564,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":2542,"name":"ElementaryTypeName","src":"2958:7:12"}],"id":2543,"name":"VariableDeclaration","src":"2958:7:12"},{"attributes":{"constant":false,"name":"","scope":2564,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":2544,"name":"ElementaryTypeName","src":"2967:7:12"}],"id":2545,"name":"VariableDeclaration","src":"2967:7:12"},{"attributes":{"constant":false,"name":"","scope":2564,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2546,"name":"ElementaryTypeName","src":"2976:4:12"}],"id":2547,"name":"VariableDeclaration","src":"2976:4:12"},{"attributes":{"constant":false,"name":"","scope":2564,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2548,"name":"ElementaryTypeName","src":"2982:4:12"}],"id":2549,"name":"VariableDeclaration","src":"2982:4:12"},{"attributes":{"constant":false,"name":"","scope":2564,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2550,"name":"ElementaryTypeName","src":"2988:4:12"}],"id":2551,"name":"VariableDeclaration","src":"2988:4:12"},{"attributes":{"constant":false,"name":"","scope":2564,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":2552,"name":"ElementaryTypeName","src":"2994:7:12"}],"id":2553,"name":"VariableDeclaration","src":"2994:7:12"}],"id":2554,"name":"ParameterList","src":"2949:53:12"},{"children":[{"attributes":{"functionReturnParameters":2554},"children":[{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple(string memory,uint256,uint256,bool,bool,bool,uint256)","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"getStablecoinInfo","referencedDeclaration":4202,"type":"function () view external returns (string memory,uint256,uint256,bool,bool,bool,uint256)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract ITokenWhitelist","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":4223,"type":"type(contract ITokenWhitelist)","value":"ITokenWhitelist"},"id":2555,"name":"Identifier","src":"3020:15:12"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[null],"referencedDeclaration":2325,"type":"function (bytes32) view returns (address)","value":"_ensResolve"},"id":2556,"name":"Identifier","src":"3036:11:12"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2491,"type":"bytes32","value":"_tokenWhitelistNode"},"id":2557,"name":"Identifier","src":"3048:19:12"}],"id":2558,"name":"FunctionCall","src":"3036:32:12"}],"id":2559,"name":"FunctionCall","src":"3020:49:12"}],"id":2560,"name":"MemberAccess","src":"3020:67:12"}],"id":2561,"name":"FunctionCall","src":"3020:69:12"}],"id":2562,"name":"Return","src":"3013:76:12"}],"id":2563,"name":"Block","src":"3003:93:12"}],"id":2564,"name":"FunctionDefinition","src":"2897:199:12"},{"attributes":{"constant":true,"documentation":"@notice This returns an array of our whitelisted address\n @return address[] of our whitelisted tokens","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_tokenAddressArray","payable":false,"scope":2663,"stateMutability":"view","superFunction":null,"visibility":"internal"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":2565,"name":"ParameterList","src":"3246:2:12"},{"children":[{"attributes":{"constant":false,"name":"","scope":2579,"stateVariable":false,"storageLocation":"default","type":"address[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"address[]"},"children":[{"attributes":{"name":"address","type":"address"},"id":2566,"name":"ElementaryTypeName","src":"3272:7:12"}],"id":2567,"name":"ArrayTypeName","src":"3272:9:12"}],"id":2568,"name":"VariableDeclaration","src":"3272:9:12"}],"id":2569,"name":"ParameterList","src":"3271:11:12"},{"children":[{"attributes":{"functionReturnParameters":2569},"children":[{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address[] memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"tokenAddressArray","referencedDeclaration":4208,"type":"function () view external returns (address[] memory)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract ITokenWhitelist","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":4223,"type":"type(contract ITokenWhitelist)","value":"ITokenWhitelist"},"id":2570,"name":"Identifier","src":"3300:15:12"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[null],"referencedDeclaration":2325,"type":"function (bytes32) view returns (address)","value":"_ensResolve"},"id":2571,"name":"Identifier","src":"3316:11:12"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2491,"type":"bytes32","value":"_tokenWhitelistNode"},"id":2572,"name":"Identifier","src":"3328:19:12"}],"id":2573,"name":"FunctionCall","src":"3316:32:12"}],"id":2574,"name":"FunctionCall","src":"3300:49:12"}],"id":2575,"name":"MemberAccess","src":"3300:67:12"}],"id":2576,"name":"FunctionCall","src":"3300:69:12"}],"id":2577,"name":"Return","src":"3293:76:12"}],"id":2578,"name":"Block","src":"3283:93:12"}],"id":2579,"name":"FunctionDefinition","src":"3219:157:12"},{"attributes":{"constant":false,"documentation":"@notice Update ERC20 token exchange rate.\n @param _token ERC20 token contract address.\n @param _rate ERC20 token exchange rate in wei.\n @param _updateDate date for the token updates. This will be compared to when oracle updates are received.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_updateTokenRate","payable":false,"scope":2663,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_token","scope":2600,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2580,"name":"ElementaryTypeName","src":"3679:7:12"}],"id":2581,"name":"VariableDeclaration","src":"3679:14:12"},{"attributes":{"constant":false,"name":"_rate","scope":2600,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2582,"name":"ElementaryTypeName","src":"3695:4:12"}],"id":2583,"name":"VariableDeclaration","src":"3695:10:12"},{"attributes":{"constant":false,"name":"_updateDate","scope":2600,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2584,"name":"ElementaryTypeName","src":"3707:4:12"}],"id":2585,"name":"VariableDeclaration","src":"3707:16:12"}],"id":2586,"name":"ParameterList","src":"3678:46:12"},{"attributes":{"parameters":[null]},"children":[],"id":2587,"name":"ParameterList","src":"3734:0:12"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"updateTokenRate","referencedDeclaration":4217,"type":"function (address,uint256,uint256) external"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract ITokenWhitelist","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":4223,"type":"type(contract ITokenWhitelist)","value":"ITokenWhitelist"},"id":2588,"name":"Identifier","src":"3744:15:12"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[null],"referencedDeclaration":2325,"type":"function (bytes32) view returns (address)","value":"_ensResolve"},"id":2589,"name":"Identifier","src":"3760:11:12"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2491,"type":"bytes32","value":"_tokenWhitelistNode"},"id":2590,"name":"Identifier","src":"3772:19:12"}],"id":2591,"name":"FunctionCall","src":"3760:32:12"}],"id":2592,"name":"FunctionCall","src":"3744:49:12"}],"id":2593,"name":"MemberAccess","src":"3744:65:12"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2581,"type":"address","value":"_token"},"id":2594,"name":"Identifier","src":"3810:6:12"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2583,"type":"uint256","value":"_rate"},"id":2595,"name":"Identifier","src":"3818:5:12"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2585,"type":"uint256","value":"_updateDate"},"id":2596,"name":"Identifier","src":"3825:11:12"}],"id":2597,"name":"FunctionCall","src":"3744:93:12"}],"id":2598,"name":"ExpressionStatement","src":"3744:93:12"}],"id":2599,"name":"Block","src":"3734:110:12"}],"id":2600,"name":"FunctionDefinition","src":"3653:191:12"},{"attributes":{"constant":true,"documentation":"@notice Checks whether a token is available\n @return bool available or not","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_isTokenAvailable","payable":false,"scope":2663,"stateMutability":"view","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_a","scope":2616,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2601,"name":"ElementaryTypeName","src":"3967:7:12"}],"id":2602,"name":"VariableDeclaration","src":"3967:10:12"}],"id":2603,"name":"ParameterList","src":"3966:12:12"},{"children":[{"attributes":{"constant":false,"name":"","scope":2616,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2604,"name":"ElementaryTypeName","src":"4002:4:12"}],"id":2605,"name":"VariableDeclaration","src":"4002:4:12"}],"id":2606,"name":"ParameterList","src":"4001:6:12"},{"children":[{"attributes":{"assignments":[null,null,null,2608,null,null,null]},"children":[{"attributes":{"constant":false,"name":"available","scope":2616,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2607,"name":"ElementaryTypeName","src":"4026:4:12"}],"id":2608,"name":"VariableDeclaration","src":"4026:14:12"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple(string memory,uint256,uint256,bool,bool,bool,uint256)","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2538,"type":"function (address) view returns (string memory,uint256,uint256,bool,bool,bool,uint256)","value":"_getTokenInfo"},"id":2609,"name":"Identifier","src":"4050:13:12"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2602,"type":"address","value":"_a"},"id":2610,"name":"Identifier","src":"4064:2:12"}],"id":2611,"name":"FunctionCall","src":"4050:17:12"}],"id":2612,"name":"VariableDeclarationStatement","src":"4018:49:12"},{"attributes":{"functionReturnParameters":2606},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2608,"type":"bool","value":"available"},"id":2613,"name":"Identifier","src":"4084:9:12"}],"id":2614,"name":"Return","src":"4077:16:12"}],"id":2615,"name":"Block","src":"4008:92:12"}],"id":2616,"name":"FunctionDefinition","src":"3940:160:12"},{"attributes":{"constant":true,"documentation":"@notice Checks whether a token is burnable\n @return bool burnable or not","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_isTokenBurnable","payable":false,"scope":2663,"stateMutability":"view","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_a","scope":2632,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2617,"name":"ElementaryTypeName","src":"4220:7:12"}],"id":2618,"name":"VariableDeclaration","src":"4220:10:12"}],"id":2619,"name":"ParameterList","src":"4219:12:12"},{"children":[{"attributes":{"constant":false,"name":"","scope":2632,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2620,"name":"ElementaryTypeName","src":"4255:4:12"}],"id":2621,"name":"VariableDeclaration","src":"4255:4:12"}],"id":2622,"name":"ParameterList","src":"4254:6:12"},{"children":[{"attributes":{"assignments":[null,null,null,null,null,2624,null]},"children":[{"attributes":{"constant":false,"name":"burnable","scope":2632,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2623,"name":"ElementaryTypeName","src":"4283:4:12"}],"id":2624,"name":"VariableDeclaration","src":"4283:13:12"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple(string memory,uint256,uint256,bool,bool,bool,uint256)","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2538,"type":"function (address) view returns (string memory,uint256,uint256,bool,bool,bool,uint256)","value":"_getTokenInfo"},"id":2625,"name":"Identifier","src":"4302:13:12"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2618,"type":"address","value":"_a"},"id":2626,"name":"Identifier","src":"4316:2:12"}],"id":2627,"name":"FunctionCall","src":"4302:17:12"}],"id":2628,"name":"VariableDeclarationStatement","src":"4271:48:12"},{"attributes":{"functionReturnParameters":2622},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2624,"type":"bool","value":"burnable"},"id":2629,"name":"Identifier","src":"4336:8:12"}],"id":2630,"name":"Return","src":"4329:15:12"}],"id":2631,"name":"Block","src":"4261:90:12"}],"id":2632,"name":"FunctionDefinition","src":"4194:157:12"},{"attributes":{"constant":true,"documentation":"@notice Checks whether a token is loadable\n @return bool loadable or not","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_isTokenLoadable","payable":false,"scope":2663,"stateMutability":"view","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_a","scope":2648,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2633,"name":"ElementaryTypeName","src":"4471:7:12"}],"id":2634,"name":"VariableDeclaration","src":"4471:10:12"}],"id":2635,"name":"ParameterList","src":"4470:12:12"},{"children":[{"attributes":{"constant":false,"name":"","scope":2648,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2636,"name":"ElementaryTypeName","src":"4506:4:12"}],"id":2637,"name":"VariableDeclaration","src":"4506:4:12"}],"id":2638,"name":"ParameterList","src":"4505:6:12"},{"children":[{"attributes":{"assignments":[null,null,null,null,2640,null,null]},"children":[{"attributes":{"constant":false,"name":"loadable","scope":2648,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2639,"name":"ElementaryTypeName","src":"4532:4:12"}],"id":2640,"name":"VariableDeclaration","src":"4532:13:12"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple(string memory,uint256,uint256,bool,bool,bool,uint256)","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2538,"type":"function (address) view returns (string memory,uint256,uint256,bool,bool,bool,uint256)","value":"_getTokenInfo"},"id":2641,"name":"Identifier","src":"4553:13:12"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2634,"type":"address","value":"_a"},"id":2642,"name":"Identifier","src":"4567:2:12"}],"id":2643,"name":"FunctionCall","src":"4553:17:12"}],"id":2644,"name":"VariableDeclarationStatement","src":"4522:48:12"},{"attributes":{"functionReturnParameters":2638},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2640,"type":"bool","value":"loadable"},"id":2645,"name":"Identifier","src":"4587:8:12"}],"id":2646,"name":"Return","src":"4580:15:12"}],"id":2647,"name":"Block","src":"4512:90:12"}],"id":2648,"name":"FunctionDefinition","src":"4445:157:12"},{"attributes":{"constant":true,"documentation":"@notice This gets the address of the stablecoin\n @return the address of the stablecoin contract.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_stablecoin","payable":false,"scope":2663,"stateMutability":"view","superFunction":null,"visibility":"internal"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":2649,"name":"ParameterList","src":"4740:2:12"},{"children":[{"attributes":{"constant":false,"name":"","scope":2662,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2650,"name":"ElementaryTypeName","src":"4766:7:12"}],"id":2651,"name":"VariableDeclaration","src":"4766:7:12"}],"id":2652,"name":"ParameterList","src":"4765:9:12"},{"children":[{"attributes":{"functionReturnParameters":2652},"children":[{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"stablecoin","referencedDeclaration":4222,"type":"function () view external returns (address)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract ITokenWhitelist","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":4223,"type":"type(contract ITokenWhitelist)","value":"ITokenWhitelist"},"id":2653,"name":"Identifier","src":"4792:15:12"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[null],"referencedDeclaration":2325,"type":"function (bytes32) view returns (address)","value":"_ensResolve"},"id":2654,"name":"Identifier","src":"4808:11:12"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2491,"type":"bytes32","value":"_tokenWhitelistNode"},"id":2655,"name":"Identifier","src":"4820:19:12"}],"id":2656,"name":"FunctionCall","src":"4808:32:12"}],"id":2657,"name":"FunctionCall","src":"4792:49:12"}],"id":2658,"name":"MemberAccess","src":"4792:60:12"}],"id":2659,"name":"FunctionCall","src":"4792:62:12"}],"id":2660,"name":"Return","src":"4785:69:12"}],"id":2661,"name":"Block","src":"4775:86:12"}],"id":2662,"name":"FunctionDefinition","src":"4720:141:12"}],"id":2663,"name":"ContractDefinition","src":"968:3896:12"}],"id":2664,"name":"SourceUnit","src":"778:4087:12"}},"licence.sol":{"AST":{"attributes":{"absolutePath":"licence.sol","exportedSymbols":{"ILicence":[2682],"Licence":[3210]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".25"]},"id":2665,"name":"PragmaDirective","src":"767:24:13"},{"attributes":{"SourceUnit":2220,"absolutePath":"externals/SafeMath.sol","file":"./externals/SafeMath.sol","scope":3211,"symbolAliases":[null],"unitAlias":""},"id":2666,"name":"ImportDirective","src":"793:34:13"},{"attributes":{"SourceUnit":2092,"absolutePath":"externals/ERC20.sol","file":"./externals/ERC20.sol","scope":3211,"symbolAliases":[null],"unitAlias":""},"id":2667,"name":"ImportDirective","src":"828:31:13"},{"attributes":{"SourceUnit":2484,"absolutePath":"internals/ownable.sol","file":"./internals/ownable.sol","scope":3211,"symbolAliases":[null],"unitAlias":""},"id":2668,"name":"ImportDirective","src":"860:33:13"},{"attributes":{"SourceUnit":4790,"absolutePath":"internals/claimable.sol","file":"./internals/claimable.sol","scope":3211,"symbolAliases":[null],"unitAlias":""},"id":2669,"name":"ImportDirective","src":"894:35:13"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"interface","documentation":"@title ILicence interface describes methods for loading a TokenCard and updating licence amount.","fullyImplemented":false,"linearizedBaseContracts":[2682],"name":"ILicence","scope":3211},"children":[{"attributes":{"body":null,"constant":false,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"load","payable":true,"scope":2682,"stateMutability":"payable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"","scope":2676,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2670,"name":"ElementaryTypeName","src":"1071:7:13"}],"id":2671,"name":"VariableDeclaration","src":"1071:7:13"},{"attributes":{"constant":false,"name":"","scope":2676,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2672,"name":"ElementaryTypeName","src":"1080:4:13"}],"id":2673,"name":"VariableDeclaration","src":"1080:4:13"}],"id":2674,"name":"ParameterList","src":"1070:15:13"},{"attributes":{"parameters":[null]},"children":[],"id":2675,"name":"ParameterList","src":"1102:0:13"}],"id":2676,"name":"FunctionDefinition","src":"1057:46:13"},{"attributes":{"body":null,"constant":false,"documentation":null,"implemented":false,"isConstructor":false,"modifiers":[null],"name":"updateLicenceAmount","payable":false,"scope":2682,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"","scope":2681,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2677,"name":"ElementaryTypeName","src":"1137:4:13"}],"id":2678,"name":"VariableDeclaration","src":"1137:4:13"}],"id":2679,"name":"ParameterList","src":"1136:6:13"},{"attributes":{"parameters":[null]},"children":[],"id":2680,"name":"ParameterList","src":"1151:0:13"}],"id":2681,"name":"FunctionDefinition","src":"1108:44:13"}],"id":2682,"name":"ContractDefinition","src":"1032:122:13"},{"attributes":{"contractDependencies":[2483,4789],"contractKind":"contract","documentation":"@title Licence loads the TokenCard and transfers the licence amout to the TKN Holder Contract.\n @notice the rest of the amount gets sent to the CryptoFloat","fullyImplemented":true,"linearizedBaseContracts":[3210,2483,4789],"name":"Licence","scope":3211},"children":[{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"Claimable","referencedDeclaration":4789,"type":"contract Claimable"},"id":2683,"name":"UserDefinedTypeName","src":"1340:9:13"}],"id":2684,"name":"InheritanceSpecifier","src":"1340:9:13"},{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"Ownable","referencedDeclaration":2483,"type":"contract Ownable"},"id":2685,"name":"UserDefinedTypeName","src":"1351:7:13"}],"id":2686,"name":"InheritanceSpecifier","src":"1351:7:13"},{"children":[{"attributes":{"contractScope":null,"name":"SafeMath","referencedDeclaration":2219,"type":"library SafeMath"},"id":2687,"name":"UserDefinedTypeName","src":"1372:8:13"},{"attributes":{"name":"uint256","type":"uint256"},"id":2688,"name":"ElementaryTypeName","src":"1385:7:13"}],"id":2689,"name":"UsingForDirective","src":"1366:27:13"},{"attributes":{"anonymous":false,"documentation":"**************","name":"Received"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_from","scope":2695,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2690,"name":"ElementaryTypeName","src":"1490:7:13"}],"id":2691,"name":"VariableDeclaration","src":"1490:13:13"},{"attributes":{"constant":false,"indexed":false,"name":"_amount","scope":2695,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2692,"name":"ElementaryTypeName","src":"1505:4:13"}],"id":2693,"name":"VariableDeclaration","src":"1505:12:13"}],"id":2694,"name":"ParameterList","src":"1489:29:13"}],"id":2695,"name":"EventDefinition","src":"1475:44:13"},{"attributes":{"anonymous":false,"documentation":null,"name":"UpdatedLicenceDAO"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_newDAO","scope":2699,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2696,"name":"ElementaryTypeName","src":"1549:7:13"}],"id":2697,"name":"VariableDeclaration","src":"1549:15:13"}],"id":2698,"name":"ParameterList","src":"1548:17:13"}],"id":2699,"name":"EventDefinition","src":"1525:41:13"},{"attributes":{"anonymous":false,"documentation":null,"name":"UpdatedCryptoFloat"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_newFloat","scope":2703,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2700,"name":"ElementaryTypeName","src":"1596:7:13"}],"id":2701,"name":"VariableDeclaration","src":"1596:17:13"}],"id":2702,"name":"ParameterList","src":"1595:19:13"}],"id":2703,"name":"EventDefinition","src":"1571:44:13"},{"attributes":{"anonymous":false,"documentation":null,"name":"UpdatedTokenHolder"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_newHolder","scope":2707,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2704,"name":"ElementaryTypeName","src":"1645:7:13"}],"id":2705,"name":"VariableDeclaration","src":"1645:18:13"}],"id":2706,"name":"ParameterList","src":"1644:20:13"}],"id":2707,"name":"EventDefinition","src":"1620:45:13"},{"attributes":{"anonymous":false,"documentation":null,"name":"UpdatedTKNContractAddress"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_newTKN","scope":2711,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2708,"name":"ElementaryTypeName","src":"1702:7:13"}],"id":2709,"name":"VariableDeclaration","src":"1702:15:13"}],"id":2710,"name":"ParameterList","src":"1701:17:13"}],"id":2711,"name":"EventDefinition","src":"1670:49:13"},{"attributes":{"anonymous":false,"documentation":null,"name":"UpdatedLicenceAmount"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_newAmount","scope":2715,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2712,"name":"ElementaryTypeName","src":"1751:4:13"}],"id":2713,"name":"VariableDeclaration","src":"1751:15:13"}],"id":2714,"name":"ParameterList","src":"1750:17:13"}],"id":2715,"name":"EventDefinition","src":"1724:44:13"},{"attributes":{"anonymous":false,"documentation":null,"name":"TransferredToTokenHolder"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_from","scope":2725,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2716,"name":"ElementaryTypeName","src":"1805:7:13"}],"id":2717,"name":"VariableDeclaration","src":"1805:13:13"},{"attributes":{"constant":false,"indexed":false,"name":"_to","scope":2725,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2718,"name":"ElementaryTypeName","src":"1820:7:13"}],"id":2719,"name":"VariableDeclaration","src":"1820:11:13"},{"attributes":{"constant":false,"indexed":false,"name":"_asset","scope":2725,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2720,"name":"ElementaryTypeName","src":"1833:7:13"}],"id":2721,"name":"VariableDeclaration","src":"1833:14:13"},{"attributes":{"constant":false,"indexed":false,"name":"_amount","scope":2725,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2722,"name":"ElementaryTypeName","src":"1849:4:13"}],"id":2723,"name":"VariableDeclaration","src":"1849:12:13"}],"id":2724,"name":"ParameterList","src":"1804:58:13"}],"id":2725,"name":"EventDefinition","src":"1774:89:13"},{"attributes":{"anonymous":false,"documentation":null,"name":"TransferredToCryptoFloat"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_from","scope":2735,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2726,"name":"ElementaryTypeName","src":"1899:7:13"}],"id":2727,"name":"VariableDeclaration","src":"1899:13:13"},{"attributes":{"constant":false,"indexed":false,"name":"_to","scope":2735,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2728,"name":"ElementaryTypeName","src":"1914:7:13"}],"id":2729,"name":"VariableDeclaration","src":"1914:11:13"},{"attributes":{"constant":false,"indexed":false,"name":"_asset","scope":2735,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2730,"name":"ElementaryTypeName","src":"1927:7:13"}],"id":2731,"name":"VariableDeclaration","src":"1927:14:13"},{"attributes":{"constant":false,"indexed":false,"name":"_amount","scope":2735,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2732,"name":"ElementaryTypeName","src":"1943:4:13"}],"id":2733,"name":"VariableDeclaration","src":"1943:12:13"}],"id":2734,"name":"ParameterList","src":"1898:58:13"}],"id":2735,"name":"EventDefinition","src":"1868:89:13"},{"attributes":{"anonymous":false,"documentation":null,"name":"LogTokenTransfer"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_asset","scope":2743,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2736,"name":"ElementaryTypeName","src":"1986:7:13"}],"id":2737,"name":"VariableDeclaration","src":"1986:14:13"},{"attributes":{"constant":false,"indexed":false,"name":"_to","scope":2743,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2738,"name":"ElementaryTypeName","src":"2002:7:13"}],"id":2739,"name":"VariableDeclaration","src":"2002:11:13"},{"attributes":{"constant":false,"indexed":false,"name":"_amount","scope":2743,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2740,"name":"ElementaryTypeName","src":"2015:4:13"}],"id":2741,"name":"VariableDeclaration","src":"2015:12:13"}],"id":2742,"name":"ParameterList","src":"1985:43:13"}],"id":2743,"name":"EventDefinition","src":"1963:66:13"},{"attributes":{"constant":true,"name":"MAX_AMOUNT_SCALE","scope":3210,"stateVariable":true,"storageLocation":"default","type":"uint256","visibility":"public"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2744,"name":"ElementaryTypeName","src":"2141:4:13"},{"attributes":{"argumentTypes":null,"hexvalue":"31303030","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1000","value":"1000"},"id":2745,"name":"Literal","src":"2181:4:13"}],"id":2746,"name":"VariableDeclaration","src":"2141:44:13"},{"attributes":{"constant":false,"name":"_tknContractAddress","scope":3210,"stateVariable":true,"storageLocation":"default","type":"address","visibility":"private"},"children":[{"attributes":{"name":"address","type":"address"},"id":2747,"name":"ElementaryTypeName","src":"2192:7:13"},{"attributes":{"argumentTypes":null,"hexvalue":"307861414166393144396239306446383030446634463535633230356664363938396339373745373361","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"address","value":"0xaAAf91D9b90dF800Df4F55c205fd6989c977E73a"},"id":2748,"name":"Literal","src":"2230:42:13"}],"id":2749,"name":"VariableDeclaration","src":"2192:80:13"},{"attributes":{"constant":false,"name":"_cryptoFloat","scope":3210,"stateVariable":true,"storageLocation":"default","type":"address","value":null,"visibility":"private"},"children":[{"attributes":{"name":"address","type":"address"},"id":2750,"name":"ElementaryTypeName","src":"2312:7:13"}],"id":2751,"name":"VariableDeclaration","src":"2312:28:13"},{"attributes":{"constant":false,"name":"_tokenHolder","scope":3210,"stateVariable":true,"storageLocation":"default","type":"address","value":null,"visibility":"private"},"children":[{"attributes":{"name":"address","type":"address"},"id":2752,"name":"ElementaryTypeName","src":"2346:7:13"}],"id":2753,"name":"VariableDeclaration","src":"2346:28:13"},{"attributes":{"constant":false,"name":"_licenceDAO","scope":3210,"stateVariable":true,"storageLocation":"default","type":"address","value":null,"visibility":"private"},"children":[{"attributes":{"name":"address","type":"address"},"id":2754,"name":"ElementaryTypeName","src":"2380:7:13"}],"id":2755,"name":"VariableDeclaration","src":"2380:27:13"},{"attributes":{"constant":false,"name":"_lockedCryptoFloat","scope":3210,"stateVariable":true,"storageLocation":"default","type":"bool","value":null,"visibility":"private"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2756,"name":"ElementaryTypeName","src":"2414:4:13"}],"id":2757,"name":"VariableDeclaration","src":"2414:31:13"},{"attributes":{"constant":false,"name":"_lockedTokenHolder","scope":3210,"stateVariable":true,"storageLocation":"default","type":"bool","value":null,"visibility":"private"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2758,"name":"ElementaryTypeName","src":"2451:4:13"}],"id":2759,"name":"VariableDeclaration","src":"2451:31:13"},{"attributes":{"constant":false,"name":"_lockedLicenceDAO","scope":3210,"stateVariable":true,"storageLocation":"default","type":"bool","value":null,"visibility":"private"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2760,"name":"ElementaryTypeName","src":"2488:4:13"}],"id":2761,"name":"VariableDeclaration","src":"2488:30:13"},{"attributes":{"constant":false,"name":"_lockedTKNContractAddress","scope":3210,"stateVariable":true,"storageLocation":"default","type":"bool","value":null,"visibility":"private"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2762,"name":"ElementaryTypeName","src":"2524:4:13"}],"id":2763,"name":"VariableDeclaration","src":"2524:38:13"},{"attributes":{"constant":false,"name":"_licenceAmountScaled","scope":3210,"stateVariable":true,"storageLocation":"default","type":"uint256","value":null,"visibility":"private"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2764,"name":"ElementaryTypeName","src":"2716:4:13"}],"id":2765,"name":"VariableDeclaration","src":"2716:33:13"},{"attributes":{"documentation":"@notice Reverts if called by any address other than the DAO contract.","name":"onlyDAO","visibility":"internal"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":2766,"name":"ParameterList","src":"2850:2:13"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f29246ab6c872b69b916ab49a51167f5d8ba348a447673211aabf776049f6b78","typeString":"literal_string \"the sender isn't the DAO\""}],"overloadedDeclarations":[6502,6503],"referencedDeclaration":6503,"type":"function (bool,string memory) pure","value":"require"},"id":2767,"name":"Identifier","src":"2863:7:13"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6499,"type":"msg","value":"msg"},"id":2768,"name":"Identifier","src":"2871:3:13"}],"id":2769,"name":"MemberAccess","src":"2871:10:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2755,"type":"address","value":"_licenceDAO"},"id":2770,"name":"Identifier","src":"2885:11:13"}],"id":2771,"name":"BinaryOperation","src":"2871:25:13"},{"attributes":{"argumentTypes":null,"hexvalue":"7468652073656e6465722069736e2774207468652044414f","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"the sender isn't the DAO\"","value":"the sender isn't the DAO"},"id":2772,"name":"Literal","src":"2898:26:13"}],"id":2773,"name":"FunctionCall","src":"2863:62:13"}],"id":2774,"name":"ExpressionStatement","src":"2863:62:13"},{"id":2775,"name":"PlaceholderStatement","src":"2935:1:13"}],"id":2776,"name":"Block","src":"2853:90:13"}],"id":2777,"name":"ModifierDefinition","src":"2834:109:13"},{"attributes":{"constant":false,"documentation":"@notice Constructor initializes the card licence contract.\n @param _owner_ is the owner account of the wallet contract.\n @param _transferable_ indicates whether the contract ownership can be transferred.\n @param _licence_ is the initial card licence amount. this number is scaled 10 = 1%, 9 = 0.9%\n @param _float_ is the address of the multi-sig cryptocurrency float contract.\n @param _holder_ is the address of the token holder contract","implemented":true,"isConstructor":true,"name":"","payable":false,"scope":3210,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"_owner_","scope":2820,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2778,"name":"ElementaryTypeName","src":"3442:7:13"}],"id":2779,"name":"VariableDeclaration","src":"3442:15:13"},{"attributes":{"constant":false,"name":"_transferable_","scope":2820,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":2780,"name":"ElementaryTypeName","src":"3459:4:13"}],"id":2781,"name":"VariableDeclaration","src":"3459:19:13"},{"attributes":{"constant":false,"name":"_licence_","scope":2820,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2782,"name":"ElementaryTypeName","src":"3480:4:13"}],"id":2783,"name":"VariableDeclaration","src":"3480:14:13"},{"attributes":{"constant":false,"name":"_float_","scope":2820,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2784,"name":"ElementaryTypeName","src":"3496:7:13"}],"id":2785,"name":"VariableDeclaration","src":"3496:15:13"},{"attributes":{"constant":false,"name":"_holder_","scope":2820,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2786,"name":"ElementaryTypeName","src":"3513:7:13"}],"id":2787,"name":"VariableDeclaration","src":"3513:16:13"},{"attributes":{"constant":false,"name":"_tknAddress_","scope":2820,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2788,"name":"ElementaryTypeName","src":"3531:7:13"}],"id":2789,"name":"VariableDeclaration","src":"3531:20:13"}],"id":2790,"name":"ParameterList","src":"3441:111:13"},{"attributes":{"parameters":[null]},"children":[],"id":2795,"name":"ParameterList","src":"3593:0:13"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2483,"type":"type(contract Ownable)","value":"Ownable"},"id":2791,"name":"Identifier","src":"3553:7:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2779,"type":"address","value":"_owner_"},"id":2792,"name":"Identifier","src":"3561:7:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2781,"type":"bool","value":"_transferable_"},"id":2793,"name":"Identifier","src":"3570:14:13"}],"id":2794,"name":"ModifierInvocation","src":"3553:32:13"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2765,"type":"uint256","value":"_licenceAmountScaled"},"id":2796,"name":"Identifier","src":"3603:20:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2783,"type":"uint256","value":"_licence_"},"id":2797,"name":"Identifier","src":"3626:9:13"}],"id":2798,"name":"Assignment","src":"3603:32:13"}],"id":2799,"name":"ExpressionStatement","src":"3603:32:13"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2751,"type":"address","value":"_cryptoFloat"},"id":2800,"name":"Identifier","src":"3645:12:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2785,"type":"address","value":"_float_"},"id":2801,"name":"Identifier","src":"3660:7:13"}],"id":2802,"name":"Assignment","src":"3645:22:13"}],"id":2803,"name":"ExpressionStatement","src":"3645:22:13"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2753,"type":"address","value":"_tokenHolder"},"id":2804,"name":"Identifier","src":"3677:12:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2787,"type":"address","value":"_holder_"},"id":2805,"name":"Identifier","src":"3692:8:13"}],"id":2806,"name":"Assignment","src":"3677:23:13"}],"id":2807,"name":"ExpressionStatement","src":"3677:23:13"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2789,"type":"address","value":"_tknAddress_"},"id":2808,"name":"Identifier","src":"3714:12:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":2809,"name":"ElementaryTypeNameExpression","src":"3730:7:13"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2810,"name":"Literal","src":"3738:1:13"}],"id":2811,"name":"FunctionCall","src":"3730:10:13"}],"id":2812,"name":"BinaryOperation","src":"3714:26:13"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2749,"type":"address","value":"_tknContractAddress"},"id":2813,"name":"Identifier","src":"3756:19:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2789,"type":"address","value":"_tknAddress_"},"id":2814,"name":"Identifier","src":"3778:12:13"}],"id":2815,"name":"Assignment","src":"3756:34:13"}],"id":2816,"name":"ExpressionStatement","src":"3756:34:13"}],"id":2817,"name":"Block","src":"3742:59:13"}],"id":2818,"name":"IfStatement","src":"3710:91:13"}],"id":2819,"name":"Block","src":"3593:214:13"}],"id":2820,"name":"FunctionDefinition","src":"3430:377:13"},{"attributes":{"constant":false,"documentation":"@notice Ether can be deposited from any source, so this contract should be payable by anyone.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"","payable":true,"scope":3210,"stateMutability":"payable","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":2821,"name":"ParameterList","src":"3923:2:13"},{"attributes":{"parameters":[null]},"children":[],"id":2822,"name":"ParameterList","src":"3943:0:13"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c98f12ce12078cea6be36b54934612ccdaffc6f888ea6c596da6c9c5019b86f9","typeString":"literal_string \"msg data length should be 0\""}],"overloadedDeclarations":[6502,6503],"referencedDeclaration":6503,"type":"function (bool,string memory) pure","value":"require"},"id":2823,"name":"Identifier","src":"3953:7:13"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"data","referencedDeclaration":null,"type":"bytes calldata"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6499,"type":"msg","value":"msg"},"id":2824,"name":"Identifier","src":"3961:3:13"}],"id":2825,"name":"MemberAccess","src":"3961:8:13"}],"id":2826,"name":"MemberAccess","src":"3961:15:13"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":2827,"name":"Literal","src":"3980:1:13"}],"id":2828,"name":"BinaryOperation","src":"3961:20:13"},{"attributes":{"argumentTypes":null,"hexvalue":"6d73672064617461206c656e6774682073686f756c642062652030","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"msg data length should be 0\"","value":"msg data length should be 0"},"id":2829,"name":"Literal","src":"3983:29:13"}],"id":2830,"name":"FunctionCall","src":"3953:60:13"}],"id":2831,"name":"ExpressionStatement","src":"3953:60:13"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":2695,"type":"function (address,uint256)","value":"Received"},"id":2832,"name":"Identifier","src":"4028:8:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6499,"type":"msg","value":"msg"},"id":2833,"name":"Identifier","src":"4037:3:13"}],"id":2834,"name":"MemberAccess","src":"4037:10:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"value","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6499,"type":"msg","value":"msg"},"id":2835,"name":"Identifier","src":"4049:3:13"}],"id":2836,"name":"MemberAccess","src":"4049:9:13"}],"id":2837,"name":"FunctionCall","src":"4028:31:13"}],"id":2838,"name":"EmitStatement","src":"4023:36:13"}],"id":2839,"name":"Block","src":"3943:123:13"}],"id":2840,"name":"FunctionDefinition","src":"3915:151:13"},{"attributes":{"constant":true,"documentation":"@notice this allows for people to see the scaled licence amount\n @return the scaled licence amount, used to calculate the split when loading.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"licenceAmountScaled","payable":false,"scope":3210,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":2841,"name":"ParameterList","src":"4257:2:13"},{"children":[{"attributes":{"constant":false,"name":"","scope":2848,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2842,"name":"ElementaryTypeName","src":"4283:4:13"}],"id":2843,"name":"VariableDeclaration","src":"4283:4:13"}],"id":2844,"name":"ParameterList","src":"4282:6:13"},{"children":[{"attributes":{"functionReturnParameters":2844},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2765,"type":"uint256","value":"_licenceAmountScaled"},"id":2845,"name":"Identifier","src":"4306:20:13"}],"id":2846,"name":"Return","src":"4299:27:13"}],"id":2847,"name":"Block","src":"4289:44:13"}],"id":2848,"name":"FunctionDefinition","src":"4229:104:13"},{"attributes":{"constant":true,"documentation":"@notice allows one to see the address of the CryptoFloat\n @return the address of the multi-sig cryptocurrency float contract.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"cryptoFloat","payable":false,"scope":3210,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":2849,"name":"ParameterList","src":"4500:2:13"},{"children":[{"attributes":{"constant":false,"name":"","scope":2856,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2850,"name":"ElementaryTypeName","src":"4526:7:13"}],"id":2851,"name":"VariableDeclaration","src":"4526:7:13"}],"id":2852,"name":"ParameterList","src":"4525:9:13"},{"children":[{"attributes":{"functionReturnParameters":2852},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2751,"type":"address","value":"_cryptoFloat"},"id":2853,"name":"Identifier","src":"4552:12:13"}],"id":2854,"name":"Return","src":"4545:19:13"}],"id":2855,"name":"Block","src":"4535:36:13"}],"id":2856,"name":"FunctionDefinition","src":"4480:91:13"},{"attributes":{"constant":true,"documentation":"@notice allows one to see the address TKN holder contract\n @return the address of the token holder contract.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"tokenHolder","payable":false,"scope":3210,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":2857,"name":"ParameterList","src":"4721:2:13"},{"children":[{"attributes":{"constant":false,"name":"","scope":2864,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2858,"name":"ElementaryTypeName","src":"4747:7:13"}],"id":2859,"name":"VariableDeclaration","src":"4747:7:13"}],"id":2860,"name":"ParameterList","src":"4746:9:13"},{"children":[{"attributes":{"functionReturnParameters":2860},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2753,"type":"address","value":"_tokenHolder"},"id":2861,"name":"Identifier","src":"4773:12:13"}],"id":2862,"name":"Return","src":"4766:19:13"}],"id":2863,"name":"Block","src":"4756:36:13"}],"id":2864,"name":"FunctionDefinition","src":"4701:91:13"},{"attributes":{"constant":true,"documentation":"@notice allows one to see the address of the DAO\n @return the address of the DAO contract.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"licenceDAO","payable":false,"scope":3210,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":2865,"name":"ParameterList","src":"4923:2:13"},{"children":[{"attributes":{"constant":false,"name":"","scope":2872,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2866,"name":"ElementaryTypeName","src":"4949:7:13"}],"id":2867,"name":"VariableDeclaration","src":"4949:7:13"}],"id":2868,"name":"ParameterList","src":"4948:9:13"},{"children":[{"attributes":{"functionReturnParameters":2868},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2755,"type":"address","value":"_licenceDAO"},"id":2869,"name":"Identifier","src":"4975:11:13"}],"id":2870,"name":"Return","src":"4968:18:13"}],"id":2871,"name":"Block","src":"4958:35:13"}],"id":2872,"name":"FunctionDefinition","src":"4904:89:13"},{"attributes":{"constant":true,"documentation":"@notice The address of the TKN token\n @return the address of the TKN contract.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"tknContractAddress","payable":false,"scope":3210,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":2873,"name":"ParameterList","src":"5120:2:13"},{"children":[{"attributes":{"constant":false,"name":"","scope":2880,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2874,"name":"ElementaryTypeName","src":"5146:7:13"}],"id":2875,"name":"VariableDeclaration","src":"5146:7:13"}],"id":2876,"name":"ParameterList","src":"5145:9:13"},{"children":[{"attributes":{"functionReturnParameters":2876},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2749,"type":"address","value":"_tknContractAddress"},"id":2877,"name":"Identifier","src":"5172:19:13"}],"id":2878,"name":"Return","src":"5165:26:13"}],"id":2879,"name":"Block","src":"5155:43:13"}],"id":2880,"name":"FunctionDefinition","src":"5093:105:13"},{"attributes":{"constant":false,"documentation":"@notice This locks the cryptoFloat address\n @dev so that it can no longer be updated","implemented":true,"isConstructor":false,"name":"lockFloat","payable":false,"scope":3210,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":2881,"name":"ParameterList","src":"5322:2:13"},{"attributes":{"parameters":[null]},"children":[],"id":2884,"name":"ParameterList","src":"5344:0:13"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2385,"type":"modifier ()","value":"onlyOwner"},"id":2882,"name":"Identifier","src":"5334:9:13"}],"id":2883,"name":"ModifierInvocation","src":"5334:9:13"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2757,"type":"bool","value":"_lockedCryptoFloat"},"id":2885,"name":"Identifier","src":"5354:18:13"},{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":2886,"name":"Literal","src":"5375:4:13"}],"id":2887,"name":"Assignment","src":"5354:25:13"}],"id":2888,"name":"ExpressionStatement","src":"5354:25:13"}],"id":2889,"name":"Block","src":"5344:42:13"}],"id":2890,"name":"FunctionDefinition","src":"5304:82:13"},{"attributes":{"constant":false,"documentation":"@notice This locks the TokenHolder address\n @dev so that it can no longer be updated","implemented":true,"isConstructor":false,"name":"lockHolder","payable":false,"scope":3210,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":2891,"name":"ParameterList","src":"5511:2:13"},{"attributes":{"parameters":[null]},"children":[],"id":2894,"name":"ParameterList","src":"5533:0:13"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2385,"type":"modifier ()","value":"onlyOwner"},"id":2892,"name":"Identifier","src":"5523:9:13"}],"id":2893,"name":"ModifierInvocation","src":"5523:9:13"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2759,"type":"bool","value":"_lockedTokenHolder"},"id":2895,"name":"Identifier","src":"5543:18:13"},{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":2896,"name":"Literal","src":"5564:4:13"}],"id":2897,"name":"Assignment","src":"5543:25:13"}],"id":2898,"name":"ExpressionStatement","src":"5543:25:13"}],"id":2899,"name":"Block","src":"5533:42:13"}],"id":2900,"name":"FunctionDefinition","src":"5492:83:13"},{"attributes":{"constant":false,"documentation":"@notice This locks the DAO address\n @dev so that it can no longer be updated","implemented":true,"isConstructor":false,"name":"lockLicenceDAO","payable":false,"scope":3210,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":2901,"name":"ParameterList","src":"5696:2:13"},{"attributes":{"parameters":[null]},"children":[],"id":2904,"name":"ParameterList","src":"5718:0:13"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2385,"type":"modifier ()","value":"onlyOwner"},"id":2902,"name":"Identifier","src":"5708:9:13"}],"id":2903,"name":"ModifierInvocation","src":"5708:9:13"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2761,"type":"bool","value":"_lockedLicenceDAO"},"id":2905,"name":"Identifier","src":"5728:17:13"},{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":2906,"name":"Literal","src":"5748:4:13"}],"id":2907,"name":"Assignment","src":"5728:24:13"}],"id":2908,"name":"ExpressionStatement","src":"5728:24:13"}],"id":2909,"name":"Block","src":"5718:41:13"}],"id":2910,"name":"FunctionDefinition","src":"5673:86:13"},{"attributes":{"constant":false,"documentation":"@notice This locks the TKN address\n @dev so that it can no longer be updated","implemented":true,"isConstructor":false,"name":"lockTKNContractAddress","payable":false,"scope":3210,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":2911,"name":"ParameterList","src":"5888:2:13"},{"attributes":{"parameters":[null]},"children":[],"id":2914,"name":"ParameterList","src":"5910:0:13"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2385,"type":"modifier ()","value":"onlyOwner"},"id":2912,"name":"Identifier","src":"5900:9:13"}],"id":2913,"name":"ModifierInvocation","src":"5900:9:13"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2763,"type":"bool","value":"_lockedTKNContractAddress"},"id":2915,"name":"Identifier","src":"5920:25:13"},{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":2916,"name":"Literal","src":"5948:4:13"}],"id":2917,"name":"Assignment","src":"5920:32:13"}],"id":2918,"name":"ExpressionStatement","src":"5920:32:13"}],"id":2919,"name":"Block","src":"5910:49:13"}],"id":2920,"name":"FunctionDefinition","src":"5857:102:13"},{"attributes":{"constant":false,"documentation":"@notice Updates the address of the cyptoFloat.\n @param _newFloat This is the new address for the CryptoFloat","implemented":true,"isConstructor":false,"name":"updateFloat","payable":false,"scope":3210,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_newFloat","scope":2943,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2921,"name":"ElementaryTypeName","src":"6110:7:13"}],"id":2922,"name":"VariableDeclaration","src":"6110:17:13"}],"id":2923,"name":"ParameterList","src":"6109:19:13"},{"attributes":{"parameters":[null]},"children":[],"id":2926,"name":"ParameterList","src":"6148:0:13"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2385,"type":"modifier ()","value":"onlyOwner"},"id":2924,"name":"Identifier","src":"6138:9:13"}],"id":2925,"name":"ModifierInvocation","src":"6138:9:13"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_73cf4712af49e3d489d13d5688ecb36f2544327f43f1ad1d6113d4e5775b0a25","typeString":"literal_string \"float is locked\""}],"overloadedDeclarations":[6502,6503],"referencedDeclaration":6503,"type":"function (bool,string memory) pure","value":"require"},"id":2927,"name":"Identifier","src":"6158:7:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"overloadedDeclarations":[null],"referencedDeclaration":3185,"type":"function () view returns (bool)","value":"floatLocked"},"id":2928,"name":"Identifier","src":"6167:11:13"}],"id":2929,"name":"FunctionCall","src":"6167:13:13"}],"id":2930,"name":"UnaryOperation","src":"6166:14:13"},{"attributes":{"argumentTypes":null,"hexvalue":"666c6f6174206973206c6f636b6564","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"float is locked\"","value":"float is locked"},"id":2931,"name":"Literal","src":"6182:17:13"}],"id":2932,"name":"FunctionCall","src":"6158:42:13"}],"id":2933,"name":"ExpressionStatement","src":"6158:42:13"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2751,"type":"address","value":"_cryptoFloat"},"id":2934,"name":"Identifier","src":"6210:12:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2922,"type":"address","value":"_newFloat"},"id":2935,"name":"Identifier","src":"6225:9:13"}],"id":2936,"name":"Assignment","src":"6210:24:13"}],"id":2937,"name":"ExpressionStatement","src":"6210:24:13"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2703,"type":"function (address)","value":"UpdatedCryptoFloat"},"id":2938,"name":"Identifier","src":"6249:18:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2922,"type":"address","value":"_newFloat"},"id":2939,"name":"Identifier","src":"6268:9:13"}],"id":2940,"name":"FunctionCall","src":"6249:29:13"}],"id":2941,"name":"EmitStatement","src":"6244:34:13"}],"id":2942,"name":"Block","src":"6148:137:13"}],"id":2943,"name":"FunctionDefinition","src":"6089:196:13"},{"attributes":{"constant":false,"documentation":"@notice Updates the address of the Holder contract.\n @param _newHolder This is the new address for the TokenHolder","implemented":true,"isConstructor":false,"name":"updateHolder","payable":false,"scope":3210,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_newHolder","scope":2966,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2944,"name":"ElementaryTypeName","src":"6443:7:13"}],"id":2945,"name":"VariableDeclaration","src":"6443:18:13"}],"id":2946,"name":"ParameterList","src":"6442:20:13"},{"attributes":{"parameters":[null]},"children":[],"id":2949,"name":"ParameterList","src":"6482:0:13"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2385,"type":"modifier ()","value":"onlyOwner"},"id":2947,"name":"Identifier","src":"6472:9:13"}],"id":2948,"name":"ModifierInvocation","src":"6472:9:13"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1127f79f367bf1ae448858b4e10d08e32e63374d8363948e232ab7fa9624ebd4","typeString":"literal_string \"holder contract is locked\""}],"overloadedDeclarations":[6502,6503],"referencedDeclaration":6503,"type":"function (bool,string memory) pure","value":"require"},"id":2950,"name":"Identifier","src":"6492:7:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"overloadedDeclarations":[null],"referencedDeclaration":3193,"type":"function () view returns (bool)","value":"holderLocked"},"id":2951,"name":"Identifier","src":"6501:12:13"}],"id":2952,"name":"FunctionCall","src":"6501:14:13"}],"id":2953,"name":"UnaryOperation","src":"6500:15:13"},{"attributes":{"argumentTypes":null,"hexvalue":"686f6c64657220636f6e7472616374206973206c6f636b6564","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"holder contract is locked\"","value":"holder contract is locked"},"id":2954,"name":"Literal","src":"6517:27:13"}],"id":2955,"name":"FunctionCall","src":"6492:53:13"}],"id":2956,"name":"ExpressionStatement","src":"6492:53:13"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2753,"type":"address","value":"_tokenHolder"},"id":2957,"name":"Identifier","src":"6555:12:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2945,"type":"address","value":"_newHolder"},"id":2958,"name":"Identifier","src":"6570:10:13"}],"id":2959,"name":"Assignment","src":"6555:25:13"}],"id":2960,"name":"ExpressionStatement","src":"6555:25:13"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2707,"type":"function (address)","value":"UpdatedTokenHolder"},"id":2961,"name":"Identifier","src":"6595:18:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2945,"type":"address","value":"_newHolder"},"id":2962,"name":"Identifier","src":"6614:10:13"}],"id":2963,"name":"FunctionCall","src":"6595:30:13"}],"id":2964,"name":"EmitStatement","src":"6590:35:13"}],"id":2965,"name":"Block","src":"6482:150:13"}],"id":2966,"name":"FunctionDefinition","src":"6421:211:13"},{"attributes":{"constant":false,"documentation":"@notice Updates the address of the DAO contract.\n @param _newDAO This is the new address for the Licence DAO","implemented":true,"isConstructor":false,"name":"updateLicenceDAO","payable":false,"scope":3210,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_newDAO","scope":2989,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2967,"name":"ElementaryTypeName","src":"6788:7:13"}],"id":2968,"name":"VariableDeclaration","src":"6788:15:13"}],"id":2969,"name":"ParameterList","src":"6787:17:13"},{"attributes":{"parameters":[null]},"children":[],"id":2972,"name":"ParameterList","src":"6824:0:13"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2385,"type":"modifier ()","value":"onlyOwner"},"id":2970,"name":"Identifier","src":"6814:9:13"}],"id":2971,"name":"ModifierInvocation","src":"6814:9:13"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e6ff7dad81321f3905380d2bc114061fd5d09c8a5631b7e5a51291235d46ced1","typeString":"literal_string \"DAO is locked\""}],"overloadedDeclarations":[6502,6503],"referencedDeclaration":6503,"type":"function (bool,string memory) pure","value":"require"},"id":2973,"name":"Identifier","src":"6834:7:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"overloadedDeclarations":[null],"referencedDeclaration":3201,"type":"function () view returns (bool)","value":"licenceDAOLocked"},"id":2974,"name":"Identifier","src":"6843:16:13"}],"id":2975,"name":"FunctionCall","src":"6843:18:13"}],"id":2976,"name":"UnaryOperation","src":"6842:19:13"},{"attributes":{"argumentTypes":null,"hexvalue":"44414f206973206c6f636b6564","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"DAO is locked\"","value":"DAO is locked"},"id":2977,"name":"Literal","src":"6863:15:13"}],"id":2978,"name":"FunctionCall","src":"6834:45:13"}],"id":2979,"name":"ExpressionStatement","src":"6834:45:13"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2755,"type":"address","value":"_licenceDAO"},"id":2980,"name":"Identifier","src":"6889:11:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2968,"type":"address","value":"_newDAO"},"id":2981,"name":"Identifier","src":"6903:7:13"}],"id":2982,"name":"Assignment","src":"6889:21:13"}],"id":2983,"name":"ExpressionStatement","src":"6889:21:13"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2699,"type":"function (address)","value":"UpdatedLicenceDAO"},"id":2984,"name":"Identifier","src":"6925:17:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2968,"type":"address","value":"_newDAO"},"id":2985,"name":"Identifier","src":"6943:7:13"}],"id":2986,"name":"FunctionCall","src":"6925:26:13"}],"id":2987,"name":"EmitStatement","src":"6920:31:13"}],"id":2988,"name":"Block","src":"6824:134:13"}],"id":2989,"name":"FunctionDefinition","src":"6762:196:13"},{"attributes":{"constant":false,"documentation":"@notice Updates the address of the TKN contract.\n @param _newTKN This is the new address for the TKN contract","implemented":true,"isConstructor":false,"name":"updateTKNContractAddress","payable":false,"scope":3210,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_newTKN","scope":3012,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":2990,"name":"ElementaryTypeName","src":"7123:7:13"}],"id":2991,"name":"VariableDeclaration","src":"7123:15:13"}],"id":2992,"name":"ParameterList","src":"7122:17:13"},{"attributes":{"parameters":[null]},"children":[],"id":2995,"name":"ParameterList","src":"7159:0:13"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2385,"type":"modifier ()","value":"onlyOwner"},"id":2993,"name":"Identifier","src":"7149:9:13"}],"id":2994,"name":"ModifierInvocation","src":"7149:9:13"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e6b32285b06a01bec331e6c8d816613b1307837b439f2b9d9ccc775b962c0c17","typeString":"literal_string \"TKN is locked\""}],"overloadedDeclarations":[6502,6503],"referencedDeclaration":6503,"type":"function (bool,string memory) pure","value":"require"},"id":2996,"name":"Identifier","src":"7169:7:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"overloadedDeclarations":[null],"referencedDeclaration":3209,"type":"function () view returns (bool)","value":"tknContractAddressLocked"},"id":2997,"name":"Identifier","src":"7178:24:13"}],"id":2998,"name":"FunctionCall","src":"7178:26:13"}],"id":2999,"name":"UnaryOperation","src":"7177:27:13"},{"attributes":{"argumentTypes":null,"hexvalue":"544b4e206973206c6f636b6564","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"TKN is locked\"","value":"TKN is locked"},"id":3000,"name":"Literal","src":"7206:15:13"}],"id":3001,"name":"FunctionCall","src":"7169:53:13"}],"id":3002,"name":"ExpressionStatement","src":"7169:53:13"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2749,"type":"address","value":"_tknContractAddress"},"id":3003,"name":"Identifier","src":"7232:19:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2991,"type":"address","value":"_newTKN"},"id":3004,"name":"Identifier","src":"7254:7:13"}],"id":3005,"name":"Assignment","src":"7232:29:13"}],"id":3006,"name":"ExpressionStatement","src":"7232:29:13"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2711,"type":"function (address)","value":"UpdatedTKNContractAddress"},"id":3007,"name":"Identifier","src":"7276:25:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2991,"type":"address","value":"_newTKN"},"id":3008,"name":"Identifier","src":"7302:7:13"}],"id":3009,"name":"FunctionCall","src":"7276:34:13"}],"id":3010,"name":"EmitStatement","src":"7271:39:13"}],"id":3011,"name":"Block","src":"7159:158:13"}],"id":3012,"name":"FunctionDefinition","src":"7089:228:13"},{"attributes":{"constant":false,"documentation":"@notice Updates the TKN licence amount\n @param _newAmount is a number between 1 and MAX_AMOUNT_SCALE","implemented":true,"isConstructor":false,"name":"updateLicenceAmount","payable":false,"scope":3210,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_newAmount","scope":3039,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":3013,"name":"ElementaryTypeName","src":"7468:4:13"}],"id":3014,"name":"VariableDeclaration","src":"7468:15:13"}],"id":3015,"name":"ParameterList","src":"7467:17:13"},{"attributes":{"parameters":[null]},"children":[],"id":3018,"name":"ParameterList","src":"7502:0:13"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2777,"type":"modifier ()","value":"onlyDAO"},"id":3016,"name":"Identifier","src":"7494:7:13"}],"id":3017,"name":"ModifierInvocation","src":"7494:7:13"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_37c5ded16197b0d4ae17a4dd139ab6673cc9958675158c0d22e708afaf45bd8a","typeString":"literal_string \"licence amount out of range\""}],"overloadedDeclarations":[6502,6503],"referencedDeclaration":6503,"type":"function (bool,string memory) pure","value":"require"},"id":3019,"name":"Identifier","src":"7512:7:13"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&&","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":3020,"name":"Literal","src":"7520:1:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3014,"type":"uint256","value":"_newAmount"},"id":3021,"name":"Identifier","src":"7525:10:13"}],"id":3022,"name":"BinaryOperation","src":"7520:15:13"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3014,"type":"uint256","value":"_newAmount"},"id":3023,"name":"Identifier","src":"7539:10:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2746,"type":"uint256","value":"MAX_AMOUNT_SCALE"},"id":3024,"name":"Identifier","src":"7553:16:13"}],"id":3025,"name":"BinaryOperation","src":"7539:30:13"}],"id":3026,"name":"BinaryOperation","src":"7520:49:13"},{"attributes":{"argumentTypes":null,"hexvalue":"6c6963656e636520616d6f756e74206f7574206f662072616e6765","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"licence amount out of range\"","value":"licence amount out of range"},"id":3027,"name":"Literal","src":"7571:29:13"}],"id":3028,"name":"FunctionCall","src":"7512:89:13"}],"id":3029,"name":"ExpressionStatement","src":"7512:89:13"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2765,"type":"uint256","value":"_licenceAmountScaled"},"id":3030,"name":"Identifier","src":"7611:20:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3014,"type":"uint256","value":"_newAmount"},"id":3031,"name":"Identifier","src":"7634:10:13"}],"id":3032,"name":"Assignment","src":"7611:33:13"}],"id":3033,"name":"ExpressionStatement","src":"7611:33:13"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":2715,"type":"function (uint256)","value":"UpdatedLicenceAmount"},"id":3034,"name":"Identifier","src":"7659:20:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3014,"type":"uint256","value":"_newAmount"},"id":3035,"name":"Identifier","src":"7680:10:13"}],"id":3036,"name":"FunctionCall","src":"7659:32:13"}],"id":3037,"name":"EmitStatement","src":"7654:37:13"}],"id":3038,"name":"Block","src":"7502:196:13"}],"id":3039,"name":"FunctionDefinition","src":"7439:259:13"},{"attributes":{"constant":false,"documentation":"@notice Load the holder and float contracts based on the licence amount and asset amount.\n @param _asset is the address of an ERC20 token or 0x0 for ether.\n @param _amount is the amount of assets to be transferred including the licence amount.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"load","payable":true,"scope":3210,"stateMutability":"payable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_asset","scope":3159,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3040,"name":"ElementaryTypeName","src":"7984:7:13"}],"id":3041,"name":"VariableDeclaration","src":"7984:14:13"},{"attributes":{"constant":false,"name":"_amount","scope":3159,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":3042,"name":"ElementaryTypeName","src":"8000:4:13"}],"id":3043,"name":"VariableDeclaration","src":"8000:12:13"}],"id":3044,"name":"ParameterList","src":"7983:30:13"},{"attributes":{"parameters":[null]},"children":[],"id":3045,"name":"ParameterList","src":"8031:0:13"},{"children":[{"attributes":{"assignments":[3047]},"children":[{"attributes":{"constant":false,"name":"loadAmount","scope":3159,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":3046,"name":"ElementaryTypeName","src":"8041:4:13"}],"id":3047,"name":"VariableDeclaration","src":"8041:15:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3043,"type":"uint256","value":"_amount"},"id":3048,"name":"Identifier","src":"8059:7:13"}],"id":3049,"name":"VariableDeclarationStatement","src":"8041:25:13"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3041,"type":"address","value":"_asset"},"id":3050,"name":"Identifier","src":"8125:6:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2749,"type":"address","value":"_tknContractAddress"},"id":3051,"name":"Identifier","src":"8135:19:13"}],"id":3052,"name":"BinaryOperation","src":"8125:29:13"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_31fe905f35fdf491da5448c489d507439f3f3456150e4df60ac26593fab9e7a0","typeString":"literal_string \"TKN transfer from external account was unsuccessful\""}],"overloadedDeclarations":[6502,6503],"referencedDeclaration":6503,"type":"function (bool,string memory) pure","value":"require"},"id":3053,"name":"Identifier","src":"8170:7:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"transferFrom","referencedDeclaration":2090,"type":"function (address,address,uint256) external returns (bool)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract ERC20","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2091,"type":"type(contract ERC20)","value":"ERC20"},"id":3054,"name":"Identifier","src":"8178:5:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3041,"type":"address","value":"_asset"},"id":3055,"name":"Identifier","src":"8184:6:13"}],"id":3056,"name":"FunctionCall","src":"8178:13:13"}],"id":3057,"name":"MemberAccess","src":"8178:26:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6499,"type":"msg","value":"msg"},"id":3058,"name":"Identifier","src":"8205:3:13"}],"id":3059,"name":"MemberAccess","src":"8205:10:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2751,"type":"address","value":"_cryptoFloat"},"id":3060,"name":"Identifier","src":"8217:12:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3047,"type":"uint256","value":"loadAmount"},"id":3061,"name":"Identifier","src":"8231:10:13"}],"id":3062,"name":"FunctionCall","src":"8178:64:13"},{"attributes":{"argumentTypes":null,"hexvalue":"544b4e207472616e736665722066726f6d2065787465726e616c206163636f756e742077617320756e7375636365737366756c","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"TKN transfer from external account was unsuccessful\"","value":"TKN transfer from external account was unsuccessful"},"id":3063,"name":"Literal","src":"8244:53:13"}],"id":3064,"name":"FunctionCall","src":"8170:128:13"}],"id":3065,"name":"ExpressionStatement","src":"8170:128:13"}],"id":3066,"name":"Block","src":"8156:153:13"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3047,"type":"uint256","value":"loadAmount"},"id":3067,"name":"Identifier","src":"8329:10:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"div","referencedDeclaration":2150,"type":"function (uint256,uint256) pure returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"mul","referencedDeclaration":2126,"type":"function (uint256,uint256) pure returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3043,"type":"uint256","value":"_amount"},"id":3068,"name":"Identifier","src":"8342:7:13"}],"id":3069,"name":"MemberAccess","src":"8342:11:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2746,"type":"uint256","value":"MAX_AMOUNT_SCALE"},"id":3070,"name":"Identifier","src":"8354:16:13"}],"id":3071,"name":"FunctionCall","src":"8342:29:13"}],"id":3072,"name":"MemberAccess","src":"8342:33:13"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2765,"type":"uint256","value":"_licenceAmountScaled"},"id":3073,"name":"Identifier","src":"8376:20:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2746,"type":"uint256","value":"MAX_AMOUNT_SCALE"},"id":3074,"name":"Identifier","src":"8399:16:13"}],"id":3075,"name":"BinaryOperation","src":"8376:39:13"}],"id":3076,"name":"FunctionCall","src":"8342:74:13"}],"id":3077,"name":"Assignment","src":"8329:87:13"}],"id":3078,"name":"ExpressionStatement","src":"8329:87:13"},{"attributes":{"assignments":[3080]},"children":[{"attributes":{"constant":false,"name":"licenceAmount","scope":3159,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":3079,"name":"ElementaryTypeName","src":"8430:4:13"}],"id":3080,"name":"VariableDeclaration","src":"8430:18:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sub","referencedDeclaration":2174,"type":"function (uint256,uint256) pure returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3043,"type":"uint256","value":"_amount"},"id":3081,"name":"Identifier","src":"8451:7:13"}],"id":3082,"name":"MemberAccess","src":"8451:11:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3047,"type":"uint256","value":"loadAmount"},"id":3083,"name":"Identifier","src":"8463:10:13"}],"id":3084,"name":"FunctionCall","src":"8451:23:13"}],"id":3085,"name":"VariableDeclarationStatement","src":"8430:44:13"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3041,"type":"address","value":"_asset"},"id":3086,"name":"Identifier","src":"8493:6:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":3087,"name":"ElementaryTypeNameExpression","src":"8503:7:13"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":3088,"name":"Literal","src":"8511:1:13"}],"id":3089,"name":"FunctionCall","src":"8503:10:13"}],"id":3090,"name":"BinaryOperation","src":"8493:20:13"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_429220c6a34192cbe74c2d4734e0b30da5c487625b503e3508fd9bb6b4597660","typeString":"literal_string \"ERC20 licenceAmount transfer from external account was unsuccessful\""}],"overloadedDeclarations":[6502,6503],"referencedDeclaration":6503,"type":"function (bool,string memory) pure","value":"require"},"id":3091,"name":"Identifier","src":"8533:7:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"transferFrom","referencedDeclaration":2090,"type":"function (address,address,uint256) external returns (bool)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract ERC20","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2091,"type":"type(contract ERC20)","value":"ERC20"},"id":3092,"name":"Identifier","src":"8541:5:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3041,"type":"address","value":"_asset"},"id":3093,"name":"Identifier","src":"8547:6:13"}],"id":3094,"name":"FunctionCall","src":"8541:13:13"}],"id":3095,"name":"MemberAccess","src":"8541:26:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6499,"type":"msg","value":"msg"},"id":3096,"name":"Identifier","src":"8568:3:13"}],"id":3097,"name":"MemberAccess","src":"8568:10:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2753,"type":"address","value":"_tokenHolder"},"id":3098,"name":"Identifier","src":"8580:12:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3080,"type":"uint256","value":"licenceAmount"},"id":3099,"name":"Identifier","src":"8594:13:13"}],"id":3100,"name":"FunctionCall","src":"8541:67:13"},{"attributes":{"argumentTypes":null,"hexvalue":"4552433230206c6963656e6365416d6f756e74207472616e736665722066726f6d2065787465726e616c206163636f756e742077617320756e7375636365737366756c","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"ERC20 licenceAmount transfer from external account was unsuccessful\"","value":"ERC20 licenceAmount transfer from external account was unsuccessful"},"id":3101,"name":"Literal","src":"8610:69:13"}],"id":3102,"name":"FunctionCall","src":"8533:147:13"}],"id":3103,"name":"ExpressionStatement","src":"8533:147:13"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e26aa40f51222cd695d857fc56119538f8eda37405be7b021860c3517cbab396","typeString":"literal_string \"ERC20 token transfer from external account was unsuccessful\""}],"overloadedDeclarations":[6502,6503],"referencedDeclaration":6503,"type":"function (bool,string memory) pure","value":"require"},"id":3104,"name":"Identifier","src":"8698:7:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"transferFrom","referencedDeclaration":2090,"type":"function (address,address,uint256) external returns (bool)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract ERC20","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2091,"type":"type(contract ERC20)","value":"ERC20"},"id":3105,"name":"Identifier","src":"8706:5:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3041,"type":"address","value":"_asset"},"id":3106,"name":"Identifier","src":"8712:6:13"}],"id":3107,"name":"FunctionCall","src":"8706:13:13"}],"id":3108,"name":"MemberAccess","src":"8706:26:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6499,"type":"msg","value":"msg"},"id":3109,"name":"Identifier","src":"8733:3:13"}],"id":3110,"name":"MemberAccess","src":"8733:10:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2751,"type":"address","value":"_cryptoFloat"},"id":3111,"name":"Identifier","src":"8745:12:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3047,"type":"uint256","value":"loadAmount"},"id":3112,"name":"Identifier","src":"8759:10:13"}],"id":3113,"name":"FunctionCall","src":"8706:64:13"},{"attributes":{"argumentTypes":null,"hexvalue":"455243323020746f6b656e207472616e736665722066726f6d2065787465726e616c206163636f756e742077617320756e7375636365737366756c","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"ERC20 token transfer from external account was unsuccessful\"","value":"ERC20 token transfer from external account was unsuccessful"},"id":3114,"name":"Literal","src":"8772:61:13"}],"id":3115,"name":"FunctionCall","src":"8698:136:13"}],"id":3116,"name":"ExpressionStatement","src":"8698:136:13"}],"id":3117,"name":"Block","src":"8515:334:13"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a8da8f058aaa2efcf224bd479d66e9c2f4c0326aacc5ced62ebd13f3eb808dc3","typeString":"literal_string \"ETH sent is not equal to amount\""}],"overloadedDeclarations":[6502,6503],"referencedDeclaration":6503,"type":"function (bool,string memory) pure","value":"require"},"id":3118,"name":"Identifier","src":"8873:7:13"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"value","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6499,"type":"msg","value":"msg"},"id":3119,"name":"Identifier","src":"8881:3:13"}],"id":3120,"name":"MemberAccess","src":"8881:9:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3043,"type":"uint256","value":"_amount"},"id":3121,"name":"Identifier","src":"8894:7:13"}],"id":3122,"name":"BinaryOperation","src":"8881:20:13"},{"attributes":{"argumentTypes":null,"hexvalue":"4554482073656e74206973206e6f7420657175616c20746f20616d6f756e74","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"ETH sent is not equal to amount\"","value":"ETH sent is not equal to amount"},"id":3123,"name":"Literal","src":"8903:33:13"}],"id":3124,"name":"FunctionCall","src":"8873:64:13"}],"id":3125,"name":"ExpressionStatement","src":"8873:64:13"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"transfer","referencedDeclaration":null,"type":"function (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2753,"type":"address","value":"_tokenHolder"},"id":3126,"name":"Identifier","src":"8955:12:13"}],"id":3128,"name":"MemberAccess","src":"8955:21:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3080,"type":"uint256","value":"licenceAmount"},"id":3129,"name":"Identifier","src":"8977:13:13"}],"id":3130,"name":"FunctionCall","src":"8955:36:13"}],"id":3131,"name":"ExpressionStatement","src":"8955:36:13"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"transfer","referencedDeclaration":null,"type":"function (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2751,"type":"address","value":"_cryptoFloat"},"id":3132,"name":"Identifier","src":"9009:12:13"}],"id":3134,"name":"MemberAccess","src":"9009:21:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3047,"type":"uint256","value":"loadAmount"},"id":3135,"name":"Identifier","src":"9031:10:13"}],"id":3136,"name":"FunctionCall","src":"9009:33:13"}],"id":3137,"name":"ExpressionStatement","src":"9009:33:13"}],"id":3138,"name":"Block","src":"8855:202:13"}],"id":3139,"name":"IfStatement","src":"8489:568:13"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":2725,"type":"function (address,address,address,uint256)","value":"TransferredToTokenHolder"},"id":3140,"name":"Identifier","src":"9076:24:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6499,"type":"msg","value":"msg"},"id":3141,"name":"Identifier","src":"9101:3:13"}],"id":3142,"name":"MemberAccess","src":"9101:10:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2753,"type":"address","value":"_tokenHolder"},"id":3143,"name":"Identifier","src":"9113:12:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3041,"type":"address","value":"_asset"},"id":3144,"name":"Identifier","src":"9127:6:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3080,"type":"uint256","value":"licenceAmount"},"id":3145,"name":"Identifier","src":"9135:13:13"}],"id":3146,"name":"FunctionCall","src":"9076:73:13"}],"id":3147,"name":"EmitStatement","src":"9071:78:13"}],"id":3148,"name":"Block","src":"8315:845:13"}],"id":3149,"name":"IfStatement","src":"8121:1039:13"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":2735,"type":"function (address,address,address,uint256)","value":"TransferredToCryptoFloat"},"id":3150,"name":"Identifier","src":"9175:24:13"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6499,"type":"msg","value":"msg"},"id":3151,"name":"Identifier","src":"9200:3:13"}],"id":3152,"name":"MemberAccess","src":"9200:10:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2751,"type":"address","value":"_cryptoFloat"},"id":3153,"name":"Identifier","src":"9212:12:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3041,"type":"address","value":"_asset"},"id":3154,"name":"Identifier","src":"9226:6:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3047,"type":"uint256","value":"loadAmount"},"id":3155,"name":"Identifier","src":"9234:10:13"}],"id":3156,"name":"FunctionCall","src":"9175:70:13"}],"id":3157,"name":"EmitStatement","src":"9170:75:13"}],"id":3158,"name":"Block","src":"8031:1221:13"}],"id":3159,"name":"FunctionDefinition","src":"7970:1282:13"},{"attributes":{"constant":false,"documentation":"/ @notice Withdraw tokens from the smart contract to the specified account.","implemented":true,"isConstructor":false,"name":"claim","payable":false,"scope":3210,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_to","scope":3177,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3160,"name":"ElementaryTypeName","src":"9356:7:13"}],"id":3161,"name":"VariableDeclaration","src":"9356:11:13"},{"attributes":{"constant":false,"name":"_asset","scope":3177,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":3162,"name":"ElementaryTypeName","src":"9369:7:13"}],"id":3163,"name":"VariableDeclaration","src":"9369:14:13"},{"attributes":{"constant":false,"name":"_amount","scope":3177,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":3164,"name":"ElementaryTypeName","src":"9385:4:13"}],"id":3165,"name":"VariableDeclaration","src":"9385:12:13"}],"id":3166,"name":"ParameterList","src":"9355:43:13"},{"attributes":{"parameters":[null]},"children":[],"id":3169,"name":"ParameterList","src":"9418:0:13"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2385,"type":"modifier ()","value":"onlyOwner"},"id":3167,"name":"Identifier","src":"9408:9:13"}],"id":3168,"name":"ModifierInvocation","src":"9408:9:13"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":4788,"type":"function (address,address,uint256)","value":"_claim"},"id":3170,"name":"Identifier","src":"9428:6:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3161,"type":"address","value":"_to"},"id":3171,"name":"Identifier","src":"9435:3:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3163,"type":"address","value":"_asset"},"id":3172,"name":"Identifier","src":"9440:6:13"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":3165,"type":"uint256","value":"_amount"},"id":3173,"name":"Identifier","src":"9448:7:13"}],"id":3174,"name":"FunctionCall","src":"9428:28:13"}],"id":3175,"name":"ExpressionStatement","src":"9428:28:13"}],"id":3176,"name":"Block","src":"9418:45:13"}],"id":3177,"name":"FunctionDefinition","src":"9341:122:13"},{"attributes":{"constant":true,"documentation":"@notice returns whether or not the CryptoFloat address is locked","implemented":true,"isConstructor":false,"modifiers":[null],"name":"floatLocked","payable":false,"scope":3210,"stateMutability":"view","superFunction":null,"visibility":"public"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":3178,"name":"ParameterList","src":"9562:2:13"},{"children":[{"attributes":{"constant":false,"name":"","scope":3185,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":3179,"name":"ElementaryTypeName","src":"9586:4:13"}],"id":3180,"name":"VariableDeclaration","src":"9586:4:13"}],"id":3181,"name":"ParameterList","src":"9585:6:13"},{"children":[{"attributes":{"functionReturnParameters":3181},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2757,"type":"bool","value":"_lockedCryptoFloat"},"id":3182,"name":"Identifier","src":"9609:18:13"}],"id":3183,"name":"Return","src":"9602:25:13"}],"id":3184,"name":"Block","src":"9592:42:13"}],"id":3185,"name":"FunctionDefinition","src":"9542:92:13"},{"attributes":{"constant":true,"documentation":"@notice returns whether or not the TokenHolder address is locked","implemented":true,"isConstructor":false,"modifiers":[null],"name":"holderLocked","payable":false,"scope":3210,"stateMutability":"view","superFunction":null,"visibility":"public"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":3186,"name":"ParameterList","src":"9734:2:13"},{"children":[{"attributes":{"constant":false,"name":"","scope":3193,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":3187,"name":"ElementaryTypeName","src":"9758:4:13"}],"id":3188,"name":"VariableDeclaration","src":"9758:4:13"}],"id":3189,"name":"ParameterList","src":"9757:6:13"},{"children":[{"attributes":{"functionReturnParameters":3189},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2759,"type":"bool","value":"_lockedTokenHolder"},"id":3190,"name":"Identifier","src":"9781:18:13"}],"id":3191,"name":"Return","src":"9774:25:13"}],"id":3192,"name":"Block","src":"9764:42:13"}],"id":3193,"name":"FunctionDefinition","src":"9713:93:13"},{"attributes":{"constant":true,"documentation":"@notice returns whether or not the Licence DAO address is locked","implemented":true,"isConstructor":false,"modifiers":[null],"name":"licenceDAOLocked","payable":false,"scope":3210,"stateMutability":"view","superFunction":null,"visibility":"public"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":3194,"name":"ParameterList","src":"9910:2:13"},{"children":[{"attributes":{"constant":false,"name":"","scope":3201,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":3195,"name":"ElementaryTypeName","src":"9934:4:13"}],"id":3196,"name":"VariableDeclaration","src":"9934:4:13"}],"id":3197,"name":"ParameterList","src":"9933:6:13"},{"children":[{"attributes":{"functionReturnParameters":3197},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2761,"type":"bool","value":"_lockedLicenceDAO"},"id":3198,"name":"Identifier","src":"9957:17:13"}],"id":3199,"name":"Return","src":"9950:24:13"}],"id":3200,"name":"Block","src":"9940:41:13"}],"id":3201,"name":"FunctionDefinition","src":"9885:96:13"},{"attributes":{"constant":true,"documentation":"@notice returns whether or not the TKN address is locked","implemented":true,"isConstructor":false,"modifiers":[null],"name":"tknContractAddressLocked","payable":false,"scope":3210,"stateMutability":"view","superFunction":null,"visibility":"public"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":3202,"name":"ParameterList","src":"10085:2:13"},{"children":[{"attributes":{"constant":false,"name":"","scope":3209,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":3203,"name":"ElementaryTypeName","src":"10109:4:13"}],"id":3204,"name":"VariableDeclaration","src":"10109:4:13"}],"id":3205,"name":"ParameterList","src":"10108:6:13"},{"children":[{"attributes":{"functionReturnParameters":3205},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2763,"type":"bool","value":"_lockedTKNContractAddress"},"id":3206,"name":"Identifier","src":"10132:25:13"}],"id":3207,"name":"Return","src":"10125:32:13"}],"id":3208,"name":"Block","src":"10115:49:13"}],"id":3209,"name":"FunctionDefinition","src":"10052:112:13"}],"id":3210,"name":"ContractDefinition","src":"1320:8846:13"}],"id":3211,"name":"SourceUnit","src":"767:9400:13"}},"wallet.sol":{"AST":{"attributes":{"absolutePath":"wallet.sol","exportedSymbols":{"AddressWhitelist":[569],"ControllableOwnable":[31],"DailyLimitTrait":[783],"GasTopUpLimit":[1059],"LoadLimit":[1215],"SpendLimit":[908],"Vault":[1468],"Wallet":[2042]}},"children":[{"attributes":{"literals":["solidity","^","0.4",".25"]},"id":1,"name":"PragmaDirective","src":"757:24:14"},{"attributes":{"SourceUnit":3211,"absolutePath":"licence.sol","file":"./licence.sol","scope":2043,"symbolAliases":[null],"unitAlias":""},"id":2,"name":"ImportDirective","src":"783:23:14"},{"attributes":{"SourceUnit":2484,"absolutePath":"internals/ownable.sol","file":"./internals/ownable.sol","scope":2043,"symbolAliases":[null],"unitAlias":""},"id":3,"name":"ImportDirective","src":"807:33:14"},{"attributes":{"SourceUnit":2276,"absolutePath":"internals/controllable.sol","file":"./internals/controllable.sol","scope":2043,"symbolAliases":[null],"unitAlias":""},"id":4,"name":"ImportDirective","src":"841:38:14"},{"attributes":{"SourceUnit":2327,"absolutePath":"internals/ensResolvable.sol","file":"./internals/ensResolvable.sol","scope":2043,"symbolAliases":[null],"unitAlias":""},"id":5,"name":"ImportDirective","src":"880:39:14"},{"attributes":{"SourceUnit":2664,"absolutePath":"internals/tokenWhitelistable.sol","file":"./internals/tokenWhitelistable.sol","scope":2043,"symbolAliases":[null],"unitAlias":""},"id":6,"name":"ImportDirective","src":"920:44:14"},{"attributes":{"SourceUnit":2220,"absolutePath":"externals/SafeMath.sol","file":"./externals/SafeMath.sol","scope":2043,"symbolAliases":[null],"unitAlias":""},"id":7,"name":"ImportDirective","src":"965:34:14"},{"attributes":{"SourceUnit":2092,"absolutePath":"externals/ERC20.sol","file":"./externals/ERC20.sol","scope":2043,"symbolAliases":[null],"unitAlias":""},"id":8,"name":"ImportDirective","src":"1000:31:14"},{"attributes":{"SourceUnit":2053,"absolutePath":"externals/ERC165.sol","file":"./externals/ERC165.sol","scope":2043,"symbolAliases":[null],"unitAlias":""},"id":9,"name":"ImportDirective","src":"1032:32:14"},{"attributes":{"contractDependencies":[2275,2326,2483],"contractKind":"contract","documentation":"@title ControllableOwnable combines Controllable and Ownable\n @dev providing an additional modifier to check if Owner or Controller","fullyImplemented":false,"linearizedBaseContracts":[31,2483,2275,2326],"name":"ControllableOwnable","scope":2043},"children":[{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"Controllable","referencedDeclaration":2275,"type":"contract Controllable"},"id":10,"name":"UserDefinedTypeName","src":"1238:12:14"}],"id":11,"name":"InheritanceSpecifier","src":"1238:12:14"},{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"Ownable","referencedDeclaration":2483,"type":"contract Ownable"},"id":12,"name":"UserDefinedTypeName","src":"1252:7:14"}],"id":13,"name":"InheritanceSpecifier","src":"1252:7:14"},{"attributes":{"documentation":"@dev Check if the sender is the Owner or one of the Controllers","name":"onlyOwnerOrController","visibility":"internal"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":14,"name":"ParameterList","src":"1368:2:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_15a6f462100bf6e9e568343482786d413750c4011bec092e18cfe8ed42f27fc5","typeString":"literal_string \"either owner or controller\""}],"overloadedDeclarations":[6502,6503],"referencedDeclaration":6503,"type":"function (bool,string memory) pure","value":"require"},"id":15,"name":"Identifier","src":"1381:7:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"||","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2482,"type":"function (address) view returns (bool)","value":"_isOwner"},"id":16,"name":"Identifier","src":"1390:8:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6499,"type":"msg","value":"msg"},"id":17,"name":"Identifier","src":"1399:3:14"}],"id":18,"name":"MemberAccess","src":"1399:10:14"}],"id":19,"name":"FunctionCall","src":"1390:20:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2274,"type":"function (address) view returns (bool)","value":"_isController"},"id":20,"name":"Identifier","src":"1414:13:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6499,"type":"msg","value":"msg"},"id":21,"name":"Identifier","src":"1428:3:14"}],"id":22,"name":"MemberAccess","src":"1428:10:14"}],"id":23,"name":"FunctionCall","src":"1414:25:14"}],"id":24,"name":"BinaryOperation","src":"1390:49:14"},{"attributes":{"argumentTypes":null,"hexvalue":"656974686572206f776e6572206f7220636f6e74726f6c6c6572","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"either owner or controller\"","value":"either owner or controller"},"id":25,"name":"Literal","src":"1441:28:14"}],"id":26,"name":"FunctionCall","src":"1381:89:14"}],"id":27,"name":"ExpressionStatement","src":"1381:89:14"},{"id":28,"name":"PlaceholderStatement","src":"1480:1:14"}],"id":29,"name":"Block","src":"1371:117:14"}],"id":30,"name":"ModifierDefinition","src":"1338:150:14"}],"id":31,"name":"ContractDefinition","src":"1206:284:14"},{"attributes":{"contractDependencies":[31,2275,2326,2483],"contractKind":"contract","documentation":"@title AddressWhitelist provides payee-whitelist functionality.\n @dev This contract will allow the user to maintain a whitelist of addresses\n @dev These addresses will live outside of the various spend limits","fullyImplemented":false,"linearizedBaseContracts":[569,31,2483,2275,2326],"name":"AddressWhitelist","scope":2043},"children":[{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"ControllableOwnable","referencedDeclaration":31,"type":"contract ControllableOwnable"},"id":32,"name":"UserDefinedTypeName","src":"1741:19:14"}],"id":33,"name":"InheritanceSpecifier","src":"1741:19:14"},{"children":[{"attributes":{"contractScope":null,"name":"SafeMath","referencedDeclaration":2219,"type":"library SafeMath"},"id":34,"name":"UserDefinedTypeName","src":"1773:8:14"},{"attributes":{"name":"uint256","type":"uint256"},"id":35,"name":"ElementaryTypeName","src":"1786:7:14"}],"id":36,"name":"UsingForDirective","src":"1767:27:14"},{"attributes":{"anonymous":false,"documentation":null,"name":"AddedToWhitelist"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_sender","scope":43,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":37,"name":"ElementaryTypeName","src":"1823:7:14"}],"id":38,"name":"VariableDeclaration","src":"1823:15:14"},{"attributes":{"constant":false,"indexed":false,"name":"_addresses","scope":43,"stateVariable":false,"storageLocation":"default","type":"address[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"address[]"},"children":[{"attributes":{"name":"address","type":"address"},"id":39,"name":"ElementaryTypeName","src":"1840:7:14"}],"id":40,"name":"ArrayTypeName","src":"1840:9:14"}],"id":41,"name":"VariableDeclaration","src":"1840:20:14"}],"id":42,"name":"ParameterList","src":"1822:39:14"}],"id":43,"name":"EventDefinition","src":"1800:62:14"},{"attributes":{"anonymous":false,"documentation":null,"name":"SubmittedWhitelistAddition"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_addresses","scope":50,"stateVariable":false,"storageLocation":"default","type":"address[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"address[]"},"children":[{"attributes":{"name":"address","type":"address"},"id":44,"name":"ElementaryTypeName","src":"1900:7:14"}],"id":45,"name":"ArrayTypeName","src":"1900:9:14"}],"id":46,"name":"VariableDeclaration","src":"1900:20:14"},{"attributes":{"constant":false,"indexed":false,"name":"_hash","scope":50,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":47,"name":"ElementaryTypeName","src":"1922:7:14"}],"id":48,"name":"VariableDeclaration","src":"1922:13:14"}],"id":49,"name":"ParameterList","src":"1899:37:14"}],"id":50,"name":"EventDefinition","src":"1867:70:14"},{"attributes":{"anonymous":false,"documentation":null,"name":"CancelledWhitelistAddition"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_sender","scope":56,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":51,"name":"ElementaryTypeName","src":"1975:7:14"}],"id":52,"name":"VariableDeclaration","src":"1975:15:14"},{"attributes":{"constant":false,"indexed":false,"name":"_hash","scope":56,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":53,"name":"ElementaryTypeName","src":"1992:7:14"}],"id":54,"name":"VariableDeclaration","src":"1992:13:14"}],"id":55,"name":"ParameterList","src":"1974:32:14"}],"id":56,"name":"EventDefinition","src":"1942:65:14"},{"attributes":{"anonymous":false,"documentation":null,"name":"RemovedFromWhitelist"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_sender","scope":63,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":57,"name":"ElementaryTypeName","src":"2040:7:14"}],"id":58,"name":"VariableDeclaration","src":"2040:15:14"},{"attributes":{"constant":false,"indexed":false,"name":"_addresses","scope":63,"stateVariable":false,"storageLocation":"default","type":"address[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"address[]"},"children":[{"attributes":{"name":"address","type":"address"},"id":59,"name":"ElementaryTypeName","src":"2057:7:14"}],"id":60,"name":"ArrayTypeName","src":"2057:9:14"}],"id":61,"name":"VariableDeclaration","src":"2057:20:14"}],"id":62,"name":"ParameterList","src":"2039:39:14"}],"id":63,"name":"EventDefinition","src":"2013:66:14"},{"attributes":{"anonymous":false,"documentation":null,"name":"SubmittedWhitelistRemoval"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_addresses","scope":70,"stateVariable":false,"storageLocation":"default","type":"address[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"address[]"},"children":[{"attributes":{"name":"address","type":"address"},"id":64,"name":"ElementaryTypeName","src":"2116:7:14"}],"id":65,"name":"ArrayTypeName","src":"2116:9:14"}],"id":66,"name":"VariableDeclaration","src":"2116:20:14"},{"attributes":{"constant":false,"indexed":false,"name":"_hash","scope":70,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":67,"name":"ElementaryTypeName","src":"2138:7:14"}],"id":68,"name":"VariableDeclaration","src":"2138:13:14"}],"id":69,"name":"ParameterList","src":"2115:37:14"}],"id":70,"name":"EventDefinition","src":"2084:69:14"},{"attributes":{"anonymous":false,"documentation":null,"name":"CancelledWhitelistRemoval"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_sender","scope":76,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":71,"name":"ElementaryTypeName","src":"2190:7:14"}],"id":72,"name":"VariableDeclaration","src":"2190:15:14"},{"attributes":{"constant":false,"indexed":false,"name":"_hash","scope":76,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":73,"name":"ElementaryTypeName","src":"2207:7:14"}],"id":74,"name":"VariableDeclaration","src":"2207:13:14"}],"id":75,"name":"ParameterList","src":"2189:32:14"}],"id":76,"name":"EventDefinition","src":"2158:64:14"},{"attributes":{"constant":false,"name":"whitelistMap","scope":569,"stateVariable":true,"storageLocation":"default","type":"mapping(address => bool)","value":null,"visibility":"public"},"children":[{"attributes":{"type":"mapping(address => bool)"},"children":[{"attributes":{"name":"address","type":"address"},"id":77,"name":"ElementaryTypeName","src":"2236:7:14"},{"attributes":{"name":"bool","type":"bool"},"id":78,"name":"ElementaryTypeName","src":"2247:4:14"}],"id":79,"name":"Mapping","src":"2228:24:14"}],"id":80,"name":"VariableDeclaration","src":"2228:44:14"},{"attributes":{"constant":false,"name":"whitelistArray","scope":569,"stateVariable":true,"storageLocation":"default","type":"address[]","value":null,"visibility":"public"},"children":[{"attributes":{"length":null,"type":"address[]"},"children":[{"attributes":{"name":"address","type":"address"},"id":81,"name":"ElementaryTypeName","src":"2278:7:14"}],"id":82,"name":"ArrayTypeName","src":"2278:9:14"}],"id":83,"name":"VariableDeclaration","src":"2278:31:14"},{"attributes":{"constant":false,"name":"_pendingWhitelistAddition","scope":569,"stateVariable":true,"storageLocation":"default","type":"address[]","value":null,"visibility":"private"},"children":[{"attributes":{"length":null,"type":"address[]"},"children":[{"attributes":{"name":"address","type":"address"},"id":84,"name":"ElementaryTypeName","src":"2315:7:14"}],"id":85,"name":"ArrayTypeName","src":"2315:9:14"}],"id":86,"name":"VariableDeclaration","src":"2315:43:14"},{"attributes":{"constant":false,"name":"_pendingWhitelistRemoval","scope":569,"stateVariable":true,"storageLocation":"default","type":"address[]","value":null,"visibility":"private"},"children":[{"attributes":{"length":null,"type":"address[]"},"children":[{"attributes":{"name":"address","type":"address"},"id":87,"name":"ElementaryTypeName","src":"2364:7:14"}],"id":88,"name":"ArrayTypeName","src":"2364:9:14"}],"id":89,"name":"VariableDeclaration","src":"2364:42:14"},{"attributes":{"constant":false,"name":"submittedWhitelistAddition","scope":569,"stateVariable":true,"storageLocation":"default","type":"bool","value":null,"visibility":"public"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":90,"name":"ElementaryTypeName","src":"2412:4:14"}],"id":91,"name":"VariableDeclaration","src":"2412:38:14"},{"attributes":{"constant":false,"name":"submittedWhitelistRemoval","scope":569,"stateVariable":true,"storageLocation":"default","type":"bool","value":null,"visibility":"public"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":92,"name":"ElementaryTypeName","src":"2456:4:14"}],"id":93,"name":"VariableDeclaration","src":"2456:37:14"},{"attributes":{"constant":false,"name":"isSetWhitelist","scope":569,"stateVariable":true,"storageLocation":"default","type":"bool","value":null,"visibility":"public"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":94,"name":"ElementaryTypeName","src":"2499:4:14"}],"id":95,"name":"VariableDeclaration","src":"2499:26:14"},{"attributes":{"documentation":"@dev Check if the provided addresses contain the owner or the zero-address address.","name":"hasNoOwnerOrZeroAddress","visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_addresses","scope":136,"stateVariable":false,"storageLocation":"default","type":"address[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"address[]"},"children":[{"attributes":{"name":"address","type":"address"},"id":96,"name":"ElementaryTypeName","src":"2657:7:14"}],"id":97,"name":"ArrayTypeName","src":"2657:9:14"}],"id":98,"name":"VariableDeclaration","src":"2657:20:14"}],"id":99,"name":"ParameterList","src":"2656:22:14"},{"children":[{"children":[{"attributes":{"assignments":[101]},"children":[{"attributes":{"constant":false,"name":"i","scope":136,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":100,"name":"ElementaryTypeName","src":"2694:4:14"}],"id":101,"name":"VariableDeclaration","src":"2694:6:14"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":102,"name":"Literal","src":"2703:1:14"}],"id":103,"name":"VariableDeclarationStatement","src":"2694:10:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":101,"type":"uint256","value":"i"},"id":104,"name":"Identifier","src":"2706:1:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":98,"type":"address[] memory","value":"_addresses"},"id":105,"name":"Identifier","src":"2710:10:14"}],"id":106,"name":"MemberAccess","src":"2710:17:14"}],"id":107,"name":"BinaryOperation","src":"2706:21:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":101,"type":"uint256","value":"i"},"id":108,"name":"Identifier","src":"2729:1:14"}],"id":109,"name":"UnaryOperation","src":"2729:3:14"}],"id":110,"name":"ExpressionStatement","src":"2729:3:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a8e75dab8c649aaf30d2579d69abebd67fdb09bf4c55445182ffabdea73015e7","typeString":"literal_string \"provided whitelist contains the owner address\""}],"overloadedDeclarations":[6502,6503],"referencedDeclaration":6503,"type":"function (bool,string memory) pure","value":"require"},"id":111,"name":"Identifier","src":"2748:7:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2482,"type":"function (address) view returns (bool)","value":"_isOwner"},"id":112,"name":"Identifier","src":"2757:8:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":98,"type":"address[] memory","value":"_addresses"},"id":113,"name":"Identifier","src":"2766:10:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":101,"type":"uint256","value":"i"},"id":114,"name":"Identifier","src":"2777:1:14"}],"id":115,"name":"IndexAccess","src":"2766:13:14"}],"id":116,"name":"FunctionCall","src":"2757:23:14"}],"id":117,"name":"UnaryOperation","src":"2756:24:14"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f76696465642077686974656c69737420636f6e7461696e7320746865206f776e65722061646472657373","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided whitelist contains the owner address\"","value":"provided whitelist contains the owner address"},"id":118,"name":"Literal","src":"2782:47:14"}],"id":119,"name":"FunctionCall","src":"2748:82:14"}],"id":120,"name":"ExpressionStatement","src":"2748:82:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_10c30a6ae890b4c9145915966050a4c7e3796232bd519845d92770d5a99133ce","typeString":"literal_string \"provided whitelist contains the zero address\""}],"overloadedDeclarations":[6502,6503],"referencedDeclaration":6503,"type":"function (bool,string memory) pure","value":"require"},"id":121,"name":"Identifier","src":"2844:7:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":98,"type":"address[] memory","value":"_addresses"},"id":122,"name":"Identifier","src":"2852:10:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":101,"type":"uint256","value":"i"},"id":123,"name":"Identifier","src":"2863:1:14"}],"id":124,"name":"IndexAccess","src":"2852:13:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":125,"name":"ElementaryTypeNameExpression","src":"2869:7:14"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":126,"name":"Literal","src":"2877:1:14"}],"id":127,"name":"FunctionCall","src":"2869:10:14"}],"id":128,"name":"BinaryOperation","src":"2852:27:14"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f76696465642077686974656c69737420636f6e7461696e7320746865207a65726f2061646472657373","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided whitelist contains the zero address\"","value":"provided whitelist contains the zero address"},"id":129,"name":"Literal","src":"2881:46:14"}],"id":130,"name":"FunctionCall","src":"2844:84:14"}],"id":131,"name":"ExpressionStatement","src":"2844:84:14"}],"id":132,"name":"Block","src":"2734:205:14"}],"id":133,"name":"ForStatement","src":"2689:250:14"},{"id":134,"name":"PlaceholderStatement","src":"2948:1:14"}],"id":135,"name":"Block","src":"2679:277:14"}],"id":136,"name":"ModifierDefinition","src":"2624:332:14"},{"attributes":{"documentation":"@dev Check that neither addition nor removal operations have already been submitted.","name":"noActiveSubmission","visibility":"internal"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":137,"name":"ParameterList","src":"3082:2:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_665937f210fbd572a30f9495df026a37ff13c6c171845299d4d867c4689fe504","typeString":"literal_string \"whitelist operation has already been submitted\""}],"overloadedDeclarations":[6502,6503],"referencedDeclaration":6503,"type":"function (bool,string memory) pure","value":"require"},"id":138,"name":"Identifier","src":"3095:7:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&&","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":91,"type":"bool","value":"submittedWhitelistAddition"},"id":139,"name":"Identifier","src":"3104:26:14"}],"id":140,"name":"UnaryOperation","src":"3103:27:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":93,"type":"bool","value":"submittedWhitelistRemoval"},"id":141,"name":"Identifier","src":"3135:25:14"}],"id":142,"name":"UnaryOperation","src":"3134:26:14"}],"id":143,"name":"BinaryOperation","src":"3103:57:14"},{"attributes":{"argumentTypes":null,"hexvalue":"77686974656c697374206f7065726174696f6e2068617320616c7265616479206265656e207375626d6974746564","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"whitelist operation has already been submitted\"","value":"whitelist operation has already been submitted"},"id":144,"name":"Literal","src":"3162:48:14"}],"id":145,"name":"FunctionCall","src":"3095:116:14"}],"id":146,"name":"ExpressionStatement","src":"3095:116:14"},{"id":147,"name":"PlaceholderStatement","src":"3221:1:14"}],"id":148,"name":"Block","src":"3085:144:14"}],"id":149,"name":"ModifierDefinition","src":"3055:174:14"},{"attributes":{"constant":true,"documentation":"@dev Getter for pending addition array.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"pendingWhitelistAddition","payable":false,"scope":569,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":150,"name":"ParameterList","src":"3316:2:14"},{"children":[{"attributes":{"constant":false,"name":"","scope":158,"stateVariable":false,"storageLocation":"default","type":"address[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"address[]"},"children":[{"attributes":{"name":"address","type":"address"},"id":151,"name":"ElementaryTypeName","src":"3342:7:14"}],"id":152,"name":"ArrayTypeName","src":"3342:9:14"}],"id":153,"name":"VariableDeclaration","src":"3342:9:14"}],"id":154,"name":"ParameterList","src":"3341:11:14"},{"children":[{"attributes":{"functionReturnParameters":154},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":86,"type":"address[] storage ref","value":"_pendingWhitelistAddition"},"id":155,"name":"Identifier","src":"3370:25:14"}],"id":156,"name":"Return","src":"3363:32:14"}],"id":157,"name":"Block","src":"3353:49:14"}],"id":158,"name":"FunctionDefinition","src":"3283:119:14"},{"attributes":{"constant":true,"documentation":"@dev Getter for pending removal array.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"pendingWhitelistRemoval","payable":false,"scope":569,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":159,"name":"ParameterList","src":"3487:2:14"},{"children":[{"attributes":{"constant":false,"name":"","scope":167,"stateVariable":false,"storageLocation":"default","type":"address[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"address[]"},"children":[{"attributes":{"name":"address","type":"address"},"id":160,"name":"ElementaryTypeName","src":"3513:7:14"}],"id":161,"name":"ArrayTypeName","src":"3513:9:14"}],"id":162,"name":"VariableDeclaration","src":"3513:9:14"}],"id":163,"name":"ParameterList","src":"3512:11:14"},{"children":[{"attributes":{"functionReturnParameters":163},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":89,"type":"address[] storage ref","value":"_pendingWhitelistRemoval"},"id":164,"name":"Identifier","src":"3541:24:14"}],"id":165,"name":"Return","src":"3534:31:14"}],"id":166,"name":"Block","src":"3524:48:14"}],"id":167,"name":"FunctionDefinition","src":"3455:117:14"},{"attributes":{"constant":false,"documentation":"@dev Add initial addresses to the whitelist.\n @param _addresses are the Ethereum addresses to be whitelisted.","implemented":true,"isConstructor":false,"name":"setWhitelist","payable":false,"scope":569,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_addresses","scope":224,"stateVariable":false,"storageLocation":"default","type":"address[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"address[]"},"children":[{"attributes":{"name":"address","type":"address"},"id":168,"name":"ElementaryTypeName","src":"3725:7:14"}],"id":169,"name":"ArrayTypeName","src":"3725:9:14"}],"id":170,"name":"VariableDeclaration","src":"3725:20:14"}],"id":171,"name":"ParameterList","src":"3724:22:14"},{"attributes":{"parameters":[null]},"children":[],"id":177,"name":"ParameterList","src":"3802:0:14"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2385,"type":"modifier ()","value":"onlyOwner"},"id":172,"name":"Identifier","src":"3756:9:14"}],"id":173,"name":"ModifierInvocation","src":"3756:9:14"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":136,"type":"modifier (address[] memory)","value":"hasNoOwnerOrZeroAddress"},"id":174,"name":"Identifier","src":"3766:23:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":170,"type":"address[] calldata","value":"_addresses"},"id":175,"name":"Identifier","src":"3790:10:14"}],"id":176,"name":"ModifierInvocation","src":"3766:35:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7024d65bf5367912af517dc5671eda7e8e68ce28d43c87290e0733d2837f88dd","typeString":"literal_string \"whitelist has already been initialized\""}],"overloadedDeclarations":[6502,6503],"referencedDeclaration":6503,"type":"function (bool,string memory) pure","value":"require"},"id":178,"name":"Identifier","src":"3876:7:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":95,"type":"bool","value":"isSetWhitelist"},"id":179,"name":"Identifier","src":"3885:14:14"}],"id":180,"name":"UnaryOperation","src":"3884:15:14"},{"attributes":{"argumentTypes":null,"hexvalue":"77686974656c6973742068617320616c7265616479206265656e20696e697469616c697a6564","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"whitelist has already been initialized\"","value":"whitelist has already been initialized"},"id":181,"name":"Literal","src":"3901:40:14"}],"id":182,"name":"FunctionCall","src":"3876:66:14"}],"id":183,"name":"ExpressionStatement","src":"3876:66:14"},{"children":[{"attributes":{"assignments":[185]},"children":[{"attributes":{"constant":false,"name":"i","scope":224,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":184,"name":"ElementaryTypeName","src":"4021:4:14"}],"id":185,"name":"VariableDeclaration","src":"4021:6:14"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":186,"name":"Literal","src":"4030:1:14"}],"id":187,"name":"VariableDeclarationStatement","src":"4021:10:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":185,"type":"uint256","value":"i"},"id":188,"name":"Identifier","src":"4033:1:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":170,"type":"address[] calldata","value":"_addresses"},"id":189,"name":"Identifier","src":"4037:10:14"}],"id":190,"name":"MemberAccess","src":"4037:17:14"}],"id":191,"name":"BinaryOperation","src":"4033:21:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":185,"type":"uint256","value":"i"},"id":192,"name":"Identifier","src":"4056:1:14"}],"id":193,"name":"UnaryOperation","src":"4056:3:14"}],"id":194,"name":"ExpressionStatement","src":"4056:3:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":80,"type":"mapping(address => bool)","value":"whitelistMap"},"id":195,"name":"Identifier","src":"4120:12:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":170,"type":"address[] calldata","value":"_addresses"},"id":196,"name":"Identifier","src":"4133:10:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":185,"type":"uint256","value":"i"},"id":197,"name":"Identifier","src":"4144:1:14"}],"id":198,"name":"IndexAccess","src":"4133:13:14"}],"id":199,"name":"IndexAccess","src":"4120:27:14"},{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":200,"name":"Literal","src":"4150:4:14"}],"id":201,"name":"Assignment","src":"4120:34:14"}],"id":202,"name":"ExpressionStatement","src":"4120:34:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"push","referencedDeclaration":null,"type":"function (address) returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":83,"type":"address[] storage ref","value":"whitelistArray"},"id":203,"name":"Identifier","src":"4211:14:14"}],"id":205,"name":"MemberAccess","src":"4211:19:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":170,"type":"address[] calldata","value":"_addresses"},"id":206,"name":"Identifier","src":"4231:10:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":185,"type":"uint256","value":"i"},"id":207,"name":"Identifier","src":"4242:1:14"}],"id":208,"name":"IndexAccess","src":"4231:13:14"}],"id":209,"name":"FunctionCall","src":"4211:34:14"}],"id":210,"name":"ExpressionStatement","src":"4211:34:14"}],"id":211,"name":"Block","src":"4061:195:14"}],"id":212,"name":"ForStatement","src":"4016:240:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":95,"type":"bool","value":"isSetWhitelist"},"id":213,"name":"Identifier","src":"4265:14:14"},{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":214,"name":"Literal","src":"4282:4:14"}],"id":215,"name":"Assignment","src":"4265:21:14"}],"id":216,"name":"ExpressionStatement","src":"4265:21:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}],"overloadedDeclarations":[null],"referencedDeclaration":43,"type":"function (address,address[] memory)","value":"AddedToWhitelist"},"id":217,"name":"Identifier","src":"4337:16:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6499,"type":"msg","value":"msg"},"id":218,"name":"Identifier","src":"4354:3:14"}],"id":219,"name":"MemberAccess","src":"4354:10:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":170,"type":"address[] calldata","value":"_addresses"},"id":220,"name":"Identifier","src":"4366:10:14"}],"id":221,"name":"FunctionCall","src":"4337:40:14"}],"id":222,"name":"EmitStatement","src":"4332:45:14"}],"id":223,"name":"Block","src":"3802:582:14"}],"id":224,"name":"FunctionDefinition","src":"3703:681:14"},{"attributes":{"constant":false,"documentation":"@dev Add addresses to the whitelist.\n @param _addresses are the Ethereum addresses to be whitelisted.","implemented":true,"isConstructor":false,"name":"submitWhitelistAddition","payable":false,"scope":569,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_addresses","scope":266,"stateVariable":false,"storageLocation":"default","type":"address[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"address[]"},"children":[{"attributes":{"name":"address","type":"address"},"id":225,"name":"ElementaryTypeName","src":"4540:7:14"}],"id":226,"name":"ArrayTypeName","src":"4540:9:14"}],"id":227,"name":"VariableDeclaration","src":"4540:20:14"}],"id":228,"name":"ParameterList","src":"4539:22:14"},{"attributes":{"parameters":[null]},"children":[],"id":236,"name":"ParameterList","src":"4636:0:14"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2385,"type":"modifier ()","value":"onlyOwner"},"id":229,"name":"Identifier","src":"4571:9:14"}],"id":230,"name":"ModifierInvocation","src":"4571:9:14"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":149,"type":"modifier ()","value":"noActiveSubmission"},"id":231,"name":"Identifier","src":"4581:18:14"}],"id":232,"name":"ModifierInvocation","src":"4581:18:14"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":136,"type":"modifier (address[] memory)","value":"hasNoOwnerOrZeroAddress"},"id":233,"name":"Identifier","src":"4600:23:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":227,"type":"address[] calldata","value":"_addresses"},"id":234,"name":"Identifier","src":"4624:10:14"}],"id":235,"name":"ModifierInvocation","src":"4600:35:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_462eec1a9b2ee9539f6389733db6b77e20849ccd801eacbd01e20a7715d3353a","typeString":"literal_string \"whitelist has not been initialized\""}],"overloadedDeclarations":[6502,6503],"referencedDeclaration":6503,"type":"function (bool,string memory) pure","value":"require"},"id":237,"name":"Identifier","src":"4706:7:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":95,"type":"bool","value":"isSetWhitelist"},"id":238,"name":"Identifier","src":"4714:14:14"},{"attributes":{"argumentTypes":null,"hexvalue":"77686974656c69737420686173206e6f74206265656e20696e697469616c697a6564","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"whitelist has not been initialized\"","value":"whitelist has not been initialized"},"id":239,"name":"Literal","src":"4730:36:14"}],"id":240,"name":"FunctionCall","src":"4706:61:14"}],"id":241,"name":"ExpressionStatement","src":"4706:61:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_11a44fc28b7f30529e9820e81eadde0c8eb8cf2105a2c5c0517e5fc2624d6439","typeString":"literal_string \"pending whitelist addition is empty\""}],"overloadedDeclarations":[6502,6503],"referencedDeclaration":6503,"type":"function (bool,string memory) pure","value":"require"},"id":242,"name":"Identifier","src":"4830:7:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":227,"type":"address[] calldata","value":"_addresses"},"id":243,"name":"Identifier","src":"4838:10:14"}],"id":244,"name":"MemberAccess","src":"4838:17:14"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":245,"name":"Literal","src":"4858:1:14"}],"id":246,"name":"BinaryOperation","src":"4838:21:14"},{"attributes":{"argumentTypes":null,"hexvalue":"70656e64696e672077686974656c697374206164646974696f6e20697320656d707479","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"pending whitelist addition is empty\"","value":"pending whitelist addition is empty"},"id":247,"name":"Literal","src":"4861:37:14"}],"id":248,"name":"FunctionCall","src":"4830:69:14"}],"id":249,"name":"ExpressionStatement","src":"4830:69:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"address[] storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":86,"type":"address[] storage ref","value":"_pendingWhitelistAddition"},"id":250,"name":"Identifier","src":"4982:25:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":227,"type":"address[] calldata","value":"_addresses"},"id":251,"name":"Identifier","src":"5010:10:14"}],"id":252,"name":"Assignment","src":"4982:38:14"}],"id":253,"name":"ExpressionStatement","src":"4982:38:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":91,"type":"bool","value":"submittedWhitelistAddition"},"id":254,"name":"Identifier","src":"5074:26:14"},{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":255,"name":"Literal","src":"5103:4:14"}],"id":256,"name":"Assignment","src":"5074:33:14"}],"id":257,"name":"ExpressionStatement","src":"5074:33:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[null],"referencedDeclaration":50,"type":"function (address[] memory,bytes32)","value":"SubmittedWhitelistAddition"},"id":258,"name":"Identifier","src":"5160:26:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":227,"type":"address[] calldata","value":"_addresses"},"id":259,"name":"Identifier","src":"5187:10:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}],"overloadedDeclarations":[null],"referencedDeclaration":568,"type":"function (address[] memory) pure returns (bytes32)","value":"calculateHash"},"id":260,"name":"Identifier","src":"5199:13:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":227,"type":"address[] calldata","value":"_addresses"},"id":261,"name":"Identifier","src":"5213:10:14"}],"id":262,"name":"FunctionCall","src":"5199:25:14"}],"id":263,"name":"FunctionCall","src":"5160:65:14"}],"id":264,"name":"EmitStatement","src":"5155:70:14"}],"id":265,"name":"Block","src":"4636:596:14"}],"id":266,"name":"FunctionDefinition","src":"4507:725:14"},{"attributes":{"constant":false,"documentation":"@dev Confirm pending whitelist addition.\n @dev This will only ever be applied post 2FA, by one of the Controllers\n @param _hash is the hash of the pending whitelist array, a form of lamport lock","implemented":true,"isConstructor":false,"name":"confirmWhitelistAddition","payable":false,"scope":569,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_hash","scope":338,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":267,"name":"ElementaryTypeName","src":"5489:7:14"}],"id":268,"name":"VariableDeclaration","src":"5489:13:14"}],"id":269,"name":"ParameterList","src":"5488:15:14"},{"attributes":{"parameters":[null]},"children":[],"id":272,"name":"ParameterList","src":"5528:0:14"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2249,"type":"modifier ()","value":"onlyController"},"id":270,"name":"Identifier","src":"5513:14:14"}],"id":271,"name":"ModifierInvocation","src":"5513:14:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8f5fd1a84abe204d8ec3580e6913cdd98c6ecfbb95a59f815096b771369fe217","typeString":"literal_string \"whitelist addition has not been submitted\""}],"overloadedDeclarations":[6502,6503],"referencedDeclaration":6503,"type":"function (bool,string memory) pure","value":"require"},"id":273,"name":"Identifier","src":"5605:7:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":91,"type":"bool","value":"submittedWhitelistAddition"},"id":274,"name":"Identifier","src":"5613:26:14"},{"attributes":{"argumentTypes":null,"hexvalue":"77686974656c697374206164646974696f6e20686173206e6f74206265656e207375626d6974746564","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"whitelist addition has not been submitted\"","value":"whitelist addition has not been submitted"},"id":275,"name":"Literal","src":"5641:43:14"}],"id":276,"name":"FunctionCall","src":"5605:80:14"}],"id":277,"name":"ExpressionStatement","src":"5605:80:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b8148bcb0baffad7e0d0d61b3668be7d84b53b39e5765bea528ae472428be7b9","typeString":"literal_string \"hash of the pending whitelist addition do not match\""}],"overloadedDeclarations":[6502,6503],"referencedDeclaration":6503,"type":"function (bool,string memory) pure","value":"require"},"id":278,"name":"Identifier","src":"5790:7:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":268,"type":"bytes32","value":"_hash"},"id":279,"name":"Identifier","src":"5798:5:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}],"overloadedDeclarations":[null],"referencedDeclaration":568,"type":"function (address[] memory) pure returns (bytes32)","value":"calculateHash"},"id":280,"name":"Identifier","src":"5807:13:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":86,"type":"address[] storage ref","value":"_pendingWhitelistAddition"},"id":281,"name":"Identifier","src":"5821:25:14"}],"id":282,"name":"FunctionCall","src":"5807:40:14"}],"id":283,"name":"BinaryOperation","src":"5798:49:14"},{"attributes":{"argumentTypes":null,"hexvalue":"68617368206f66207468652070656e64696e672077686974656c697374206164646974696f6e20646f206e6f74206d61746368","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"hash of the pending whitelist addition do not match\"","value":"hash of the pending whitelist addition do not match"},"id":284,"name":"Literal","src":"5849:53:14"}],"id":285,"name":"FunctionCall","src":"5790:113:14"}],"id":286,"name":"ExpressionStatement","src":"5790:113:14"},{"children":[{"attributes":{"assignments":[288]},"children":[{"attributes":{"constant":false,"name":"i","scope":338,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":287,"name":"ElementaryTypeName","src":"5958:4:14"}],"id":288,"name":"VariableDeclaration","src":"5958:6:14"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":289,"name":"Literal","src":"5967:1:14"}],"id":290,"name":"VariableDeclarationStatement","src":"5958:10:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":288,"type":"uint256","value":"i"},"id":291,"name":"Identifier","src":"5970:1:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":86,"type":"address[] storage ref","value":"_pendingWhitelistAddition"},"id":292,"name":"Identifier","src":"5974:25:14"}],"id":293,"name":"MemberAccess","src":"5974:32:14"}],"id":294,"name":"BinaryOperation","src":"5970:36:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":288,"type":"uint256","value":"i"},"id":295,"name":"Identifier","src":"6008:1:14"}],"id":296,"name":"UnaryOperation","src":"6008:3:14"}],"id":297,"name":"ExpressionStatement","src":"6008:3:14"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":80,"type":"mapping(address => bool)","value":"whitelistMap"},"id":298,"name":"Identifier","src":"6082:12:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":86,"type":"address[] storage ref","value":"_pendingWhitelistAddition"},"id":299,"name":"Identifier","src":"6095:25:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":288,"type":"uint256","value":"i"},"id":300,"name":"Identifier","src":"6121:1:14"}],"id":301,"name":"IndexAccess","src":"6095:28:14"}],"id":302,"name":"IndexAccess","src":"6082:42:14"}],"id":303,"name":"UnaryOperation","src":"6081:43:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":80,"type":"mapping(address => bool)","value":"whitelistMap"},"id":304,"name":"Identifier","src":"6193:12:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":86,"type":"address[] storage ref","value":"_pendingWhitelistAddition"},"id":305,"name":"Identifier","src":"6206:25:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":288,"type":"uint256","value":"i"},"id":306,"name":"Identifier","src":"6232:1:14"}],"id":307,"name":"IndexAccess","src":"6206:28:14"}],"id":308,"name":"IndexAccess","src":"6193:42:14"},{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":309,"name":"Literal","src":"6238:4:14"}],"id":310,"name":"Assignment","src":"6193:49:14"}],"id":311,"name":"ExpressionStatement","src":"6193:49:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"push","referencedDeclaration":null,"type":"function (address) returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":83,"type":"address[] storage ref","value":"whitelistArray"},"id":312,"name":"Identifier","src":"6260:14:14"}],"id":314,"name":"MemberAccess","src":"6260:19:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":86,"type":"address[] storage ref","value":"_pendingWhitelistAddition"},"id":315,"name":"Identifier","src":"6280:25:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":288,"type":"uint256","value":"i"},"id":316,"name":"Identifier","src":"6306:1:14"}],"id":317,"name":"IndexAccess","src":"6280:28:14"}],"id":318,"name":"FunctionCall","src":"6260:49:14"}],"id":319,"name":"ExpressionStatement","src":"6260:49:14"}],"id":320,"name":"Block","src":"6126:198:14"}],"id":321,"name":"IfStatement","src":"6077:247:14"}],"id":322,"name":"Block","src":"6013:321:14"}],"id":323,"name":"ForStatement","src":"5953:381:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}],"overloadedDeclarations":[null],"referencedDeclaration":43,"type":"function (address,address[] memory)","value":"AddedToWhitelist"},"id":324,"name":"Identifier","src":"6384:16:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6499,"type":"msg","value":"msg"},"id":325,"name":"Identifier","src":"6401:3:14"}],"id":326,"name":"MemberAccess","src":"6401:10:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":86,"type":"address[] storage ref","value":"_pendingWhitelistAddition"},"id":327,"name":"Identifier","src":"6413:25:14"}],"id":328,"name":"FunctionCall","src":"6384:55:14"}],"id":329,"name":"EmitStatement","src":"6379:60:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"delete","prefix":true,"type":"tuple()"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":86,"type":"address[] storage ref","value":"_pendingWhitelistAddition"},"id":330,"name":"Identifier","src":"6492:25:14"}],"id":331,"name":"UnaryOperation","src":"6485:32:14"}],"id":332,"name":"ExpressionStatement","src":"6485:32:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":91,"type":"bool","value":"submittedWhitelistAddition"},"id":333,"name":"Identifier","src":"6565:26:14"},{"attributes":{"argumentTypes":null,"hexvalue":"66616c7365","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"false"},"id":334,"name":"Literal","src":"6594:5:14"}],"id":335,"name":"Assignment","src":"6565:34:14"}],"id":336,"name":"ExpressionStatement","src":"6565:34:14"}],"id":337,"name":"Block","src":"5528:1078:14"}],"id":338,"name":"FunctionDefinition","src":"5455:1151:14"},{"attributes":{"constant":false,"documentation":"@dev Cancel pending whitelist addition.","implemented":true,"isConstructor":false,"name":"cancelWhitelistAddition","payable":false,"scope":569,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_hash","scope":373,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":339,"name":"ElementaryTypeName","src":"6693:7:14"}],"id":340,"name":"VariableDeclaration","src":"6693:13:14"}],"id":341,"name":"ParameterList","src":"6692:15:14"},{"attributes":{"parameters":[null]},"children":[],"id":344,"name":"ParameterList","src":"6739:0:14"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":30,"type":"modifier ()","value":"onlyOwnerOrController"},"id":342,"name":"Identifier","src":"6717:21:14"}],"id":343,"name":"ModifierInvocation","src":"6717:21:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8f5fd1a84abe204d8ec3580e6913cdd98c6ecfbb95a59f815096b771369fe217","typeString":"literal_string \"whitelist addition has not been submitted\""}],"overloadedDeclarations":[6502,6503],"referencedDeclaration":6503,"type":"function (bool,string memory) pure","value":"require"},"id":345,"name":"Identifier","src":"6799:7:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":91,"type":"bool","value":"submittedWhitelistAddition"},"id":346,"name":"Identifier","src":"6807:26:14"},{"attributes":{"argumentTypes":null,"hexvalue":"77686974656c697374206164646974696f6e20686173206e6f74206265656e207375626d6974746564","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"whitelist addition has not been submitted\"","value":"whitelist addition has not been submitted"},"id":347,"name":"Literal","src":"6835:43:14"}],"id":348,"name":"FunctionCall","src":"6799:80:14"}],"id":349,"name":"ExpressionStatement","src":"6799:80:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ae3de538c1508bb610da34b2e75019eb7397abef7e126d40acc2c55231f1cd1e","typeString":"literal_string \"hash of the pending whitelist addition does not match\""}],"overloadedDeclarations":[6502,6503],"referencedDeclaration":6503,"type":"function (bool,string memory) pure","value":"require"},"id":350,"name":"Identifier","src":"6984:7:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":340,"type":"bytes32","value":"_hash"},"id":351,"name":"Identifier","src":"6992:5:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}],"overloadedDeclarations":[null],"referencedDeclaration":568,"type":"function (address[] memory) pure returns (bytes32)","value":"calculateHash"},"id":352,"name":"Identifier","src":"7001:13:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":86,"type":"address[] storage ref","value":"_pendingWhitelistAddition"},"id":353,"name":"Identifier","src":"7015:25:14"}],"id":354,"name":"FunctionCall","src":"7001:40:14"}],"id":355,"name":"BinaryOperation","src":"6992:49:14"},{"attributes":{"argumentTypes":null,"hexvalue":"68617368206f66207468652070656e64696e672077686974656c697374206164646974696f6e20646f6573206e6f74206d61746368","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"hash of the pending whitelist addition does not match\"","value":"hash of the pending whitelist addition does not match"},"id":356,"name":"Literal","src":"7043:55:14"}],"id":357,"name":"FunctionCall","src":"6984:115:14"}],"id":358,"name":"ExpressionStatement","src":"6984:115:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"delete","prefix":true,"type":"tuple()"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":86,"type":"address[] storage ref","value":"_pendingWhitelistAddition"},"id":359,"name":"Identifier","src":"7152:25:14"}],"id":360,"name":"UnaryOperation","src":"7145:32:14"}],"id":361,"name":"ExpressionStatement","src":"7145:32:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":91,"type":"bool","value":"submittedWhitelistAddition"},"id":362,"name":"Identifier","src":"7234:26:14"},{"attributes":{"argumentTypes":null,"hexvalue":"66616c7365","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"false"},"id":363,"name":"Literal","src":"7263:5:14"}],"id":364,"name":"Assignment","src":"7234:34:14"}],"id":365,"name":"ExpressionStatement","src":"7234:34:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[null],"referencedDeclaration":56,"type":"function (address,bytes32)","value":"CancelledWhitelistAddition"},"id":366,"name":"Identifier","src":"7323:26:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6499,"type":"msg","value":"msg"},"id":367,"name":"Identifier","src":"7350:3:14"}],"id":368,"name":"MemberAccess","src":"7350:10:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":340,"type":"bytes32","value":"_hash"},"id":369,"name":"Identifier","src":"7362:5:14"}],"id":370,"name":"FunctionCall","src":"7323:45:14"}],"id":371,"name":"EmitStatement","src":"7318:50:14"}],"id":372,"name":"Block","src":"6739:636:14"}],"id":373,"name":"FunctionDefinition","src":"6660:715:14"},{"attributes":{"constant":false,"documentation":"@dev Remove addresses from the whitelist.\n @param _addresses are the Ethereum addresses to be removed.","implemented":true,"isConstructor":false,"name":"submitWhitelistRemoval","payable":false,"scope":569,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_addresses","scope":412,"stateVariable":false,"storageLocation":"default","type":"address[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"address[]"},"children":[{"attributes":{"name":"address","type":"address"},"id":374,"name":"ElementaryTypeName","src":"7531:7:14"}],"id":375,"name":"ArrayTypeName","src":"7531:9:14"}],"id":376,"name":"VariableDeclaration","src":"7531:20:14"}],"id":377,"name":"ParameterList","src":"7530:22:14"},{"attributes":{"parameters":[null]},"children":[],"id":382,"name":"ParameterList","src":"7591:0:14"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2385,"type":"modifier ()","value":"onlyOwner"},"id":378,"name":"Identifier","src":"7562:9:14"}],"id":379,"name":"ModifierInvocation","src":"7562:9:14"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":149,"type":"modifier ()","value":"noActiveSubmission"},"id":380,"name":"Identifier","src":"7572:18:14"}],"id":381,"name":"ModifierInvocation","src":"7572:18:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_462eec1a9b2ee9539f6389733db6b77e20849ccd801eacbd01e20a7715d3353a","typeString":"literal_string \"whitelist has not been initialized\""}],"overloadedDeclarations":[6502,6503],"referencedDeclaration":6503,"type":"function (bool,string memory) pure","value":"require"},"id":383,"name":"Identifier","src":"7661:7:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":95,"type":"bool","value":"isSetWhitelist"},"id":384,"name":"Identifier","src":"7669:14:14"},{"attributes":{"argumentTypes":null,"hexvalue":"77686974656c69737420686173206e6f74206265656e20696e697469616c697a6564","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"whitelist has not been initialized\"","value":"whitelist has not been initialized"},"id":385,"name":"Literal","src":"7685:36:14"}],"id":386,"name":"FunctionCall","src":"7661:61:14"}],"id":387,"name":"ExpressionStatement","src":"7661:61:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ad870f5f9cc998dea2669fdd1b83ae1903079652d00c696ea0d6be296a947908","typeString":"literal_string \"pending whitelist removal is empty\""}],"overloadedDeclarations":[6502,6503],"referencedDeclaration":6503,"type":"function (bool,string memory) pure","value":"require"},"id":388,"name":"Identifier","src":"7792:7:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":376,"type":"address[] calldata","value":"_addresses"},"id":389,"name":"Identifier","src":"7800:10:14"}],"id":390,"name":"MemberAccess","src":"7800:17:14"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":391,"name":"Literal","src":"7820:1:14"}],"id":392,"name":"BinaryOperation","src":"7800:21:14"},{"attributes":{"argumentTypes":null,"hexvalue":"70656e64696e672077686974656c6973742072656d6f76616c20697320656d707479","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"pending whitelist removal is empty\"","value":"pending whitelist removal is empty"},"id":393,"name":"Literal","src":"7823:36:14"}],"id":394,"name":"FunctionCall","src":"7792:68:14"}],"id":395,"name":"ExpressionStatement","src":"7792:68:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"address[] storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":89,"type":"address[] storage ref","value":"_pendingWhitelistRemoval"},"id":396,"name":"Identifier","src":"7938:24:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":376,"type":"address[] calldata","value":"_addresses"},"id":397,"name":"Identifier","src":"7965:10:14"}],"id":398,"name":"Assignment","src":"7938:37:14"}],"id":399,"name":"ExpressionStatement","src":"7938:37:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":93,"type":"bool","value":"submittedWhitelistRemoval"},"id":400,"name":"Identifier","src":"8029:25:14"},{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":401,"name":"Literal","src":"8057:4:14"}],"id":402,"name":"Assignment","src":"8029:32:14"}],"id":403,"name":"ExpressionStatement","src":"8029:32:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[null],"referencedDeclaration":70,"type":"function (address[] memory,bytes32)","value":"SubmittedWhitelistRemoval"},"id":404,"name":"Identifier","src":"8114:25:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":376,"type":"address[] calldata","value":"_addresses"},"id":405,"name":"Identifier","src":"8140:10:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}],"overloadedDeclarations":[null],"referencedDeclaration":568,"type":"function (address[] memory) pure returns (bytes32)","value":"calculateHash"},"id":406,"name":"Identifier","src":"8152:13:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":376,"type":"address[] calldata","value":"_addresses"},"id":407,"name":"Identifier","src":"8166:10:14"}],"id":408,"name":"FunctionCall","src":"8152:25:14"}],"id":409,"name":"FunctionCall","src":"8114:64:14"}],"id":410,"name":"EmitStatement","src":"8109:69:14"}],"id":411,"name":"Block","src":"7591:594:14"}],"id":412,"name":"FunctionDefinition","src":"7499:686:14"},{"attributes":{"constant":false,"documentation":"@dev Confirm pending removal of whitelisted addresses.","implemented":true,"isConstructor":false,"name":"confirmWhitelistRemoval","payable":false,"scope":569,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_hash","scope":517,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":413,"name":"ElementaryTypeName","src":"8287:7:14"}],"id":414,"name":"VariableDeclaration","src":"8287:13:14"}],"id":415,"name":"ParameterList","src":"8286:15:14"},{"attributes":{"parameters":[null]},"children":[],"id":418,"name":"ParameterList","src":"8326:0:14"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2249,"type":"modifier ()","value":"onlyController"},"id":416,"name":"Identifier","src":"8311:14:14"}],"id":417,"name":"ModifierInvocation","src":"8311:14:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4c5b47fe42139f334a4445a4818d2d5f0d9462c6963c0708ec37562736362c82","typeString":"literal_string \"whitelist removal has not been submitted\""}],"overloadedDeclarations":[6502,6503],"referencedDeclaration":6503,"type":"function (bool,string memory) pure","value":"require"},"id":419,"name":"Identifier","src":"8433:7:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":93,"type":"bool","value":"submittedWhitelistRemoval"},"id":420,"name":"Identifier","src":"8441:25:14"},{"attributes":{"argumentTypes":null,"hexvalue":"77686974656c6973742072656d6f76616c20686173206e6f74206265656e207375626d6974746564","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"whitelist removal has not been submitted\"","value":"whitelist removal has not been submitted"},"id":421,"name":"Literal","src":"8468:42:14"}],"id":422,"name":"FunctionCall","src":"8433:78:14"}],"id":423,"name":"ExpressionStatement","src":"8433:78:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7add49aa9a325891343b7cdec1a97ed33cdb67048810e6f5dca489af2c108de6","typeString":"literal_string \"hash of the pending whitelist removal does not match the confirmed hash\""}],"overloadedDeclarations":[6502,6503],"referencedDeclaration":6503,"type":"function (bool,string memory) pure","value":"require"},"id":424,"name":"Identifier","src":"8615:7:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":414,"type":"bytes32","value":"_hash"},"id":425,"name":"Identifier","src":"8623:5:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}],"overloadedDeclarations":[null],"referencedDeclaration":568,"type":"function (address[] memory) pure returns (bytes32)","value":"calculateHash"},"id":426,"name":"Identifier","src":"8632:13:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":89,"type":"address[] storage ref","value":"_pendingWhitelistRemoval"},"id":427,"name":"Identifier","src":"8646:24:14"}],"id":428,"name":"FunctionCall","src":"8632:39:14"}],"id":429,"name":"BinaryOperation","src":"8623:48:14"},{"attributes":{"argumentTypes":null,"hexvalue":"68617368206f66207468652070656e64696e672077686974656c6973742072656d6f76616c20646f6573206e6f74206d617463682074686520636f6e6669726d65642068617368","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"hash of the pending whitelist removal does not match the confirmed hash\"","value":"hash of the pending whitelist removal does not match the confirmed hash"},"id":430,"name":"Literal","src":"8673:73:14"}],"id":431,"name":"FunctionCall","src":"8615:132:14"}],"id":432,"name":"ExpressionStatement","src":"8615:132:14"},{"children":[{"attributes":{"assignments":[434]},"children":[{"attributes":{"constant":false,"name":"i","scope":517,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":433,"name":"ElementaryTypeName","src":"8799:4:14"}],"id":434,"name":"VariableDeclaration","src":"8799:6:14"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":435,"name":"Literal","src":"8808:1:14"}],"id":436,"name":"VariableDeclarationStatement","src":"8799:10:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":434,"type":"uint256","value":"i"},"id":437,"name":"Identifier","src":"8811:1:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":89,"type":"address[] storage ref","value":"_pendingWhitelistRemoval"},"id":438,"name":"Identifier","src":"8815:24:14"}],"id":439,"name":"MemberAccess","src":"8815:31:14"}],"id":440,"name":"BinaryOperation","src":"8811:35:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":434,"type":"uint256","value":"i"},"id":441,"name":"Identifier","src":"8848:1:14"}],"id":442,"name":"UnaryOperation","src":"8848:3:14"}],"id":443,"name":"ExpressionStatement","src":"8848:3:14"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":80,"type":"mapping(address => bool)","value":"whitelistMap"},"id":444,"name":"Identifier","src":"8905:12:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":89,"type":"address[] storage ref","value":"_pendingWhitelistRemoval"},"id":445,"name":"Identifier","src":"8918:24:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":434,"type":"uint256","value":"i"},"id":446,"name":"Identifier","src":"8943:1:14"}],"id":447,"name":"IndexAccess","src":"8918:27:14"}],"id":448,"name":"IndexAccess","src":"8905:41:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":80,"type":"mapping(address => bool)","value":"whitelistMap"},"id":449,"name":"Identifier","src":"8966:12:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":89,"type":"address[] storage ref","value":"_pendingWhitelistRemoval"},"id":450,"name":"Identifier","src":"8979:24:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":434,"type":"uint256","value":"i"},"id":451,"name":"Identifier","src":"9004:1:14"}],"id":452,"name":"IndexAccess","src":"8979:27:14"}],"id":453,"name":"IndexAccess","src":"8966:41:14"},{"attributes":{"argumentTypes":null,"hexvalue":"66616c7365","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"false"},"id":454,"name":"Literal","src":"9010:5:14"}],"id":455,"name":"Assignment","src":"8966:49:14"}],"id":456,"name":"ExpressionStatement","src":"8966:49:14"},{"children":[{"attributes":{"assignments":[458]},"children":[{"attributes":{"constant":false,"name":"j","scope":517,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":457,"name":"ElementaryTypeName","src":"9038:4:14"}],"id":458,"name":"VariableDeclaration","src":"9038:6:14"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":459,"name":"Literal","src":"9047:1:14"}],"id":460,"name":"VariableDeclarationStatement","src":"9038:10:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":458,"type":"uint256","value":"j"},"id":461,"name":"Identifier","src":"9050:1:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sub","referencedDeclaration":2174,"type":"function (uint256,uint256) pure returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":83,"type":"address[] storage ref","value":"whitelistArray"},"id":462,"name":"Identifier","src":"9054:14:14"}],"id":463,"name":"MemberAccess","src":"9054:21:14"}],"id":464,"name":"MemberAccess","src":"9054:25:14"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":465,"name":"Literal","src":"9080:1:14"}],"id":466,"name":"FunctionCall","src":"9054:28:14"}],"id":467,"name":"BinaryOperation","src":"9050:32:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":458,"type":"uint256","value":"j"},"id":468,"name":"Identifier","src":"9084:1:14"}],"id":469,"name":"UnaryOperation","src":"9084:3:14"}],"id":470,"name":"ExpressionStatement","src":"9084:3:14"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":83,"type":"address[] storage ref","value":"whitelistArray"},"id":471,"name":"Identifier","src":"9115:14:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":458,"type":"uint256","value":"j"},"id":472,"name":"Identifier","src":"9130:1:14"}],"id":473,"name":"IndexAccess","src":"9115:17:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":89,"type":"address[] storage ref","value":"_pendingWhitelistRemoval"},"id":474,"name":"Identifier","src":"9136:24:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":434,"type":"uint256","value":"i"},"id":475,"name":"Identifier","src":"9161:1:14"}],"id":476,"name":"IndexAccess","src":"9136:27:14"}],"id":477,"name":"BinaryOperation","src":"9115:48:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"address"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":83,"type":"address[] storage ref","value":"whitelistArray"},"id":478,"name":"Identifier","src":"9191:14:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":458,"type":"uint256","value":"j"},"id":479,"name":"Identifier","src":"9206:1:14"}],"id":480,"name":"IndexAccess","src":"9191:17:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":83,"type":"address[] storage ref","value":"whitelistArray"},"id":481,"name":"Identifier","src":"9211:14:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"-","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":83,"type":"address[] storage ref","value":"whitelistArray"},"id":482,"name":"Identifier","src":"9226:14:14"}],"id":483,"name":"MemberAccess","src":"9226:21:14"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 1","value":"1"},"id":484,"name":"Literal","src":"9250:1:14"}],"id":485,"name":"BinaryOperation","src":"9226:25:14"}],"id":486,"name":"IndexAccess","src":"9211:41:14"}],"id":487,"name":"Assignment","src":"9191:61:14"}],"id":488,"name":"ExpressionStatement","src":"9191:61:14"},{"id":489,"name":"Break","src":"9278:5:14"}],"id":490,"name":"Block","src":"9165:141:14"}],"id":491,"name":"IfStatement","src":"9111:195:14"}],"id":492,"name":"Block","src":"9089:235:14"}],"id":493,"name":"ForStatement","src":"9033:291:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"--","prefix":false,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":83,"type":"address[] storage ref","value":"whitelistArray"},"id":494,"name":"Identifier","src":"9341:14:14"}],"id":496,"name":"MemberAccess","src":"9341:21:14"}],"id":497,"name":"UnaryOperation","src":"9341:23:14"}],"id":498,"name":"ExpressionStatement","src":"9341:23:14"}],"id":499,"name":"Block","src":"8948:431:14"}],"id":500,"name":"IfStatement","src":"8901:478:14"}],"id":501,"name":"Block","src":"8853:536:14"}],"id":502,"name":"ForStatement","src":"8794:595:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}],"overloadedDeclarations":[null],"referencedDeclaration":63,"type":"function (address,address[] memory)","value":"RemovedFromWhitelist"},"id":503,"name":"Identifier","src":"9438:20:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6499,"type":"msg","value":"msg"},"id":504,"name":"Identifier","src":"9459:3:14"}],"id":505,"name":"MemberAccess","src":"9459:10:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":89,"type":"address[] storage ref","value":"_pendingWhitelistRemoval"},"id":506,"name":"Identifier","src":"9471:24:14"}],"id":507,"name":"FunctionCall","src":"9438:58:14"}],"id":508,"name":"EmitStatement","src":"9433:63:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"delete","prefix":true,"type":"tuple()"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":89,"type":"address[] storage ref","value":"_pendingWhitelistRemoval"},"id":509,"name":"Identifier","src":"9549:24:14"}],"id":510,"name":"UnaryOperation","src":"9542:31:14"}],"id":511,"name":"ExpressionStatement","src":"9542:31:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":93,"type":"bool","value":"submittedWhitelistRemoval"},"id":512,"name":"Identifier","src":"9621:25:14"},{"attributes":{"argumentTypes":null,"hexvalue":"66616c7365","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"false"},"id":513,"name":"Literal","src":"9649:5:14"}],"id":514,"name":"Assignment","src":"9621:33:14"}],"id":515,"name":"ExpressionStatement","src":"9621:33:14"}],"id":516,"name":"Block","src":"8326:1335:14"}],"id":517,"name":"FunctionDefinition","src":"8254:1407:14"},{"attributes":{"constant":false,"documentation":"@dev Cancel pending removal of whitelisted addresses.","implemented":true,"isConstructor":false,"name":"cancelWhitelistRemoval","payable":false,"scope":569,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_hash","scope":552,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":518,"name":"ElementaryTypeName","src":"9761:7:14"}],"id":519,"name":"VariableDeclaration","src":"9761:13:14"}],"id":520,"name":"ParameterList","src":"9760:15:14"},{"attributes":{"parameters":[null]},"children":[],"id":523,"name":"ParameterList","src":"9807:0:14"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":30,"type":"modifier ()","value":"onlyOwnerOrController"},"id":521,"name":"Identifier","src":"9785:21:14"}],"id":522,"name":"ModifierInvocation","src":"9785:21:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4c5b47fe42139f334a4445a4818d2d5f0d9462c6963c0708ec37562736362c82","typeString":"literal_string \"whitelist removal has not been submitted\""}],"overloadedDeclarations":[6502,6503],"referencedDeclaration":6503,"type":"function (bool,string memory) pure","value":"require"},"id":524,"name":"Identifier","src":"9867:7:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":93,"type":"bool","value":"submittedWhitelistRemoval"},"id":525,"name":"Identifier","src":"9875:25:14"},{"attributes":{"argumentTypes":null,"hexvalue":"77686974656c6973742072656d6f76616c20686173206e6f74206265656e207375626d6974746564","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"whitelist removal has not been submitted\"","value":"whitelist removal has not been submitted"},"id":526,"name":"Literal","src":"9902:42:14"}],"id":527,"name":"FunctionCall","src":"9867:78:14"}],"id":528,"name":"ExpressionStatement","src":"9867:78:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e4777d178dbaf8d1e241fd516a250d4d87dd91a80cb6ec2719d1bdbbf892c66f","typeString":"literal_string \"hash of the pending whitelist removal do not match\""}],"overloadedDeclarations":[6502,6503],"referencedDeclaration":6503,"type":"function (bool,string memory) pure","value":"require"},"id":529,"name":"Identifier","src":"10049:7:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":519,"type":"bytes32","value":"_hash"},"id":530,"name":"Identifier","src":"10057:5:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}],"overloadedDeclarations":[null],"referencedDeclaration":568,"type":"function (address[] memory) pure returns (bytes32)","value":"calculateHash"},"id":531,"name":"Identifier","src":"10066:13:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":89,"type":"address[] storage ref","value":"_pendingWhitelistRemoval"},"id":532,"name":"Identifier","src":"10080:24:14"}],"id":533,"name":"FunctionCall","src":"10066:39:14"}],"id":534,"name":"BinaryOperation","src":"10057:48:14"},{"attributes":{"argumentTypes":null,"hexvalue":"68617368206f66207468652070656e64696e672077686974656c6973742072656d6f76616c20646f206e6f74206d61746368","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"hash of the pending whitelist removal do not match\"","value":"hash of the pending whitelist removal do not match"},"id":535,"name":"Literal","src":"10107:52:14"}],"id":536,"name":"FunctionCall","src":"10049:111:14"}],"id":537,"name":"ExpressionStatement","src":"10049:111:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"delete","prefix":true,"type":"tuple()"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":89,"type":"address[] storage ref","value":"_pendingWhitelistRemoval"},"id":538,"name":"Identifier","src":"10213:24:14"}],"id":539,"name":"UnaryOperation","src":"10206:31:14"}],"id":540,"name":"ExpressionStatement","src":"10206:31:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":93,"type":"bool","value":"submittedWhitelistRemoval"},"id":541,"name":"Identifier","src":"10283:25:14"},{"attributes":{"argumentTypes":null,"hexvalue":"66616c7365","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"false"},"id":542,"name":"Literal","src":"10311:5:14"}],"id":543,"name":"Assignment","src":"10283:33:14"}],"id":544,"name":"ExpressionStatement","src":"10283:33:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[null],"referencedDeclaration":76,"type":"function (address,bytes32)","value":"CancelledWhitelistRemoval"},"id":545,"name":"Identifier","src":"10371:25:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6499,"type":"msg","value":"msg"},"id":546,"name":"Identifier","src":"10397:3:14"}],"id":547,"name":"MemberAccess","src":"10397:10:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":519,"type":"bytes32","value":"_hash"},"id":548,"name":"Identifier","src":"10409:5:14"}],"id":549,"name":"FunctionCall","src":"10371:44:14"}],"id":550,"name":"EmitStatement","src":"10366:49:14"}],"id":551,"name":"Block","src":"9807:615:14"}],"id":552,"name":"FunctionDefinition","src":"9729:693:14"},{"attributes":{"constant":true,"documentation":"@dev Method used to hash our whitelist address arrays.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"calculateHash","payable":false,"scope":569,"stateMutability":"pure","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"_addresses","scope":568,"stateVariable":false,"storageLocation":"default","type":"address[]","value":null,"visibility":"internal"},"children":[{"attributes":{"length":null,"type":"address[]"},"children":[{"attributes":{"name":"address","type":"address"},"id":553,"name":"ElementaryTypeName","src":"10514:7:14"}],"id":554,"name":"ArrayTypeName","src":"10514:9:14"}],"id":555,"name":"VariableDeclaration","src":"10514:20:14"}],"id":556,"name":"ParameterList","src":"10513:22:14"},{"children":[{"attributes":{"constant":false,"name":"","scope":568,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":557,"name":"ElementaryTypeName","src":"10557:7:14"}],"id":558,"name":"VariableDeclaration","src":"10557:7:14"}],"id":559,"name":"ParameterList","src":"10556:9:14"},{"children":[{"attributes":{"functionReturnParameters":559},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"overloadedDeclarations":[null],"referencedDeclaration":6493,"type":"function () pure returns (bytes32)","value":"keccak256"},"id":560,"name":"Identifier","src":"10583:9:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bytes memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"member_name":"encodePacked","referencedDeclaration":null,"type":"function () pure returns (bytes memory)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6486,"type":"abi","value":"abi"},"id":561,"name":"Identifier","src":"10593:3:14"}],"id":562,"name":"MemberAccess","src":"10593:16:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":555,"type":"address[] memory","value":"_addresses"},"id":563,"name":"Identifier","src":"10610:10:14"}],"id":564,"name":"FunctionCall","src":"10593:28:14"}],"id":565,"name":"FunctionCall","src":"10583:39:14"}],"id":566,"name":"Return","src":"10576:46:14"}],"id":567,"name":"Block","src":"10566:63:14"}],"id":568,"name":"FunctionDefinition","src":"10491:138:14"}],"id":569,"name":"ContractDefinition","src":"1712:8919:14"},{"attributes":{"baseContracts":[null],"contractDependencies":[null],"contractKind":"contract","documentation":"@title DailyLimitTrait This trait allows for daily limits to be included in other contracts.\n This contract will allow for a DailyLimit object to be instantiated and used.","fullyImplemented":true,"linearizedBaseContracts":[783],"name":"DailyLimitTrait","scope":2043},"children":[{"children":[{"attributes":{"contractScope":null,"name":"SafeMath","referencedDeclaration":2219,"type":"library SafeMath"},"id":570,"name":"UserDefinedTypeName","src":"10850:8:14"},{"attributes":{"name":"uint256","type":"uint256"},"id":571,"name":"ElementaryTypeName","src":"10863:7:14"}],"id":572,"name":"UsingForDirective","src":"10844:27:14"},{"attributes":{"canonicalName":"DailyLimitTrait.DailyLimit","name":"DailyLimit","scope":783,"visibility":"public"},"children":[{"attributes":{"constant":false,"name":"value","scope":583,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":573,"name":"ElementaryTypeName","src":"10905:4:14"}],"id":574,"name":"VariableDeclaration","src":"10905:10:14"},{"attributes":{"constant":false,"name":"available","scope":583,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":575,"name":"ElementaryTypeName","src":"10925:4:14"}],"id":576,"name":"VariableDeclaration","src":"10925:14:14"},{"attributes":{"constant":false,"name":"limitDay","scope":583,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":577,"name":"ElementaryTypeName","src":"10949:4:14"}],"id":578,"name":"VariableDeclaration","src":"10949:13:14"},{"attributes":{"constant":false,"name":"pending","scope":583,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":579,"name":"ElementaryTypeName","src":"10972:4:14"}],"id":580,"name":"VariableDeclaration","src":"10972:12:14"},{"attributes":{"constant":false,"name":"set","scope":583,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":581,"name":"ElementaryTypeName","src":"10994:4:14"}],"id":582,"name":"VariableDeclaration","src":"10994:8:14"}],"id":583,"name":"StructDefinition","src":"10877:132:14"},{"attributes":{"constant":true,"documentation":"@dev Returns the available daily balance - accounts for daily limit reset.\n @return amount of available to spend within the current day in base units.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_getAvailableLimit","payable":false,"scope":783,"stateMutability":"view","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"dl","scope":606,"stateVariable":false,"storageLocation":"storage","type":"struct DailyLimitTrait.DailyLimit","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"DailyLimit","referencedDeclaration":583,"type":"struct DailyLimitTrait.DailyLimit"},"id":584,"name":"UserDefinedTypeName","src":"11209:10:14"}],"id":585,"name":"VariableDeclaration","src":"11209:21:14"}],"id":586,"name":"ParameterList","src":"11208:23:14"},{"children":[{"attributes":{"constant":false,"name":"","scope":606,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":587,"name":"ElementaryTypeName","src":"11255:4:14"}],"id":588,"name":"VariableDeclaration","src":"11255:4:14"}],"id":589,"name":"ParameterList","src":"11254:6:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6501,"type":"uint256","value":"now"},"id":590,"name":"Identifier","src":"11275:3:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"limitDay","referencedDeclaration":578,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":585,"type":"struct DailyLimitTrait.DailyLimit storage pointer","value":"dl"},"id":591,"name":"Identifier","src":"11281:2:14"}],"id":592,"name":"MemberAccess","src":"11281:11:14"},{"attributes":{"argumentTypes":null,"hexvalue":"3234","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":"hours","token":"number","type":"int_const 86400","value":"24"},"id":593,"name":"Literal","src":"11295:8:14"}],"id":594,"name":"BinaryOperation","src":"11281:22:14"}],"id":595,"name":"BinaryOperation","src":"11275:28:14"},{"children":[{"attributes":{"functionReturnParameters":589},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"value","referencedDeclaration":574,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":585,"type":"struct DailyLimitTrait.DailyLimit storage pointer","value":"dl"},"id":596,"name":"Identifier","src":"11326:2:14"}],"id":597,"name":"MemberAccess","src":"11326:8:14"}],"id":598,"name":"Return","src":"11319:15:14"}],"id":599,"name":"Block","src":"11305:40:14"},{"children":[{"attributes":{"functionReturnParameters":589},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"available","referencedDeclaration":576,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":585,"type":"struct DailyLimitTrait.DailyLimit storage pointer","value":"dl"},"id":600,"name":"Identifier","src":"11372:2:14"}],"id":601,"name":"MemberAccess","src":"11372:12:14"}],"id":602,"name":"Return","src":"11365:19:14"}],"id":603,"name":"Block","src":"11351:44:14"}],"id":604,"name":"IfStatement","src":"11271:124:14"}],"id":605,"name":"Block","src":"11261:140:14"}],"id":606,"name":"FunctionDefinition","src":"11181:220:14"},{"attributes":{"constant":false,"documentation":"@dev Use up amount within the daily limit. Will fail if amount is larger than daily limit.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_enforceLimit","payable":false,"scope":783,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"dl","scope":636,"stateVariable":false,"storageLocation":"storage","type":"struct DailyLimitTrait.DailyLimit","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"DailyLimit","referencedDeclaration":583,"type":"struct DailyLimitTrait.DailyLimit"},"id":607,"name":"UserDefinedTypeName","src":"11529:10:14"}],"id":608,"name":"VariableDeclaration","src":"11529:21:14"},{"attributes":{"constant":false,"name":"_amount","scope":636,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":609,"name":"ElementaryTypeName","src":"11552:4:14"}],"id":610,"name":"VariableDeclaration","src":"11552:12:14"}],"id":611,"name":"ParameterList","src":"11528:37:14"},{"attributes":{"parameters":[null]},"children":[],"id":612,"name":"ParameterList","src":"11575:0:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_DailyLimit_$583_storage_ptr","typeString":"struct DailyLimitTrait.DailyLimit storage pointer"}],"overloadedDeclarations":[null],"referencedDeclaration":750,"type":"function (struct DailyLimitTrait.DailyLimit storage pointer)","value":"_updateAvailableLimit"},"id":613,"name":"Identifier","src":"11637:21:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":608,"type":"struct DailyLimitTrait.DailyLimit storage pointer","value":"dl"},"id":614,"name":"Identifier","src":"11659:2:14"}],"id":615,"name":"FunctionCall","src":"11637:25:14"}],"id":616,"name":"ExpressionStatement","src":"11637:25:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6afc64e3f445e54c8d6696102285673f424a89c0366935246360d47569e05a8e","typeString":"literal_string \"available has to be greater or equal to use amount\""}],"overloadedDeclarations":[6502,6503],"referencedDeclaration":6503,"type":"function (bool,string memory) pure","value":"require"},"id":617,"name":"Identifier","src":"11672:7:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"available","referencedDeclaration":576,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":608,"type":"struct DailyLimitTrait.DailyLimit storage pointer","value":"dl"},"id":618,"name":"Identifier","src":"11680:2:14"}],"id":619,"name":"MemberAccess","src":"11680:12:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":610,"type":"uint256","value":"_amount"},"id":620,"name":"Identifier","src":"11696:7:14"}],"id":621,"name":"BinaryOperation","src":"11680:23:14"},{"attributes":{"argumentTypes":null,"hexvalue":"617661696c61626c652068617320746f2062652067726561746572206f7220657175616c20746f2075736520616d6f756e74","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"available has to be greater or equal to use amount\"","value":"available has to be greater or equal to use amount"},"id":622,"name":"Literal","src":"11705:52:14"}],"id":623,"name":"FunctionCall","src":"11672:86:14"}],"id":624,"name":"ExpressionStatement","src":"11672:86:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"available","referencedDeclaration":576,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":608,"type":"struct DailyLimitTrait.DailyLimit storage pointer","value":"dl"},"id":625,"name":"Identifier","src":"11768:2:14"}],"id":627,"name":"MemberAccess","src":"11768:12:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sub","referencedDeclaration":2174,"type":"function (uint256,uint256) pure returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"available","referencedDeclaration":576,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":608,"type":"struct DailyLimitTrait.DailyLimit storage pointer","value":"dl"},"id":628,"name":"Identifier","src":"11783:2:14"}],"id":629,"name":"MemberAccess","src":"11783:12:14"}],"id":630,"name":"MemberAccess","src":"11783:16:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":610,"type":"uint256","value":"_amount"},"id":631,"name":"Identifier","src":"11800:7:14"}],"id":632,"name":"FunctionCall","src":"11783:25:14"}],"id":633,"name":"Assignment","src":"11768:40:14"}],"id":634,"name":"ExpressionStatement","src":"11768:40:14"}],"id":635,"name":"Block","src":"11575:240:14"}],"id":636,"name":"FunctionDefinition","src":"11506:309:14"},{"attributes":{"constant":false,"documentation":"@dev Set the daily limit.\n @param _amount is the daily limit amount in base units.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_setLimit","payable":false,"scope":783,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"dl","scope":662,"stateVariable":false,"storageLocation":"storage","type":"struct DailyLimitTrait.DailyLimit","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"DailyLimit","referencedDeclaration":583,"type":"struct DailyLimitTrait.DailyLimit"},"id":637,"name":"UserDefinedTypeName","src":"11938:10:14"}],"id":638,"name":"VariableDeclaration","src":"11938:21:14"},{"attributes":{"constant":false,"name":"_amount","scope":662,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":639,"name":"ElementaryTypeName","src":"11961:4:14"}],"id":640,"name":"VariableDeclaration","src":"11961:12:14"}],"id":641,"name":"ParameterList","src":"11937:37:14"},{"attributes":{"parameters":[null]},"children":[],"id":642,"name":"ParameterList","src":"11984:0:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7b9cc803b487706c400cdf25a76923240be61a4f6c1c2991fce5dc783065ec8c","typeString":"literal_string \"daily limit has already been set\""}],"overloadedDeclarations":[6502,6503],"referencedDeclaration":6503,"type":"function (bool,string memory) pure","value":"require"},"id":643,"name":"Identifier","src":"12056:7:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"set","referencedDeclaration":582,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":638,"type":"struct DailyLimitTrait.DailyLimit storage pointer","value":"dl"},"id":644,"name":"Identifier","src":"12065:2:14"}],"id":645,"name":"MemberAccess","src":"12065:6:14"}],"id":646,"name":"UnaryOperation","src":"12064:7:14"},{"attributes":{"argumentTypes":null,"hexvalue":"6461696c79206c696d69742068617320616c7265616479206265656e20736574","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"daily limit has already been set\"","value":"daily limit has already been set"},"id":647,"name":"Literal","src":"12073:34:14"}],"id":648,"name":"FunctionCall","src":"12056:52:14"}],"id":649,"name":"ExpressionStatement","src":"12056:52:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_DailyLimit_$583_storage_ptr","typeString":"struct DailyLimitTrait.DailyLimit storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":782,"type":"function (struct DailyLimitTrait.DailyLimit storage pointer,uint256)","value":"_modifyLimit"},"id":650,"name":"Identifier","src":"12177:12:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":638,"type":"struct DailyLimitTrait.DailyLimit storage pointer","value":"dl"},"id":651,"name":"Identifier","src":"12190:2:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":640,"type":"uint256","value":"_amount"},"id":652,"name":"Identifier","src":"12194:7:14"}],"id":653,"name":"FunctionCall","src":"12177:25:14"}],"id":654,"name":"ExpressionStatement","src":"12177:25:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"set","referencedDeclaration":582,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":638,"type":"struct DailyLimitTrait.DailyLimit storage pointer","value":"dl"},"id":655,"name":"Identifier","src":"12250:2:14"}],"id":657,"name":"MemberAccess","src":"12250:6:14"},{"attributes":{"argumentTypes":null,"hexvalue":"74727565","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"true"},"id":658,"name":"Literal","src":"12259:4:14"}],"id":659,"name":"Assignment","src":"12250:13:14"}],"id":660,"name":"ExpressionStatement","src":"12250:13:14"}],"id":661,"name":"Block","src":"11984:286:14"}],"id":662,"name":"FunctionDefinition","src":"11919:351:14"},{"attributes":{"constant":false,"documentation":"@dev Submit a daily limit update, needs to be confirmed.\n @param _amount is the daily limit amount in base units.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_submitLimitUpdate","payable":false,"scope":783,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"dl","scope":682,"stateVariable":false,"storageLocation":"storage","type":"struct DailyLimitTrait.DailyLimit","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"DailyLimit","referencedDeclaration":583,"type":"struct DailyLimitTrait.DailyLimit"},"id":663,"name":"UserDefinedTypeName","src":"12433:10:14"}],"id":664,"name":"VariableDeclaration","src":"12433:21:14"},{"attributes":{"constant":false,"name":"_amount","scope":682,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":665,"name":"ElementaryTypeName","src":"12456:4:14"}],"id":666,"name":"VariableDeclaration","src":"12456:12:14"}],"id":667,"name":"ParameterList","src":"12432:37:14"},{"attributes":{"parameters":[null]},"children":[],"id":668,"name":"ParameterList","src":"12479:0:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_adfdc9009421f12fb1afe5e6ea639ab2b34e97bdbcbc499b16cbf316ccf5133b","typeString":"literal_string \"limit has not been set\""}],"overloadedDeclarations":[6502,6503],"referencedDeclaration":6503,"type":"function (bool,string memory) pure","value":"require"},"id":669,"name":"Identifier","src":"12543:7:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"set","referencedDeclaration":582,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":664,"type":"struct DailyLimitTrait.DailyLimit storage pointer","value":"dl"},"id":670,"name":"Identifier","src":"12551:2:14"}],"id":671,"name":"MemberAccess","src":"12551:6:14"},{"attributes":{"argumentTypes":null,"hexvalue":"6c696d697420686173206e6f74206265656e20736574","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"limit has not been set\"","value":"limit has not been set"},"id":672,"name":"Literal","src":"12559:24:14"}],"id":673,"name":"FunctionCall","src":"12543:41:14"}],"id":674,"name":"ExpressionStatement","src":"12543:41:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"pending","referencedDeclaration":580,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":664,"type":"struct DailyLimitTrait.DailyLimit storage pointer","value":"dl"},"id":675,"name":"Identifier","src":"12656:2:14"}],"id":677,"name":"MemberAccess","src":"12656:10:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":666,"type":"uint256","value":"_amount"},"id":678,"name":"Identifier","src":"12669:7:14"}],"id":679,"name":"Assignment","src":"12656:20:14"}],"id":680,"name":"ExpressionStatement","src":"12656:20:14"}],"id":681,"name":"Block","src":"12479:204:14"}],"id":682,"name":"FunctionDefinition","src":"12405:278:14"},{"attributes":{"constant":false,"documentation":"@dev Confirm pending set daily limit operation.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_confirmLimitUpdate","payable":false,"scope":783,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"dl","scope":704,"stateVariable":false,"storageLocation":"storage","type":"struct DailyLimitTrait.DailyLimit","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"DailyLimit","referencedDeclaration":583,"type":"struct DailyLimitTrait.DailyLimit"},"id":683,"name":"UserDefinedTypeName","src":"12774:10:14"}],"id":684,"name":"VariableDeclaration","src":"12774:21:14"},{"attributes":{"constant":false,"name":"_amount","scope":704,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":685,"name":"ElementaryTypeName","src":"12797:4:14"}],"id":686,"name":"VariableDeclaration","src":"12797:12:14"}],"id":687,"name":"ParameterList","src":"12773:37:14"},{"attributes":{"parameters":[null]},"children":[],"id":688,"name":"ParameterList","src":"12820:0:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3cf0c2deafd04cfbb13702ba408b05430f9d9fc1fb7ca0b892afe45cc226b0e9","typeString":"literal_string \"confirmed and submitted limits dont match\""}],"overloadedDeclarations":[6502,6503],"referencedDeclaration":6503,"type":"function (bool,string memory) pure","value":"require"},"id":689,"name":"Identifier","src":"12901:7:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"pending","referencedDeclaration":580,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":684,"type":"struct DailyLimitTrait.DailyLimit storage pointer","value":"dl"},"id":690,"name":"Identifier","src":"12909:2:14"}],"id":691,"name":"MemberAccess","src":"12909:10:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":686,"type":"uint256","value":"_amount"},"id":692,"name":"Identifier","src":"12923:7:14"}],"id":693,"name":"BinaryOperation","src":"12909:21:14"},{"attributes":{"argumentTypes":null,"hexvalue":"636f6e6669726d656420616e64207375626d6974746564206c696d69747320646f6e74206d61746368","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"confirmed and submitted limits dont match\"","value":"confirmed and submitted limits dont match"},"id":694,"name":"Literal","src":"12932:43:14"}],"id":695,"name":"FunctionCall","src":"12901:75:14"}],"id":696,"name":"ExpressionStatement","src":"12901:75:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_DailyLimit_$583_storage_ptr","typeString":"struct DailyLimitTrait.DailyLimit storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":782,"type":"function (struct DailyLimitTrait.DailyLimit storage pointer,uint256)","value":"_modifyLimit"},"id":697,"name":"Identifier","src":"13044:12:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":684,"type":"struct DailyLimitTrait.DailyLimit storage pointer","value":"dl"},"id":698,"name":"Identifier","src":"13057:2:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"pending","referencedDeclaration":580,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":684,"type":"struct DailyLimitTrait.DailyLimit storage pointer","value":"dl"},"id":699,"name":"Identifier","src":"13061:2:14"}],"id":700,"name":"MemberAccess","src":"13061:10:14"}],"id":701,"name":"FunctionCall","src":"13044:28:14"}],"id":702,"name":"ExpressionStatement","src":"13044:28:14"}],"id":703,"name":"Block","src":"12820:259:14"}],"id":704,"name":"FunctionDefinition","src":"12745:334:14"},{"attributes":{"constant":false,"documentation":"@dev Update available spend limit based on the daily reset.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_updateAvailableLimit","payable":false,"scope":783,"stateMutability":"nonpayable","superFunction":null,"visibility":"private"},"children":[{"children":[{"attributes":{"constant":false,"name":"dl","scope":750,"stateVariable":false,"storageLocation":"storage","type":"struct DailyLimitTrait.DailyLimit","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"DailyLimit","referencedDeclaration":583,"type":"struct DailyLimitTrait.DailyLimit"},"id":705,"name":"UserDefinedTypeName","src":"13184:10:14"}],"id":706,"name":"VariableDeclaration","src":"13184:21:14"}],"id":707,"name":"ParameterList","src":"13183:23:14"},{"attributes":{"parameters":[null]},"children":[],"id":708,"name":"ParameterList","src":"13215:0:14"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6501,"type":"uint256","value":"now"},"id":709,"name":"Identifier","src":"13229:3:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_86400_by_1","typeString":"int_const 86400"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"add","referencedDeclaration":2198,"type":"function (uint256,uint256) pure returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"limitDay","referencedDeclaration":578,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":706,"type":"struct DailyLimitTrait.DailyLimit storage pointer","value":"dl"},"id":710,"name":"Identifier","src":"13235:2:14"}],"id":711,"name":"MemberAccess","src":"13235:11:14"}],"id":712,"name":"MemberAccess","src":"13235:15:14"},{"attributes":{"argumentTypes":null,"hexvalue":"3234","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":"hours","token":"number","type":"int_const 86400","value":"24"},"id":713,"name":"Literal","src":"13251:8:14"}],"id":714,"name":"FunctionCall","src":"13235:25:14"}],"id":715,"name":"BinaryOperation","src":"13229:31:14"},{"children":[{"attributes":{"assignments":[717]},"children":[{"attributes":{"constant":false,"name":"extraDays","scope":750,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":716,"name":"ElementaryTypeName","src":"13345:4:14"}],"id":717,"name":"VariableDeclaration","src":"13345:14:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_86400_by_1","typeString":"int_const 86400"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"div","referencedDeclaration":2150,"type":"function (uint256,uint256) pure returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sub","referencedDeclaration":2174,"type":"function (uint256,uint256) pure returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6501,"type":"uint256","value":"now"},"id":718,"name":"Identifier","src":"13362:3:14"}],"id":719,"name":"MemberAccess","src":"13362:7:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"limitDay","referencedDeclaration":578,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":706,"type":"struct DailyLimitTrait.DailyLimit storage pointer","value":"dl"},"id":720,"name":"Identifier","src":"13370:2:14"}],"id":721,"name":"MemberAccess","src":"13370:11:14"}],"id":722,"name":"FunctionCall","src":"13362:20:14"}],"id":723,"name":"MemberAccess","src":"13362:24:14"},{"attributes":{"argumentTypes":null,"hexvalue":"3234","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":"hours","token":"number","type":"int_const 86400","value":"24"},"id":724,"name":"Literal","src":"13387:8:14"}],"id":725,"name":"FunctionCall","src":"13362:34:14"}],"id":726,"name":"VariableDeclarationStatement","src":"13345:51:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"limitDay","referencedDeclaration":578,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":706,"type":"struct DailyLimitTrait.DailyLimit storage pointer","value":"dl"},"id":727,"name":"Identifier","src":"13410:2:14"}],"id":729,"name":"MemberAccess","src":"13410:11:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"add","referencedDeclaration":2198,"type":"function (uint256,uint256) pure returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"limitDay","referencedDeclaration":578,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":706,"type":"struct DailyLimitTrait.DailyLimit storage pointer","value":"dl"},"id":730,"name":"Identifier","src":"13424:2:14"}],"id":731,"name":"MemberAccess","src":"13424:11:14"}],"id":732,"name":"MemberAccess","src":"13424:15:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_86400_by_1","typeString":"int_const 86400"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"mul","referencedDeclaration":2126,"type":"function (uint256,uint256) pure returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":717,"type":"uint256","value":"extraDays"},"id":733,"name":"Identifier","src":"13440:9:14"}],"id":734,"name":"MemberAccess","src":"13440:13:14"},{"attributes":{"argumentTypes":null,"hexvalue":"3234","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":"hours","token":"number","type":"int_const 86400","value":"24"},"id":735,"name":"Literal","src":"13454:8:14"}],"id":736,"name":"FunctionCall","src":"13440:23:14"}],"id":737,"name":"FunctionCall","src":"13424:40:14"}],"id":738,"name":"Assignment","src":"13410:54:14"}],"id":739,"name":"ExpressionStatement","src":"13410:54:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"available","referencedDeclaration":576,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":706,"type":"struct DailyLimitTrait.DailyLimit storage pointer","value":"dl"},"id":740,"name":"Identifier","src":"13545:2:14"}],"id":742,"name":"MemberAccess","src":"13545:12:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"value","referencedDeclaration":574,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":706,"type":"struct DailyLimitTrait.DailyLimit storage pointer","value":"dl"},"id":743,"name":"Identifier","src":"13560:2:14"}],"id":744,"name":"MemberAccess","src":"13560:8:14"}],"id":745,"name":"Assignment","src":"13545:23:14"}],"id":746,"name":"ExpressionStatement","src":"13545:23:14"}],"id":747,"name":"Block","src":"13262:317:14"}],"id":748,"name":"IfStatement","src":"13225:354:14"}],"id":749,"name":"Block","src":"13215:370:14"}],"id":750,"name":"FunctionDefinition","src":"13153:432:14"},{"attributes":{"constant":false,"documentation":"@dev Modify the spend limit and spend available based on the provided value.\n @dev _amount is the daily limit amount in wei.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_modifyLimit","payable":false,"scope":783,"stateMutability":"nonpayable","superFunction":null,"visibility":"private"},"children":[{"children":[{"attributes":{"constant":false,"name":"dl","scope":782,"stateVariable":false,"storageLocation":"storage","type":"struct DailyLimitTrait.DailyLimit","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"DailyLimit","referencedDeclaration":583,"type":"struct DailyLimitTrait.DailyLimit"},"id":751,"name":"UserDefinedTypeName","src":"13753:10:14"}],"id":752,"name":"VariableDeclaration","src":"13753:21:14"},{"attributes":{"constant":false,"name":"_amount","scope":782,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":753,"name":"ElementaryTypeName","src":"13776:4:14"}],"id":754,"name":"VariableDeclaration","src":"13776:12:14"}],"id":755,"name":"ParameterList","src":"13752:37:14"},{"attributes":{"parameters":[null]},"children":[],"id":756,"name":"ParameterList","src":"13798:0:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_DailyLimit_$583_storage_ptr","typeString":"struct DailyLimitTrait.DailyLimit storage pointer"}],"overloadedDeclarations":[null],"referencedDeclaration":750,"type":"function (struct DailyLimitTrait.DailyLimit storage pointer)","value":"_updateAvailableLimit"},"id":757,"name":"Identifier","src":"13860:21:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":752,"type":"struct DailyLimitTrait.DailyLimit storage pointer","value":"dl"},"id":758,"name":"Identifier","src":"13882:2:14"}],"id":759,"name":"FunctionCall","src":"13860:25:14"}],"id":760,"name":"ExpressionStatement","src":"13860:25:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"value","referencedDeclaration":574,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":752,"type":"struct DailyLimitTrait.DailyLimit storage pointer","value":"dl"},"id":761,"name":"Identifier","src":"13950:2:14"}],"id":763,"name":"MemberAccess","src":"13950:8:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":754,"type":"uint256","value":"_amount"},"id":764,"name":"Identifier","src":"13961:7:14"}],"id":765,"name":"Assignment","src":"13950:18:14"}],"id":766,"name":"ExpressionStatement","src":"13950:18:14"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"available","referencedDeclaration":576,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":752,"type":"struct DailyLimitTrait.DailyLimit storage pointer","value":"dl"},"id":767,"name":"Identifier","src":"14060:2:14"}],"id":768,"name":"MemberAccess","src":"14060:12:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"value","referencedDeclaration":574,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":752,"type":"struct DailyLimitTrait.DailyLimit storage pointer","value":"dl"},"id":769,"name":"Identifier","src":"14075:2:14"}],"id":770,"name":"MemberAccess","src":"14075:8:14"}],"id":771,"name":"BinaryOperation","src":"14060:23:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"member_name":"available","referencedDeclaration":576,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":752,"type":"struct DailyLimitTrait.DailyLimit storage pointer","value":"dl"},"id":772,"name":"Identifier","src":"14099:2:14"}],"id":774,"name":"MemberAccess","src":"14099:12:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"value","referencedDeclaration":574,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":752,"type":"struct DailyLimitTrait.DailyLimit storage pointer","value":"dl"},"id":775,"name":"Identifier","src":"14114:2:14"}],"id":776,"name":"MemberAccess","src":"14114:8:14"}],"id":777,"name":"Assignment","src":"14099:23:14"}],"id":778,"name":"ExpressionStatement","src":"14099:23:14"}],"id":779,"name":"Block","src":"14085:48:14"}],"id":780,"name":"IfStatement","src":"14056:77:14"}],"id":781,"name":"Block","src":"13798:341:14"}],"id":782,"name":"FunctionDefinition","src":"13731:408:14"}],"id":783,"name":"ContractDefinition","src":"10813:3328:14"},{"attributes":{"contractDependencies":[31,783,2275,2326,2483],"contractKind":"contract","documentation":"@title it provides daily spend limit functionality.","fullyImplemented":false,"linearizedBaseContracts":[908,783,31,2483,2275,2326],"name":"SpendLimit","scope":2043},"children":[{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"ControllableOwnable","referencedDeclaration":31,"type":"contract ControllableOwnable"},"id":784,"name":"UserDefinedTypeName","src":"14224:19:14"}],"id":785,"name":"InheritanceSpecifier","src":"14224:19:14"},{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"DailyLimitTrait","referencedDeclaration":783,"type":"contract DailyLimitTrait"},"id":786,"name":"UserDefinedTypeName","src":"14245:15:14"}],"id":787,"name":"InheritanceSpecifier","src":"14245:15:14"},{"attributes":{"anonymous":false,"documentation":null,"name":"SetSpendLimit"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_sender","scope":793,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":788,"name":"ElementaryTypeName","src":"14287:7:14"}],"id":789,"name":"VariableDeclaration","src":"14287:15:14"},{"attributes":{"constant":false,"indexed":false,"name":"_amount","scope":793,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":790,"name":"ElementaryTypeName","src":"14304:4:14"}],"id":791,"name":"VariableDeclaration","src":"14304:12:14"}],"id":792,"name":"ParameterList","src":"14286:31:14"}],"id":793,"name":"EventDefinition","src":"14267:51:14"},{"attributes":{"anonymous":false,"documentation":null,"name":"SubmittedSpendLimitUpdate"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_amount","scope":797,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":794,"name":"ElementaryTypeName","src":"14355:4:14"}],"id":795,"name":"VariableDeclaration","src":"14355:12:14"}],"id":796,"name":"ParameterList","src":"14354:14:14"}],"id":797,"name":"EventDefinition","src":"14323:46:14"},{"attributes":{"constant":false,"name":"_spendLimit","scope":908,"stateVariable":true,"storageLocation":"default","type":"struct DailyLimitTrait.DailyLimit","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"DailyLimit","referencedDeclaration":583,"type":"struct DailyLimitTrait.DailyLimit"},"id":798,"name":"UserDefinedTypeName","src":"14375:10:14"}],"id":799,"name":"VariableDeclaration","src":"14375:31:14"},{"attributes":{"constant":false,"documentation":"@dev Constructor initializes the daily spend limit in wei.","implemented":true,"isConstructor":true,"modifiers":[null],"name":"","payable":false,"scope":908,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_limit_","scope":815,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":800,"name":"ElementaryTypeName","src":"14492:4:14"}],"id":801,"name":"VariableDeclaration","src":"14492:12:14"}],"id":802,"name":"ParameterList","src":"14491:14:14"},{"attributes":{"parameters":[null]},"children":[],"id":803,"name":"ParameterList","src":"14515:0:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"struct DailyLimitTrait.DailyLimit storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":799,"type":"struct DailyLimitTrait.DailyLimit storage ref","value":"_spendLimit"},"id":804,"name":"Identifier","src":"14525:11:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":true,"lValueRequested":false,"names":[null],"type":"struct DailyLimitTrait.DailyLimit memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bool","typeString":"bool"}],"overloadedDeclarations":[null],"referencedDeclaration":583,"type":"type(struct DailyLimitTrait.DailyLimit storage pointer)","value":"DailyLimit"},"id":805,"name":"Identifier","src":"14539:10:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":801,"type":"uint256","value":"_limit_"},"id":806,"name":"Identifier","src":"14550:7:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":801,"type":"uint256","value":"_limit_"},"id":807,"name":"Identifier","src":"14559:7:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6501,"type":"uint256","value":"now"},"id":808,"name":"Identifier","src":"14568:3:14"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":809,"name":"Literal","src":"14573:1:14"},{"attributes":{"argumentTypes":null,"hexvalue":"66616c7365","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"false"},"id":810,"name":"Literal","src":"14576:5:14"}],"id":811,"name":"FunctionCall","src":"14539:43:14"}],"id":812,"name":"Assignment","src":"14525:57:14"}],"id":813,"name":"ExpressionStatement","src":"14525:57:14"}],"id":814,"name":"Block","src":"14515:74:14"}],"id":815,"name":"FunctionDefinition","src":"14480:109:14"},{"attributes":{"constant":false,"documentation":"@dev Sets the initial daily spend (aka transfer) limit for non-whitelisted addresses.\n @param _amount is the daily limit amount in wei.","implemented":true,"isConstructor":false,"name":"setSpendLimit","payable":false,"scope":908,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_amount","scope":834,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":816,"name":"ElementaryTypeName","src":"14769:4:14"}],"id":817,"name":"VariableDeclaration","src":"14769:12:14"}],"id":818,"name":"ParameterList","src":"14768:14:14"},{"attributes":{"parameters":[null]},"children":[],"id":821,"name":"ParameterList","src":"14802:0:14"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2385,"type":"modifier ()","value":"onlyOwner"},"id":819,"name":"Identifier","src":"14792:9:14"}],"id":820,"name":"ModifierInvocation","src":"14792:9:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_DailyLimit_$583_storage","typeString":"struct DailyLimitTrait.DailyLimit storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":662,"type":"function (struct DailyLimitTrait.DailyLimit storage pointer,uint256)","value":"_setLimit"},"id":822,"name":"Identifier","src":"14812:9:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":799,"type":"struct DailyLimitTrait.DailyLimit storage ref","value":"_spendLimit"},"id":823,"name":"Identifier","src":"14822:11:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":817,"type":"uint256","value":"_amount"},"id":824,"name":"Identifier","src":"14835:7:14"}],"id":825,"name":"FunctionCall","src":"14812:31:14"}],"id":826,"name":"ExpressionStatement","src":"14812:31:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":793,"type":"function (address,uint256)","value":"SetSpendLimit"},"id":827,"name":"Identifier","src":"14858:13:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6499,"type":"msg","value":"msg"},"id":828,"name":"Identifier","src":"14872:3:14"}],"id":829,"name":"MemberAccess","src":"14872:10:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":817,"type":"uint256","value":"_amount"},"id":830,"name":"Identifier","src":"14884:7:14"}],"id":831,"name":"FunctionCall","src":"14858:34:14"}],"id":832,"name":"EmitStatement","src":"14853:39:14"}],"id":833,"name":"Block","src":"14802:97:14"}],"id":834,"name":"FunctionDefinition","src":"14746:153:14"},{"attributes":{"constant":false,"documentation":"@dev Submit a daily transfer limit update for non-whitelisted addresses.\n @param _amount is the daily limit amount in wei.","implemented":true,"isConstructor":false,"name":"submitSpendLimitUpdate","payable":false,"scope":908,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_amount","scope":851,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":835,"name":"ElementaryTypeName","src":"15075:4:14"}],"id":836,"name":"VariableDeclaration","src":"15075:12:14"}],"id":837,"name":"ParameterList","src":"15074:14:14"},{"attributes":{"parameters":[null]},"children":[],"id":840,"name":"ParameterList","src":"15108:0:14"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2385,"type":"modifier ()","value":"onlyOwner"},"id":838,"name":"Identifier","src":"15098:9:14"}],"id":839,"name":"ModifierInvocation","src":"15098:9:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_DailyLimit_$583_storage","typeString":"struct DailyLimitTrait.DailyLimit storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":682,"type":"function (struct DailyLimitTrait.DailyLimit storage pointer,uint256)","value":"_submitLimitUpdate"},"id":841,"name":"Identifier","src":"15118:18:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":799,"type":"struct DailyLimitTrait.DailyLimit storage ref","value":"_spendLimit"},"id":842,"name":"Identifier","src":"15137:11:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":836,"type":"uint256","value":"_amount"},"id":843,"name":"Identifier","src":"15150:7:14"}],"id":844,"name":"FunctionCall","src":"15118:40:14"}],"id":845,"name":"ExpressionStatement","src":"15118:40:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":797,"type":"function (uint256)","value":"SubmittedSpendLimitUpdate"},"id":846,"name":"Identifier","src":"15173:25:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":836,"type":"uint256","value":"_amount"},"id":847,"name":"Identifier","src":"15199:7:14"}],"id":848,"name":"FunctionCall","src":"15173:34:14"}],"id":849,"name":"EmitStatement","src":"15168:39:14"}],"id":850,"name":"Block","src":"15108:106:14"}],"id":851,"name":"FunctionDefinition","src":"15043:171:14"},{"attributes":{"constant":false,"documentation":"@dev Confirm pending set daily limit operation.","implemented":true,"isConstructor":false,"name":"confirmSpendLimitUpdate","payable":false,"scope":908,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_amount","scope":870,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":852,"name":"ElementaryTypeName","src":"15309:4:14"}],"id":853,"name":"VariableDeclaration","src":"15309:12:14"}],"id":854,"name":"ParameterList","src":"15308:14:14"},{"attributes":{"parameters":[null]},"children":[],"id":857,"name":"ParameterList","src":"15347:0:14"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2249,"type":"modifier ()","value":"onlyController"},"id":855,"name":"Identifier","src":"15332:14:14"}],"id":856,"name":"ModifierInvocation","src":"15332:14:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_DailyLimit_$583_storage","typeString":"struct DailyLimitTrait.DailyLimit storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":704,"type":"function (struct DailyLimitTrait.DailyLimit storage pointer,uint256)","value":"_confirmLimitUpdate"},"id":858,"name":"Identifier","src":"15357:19:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":799,"type":"struct DailyLimitTrait.DailyLimit storage ref","value":"_spendLimit"},"id":859,"name":"Identifier","src":"15377:11:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":853,"type":"uint256","value":"_amount"},"id":860,"name":"Identifier","src":"15390:7:14"}],"id":861,"name":"FunctionCall","src":"15357:41:14"}],"id":862,"name":"ExpressionStatement","src":"15357:41:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":793,"type":"function (address,uint256)","value":"SetSpendLimit"},"id":863,"name":"Identifier","src":"15413:13:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6499,"type":"msg","value":"msg"},"id":864,"name":"Identifier","src":"15427:3:14"}],"id":865,"name":"MemberAccess","src":"15427:10:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":853,"type":"uint256","value":"_amount"},"id":866,"name":"Identifier","src":"15439:7:14"}],"id":867,"name":"FunctionCall","src":"15413:34:14"}],"id":868,"name":"EmitStatement","src":"15408:39:14"}],"id":869,"name":"Block","src":"15347:107:14"}],"id":870,"name":"FunctionDefinition","src":"15276:178:14"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"spendLimitAvailable","payable":false,"scope":908,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":871,"name":"ParameterList","src":"15488:2:14"},{"children":[{"attributes":{"constant":false,"name":"","scope":880,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":872,"name":"ElementaryTypeName","src":"15514:4:14"}],"id":873,"name":"VariableDeclaration","src":"15514:4:14"}],"id":874,"name":"ParameterList","src":"15513:6:14"},{"children":[{"attributes":{"functionReturnParameters":874},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_DailyLimit_$583_storage","typeString":"struct DailyLimitTrait.DailyLimit storage ref"}],"overloadedDeclarations":[null],"referencedDeclaration":606,"type":"function (struct DailyLimitTrait.DailyLimit storage pointer) view returns (uint256)","value":"_getAvailableLimit"},"id":875,"name":"Identifier","src":"15537:18:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":799,"type":"struct DailyLimitTrait.DailyLimit storage ref","value":"_spendLimit"},"id":876,"name":"Identifier","src":"15556:11:14"}],"id":877,"name":"FunctionCall","src":"15537:31:14"}],"id":878,"name":"Return","src":"15530:38:14"}],"id":879,"name":"Block","src":"15520:55:14"}],"id":880,"name":"FunctionDefinition","src":"15460:115:14"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"spendLimitValue","payable":false,"scope":908,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":881,"name":"ParameterList","src":"15605:2:14"},{"children":[{"attributes":{"constant":false,"name":"","scope":889,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":882,"name":"ElementaryTypeName","src":"15631:4:14"}],"id":883,"name":"VariableDeclaration","src":"15631:4:14"}],"id":884,"name":"ParameterList","src":"15630:6:14"},{"children":[{"attributes":{"functionReturnParameters":884},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"value","referencedDeclaration":574,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":799,"type":"struct DailyLimitTrait.DailyLimit storage ref","value":"_spendLimit"},"id":885,"name":"Identifier","src":"15654:11:14"}],"id":886,"name":"MemberAccess","src":"15654:17:14"}],"id":887,"name":"Return","src":"15647:24:14"}],"id":888,"name":"Block","src":"15637:41:14"}],"id":889,"name":"FunctionDefinition","src":"15581:97:14"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"spendLimitSet","payable":false,"scope":908,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":890,"name":"ParameterList","src":"15706:2:14"},{"children":[{"attributes":{"constant":false,"name":"","scope":898,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":891,"name":"ElementaryTypeName","src":"15732:4:14"}],"id":892,"name":"VariableDeclaration","src":"15732:4:14"}],"id":893,"name":"ParameterList","src":"15731:6:14"},{"children":[{"attributes":{"functionReturnParameters":893},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"set","referencedDeclaration":582,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":799,"type":"struct DailyLimitTrait.DailyLimit storage ref","value":"_spendLimit"},"id":894,"name":"Identifier","src":"15755:11:14"}],"id":895,"name":"MemberAccess","src":"15755:15:14"}],"id":896,"name":"Return","src":"15748:22:14"}],"id":897,"name":"Block","src":"15738:39:14"}],"id":898,"name":"FunctionDefinition","src":"15684:93:14"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"spendLimitPending","payable":false,"scope":908,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":899,"name":"ParameterList","src":"15809:2:14"},{"children":[{"attributes":{"constant":false,"name":"","scope":907,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":900,"name":"ElementaryTypeName","src":"15835:4:14"}],"id":901,"name":"VariableDeclaration","src":"15835:4:14"}],"id":902,"name":"ParameterList","src":"15834:6:14"},{"children":[{"attributes":{"functionReturnParameters":902},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"pending","referencedDeclaration":580,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":799,"type":"struct DailyLimitTrait.DailyLimit storage ref","value":"_spendLimit"},"id":903,"name":"Identifier","src":"15858:11:14"}],"id":904,"name":"MemberAccess","src":"15858:19:14"}],"id":905,"name":"Return","src":"15851:26:14"}],"id":906,"name":"Block","src":"15841:43:14"}],"id":907,"name":"FunctionDefinition","src":"15783:101:14"}],"id":908,"name":"ContractDefinition","src":"14201:1685:14"},{"attributes":{"contractDependencies":[31,783,2275,2326,2483],"contractKind":"contract","documentation":"/ @title GasTopUpLimit provides daily limit functionality.","fullyImplemented":false,"linearizedBaseContracts":[1059,783,31,2483,2275,2326],"name":"GasTopUpLimit","scope":2043},"children":[{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"ControllableOwnable","referencedDeclaration":31,"type":"contract ControllableOwnable"},"id":909,"name":"UserDefinedTypeName","src":"15977:19:14"}],"id":910,"name":"InheritanceSpecifier","src":"15977:19:14"},{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"DailyLimitTrait","referencedDeclaration":783,"type":"contract DailyLimitTrait"},"id":911,"name":"UserDefinedTypeName","src":"15998:15:14"}],"id":912,"name":"InheritanceSpecifier","src":"15998:15:14"},{"attributes":{"anonymous":false,"documentation":null,"name":"SetGasTopUpLimit"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_sender","scope":918,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":913,"name":"ElementaryTypeName","src":"16044:7:14"}],"id":914,"name":"VariableDeclaration","src":"16044:15:14"},{"attributes":{"constant":false,"indexed":false,"name":"_amount","scope":918,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":915,"name":"ElementaryTypeName","src":"16061:4:14"}],"id":916,"name":"VariableDeclaration","src":"16061:12:14"}],"id":917,"name":"ParameterList","src":"16043:31:14"}],"id":918,"name":"EventDefinition","src":"16021:54:14"},{"attributes":{"anonymous":false,"documentation":null,"name":"SubmittedGasTopUpLimitUpdate"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_amount","scope":922,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":919,"name":"ElementaryTypeName","src":"16115:4:14"}],"id":920,"name":"VariableDeclaration","src":"16115:12:14"}],"id":921,"name":"ParameterList","src":"16114:14:14"}],"id":922,"name":"EventDefinition","src":"16080:49:14"},{"attributes":{"constant":true,"name":"_MINIMUM_GAS_TOPUP_LIMIT","scope":1059,"stateVariable":true,"storageLocation":"default","type":"uint256","visibility":"private"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":923,"name":"ElementaryTypeName","src":"16135:4:14"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":"finney","token":"number","type":"int_const 1000000000000000","value":"1"},"id":924,"name":"Literal","src":"16184:8:14"}],"id":925,"name":"VariableDeclaration","src":"16135:57:14"},{"attributes":{"constant":true,"name":"_MAXIMUM_GAS_TOPUP_LIMIT","scope":1059,"stateVariable":true,"storageLocation":"default","type":"uint256","visibility":"private"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":926,"name":"ElementaryTypeName","src":"16198:4:14"},{"attributes":{"argumentTypes":null,"hexvalue":"353030","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":"finney","token":"number","type":"int_const 500000000000000000","value":"500"},"id":927,"name":"Literal","src":"16247:10:14"}],"id":928,"name":"VariableDeclaration","src":"16198:59:14"},{"attributes":{"constant":false,"name":"_gasTopUpLimit","scope":1059,"stateVariable":true,"storageLocation":"default","type":"struct DailyLimitTrait.DailyLimit","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"DailyLimit","referencedDeclaration":583,"type":"struct DailyLimitTrait.DailyLimit"},"id":929,"name":"UserDefinedTypeName","src":"16264:10:14"}],"id":930,"name":"VariableDeclaration","src":"16264:34:14"},{"attributes":{"constant":false,"documentation":"@dev Constructor initializes the daily gas topup limit in wei.","implemented":true,"isConstructor":true,"modifiers":[null],"name":"","payable":false,"scope":1059,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":931,"name":"ParameterList","src":"16387:2:14"},{"attributes":{"parameters":[null]},"children":[],"id":932,"name":"ParameterList","src":"16399:0:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"struct DailyLimitTrait.DailyLimit storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":930,"type":"struct DailyLimitTrait.DailyLimit storage ref","value":"_gasTopUpLimit"},"id":933,"name":"Identifier","src":"16409:14:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":true,"lValueRequested":false,"names":[null],"type":"struct DailyLimitTrait.DailyLimit memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bool","typeString":"bool"}],"overloadedDeclarations":[null],"referencedDeclaration":583,"type":"type(struct DailyLimitTrait.DailyLimit storage pointer)","value":"DailyLimit"},"id":934,"name":"Identifier","src":"16426:10:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":928,"type":"uint256","value":"_MAXIMUM_GAS_TOPUP_LIMIT"},"id":935,"name":"Identifier","src":"16437:24:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":928,"type":"uint256","value":"_MAXIMUM_GAS_TOPUP_LIMIT"},"id":936,"name":"Identifier","src":"16463:24:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6501,"type":"uint256","value":"now"},"id":937,"name":"Identifier","src":"16489:3:14"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":938,"name":"Literal","src":"16494:1:14"},{"attributes":{"argumentTypes":null,"hexvalue":"66616c7365","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"false"},"id":939,"name":"Literal","src":"16497:5:14"}],"id":940,"name":"FunctionCall","src":"16426:77:14"}],"id":941,"name":"Assignment","src":"16409:94:14"}],"id":942,"name":"ExpressionStatement","src":"16409:94:14"}],"id":943,"name":"Block","src":"16399:111:14"}],"id":944,"name":"FunctionDefinition","src":"16376:134:14"},{"attributes":{"constant":false,"documentation":"@dev Sets the daily gas top up limit.\n @param _amount is the gas top up amount in wei.","implemented":true,"isConstructor":false,"name":"setGasTopUpLimit","payable":false,"scope":1059,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_amount","scope":974,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":945,"name":"ElementaryTypeName","src":"16644:4:14"}],"id":946,"name":"VariableDeclaration","src":"16644:12:14"}],"id":947,"name":"ParameterList","src":"16643:14:14"},{"attributes":{"parameters":[null]},"children":[],"id":950,"name":"ParameterList","src":"16677:0:14"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2385,"type":"modifier ()","value":"onlyOwner"},"id":948,"name":"Identifier","src":"16667:9:14"}],"id":949,"name":"ModifierInvocation","src":"16667:9:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_34d0200bc4fa3fa67c967e086c707f1381c23113445a05906aa011e6150b4c1e","typeString":"literal_string \"gas top up amount is outside the min/max range\""}],"overloadedDeclarations":[6502,6503],"referencedDeclaration":6503,"type":"function (bool,string memory) pure","value":"require"},"id":951,"name":"Identifier","src":"16687:7:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&&","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":925,"type":"uint256","value":"_MINIMUM_GAS_TOPUP_LIMIT"},"id":952,"name":"Identifier","src":"16695:24:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":946,"type":"uint256","value":"_amount"},"id":953,"name":"Identifier","src":"16723:7:14"}],"id":954,"name":"BinaryOperation","src":"16695:35:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":946,"type":"uint256","value":"_amount"},"id":955,"name":"Identifier","src":"16734:7:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":928,"type":"uint256","value":"_MAXIMUM_GAS_TOPUP_LIMIT"},"id":956,"name":"Identifier","src":"16745:24:14"}],"id":957,"name":"BinaryOperation","src":"16734:35:14"}],"id":958,"name":"BinaryOperation","src":"16695:74:14"},{"attributes":{"argumentTypes":null,"hexvalue":"67617320746f7020757020616d6f756e74206973206f75747369646520746865206d696e2f6d61782072616e6765","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"gas top up amount is outside the min/max range\"","value":"gas top up amount is outside the min/max range"},"id":959,"name":"Literal","src":"16771:48:14"}],"id":960,"name":"FunctionCall","src":"16687:133:14"}],"id":961,"name":"ExpressionStatement","src":"16687:133:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_DailyLimit_$583_storage","typeString":"struct DailyLimitTrait.DailyLimit storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":662,"type":"function (struct DailyLimitTrait.DailyLimit storage pointer,uint256)","value":"_setLimit"},"id":962,"name":"Identifier","src":"16830:9:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":930,"type":"struct DailyLimitTrait.DailyLimit storage ref","value":"_gasTopUpLimit"},"id":963,"name":"Identifier","src":"16840:14:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":946,"type":"uint256","value":"_amount"},"id":964,"name":"Identifier","src":"16856:7:14"}],"id":965,"name":"FunctionCall","src":"16830:34:14"}],"id":966,"name":"ExpressionStatement","src":"16830:34:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":918,"type":"function (address,uint256)","value":"SetGasTopUpLimit"},"id":967,"name":"Identifier","src":"16879:16:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6499,"type":"msg","value":"msg"},"id":968,"name":"Identifier","src":"16896:3:14"}],"id":969,"name":"MemberAccess","src":"16896:10:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":946,"type":"uint256","value":"_amount"},"id":970,"name":"Identifier","src":"16908:7:14"}],"id":971,"name":"FunctionCall","src":"16879:37:14"}],"id":972,"name":"EmitStatement","src":"16874:42:14"}],"id":973,"name":"Block","src":"16677:246:14"}],"id":974,"name":"FunctionDefinition","src":"16618:305:14"},{"attributes":{"constant":false,"documentation":"@dev Submit a daily gas top up limit update.\n @param _amount is the daily top up gas limit amount in wei.","implemented":true,"isConstructor":false,"name":"submitGasTopUpLimitUpdate","payable":false,"scope":1059,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_amount","scope":1002,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":975,"name":"ElementaryTypeName","src":"17085:4:14"}],"id":976,"name":"VariableDeclaration","src":"17085:12:14"}],"id":977,"name":"ParameterList","src":"17084:14:14"},{"attributes":{"parameters":[null]},"children":[],"id":980,"name":"ParameterList","src":"17118:0:14"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2385,"type":"modifier ()","value":"onlyOwner"},"id":978,"name":"Identifier","src":"17108:9:14"}],"id":979,"name":"ModifierInvocation","src":"17108:9:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_34d0200bc4fa3fa67c967e086c707f1381c23113445a05906aa011e6150b4c1e","typeString":"literal_string \"gas top up amount is outside the min/max range\""}],"overloadedDeclarations":[6502,6503],"referencedDeclaration":6503,"type":"function (bool,string memory) pure","value":"require"},"id":981,"name":"Identifier","src":"17128:7:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&&","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":925,"type":"uint256","value":"_MINIMUM_GAS_TOPUP_LIMIT"},"id":982,"name":"Identifier","src":"17136:24:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":976,"type":"uint256","value":"_amount"},"id":983,"name":"Identifier","src":"17164:7:14"}],"id":984,"name":"BinaryOperation","src":"17136:35:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":976,"type":"uint256","value":"_amount"},"id":985,"name":"Identifier","src":"17175:7:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":928,"type":"uint256","value":"_MAXIMUM_GAS_TOPUP_LIMIT"},"id":986,"name":"Identifier","src":"17186:24:14"}],"id":987,"name":"BinaryOperation","src":"17175:35:14"}],"id":988,"name":"BinaryOperation","src":"17136:74:14"},{"attributes":{"argumentTypes":null,"hexvalue":"67617320746f7020757020616d6f756e74206973206f75747369646520746865206d696e2f6d61782072616e6765","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"gas top up amount is outside the min/max range\"","value":"gas top up amount is outside the min/max range"},"id":989,"name":"Literal","src":"17212:48:14"}],"id":990,"name":"FunctionCall","src":"17128:133:14"}],"id":991,"name":"ExpressionStatement","src":"17128:133:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_DailyLimit_$583_storage","typeString":"struct DailyLimitTrait.DailyLimit storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":682,"type":"function (struct DailyLimitTrait.DailyLimit storage pointer,uint256)","value":"_submitLimitUpdate"},"id":992,"name":"Identifier","src":"17271:18:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":930,"type":"struct DailyLimitTrait.DailyLimit storage ref","value":"_gasTopUpLimit"},"id":993,"name":"Identifier","src":"17290:14:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":976,"type":"uint256","value":"_amount"},"id":994,"name":"Identifier","src":"17306:7:14"}],"id":995,"name":"FunctionCall","src":"17271:43:14"}],"id":996,"name":"ExpressionStatement","src":"17271:43:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":922,"type":"function (uint256)","value":"SubmittedGasTopUpLimitUpdate"},"id":997,"name":"Identifier","src":"17329:28:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":976,"type":"uint256","value":"_amount"},"id":998,"name":"Identifier","src":"17358:7:14"}],"id":999,"name":"FunctionCall","src":"17329:37:14"}],"id":1000,"name":"EmitStatement","src":"17324:42:14"}],"id":1001,"name":"Block","src":"17118:255:14"}],"id":1002,"name":"FunctionDefinition","src":"17050:323:14"},{"attributes":{"constant":false,"documentation":"@dev Confirm pending set top up gas limit operation.","implemented":true,"isConstructor":false,"name":"confirmGasTopUpLimitUpdate","payable":false,"scope":1059,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_amount","scope":1021,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1003,"name":"ElementaryTypeName","src":"17476:4:14"}],"id":1004,"name":"VariableDeclaration","src":"17476:12:14"}],"id":1005,"name":"ParameterList","src":"17475:14:14"},{"attributes":{"parameters":[null]},"children":[],"id":1008,"name":"ParameterList","src":"17514:0:14"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2249,"type":"modifier ()","value":"onlyController"},"id":1006,"name":"Identifier","src":"17499:14:14"}],"id":1007,"name":"ModifierInvocation","src":"17499:14:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_DailyLimit_$583_storage","typeString":"struct DailyLimitTrait.DailyLimit storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":704,"type":"function (struct DailyLimitTrait.DailyLimit storage pointer,uint256)","value":"_confirmLimitUpdate"},"id":1009,"name":"Identifier","src":"17524:19:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":930,"type":"struct DailyLimitTrait.DailyLimit storage ref","value":"_gasTopUpLimit"},"id":1010,"name":"Identifier","src":"17544:14:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1004,"type":"uint256","value":"_amount"},"id":1011,"name":"Identifier","src":"17560:7:14"}],"id":1012,"name":"FunctionCall","src":"17524:44:14"}],"id":1013,"name":"ExpressionStatement","src":"17524:44:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":918,"type":"function (address,uint256)","value":"SetGasTopUpLimit"},"id":1014,"name":"Identifier","src":"17583:16:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6499,"type":"msg","value":"msg"},"id":1015,"name":"Identifier","src":"17600:3:14"}],"id":1016,"name":"MemberAccess","src":"17600:10:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1004,"type":"uint256","value":"_amount"},"id":1017,"name":"Identifier","src":"17612:7:14"}],"id":1018,"name":"FunctionCall","src":"17583:37:14"}],"id":1019,"name":"EmitStatement","src":"17578:42:14"}],"id":1020,"name":"Block","src":"17514:113:14"}],"id":1021,"name":"FunctionDefinition","src":"17440:187:14"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"gasTopUpLimitAvailable","payable":false,"scope":1059,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":1022,"name":"ParameterList","src":"17664:2:14"},{"children":[{"attributes":{"constant":false,"name":"","scope":1031,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1023,"name":"ElementaryTypeName","src":"17690:4:14"}],"id":1024,"name":"VariableDeclaration","src":"17690:4:14"}],"id":1025,"name":"ParameterList","src":"17689:6:14"},{"children":[{"attributes":{"functionReturnParameters":1025},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_DailyLimit_$583_storage","typeString":"struct DailyLimitTrait.DailyLimit storage ref"}],"overloadedDeclarations":[null],"referencedDeclaration":606,"type":"function (struct DailyLimitTrait.DailyLimit storage pointer) view returns (uint256)","value":"_getAvailableLimit"},"id":1026,"name":"Identifier","src":"17713:18:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":930,"type":"struct DailyLimitTrait.DailyLimit storage ref","value":"_gasTopUpLimit"},"id":1027,"name":"Identifier","src":"17732:14:14"}],"id":1028,"name":"FunctionCall","src":"17713:34:14"}],"id":1029,"name":"Return","src":"17706:41:14"}],"id":1030,"name":"Block","src":"17696:58:14"}],"id":1031,"name":"FunctionDefinition","src":"17633:121:14"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"gasTopUpLimitValue","payable":false,"scope":1059,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":1032,"name":"ParameterList","src":"17787:2:14"},{"children":[{"attributes":{"constant":false,"name":"","scope":1040,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1033,"name":"ElementaryTypeName","src":"17813:4:14"}],"id":1034,"name":"VariableDeclaration","src":"17813:4:14"}],"id":1035,"name":"ParameterList","src":"17812:6:14"},{"children":[{"attributes":{"functionReturnParameters":1035},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"value","referencedDeclaration":574,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":930,"type":"struct DailyLimitTrait.DailyLimit storage ref","value":"_gasTopUpLimit"},"id":1036,"name":"Identifier","src":"17836:14:14"}],"id":1037,"name":"MemberAccess","src":"17836:20:14"}],"id":1038,"name":"Return","src":"17829:27:14"}],"id":1039,"name":"Block","src":"17819:44:14"}],"id":1040,"name":"FunctionDefinition","src":"17760:103:14"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"gasTopUpLimitSet","payable":false,"scope":1059,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":1041,"name":"ParameterList","src":"17894:2:14"},{"children":[{"attributes":{"constant":false,"name":"","scope":1049,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":1042,"name":"ElementaryTypeName","src":"17920:4:14"}],"id":1043,"name":"VariableDeclaration","src":"17920:4:14"}],"id":1044,"name":"ParameterList","src":"17919:6:14"},{"children":[{"attributes":{"functionReturnParameters":1044},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"set","referencedDeclaration":582,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":930,"type":"struct DailyLimitTrait.DailyLimit storage ref","value":"_gasTopUpLimit"},"id":1045,"name":"Identifier","src":"17943:14:14"}],"id":1046,"name":"MemberAccess","src":"17943:18:14"}],"id":1047,"name":"Return","src":"17936:25:14"}],"id":1048,"name":"Block","src":"17926:42:14"}],"id":1049,"name":"FunctionDefinition","src":"17869:99:14"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"gasTopUpLimitPending","payable":false,"scope":1059,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":1050,"name":"ParameterList","src":"18003:2:14"},{"children":[{"attributes":{"constant":false,"name":"","scope":1058,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1051,"name":"ElementaryTypeName","src":"18029:4:14"}],"id":1052,"name":"VariableDeclaration","src":"18029:4:14"}],"id":1053,"name":"ParameterList","src":"18028:6:14"},{"children":[{"attributes":{"functionReturnParameters":1053},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"pending","referencedDeclaration":580,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":930,"type":"struct DailyLimitTrait.DailyLimit storage ref","value":"_gasTopUpLimit"},"id":1054,"name":"Identifier","src":"18052:14:14"}],"id":1055,"name":"MemberAccess","src":"18052:22:14"}],"id":1056,"name":"Return","src":"18045:29:14"}],"id":1057,"name":"Block","src":"18035:46:14"}],"id":1058,"name":"FunctionDefinition","src":"17974:107:14"}],"id":1059,"name":"ContractDefinition","src":"15951:2132:14"},{"attributes":{"contractDependencies":[31,783,2275,2326,2483],"contractKind":"contract","documentation":"@title LoadLimit provides daily load limit functionality.","fullyImplemented":false,"linearizedBaseContracts":[1215,783,31,2483,2275,2326],"name":"LoadLimit","scope":2043},"children":[{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"ControllableOwnable","referencedDeclaration":31,"type":"contract ControllableOwnable"},"id":1060,"name":"UserDefinedTypeName","src":"18170:19:14"}],"id":1061,"name":"InheritanceSpecifier","src":"18170:19:14"},{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"DailyLimitTrait","referencedDeclaration":783,"type":"contract DailyLimitTrait"},"id":1062,"name":"UserDefinedTypeName","src":"18191:15:14"}],"id":1063,"name":"InheritanceSpecifier","src":"18191:15:14"},{"attributes":{"anonymous":false,"documentation":null,"name":"SetLoadLimit"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_sender","scope":1069,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":1064,"name":"ElementaryTypeName","src":"18233:7:14"}],"id":1065,"name":"VariableDeclaration","src":"18233:15:14"},{"attributes":{"constant":false,"indexed":false,"name":"_amount","scope":1069,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1066,"name":"ElementaryTypeName","src":"18250:4:14"}],"id":1067,"name":"VariableDeclaration","src":"18250:12:14"}],"id":1068,"name":"ParameterList","src":"18232:31:14"}],"id":1069,"name":"EventDefinition","src":"18214:50:14"},{"attributes":{"anonymous":false,"documentation":null,"name":"SubmittedLoadLimitUpdate"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_amount","scope":1073,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1070,"name":"ElementaryTypeName","src":"18300:4:14"}],"id":1071,"name":"VariableDeclaration","src":"18300:12:14"}],"id":1072,"name":"ParameterList","src":"18299:14:14"}],"id":1073,"name":"EventDefinition","src":"18269:45:14"},{"attributes":{"constant":true,"name":"_MINIMUM_LOAD_LIMIT","scope":1215,"stateVariable":true,"storageLocation":"default","type":"uint256","visibility":"private"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1074,"name":"ElementaryTypeName","src":"18320:4:14"},{"attributes":{"argumentTypes":null,"hexvalue":"31","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":"finney","token":"number","type":"int_const 1000000000000000","value":"1"},"id":1075,"name":"Literal","src":"18364:8:14"}],"id":1076,"name":"VariableDeclaration","src":"18320:52:14"},{"attributes":{"constant":false,"name":"_maximumLoadLimit","scope":1215,"stateVariable":true,"storageLocation":"default","type":"uint256","value":null,"visibility":"private"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1077,"name":"ElementaryTypeName","src":"18378:4:14"}],"id":1078,"name":"VariableDeclaration","src":"18378:30:14"},{"attributes":{"constant":false,"name":"_loadLimit","scope":1215,"stateVariable":true,"storageLocation":"default","type":"struct DailyLimitTrait.DailyLimit","value":null,"visibility":"internal"},"children":[{"attributes":{"contractScope":null,"name":"DailyLimit","referencedDeclaration":583,"type":"struct DailyLimitTrait.DailyLimit"},"id":1079,"name":"UserDefinedTypeName","src":"18415:10:14"}],"id":1080,"name":"VariableDeclaration","src":"18415:30:14"},{"attributes":{"constant":false,"documentation":"@dev Sets a daily card load limit.\n @param _amount is the card load amount in current stablecoin base units.","implemented":true,"isConstructor":false,"name":"setLoadLimit","payable":false,"scope":1215,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_amount","scope":1110,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1081,"name":"ElementaryTypeName","src":"18598:4:14"}],"id":1082,"name":"VariableDeclaration","src":"18598:12:14"}],"id":1083,"name":"ParameterList","src":"18597:14:14"},{"attributes":{"parameters":[null]},"children":[],"id":1086,"name":"ParameterList","src":"18631:0:14"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2385,"type":"modifier ()","value":"onlyOwner"},"id":1084,"name":"Identifier","src":"18621:9:14"}],"id":1085,"name":"ModifierInvocation","src":"18621:9:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f67ee6099a5833ca9f1340ad1c91d4d960993626773c5756b93010e3ef9a670e","typeString":"literal_string \"card load amount is outside the min/max range\""}],"overloadedDeclarations":[6502,6503],"referencedDeclaration":6503,"type":"function (bool,string memory) pure","value":"require"},"id":1087,"name":"Identifier","src":"18641:7:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&&","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1076,"type":"uint256","value":"_MINIMUM_LOAD_LIMIT"},"id":1088,"name":"Identifier","src":"18649:19:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1082,"type":"uint256","value":"_amount"},"id":1089,"name":"Identifier","src":"18672:7:14"}],"id":1090,"name":"BinaryOperation","src":"18649:30:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1082,"type":"uint256","value":"_amount"},"id":1091,"name":"Identifier","src":"18683:7:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1078,"type":"uint256","value":"_maximumLoadLimit"},"id":1092,"name":"Identifier","src":"18694:17:14"}],"id":1093,"name":"BinaryOperation","src":"18683:28:14"}],"id":1094,"name":"BinaryOperation","src":"18649:62:14"},{"attributes":{"argumentTypes":null,"hexvalue":"63617264206c6f616420616d6f756e74206973206f75747369646520746865206d696e2f6d61782072616e6765","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"card load amount is outside the min/max range\"","value":"card load amount is outside the min/max range"},"id":1095,"name":"Literal","src":"18713:47:14"}],"id":1096,"name":"FunctionCall","src":"18641:120:14"}],"id":1097,"name":"ExpressionStatement","src":"18641:120:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_DailyLimit_$583_storage","typeString":"struct DailyLimitTrait.DailyLimit storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":662,"type":"function (struct DailyLimitTrait.DailyLimit storage pointer,uint256)","value":"_setLimit"},"id":1098,"name":"Identifier","src":"18771:9:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1080,"type":"struct DailyLimitTrait.DailyLimit storage ref","value":"_loadLimit"},"id":1099,"name":"Identifier","src":"18781:10:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1082,"type":"uint256","value":"_amount"},"id":1100,"name":"Identifier","src":"18793:7:14"}],"id":1101,"name":"FunctionCall","src":"18771:30:14"}],"id":1102,"name":"ExpressionStatement","src":"18771:30:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":1069,"type":"function (address,uint256)","value":"SetLoadLimit"},"id":1103,"name":"Identifier","src":"18816:12:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6499,"type":"msg","value":"msg"},"id":1104,"name":"Identifier","src":"18829:3:14"}],"id":1105,"name":"MemberAccess","src":"18829:10:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1082,"type":"uint256","value":"_amount"},"id":1106,"name":"Identifier","src":"18841:7:14"}],"id":1107,"name":"FunctionCall","src":"18816:33:14"}],"id":1108,"name":"EmitStatement","src":"18811:38:14"}],"id":1109,"name":"Block","src":"18631:225:14"}],"id":1110,"name":"FunctionDefinition","src":"18576:280:14"},{"attributes":{"constant":false,"documentation":"@dev Submit a daily load limit update.\n @param _amount is the daily load limit amount in wei.","implemented":true,"isConstructor":false,"name":"submitLoadLimitUpdate","payable":false,"scope":1215,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_amount","scope":1138,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1111,"name":"ElementaryTypeName","src":"19002:4:14"}],"id":1112,"name":"VariableDeclaration","src":"19002:12:14"}],"id":1113,"name":"ParameterList","src":"19001:14:14"},{"attributes":{"parameters":[null]},"children":[],"id":1116,"name":"ParameterList","src":"19035:0:14"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2385,"type":"modifier ()","value":"onlyOwner"},"id":1114,"name":"Identifier","src":"19025:9:14"}],"id":1115,"name":"ModifierInvocation","src":"19025:9:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f67ee6099a5833ca9f1340ad1c91d4d960993626773c5756b93010e3ef9a670e","typeString":"literal_string \"card load amount is outside the min/max range\""}],"overloadedDeclarations":[6502,6503],"referencedDeclaration":6503,"type":"function (bool,string memory) pure","value":"require"},"id":1117,"name":"Identifier","src":"19045:7:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"&&","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1076,"type":"uint256","value":"_MINIMUM_LOAD_LIMIT"},"id":1118,"name":"Identifier","src":"19053:19:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1112,"type":"uint256","value":"_amount"},"id":1119,"name":"Identifier","src":"19076:7:14"}],"id":1120,"name":"BinaryOperation","src":"19053:30:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1112,"type":"uint256","value":"_amount"},"id":1121,"name":"Identifier","src":"19087:7:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1078,"type":"uint256","value":"_maximumLoadLimit"},"id":1122,"name":"Identifier","src":"19098:17:14"}],"id":1123,"name":"BinaryOperation","src":"19087:28:14"}],"id":1124,"name":"BinaryOperation","src":"19053:62:14"},{"attributes":{"argumentTypes":null,"hexvalue":"63617264206c6f616420616d6f756e74206973206f75747369646520746865206d696e2f6d61782072616e6765","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"card load amount is outside the min/max range\"","value":"card load amount is outside the min/max range"},"id":1125,"name":"Literal","src":"19117:47:14"}],"id":1126,"name":"FunctionCall","src":"19045:120:14"}],"id":1127,"name":"ExpressionStatement","src":"19045:120:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_DailyLimit_$583_storage","typeString":"struct DailyLimitTrait.DailyLimit storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":682,"type":"function (struct DailyLimitTrait.DailyLimit storage pointer,uint256)","value":"_submitLimitUpdate"},"id":1128,"name":"Identifier","src":"19175:18:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1080,"type":"struct DailyLimitTrait.DailyLimit storage ref","value":"_loadLimit"},"id":1129,"name":"Identifier","src":"19194:10:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1112,"type":"uint256","value":"_amount"},"id":1130,"name":"Identifier","src":"19206:7:14"}],"id":1131,"name":"FunctionCall","src":"19175:39:14"}],"id":1132,"name":"ExpressionStatement","src":"19175:39:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":1073,"type":"function (uint256)","value":"SubmittedLoadLimitUpdate"},"id":1133,"name":"Identifier","src":"19229:24:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1112,"type":"uint256","value":"_amount"},"id":1134,"name":"Identifier","src":"19254:7:14"}],"id":1135,"name":"FunctionCall","src":"19229:33:14"}],"id":1136,"name":"EmitStatement","src":"19224:38:14"}],"id":1137,"name":"Block","src":"19035:234:14"}],"id":1138,"name":"FunctionDefinition","src":"18971:298:14"},{"attributes":{"constant":false,"documentation":"@dev Confirm pending set load limit operation.","implemented":true,"isConstructor":false,"name":"confirmLoadLimitUpdate","payable":false,"scope":1215,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_amount","scope":1157,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1139,"name":"ElementaryTypeName","src":"19362:4:14"}],"id":1140,"name":"VariableDeclaration","src":"19362:12:14"}],"id":1141,"name":"ParameterList","src":"19361:14:14"},{"attributes":{"parameters":[null]},"children":[],"id":1144,"name":"ParameterList","src":"19400:0:14"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2249,"type":"modifier ()","value":"onlyController"},"id":1142,"name":"Identifier","src":"19385:14:14"}],"id":1143,"name":"ModifierInvocation","src":"19385:14:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_DailyLimit_$583_storage","typeString":"struct DailyLimitTrait.DailyLimit storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":704,"type":"function (struct DailyLimitTrait.DailyLimit storage pointer,uint256)","value":"_confirmLimitUpdate"},"id":1145,"name":"Identifier","src":"19410:19:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1080,"type":"struct DailyLimitTrait.DailyLimit storage ref","value":"_loadLimit"},"id":1146,"name":"Identifier","src":"19430:10:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1140,"type":"uint256","value":"_amount"},"id":1147,"name":"Identifier","src":"19442:7:14"}],"id":1148,"name":"FunctionCall","src":"19410:40:14"}],"id":1149,"name":"ExpressionStatement","src":"19410:40:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":1069,"type":"function (address,uint256)","value":"SetLoadLimit"},"id":1150,"name":"Identifier","src":"19465:12:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6499,"type":"msg","value":"msg"},"id":1151,"name":"Identifier","src":"19478:3:14"}],"id":1152,"name":"MemberAccess","src":"19478:10:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1140,"type":"uint256","value":"_amount"},"id":1153,"name":"Identifier","src":"19490:7:14"}],"id":1154,"name":"FunctionCall","src":"19465:33:14"}],"id":1155,"name":"EmitStatement","src":"19460:38:14"}],"id":1156,"name":"Block","src":"19400:105:14"}],"id":1157,"name":"FunctionDefinition","src":"19330:175:14"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"loadLimitAvailable","payable":false,"scope":1215,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":1158,"name":"ParameterList","src":"19538:2:14"},{"children":[{"attributes":{"constant":false,"name":"","scope":1167,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1159,"name":"ElementaryTypeName","src":"19564:4:14"}],"id":1160,"name":"VariableDeclaration","src":"19564:4:14"}],"id":1161,"name":"ParameterList","src":"19563:6:14"},{"children":[{"attributes":{"functionReturnParameters":1161},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_DailyLimit_$583_storage","typeString":"struct DailyLimitTrait.DailyLimit storage ref"}],"overloadedDeclarations":[null],"referencedDeclaration":606,"type":"function (struct DailyLimitTrait.DailyLimit storage pointer) view returns (uint256)","value":"_getAvailableLimit"},"id":1162,"name":"Identifier","src":"19587:18:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1080,"type":"struct DailyLimitTrait.DailyLimit storage ref","value":"_loadLimit"},"id":1163,"name":"Identifier","src":"19606:10:14"}],"id":1164,"name":"FunctionCall","src":"19587:30:14"}],"id":1165,"name":"Return","src":"19580:37:14"}],"id":1166,"name":"Block","src":"19570:54:14"}],"id":1167,"name":"FunctionDefinition","src":"19511:113:14"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"loadLimitValue","payable":false,"scope":1215,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":1168,"name":"ParameterList","src":"19653:2:14"},{"children":[{"attributes":{"constant":false,"name":"","scope":1176,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1169,"name":"ElementaryTypeName","src":"19679:4:14"}],"id":1170,"name":"VariableDeclaration","src":"19679:4:14"}],"id":1171,"name":"ParameterList","src":"19678:6:14"},{"children":[{"attributes":{"functionReturnParameters":1171},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"value","referencedDeclaration":574,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1080,"type":"struct DailyLimitTrait.DailyLimit storage ref","value":"_loadLimit"},"id":1172,"name":"Identifier","src":"19702:10:14"}],"id":1173,"name":"MemberAccess","src":"19702:16:14"}],"id":1174,"name":"Return","src":"19695:23:14"}],"id":1175,"name":"Block","src":"19685:40:14"}],"id":1176,"name":"FunctionDefinition","src":"19630:95:14"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"loadLimitSet","payable":false,"scope":1215,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":1177,"name":"ParameterList","src":"19752:2:14"},{"children":[{"attributes":{"constant":false,"name":"","scope":1185,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":1178,"name":"ElementaryTypeName","src":"19778:4:14"}],"id":1179,"name":"VariableDeclaration","src":"19778:4:14"}],"id":1180,"name":"ParameterList","src":"19777:6:14"},{"children":[{"attributes":{"functionReturnParameters":1180},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"set","referencedDeclaration":582,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1080,"type":"struct DailyLimitTrait.DailyLimit storage ref","value":"_loadLimit"},"id":1181,"name":"Identifier","src":"19801:10:14"}],"id":1182,"name":"MemberAccess","src":"19801:14:14"}],"id":1183,"name":"Return","src":"19794:21:14"}],"id":1184,"name":"Block","src":"19784:38:14"}],"id":1185,"name":"FunctionDefinition","src":"19731:91:14"},{"attributes":{"constant":true,"documentation":null,"implemented":true,"isConstructor":false,"modifiers":[null],"name":"loadLimitPending","payable":false,"scope":1215,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":1186,"name":"ParameterList","src":"19853:2:14"},{"children":[{"attributes":{"constant":false,"name":"","scope":1194,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1187,"name":"ElementaryTypeName","src":"19879:4:14"}],"id":1188,"name":"VariableDeclaration","src":"19879:4:14"}],"id":1189,"name":"ParameterList","src":"19878:6:14"},{"children":[{"attributes":{"functionReturnParameters":1189},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"member_name":"pending","referencedDeclaration":580,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1080,"type":"struct DailyLimitTrait.DailyLimit storage ref","value":"_loadLimit"},"id":1190,"name":"Identifier","src":"19902:10:14"}],"id":1191,"name":"MemberAccess","src":"19902:18:14"}],"id":1192,"name":"Return","src":"19895:25:14"}],"id":1193,"name":"Block","src":"19885:42:14"}],"id":1194,"name":"FunctionDefinition","src":"19828:99:14"},{"attributes":{"constant":false,"documentation":"@dev initializes the daily load limit.\n @param _maxLimit is the maximum load limit amount in stablecoin base units.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_initializeLoadLimit","payable":false,"scope":1215,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_maxLimit","scope":1214,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1195,"name":"ElementaryTypeName","src":"20094:4:14"}],"id":1196,"name":"VariableDeclaration","src":"20094:14:14"}],"id":1197,"name":"ParameterList","src":"20093:16:14"},{"attributes":{"parameters":[null]},"children":[],"id":1198,"name":"ParameterList","src":"20119:0:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1078,"type":"uint256","value":"_maximumLoadLimit"},"id":1199,"name":"Identifier","src":"20129:17:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1196,"type":"uint256","value":"_maxLimit"},"id":1200,"name":"Identifier","src":"20149:9:14"}],"id":1201,"name":"Assignment","src":"20129:29:14"}],"id":1202,"name":"ExpressionStatement","src":"20129:29:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"struct DailyLimitTrait.DailyLimit storage ref"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1080,"type":"struct DailyLimitTrait.DailyLimit storage ref","value":"_loadLimit"},"id":1203,"name":"Identifier","src":"20168:10:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":true,"lValueRequested":false,"names":[null],"type":"struct DailyLimitTrait.DailyLimit memory","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bool","typeString":"bool"}],"overloadedDeclarations":[null],"referencedDeclaration":583,"type":"type(struct DailyLimitTrait.DailyLimit storage pointer)","value":"DailyLimit"},"id":1204,"name":"Identifier","src":"20181:10:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1078,"type":"uint256","value":"_maximumLoadLimit"},"id":1205,"name":"Identifier","src":"20192:17:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1078,"type":"uint256","value":"_maximumLoadLimit"},"id":1206,"name":"Identifier","src":"20211:17:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6501,"type":"uint256","value":"now"},"id":1207,"name":"Identifier","src":"20230:3:14"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1208,"name":"Literal","src":"20235:1:14"},{"attributes":{"argumentTypes":null,"hexvalue":"66616c7365","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"bool","type":"bool","value":"false"},"id":1209,"name":"Literal","src":"20238:5:14"}],"id":1210,"name":"FunctionCall","src":"20181:63:14"}],"id":1211,"name":"Assignment","src":"20168:76:14"}],"id":1212,"name":"ExpressionStatement","src":"20168:76:14"}],"id":1213,"name":"Block","src":"20119:132:14"}],"id":1214,"name":"FunctionDefinition","src":"20064:187:14"}],"id":1215,"name":"ContractDefinition","src":"18148:2105:14"},{"attributes":{"contractDependencies":[31,569,783,908,2275,2052,2326,2483,2663],"contractKind":"contract","documentation":"/ @title Asset store with extra security features.","fullyImplemented":false,"linearizedBaseContracts":[1468,2663,2052,908,783,569,31,2483,2275,2326],"name":"Vault","scope":2043},"children":[{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"AddressWhitelist","referencedDeclaration":569,"type":"contract AddressWhitelist"},"id":1216,"name":"UserDefinedTypeName","src":"20328:16:14"}],"id":1217,"name":"InheritanceSpecifier","src":"20328:16:14"},{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"SpendLimit","referencedDeclaration":908,"type":"contract SpendLimit"},"id":1218,"name":"UserDefinedTypeName","src":"20346:10:14"}],"id":1219,"name":"InheritanceSpecifier","src":"20346:10:14"},{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"ERC165","referencedDeclaration":2052,"type":"contract ERC165"},"id":1220,"name":"UserDefinedTypeName","src":"20358:6:14"}],"id":1221,"name":"InheritanceSpecifier","src":"20358:6:14"},{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"TokenWhitelistable","referencedDeclaration":2663,"type":"contract TokenWhitelistable"},"id":1222,"name":"UserDefinedTypeName","src":"20366:18:14"}],"id":1223,"name":"InheritanceSpecifier","src":"20366:18:14"},{"children":[{"attributes":{"contractScope":null,"name":"SafeMath","referencedDeclaration":2219,"type":"library SafeMath"},"id":1224,"name":"UserDefinedTypeName","src":"20398:8:14"},{"attributes":{"name":"uint256","type":"uint256"},"id":1225,"name":"ElementaryTypeName","src":"20411:7:14"}],"id":1226,"name":"UsingForDirective","src":"20392:27:14"},{"attributes":{"anonymous":false,"documentation":null,"name":"Received"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_from","scope":1232,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":1227,"name":"ElementaryTypeName","src":"20440:7:14"}],"id":1228,"name":"VariableDeclaration","src":"20440:13:14"},{"attributes":{"constant":false,"indexed":false,"name":"_amount","scope":1232,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1229,"name":"ElementaryTypeName","src":"20455:4:14"}],"id":1230,"name":"VariableDeclaration","src":"20455:12:14"}],"id":1231,"name":"ParameterList","src":"20439:29:14"}],"id":1232,"name":"EventDefinition","src":"20425:44:14"},{"attributes":{"anonymous":false,"documentation":null,"name":"Transferred"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_to","scope":1240,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":1233,"name":"ElementaryTypeName","src":"20492:7:14"}],"id":1234,"name":"VariableDeclaration","src":"20492:11:14"},{"attributes":{"constant":false,"indexed":false,"name":"_asset","scope":1240,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":1235,"name":"ElementaryTypeName","src":"20505:7:14"}],"id":1236,"name":"VariableDeclaration","src":"20505:14:14"},{"attributes":{"constant":false,"indexed":false,"name":"_amount","scope":1240,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1237,"name":"ElementaryTypeName","src":"20521:4:14"}],"id":1238,"name":"VariableDeclaration","src":"20521:12:14"}],"id":1239,"name":"ParameterList","src":"20491:43:14"}],"id":1240,"name":"EventDefinition","src":"20474:61:14"},{"attributes":{"constant":true,"name":"_ERC165_INTERFACE_ID","scope":1468,"stateVariable":true,"storageLocation":"default","type":"bytes4","visibility":"private"},"children":[{"attributes":{"name":"bytes4","type":"bytes4"},"id":1241,"name":"ElementaryTypeName","src":"20585:6:14"},{"attributes":{"argumentTypes":null,"hexvalue":"30783031666663396137","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 33540519","value":"0x01ffc9a7"},"id":1242,"name":"Literal","src":"20632:10:14"}],"id":1243,"name":"VariableDeclaration","src":"20585:57:14"},{"attributes":{"constant":false,"documentation":"@dev Constructor initializes the vault with an owner address and spend limit. It also sets up the controllable and tokenWhitelist contracts with the right name registered in ENS.\n @param _owner_ is the owner account of the wallet contract.\n @param _transferable_ indicates whether the contract ownership can be transferred.\n @param _tokenWhitelistNameHash_ is the ENS name hash of the Token whitelist.\n @param _controllerNameHash_ is the ENS name hash of the controller.\n @param _spendLimit_ is the initial spend limit.","implemented":true,"isConstructor":true,"name":"","payable":false,"scope":1468,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"_owner_","scope":1270,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":1244,"name":"ElementaryTypeName","src":"21257:7:14"}],"id":1245,"name":"VariableDeclaration","src":"21257:15:14"},{"attributes":{"constant":false,"name":"_transferable_","scope":1270,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":1246,"name":"ElementaryTypeName","src":"21274:4:14"}],"id":1247,"name":"VariableDeclaration","src":"21274:19:14"},{"attributes":{"constant":false,"name":"_tokenWhitelistNameHash_","scope":1270,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":1248,"name":"ElementaryTypeName","src":"21295:7:14"}],"id":1249,"name":"VariableDeclaration","src":"21295:32:14"},{"attributes":{"constant":false,"name":"_controllerNameHash_","scope":1270,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":1250,"name":"ElementaryTypeName","src":"21329:7:14"}],"id":1251,"name":"VariableDeclaration","src":"21329:28:14"},{"attributes":{"constant":false,"name":"_spendLimit_","scope":1270,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1252,"name":"ElementaryTypeName","src":"21359:4:14"}],"id":1253,"name":"VariableDeclaration","src":"21359:17:14"}],"id":1254,"name":"ParameterList","src":"21256:121:14"},{"attributes":{"parameters":[null]},"children":[],"id":1268,"name":"ParameterList","src":"21523:0:14"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":908,"type":"type(contract SpendLimit)","value":"SpendLimit"},"id":1255,"name":"Identifier","src":"21378:10:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1253,"type":"uint256","value":"_spendLimit_"},"id":1256,"name":"Identifier","src":"21389:12:14"}],"id":1257,"name":"ModifierInvocation","src":"21378:24:14"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2483,"type":"type(contract Ownable)","value":"Ownable"},"id":1258,"name":"Identifier","src":"21403:7:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1245,"type":"address","value":"_owner_"},"id":1259,"name":"Identifier","src":"21411:7:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1247,"type":"bool","value":"_transferable_"},"id":1260,"name":"Identifier","src":"21420:14:14"}],"id":1261,"name":"ModifierInvocation","src":"21403:32:14"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2275,"type":"type(contract Controllable)","value":"Controllable"},"id":1262,"name":"Identifier","src":"21436:12:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1251,"type":"bytes32","value":"_controllerNameHash_"},"id":1263,"name":"Identifier","src":"21449:20:14"}],"id":1264,"name":"ModifierInvocation","src":"21436:34:14"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2663,"type":"type(contract TokenWhitelistable)","value":"TokenWhitelistable"},"id":1265,"name":"Identifier","src":"21471:18:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1249,"type":"bytes32","value":"_tokenWhitelistNameHash_"},"id":1266,"name":"Identifier","src":"21490:24:14"}],"id":1267,"name":"ModifierInvocation","src":"21471:44:14"},{"attributes":{"statements":[null]},"children":[],"id":1269,"name":"Block","src":"21523:2:14"}],"id":1270,"name":"FunctionDefinition","src":"21245:280:14"},{"attributes":{"documentation":"@dev Checks if the value is not zero.","name":"isNotZero","visibility":"internal"},"children":[{"children":[{"attributes":{"constant":false,"name":"_value","scope":1283,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1271,"name":"ElementaryTypeName","src":"21596:4:14"}],"id":1272,"name":"VariableDeclaration","src":"21596:11:14"}],"id":1273,"name":"ParameterList","src":"21595:13:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_66b1681b027f2c6f57bc1e17501c71a972426e3834f20f5bbe9ed1b18622ccfc","typeString":"literal_string \"provided value cannot be zero\""}],"overloadedDeclarations":[6502,6503],"referencedDeclaration":6503,"type":"function (bool,string memory) pure","value":"require"},"id":1274,"name":"Identifier","src":"21619:7:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1272,"type":"uint256","value":"_value"},"id":1275,"name":"Identifier","src":"21627:6:14"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1276,"name":"Literal","src":"21637:1:14"}],"id":1277,"name":"BinaryOperation","src":"21627:11:14"},{"attributes":{"argumentTypes":null,"hexvalue":"70726f76696465642076616c75652063616e6e6f74206265207a65726f","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"provided value cannot be zero\"","value":"provided value cannot be zero"},"id":1278,"name":"Literal","src":"21640:31:14"}],"id":1279,"name":"FunctionCall","src":"21619:53:14"}],"id":1280,"name":"ExpressionStatement","src":"21619:53:14"},{"id":1281,"name":"PlaceholderStatement","src":"21682:1:14"}],"id":1282,"name":"Block","src":"21609:81:14"}],"id":1283,"name":"ModifierDefinition","src":"21577:113:14"},{"attributes":{"constant":false,"documentation":"@dev Ether can be deposited from any source, so this contract must be payable by anyone.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"","payable":true,"scope":1468,"stateMutability":"payable","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":1284,"name":"ParameterList","src":"21801:2:14"},{"attributes":{"parameters":[null]},"children":[],"id":1285,"name":"ParameterList","src":"21821:0:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c958d345491eddc72b6f45d8ef2ba2353c297cc6a378300b33fc48e8041e0c20","typeString":"literal_string \"msg data needs to be empty\""}],"overloadedDeclarations":[6502,6503],"referencedDeclaration":6503,"type":"function (bool,string memory) pure","value":"require"},"id":1286,"name":"Identifier","src":"21831:7:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"data","referencedDeclaration":null,"type":"bytes calldata"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6499,"type":"msg","value":"msg"},"id":1287,"name":"Identifier","src":"21839:3:14"}],"id":1288,"name":"MemberAccess","src":"21839:8:14"}],"id":1289,"name":"MemberAccess","src":"21839:15:14"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1290,"name":"Literal","src":"21858:1:14"}],"id":1291,"name":"BinaryOperation","src":"21839:20:14"},{"attributes":{"argumentTypes":null,"hexvalue":"6d73672064617461206e6565647320746f20626520656d707479","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"msg data needs to be empty\"","value":"msg data needs to be empty"},"id":1292,"name":"Literal","src":"21861:28:14"}],"id":1293,"name":"FunctionCall","src":"21831:59:14"}],"id":1294,"name":"ExpressionStatement","src":"21831:59:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":1232,"type":"function (address,uint256)","value":"Received"},"id":1295,"name":"Identifier","src":"21905:8:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6499,"type":"msg","value":"msg"},"id":1296,"name":"Identifier","src":"21914:3:14"}],"id":1297,"name":"MemberAccess","src":"21914:10:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"value","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6499,"type":"msg","value":"msg"},"id":1298,"name":"Identifier","src":"21926:3:14"}],"id":1299,"name":"MemberAccess","src":"21926:9:14"}],"id":1300,"name":"FunctionCall","src":"21905:31:14"}],"id":1301,"name":"EmitStatement","src":"21900:36:14"}],"id":1302,"name":"Block","src":"21821:122:14"}],"id":1303,"name":"FunctionDefinition","src":"21793:150:14"},{"attributes":{"constant":true,"documentation":"@dev Returns the amount of an asset owned by the contract.\n @param _asset address of an ERC20 token or 0x0 for ether.\n @return balance associated with the wallet address in wei.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"balance","payable":false,"scope":1468,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_asset","scope":1331,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":1304,"name":"ElementaryTypeName","src":"22166:7:14"}],"id":1305,"name":"VariableDeclaration","src":"22166:14:14"}],"id":1306,"name":"ParameterList","src":"22165:16:14"},{"children":[{"attributes":{"constant":false,"name":"","scope":1331,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1307,"name":"ElementaryTypeName","src":"22205:4:14"}],"id":1308,"name":"VariableDeclaration","src":"22205:4:14"}],"id":1309,"name":"ParameterList","src":"22204:6:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1305,"type":"address","value":"_asset"},"id":1310,"name":"Identifier","src":"22225:6:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":1311,"name":"ElementaryTypeNameExpression","src":"22235:7:14"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1312,"name":"Literal","src":"22243:1:14"}],"id":1313,"name":"FunctionCall","src":"22235:10:14"}],"id":1314,"name":"BinaryOperation","src":"22225:20:14"},{"children":[{"attributes":{"functionReturnParameters":1309},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_contract$_Vault_$1468","typeString":"contract Vault"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"balanceOf","referencedDeclaration":2070,"type":"function (address) view external returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract ERC20","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2091,"type":"type(contract ERC20)","value":"ERC20"},"id":1315,"name":"Identifier","src":"22268:5:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1305,"type":"address","value":"_asset"},"id":1316,"name":"Identifier","src":"22274:6:14"}],"id":1317,"name":"FunctionCall","src":"22268:13:14"}],"id":1318,"name":"MemberAccess","src":"22268:23:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6558,"type":"contract Vault","value":"this"},"id":1319,"name":"Identifier","src":"22292:4:14"}],"id":1320,"name":"FunctionCall","src":"22268:29:14"}],"id":1321,"name":"Return","src":"22261:36:14"}],"id":1322,"name":"Block","src":"22247:61:14"},{"children":[{"attributes":{"functionReturnParameters":1309},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"balance","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_contract$_Vault_$1468","typeString":"contract Vault"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":1323,"name":"ElementaryTypeNameExpression","src":"22335:7:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6558,"type":"contract Vault","value":"this"},"id":1324,"name":"Identifier","src":"22343:4:14"}],"id":1325,"name":"FunctionCall","src":"22335:13:14"}],"id":1326,"name":"MemberAccess","src":"22335:21:14"}],"id":1327,"name":"Return","src":"22328:28:14"}],"id":1328,"name":"Block","src":"22314:53:14"}],"id":1329,"name":"IfStatement","src":"22221:146:14"}],"id":1330,"name":"Block","src":"22211:162:14"}],"id":1331,"name":"FunctionDefinition","src":"22149:224:14"},{"attributes":{"constant":false,"documentation":"@dev Transfers the specified asset to the recipient's address.\n @param _to is the recipient's address.\n @param _asset is the address of an ERC20 token or 0x0 for ether.\n @param _amount is the amount of assets to be transferred in base units.","implemented":true,"isConstructor":false,"name":"transfer","payable":false,"scope":1468,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_to","scope":1415,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":1332,"name":"ElementaryTypeName","src":"22668:7:14"}],"id":1333,"name":"VariableDeclaration","src":"22668:11:14"},{"attributes":{"constant":false,"name":"_asset","scope":1415,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":1334,"name":"ElementaryTypeName","src":"22681:7:14"}],"id":1335,"name":"VariableDeclaration","src":"22681:14:14"},{"attributes":{"constant":false,"name":"_amount","scope":1415,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1336,"name":"ElementaryTypeName","src":"22697:4:14"}],"id":1337,"name":"VariableDeclaration","src":"22697:12:14"}],"id":1338,"name":"ParameterList","src":"22667:43:14"},{"attributes":{"parameters":[null]},"children":[],"id":1344,"name":"ParameterList","src":"22749:0:14"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2385,"type":"modifier ()","value":"onlyOwner"},"id":1339,"name":"Identifier","src":"22720:9:14"}],"id":1340,"name":"ModifierInvocation","src":"22720:9:14"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1283,"type":"modifier (uint256)","value":"isNotZero"},"id":1341,"name":"Identifier","src":"22730:9:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1337,"type":"uint256","value":"_amount"},"id":1342,"name":"Identifier","src":"22740:7:14"}],"id":1343,"name":"ModifierInvocation","src":"22730:18:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_eb3ca7f3931bd2e05b59b5f13adc0b54457fcc3acb612749de0971fce04e924b","typeString":"literal_string \"_to address cannot be set to 0x0\""}],"overloadedDeclarations":[6502,6503],"referencedDeclaration":6503,"type":"function (bool,string memory) pure","value":"require"},"id":1345,"name":"Identifier","src":"22820:7:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1333,"type":"address","value":"_to"},"id":1346,"name":"Identifier","src":"22828:3:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":1347,"name":"ElementaryTypeNameExpression","src":"22835:7:14"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1348,"name":"Literal","src":"22843:1:14"}],"id":1349,"name":"FunctionCall","src":"22835:10:14"}],"id":1350,"name":"BinaryOperation","src":"22828:17:14"},{"attributes":{"argumentTypes":null,"hexvalue":"5f746f20616464726573732063616e6e6f742062652073657420746f20307830","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"_to address cannot be set to 0x0\"","value":"_to address cannot be set to 0x0"},"id":1351,"name":"Literal","src":"22847:34:14"}],"id":1352,"name":"FunctionCall","src":"22820:62:14"}],"id":1353,"name":"ExpressionStatement","src":"22820:62:14"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":80,"type":"mapping(address => bool)","value":"whitelistMap"},"id":1354,"name":"Identifier","src":"22971:12:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1333,"type":"address","value":"_to"},"id":1355,"name":"Identifier","src":"22984:3:14"}],"id":1356,"name":"IndexAccess","src":"22971:17:14"}],"id":1357,"name":"UnaryOperation","src":"22970:18:14"},{"children":[{"attributes":{"assignments":[1359]},"children":[{"attributes":{"constant":false,"name":"etherValue","scope":1415,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1358,"name":"ElementaryTypeName","src":"23066:4:14"}],"id":1359,"name":"VariableDeclaration","src":"23066:15:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1337,"type":"uint256","value":"_amount"},"id":1360,"name":"Identifier","src":"23084:7:14"}],"id":1361,"name":"VariableDeclarationStatement","src":"23066:25:14"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1335,"type":"address","value":"_asset"},"id":1362,"name":"Identifier","src":"23188:6:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":1363,"name":"ElementaryTypeNameExpression","src":"23198:7:14"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1364,"name":"Literal","src":"23206:1:14"}],"id":1365,"name":"FunctionCall","src":"23198:10:14"}],"id":1366,"name":"BinaryOperation","src":"23188:20:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1359,"type":"uint256","value":"etherValue"},"id":1367,"name":"Identifier","src":"23228:10:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":1467,"type":"function (address,uint256) view returns (uint256)","value":"convertToEther"},"id":1368,"name":"Identifier","src":"23241:14:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1335,"type":"address","value":"_asset"},"id":1369,"name":"Identifier","src":"23256:6:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1337,"type":"uint256","value":"_amount"},"id":1370,"name":"Identifier","src":"23264:7:14"}],"id":1371,"name":"FunctionCall","src":"23241:31:14"}],"id":1372,"name":"Assignment","src":"23228:44:14"}],"id":1373,"name":"ExpressionStatement","src":"23228:44:14"}],"id":1374,"name":"Block","src":"23210:77:14"}],"id":1375,"name":"IfStatement","src":"23184:103:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_DailyLimit_$583_storage","typeString":"struct DailyLimitTrait.DailyLimit storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":636,"type":"function (struct DailyLimitTrait.DailyLimit storage pointer,uint256)","value":"_enforceLimit"},"id":1376,"name":"Identifier","src":"23498:13:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":799,"type":"struct DailyLimitTrait.DailyLimit storage ref","value":"_spendLimit"},"id":1377,"name":"Identifier","src":"23512:11:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1359,"type":"uint256","value":"etherValue"},"id":1378,"name":"Identifier","src":"23525:10:14"}],"id":1379,"name":"FunctionCall","src":"23498:38:14"}],"id":1380,"name":"ExpressionStatement","src":"23498:38:14"}],"id":1381,"name":"Block","src":"22990:557:14"}],"id":1382,"name":"IfStatement","src":"22966:581:14"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1335,"type":"address","value":"_asset"},"id":1383,"name":"Identifier","src":"23626:6:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":1384,"name":"ElementaryTypeNameExpression","src":"23636:7:14"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1385,"name":"Literal","src":"23644:1:14"}],"id":1386,"name":"FunctionCall","src":"23636:10:14"}],"id":1387,"name":"BinaryOperation","src":"23626:20:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_bebbba0e3133c903fb13ff92bbd373380a11a38636d3fcb2a56e9eeaa3171b67","typeString":"literal_string \"ERC20 token transfer was unsuccessful\""}],"overloadedDeclarations":[6502,6503],"referencedDeclaration":6503,"type":"function (bool,string memory) pure","value":"require"},"id":1388,"name":"Identifier","src":"23662:7:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"transfer","referencedDeclaration":2079,"type":"function (address,uint256) external returns (bool)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract ERC20","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2091,"type":"type(contract ERC20)","value":"ERC20"},"id":1389,"name":"Identifier","src":"23670:5:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1335,"type":"address","value":"_asset"},"id":1390,"name":"Identifier","src":"23676:6:14"}],"id":1391,"name":"FunctionCall","src":"23670:13:14"}],"id":1392,"name":"MemberAccess","src":"23670:22:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1333,"type":"address","value":"_to"},"id":1393,"name":"Identifier","src":"23693:3:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1337,"type":"uint256","value":"_amount"},"id":1394,"name":"Identifier","src":"23698:7:14"}],"id":1395,"name":"FunctionCall","src":"23670:36:14"},{"attributes":{"argumentTypes":null,"hexvalue":"455243323020746f6b656e207472616e736665722077617320756e7375636365737366756c","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"ERC20 token transfer was unsuccessful\"","value":"ERC20 token transfer was unsuccessful"},"id":1396,"name":"Literal","src":"23708:39:14"}],"id":1397,"name":"FunctionCall","src":"23662:86:14"}],"id":1398,"name":"ExpressionStatement","src":"23662:86:14"}],"id":1399,"name":"Block","src":"23648:111:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"transfer","referencedDeclaration":null,"type":"function (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1333,"type":"address","value":"_to"},"id":1400,"name":"Identifier","src":"23779:3:14"}],"id":1402,"name":"MemberAccess","src":"23779:12:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1337,"type":"uint256","value":"_amount"},"id":1403,"name":"Identifier","src":"23792:7:14"}],"id":1404,"name":"FunctionCall","src":"23779:21:14"}],"id":1405,"name":"ExpressionStatement","src":"23779:21:14"}],"id":1406,"name":"Block","src":"23765:46:14"}],"id":1407,"name":"IfStatement","src":"23622:189:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":1240,"type":"function (address,address,uint256)","value":"Transferred"},"id":1408,"name":"Identifier","src":"23861:11:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1333,"type":"address","value":"_to"},"id":1409,"name":"Identifier","src":"23873:3:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1335,"type":"address","value":"_asset"},"id":1410,"name":"Identifier","src":"23878:6:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1337,"type":"uint256","value":"_amount"},"id":1411,"name":"Identifier","src":"23886:7:14"}],"id":1412,"name":"FunctionCall","src":"23861:33:14"}],"id":1413,"name":"EmitStatement","src":"23856:38:14"}],"id":1414,"name":"Block","src":"22749:1152:14"}],"id":1415,"name":"FunctionDefinition","src":"22650:1251:14"},{"attributes":{"constant":true,"documentation":"@dev Checks for interface support based on ERC165.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"supportsInterface","payable":false,"scope":1468,"stateMutability":"view","superFunction":2051,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"interfaceID","scope":1427,"stateVariable":false,"storageLocation":"default","type":"bytes4","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes4","type":"bytes4"},"id":1416,"name":"ElementaryTypeName","src":"23993:6:14"}],"id":1417,"name":"VariableDeclaration","src":"23993:18:14"}],"id":1418,"name":"ParameterList","src":"23992:20:14"},{"children":[{"attributes":{"constant":false,"name":"","scope":1427,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":1419,"name":"ElementaryTypeName","src":"24036:4:14"}],"id":1420,"name":"VariableDeclaration","src":"24036:4:14"}],"id":1421,"name":"ParameterList","src":"24035:6:14"},{"children":[{"attributes":{"functionReturnParameters":1421},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1417,"type":"bytes4","value":"interfaceID"},"id":1422,"name":"Identifier","src":"24059:11:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1243,"type":"bytes4","value":"_ERC165_INTERFACE_ID"},"id":1423,"name":"Identifier","src":"24074:20:14"}],"id":1424,"name":"BinaryOperation","src":"24059:35:14"}],"id":1425,"name":"Return","src":"24052:42:14"}],"id":1426,"name":"Block","src":"24042:59:14"}],"id":1427,"name":"FunctionDefinition","src":"23966:135:14"},{"attributes":{"constant":true,"documentation":"@dev Convert ERC20 token amount to the corresponding ether amount.\n @param _token ERC20 token contract address.\n @param _amount amount of token in base units.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"convertToEther","payable":false,"scope":1468,"stateMutability":"view","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"_token","scope":1467,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":1428,"name":"ElementaryTypeName","src":"24312:7:14"}],"id":1429,"name":"VariableDeclaration","src":"24312:14:14"},{"attributes":{"constant":false,"name":"_amount","scope":1467,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1430,"name":"ElementaryTypeName","src":"24328:4:14"}],"id":1431,"name":"VariableDeclaration","src":"24328:12:14"}],"id":1432,"name":"ParameterList","src":"24311:30:14"},{"children":[{"attributes":{"constant":false,"name":"","scope":1467,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1433,"name":"ElementaryTypeName","src":"24363:4:14"}],"id":1434,"name":"VariableDeclaration","src":"24363:4:14"}],"id":1435,"name":"ParameterList","src":"24362:6:14"},{"children":[{"attributes":{"assignments":[null,1437,1439,1441,null,null,null]},"children":[{"attributes":{"constant":false,"name":"magnitude","scope":1467,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1436,"name":"ElementaryTypeName","src":"24448:7:14"}],"id":1437,"name":"VariableDeclaration","src":"24448:17:14"},{"attributes":{"constant":false,"name":"rate","scope":1467,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1438,"name":"ElementaryTypeName","src":"24467:7:14"}],"id":1439,"name":"VariableDeclaration","src":"24467:12:14"},{"attributes":{"constant":false,"name":"available","scope":1467,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":1440,"name":"ElementaryTypeName","src":"24481:4:14"}],"id":1441,"name":"VariableDeclaration","src":"24481:14:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple(string memory,uint256,uint256,bool,bool,bool,uint256)","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2538,"type":"function (address) view returns (string memory,uint256,uint256,bool,bool,bool,uint256)","value":"_getTokenInfo"},"id":1442,"name":"Identifier","src":"24505:13:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1429,"type":"address","value":"_token"},"id":1443,"name":"Identifier","src":"24519:6:14"}],"id":1444,"name":"FunctionCall","src":"24505:21:14"}],"id":1445,"name":"VariableDeclarationStatement","src":"24446:80:14"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1441,"type":"bool","value":"available"},"id":1446,"name":"Identifier","src":"24606:9:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6a7d5da61473fd3819888b787e2ae4bd3c3ceb7f1a5528bd7126863f09e86c29","typeString":"literal_string \"token rate is 0\""}],"overloadedDeclarations":[6502,6503],"referencedDeclaration":6503,"type":"function (bool,string memory) pure","value":"require"},"id":1447,"name":"Identifier","src":"24631:7:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1439,"type":"uint256","value":"rate"},"id":1448,"name":"Identifier","src":"24639:4:14"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1449,"name":"Literal","src":"24647:1:14"}],"id":1450,"name":"BinaryOperation","src":"24639:9:14"},{"attributes":{"argumentTypes":null,"hexvalue":"746f6b656e20726174652069732030","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"token rate is 0\"","value":"token rate is 0"},"id":1451,"name":"Literal","src":"24650:17:14"}],"id":1452,"name":"FunctionCall","src":"24631:37:14"}],"id":1453,"name":"ExpressionStatement","src":"24631:37:14"},{"attributes":{"functionReturnParameters":1435},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"div","referencedDeclaration":2150,"type":"function (uint256,uint256) pure returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"mul","referencedDeclaration":2126,"type":"function (uint256,uint256) pure returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1431,"type":"uint256","value":"_amount"},"id":1454,"name":"Identifier","src":"24773:7:14"}],"id":1455,"name":"MemberAccess","src":"24773:11:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1439,"type":"uint256","value":"rate"},"id":1456,"name":"Identifier","src":"24785:4:14"}],"id":1457,"name":"FunctionCall","src":"24773:17:14"}],"id":1458,"name":"MemberAccess","src":"24773:21:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1437,"type":"uint256","value":"magnitude"},"id":1459,"name":"Identifier","src":"24795:9:14"}],"id":1460,"name":"FunctionCall","src":"24773:32:14"}],"id":1461,"name":"Return","src":"24766:39:14"}],"id":1462,"name":"Block","src":"24617:199:14"}],"id":1463,"name":"IfStatement","src":"24602:214:14"},{"attributes":{"functionReturnParameters":1435},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1464,"name":"Literal","src":"24832:1:14"}],"id":1465,"name":"Return","src":"24825:8:14"}],"id":1466,"name":"Block","src":"24369:471:14"}],"id":1467,"name":"FunctionDefinition","src":"24288:552:14"}],"id":1468,"name":"ContractDefinition","src":"20310:4532:14"},{"attributes":{"contractDependencies":[31,569,783,908,1059,1215,1468,2275,2052,2326,2483,2663],"contractKind":"contract","documentation":"/ @title Asset wallet with extra security features, gas top up management and card integration.","fullyImplemented":true,"linearizedBaseContracts":[2042,1215,1059,1468,2663,2052,908,783,569,31,2483,2275,2326],"name":"Wallet","scope":2043},"children":[{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"ENSResolvable","referencedDeclaration":2326,"type":"contract ENSResolvable"},"id":1469,"name":"UserDefinedTypeName","src":"24963:13:14"}],"id":1470,"name":"InheritanceSpecifier","src":"24963:13:14"},{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"Vault","referencedDeclaration":1468,"type":"contract Vault"},"id":1471,"name":"UserDefinedTypeName","src":"24978:5:14"}],"id":1472,"name":"InheritanceSpecifier","src":"24978:5:14"},{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"GasTopUpLimit","referencedDeclaration":1059,"type":"contract GasTopUpLimit"},"id":1473,"name":"UserDefinedTypeName","src":"24985:13:14"}],"id":1474,"name":"InheritanceSpecifier","src":"24985:13:14"},{"attributes":{"arguments":null},"children":[{"attributes":{"contractScope":null,"name":"LoadLimit","referencedDeclaration":1215,"type":"contract LoadLimit"},"id":1475,"name":"UserDefinedTypeName","src":"25000:9:14"}],"id":1476,"name":"InheritanceSpecifier","src":"25000:9:14"},{"attributes":{"anonymous":false,"documentation":null,"name":"ToppedUpGas"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_sender","scope":1484,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":1477,"name":"ElementaryTypeName","src":"25035:7:14"}],"id":1478,"name":"VariableDeclaration","src":"25035:15:14"},{"attributes":{"constant":false,"indexed":false,"name":"_owner","scope":1484,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":1479,"name":"ElementaryTypeName","src":"25052:7:14"}],"id":1480,"name":"VariableDeclaration","src":"25052:14:14"},{"attributes":{"constant":false,"indexed":false,"name":"_amount","scope":1484,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1481,"name":"ElementaryTypeName","src":"25068:4:14"}],"id":1482,"name":"VariableDeclaration","src":"25068:12:14"}],"id":1483,"name":"ParameterList","src":"25034:47:14"}],"id":1484,"name":"EventDefinition","src":"25017:65:14"},{"attributes":{"anonymous":false,"documentation":null,"name":"LoadedTokenCard"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_asset","scope":1490,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":1485,"name":"ElementaryTypeName","src":"25109:7:14"}],"id":1486,"name":"VariableDeclaration","src":"25109:14:14"},{"attributes":{"constant":false,"indexed":false,"name":"_amount","scope":1490,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1487,"name":"ElementaryTypeName","src":"25125:4:14"}],"id":1488,"name":"VariableDeclaration","src":"25125:12:14"}],"id":1489,"name":"ParameterList","src":"25108:30:14"}],"id":1490,"name":"EventDefinition","src":"25087:52:14"},{"attributes":{"anonymous":false,"documentation":null,"name":"ExecutedTransaction"},"children":[{"children":[{"attributes":{"constant":false,"indexed":false,"name":"_destination","scope":1498,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":1491,"name":"ElementaryTypeName","src":"25170:7:14"}],"id":1492,"name":"VariableDeclaration","src":"25170:20:14"},{"attributes":{"constant":false,"indexed":false,"name":"_value","scope":1498,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1493,"name":"ElementaryTypeName","src":"25192:4:14"}],"id":1494,"name":"VariableDeclaration","src":"25192:11:14"},{"attributes":{"constant":false,"indexed":false,"name":"_data","scope":1498,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":1495,"name":"ElementaryTypeName","src":"25205:5:14"}],"id":1496,"name":"VariableDeclaration","src":"25205:11:14"}],"id":1497,"name":"ParameterList","src":"25169:48:14"}],"id":1498,"name":"EventDefinition","src":"25144:74:14"},{"attributes":{"constant":true,"name":"_DEFAULT_MAX_STABLECOIN_LOAD_LIMIT","scope":2042,"stateVariable":true,"storageLocation":"default","type":"uint256","visibility":"private"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1499,"name":"ElementaryTypeName","src":"25224:4:14"},{"attributes":{"argumentTypes":null,"hexvalue":"3130303030","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 10000","value":"10000"},"id":1500,"name":"Literal","src":"25283:5:14"}],"id":1501,"name":"VariableDeclaration","src":"25224:64:14"},{"attributes":{"constant":false,"name":"_licenceNode","scope":2042,"stateVariable":true,"storageLocation":"default","type":"bytes32","value":null,"visibility":"private"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":1502,"name":"ElementaryTypeName","src":"25382:7:14"}],"id":1503,"name":"VariableDeclaration","src":"25382:28:14"},{"attributes":{"constant":true,"name":"_TRANSFER","scope":2042,"stateVariable":true,"storageLocation":"default","type":"uint32","visibility":"private"},"children":[{"attributes":{"name":"uint32","type":"uint32"},"id":1504,"name":"ElementaryTypeName","src":"25490:6:14"},{"attributes":{"argumentTypes":null,"hexvalue":"30786139303539636262","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 2835717307","value":"0xa9059cbb"},"id":1505,"name":"Literal","src":"25525:10:14"}],"id":1506,"name":"VariableDeclaration","src":"25490:45:14"},{"attributes":{"constant":true,"name":"_APPROVE","scope":2042,"stateVariable":true,"storageLocation":"default","type":"uint32","visibility":"private"},"children":[{"attributes":{"name":"uint32","type":"uint32"},"id":1507,"name":"ElementaryTypeName","src":"25541:6:14"},{"attributes":{"argumentTypes":null,"hexvalue":"30783039356561376233","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 157198259","value":"0x095ea7b3"},"id":1508,"name":"Literal","src":"25576:10:14"}],"id":1509,"name":"VariableDeclaration","src":"25541:45:14"},{"attributes":{"constant":false,"documentation":"@dev Constructor initializes the wallet top up limit and the vault contract.\n @param _owner_ is the owner account of the wallet contract.\n @param _transferable_ indicates whether the contract ownership can be transferred.\n @param _ens_ is the address of the ENS registry.\n @param _tokenWhitelistNameHash_ is the ENS name hash of the Token whitelist.\n @param _controllerNameHash_ is the ENS name hash of the Controller contract.\n @param _licenceNameHash_ is the ENS name hash of the Licence contract.\n @param _spendLimit_ is the initial spend limit.","implemented":true,"isConstructor":true,"name":"","payable":false,"scope":2042,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"_owner_","scope":1559,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":1510,"name":"ElementaryTypeName","src":"26211:7:14"}],"id":1511,"name":"VariableDeclaration","src":"26211:15:14"},{"attributes":{"constant":false,"name":"_transferable_","scope":1559,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":1512,"name":"ElementaryTypeName","src":"26228:4:14"}],"id":1513,"name":"VariableDeclaration","src":"26228:19:14"},{"attributes":{"constant":false,"name":"_ens_","scope":1559,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":1514,"name":"ElementaryTypeName","src":"26249:7:14"}],"id":1515,"name":"VariableDeclaration","src":"26249:13:14"},{"attributes":{"constant":false,"name":"_tokenWhitelistNameHash_","scope":1559,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":1516,"name":"ElementaryTypeName","src":"26264:7:14"}],"id":1517,"name":"VariableDeclaration","src":"26264:32:14"},{"attributes":{"constant":false,"name":"_controllerNameHash_","scope":1559,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":1518,"name":"ElementaryTypeName","src":"26298:7:14"}],"id":1519,"name":"VariableDeclaration","src":"26298:28:14"},{"attributes":{"constant":false,"name":"_licenceNameHash_","scope":1559,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":1520,"name":"ElementaryTypeName","src":"26328:7:14"}],"id":1521,"name":"VariableDeclaration","src":"26328:25:14"},{"attributes":{"constant":false,"name":"_spendLimit_","scope":1559,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1522,"name":"ElementaryTypeName","src":"26355:4:14"}],"id":1523,"name":"VariableDeclaration","src":"26355:17:14"}],"id":1524,"name":"ParameterList","src":"26210:163:14"},{"attributes":{"parameters":[null]},"children":[],"id":1535,"name":"ParameterList","src":"26495:0:14"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2326,"type":"type(contract ENSResolvable)","value":"ENSResolvable"},"id":1525,"name":"Identifier","src":"26374:13:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1515,"type":"address","value":"_ens_"},"id":1526,"name":"Identifier","src":"26388:5:14"}],"id":1527,"name":"ModifierInvocation","src":"26374:20:14"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1468,"type":"type(contract Vault)","value":"Vault"},"id":1528,"name":"Identifier","src":"26395:5:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1511,"type":"address","value":"_owner_"},"id":1529,"name":"Identifier","src":"26401:7:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1513,"type":"bool","value":"_transferable_"},"id":1530,"name":"Identifier","src":"26410:14:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1517,"type":"bytes32","value":"_tokenWhitelistNameHash_"},"id":1531,"name":"Identifier","src":"26426:24:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1519,"type":"bytes32","value":"_controllerNameHash_"},"id":1532,"name":"Identifier","src":"26452:20:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1523,"type":"uint256","value":"_spendLimit_"},"id":1533,"name":"Identifier","src":"26474:12:14"}],"id":1534,"name":"ModifierInvocation","src":"26395:92:14"},{"children":[{"attributes":{"assignments":[null,1537,null,null,null,null,null]},"children":[{"attributes":{"constant":false,"name":"stablecoinMagnitude","scope":1559,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1536,"name":"ElementaryTypeName","src":"26551:7:14"}],"id":1537,"name":"VariableDeclaration","src":"26551:27:14"},{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple(string memory,uint256,uint256,bool,bool,bool,uint256)","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"overloadedDeclarations":[null],"referencedDeclaration":2564,"type":"function () view returns (string memory,uint256,uint256,bool,bool,bool,uint256)","value":"_getStablecoinInfo"},"id":1538,"name":"Identifier","src":"26592:18:14"}],"id":1539,"name":"FunctionCall","src":"26592:20:14"}],"id":1540,"name":"VariableDeclarationStatement","src":"26548:64:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cc8efdf469ece235eca91e8bd8f89a83ea18c245858c0a2b14c17ee3a990a8d5","typeString":"literal_string \"stablecoin not set\""}],"overloadedDeclarations":[6502,6503],"referencedDeclaration":6503,"type":"function (bool,string memory) pure","value":"require"},"id":1541,"name":"Identifier","src":"26622:7:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1537,"type":"uint256","value":"stablecoinMagnitude"},"id":1542,"name":"Identifier","src":"26630:19:14"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1543,"name":"Literal","src":"26652:1:14"}],"id":1544,"name":"BinaryOperation","src":"26630:23:14"},{"attributes":{"argumentTypes":null,"hexvalue":"737461626c65636f696e206e6f7420736574","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"stablecoin not set\"","value":"stablecoin not set"},"id":1545,"name":"Literal","src":"26655:20:14"}],"id":1546,"name":"FunctionCall","src":"26622:54:14"}],"id":1547,"name":"ExpressionStatement","src":"26622:54:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":1214,"type":"function (uint256)","value":"_initializeLoadLimit"},"id":1548,"name":"Identifier","src":"26686:20:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1501,"type":"uint256","value":"_DEFAULT_MAX_STABLECOIN_LOAD_LIMIT"},"id":1549,"name":"Identifier","src":"26707:34:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1537,"type":"uint256","value":"stablecoinMagnitude"},"id":1550,"name":"Identifier","src":"26744:19:14"}],"id":1551,"name":"BinaryOperation","src":"26707:56:14"}],"id":1552,"name":"FunctionCall","src":"26686:78:14"}],"id":1553,"name":"ExpressionStatement","src":"26686:78:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"bytes32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1503,"type":"bytes32","value":"_licenceNode"},"id":1554,"name":"Identifier","src":"26774:12:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1521,"type":"bytes32","value":"_licenceNameHash_"},"id":1555,"name":"Identifier","src":"26789:17:14"}],"id":1556,"name":"Assignment","src":"26774:32:14"}],"id":1557,"name":"ExpressionStatement","src":"26774:32:14"}],"id":1558,"name":"Block","src":"26495:318:14"}],"id":1559,"name":"FunctionDefinition","src":"26199:614:14"},{"attributes":{"constant":false,"documentation":"@dev Refill owner's gas balance, revert if the transaction amount is too large\n @param _amount is the amount of ether to transfer to the owner account in wei.","implemented":true,"isConstructor":false,"name":"topUpGas","payable":false,"scope":2042,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_amount","scope":1589,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1560,"name":"ElementaryTypeName","src":"27011:4:14"}],"id":1561,"name":"VariableDeclaration","src":"27011:12:14"}],"id":1562,"name":"ParameterList","src":"27010:14:14"},{"attributes":{"parameters":[null]},"children":[],"id":1568,"name":"ParameterList","src":"27075:0:14"},{"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1283,"type":"modifier (uint256)","value":"isNotZero"},"id":1563,"name":"Identifier","src":"27034:9:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1561,"type":"uint256","value":"_amount"},"id":1564,"name":"Identifier","src":"27044:7:14"}],"id":1565,"name":"ModifierInvocation","src":"27034:18:14"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":30,"type":"modifier ()","value":"onlyOwnerOrController"},"id":1566,"name":"Identifier","src":"27053:21:14"}],"id":1567,"name":"ModifierInvocation","src":"27053:21:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_DailyLimit_$583_storage","typeString":"struct DailyLimitTrait.DailyLimit storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":636,"type":"function (struct DailyLimitTrait.DailyLimit storage pointer,uint256)","value":"_enforceLimit"},"id":1569,"name":"Identifier","src":"27205:13:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":930,"type":"struct DailyLimitTrait.DailyLimit storage ref","value":"_gasTopUpLimit"},"id":1570,"name":"Identifier","src":"27219:14:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1561,"type":"uint256","value":"_amount"},"id":1571,"name":"Identifier","src":"27235:7:14"}],"id":1572,"name":"FunctionCall","src":"27205:38:14"}],"id":1573,"name":"ExpressionStatement","src":"27205:38:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"transfer","referencedDeclaration":null,"type":"function (uint256)"},"children":[{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"overloadedDeclarations":[null],"referencedDeclaration":2470,"type":"function () view returns (address)","value":"owner"},"id":1574,"name":"Identifier","src":"27290:5:14"}],"id":1575,"name":"FunctionCall","src":"27290:7:14"}],"id":1576,"name":"MemberAccess","src":"27290:16:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1561,"type":"uint256","value":"_amount"},"id":1577,"name":"Identifier","src":"27307:7:14"}],"id":1578,"name":"FunctionCall","src":"27290:25:14"}],"id":1579,"name":"ExpressionStatement","src":"27290:25:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":1484,"type":"function (address,address,uint256)","value":"ToppedUpGas"},"id":1580,"name":"Identifier","src":"27368:11:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"sender","referencedDeclaration":null,"type":"address"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":6499,"type":"msg","value":"msg"},"id":1581,"name":"Identifier","src":"27380:3:14"}],"id":1582,"name":"MemberAccess","src":"27380:10:14"},{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"overloadedDeclarations":[null],"referencedDeclaration":2470,"type":"function () view returns (address)","value":"owner"},"id":1583,"name":"Identifier","src":"27392:5:14"}],"id":1584,"name":"FunctionCall","src":"27392:7:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1561,"type":"uint256","value":"_amount"},"id":1585,"name":"Identifier","src":"27401:7:14"}],"id":1586,"name":"FunctionCall","src":"27368:41:14"}],"id":1587,"name":"EmitStatement","src":"27363:46:14"}],"id":1588,"name":"Block","src":"27075:341:14"}],"id":1589,"name":"FunctionDefinition","src":"26993:423:14"},{"attributes":{"constant":false,"documentation":"@dev Load a token card with the specified asset amount.\n @dev the amount send should be inclusive of the percent licence.\n @param _asset is the address of an ERC20 token or 0x0 for ether.\n @param _amount is the amount of assets to be transferred in base units.","implemented":true,"isConstructor":false,"name":"loadTokenCard","payable":true,"scope":2042,"stateMutability":"payable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_asset","scope":1667,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":1590,"name":"ElementaryTypeName","src":"27735:7:14"}],"id":1591,"name":"VariableDeclaration","src":"27735:14:14"},{"attributes":{"constant":false,"name":"_amount","scope":1667,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1592,"name":"ElementaryTypeName","src":"27751:4:14"}],"id":1593,"name":"VariableDeclaration","src":"27751:12:14"}],"id":1594,"name":"ParameterList","src":"27734:30:14"},{"attributes":{"parameters":[null]},"children":[],"id":1597,"name":"ParameterList","src":"27792:0:14"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2385,"type":"modifier ()","value":"onlyOwner"},"id":1595,"name":"Identifier","src":"27782:9:14"}],"id":1596,"name":"ModifierInvocation","src":"27782:9:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_96e30e7359d705e51778d9ae05179a78cb34ab813d824e29a3cd9fe209b16a67","typeString":"literal_string \"token not loadable\""}],"overloadedDeclarations":[6502,6503],"referencedDeclaration":6503,"type":"function (bool,string memory) pure","value":"require"},"id":1598,"name":"Identifier","src":"27870:7:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2648,"type":"function (address) view returns (bool)","value":"_isTokenLoadable"},"id":1599,"name":"Identifier","src":"27878:16:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1591,"type":"address","value":"_asset"},"id":1600,"name":"Identifier","src":"27895:6:14"}],"id":1601,"name":"FunctionCall","src":"27878:24:14"},{"attributes":{"argumentTypes":null,"hexvalue":"746f6b656e206e6f74206c6f616461626c65","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"token not loadable\"","value":"token not loadable"},"id":1602,"name":"Literal","src":"27904:20:14"}],"id":1603,"name":"FunctionCall","src":"27870:55:14"}],"id":1604,"name":"ExpressionStatement","src":"27870:55:14"},{"attributes":{"assignments":[1606]},"children":[{"attributes":{"constant":false,"name":"stablecoinValue","scope":1667,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1605,"name":"ElementaryTypeName","src":"27988:4:14"}],"id":1606,"name":"VariableDeclaration","src":"27988:20:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":1871,"type":"function (address,uint256) view returns (uint256)","value":"convertToStablecoin"},"id":1607,"name":"Identifier","src":"28011:19:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1591,"type":"address","value":"_asset"},"id":1608,"name":"Identifier","src":"28031:6:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1593,"type":"uint256","value":"_amount"},"id":1609,"name":"Identifier","src":"28039:7:14"}],"id":1610,"name":"FunctionCall","src":"28011:36:14"}],"id":1611,"name":"VariableDeclarationStatement","src":"27988:59:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_DailyLimit_$583_storage","typeString":"struct DailyLimitTrait.DailyLimit storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":636,"type":"function (struct DailyLimitTrait.DailyLimit storage pointer,uint256)","value":"_enforceLimit"},"id":1612,"name":"Identifier","src":"28177:13:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1080,"type":"struct DailyLimitTrait.DailyLimit storage ref","value":"_loadLimit"},"id":1613,"name":"Identifier","src":"28191:10:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1606,"type":"uint256","value":"stablecoinValue"},"id":1614,"name":"Identifier","src":"28203:15:14"}],"id":1615,"name":"FunctionCall","src":"28177:42:14"}],"id":1616,"name":"ExpressionStatement","src":"28177:42:14"},{"attributes":{"assignments":[1618]},"children":[{"attributes":{"constant":false,"name":"licenceAddress","scope":1667,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":1617,"name":"ElementaryTypeName","src":"28276:7:14"}],"id":1618,"name":"VariableDeclaration","src":"28276:22:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"overloadedDeclarations":[null],"referencedDeclaration":2325,"type":"function (bytes32) view returns (address)","value":"_ensResolve"},"id":1619,"name":"Identifier","src":"28301:11:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1503,"type":"bytes32","value":"_licenceNode"},"id":1620,"name":"Identifier","src":"28313:12:14"}],"id":1621,"name":"FunctionCall","src":"28301:25:14"}],"id":1622,"name":"VariableDeclarationStatement","src":"28276:50:14"},{"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1591,"type":"address","value":"_asset"},"id":1623,"name":"Identifier","src":"28340:6:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":1624,"name":"ElementaryTypeNameExpression","src":"28350:7:14"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1625,"name":"Literal","src":"28358:1:14"}],"id":1626,"name":"FunctionCall","src":"28350:10:14"}],"id":1627,"name":"BinaryOperation","src":"28340:20:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_030d151788e613bc7585ad6359692c36ed3231f0f75e71af530e46306fd2d85d","typeString":"literal_string \"ERC20 token approval was unsuccessful\""}],"overloadedDeclarations":[6502,6503],"referencedDeclaration":6503,"type":"function (bool,string memory) pure","value":"require"},"id":1628,"name":"Identifier","src":"28376:7:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"approve","referencedDeclaration":2063,"type":"function (address,uint256) external returns (bool)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract ERC20","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2091,"type":"type(contract ERC20)","value":"ERC20"},"id":1629,"name":"Identifier","src":"28384:5:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1591,"type":"address","value":"_asset"},"id":1630,"name":"Identifier","src":"28390:6:14"}],"id":1631,"name":"FunctionCall","src":"28384:13:14"}],"id":1632,"name":"MemberAccess","src":"28384:21:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1618,"type":"address","value":"licenceAddress"},"id":1633,"name":"Identifier","src":"28406:14:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1593,"type":"uint256","value":"_amount"},"id":1634,"name":"Identifier","src":"28422:7:14"}],"id":1635,"name":"FunctionCall","src":"28384:46:14"},{"attributes":{"argumentTypes":null,"hexvalue":"455243323020746f6b656e20617070726f76616c2077617320756e7375636365737366756c","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"ERC20 token approval was unsuccessful\"","value":"ERC20 token approval was unsuccessful"},"id":1636,"name":"Literal","src":"28432:39:14"}],"id":1637,"name":"FunctionCall","src":"28376:96:14"}],"id":1638,"name":"ExpressionStatement","src":"28376:96:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"load","referencedDeclaration":2676,"type":"function (address,uint256) payable external"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract ILicence","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2682,"type":"type(contract ILicence)","value":"ILicence"},"id":1639,"name":"Identifier","src":"28486:8:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1618,"type":"address","value":"licenceAddress"},"id":1640,"name":"Identifier","src":"28495:14:14"}],"id":1641,"name":"FunctionCall","src":"28486:24:14"}],"id":1642,"name":"MemberAccess","src":"28486:29:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1591,"type":"address","value":"_asset"},"id":1643,"name":"Identifier","src":"28516:6:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1593,"type":"uint256","value":"_amount"},"id":1644,"name":"Identifier","src":"28524:7:14"}],"id":1645,"name":"FunctionCall","src":"28486:46:14"}],"id":1646,"name":"ExpressionStatement","src":"28486:46:14"}],"id":1647,"name":"Block","src":"28362:181:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"function (address,uint256) payable external","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"value","referencedDeclaration":null,"type":"function (uint256) returns (function (address,uint256) payable external)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"load","referencedDeclaration":2676,"type":"function (address,uint256) payable external"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"contract ILicence","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2682,"type":"type(contract ILicence)","value":"ILicence"},"id":1648,"name":"Identifier","src":"28563:8:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1618,"type":"address","value":"licenceAddress"},"id":1649,"name":"Identifier","src":"28572:14:14"}],"id":1650,"name":"FunctionCall","src":"28563:24:14"}],"id":1651,"name":"MemberAccess","src":"28563:29:14"}],"id":1652,"name":"MemberAccess","src":"28563:35:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1593,"type":"uint256","value":"_amount"},"id":1653,"name":"Identifier","src":"28599:7:14"}],"id":1654,"name":"FunctionCall","src":"28563:44:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1591,"type":"address","value":"_asset"},"id":1655,"name":"Identifier","src":"28608:6:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1593,"type":"uint256","value":"_amount"},"id":1656,"name":"Identifier","src":"28616:7:14"}],"id":1657,"name":"FunctionCall","src":"28563:61:14"}],"id":1658,"name":"ExpressionStatement","src":"28563:61:14"}],"id":1659,"name":"Block","src":"28549:86:14"}],"id":1660,"name":"IfStatement","src":"28336:299:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":1490,"type":"function (address,uint256)","value":"LoadedTokenCard"},"id":1661,"name":"Identifier","src":"28650:15:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1591,"type":"address","value":"_asset"},"id":1662,"name":"Identifier","src":"28666:6:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1593,"type":"uint256","value":"_amount"},"id":1663,"name":"Identifier","src":"28674:7:14"}],"id":1664,"name":"FunctionCall","src":"28650:32:14"}],"id":1665,"name":"EmitStatement","src":"28645:37:14"}],"id":1666,"name":"Block","src":"27792:898:14"}],"id":1667,"name":"FunctionDefinition","src":"27712:978:14"},{"attributes":{"constant":false,"documentation":"@dev This function allows for the owner to send transaction from the Wallet to arbitrary addresses\n @param _destination address of the transaction\n @param _value ETH amount in wei\n @param _data transaction payload binary","implemented":true,"isConstructor":false,"name":"executeTransaction","payable":false,"scope":2042,"stateMutability":"nonpayable","superFunction":null,"visibility":"external"},"children":[{"children":[{"attributes":{"constant":false,"name":"_destination","scope":1777,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":1668,"name":"ElementaryTypeName","src":"28974:7:14"}],"id":1669,"name":"VariableDeclaration","src":"28974:20:14"},{"attributes":{"constant":false,"name":"_value","scope":1777,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1670,"name":"ElementaryTypeName","src":"28996:4:14"}],"id":1671,"name":"VariableDeclaration","src":"28996:11:14"},{"attributes":{"constant":false,"name":"_data","scope":1777,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":1672,"name":"ElementaryTypeName","src":"29009:5:14"}],"id":1673,"name":"VariableDeclaration","src":"29009:11:14"}],"id":1674,"name":"ParameterList","src":"28973:48:14"},{"attributes":{"parameters":[null]},"children":[],"id":1677,"name":"ParameterList","src":"29041:0:14"},{"attributes":{"arguments":null},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2385,"type":"modifier ()","value":"onlyOwner"},"id":1675,"name":"Identifier","src":"29031:9:14"}],"id":1676,"name":"ModifierInvocation","src":"29031:9:14"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1673,"type":"bytes calldata","value":"_data"},"id":1678,"name":"Identifier","src":"29143:5:14"}],"id":1679,"name":"MemberAccess","src":"29143:12:14"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":1680,"name":"Literal","src":"29159:1:14"}],"id":1681,"name":"BinaryOperation","src":"29143:17:14"},{"children":[{"attributes":{"assignments":[1683]},"children":[{"attributes":{"constant":false,"name":"signature","scope":1777,"stateVariable":false,"storageLocation":"default","type":"uint32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint32","type":"uint32"},"id":1682,"name":"ElementaryTypeName","src":"29212:6:14"}],"id":1683,"name":"VariableDeclaration","src":"29212:16:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint32","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"overloadedDeclarations":[null],"referencedDeclaration":2015,"type":"function (bytes memory,uint256) pure returns (uint32)","value":"_bytesToUint32"},"id":1684,"name":"Identifier","src":"29231:14:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1673,"type":"bytes calldata","value":"_data"},"id":1685,"name":"Identifier","src":"29246:5:14"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1686,"name":"Literal","src":"29253:1:14"}],"id":1687,"name":"FunctionCall","src":"29231:24:14"}],"id":1688,"name":"VariableDeclarationStatement","src":"29212:43:14"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"||","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint32","typeString":"uint32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1683,"type":"uint32","value":"signature"},"id":1689,"name":"Identifier","src":"29341:9:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1506,"type":"uint32","value":"_TRANSFER"},"id":1690,"name":"Identifier","src":"29354:9:14"}],"id":1691,"name":"BinaryOperation","src":"29341:22:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint32","typeString":"uint32"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1683,"type":"uint32","value":"signature"},"id":1692,"name":"Identifier","src":"29367:9:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1509,"type":"uint32","value":"_APPROVE"},"id":1693,"name":"Identifier","src":"29380:8:14"}],"id":1694,"name":"BinaryOperation","src":"29367:21:14"}],"id":1695,"name":"BinaryOperation","src":"29341:47:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_60b02e5339acadd671190c6aff36d1b941b1032e82ca211538cb256ae0a5a6de","typeString":"literal_string \"invalid transfer / approve transaction data\""}],"overloadedDeclarations":[6502,6503],"referencedDeclaration":6503,"type":"function (bool,string memory) pure","value":"require"},"id":1696,"name":"Identifier","src":"29408:7:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1673,"type":"bytes calldata","value":"_data"},"id":1697,"name":"Identifier","src":"29416:5:14"}],"id":1698,"name":"MemberAccess","src":"29416:12:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_68_by_1","typeString":"int_const 68"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"+","type":"int_const 68"},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_36_by_1","typeString":"int_const 36"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"+","type":"int_const 36"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":1699,"name":"Literal","src":"29432:1:14"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":1700,"name":"Literal","src":"29436:2:14"}],"id":1701,"name":"BinaryOperation","src":"29432:6:14"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":1702,"name":"Literal","src":"29441:2:14"}],"id":1703,"name":"BinaryOperation","src":"29432:11:14"}],"id":1704,"name":"BinaryOperation","src":"29416:27:14"},{"attributes":{"argumentTypes":null,"hexvalue":"696e76616c6964207472616e73666572202f20617070726f7665207472616e73616374696f6e2064617461","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"invalid transfer / approve transaction data\"","value":"invalid transfer / approve transaction data"},"id":1705,"name":"Literal","src":"29445:45:14"}],"id":1706,"name":"FunctionCall","src":"29408:83:14"}],"id":1707,"name":"ExpressionStatement","src":"29408:83:14"},{"attributes":{"assignments":[1709]},"children":[{"attributes":{"constant":false,"name":"amount","scope":1777,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1708,"name":"ElementaryTypeName","src":"29509:4:14"}],"id":1709,"name":"VariableDeclaration","src":"29509:11:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_rational_36_by_1","typeString":"int_const 36"}],"overloadedDeclarations":[null],"referencedDeclaration":2041,"type":"function (bytes memory,uint256) pure returns (uint256)","value":"_sliceUint"},"id":1710,"name":"Identifier","src":"29523:10:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1673,"type":"bytes calldata","value":"_data"},"id":1711,"name":"Identifier","src":"29534:5:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_36_by_1","typeString":"int_const 36"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"+","type":"int_const 36"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":1712,"name":"Literal","src":"29541:1:14"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":1713,"name":"Literal","src":"29545:2:14"}],"id":1714,"name":"BinaryOperation","src":"29541:6:14"}],"id":1715,"name":"FunctionCall","src":"29523:25:14"}],"id":1716,"name":"VariableDeclarationStatement","src":"29509:39:14"},{"attributes":{"assignments":[1718]},"children":[{"attributes":{"constant":false,"name":"toOrSpender","scope":1777,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":1717,"name":"ElementaryTypeName","src":"29754:7:14"}],"id":1718,"name":"VariableDeclaration","src":"29754:19:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"}],"overloadedDeclarations":[null],"referencedDeclaration":1954,"type":"function (bytes memory,uint256) pure returns (address)","value":"_bytesToAddress"},"id":1719,"name":"Identifier","src":"29776:15:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1673,"type":"bytes calldata","value":"_data"},"id":1720,"name":"Identifier","src":"29792:5:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"operator":"+","type":"int_const 16"},"children":[{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":1721,"name":"Literal","src":"29799:1:14"},{"attributes":{"argumentTypes":null,"hexvalue":"3132","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 12","value":"12"},"id":1722,"name":"Literal","src":"29803:2:14"}],"id":1723,"name":"BinaryOperation","src":"29799:6:14"}],"id":1724,"name":"FunctionCall","src":"29776:30:14"}],"id":1725,"name":"VariableDeclarationStatement","src":"29754:52:14"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":80,"type":"mapping(address => bool)","value":"whitelistMap"},"id":1726,"name":"Identifier","src":"29894:12:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1718,"type":"address","value":"toOrSpender"},"id":1727,"name":"Identifier","src":"29907:11:14"}],"id":1728,"name":"IndexAccess","src":"29894:25:14"}],"id":1729,"name":"UnaryOperation","src":"29893:26:14"},{"children":[{"attributes":{"assignments":[1731]},"children":[{"attributes":{"constant":false,"name":"etherValue","scope":1777,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1730,"name":"ElementaryTypeName","src":"30119:4:14"}],"id":1731,"name":"VariableDeclaration","src":"30119:15:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":1467,"type":"function (address,uint256) view returns (uint256)","value":"convertToEther"},"id":1732,"name":"Identifier","src":"30137:14:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1669,"type":"address","value":"_destination"},"id":1733,"name":"Identifier","src":"30152:12:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1709,"type":"uint256","value":"amount"},"id":1734,"name":"Identifier","src":"30166:6:14"}],"id":1735,"name":"FunctionCall","src":"30137:36:14"}],"id":1736,"name":"VariableDeclarationStatement","src":"30119:54:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_DailyLimit_$583_storage","typeString":"struct DailyLimitTrait.DailyLimit storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":636,"type":"function (struct DailyLimitTrait.DailyLimit storage pointer,uint256)","value":"_enforceLimit"},"id":1737,"name":"Identifier","src":"30195:13:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":799,"type":"struct DailyLimitTrait.DailyLimit storage ref","value":"_spendLimit"},"id":1738,"name":"Identifier","src":"30209:11:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1731,"type":"uint256","value":"etherValue"},"id":1739,"name":"Identifier","src":"30222:10:14"}],"id":1740,"name":"FunctionCall","src":"30195:38:14"}],"id":1741,"name":"ExpressionStatement","src":"30195:38:14"}],"id":1742,"name":"Block","src":"29921:331:14"}],"id":1743,"name":"IfStatement","src":"29889:363:14"}],"id":1744,"name":"Block","src":"29390:876:14"}],"id":1745,"name":"IfStatement","src":"29337:929:14"}],"id":1746,"name":"Block","src":"29162:1114:14"}],"id":1747,"name":"IfStatement","src":"29139:1137:14"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!","prefix":true,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":80,"type":"mapping(address => bool)","value":"whitelistMap"},"id":1748,"name":"Identifier","src":"30481:12:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1669,"type":"address","value":"_destination"},"id":1749,"name":"Identifier","src":"30494:12:14"}],"id":1750,"name":"IndexAccess","src":"30481:26:14"}],"id":1751,"name":"UnaryOperation","src":"30480:27:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_struct$_DailyLimit_$583_storage","typeString":"struct DailyLimitTrait.DailyLimit storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"overloadedDeclarations":[null],"referencedDeclaration":636,"type":"function (struct DailyLimitTrait.DailyLimit storage pointer,uint256)","value":"_enforceLimit"},"id":1752,"name":"Identifier","src":"30523:13:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":799,"type":"struct DailyLimitTrait.DailyLimit storage ref","value":"_spendLimit"},"id":1753,"name":"Identifier","src":"30537:11:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1671,"type":"uint256","value":"_value"},"id":1754,"name":"Identifier","src":"30550:6:14"}],"id":1755,"name":"FunctionCall","src":"30523:34:14"}],"id":1756,"name":"ExpressionStatement","src":"30523:34:14"}],"id":1757,"name":"Block","src":"30509:59:14"}],"id":1758,"name":"IfStatement","src":"30476:92:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c9dca63b84df20d1b1beebd2bfebabcdff15d16b9e9e3fea6496e3ba09597b1d","typeString":"literal_string \"executing transaction failed\""}],"overloadedDeclarations":[6502,6503],"referencedDeclaration":6503,"type":"function (bool,string memory) pure","value":"require"},"id":1759,"name":"Identifier","src":"30578:7:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"bool","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"overloadedDeclarations":[null],"referencedDeclaration":1891,"type":"function (address,uint256,uint256,bytes memory) returns (bool)","value":"_externalCall"},"id":1760,"name":"Identifier","src":"30586:13:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1669,"type":"address","value":"_destination"},"id":1761,"name":"Identifier","src":"30600:12:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1671,"type":"uint256","value":"_value"},"id":1762,"name":"Identifier","src":"30614:6:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1673,"type":"bytes calldata","value":"_data"},"id":1763,"name":"Identifier","src":"30622:5:14"}],"id":1764,"name":"MemberAccess","src":"30622:12:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1673,"type":"bytes calldata","value":"_data"},"id":1765,"name":"Identifier","src":"30636:5:14"}],"id":1766,"name":"FunctionCall","src":"30586:56:14"},{"attributes":{"argumentTypes":null,"hexvalue":"657865637574696e67207472616e73616374696f6e206661696c6564","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"executing transaction failed\"","value":"executing transaction failed"},"id":1767,"name":"Literal","src":"30644:30:14"}],"id":1768,"name":"FunctionCall","src":"30578:97:14"}],"id":1769,"name":"ExpressionStatement","src":"30578:97:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"overloadedDeclarations":[null],"referencedDeclaration":1498,"type":"function (address,uint256,bytes memory)","value":"ExecutedTransaction"},"id":1770,"name":"Identifier","src":"30691:19:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1669,"type":"address","value":"_destination"},"id":1771,"name":"Identifier","src":"30711:12:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1671,"type":"uint256","value":"_value"},"id":1772,"name":"Identifier","src":"30725:6:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1673,"type":"bytes calldata","value":"_data"},"id":1773,"name":"Identifier","src":"30733:5:14"}],"id":1774,"name":"FunctionCall","src":"30691:48:14"}],"id":1775,"name":"EmitStatement","src":"30686:53:14"}],"id":1776,"name":"Block","src":"29041:1705:14"}],"id":1777,"name":"FunctionDefinition","src":"28946:1800:14"},{"attributes":{"constant":true,"documentation":"@return licence contract node registered in ENS.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"licenceNode","payable":false,"scope":2042,"stateMutability":"view","superFunction":null,"visibility":"external"},"children":[{"attributes":{"parameters":[null]},"children":[],"id":1778,"name":"ParameterList","src":"30829:2:14"},{"children":[{"attributes":{"constant":false,"name":"","scope":1785,"stateVariable":false,"storageLocation":"default","type":"bytes32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes32","type":"bytes32"},"id":1779,"name":"ElementaryTypeName","src":"30855:7:14"}],"id":1780,"name":"VariableDeclaration","src":"30855:7:14"}],"id":1781,"name":"ParameterList","src":"30854:9:14"},{"children":[{"attributes":{"functionReturnParameters":1781},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1503,"type":"bytes32","value":"_licenceNode"},"id":1782,"name":"Identifier","src":"30881:12:14"}],"id":1783,"name":"Return","src":"30874:19:14"}],"id":1784,"name":"Block","src":"30864:36:14"}],"id":1785,"name":"FunctionDefinition","src":"30809:91:14"},{"attributes":{"constant":true,"documentation":"@dev Convert ether or ERC20 token amount to the corresponding stablecoin amount.\n @param _token ERC20 token contract address.\n @param _amount amount of token in base units.","implemented":true,"isConstructor":false,"modifiers":[null],"name":"convertToStablecoin","payable":false,"scope":2042,"stateMutability":"view","superFunction":null,"visibility":"public"},"children":[{"children":[{"attributes":{"constant":false,"name":"_token","scope":1871,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":1786,"name":"ElementaryTypeName","src":"31130:7:14"}],"id":1787,"name":"VariableDeclaration","src":"31130:14:14"},{"attributes":{"constant":false,"name":"_amount","scope":1871,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1788,"name":"ElementaryTypeName","src":"31146:4:14"}],"id":1789,"name":"VariableDeclaration","src":"31146:12:14"}],"id":1790,"name":"ParameterList","src":"31129:30:14"},{"children":[{"attributes":{"constant":false,"name":"","scope":1871,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1791,"name":"ElementaryTypeName","src":"31181:4:14"}],"id":1792,"name":"VariableDeclaration","src":"31181:4:14"}],"id":1793,"name":"ParameterList","src":"31180:6:14"},{"children":[{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"==","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1787,"type":"address","value":"_token"},"id":1794,"name":"Identifier","src":"31297:6:14"},{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"overloadedDeclarations":[null],"referencedDeclaration":2662,"type":"function () view returns (address)","value":"_stablecoin"},"id":1795,"name":"Identifier","src":"31307:11:14"}],"id":1796,"name":"FunctionCall","src":"31307:13:14"}],"id":1797,"name":"BinaryOperation","src":"31297:23:14"},{"children":[{"attributes":{"functionReturnParameters":1793},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1789,"type":"uint256","value":"_amount"},"id":1798,"name":"Identifier","src":"31343:7:14"}],"id":1799,"name":"Return","src":"31336:14:14"}],"id":1800,"name":"Block","src":"31322:39:14"}],"id":1801,"name":"IfStatement","src":"31293:68:14"},{"attributes":{"falseBody":null},"children":[{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1787,"type":"address","value":"_token"},"id":1802,"name":"Identifier","src":"31405:6:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":true,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":1803,"name":"ElementaryTypeNameExpression","src":"31415:7:14"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1804,"name":"Literal","src":"31423:1:14"}],"id":1805,"name":"FunctionCall","src":"31415:10:14"}],"id":1806,"name":"BinaryOperation","src":"31405:20:14"},{"children":[{"attributes":{"assignments":[null,1808,1810,1812,null,null,null]},"children":[{"attributes":{"constant":false,"name":"magnitude","scope":1871,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1807,"name":"ElementaryTypeName","src":"31575:7:14"}],"id":1808,"name":"VariableDeclaration","src":"31575:17:14"},{"attributes":{"constant":false,"name":"rate","scope":1871,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1809,"name":"ElementaryTypeName","src":"31594:7:14"}],"id":1810,"name":"VariableDeclaration","src":"31594:12:14"},{"attributes":{"constant":false,"name":"available","scope":1871,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":1811,"name":"ElementaryTypeName","src":"31608:4:14"}],"id":1812,"name":"VariableDeclaration","src":"31608:14:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple(string memory,uint256,uint256,bool,bool,bool,uint256)","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"overloadedDeclarations":[null],"referencedDeclaration":2538,"type":"function (address) view returns (string memory,uint256,uint256,bool,bool,bool,uint256)","value":"_getTokenInfo"},"id":1813,"name":"Identifier","src":"31632:13:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1787,"type":"address","value":"_token"},"id":1814,"name":"Identifier","src":"31646:6:14"}],"id":1815,"name":"FunctionCall","src":"31632:21:14"}],"id":1816,"name":"VariableDeclarationStatement","src":"31573:80:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d487155ec60125f09758305e6de21696dc3e345a5b0edca0b920691dd5be4852","typeString":"literal_string \"token is not available\""}],"overloadedDeclarations":[6502,6503],"referencedDeclaration":6503,"type":"function (bool,string memory) pure","value":"require"},"id":1817,"name":"Identifier","src":"31756:7:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1812,"type":"bool","value":"available"},"id":1818,"name":"Identifier","src":"31764:9:14"},{"attributes":{"argumentTypes":null,"hexvalue":"746f6b656e206973206e6f7420617661696c61626c65","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"token is not available\"","value":"token is not available"},"id":1819,"name":"Literal","src":"31775:24:14"}],"id":1820,"name":"FunctionCall","src":"31756:44:14"}],"id":1821,"name":"ExpressionStatement","src":"31756:44:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6a7d5da61473fd3819888b787e2ae4bd3c3ceb7f1a5528bd7126863f09e86c29","typeString":"literal_string \"token rate is 0\""}],"overloadedDeclarations":[6502,6503],"referencedDeclaration":6503,"type":"function (bool,string memory) pure","value":"require"},"id":1822,"name":"Identifier","src":"31814:7:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1810,"type":"uint256","value":"rate"},"id":1823,"name":"Identifier","src":"31822:4:14"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1824,"name":"Literal","src":"31830:1:14"}],"id":1825,"name":"BinaryOperation","src":"31822:9:14"},{"attributes":{"argumentTypes":null,"hexvalue":"746f6b656e20726174652069732030","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"token rate is 0\"","value":"token rate is 0"},"id":1826,"name":"Literal","src":"31833:17:14"}],"id":1827,"name":"FunctionCall","src":"31814:37:14"}],"id":1828,"name":"ExpressionStatement","src":"31814:37:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1789,"type":"uint256","value":"_amount"},"id":1829,"name":"Identifier","src":"31949:7:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"div","referencedDeclaration":2150,"type":"function (uint256,uint256) pure returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"mul","referencedDeclaration":2126,"type":"function (uint256,uint256) pure returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1789,"type":"uint256","value":"_amount"},"id":1830,"name":"Identifier","src":"31959:7:14"}],"id":1831,"name":"MemberAccess","src":"31959:11:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1810,"type":"uint256","value":"rate"},"id":1832,"name":"Identifier","src":"31971:4:14"}],"id":1833,"name":"FunctionCall","src":"31959:17:14"}],"id":1834,"name":"MemberAccess","src":"31959:21:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1808,"type":"uint256","value":"magnitude"},"id":1835,"name":"Identifier","src":"31981:9:14"}],"id":1836,"name":"FunctionCall","src":"31959:32:14"}],"id":1837,"name":"Assignment","src":"31949:42:14"}],"id":1838,"name":"ExpressionStatement","src":"31949:42:14"}],"id":1839,"name":"Block","src":"31427:575:14"}],"id":1840,"name":"IfStatement","src":"31401:601:14"},{"attributes":{"assignments":[null,1842,1844,1846,null,null,null]},"children":[{"attributes":{"constant":false,"name":"stablecoinMagnitude","scope":1871,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1841,"name":"ElementaryTypeName","src":"32112:7:14"}],"id":1842,"name":"VariableDeclaration","src":"32112:27:14"},{"attributes":{"constant":false,"name":"stablecoinRate","scope":1871,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint256","type":"uint256"},"id":1843,"name":"ElementaryTypeName","src":"32141:7:14"}],"id":1844,"name":"VariableDeclaration","src":"32141:22:14"},{"attributes":{"constant":false,"name":"stablecoinAvailable","scope":1871,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":1845,"name":"ElementaryTypeName","src":"32165:4:14"}],"id":1846,"name":"VariableDeclaration","src":"32165:24:14"},{"attributes":{"argumentTypes":null,"arguments":[null],"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple(string memory,uint256,uint256,bool,bool,bool,uint256)","type_conversion":false},"children":[{"attributes":{"argumentTypes":[null],"overloadedDeclarations":[null],"referencedDeclaration":2564,"type":"function () view returns (string memory,uint256,uint256,bool,bool,bool,uint256)","value":"_getStablecoinInfo"},"id":1847,"name":"Identifier","src":"32199:18:14"}],"id":1848,"name":"FunctionCall","src":"32199:20:14"}],"id":1849,"name":"VariableDeclarationStatement","src":"32109:110:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d487155ec60125f09758305e6de21696dc3e345a5b0edca0b920691dd5be4852","typeString":"literal_string \"token is not available\""}],"overloadedDeclarations":[6502,6503],"referencedDeclaration":6503,"type":"function (bool,string memory) pure","value":"require"},"id":1850,"name":"Identifier","src":"32281:7:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1846,"type":"bool","value":"stablecoinAvailable"},"id":1851,"name":"Identifier","src":"32289:19:14"},{"attributes":{"argumentTypes":null,"hexvalue":"746f6b656e206973206e6f7420617661696c61626c65","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"token is not available\"","value":"token is not available"},"id":1852,"name":"Literal","src":"32310:24:14"}],"id":1853,"name":"FunctionCall","src":"32281:54:14"}],"id":1854,"name":"ExpressionStatement","src":"32281:54:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7c122d7c6b188fb34176dcbbc8d0f72dcc4a30a0e6c8f0047ab0c21581c51619","typeString":"literal_string \"stablecoin rate is 0\""}],"overloadedDeclarations":[6502,6503],"referencedDeclaration":6503,"type":"function (bool,string memory) pure","value":"require"},"id":1855,"name":"Identifier","src":"32345:7:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"!=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1844,"type":"uint256","value":"stablecoinRate"},"id":1856,"name":"Identifier","src":"32353:14:14"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1857,"name":"Literal","src":"32371:1:14"}],"id":1858,"name":"BinaryOperation","src":"32353:19:14"},{"attributes":{"argumentTypes":null,"hexvalue":"737461626c65636f696e20726174652069732030","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"stablecoin rate is 0\"","value":"stablecoin rate is 0"},"id":1859,"name":"Literal","src":"32374:22:14"}],"id":1860,"name":"FunctionCall","src":"32345:52:14"}],"id":1861,"name":"ExpressionStatement","src":"32345:52:14"},{"attributes":{"functionReturnParameters":1793},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"div","referencedDeclaration":2150,"type":"function (uint256,uint256) pure returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint256","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"mul","referencedDeclaration":2126,"type":"function (uint256,uint256) pure returns (uint256)"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1789,"type":"uint256","value":"_amount"},"id":1862,"name":"Identifier","src":"32532:7:14"}],"id":1863,"name":"MemberAccess","src":"32532:11:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1842,"type":"uint256","value":"stablecoinMagnitude"},"id":1864,"name":"Identifier","src":"32544:19:14"}],"id":1865,"name":"FunctionCall","src":"32532:32:14"}],"id":1866,"name":"MemberAccess","src":"32532:36:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1844,"type":"uint256","value":"stablecoinRate"},"id":1867,"name":"Identifier","src":"32569:14:14"}],"id":1868,"name":"FunctionCall","src":"32532:52:14"}],"id":1869,"name":"Return","src":"32525:59:14"}],"id":1870,"name":"Block","src":"31187:1404:14"}],"id":1871,"name":"FunctionDefinition","src":"31101:1490:14"},{"attributes":{"constant":false,"documentation":"@dev This function is taken from the Gnosis MultisigWallet: https://github.com/gnosis/MultiSigWallet/\n @dev License: https://github.com/gnosis/MultiSigWallet/blob/master/LICENSE\n @dev thanks :)\n @dev This calls proxies arbitrary transactions to addresses\n @param _destination address of the transaction\n @param _value ETH amount in wei\n @param _dataLength length of the transaction data\n @param _data transaction payload binary","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_externalCall","payable":false,"scope":2042,"stateMutability":"nonpayable","superFunction":null,"visibility":"private"},"children":[{"children":[{"attributes":{"constant":false,"name":"_destination","scope":1891,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":1872,"name":"ElementaryTypeName","src":"33276:7:14"}],"id":1873,"name":"VariableDeclaration","src":"33276:20:14"},{"attributes":{"constant":false,"name":"_value","scope":1891,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1874,"name":"ElementaryTypeName","src":"33298:4:14"}],"id":1875,"name":"VariableDeclaration","src":"33298:11:14"},{"attributes":{"constant":false,"name":"_dataLength","scope":1891,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1876,"name":"ElementaryTypeName","src":"33311:4:14"}],"id":1877,"name":"VariableDeclaration","src":"33311:16:14"},{"attributes":{"constant":false,"name":"_data","scope":1891,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":1878,"name":"ElementaryTypeName","src":"33329:5:14"}],"id":1879,"name":"VariableDeclaration","src":"33329:11:14"}],"id":1880,"name":"ParameterList","src":"33275:66:14"},{"children":[{"attributes":{"constant":false,"name":"","scope":1891,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":1881,"name":"ElementaryTypeName","src":"33359:4:14"}],"id":1882,"name":"VariableDeclaration","src":"33359:4:14"}],"id":1883,"name":"ParameterList","src":"33358:6:14"},{"children":[{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"result","scope":1891,"stateVariable":false,"storageLocation":"default","type":"bool","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bool","type":"bool"},"id":1884,"name":"ElementaryTypeName","src":"33375:4:14"}],"id":1885,"name":"VariableDeclaration","src":"33375:11:14"}],"id":1886,"name":"VariableDeclarationStatement","src":"33375:11:14"},{"attributes":{"externalReferences":[{"_data":{"declaration":1879,"isOffset":false,"isSlot":false,"src":"33561:5:14","valueSize":1}},{"_destination":{"declaration":1873,"isOffset":false,"isSlot":false,"src":"34035:12:14","valueSize":1}},{"_value":{"declaration":1875,"isOffset":false,"isSlot":false,"src":"34065:6:14","valueSize":1}},{"_dataLength":{"declaration":1877,"isOffset":false,"isSlot":false,"src":"34108:11:14","valueSize":1}},{"result":{"declaration":1885,"isOffset":false,"isSlot":false,"src":"33649:6:14","valueSize":1}}],"operations":"{\n let x := mload(0x40)\n let d := add(_data, 32)\n result := call(sub(gas(), 34710), _destination, _value, d, _dataLength, x, 0)\n}"},"children":[],"id":1887,"name":"InlineAssembly","src":"33396:954:14"},{"attributes":{"functionReturnParameters":1883},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1885,"type":"bool","value":"result"},"id":1888,"name":"Identifier","src":"34351:6:14"}],"id":1889,"name":"Return","src":"34344:13:14"}],"id":1890,"name":"Block","src":"33365:999:14"}],"id":1891,"name":"FunctionDefinition","src":"33253:1111:14"},{"attributes":{"constant":true,"documentation":"@dev This function converts to an address\n @param _bts bytes\n @param _from start position","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_bytesToAddress","payable":false,"scope":2042,"stateMutability":"pure","superFunction":null,"visibility":"private"},"children":[{"children":[{"attributes":{"constant":false,"name":"_bts","scope":1954,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":1892,"name":"ElementaryTypeName","src":"34507:5:14"}],"id":1893,"name":"VariableDeclaration","src":"34507:10:14"},{"attributes":{"constant":false,"name":"_from","scope":1954,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1894,"name":"ElementaryTypeName","src":"34519:4:14"}],"id":1895,"name":"VariableDeclaration","src":"34519:10:14"}],"id":1896,"name":"ParameterList","src":"34506:24:14"},{"children":[{"attributes":{"constant":false,"name":"","scope":1954,"stateVariable":false,"storageLocation":"default","type":"address","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"address","type":"address"},"id":1897,"name":"ElementaryTypeName","src":"34553:7:14"}],"id":1898,"name":"VariableDeclaration","src":"34553:7:14"}],"id":1899,"name":"ParameterList","src":"34552:9:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_294d2bd5b6fb7e8eb608d7ff076f4babdc08155a7a6671f4f35801fb90c8bda4","typeString":"literal_string \"slicing out of range\""}],"overloadedDeclarations":[6502,6503],"referencedDeclaration":6503,"type":"function (bool,string memory) pure","value":"require"},"id":1900,"name":"Identifier","src":"34572:7:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1893,"type":"bytes memory","value":"_bts"},"id":1901,"name":"Identifier","src":"34580:4:14"}],"id":1902,"name":"MemberAccess","src":"34580:11:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1895,"type":"uint256","value":"_from"},"id":1903,"name":"Identifier","src":"34595:5:14"},{"attributes":{"argumentTypes":null,"hexvalue":"3230","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 20","value":"20"},"id":1904,"name":"Literal","src":"34603:2:14"}],"id":1905,"name":"BinaryOperation","src":"34595:10:14"}],"id":1906,"name":"BinaryOperation","src":"34580:25:14"},{"attributes":{"argumentTypes":null,"hexvalue":"736c6963696e67206f7574206f662072616e6765","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"slicing out of range\"","value":"slicing out of range"},"id":1907,"name":"Literal","src":"34607:22:14"}],"id":1908,"name":"FunctionCall","src":"34572:58:14"}],"id":1909,"name":"ExpressionStatement","src":"34572:58:14"},{"attributes":{"assignments":[1911]},"children":[{"attributes":{"constant":false,"name":"m","scope":1954,"stateVariable":false,"storageLocation":"default","type":"uint160","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint160","type":"uint160"},"id":1910,"name":"ElementaryTypeName","src":"34641:7:14"}],"id":1911,"name":"VariableDeclaration","src":"34641:9:14"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1912,"name":"Literal","src":"34653:1:14"}],"id":1913,"name":"VariableDeclarationStatement","src":"34641:13:14"},{"attributes":{"assignments":[1915]},"children":[{"attributes":{"constant":false,"name":"b","scope":1954,"stateVariable":false,"storageLocation":"default","type":"uint160","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint160","type":"uint160"},"id":1914,"name":"ElementaryTypeName","src":"34664:7:14"}],"id":1915,"name":"VariableDeclaration","src":"34664:9:14"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1916,"name":"Literal","src":"34676:1:14"}],"id":1917,"name":"VariableDeclarationStatement","src":"34664:13:14"},{"children":[{"attributes":{"assignments":[1919]},"children":[{"attributes":{"constant":false,"name":"i","scope":1954,"stateVariable":false,"storageLocation":"default","type":"uint8","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint8","type":"uint8"},"id":1918,"name":"ElementaryTypeName","src":"34693:5:14"}],"id":1919,"name":"VariableDeclaration","src":"34693:7:14"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1920,"name":"Literal","src":"34703:1:14"}],"id":1921,"name":"VariableDeclarationStatement","src":"34693:11:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1919,"type":"uint8","value":"i"},"id":1922,"name":"Identifier","src":"34706:1:14"},{"attributes":{"argumentTypes":null,"hexvalue":"3230","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 20","value":"20"},"id":1923,"name":"Literal","src":"34710:2:14"}],"id":1924,"name":"BinaryOperation","src":"34706:6:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint8"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1919,"type":"uint8","value":"i"},"id":1925,"name":"Identifier","src":"34714:1:14"}],"id":1926,"name":"UnaryOperation","src":"34714:3:14"}],"id":1927,"name":"ExpressionStatement","src":"34714:3:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*=","type":"uint160"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1911,"type":"uint160","value":"m"},"id":1928,"name":"Identifier","src":"34733:1:14"},{"attributes":{"argumentTypes":null,"hexvalue":"323536","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 256","value":"256"},"id":1929,"name":"Literal","src":"34738:3:14"}],"id":1930,"name":"Assignment","src":"34733:8:14"}],"id":1931,"name":"ExpressionStatement","src":"34733:8:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint160"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1915,"type":"uint160","value":"b"},"id":1932,"name":"Identifier","src":"34755:1:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint160","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint160)","value":"uint160"},"id":1933,"name":"ElementaryTypeNameExpression","src":"34759:7:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1893,"type":"bytes memory","value":"_bts"},"id":1934,"name":"Identifier","src":"34768:4:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1895,"type":"uint256","value":"_from"},"id":1935,"name":"Identifier","src":"34773:5:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1919,"type":"uint8","value":"i"},"id":1936,"name":"Identifier","src":"34781:1:14"}],"id":1937,"name":"BinaryOperation","src":"34773:9:14"}],"id":1938,"name":"IndexAccess","src":"34768:15:14"}],"id":1939,"name":"FunctionCall","src":"34759:25:14"}],"id":1940,"name":"Assignment","src":"34755:29:14"}],"id":1941,"name":"ExpressionStatement","src":"34755:29:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint160"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1911,"type":"uint160","value":"m"},"id":1942,"name":"Identifier","src":"34798:1:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint160"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1915,"type":"uint160","value":"b"},"id":1943,"name":"Identifier","src":"34804:1:14"}],"id":1944,"name":"TupleExpression","src":"34803:3:14"}],"id":1945,"name":"Assignment","src":"34798:8:14"}],"id":1946,"name":"ExpressionStatement","src":"34798:8:14"}],"id":1947,"name":"Block","src":"34719:98:14"}],"id":1948,"name":"ForStatement","src":"34688:129:14"},{"attributes":{"functionReturnParameters":1899},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"address","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(address)","value":"address"},"id":1949,"name":"ElementaryTypeNameExpression","src":"34834:7:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1911,"type":"uint160","value":"m"},"id":1950,"name":"Identifier","src":"34842:1:14"}],"id":1951,"name":"FunctionCall","src":"34834:10:14"}],"id":1952,"name":"Return","src":"34827:17:14"}],"id":1953,"name":"Block","src":"34562:289:14"}],"id":1954,"name":"FunctionDefinition","src":"34482:369:14"},{"attributes":{"constant":true,"documentation":"@dev This function slicing bytes into uint32\n @param _bts some bytes\n @param _from a start position","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_bytesToUint32","payable":false,"scope":2042,"stateMutability":"pure","superFunction":null,"visibility":"private"},"children":[{"children":[{"attributes":{"constant":false,"name":"_bts","scope":2015,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":1955,"name":"ElementaryTypeName","src":"35004:5:14"}],"id":1956,"name":"VariableDeclaration","src":"35004:10:14"},{"attributes":{"constant":false,"name":"_from","scope":2015,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":1957,"name":"ElementaryTypeName","src":"35016:4:14"}],"id":1958,"name":"VariableDeclaration","src":"35016:10:14"}],"id":1959,"name":"ParameterList","src":"35003:24:14"},{"children":[{"attributes":{"constant":false,"name":"","scope":2015,"stateVariable":false,"storageLocation":"default","type":"uint32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint32","type":"uint32"},"id":1960,"name":"ElementaryTypeName","src":"35050:6:14"}],"id":1961,"name":"VariableDeclaration","src":"35050:6:14"}],"id":1962,"name":"ParameterList","src":"35049:8:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_294d2bd5b6fb7e8eb608d7ff076f4babdc08155a7a6671f4f35801fb90c8bda4","typeString":"literal_string \"slicing out of range\""}],"overloadedDeclarations":[6502,6503],"referencedDeclaration":6503,"type":"function (bool,string memory) pure","value":"require"},"id":1963,"name":"Identifier","src":"35068:7:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1956,"type":"bytes memory","value":"_bts"},"id":1964,"name":"Identifier","src":"35076:4:14"}],"id":1965,"name":"MemberAccess","src":"35076:11:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1958,"type":"uint256","value":"_from"},"id":1966,"name":"Identifier","src":"35091:5:14"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":1967,"name":"Literal","src":"35099:1:14"}],"id":1968,"name":"BinaryOperation","src":"35091:9:14"}],"id":1969,"name":"BinaryOperation","src":"35076:24:14"},{"attributes":{"argumentTypes":null,"hexvalue":"736c6963696e67206f7574206f662072616e6765","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"slicing out of range\"","value":"slicing out of range"},"id":1970,"name":"Literal","src":"35102:22:14"}],"id":1971,"name":"FunctionCall","src":"35068:57:14"}],"id":1972,"name":"ExpressionStatement","src":"35068:57:14"},{"attributes":{"assignments":[1974]},"children":[{"attributes":{"constant":false,"name":"m","scope":2015,"stateVariable":false,"storageLocation":"default","type":"uint32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint32","type":"uint32"},"id":1973,"name":"ElementaryTypeName","src":"35136:6:14"}],"id":1974,"name":"VariableDeclaration","src":"35136:8:14"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1975,"name":"Literal","src":"35147:1:14"}],"id":1976,"name":"VariableDeclarationStatement","src":"35136:12:14"},{"attributes":{"assignments":[1978]},"children":[{"attributes":{"constant":false,"name":"b","scope":2015,"stateVariable":false,"storageLocation":"default","type":"uint32","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint32","type":"uint32"},"id":1977,"name":"ElementaryTypeName","src":"35158:6:14"}],"id":1978,"name":"VariableDeclaration","src":"35158:8:14"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1979,"name":"Literal","src":"35169:1:14"}],"id":1980,"name":"VariableDeclarationStatement","src":"35158:12:14"},{"children":[{"attributes":{"assignments":[1982]},"children":[{"attributes":{"constant":false,"name":"i","scope":2015,"stateVariable":false,"storageLocation":"default","type":"uint8","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint8","type":"uint8"},"id":1981,"name":"ElementaryTypeName","src":"35186:5:14"}],"id":1982,"name":"VariableDeclaration","src":"35186:7:14"},{"attributes":{"argumentTypes":null,"hexvalue":"30","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 0","value":"0"},"id":1983,"name":"Literal","src":"35196:1:14"}],"id":1984,"name":"VariableDeclarationStatement","src":"35186:11:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"<","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1982,"type":"uint8","value":"i"},"id":1985,"name":"Identifier","src":"35199:1:14"},{"attributes":{"argumentTypes":null,"hexvalue":"34","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 4","value":"4"},"id":1986,"name":"Literal","src":"35203:1:14"}],"id":1987,"name":"BinaryOperation","src":"35199:5:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"++","prefix":false,"type":"uint8"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1982,"type":"uint8","value":"i"},"id":1988,"name":"Identifier","src":"35206:1:14"}],"id":1989,"name":"UnaryOperation","src":"35206:3:14"}],"id":1990,"name":"ExpressionStatement","src":"35206:3:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"*=","type":"uint32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1974,"type":"uint32","value":"m"},"id":1991,"name":"Identifier","src":"35225:1:14"},{"attributes":{"argumentTypes":null,"hexvalue":"323536","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 256","value":"256"},"id":1992,"name":"Literal","src":"35230:3:14"}],"id":1993,"name":"Assignment","src":"35225:8:14"}],"id":1994,"name":"ExpressionStatement","src":"35225:8:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"=","type":"uint32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1978,"type":"uint32","value":"b"},"id":1995,"name":"Identifier","src":"35247:1:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"uint32","type_conversion":true},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"type":"type(uint32)","value":"uint32"},"id":1996,"name":"ElementaryTypeNameExpression","src":"35251:6:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"type":"bytes1"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1956,"type":"bytes memory","value":"_bts"},"id":1997,"name":"Identifier","src":"35259:4:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1958,"type":"uint256","value":"_from"},"id":1998,"name":"Identifier","src":"35264:5:14"},{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1982,"type":"uint8","value":"i"},"id":1999,"name":"Identifier","src":"35272:1:14"}],"id":2000,"name":"BinaryOperation","src":"35264:9:14"}],"id":2001,"name":"IndexAccess","src":"35259:15:14"}],"id":2002,"name":"FunctionCall","src":"35251:24:14"}],"id":2003,"name":"Assignment","src":"35247:28:14"}],"id":2004,"name":"ExpressionStatement","src":"35247:28:14"},{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+=","type":"uint32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1974,"type":"uint32","value":"m"},"id":2005,"name":"Identifier","src":"35289:1:14"},{"attributes":{"argumentTypes":null,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"type":"uint32"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1978,"type":"uint32","value":"b"},"id":2006,"name":"Identifier","src":"35295:1:14"}],"id":2007,"name":"TupleExpression","src":"35294:3:14"}],"id":2008,"name":"Assignment","src":"35289:8:14"}],"id":2009,"name":"ExpressionStatement","src":"35289:8:14"}],"id":2010,"name":"Block","src":"35211:97:14"}],"id":2011,"name":"ForStatement","src":"35181:127:14"},{"attributes":{"functionReturnParameters":1962},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":1974,"type":"uint32","value":"m"},"id":2012,"name":"Identifier","src":"35325:1:14"}],"id":2013,"name":"Return","src":"35318:8:14"}],"id":2014,"name":"Block","src":"35058:275:14"}],"id":2015,"name":"FunctionDefinition","src":"34980:353:14"},{"attributes":{"constant":true,"documentation":"@dev This function slices a uint\n @param _bts some bytes\n @param _from a start position","implemented":true,"isConstructor":false,"modifiers":[null],"name":"_sliceUint","payable":false,"scope":2042,"stateMutability":"pure","superFunction":null,"visibility":"private"},"children":[{"children":[{"attributes":{"constant":false,"name":"_bts","scope":2041,"stateVariable":false,"storageLocation":"default","type":"bytes","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"bytes","type":"bytes"},"id":2016,"name":"ElementaryTypeName","src":"35706:5:14"}],"id":2017,"name":"VariableDeclaration","src":"35706:10:14"},{"attributes":{"constant":false,"name":"_from","scope":2041,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2018,"name":"ElementaryTypeName","src":"35718:4:14"}],"id":2019,"name":"VariableDeclaration","src":"35718:10:14"}],"id":2020,"name":"ParameterList","src":"35705:24:14"},{"children":[{"attributes":{"constant":false,"name":"","scope":2041,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2021,"name":"ElementaryTypeName","src":"35752:4:14"}],"id":2022,"name":"VariableDeclaration","src":"35752:4:14"}],"id":2023,"name":"ParameterList","src":"35751:6:14"},{"children":[{"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"isStructConstructorCall":false,"lValueRequested":false,"names":[null],"type":"tuple()","type_conversion":false},"children":[{"attributes":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_294d2bd5b6fb7e8eb608d7ff076f4babdc08155a7a6671f4f35801fb90c8bda4","typeString":"literal_string \"slicing out of range\""}],"overloadedDeclarations":[6502,6503],"referencedDeclaration":6503,"type":"function (bool,string memory) pure","value":"require"},"id":2024,"name":"Identifier","src":"35768:7:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":">=","type":"bool"},"children":[{"attributes":{"argumentTypes":null,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"member_name":"length","referencedDeclaration":null,"type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2017,"type":"bytes memory","value":"_bts"},"id":2025,"name":"Identifier","src":"35776:4:14"}],"id":2026,"name":"MemberAccess","src":"35776:11:14"},{"attributes":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"operator":"+","type":"uint256"},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2019,"type":"uint256","value":"_from"},"id":2027,"name":"Identifier","src":"35791:5:14"},{"attributes":{"argumentTypes":null,"hexvalue":"3332","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"number","type":"int_const 32","value":"32"},"id":2028,"name":"Literal","src":"35799:2:14"}],"id":2029,"name":"BinaryOperation","src":"35791:10:14"}],"id":2030,"name":"BinaryOperation","src":"35776:25:14"},{"attributes":{"argumentTypes":null,"hexvalue":"736c6963696e67206f7574206f662072616e6765","isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"subdenomination":null,"token":"string","type":"literal_string \"slicing out of range\"","value":"slicing out of range"},"id":2031,"name":"Literal","src":"35803:22:14"}],"id":2032,"name":"FunctionCall","src":"35768:58:14"}],"id":2033,"name":"ExpressionStatement","src":"35768:58:14"},{"attributes":{"assignments":[null],"initialValue":null},"children":[{"attributes":{"constant":false,"name":"x","scope":2041,"stateVariable":false,"storageLocation":"default","type":"uint256","value":null,"visibility":"internal"},"children":[{"attributes":{"name":"uint","type":"uint256"},"id":2034,"name":"ElementaryTypeName","src":"35837:4:14"}],"id":2035,"name":"VariableDeclaration","src":"35837:6:14"}],"id":2036,"name":"VariableDeclarationStatement","src":"35837:6:14"},{"attributes":{"externalReferences":[{"_bts":{"declaration":2017,"isOffset":false,"isSlot":false,"src":"35891:4:14","valueSize":1}},{"_from":{"declaration":2019,"isOffset":false,"isSlot":false,"src":"35907:5:14","valueSize":1}},{"x":{"declaration":2035,"isOffset":false,"isSlot":false,"src":"35876:1:14","valueSize":1}}],"operations":"{\n x := mload(add(_bts, add(0x20, _from)))\n}"},"children":[],"id":2037,"name":"InlineAssembly","src":"35853:88:14"},{"attributes":{"functionReturnParameters":2023},"children":[{"attributes":{"argumentTypes":null,"overloadedDeclarations":[null],"referencedDeclaration":2035,"type":"uint256","value":"x"},"id":2038,"name":"Identifier","src":"35942:1:14"}],"id":2039,"name":"Return","src":"35935:8:14"}],"id":2040,"name":"Block","src":"35758:192:14"}],"id":2041,"name":"FunctionDefinition","src":"35686:264:14"}],"id":2042,"name":"ContractDefinition","src":"24944:11009:14"}],"id":2043,"name":"SourceUnit","src":"757:35197:14"}}},"version":"0.4.25+commit.59dbf8f1.Linux.g++"} \ No newline at end of file diff --git a/contracts/internals/controller.sol b/contracts/internals/controller.sol index 077f3956..8da8cb24 100644 --- a/contracts/internals/controller.sol +++ b/contracts/internals/controller.sol @@ -19,6 +19,7 @@ pragma solidity ^0.4.25; import "./ownable.sol"; +import "./claimable.sol"; /// @title The IController interface provides access to the isController check. interface IController { @@ -31,7 +32,7 @@ interface IController { /// @dev Owner can change the Admins /// @dev Admins and can the Controllers /// @dev Controllers are used by the application. -contract Controller is IController, Ownable { +contract Controller is IController, Ownable, Claimable { event AddedController(address _sender, address _controller); event RemovedController(address _sender, address _controller); @@ -146,4 +147,9 @@ contract Controller is IController, Ownable { _controllerCount--; emit RemovedController(msg.sender, _account); } + + //// @notice Withdraw tokens from the smart contract to the specified account. + function claim(address _to, address _asset, uint _amount) external onlyOwner { + _claim(_to, _asset, _amount); + } } diff --git a/contracts/internals/tokenWhitelist.sol b/contracts/internals/tokenWhitelist.sol index 19352ed6..a1dbb225 100644 --- a/contracts/internals/tokenWhitelist.sol +++ b/contracts/internals/tokenWhitelist.sol @@ -20,6 +20,7 @@ pragma solidity ^0.4.25; import "./ownable.sol"; import "./controllable.sol"; +import "./claimable.sol"; import "../externals/strings.sol"; import "../externals/SafeMath.sol"; @@ -34,7 +35,7 @@ interface ITokenWhitelist { /// @title TokenWhitelist stores a list of tokens used by the Consumer Contract Wallet, the Oracle, the TKN Holder and the TKN Licence Contract -contract TokenWhitelist is ENSResolvable, Controllable, Ownable { +contract TokenWhitelist is ENSResolvable, Controllable, Ownable, Claimable { using strings for *; using SafeMath for uint256; @@ -148,6 +149,11 @@ contract TokenWhitelist is ENSResolvable, Controllable, Ownable { emit UpdatedTokenRate(msg.sender, _token, _rate); } + //// @notice Withdraw tokens from the smart contract to the specified account. + function claim(address _to, address _asset, uint _amount) external onlyOwner { + _claim(_to, _asset, _amount); + } + /// @notice This returns all of the fields for a given token /// @param _a is the address of a given token /// @return string of the token's symbol diff --git a/pkg/bindings/internals/controller.go b/pkg/bindings/internals/controller.go index 1b649c78..9beba8b1 100644 --- a/pkg/bindings/internals/controller.go +++ b/pkg/bindings/internals/controller.go @@ -28,10 +28,10 @@ var ( ) // ControllerABI is the input ABI used to generate the binding from. -const ControllerABI = "[{\"constant\":true,\"inputs\":[],\"name\":\"controllerCount\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"removeAdmin\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isTransferable\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"isAdmin\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"adminCount\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"addAdmin\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"addController\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_account\",\"type\":\"address\"},{\"name\":\"_transferable\",\"type\":\"bool\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"isController\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"removeController\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"_ownerAddress_\",\"type\":\"address\"},{\"name\":\"_transferable_\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_sender\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_controller\",\"type\":\"address\"}],\"name\":\"AddedController\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_sender\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_controller\",\"type\":\"address\"}],\"name\":\"RemovedController\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_sender\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_admin\",\"type\":\"address\"}],\"name\":\"AddedAdmin\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_sender\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_admin\",\"type\":\"address\"}],\"name\":\"RemovedAdmin\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_to\",\"type\":\"address\"}],\"name\":\"TransferredOwnership\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_locked\",\"type\":\"address\"}],\"name\":\"LockedOwnership\",\"type\":\"event\"}]" +const ControllerABI = "[{\"constant\":true,\"inputs\":[],\"name\":\"controllerCount\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"removeAdmin\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isTransferable\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"isAdmin\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"adminCount\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"addAdmin\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_asset\",\"type\":\"address\"},{\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"claim\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"addController\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_account\",\"type\":\"address\"},{\"name\":\"_transferable\",\"type\":\"bool\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"isController\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"removeController\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"_ownerAddress_\",\"type\":\"address\"},{\"name\":\"_transferable_\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_sender\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_controller\",\"type\":\"address\"}],\"name\":\"AddedController\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_sender\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_controller\",\"type\":\"address\"}],\"name\":\"RemovedController\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_sender\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_admin\",\"type\":\"address\"}],\"name\":\"AddedAdmin\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_sender\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_admin\",\"type\":\"address\"}],\"name\":\"RemovedAdmin\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_asset\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"Claimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_to\",\"type\":\"address\"}],\"name\":\"TransferredOwnership\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_locked\",\"type\":\"address\"}],\"name\":\"LockedOwnership\",\"type\":\"event\"}]" // ControllerBin is the compiled bytecode used for deploying new contracts. -const ControllerBin = `608060405234801561001057600080fd5b5060405160408061103a83398101604052805160209091015160008054600160a060020a031916600160a060020a0384161760a060020a60ff02191674010000000000000000000000000000000000000000831515810291909117918290558391839160ff91041615156100bb5760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b6040805160008152600160a060020a038416602082015281517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea5929181900390910190a150505050610f28806101126000396000f3006080604052600436106100b95763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166315b9a8b881146100be5780631785f53c146100e55780632121dc751461010857806324d7806c146101315780632b7832b3146101525780637048027514610167578063715018a6146101885780638da5cb5b1461019d578063a7fc7a07146101ce578063b242e534146101ef578063b429afeb14610215578063f6a74ed714610236575b600080fd5b3480156100ca57600080fd5b506100d3610257565b60408051918252519081900360200190f35b3480156100f157600080fd5b50610106600160a060020a036004351661025d565b005b34801561011457600080fd5b5061011d6102b6565b604080519115158252519081900360200190f35b34801561013d57600080fd5b5061011d600160a060020a03600435166102d7565b34801561015e57600080fd5b506100d36102f5565b34801561017357600080fd5b50610106600160a060020a03600435166102fb565b34801561019457600080fd5b50610106610351565b3480156101a957600080fd5b506101b261046c565b60408051600160a060020a039092168252519081900360200190f35b3480156101da57600080fd5b50610106600160a060020a036004351661047b565b3480156101fb57600080fd5b50610106600160a060020a036004351660243515156104e3565b34801561022157600080fd5b5061011d600160a060020a0360043516610722565b34801561024257600080fd5b50610106600160a060020a0360043516610740565b60045490565b610266336107a8565b15156102aa576040805160e560020a62461bcd0281526020600482015260166024820152600080516020610edd833981519152604482015290519081900360640190fd5b6102b3816107bc565b50565b60005474010000000000000000000000000000000000000000900460ff1690565b600160a060020a031660009081526001602052604090205460ff1690565b60025490565b610304336107a8565b1515610348576040805160e560020a62461bcd0281526020600482015260166024820152600080516020610edd833981519152604482015290519081900360640190fd5b6102b381610897565b61035a336107a8565b151561039e576040805160e560020a62461bcd0281526020600482015260166024820152600080516020610edd833981519152604482015290519081900360640190fd5b60005474010000000000000000000000000000000000000000900460ff161515610412576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916815560408051828152602081019290925280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1565b600054600160a060020a031690565b610484336102d7565b15156104da576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e2061646d696e00000000000000000000604482015290519081900360640190fd5b6102b381610b38565b6104ec336107a8565b1515610530576040805160e560020a62461bcd0281526020600482015260166024820152600080516020610edd833981519152604482015290519081900360640190fd5b60005474010000000000000000000000000000000000000000900460ff1615156105a4576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b600160a060020a038216151561062a576040805160e560020a62461bcd02815260206004820152602360248201527f6f776e65722063616e6e6f742062652073657420746f207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6000805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000831515908102919091179091556106aa5760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b60005460408051600160a060020a039283168152918416602083015280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1506000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a031660009081526003602052604090205460ff1690565b610749336102d7565b151561079f576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e2061646d696e00000000000000000000604482015290519081900360640190fd5b6102b381610ddc565b600054600160a060020a0390811691161490565b600160a060020a03811660009081526001602052604090205460ff16151561082e576040805160e560020a62461bcd02815260206004820181905260248201527f70726f7669646564206163636f756e74206973206e6f7420616e2061646d696e604482015290519081900360640190fd5b600160a060020a038116600081815260016020908152604091829020805460ff191690556002805460001901905581513381529081019290925280517f787a2e12f4a55b658b8f573c32432ee11a5e8b51677d1e1e937aaf6a0bb5776e9281900390910190a150565b600160a060020a03811660009081526001602052604090205460ff161561092d576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320616c726561647920616e206160448201527f646d696e00000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a03811660009081526003602052604090205460ff16156109c4576040805160e560020a62461bcd02815260206004820152602860248201527f70726f7669646564206163636f756e7420697320616c7265616479206120636f60448201527f6e74726f6c6c6572000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6109cd816107a8565b15610a48576040805160e560020a62461bcd02815260206004820152602560248201527f70726f7669646564206163636f756e7420697320616c7265616479207468652060448201527f6f776e6572000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0381161515610acd576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260016020818152604092839020805460ff1916831790556002805490920190915581513381529081019290925280517fc58b647b8ba5a8cab2f11f32673636cc1061324240972ed05e8cc005b81a4b7a9281900390910190a150565b600160a060020a03811660009081526001602052604090205460ff1615610bce576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320616c726561647920616e206160448201527f646d696e00000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a03811660009081526003602052604090205460ff1615610c65576040805160e560020a62461bcd02815260206004820152602860248201527f70726f7669646564206163636f756e7420697320616c7265616479206120636f60448201527f6e74726f6c6c6572000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b610c6e816107a8565b15610ce9576040805160e560020a62461bcd02815260206004820152602560248201527f70726f7669646564206163636f756e7420697320616c7265616479207468652060448201527f6f776e6572000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0381161515610d6e576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260036020908152604091829020805460ff1916600190811790915560048054909101905581513381529081019290925280517fb890d5abdcd5c2b61ce8bbc2cf6af9b6d7f7451830cbc85037cbdd182c86fe1d9281900390910190a150565b600160a060020a03811660009081526003602052604090205460ff161515610e73576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e74206973206e6f74206120636f6e74726f60448201527f6c6c657200000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260036020908152604091829020805460ff191690556004805460001901905581513381529081019290925280517fb6a283aaede08e15ef55c74e3014e30eb0c0040d4b156cccb77391268ea373949281900390910190a150560073656e646572206973206e6f7420616e206f776e657200000000000000000000a165627a7a72305820e3381d505607ee63056d5ba42a87e53a7b0dab423e773fa53f1e050ccb6949390029` +const ControllerBin = `608060405234801561001057600080fd5b5060405160408061128b83398101604052805160209091015160008054600160a060020a031916600160a060020a0384161760a060020a60ff02191674010000000000000000000000000000000000000000831515810291909117918290558391839160ff91041615156100bb5760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b6040805160008152600160a060020a038416602082015281517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea5929181900390910190a150505050611179806101126000396000f3006080604052600436106100c45763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166315b9a8b881146100c95780631785f53c146100f05780632121dc751461011357806324d7806c1461013c5780632b7832b31461015d5780637048027514610172578063715018a6146101935780638da5cb5b146101a8578063996cba68146101d9578063a7fc7a0714610203578063b242e53414610224578063b429afeb1461024a578063f6a74ed71461026b575b600080fd5b3480156100d557600080fd5b506100de61028c565b60408051918252519081900360200190f35b3480156100fc57600080fd5b50610111600160a060020a0360043516610292565b005b34801561011f57600080fd5b506101286102eb565b604080519115158252519081900360200190f35b34801561014857600080fd5b50610128600160a060020a036004351661030c565b34801561016957600080fd5b506100de61032a565b34801561017e57600080fd5b50610111600160a060020a0360043516610330565b34801561019f57600080fd5b50610111610386565b3480156101b457600080fd5b506101bd6104a1565b60408051600160a060020a039092168252519081900360200190f35b3480156101e557600080fd5b50610111600160a060020a03600435811690602435166044356104b0565b34801561020f57600080fd5b50610111600160a060020a036004351661050d565b34801561023057600080fd5b50610111600160a060020a03600435166024351515610575565b34801561025657600080fd5b50610128600160a060020a03600435166107b4565b34801561027757600080fd5b50610111600160a060020a03600435166107d2565b60045490565b61029b3361083a565b15156102df576040805160e560020a62461bcd028152602060048201526016602482015260008051602061112e833981519152604482015290519081900360640190fd5b6102e88161084e565b50565b60005474010000000000000000000000000000000000000000900460ff1690565b600160a060020a031660009081526001602052604090205460ff1690565b60025490565b6103393361083a565b151561037d576040805160e560020a62461bcd028152602060048201526016602482015260008051602061112e833981519152604482015290519081900360640190fd5b6102e881610929565b61038f3361083a565b15156103d3576040805160e560020a62461bcd028152602060048201526016602482015260008051602061112e833981519152604482015290519081900360640190fd5b60005474010000000000000000000000000000000000000000900460ff161515610447576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916815560408051828152602081019290925280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1565b600054600160a060020a031690565b6104b93361083a565b15156104fd576040805160e560020a62461bcd028152602060048201526016602482015260008051602061112e833981519152604482015290519081900360640190fd5b610508838383610bca565b505050565b6105163361030c565b151561056c576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e2061646d696e00000000000000000000604482015290519081900360640190fd5b6102e881610d89565b61057e3361083a565b15156105c2576040805160e560020a62461bcd028152602060048201526016602482015260008051602061112e833981519152604482015290519081900360640190fd5b60005474010000000000000000000000000000000000000000900460ff161515610636576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b600160a060020a03821615156106bc576040805160e560020a62461bcd02815260206004820152602360248201527f6f776e65722063616e6e6f742062652073657420746f207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6000805474ff00000000000000000000000000000000000000001916740100000000000000000000000000000000000000008315159081029190911790915561073c5760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b60005460408051600160a060020a039283168152918416602083015280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1506000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a031660009081526003602052604090205460ff1690565b6107db3361030c565b1515610831576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e2061646d696e00000000000000000000604482015290519081900360640190fd5b6102e88161102d565b600054600160a060020a0390811691161490565b600160a060020a03811660009081526001602052604090205460ff1615156108c0576040805160e560020a62461bcd02815260206004820181905260248201527f70726f7669646564206163636f756e74206973206e6f7420616e2061646d696e604482015290519081900360640190fd5b600160a060020a038116600081815260016020908152604091829020805460ff191690556002805460001901905581513381529081019290925280517f787a2e12f4a55b658b8f573c32432ee11a5e8b51677d1e1e937aaf6a0bb5776e9281900390910190a150565b600160a060020a03811660009081526001602052604090205460ff16156109bf576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320616c726561647920616e206160448201527f646d696e00000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a03811660009081526003602052604090205460ff1615610a56576040805160e560020a62461bcd02815260206004820152602860248201527f70726f7669646564206163636f756e7420697320616c7265616479206120636f60448201527f6e74726f6c6c6572000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b610a5f8161083a565b15610ada576040805160e560020a62461bcd02815260206004820152602560248201527f70726f7669646564206163636f756e7420697320616c7265616479207468652060448201527f6f776e6572000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0381161515610b5f576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260016020818152604092839020805460ff1916831790556002805490920190915581513381529081019290925280517fc58b647b8ba5a8cab2f11f32673636cc1061324240972ed05e8cc005b81a4b7a9281900390910190a150565b600160a060020a0382161515610c1657604051600160a060020a0384169082156108fc029083906000818181858888f19350505050158015610c10573d6000803e3d6000fd5b50610d3a565b81600160a060020a031663a9059cbb84836040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b158015610c9257600080fd5b505af1158015610ca6573d6000803e3d6000fd5b505050506040513d6020811015610cbc57600080fd5b50511515610d3a576040805160e560020a62461bcd02815260206004820152602560248201527f455243323020746f6b656e207472616e736665722077617320756e737563636560448201527f737366756c000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60408051600160a060020a0380861682528416602082015280820183905290517ff7a40077ff7a04c7e61f6f26fb13774259ddf1b6bce9ecf26a8276cdd39926839181900360600190a1505050565b600160a060020a03811660009081526001602052604090205460ff1615610e1f576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320616c726561647920616e206160448201527f646d696e00000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a03811660009081526003602052604090205460ff1615610eb6576040805160e560020a62461bcd02815260206004820152602860248201527f70726f7669646564206163636f756e7420697320616c7265616479206120636f60448201527f6e74726f6c6c6572000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b610ebf8161083a565b15610f3a576040805160e560020a62461bcd02815260206004820152602560248201527f70726f7669646564206163636f756e7420697320616c7265616479207468652060448201527f6f776e6572000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0381161515610fbf576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e7420697320746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260036020908152604091829020805460ff1916600190811790915560048054909101905581513381529081019290925280517fb890d5abdcd5c2b61ce8bbc2cf6af9b6d7f7451830cbc85037cbdd182c86fe1d9281900390910190a150565b600160a060020a03811660009081526003602052604090205460ff1615156110c4576040805160e560020a62461bcd028152602060048201526024808201527f70726f7669646564206163636f756e74206973206e6f74206120636f6e74726f60448201527f6c6c657200000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116600081815260036020908152604091829020805460ff191690556004805460001901905581513381529081019290925280517fb6a283aaede08e15ef55c74e3014e30eb0c0040d4b156cccb77391268ea373949281900390910190a150560073656e646572206973206e6f7420616e206f776e657200000000000000000000a165627a7a723058200e752e3a88decc3d8c5d0c377c032b4fe39f5eb66a5b9fe8ce60f184698d72480029` // DeployController deploys a new Ethereum contract, binding an instance of Controller to it. func DeployController(auth *bind.TransactOpts, backend bind.ContractBackend, _ownerAddress_ common.Address, _transferable_ bool) (common.Address, *types.Transaction, *Controller, error) { @@ -386,6 +386,27 @@ func (_Controller *ControllerTransactorSession) AddController(_account common.Ad return _Controller.Contract.AddController(&_Controller.TransactOpts, _account) } +// Claim is a paid mutator transaction binding the contract method 0x996cba68. +// +// Solidity: function claim(address _to, address _asset, uint256 _amount) returns() +func (_Controller *ControllerTransactor) Claim(opts *bind.TransactOpts, _to common.Address, _asset common.Address, _amount *big.Int) (*types.Transaction, error) { + return _Controller.contract.Transact(opts, "claim", _to, _asset, _amount) +} + +// Claim is a paid mutator transaction binding the contract method 0x996cba68. +// +// Solidity: function claim(address _to, address _asset, uint256 _amount) returns() +func (_Controller *ControllerSession) Claim(_to common.Address, _asset common.Address, _amount *big.Int) (*types.Transaction, error) { + return _Controller.Contract.Claim(&_Controller.TransactOpts, _to, _asset, _amount) +} + +// Claim is a paid mutator transaction binding the contract method 0x996cba68. +// +// Solidity: function claim(address _to, address _asset, uint256 _amount) returns() +func (_Controller *ControllerTransactorSession) Claim(_to common.Address, _asset common.Address, _amount *big.Int) (*types.Transaction, error) { + return _Controller.Contract.Claim(&_Controller.TransactOpts, _to, _asset, _amount) +} + // RemoveAdmin is a paid mutator transaction binding the contract method 0x1785f53c. // // Solidity: function removeAdmin(address _account) returns() @@ -716,6 +737,130 @@ func (_Controller *ControllerFilterer) WatchAddedController(opts *bind.WatchOpts }), nil } +// ControllerClaimedIterator is returned from FilterClaimed and is used to iterate over the raw logs and unpacked data for Claimed events raised by the Controller contract. +type ControllerClaimedIterator struct { + Event *ControllerClaimed // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ControllerClaimedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ControllerClaimed) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ControllerClaimed) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ControllerClaimedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ControllerClaimedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ControllerClaimed represents a Claimed event raised by the Controller contract. +type ControllerClaimed struct { + To common.Address + Asset common.Address + Amount *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterClaimed is a free log retrieval operation binding the contract event 0xf7a40077ff7a04c7e61f6f26fb13774259ddf1b6bce9ecf26a8276cdd3992683. +// +// Solidity: event Claimed(address _to, address _asset, uint256 _amount) +func (_Controller *ControllerFilterer) FilterClaimed(opts *bind.FilterOpts) (*ControllerClaimedIterator, error) { + + logs, sub, err := _Controller.contract.FilterLogs(opts, "Claimed") + if err != nil { + return nil, err + } + return &ControllerClaimedIterator{contract: _Controller.contract, event: "Claimed", logs: logs, sub: sub}, nil +} + +// WatchClaimed is a free log subscription operation binding the contract event 0xf7a40077ff7a04c7e61f6f26fb13774259ddf1b6bce9ecf26a8276cdd3992683. +// +// Solidity: event Claimed(address _to, address _asset, uint256 _amount) +func (_Controller *ControllerFilterer) WatchClaimed(opts *bind.WatchOpts, sink chan<- *ControllerClaimed) (event.Subscription, error) { + + logs, sub, err := _Controller.contract.WatchLogs(opts, "Claimed") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ControllerClaimed) + if err := _Controller.contract.UnpackLog(event, "Claimed", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + // ControllerLockedOwnershipIterator is returned from FilterLockedOwnership and is used to iterate over the raw logs and unpacked data for LockedOwnership events raised by the Controller contract. type ControllerLockedOwnershipIterator struct { Event *ControllerLockedOwnership // Event containing the contract specifics and raw log diff --git a/pkg/bindings/internals/tokenWhitelist.go b/pkg/bindings/internals/tokenWhitelist.go index d0432ffd..b679f97a 100644 --- a/pkg/bindings/internals/tokenWhitelist.go +++ b/pkg/bindings/internals/tokenWhitelist.go @@ -28,10 +28,10 @@ var ( ) // TokenWhitelistABI is the input ABI used to generate the binding from. -const TokenWhitelistABI = "[{\"constant\":true,\"inputs\":[{\"name\":\"_a\",\"type\":\"address\"}],\"name\":\"getTokenInfo\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"},{\"name\":\"\",\"type\":\"uint256\"},{\"name\":\"\",\"type\":\"uint256\"},{\"name\":\"\",\"type\":\"bool\"},{\"name\":\"\",\"type\":\"bool\"},{\"name\":\"\",\"type\":\"bool\"},{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isTransferable\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_tokens\",\"type\":\"address[]\"},{\"name\":\"_symbols\",\"type\":\"bytes32[]\"},{\"name\":\"_magnitude\",\"type\":\"uint256[]\"},{\"name\":\"_loadable\",\"type\":\"bool[]\"},{\"name\":\"_burnable\",\"type\":\"bool[]\"},{\"name\":\"_lastUpdate\",\"type\":\"uint256\"}],\"name\":\"addTokens\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getStablecoinInfo\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"},{\"name\":\"\",\"type\":\"uint256\"},{\"name\":\"\",\"type\":\"uint256\"},{\"name\":\"\",\"type\":\"bool\"},{\"name\":\"\",\"type\":\"bool\"},{\"name\":\"\",\"type\":\"bool\"},{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"tokenAddressArray\",\"outputs\":[{\"name\":\"\",\"type\":\"address[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_tokens\",\"type\":\"address[]\"}],\"name\":\"removeTokens\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"ensRegistry\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"oracleNode\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_account\",\"type\":\"address\"},{\"name\":\"_transferable\",\"type\":\"bool\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_token\",\"type\":\"address\"},{\"name\":\"_rate\",\"type\":\"uint256\"},{\"name\":\"_updateDate\",\"type\":\"uint256\"}],\"name\":\"updateTokenRate\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"controllerNode\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"stablecoin\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"_ens_\",\"type\":\"address\"},{\"name\":\"_oracleNameHash_\",\"type\":\"bytes32\"},{\"name\":\"_controllerNameHash_\",\"type\":\"bytes32\"},{\"name\":\"_owner_\",\"type\":\"address\"},{\"name\":\"_transferable_\",\"type\":\"bool\"},{\"name\":\"_stabelcoinAddress_\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_sender\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_token\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_rate\",\"type\":\"uint256\"}],\"name\":\"UpdatedTokenRate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_sender\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_token\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_symbol\",\"type\":\"string\"},{\"indexed\":false,\"name\":\"_magnitude\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"_loadable\",\"type\":\"bool\"},{\"indexed\":false,\"name\":\"_burnable\",\"type\":\"bool\"}],\"name\":\"AddedToken\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_sender\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"RemovedToken\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_to\",\"type\":\"address\"}],\"name\":\"TransferredOwnership\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_locked\",\"type\":\"address\"}],\"name\":\"LockedOwnership\",\"type\":\"event\"}]" +const TokenWhitelistABI = "[{\"constant\":true,\"inputs\":[{\"name\":\"_a\",\"type\":\"address\"}],\"name\":\"getTokenInfo\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"},{\"name\":\"\",\"type\":\"uint256\"},{\"name\":\"\",\"type\":\"uint256\"},{\"name\":\"\",\"type\":\"bool\"},{\"name\":\"\",\"type\":\"bool\"},{\"name\":\"\",\"type\":\"bool\"},{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isTransferable\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_tokens\",\"type\":\"address[]\"},{\"name\":\"_symbols\",\"type\":\"bytes32[]\"},{\"name\":\"_magnitude\",\"type\":\"uint256[]\"},{\"name\":\"_loadable\",\"type\":\"bool[]\"},{\"name\":\"_burnable\",\"type\":\"bool[]\"},{\"name\":\"_lastUpdate\",\"type\":\"uint256\"}],\"name\":\"addTokens\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getStablecoinInfo\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"},{\"name\":\"\",\"type\":\"uint256\"},{\"name\":\"\",\"type\":\"uint256\"},{\"name\":\"\",\"type\":\"bool\"},{\"name\":\"\",\"type\":\"bool\"},{\"name\":\"\",\"type\":\"bool\"},{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"tokenAddressArray\",\"outputs\":[{\"name\":\"\",\"type\":\"address[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_tokens\",\"type\":\"address[]\"}],\"name\":\"removeTokens\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"ensRegistry\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"oracleNode\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_asset\",\"type\":\"address\"},{\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"claim\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_account\",\"type\":\"address\"},{\"name\":\"_transferable\",\"type\":\"bool\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_token\",\"type\":\"address\"},{\"name\":\"_rate\",\"type\":\"uint256\"},{\"name\":\"_updateDate\",\"type\":\"uint256\"}],\"name\":\"updateTokenRate\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"controllerNode\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"stablecoin\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"_ens_\",\"type\":\"address\"},{\"name\":\"_oracleNameHash_\",\"type\":\"bytes32\"},{\"name\":\"_controllerNameHash_\",\"type\":\"bytes32\"},{\"name\":\"_owner_\",\"type\":\"address\"},{\"name\":\"_transferable_\",\"type\":\"bool\"},{\"name\":\"_stabelcoinAddress_\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_sender\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_token\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_rate\",\"type\":\"uint256\"}],\"name\":\"UpdatedTokenRate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_sender\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_token\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_symbol\",\"type\":\"string\"},{\"indexed\":false,\"name\":\"_magnitude\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"_loadable\",\"type\":\"bool\"},{\"indexed\":false,\"name\":\"_burnable\",\"type\":\"bool\"}],\"name\":\"AddedToken\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_sender\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"RemovedToken\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_asset\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"Claimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_to\",\"type\":\"address\"}],\"name\":\"TransferredOwnership\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_locked\",\"type\":\"address\"}],\"name\":\"LockedOwnership\",\"type\":\"event\"}]" // TokenWhitelistBin is the compiled bytecode used for deploying new contracts. -const TokenWhitelistBin = `608060405234801561001057600080fd5b5060405160c08061189f83398101604090815281516020830151918301516060840151608085015160a09095015160018054600160a060020a03808716600160a060020a03199283161792839055600080548316938216939093179092556002859055600380548915157401000000000000000000000000000000000000000090810260a060020a60ff0219958816929094169190911793909316919091179081905594969394929392849184910460ff1615156101055760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b6040805160008152600160a060020a038416602082015281517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea5929181900390910190a15050600794909455505060068054600160a060020a031916600160a060020a03909316929092179091555061171a9050806101856000396000f3006080604052600436106100cf5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631f69565f81146100d45780632121dc751461019f57806334c73edc146101c85780633efec5e91461021d578063443dd2a4146102325780636c3824ef14610297578063715018a6146102b75780637d73b231146102cc57806380cc0dda146102fd5780638da5cb5b14610324578063b242e53414610339578063d545782e1461035f578063e2b4ce9714610386578063e9cbd8221461039b575b600080fd5b3480156100e057600080fd5b506100f5600160a060020a03600435166103b0565b6040805160208082018990529181018790528515156060820152841515608082015283151560a082015260c0810183905260e08082528951908201528851909182916101008301918b019080838360005b8381101561015e578181015183820152602001610146565b50505050905090810190601f16801561018b5780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b3480156101ab57600080fd5b506101b46104ac565b604080519115158252519081900360200190f35b3480156101d457600080fd5b5061021b602460048035828101929082013591813580830192908201359160443580830192908201359160643580830192908201359160843591820191013560a4356104ce565b005b34801561022957600080fd5b506100f5610965565b34801561023e57600080fd5b50610247610a61565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561028357818101518382015260200161026b565b505050509050019250505060405180910390f35b3480156102a357600080fd5b5061021b6004803560248101910135610ac3565b3480156102c357600080fd5b5061021b610d62565b3480156102d857600080fd5b506102e1610e8f565b60408051600160a060020a039092168252519081900360200190f35b34801561030957600080fd5b50610312610e9e565b60408051918252519081900360200190f35b34801561033057600080fd5b506102e1610ea4565b34801561034557600080fd5b5061021b600160a060020a03600435166024351515610eb3565b34801561036b57600080fd5b5061021b600160a060020a0360043516602435604435611104565b34801561039257600080fd5b50610312611266565b3480156103a757600080fd5b506102e161126c565b600160a060020a0381166000908152600460208181526040808420600180820154600280840154600385015497850154855487516101009682161587026000190190911693909304601f81018990048902840189019097528683526060999889988998899889988998919788979296929560ff808216969382048116956201000090920416939289919083018282801561048b5780601f106104605761010080835404028352916020019161048b565b820191906000526020600020905b81548152906001019060200180831161046e57829003601f168201915b50505050509650975097509750975097509750975050919395979092949650565b60035474010000000000000000000000000000000000000000900460ff165b90565b600060606104db3361127b565b1515610531576040805160e560020a62461bcd02815260206004820152601a60248201527f73656e646572206973206e6f74206120636f6e74726f6c6c6572000000000000604482015290519081900360640190fd5b8b8a14801561053f57508b88145b801561054a57508b86145b801561055557508b86145b15156105ab576040805160e560020a62461bcd02815260206004820152601e60248201527f706172616d65746572206c656e6774687320646f206e6f74206d617463680000604482015290519081900360640190fd5b600091505b8b82101561095657600460008e8e858181106105c857fe5b60209081029290920135600160a060020a03168352508101919091526040016000206003015460ff1615610646576040805160e560020a62461bcd02815260206004820152601760248201527f746f6b656e20616c726561647920617661696c61626c65000000000000000000604482015290519081900360640190fd5b61066c6106678c8c8581811061065857fe5b6020029190910135905061132d565b611359565b905060e0604051908101604052808281526020018a8a85818110151561068e57fe5b9050602002013581526020016000815260200160011515815260200188888581811015156106b857fe5b602090810292909201351515835250018686858181106106d457fe5b60209081029290920135151583525001849052600460008f8f868181106106f757fe5b90506020020135600160a060020a0316600160a060020a0316600160a060020a0316815260200190815260200160002060008201518160000190805190602001906107439291906115cf565b5060208201516001820155604082015160028201556060820151600382018054608085015160a08601511515620100000262ff0000199115156101000261ff001995151560ff199094169390931794909416919091171691909117905560c09091015160049091015560058d8d848181106107ba57fe5b8354600181018555600094855260209485902001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0395909202939093013593909316929092179055507f1802e89da3f6ef84e024e37454c226b1e13bf846ce71cd2a1d24faef9cbf779b338e8e8581811061083157fe5b90506020020135600160a060020a0316838c8c87818110151561085057fe5b905060200201358b8b88818110151561086557fe5b9050602002013515158a8a89818110151561087c57fe5b9050602002013515156040518087600160a060020a0316600160a060020a0316815260200186600160a060020a0316600160a060020a03168152602001806020018581526020018415151515815260200183151515158152602001828103825286818151815260200191508051906020019080838360005b8381101561090c5781810151838201526020016108f4565b50505050905090810190601f1680156109395780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390a16001909101906105b0565b50505050505050505050505050565b600654600160a060020a03166000908152600460208181526040808420600180820154600280840154600385015497850154855487516101009682161587026000190190911693909304601f81018990048902840189019097528683526060999889988998899889988998919788979296929560ff8082169693820481169562010000909204169392899190830182828015610a425780601f10610a1757610100808354040283529160200191610a42565b820191906000526020600020905b815481529060010190602001808311610a2557829003601f168201915b5050505050965097509750975097509750975097505090919293949596565b60606005805480602002602001604051908101604052809291908181526020018280548015610ab957602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610a9b575b5050505050905090565b6000806000610ad13361127b565b1515610b27576040805160e560020a62461bcd02815260206004820152601a60248201527f73656e646572206973206e6f74206120636f6e74726f6c6c6572000000000000604482015290519081900360640190fd5b600092505b83831015610d5b5760046000868686818110610b4457fe5b60209081029290920135600160a060020a03168352508101919091526040016000206003015460ff161515610bc3576040805160e560020a62461bcd02815260206004820152601660248201527f746f6b656e206973206e6f7420617661696c61626c6500000000000000000000604482015290519081900360640190fd5b848484818110610bcf57fe5b60209081029290920135600160a060020a03166000818152600490935260408320909450919050610c00828261164d565b506000600182018190556002820181905560038201805462ffffff19169055600490910181905590505b600554610c3e90600163ffffffff6113b316565b811015610cf95781600160a060020a0316600582815481101515610c5e57fe5b600091825260209091200154600160a060020a03161415610cf15760058054610c8e90600163ffffffff6113b316565b81548110610c9857fe5b60009182526020909120015460058054600160a060020a039092169183908110610cbe57fe5b9060005260206000200160006101000a815481600160a060020a030219169083600160a060020a03160217905550610cf9565b600101610c2a565b6005805490610d0c906000198301611694565b5060408051338152600160a060020a038416602082015281517f703f7e3f084d5b8dcc12fddcfd9a70d65b6b21ec7659e4608dbaf4419ede3ad0929181900390910190a1600190920191610b2c565b5050505050565b610d6b336113ca565b1515610dc1576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e206f776e657200000000000000000000604482015290519081900360640190fd5b60035474010000000000000000000000000000000000000000900460ff161515610e35576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b6003805473ffffffffffffffffffffffffffffffffffffffff19169055604080516000808252602082015281517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea5929181900390910190a1565b600154600160a060020a031690565b60075490565b600354600160a060020a031690565b610ebc336113ca565b1515610f12576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e206f776e657200000000000000000000604482015290519081900360640190fd5b60035474010000000000000000000000000000000000000000900460ff161515610f86576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b600160a060020a038216151561100c576040805160e560020a62461bcd02815260206004820152602360248201527f6f776e65722063616e6e6f742062652073657420746f207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6003805474ff00000000000000000000000000000000000000001916740100000000000000000000000000000000000000008315159081029190911790915561108c5760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b60035460408051600160a060020a039283168152918416602083015280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1506003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60006111116007546113de565b905061111c3361127b565b8061112f575033600160a060020a038216145b1515611185576040805160e560020a62461bcd02815260206004820152601b60248201527f656974686572206f7261636c65206f7220636f6e74726f6c6c65720000000000604482015290519081900360640190fd5b600160a060020a03841660009081526004602052604090206003015460ff1615156111fa576040805160e560020a62461bcd02815260206004820152601660248201527f746f6b656e206973206e6f7420617661696c61626c6500000000000000000000604482015290519081900360640190fd5b600160a060020a03841660008181526004602081815260409283902060028101889055909101859055815133815290810192909252818101859052517fdb3a4cfb4cd8ac94343ff7440cee8d05ade309056203f0e53ca49b6db8197c7d9181900360600190a150505050565b60025490565b600654600160a060020a031690565b60006112886002546113de565b600160a060020a031663b429afeb836040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b1580156112fb57600080fd5b505af115801561130f573d6000803e3d6000fd5b505050506040513d602081101561132557600080fd5b505192915050565b6113356116bd565b6040516020810160405282815280602083015250611352826114d5565b8152919050565b606080600083600001516040519080825280601f01601f191660200182016040528015611390578160200160208202803883390190505b5091506020820190506113ac818560200151866000015161158b565b5092915050565b600080838311156113c357600080fd5b5050900390565b600354600160a060020a0390811691161490565b60008054604080517f0178b8bf000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691630178b8bf9160248082019260209290919082900301818787803b15801561144557600080fd5b505af1158015611459573d6000803e3d6000fd5b505050506040513d602081101561146f57600080fd5b5051604080517f3b3b57de000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691633b3b57de916024808201926020929091908290030181600087803b1580156112fb57600080fd5b6000808215156114e85760009150611585565b6fffffffffffffffffffffffffffffffff8316151561151b57601001700100000000000000000000000000000000830492505b67ffffffffffffffff8316151561153e5760080168010000000000000000830492505b63ffffffff8316151561155957600401640100000000830492505b61ffff831615156115705760020162010000830492505b60ff8316151561157e576001015b8060200391505b50919050565b60005b602082106115b0578251845260209384019390920191601f199091019061158e565b50905182516020929092036101000a6000190180199091169116179052565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061161057805160ff191683800117855561163d565b8280016001018555821561163d579182015b8281111561163d578251825591602001919060010190611622565b506116499291506116d4565b5090565b50805460018160011615610100020316600290046000825580601f106116735750611691565b601f01602090049060005260206000209081019061169191906116d4565b50565b8154818355818111156116b8576000838152602090206116b89181019083016116d4565b505050565b604080518082019091526000808252602082015290565b6104cb91905b8082111561164957600081556001016116da5600a165627a7a7230582093b6ea30833eac9793938fe8dab81d00e6ef1dbb9489c89e10258ba8847c4c870029` +const TokenWhitelistBin = `608060405234801561001057600080fd5b5060405160c080611ab283398101604090815281516020830151918301516060840151608085015160a09095015160018054600160a060020a03808716600160a060020a03199283161792839055600080548316938216939093179092556002859055600380548915157401000000000000000000000000000000000000000090810260a060020a60ff0219958816929094169190911793909316919091179081905594969394929392849184910460ff1615156101055760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b6040805160008152600160a060020a038416602082015281517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea5929181900390910190a15050600794909455505060068054600160a060020a031916600160a060020a03909316929092179091555061192d9050806101856000396000f3006080604052600436106100c15763ffffffff60e060020a6000350416631f69565f81146100c65780632121dc751461019157806334c73edc146101ba5780633efec5e91461020f578063443dd2a4146102245780636c3824ef14610289578063715018a6146102a95780637d73b231146102be57806380cc0dda146102ef5780638da5cb5b14610316578063996cba681461032b578063b242e53414610355578063d545782e1461037b578063e2b4ce97146103a2578063e9cbd822146103b7575b600080fd5b3480156100d257600080fd5b506100e7600160a060020a03600435166103cc565b6040805160208082018990529181018790528515156060820152841515608082015283151560a082015260c0810183905260e08082528951908201528851909182916101008301918b019080838360005b83811015610150578181015183820152602001610138565b50505050905090810190601f16801561017d5780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b34801561019d57600080fd5b506101a66104c8565b604080519115158252519081900360200190f35b3480156101c657600080fd5b5061020d602460048035828101929082013591813580830192908201359160443580830192908201359160643580830192908201359160843591820191013560a4356104ea565b005b34801561021b57600080fd5b506100e7610981565b34801561023057600080fd5b50610239610a7d565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561027557818101518382015260200161025d565b505050509050019250505060405180910390f35b34801561029557600080fd5b5061020d6004803560248101910135610adf565b3480156102b557600080fd5b5061020d610d7e565b3480156102ca57600080fd5b506102d3610eab565b60408051600160a060020a039092168252519081900360200190f35b3480156102fb57600080fd5b50610304610eba565b60408051918252519081900360200190f35b34801561032257600080fd5b506102d3610ec0565b34801561033757600080fd5b5061020d600160a060020a0360043581169060243516604435610ecf565b34801561036157600080fd5b5061020d600160a060020a03600435166024351515610f3e565b34801561038757600080fd5b5061020d600160a060020a036004351660243560443561118f565b3480156103ae57600080fd5b506103046112f1565b3480156103c357600080fd5b506102d36112f7565b600160a060020a0381166000908152600460208181526040808420600180820154600280840154600385015497850154855487516101009682161587026000190190911693909304601f81018990048902840189019097528683526060999889988998899889988998919788979296929560ff80821696938204811695620100009092041693928991908301828280156104a75780601f1061047c576101008083540402835291602001916104a7565b820191906000526020600020905b81548152906001019060200180831161048a57829003601f168201915b50505050509650975097509750975097509750975050919395979092949650565b60035474010000000000000000000000000000000000000000900460ff165b90565b600060606104f733611306565b151561054d576040805160e560020a62461bcd02815260206004820152601a60248201527f73656e646572206973206e6f74206120636f6e74726f6c6c6572000000000000604482015290519081900360640190fd5b8b8a14801561055b57508b88145b801561056657508b86145b801561057157508b86145b15156105c7576040805160e560020a62461bcd02815260206004820152601e60248201527f706172616d65746572206c656e6774687320646f206e6f74206d617463680000604482015290519081900360640190fd5b600091505b8b82101561097257600460008e8e858181106105e457fe5b60209081029290920135600160a060020a03168352508101919091526040016000206003015460ff1615610662576040805160e560020a62461bcd02815260206004820152601760248201527f746f6b656e20616c726561647920617661696c61626c65000000000000000000604482015290519081900360640190fd5b6106886106838c8c8581811061067457fe5b6020029190910135905061139f565b6113cb565b905060e0604051908101604052808281526020018a8a8581811015156106aa57fe5b9050602002013581526020016000815260200160011515815260200188888581811015156106d457fe5b602090810292909201351515835250018686858181106106f057fe5b60209081029290920135151583525001849052600460008f8f8681811061071357fe5b90506020020135600160a060020a0316600160a060020a0316600160a060020a03168152602001908152602001600020600082015181600001908051906020019061075f9291906117e7565b5060208201516001820155604082015160028201556060820151600382018054608085015160a08601511515620100000262ff0000199115156101000261ff001995151560ff199094169390931794909416919091171691909117905560c09091015160049091015560058d8d848181106107d657fe5b8354600181018555600094855260209485902001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0395909202939093013593909316929092179055507f1802e89da3f6ef84e024e37454c226b1e13bf846ce71cd2a1d24faef9cbf779b338e8e8581811061084d57fe5b90506020020135600160a060020a0316838c8c87818110151561086c57fe5b905060200201358b8b88818110151561088157fe5b9050602002013515158a8a89818110151561089857fe5b9050602002013515156040518087600160a060020a0316600160a060020a0316815260200186600160a060020a0316600160a060020a03168152602001806020018581526020018415151515815260200183151515158152602001828103825286818151815260200191508051906020019080838360005b83811015610928578181015183820152602001610910565b50505050905090810190601f1680156109555780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390a16001909101906105cc565b50505050505050505050505050565b600654600160a060020a03166000908152600460208181526040808420600180820154600280840154600385015497850154855487516101009682161587026000190190911693909304601f81018990048902840189019097528683526060999889988998899889988998919788979296929560ff8082169693820481169562010000909204169392899190830182828015610a5e5780601f10610a3357610100808354040283529160200191610a5e565b820191906000526020600020905b815481529060010190602001808311610a4157829003601f168201915b5050505050965097509750975097509750975097505090919293949596565b60606005805480602002602001604051908101604052809291908181526020018280548015610ad557602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610ab7575b5050505050905090565b6000806000610aed33611306565b1515610b43576040805160e560020a62461bcd02815260206004820152601a60248201527f73656e646572206973206e6f74206120636f6e74726f6c6c6572000000000000604482015290519081900360640190fd5b600092505b83831015610d775760046000868686818110610b6057fe5b60209081029290920135600160a060020a03168352508101919091526040016000206003015460ff161515610bdf576040805160e560020a62461bcd02815260206004820152601660248201527f746f6b656e206973206e6f7420617661696c61626c6500000000000000000000604482015290519081900360640190fd5b848484818110610beb57fe5b60209081029290920135600160a060020a03166000818152600490935260408320909450919050610c1c8282611865565b506000600182018190556002820181905560038201805462ffffff19169055600490910181905590505b600554610c5a90600163ffffffff61142516565b811015610d155781600160a060020a0316600582815481101515610c7a57fe5b600091825260209091200154600160a060020a03161415610d0d5760058054610caa90600163ffffffff61142516565b81548110610cb457fe5b60009182526020909120015460058054600160a060020a039092169183908110610cda57fe5b9060005260206000200160006101000a815481600160a060020a030219169083600160a060020a03160217905550610d15565b600101610c46565b6005805490610d289060001983016118ac565b5060408051338152600160a060020a038416602082015281517f703f7e3f084d5b8dcc12fddcfd9a70d65b6b21ec7659e4608dbaf4419ede3ad0929181900390910190a1600190920191610b48565b5050505050565b610d873361143c565b1515610ddd576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e206f776e657200000000000000000000604482015290519081900360640190fd5b60035474010000000000000000000000000000000000000000900460ff161515610e51576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b6003805473ffffffffffffffffffffffffffffffffffffffff19169055604080516000808252602082015281517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea5929181900390910190a1565b600154600160a060020a031690565b60075490565b600354600160a060020a031690565b610ed83361143c565b1515610f2e576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e206f776e657200000000000000000000604482015290519081900360640190fd5b610f39838383611450565b505050565b610f473361143c565b1515610f9d576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420616e206f776e657200000000000000000000604482015290519081900360640190fd5b60035474010000000000000000000000000000000000000000900460ff161515611011576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b600160a060020a0382161515611097576040805160e560020a62461bcd02815260206004820152602360248201527f6f776e65722063616e6e6f742062652073657420746f207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6003805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000831515908102919091179091556111175760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b60035460408051600160a060020a039283168152918416602083015280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1506003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600061119c6007546115f6565b90506111a733611306565b806111ba575033600160a060020a038216145b1515611210576040805160e560020a62461bcd02815260206004820152601b60248201527f656974686572206f7261636c65206f7220636f6e74726f6c6c65720000000000604482015290519081900360640190fd5b600160a060020a03841660009081526004602052604090206003015460ff161515611285576040805160e560020a62461bcd02815260206004820152601660248201527f746f6b656e206973206e6f7420617661696c61626c6500000000000000000000604482015290519081900360640190fd5b600160a060020a03841660008181526004602081815260409283902060028101889055909101859055815133815290810192909252818101859052517fdb3a4cfb4cd8ac94343ff7440cee8d05ade309056203f0e53ca49b6db8197c7d9181900360600190a150505050565b60025490565b600654600160a060020a031690565b60006113136002546115f6565b600160a060020a031663b429afeb836040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b15801561136d57600080fd5b505af1158015611381573d6000803e3d6000fd5b505050506040513d602081101561139757600080fd5b505192915050565b6113a76118d0565b60405160208101604052828152806020830152506113c4826116ed565b8152919050565b606080600083600001516040519080825280601f01601f191660200182016040528015611402578160200160208202803883390190505b50915060208201905061141e81856020015186600001516117a3565b5092915050565b6000808383111561143557600080fd5b5050900390565b600354600160a060020a0390811691161490565b600160a060020a038216151561149c57604051600160a060020a0384169082156108fc029083906000818181858888f19350505050158015611496573d6000803e3d6000fd5b506115a7565b81600160a060020a031663a9059cbb84836040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b1580156114ff57600080fd5b505af1158015611513573d6000803e3d6000fd5b505050506040513d602081101561152957600080fd5b505115156115a7576040805160e560020a62461bcd02815260206004820152602560248201527f455243323020746f6b656e207472616e736665722077617320756e737563636560448201527f737366756c000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60408051600160a060020a0380861682528416602082015280820183905290517ff7a40077ff7a04c7e61f6f26fb13774259ddf1b6bce9ecf26a8276cdd39926839181900360600190a1505050565b60008054604080517f0178b8bf000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691630178b8bf9160248082019260209290919082900301818787803b15801561165d57600080fd5b505af1158015611671573d6000803e3d6000fd5b505050506040513d602081101561168757600080fd5b5051604080517f3b3b57de000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691633b3b57de916024808201926020929091908290030181600087803b15801561136d57600080fd5b600080821515611700576000915061179d565b6fffffffffffffffffffffffffffffffff8316151561173357601001700100000000000000000000000000000000830492505b67ffffffffffffffff831615156117565760080168010000000000000000830492505b63ffffffff8316151561177157600401640100000000830492505b61ffff831615156117885760020162010000830492505b60ff83161515611796576001015b8060200391505b50919050565b60005b602082106117c8578251845260209384019390920191601f19909101906117a6565b50905182516020929092036101000a6000190180199091169116179052565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061182857805160ff1916838001178555611855565b82800160010185558215611855579182015b8281111561185557825182559160200191906001019061183a565b506118619291506118e7565b5090565b50805460018160011615610100020316600290046000825580601f1061188b57506118a9565b601f0160209004906000526020600020908101906118a991906118e7565b50565b815481835581811115610f3957600083815260209020610f399181019083016118e7565b604080518082019091526000808252602082015290565b6104e791905b8082111561186157600081556001016118ed5600a165627a7a723058208c4be71ac085882be552fd06a3c105b468b8d2bbdf25c86681a98320fb418c500029` // DeployTokenWhitelist deploys a new Ethereum contract, binding an instance of TokenWhitelist to it. func DeployTokenWhitelist(auth *bind.TransactOpts, backend bind.ContractBackend, _ens_ common.Address, _oracleNameHash_ [32]byte, _controllerNameHash_ [32]byte, _owner_ common.Address, _transferable_ bool, _stabelcoinAddress_ common.Address) (common.Address, *types.Transaction, *TokenWhitelist, error) { @@ -471,6 +471,27 @@ func (_TokenWhitelist *TokenWhitelistTransactorSession) AddTokens(_tokens []comm return _TokenWhitelist.Contract.AddTokens(&_TokenWhitelist.TransactOpts, _tokens, _symbols, _magnitude, _loadable, _burnable, _lastUpdate) } +// Claim is a paid mutator transaction binding the contract method 0x996cba68. +// +// Solidity: function claim(address _to, address _asset, uint256 _amount) returns() +func (_TokenWhitelist *TokenWhitelistTransactor) Claim(opts *bind.TransactOpts, _to common.Address, _asset common.Address, _amount *big.Int) (*types.Transaction, error) { + return _TokenWhitelist.contract.Transact(opts, "claim", _to, _asset, _amount) +} + +// Claim is a paid mutator transaction binding the contract method 0x996cba68. +// +// Solidity: function claim(address _to, address _asset, uint256 _amount) returns() +func (_TokenWhitelist *TokenWhitelistSession) Claim(_to common.Address, _asset common.Address, _amount *big.Int) (*types.Transaction, error) { + return _TokenWhitelist.Contract.Claim(&_TokenWhitelist.TransactOpts, _to, _asset, _amount) +} + +// Claim is a paid mutator transaction binding the contract method 0x996cba68. +// +// Solidity: function claim(address _to, address _asset, uint256 _amount) returns() +func (_TokenWhitelist *TokenWhitelistTransactorSession) Claim(_to common.Address, _asset common.Address, _amount *big.Int) (*types.Transaction, error) { + return _TokenWhitelist.Contract.Claim(&_TokenWhitelist.TransactOpts, _to, _asset, _amount) +} + // RemoveTokens is a paid mutator transaction binding the contract method 0x6c3824ef. // // Solidity: function removeTokens(address[] _tokens) returns() @@ -682,6 +703,130 @@ func (_TokenWhitelist *TokenWhitelistFilterer) WatchAddedToken(opts *bind.WatchO }), nil } +// TokenWhitelistClaimedIterator is returned from FilterClaimed and is used to iterate over the raw logs and unpacked data for Claimed events raised by the TokenWhitelist contract. +type TokenWhitelistClaimedIterator struct { + Event *TokenWhitelistClaimed // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *TokenWhitelistClaimedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(TokenWhitelistClaimed) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(TokenWhitelistClaimed) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *TokenWhitelistClaimedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *TokenWhitelistClaimedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// TokenWhitelistClaimed represents a Claimed event raised by the TokenWhitelist contract. +type TokenWhitelistClaimed struct { + To common.Address + Asset common.Address + Amount *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterClaimed is a free log retrieval operation binding the contract event 0xf7a40077ff7a04c7e61f6f26fb13774259ddf1b6bce9ecf26a8276cdd3992683. +// +// Solidity: event Claimed(address _to, address _asset, uint256 _amount) +func (_TokenWhitelist *TokenWhitelistFilterer) FilterClaimed(opts *bind.FilterOpts) (*TokenWhitelistClaimedIterator, error) { + + logs, sub, err := _TokenWhitelist.contract.FilterLogs(opts, "Claimed") + if err != nil { + return nil, err + } + return &TokenWhitelistClaimedIterator{contract: _TokenWhitelist.contract, event: "Claimed", logs: logs, sub: sub}, nil +} + +// WatchClaimed is a free log subscription operation binding the contract event 0xf7a40077ff7a04c7e61f6f26fb13774259ddf1b6bce9ecf26a8276cdd3992683. +// +// Solidity: event Claimed(address _to, address _asset, uint256 _amount) +func (_TokenWhitelist *TokenWhitelistFilterer) WatchClaimed(opts *bind.WatchOpts, sink chan<- *TokenWhitelistClaimed) (event.Subscription, error) { + + logs, sub, err := _TokenWhitelist.contract.WatchLogs(opts, "Claimed") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(TokenWhitelistClaimed) + if err := _TokenWhitelist.contract.UnpackLog(event, "Claimed", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + // TokenWhitelistLockedOwnershipIterator is returned from FilterLockedOwnership and is used to iterate over the raw logs and unpacked data for LockedOwnership events raised by the TokenWhitelist contract. type TokenWhitelistLockedOwnershipIterator struct { Event *TokenWhitelistLockedOwnership // Event containing the contract specifics and raw log diff --git a/pkg/bindings/mocks/tokenWhitelistableExporter.go b/pkg/bindings/mocks/tokenWhitelistableExporter.go index 6732ac30..9b08cefe 100644 --- a/pkg/bindings/mocks/tokenWhitelistableExporter.go +++ b/pkg/bindings/mocks/tokenWhitelistableExporter.go @@ -31,7 +31,7 @@ var ( const TokenWhitelistableExporterABI = "[{\"constant\":true,\"inputs\":[{\"name\":\"_a\",\"type\":\"address\"}],\"name\":\"isTokenBurnable\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_a\",\"type\":\"address\"}],\"name\":\"isTokenLoadable\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_a\",\"type\":\"address\"}],\"name\":\"getTokenInfo\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"},{\"name\":\"\",\"type\":\"uint256\"},{\"name\":\"\",\"type\":\"uint256\"},{\"name\":\"\",\"type\":\"bool\"},{\"name\":\"\",\"type\":\"bool\"},{\"name\":\"\",\"type\":\"bool\"},{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_a\",\"type\":\"address\"}],\"name\":\"isTokenAvailable\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getStablecoinInfo\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"},{\"name\":\"\",\"type\":\"uint256\"},{\"name\":\"\",\"type\":\"uint256\"},{\"name\":\"\",\"type\":\"bool\"},{\"name\":\"\",\"type\":\"bool\"},{\"name\":\"\",\"type\":\"bool\"},{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"tokenAddressArray\",\"outputs\":[{\"name\":\"\",\"type\":\"address[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"ensRegistry\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"tokenWhitelistNode\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_token\",\"type\":\"address\"},{\"name\":\"_rate\",\"type\":\"uint256\"},{\"name\":\"_updateDate\",\"type\":\"uint256\"}],\"name\":\"updateTokenRate\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"_ens_\",\"type\":\"address\"},{\"name\":\"_tokenWhitelistName_\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"}]" // TokenWhitelistableExporterBin is the compiled bytecode used for deploying new contracts. -const TokenWhitelistableExporterBin = `608060405234801561001057600080fd5b5060405160408061092783398101604052805160209091015160018054600160a060020a03938416600160a060020a031991821617918290556000805490911691909316179091556002556108bd8061006a6000396000f30060806040526004361061007f5763ffffffff60e060020a6000350416630cde34b0811461008457806317e73794146100b95780631f69565f146100da5780632ff0fcaa146101a55780633efec5e9146101c6578063443dd2a4146101db5780637d73b23114610240578063877337b014610271578063d545782e14610298575b600080fd5b34801561009057600080fd5b506100a5600160a060020a03600435166102c1565b604080519115158252519081900360200190f35b3480156100c557600080fd5b506100a5600160a060020a03600435166102d2565b3480156100e657600080fd5b506100fb600160a060020a03600435166102dd565b6040805160208082018990529181018790528515156060820152841515608082015283151560a082015260c0810183905260e08082528951908201528851909182916101008301918b019080838360005b8381101561016457818101518382015260200161014c565b50505050905090810190601f1680156101915780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b3480156101b157600080fd5b506100a5600160a060020a0360043516610308565b3480156101d257600080fd5b506100fb610313565b3480156101e757600080fd5b506101f061033c565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561022c578181015183820152602001610214565b505050509050019250505060405180910390f35b34801561024c57600080fd5b5061025561034b565b60408051600160a060020a039092168252519081900360200190f35b34801561027d57600080fd5b5061028661035a565b60408051918252519081900360200190f35b3480156102a457600080fd5b506102bf600160a060020a0360043516602435604435610360565b005b60006102cc82610370565b92915050565b60006102cc82610389565b60606000806000806000806102f1886103a3565b959e949d50929b5090995097509550909350915050565b60006102cc826104d5565b60606000806000806000806103266104ef565b959d949c50929a50909850965094509092509050565b60606103466105fc565b905090565b600154600160a060020a031690565b60025490565b61036b8383836106d6565b505050565b60008061037c836103a3565b5098975050505050505050565b600080610395836103a3565b509098975050505050505050565b60606000806000806000806103b9600254610768565b600160a060020a0316631f69565f896040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b15801561041357600080fd5b505af1158015610427573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260e081101561045057600080fd5b81019080805164010000000081111561046857600080fd5b8201602081018481111561047b57600080fd5b815164010000000081118282018710171561049557600080fd5b5050602082015160408301516060840151608085015160a086015160c090960151949e50929c50909a509850965090945092505050919395979092949650565b6000806104e1836103a3565b509198975050505050505050565b6060600080600080600080610505600254610768565b600160a060020a0316633efec5e96040518163ffffffff1660e060020a028152600401600060405180830381600087803b15801561054257600080fd5b505af1158015610556573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260e081101561057f57600080fd5b81019080805164010000000081111561059757600080fd5b820160208101848111156105aa57600080fd5b81516401000000008111828201871017156105c457600080fd5b5050602082015160408301516060840151608085015160a086015160c090960151949f939e50919c509a509850919650945092505050565b6060610609600254610768565b600160a060020a031663443dd2a46040518163ffffffff1660e060020a028152600401600060405180830381600087803b15801561064657600080fd5b505af115801561065a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561068357600080fd5b81019080805164010000000081111561069b57600080fd5b820160208101848111156106ae57600080fd5b81518560208202830111640100000000821117156106cb57600080fd5b509094505050505090565b6106e1600254610768565b600160a060020a031663d545782e8484846040518463ffffffff1660e060020a0281526004018084600160a060020a0316600160a060020a031681526020018381526020018281526020019350505050600060405180830381600087803b15801561074b57600080fd5b505af115801561075f573d6000803e3d6000fd5b50505050505050565b60008054604080517f0178b8bf000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691630178b8bf9160248082019260209290919082900301818787803b1580156107cf57600080fd5b505af11580156107e3573d6000803e3d6000fd5b505050506040513d60208110156107f957600080fd5b5051604080517f3b3b57de000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691633b3b57de916024808201926020929091908290030181600087803b15801561085f57600080fd5b505af1158015610873573d6000803e3d6000fd5b505050506040513d602081101561088957600080fd5b5051929150505600a165627a7a723058208a18600ae5d0d7811638873b67f7313459bd93d21a9d3593358def452be97a250029` +const TokenWhitelistableExporterBin = `608060405234801561001057600080fd5b5060405160408061092783398101604052805160209091015160018054600160a060020a03938416600160a060020a031991821617918290556000805490911691909316179091556002556108bd8061006a6000396000f30060806040526004361061007f5763ffffffff60e060020a6000350416630cde34b0811461008457806317e73794146100b95780631f69565f146100da5780632ff0fcaa146101a55780633efec5e9146101c6578063443dd2a4146101db5780637d73b23114610240578063877337b014610271578063d545782e14610298575b600080fd5b34801561009057600080fd5b506100a5600160a060020a03600435166102c1565b604080519115158252519081900360200190f35b3480156100c557600080fd5b506100a5600160a060020a03600435166102d2565b3480156100e657600080fd5b506100fb600160a060020a03600435166102dd565b6040805160208082018990529181018790528515156060820152841515608082015283151560a082015260c0810183905260e08082528951908201528851909182916101008301918b019080838360005b8381101561016457818101518382015260200161014c565b50505050905090810190601f1680156101915780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b3480156101b157600080fd5b506100a5600160a060020a0360043516610308565b3480156101d257600080fd5b506100fb610313565b3480156101e757600080fd5b506101f061033c565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561022c578181015183820152602001610214565b505050509050019250505060405180910390f35b34801561024c57600080fd5b5061025561034b565b60408051600160a060020a039092168252519081900360200190f35b34801561027d57600080fd5b5061028661035a565b60408051918252519081900360200190f35b3480156102a457600080fd5b506102bf600160a060020a0360043516602435604435610360565b005b60006102cc82610370565b92915050565b60006102cc82610389565b60606000806000806000806102f1886103a3565b959e949d50929b5090995097509550909350915050565b60006102cc826104d5565b60606000806000806000806103266104ef565b959d949c50929a50909850965094509092509050565b60606103466105fc565b905090565b600154600160a060020a031690565b60025490565b61036b8383836106d6565b505050565b60008061037c836103a3565b5098975050505050505050565b600080610395836103a3565b509098975050505050505050565b60606000806000806000806103b9600254610768565b600160a060020a0316631f69565f896040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b15801561041357600080fd5b505af1158015610427573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260e081101561045057600080fd5b81019080805164010000000081111561046857600080fd5b8201602081018481111561047b57600080fd5b815164010000000081118282018710171561049557600080fd5b5050602082015160408301516060840151608085015160a086015160c090960151949e50929c50909a509850965090945092505050919395979092949650565b6000806104e1836103a3565b509198975050505050505050565b6060600080600080600080610505600254610768565b600160a060020a0316633efec5e96040518163ffffffff1660e060020a028152600401600060405180830381600087803b15801561054257600080fd5b505af1158015610556573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260e081101561057f57600080fd5b81019080805164010000000081111561059757600080fd5b820160208101848111156105aa57600080fd5b81516401000000008111828201871017156105c457600080fd5b5050602082015160408301516060840151608085015160a086015160c090960151949f939e50919c509a509850919650945092505050565b6060610609600254610768565b600160a060020a031663443dd2a46040518163ffffffff1660e060020a028152600401600060405180830381600087803b15801561064657600080fd5b505af115801561065a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561068357600080fd5b81019080805164010000000081111561069b57600080fd5b820160208101848111156106ae57600080fd5b81518560208202830111640100000000821117156106cb57600080fd5b509094505050505090565b6106e1600254610768565b600160a060020a031663d545782e8484846040518463ffffffff1660e060020a0281526004018084600160a060020a0316600160a060020a031681526020018381526020018281526020019350505050600060405180830381600087803b15801561074b57600080fd5b505af115801561075f573d6000803e3d6000fd5b50505050505050565b60008054604080517f0178b8bf000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691630178b8bf9160248082019260209290919082900301818787803b1580156107cf57600080fd5b505af11580156107e3573d6000803e3d6000fd5b505050506040513d60208110156107f957600080fd5b5051604080517f3b3b57de000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691633b3b57de916024808201926020929091908290030181600087803b15801561085f57600080fd5b505af1158015610873573d6000803e3d6000fd5b505050506040513d602081101561088957600080fd5b5051929150505600a165627a7a72305820a200f44d223d63a0cda8b6ce77784eb74e9f901368a95cd7177c0a97137c32930029` // DeployTokenWhitelistableExporter deploys a new Ethereum contract, binding an instance of TokenWhitelistableExporter to it. func DeployTokenWhitelistableExporter(auth *bind.TransactOpts, backend bind.ContractBackend, _ens_ common.Address, _tokenWhitelistName_ [32]byte) (common.Address, *types.Transaction, *TokenWhitelistableExporter, error) { diff --git a/pkg/bindings/oracle.go b/pkg/bindings/oracle.go index 5870f3ac..703e5908 100644 --- a/pkg/bindings/oracle.go +++ b/pkg/bindings/oracle.go @@ -31,7 +31,7 @@ var ( const OracleABI = "[{\"constant\":false,\"inputs\":[{\"name\":\"myid\",\"type\":\"bytes32\"},{\"name\":\"result\",\"type\":\"string\"}],\"name\":\"__callback\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_queryID\",\"type\":\"bytes32\"},{\"name\":\"_result\",\"type\":\"string\"},{\"name\":\"_proof\",\"type\":\"bytes\"}],\"name\":\"__callback\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"cryptoCompareAPIPublicKey\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"ensRegistry\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"tokenWhitelistNode\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_gasLimit\",\"type\":\"uint256\"},{\"name\":\"_tokenList\",\"type\":\"address[]\"}],\"name\":\"updateTokenRatesList\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_asset\",\"type\":\"address\"},{\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"claim\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_gasLimit\",\"type\":\"uint256\"}],\"name\":\"updateTokenRates\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_publicKey\",\"type\":\"bytes\"}],\"name\":\"updateCryptoCompareAPIPublicKey\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_gasPrice\",\"type\":\"uint256\"}],\"name\":\"setCustomGasPrice\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"controllerNode\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"_resolver_\",\"type\":\"address\"},{\"name\":\"_ens_\",\"type\":\"address\"},{\"name\":\"_controllerNameHash_\",\"type\":\"bytes32\"},{\"name\":\"_tokenWhitelistNameHash_\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_sender\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_gasPrice\",\"type\":\"uint256\"}],\"name\":\"SetGasPrice\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_symbol\",\"type\":\"string\"}],\"name\":\"RequestedUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_reason\",\"type\":\"string\"}],\"name\":\"FailedUpdateRequest\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_publicKey\",\"type\":\"bytes\"},{\"indexed\":false,\"name\":\"_result\",\"type\":\"string\"}],\"name\":\"VerifiedProof\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_sender\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_publicKey\",\"type\":\"bytes\"}],\"name\":\"SetCryptoComparePublicKey\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_asset\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"Claimed\",\"type\":\"event\"}]" // OracleBin is the compiled bytecode used for deploying new contracts. -const OracleBin = `60806040523480156200001157600080fd5b5060405160808062005c9e83398101604081815282516020808501518386015160609687015160018054600160a060020a03808616600160a060020a031992831617928390556000805490921692169190911790556007829055600881905596860185528486527fa0f4f688350018ad1b9785991c0bde5f704b005dc79972b114dbed4a615a98379286019283527f10bfc647ebe5a320daa28771dce6a2d104f5efa2e4a85ba3760b76d46f8571ca958501959095529194919392620000da91600991620009bb565b5060028054600160a060020a031916600160a060020a0386161790556200010f6402540be4006401000000006200014d810204565b620001437ff0000000000000000000000000000000000000000000000000000000000000006401000000006200038f810204565b5050505062000a5d565b600254600160a060020a031615806200018357506002546200018190600160a060020a0316640100000000620005d6810204565b155b15620001a0576200019e6000640100000000620005da810204565b505b600260009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156200020d57600080fd5b505af115801562000222573d6000803e3d6000fd5b505050506040513d60208110156200023957600080fd5b5051600354600160a060020a039081169116146200030c57600260009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015620002be57600080fd5b505af1158015620002d3573d6000803e3d6000fd5b505050506040513d6020811015620002ea57600080fd5b505160038054600160a060020a031916600160a060020a039092169190911790555b600354604080517fca6ad1e4000000000000000000000000000000000000000000000000000000008152600481018490529051600160a060020a039092169163ca6ad1e49160248082019260009290919082900301818387803b1580156200037357600080fd5b505af115801562000388573d6000803e3d6000fd5b5050505050565b600254600160a060020a03161580620003c55750600254620003c390600160a060020a0316640100000000620005d6810204565b155b15620003e257620003e06000640100000000620005da810204565b505b600260009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156200044f57600080fd5b505af115801562000464573d6000803e3d6000fd5b505050506040513d60208110156200047b57600080fd5b5051600354600160a060020a039081169116146200054e57600260009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156200050057600080fd5b505af115801562000515573d6000803e3d6000fd5b505050506040513d60208110156200052c57600080fd5b505160038054600160a060020a031916600160a060020a039092169190911790555b600354604080517f688dcfd70000000000000000000000000000000000000000000000000000000081527fff00000000000000000000000000000000000000000000000000000000000000841660048201529051600160a060020a039092169163688dcfd79160248082019260009290919082900301818387803b1580156200037357600080fd5b3b90565b6000620005ef640100000000620005f5810204565b92915050565b60008062000620731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed640100000000620005d6810204565b11156200069e5760028054600160a060020a031916731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed17905560408051808201909152600b81527f6574685f6d61696e6e657400000000000000000000000000000000000000000060208201526200069590640100000000620009a2810204565b5060016200099f565b6000620006c873c03a2615d5efaf5f49f60b7bb6583eaec212fdf1640100000000620005d6810204565b11156200073d5760028054600160a060020a03191673c03a2615d5efaf5f49f60b7bb6583eaec212fdf117905560408051808201909152600c81527f6574685f726f707374656e33000000000000000000000000000000000000000060208201526200069590640100000000620009a2810204565b60006200076773b7a07bcf2ba2f2703b24c0691b5278999c59ac7e640100000000620005d6810204565b1115620007dc5760028054600160a060020a03191673b7a07bcf2ba2f2703b24c0691b5278999c59ac7e17905560408051808201909152600981527f6574685f6b6f76616e000000000000000000000000000000000000000000000060208201526200069590640100000000620009a2810204565b60006200080673146500cfd35b22e4a392fe0adc06de1a1368ed48640100000000620005d6810204565b11156200087b5760028054600160a060020a03191673146500cfd35b22e4a392fe0adc06de1a1368ed4817905560408051808201909152600b81527f6574685f72696e6b65627900000000000000000000000000000000000000000060208201526200069590640100000000620009a2810204565b6000620008a5736f485c8bf6fc43ea212e93bbf8ce046c7f1cb475640100000000620005d6810204565b1115620008db575060028054600160a060020a031916736f485c8bf6fc43ea212e93bbf8ce046c7f1cb47517905560016200099f565b6000620009057320e12a1f859b3feae5fb2a0a32c18f5a65555bbf640100000000620005d6810204565b11156200093b575060028054600160a060020a0319167320e12a1f859b3feae5fb2a0a32c18f5a65555bbf17905560016200099f565b6000620009657351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa640100000000620005d6810204565b11156200099b575060028054600160a060020a0319167351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa17905560016200099f565b5060005b90565b8051620009b7906004906020840190620009bb565b5050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620009fe57805160ff191683800117855562000a2e565b8280016001018555821562000a2e579182015b8281111562000a2e57825182559160200191906001019062000a11565b5062000a3c92915062000a40565b5090565b6200099f91905b8082111562000a3c576000815560010162000a47565b6152318062000a6d6000396000f3006080604052600436106100955763ffffffff60e060020a60003504166327dc297e811461009a57806338bbfa50146100fa5780633acbe96e146101965780637d73b23114610220578063877337b014610251578063937f54a414610278578063996cba681461028f578063b598f882146102b9578063c2c3d054146102c4578063ca6ad1e4146102e4578063e2b4ce97146102fc575b600080fd5b3480156100a657600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526100f89583359536956044949193909101919081908401838280828437509497506103119650505050505050565b005b34801561010657600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526100f895833595369560449491939091019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437509497506103319650505050505050565b3480156101a257600080fd5b506101ab610569565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101e55781810151838201526020016101cd565b50505050905090810190601f1680156102125780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561022c57600080fd5b506102356105f7565b60408051600160a060020a039092168252519081900360200190f35b34801561025d57600080fd5b50610266610607565b60408051918252519081900360200190f35b6100f860048035906024803590810191013561060d565b34801561029b57600080fd5b506100f8600160a060020a0360043581169060243516604435610696565b6100f86004356106ee565b3480156102d057600080fd5b506100f86004803560248101910135610747565b3480156102f057600080fd5b506100f86004356107ff565b34801561030857600080fd5b50610266610893565b60408051600081526020810190915261032d9083908390610331565b5050565b6000806000806000806000610344610899565b600160a060020a031633146103a3576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f74206f7261636c697a6500000000000000000000604482015290519081900360640190fd5b60008a8152600a6020526040902054600160a060020a03169650861515610414576040805160e560020a62461bcd02815260206004820152601c60248201527f71756572794944206d61746368657320746f2061646472657373203000000000604482015290519081900360640190fd5b61041d87610a8e565b9a505050985050505085151561047d576040805160e560020a62461bcd02815260206004820152601760248201527f746f6b656e206d75737420626520617661696c61626c65000000000000000000604482015290519081900360640190fd5b60098054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152610515938d938d9383018282801561050a5780601f106104df5761010080835404028352916020019161050a565b820191906000526020600020905b8154815290600101906020018083116104ed57829003601f168201915b505050505088610bc0565b9094509250831561055d5761053161052c8a61121d565b61159b565b60008b8152600a602052604090208054600160a060020a0319169055915082905061055d8783836115ae565b50505050505050505050565b6009805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156105ef5780601f106105c4576101008083540402835291602001916105ef565b820191906000526020600020905b8154815290600101906020018083116105d257829003601f168201915b505050505081565b600154600160a060020a03165b90565b60085490565b61061633611640565b151561065a576040805160e560020a62461bcd02815260206004820152601a60248201526000805160206151a6833981519152604482015290519081900360640190fd5b61069183838380806020026020016040519081016040528093929190818152602001838360200280828437506116d9945050505050565b505050565b61069f33611640565b15156106e3576040805160e560020a62461bcd02815260206004820152601a60248201526000805160206151a6833981519152604482015290519081900360640190fd5b610691838383611a70565b6106f733611640565b151561073b576040805160e560020a62461bcd02815260206004820152601a60248201526000805160206151a6833981519152604482015290519081900360640190fd5b61074481611c16565b50565b61075033611640565b1515610794576040805160e560020a62461bcd02815260206004820152601a60248201526000805160206151a6833981519152604482015290519081900360640190fd5b6107a060098383615048565b506040805133808252602082018381529282018490527fc6b0860ba9f580e9c5b6ba4e0954fe82827096a99d92e8c2d73009539ea8d9fa9290918591859190606082018484808284376040519201829003965090945050505050a15050565b61080833611640565b151561084c576040805160e560020a62461bcd02815260206004820152601a60248201526000805160206151a6833981519152604482015290519081900360640190fd5b61085581611f3e565b604080513381526020810183905281517ffbd406825addb09beef160afc17bb80ba28df4a3533dcd23592b82658a1c5ab4929181900390910190a150565b60075490565b600254600090600160a060020a031615806108c657506002546108c490600160a060020a031661212d565b155b156108d7576108d56000612131565b505b600260009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561092a57600080fd5b505af115801561093e573d6000803e3d6000fd5b505050506040513d602081101561095457600080fd5b5051600354600160a060020a03908116911614610a0a57600260009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156109be57600080fd5b505af11580156109d2573d6000803e3d6000fd5b505050506040513d60208110156109e857600080fd5b505160038054600160a060020a031916600160a060020a039092169190911790555b600360009054906101000a9004600160a060020a0316600160a060020a031663c281d19e6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610a5d57600080fd5b505af1158015610a71573d6000803e3d6000fd5b505050506040513d6020811015610a8757600080fd5b5051905090565b6060600080600080600080610aa460085461213b565b600160a060020a0316631f69565f896040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b158015610afe57600080fd5b505af1158015610b12573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260e0811015610b3b57600080fd5b810190808051640100000000811115610b5357600080fd5b82016020810184811115610b6657600080fd5b8151640100000000811182820187101715610b8057600080fd5b5050602082015160408301516060840151608085015160a086015160c090960151949e50929c50909a509850965090945092505050919395979092949650565b6000806060806060600080606060a58b51141515610c28576040805160e560020a62461bcd02815260206004820152601460248201527f696e76616c69642070726f6f66206c656e677468000000000000000000000000604482015290519081900360640190fd5b60418b6001815181101515610c3957fe5b016020015160f860020a9081900481020414610c9f576040805160e560020a62461bcd02815260206004820152601860248201527f696e76616c6964207369676e6174757265206c656e6774680000000000000000604482015290519081900360640190fd5b60408051604180825260808201909252906020820161082080388339019050509550610cd18b60026041896000612232565b8b519096506060908c906044908110610ce657fe5b90602001015160f860020a900460f860020a0260f860020a90046101008d6041600201815181101515610d1557fe5b016020015160f860020a90819004810204020114610d7d576040805160e560020a62461bcd02815260206004820152601660248201527f696e76616c69642068656164657273206c656e67746800000000000000000000604482015290519081900360640190fd5b604080516060808252608082019092529060208201610c0080388339019050509450610daf8b60456060886000612232565b9450610dbc85878c612287565b1515610e12576040805160e560020a62461bcd02815260206004820152601160248201527f696e76616c6964207369676e6174757265000000000000000000000000000000604482015290519081900360640190fd5b604080516014808252818301909252906020820161028080388339019050509350610e4385600b6014876000612232565b9350610e4f848a6123a2565b9093509150821515610eab576040805160e560020a62461bcd02815260206004820152600c60248201527f696e76616c696420646174650000000000000000000000000000000000000000604482015290519081900360640190fd5b60408051602c80825260608201909252906020820161058080388339019050509050610edd856034602c846000612232565b9050610ee8816127e0565b6040518082805190602001908083835b60208310610f175780518252601f199092019160209182019101610ef8565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660028d6040516020018082805190602001908083835b60208310610f7d5780518252601f199092019160209182019101610f5e565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040526040518082805190602001908083835b60208310610fe05780518252601f199092019160209182019101610fc1565b51815160209384036101000a600019018019909216911617905260405191909301945091925050808303816000865af1158015611021573d6000803e3d6000fd5b5050506040513d602081101561103657600080fd5b50516040805160208181019390935281518082038401815290820191829052805190928291908401908083835b602083106110825780518252601f199092019160209182019101611063565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191614151561110a576040805160e560020a62461bcd02815260206004820152601860248201527f726573756c742068617368206e6f74206d61746368696e670000000000000000604482015290519081900360640190fd5b7f0902fdd015aa1e56f7e6026b69c0595e82155dcbd83a83a23b40f9fe96babbd98a8d604051808060200180602001838103835285818151815260200191508051906020019080838360005b8381101561116e578181015183820152602001611156565b50505050905090810190601f16801561119b5780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b838110156111ce5781810151838201526020016111b6565b50505050905090810190601f1680156111fb5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a15060019b909a5098505050505050505050565b60606000606061122b6150c6565b846040516020018082805190602001908083835b6020831061125e5780518252601f19909201916020918201910161123f565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040525192506008831180156112a65750601c8311155b15156112fc576040805160e560020a62461bcd02815260206004820152601260248201527f6d6973666f726d617474656420696e7075740000000000000000000000000000604482015290519081900360640190fd5b604080516007808252818301909252906020820160e080388339019050509150611392856040516020018082805190602001908083835b602083106113525780518252601f199092019160209182019101611333565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405260006007856000612232565b50604080517f7b22455448223a0000000000000000000000000000000000000000000000000081529051908190036007018120835190918491819060208401908083835b602083106113f55780518252601f1990920191602091820191016113d6565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191614151561147d576040805160e560020a62461bcd02815260206004820152600f60248201527f707265666978206d69736d617463680000000000000000000000000000000000604482015290519081900360640190fd5b611486856131f8565b90506114d66114c96040805190810160405280600181526020017f3a000000000000000000000000000000000000000000000000000000000000008152506131f8565b829063ffffffff61322116565b508060000151925061152c61151f6040805190810160405280600181526020017f7d000000000000000000000000000000000000000000000000000000000000008152506131f8565b829063ffffffff61323b16565b508051600019840114611589576040805160e560020a62461bcd02815260206004820152600f60248201527f6e6f74206a736f6e20666f726d61740000000000000000000000000000000000604482015290519081900360640190fd5b611592816132a4565b95945050505050565b60006115a88260126132f7565b92915050565b6115b960085461213b565b600160a060020a031663d545782e8484846040518463ffffffff1660e060020a0281526004018084600160a060020a0316600160a060020a031681526020018381526020018281526020019350505050600060405180830381600087803b15801561162357600080fd5b505af1158015611637573d6000803e3d6000fd5b50505050505050565b600061164d60075461213b565b600160a060020a031663b429afeb836040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b1580156116a757600080fd5b505af11580156116bb573d6000803e3d6000fd5b505050506040513d60208110156116d157600080fd5b505192915050565b6116e16150c6565b6116e96150c6565b6000606060006116f76150c6565b6000875160001415611756576040805160208082526010908201527f656d70747920746f6b656e206c697374000000000000000000000000000000008183015290516000805160206151c68339815191529181900360600190a1611a65565b30600160a060020a031631885161178a60408051908101604052806003815260200160ea60020a6215549302815250613ec2565b0211156117e4576040805160208082526014908201527f696e73756666696369656e742062616c616e63650000000000000000000000008183015290516000805160206151c68339815191529181900360600190a1611a65565b611849606060405190810160405280603281526020017f68747470733a2f2f6d696e2d6170692e63727970746f636f6d706172652e636f81526020017f6d2f646174612f70726963653f6673796d3d00000000000000000000000000008152506131f8565b96506118896040805190810160405280601481526020017f267473796d733d455448267369676e3d747275650000000000000000000000008152506131f8565b9550600094505b8751851015611a65576118b988868151811015156118aa57fe5b90602001906020020151610a8e565b505050955050509350821515611919576040805160e560020a62461bcd02815260206004820152601760248201527f746f6b656e206d75737420626520617661696c61626c65000000000000000000604482015290519081900360640190fd5b611922846131f8565b604080518082019091526003815260ea60020a621554930260208201529092506119749061196e8861196261195d8c8863ffffffff6140f816565b6131f8565b9063ffffffff6140f816565b8b61416f565b9050878581518110151561198457fe5b6020908102919091018101516000838152600a90925260409091208054600160a060020a031916600160a060020a039092169190911790557fd28a52bc81f387be057d69ee89db644f94b7064c4acec0d5bc33e201a2031c056119e6836132a4565b6040805160208082528351818301528351919283929083019185019080838360005b83811015611a20578181015183820152602001611a08565b50505050905090810190601f168015611a4d5780820380516001836020036101000a031916815260200191505b509250505060405180910390a1600190940193611890565b505050505050505050565b600160a060020a0382161515611abc57604051600160a060020a0384169082156108fc029083906000818181858888f19350505050158015611ab6573d6000803e3d6000fd5b50611bc7565b81600160a060020a031663a9059cbb84836040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b158015611b1f57600080fd5b505af1158015611b33573d6000803e3d6000fd5b505050506040513d6020811015611b4957600080fd5b50511515611bc7576040805160e560020a62461bcd02815260206004820152602560248201527f455243323020746f6b656e207472616e736665722077617320756e737563636560448201527f737366756c000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60408051600160a060020a0380861682528416602082015280820183905290517ff7a40077ff7a04c7e61f6f26fb13774259ddf1b6bce9ecf26a8276cdd39926839181900360600190a1505050565b6060611c206150c6565b611c286150c6565b60006060611c346150c6565b6000611c3e614572565b9650865160001415611c9d576040805160208082526009908201527f6e6f20746f6b656e7300000000000000000000000000000000000000000000008183015290516000805160206151c68339815191529181900360600190a1611f34565b30600160a060020a0316318751611cd160408051908101604052806003815260200160ea60020a6215549302815250613ec2565b021115611d2b576040805160208082526014908201527f696e73756666696369656e742062616c616e63650000000000000000000000008183015290516000805160206151c68339815191529181900360600190a1611f34565b611d90606060405190810160405280603281526020017f68747470733a2f2f6d696e2d6170692e63727970746f636f6d706172652e636f81526020017f6d2f646174612f70726963653f6673796d3d00000000000000000000000000008152506131f8565b9550611dd06040805190810160405280601481526020017f267473796d733d455448267369676e3d747275650000000000000000000000008152506131f8565b9450600093505b8651841015611f3457611df187858151811015156118aa57fe5b5050505050509250611e02836131f8565b604080518082019091526003815260ea60020a62155493026020820152909250611e4390611e3d8761196261195d8b8863ffffffff6140f816565b8a61416f565b90508684815181101515611e5357fe5b6020908102919091018101516000838152600a90925260409091208054600160a060020a031916600160a060020a039092169190911790557fd28a52bc81f387be057d69ee89db644f94b7064c4acec0d5bc33e201a2031c05611eb5836132a4565b6040805160208082528351818301528351919283929083019185019080838360005b83811015611eef578181015183820152602001611ed7565b50505050905090810190601f168015611f1c5780820380516001836020036101000a031916815260200191505b509250505060405180910390a1600190930192611dd7565b5050505050505050565b600254600160a060020a03161580611f685750600254611f6690600160a060020a031661212d565b155b15611f7957611f776000612131565b505b600260009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611fcc57600080fd5b505af1158015611fe0573d6000803e3d6000fd5b505050506040513d6020811015611ff657600080fd5b5051600354600160a060020a039081169116146120ac57600260009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561206057600080fd5b505af1158015612074573d6000803e3d6000fd5b505050506040513d602081101561208a57600080fd5b505160038054600160a060020a031916600160a060020a039092169190911790555b600354604080517fca6ad1e4000000000000000000000000000000000000000000000000000000008152600481018490529051600160a060020a039092169163ca6ad1e49160248082019260009290919082900301818387803b15801561211257600080fd5b505af1158015612126573d6000803e3d6000fd5b5050505050565b3b90565b60006115a861464c565b60008054604080517f0178b8bf000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691630178b8bf9160248082019260209290919082900301818787803b1580156121a257600080fd5b505af11580156121b6573d6000803e3d6000fd5b505050506040513d60208110156121cc57600080fd5b5051604080517f3b3b57de000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691633b3b57de916024808201926020929091908290030181600087803b1580156116a757600080fd5b6060600080600084870192508286511015151561224e57600080fd5b505060208087019084015b86886020010182101561227a57888201518682015260209182019101612259565b5093979650505050505050565b600080600061231f6002876040518082805190602001908083835b602083106122c15780518252601f1990920191602091820191016122a2565b51815160209384036101000a600019018019909216911617905260405191909301945091925050808303816000865af1158015612302573d6000803e3d6000fd5b5050506040513d602081101561231757600080fd5b505186614974565b925090508080156123985750836040518082805190602001908083835b6020831061235b5780518252601f19909201916020918201910161233c565b5181516020939093036101000a60001901801990911692169190911790526040519201829003909120600160a060020a0390811690861614925050505b9695505050505050565b6000806123ad6150c6565b6123b56150c6565b6123bd6150c6565b60008060008060008060008d6040516020018082805190602001908083835b602083106123fb5780518252601f1990920191602091820191016123dc565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405251601414151561243b57fe5b6124448e6131f8565b99506124846040805190810160405280600181526020017f3a000000000000000000000000000000000000000000000000000000000000008152506131f8565b98506124c46040805190810160405280600181526020017f20000000000000000000000000000000000000000000000000000000000000008152506131f8565b97506124e66124e16124dc8c8b63ffffffff61322116565b6132a4565b6149fc565b96506000871180156124f85750602087105b151561254e576040805160e560020a62461bcd02815260206004820152600960248201527f646179206572726f720000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6125696125646124dc8c8b63ffffffff61322116565b614a09565b60ff16955060008611801561257e5750600d86105b15156125d4576040805160e560020a62461bcd02815260206004820152600b60248201527f6d6f6e7468206572726f72000000000000000000000000000000000000000000604482015290519081900360640190fd5b6125ea6124e16124dc8c8b63ffffffff61322116565b94506107e1851180156125fe5750610bb885105b1515612654576040805160e560020a62461bcd02815260206004820152600a60248201527f79656172206572726f7200000000000000000000000000000000000000000000604482015290519081900360640190fd5b61266a6124e16124dc8c8c63ffffffff61322116565b9350601984106126c4576040805160e560020a62461bcd02815260206004820152600a60248201527f686f7572206572726f7200000000000000000000000000000000000000000000604482015290519081900360640190fd5b6126da6124e16124dc8c8c63ffffffff61322116565b9250603c8310612734576040805160e560020a62461bcd02815260206004820152600c60248201527f6d696e757465206572726f720000000000000000000000000000000000000000604482015290519081900360640190fd5b61274a6124e16124dc8c8c63ffffffff61322116565b9150603c82106127a4576040805160e560020a62461bcd02815260206004820152600c60248201527f7365636f6e64206572726f720000000000000000000000000000000000000000604482015290519081900360640190fd5b506402540be40084026305f5e100860201620f4240870201612710840201606483020181018c81119b5099505050505050505050509250929050565b60606000806000806000606060008060008a519450846040519080825280601f01601f191660200182016040528015612823578160200160208202803883390190505b509350600085118015612837575060048506155b151561288d576040805160e560020a62461bcd02815260206004820152601760248201527f696e76616c69642062617365363420656e636f64696e67000000000000000000604482015290519081900360640190fd5b604080517f3d00000000000000000000000000000000000000000000000000000000000000815290519081900360010190208b518c9060011988019081106128d157fe5b90602001015160f860020a900460f860020a026040516020018082600160f860020a031916600160f860020a03191681526001019150506040516020818303038152906040526040518082805190602001908083835b602083106129465780518252601f199092019160209182019101612927565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902060001916141561298857600285039450612a7f565b604080517f3d00000000000000000000000000000000000000000000000000000000000000815290519081900360010190208b518c9060001988019081106129cc57fe5b90602001015160f860020a900460f860020a026040516020018082600160f860020a031916600160f860020a03191681526001019150506040516020818303038152906040526040518082805190602001908083835b60208310612a415780518252601f199092019160209182019101612a22565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020600019161415612a7f576001850394505b505060048084040260005b81811015612de1576040805160a081018252607b815260006020820152600080516020615186833981519152918101919091526000805160206151e6833981519152606082015260008051602061516683398151915260808201528b5160018301928d918110612af657fe5b90602001015160f860020a900460f860020a0260f860020a9004815181101515612b1c57fe5b90602001015160f860020a900460f860020a02985060a060405190810160405280607b81526020016000815260200160008051602061518683398151915281526020016000805160206151e683398151915281526020016000805160206151668339815191528152508b82806001019350815181101515612b9957fe5b90602001015160f860020a900460f860020a0260f860020a9004815181101515612bbf57fe5b90602001015160f860020a900460f860020a02975060a060405190810160405280607b81526020016000815260200160008051602061518683398151915281526020016000805160206151e683398151915281526020016000805160206151668339815191528152508b82806001019350815181101515612c3c57fe5b90602001015160f860020a900460f860020a0260f860020a9004815181101515612c6257fe5b90602001015160f860020a900460f860020a02965060a060405190810160405280607b81526020016000815260200160008051602061518683398151915281526020016000805160206151e683398151915281526020016000805160206151668339815191528152508b82806001019350815181101515612cdf57fe5b90602001015160f860020a900460f860020a0260f860020a9004815181101515612d0557fe5b0160200151845160f860020a9182900490910296506001840193600160f860020a03198b81166004026010828d16041716918691908110612d4257fe5b906020010190600160f860020a031916908160001a905350835160018401936010600160f860020a03198b8116919091026004828c16041716918691908110612d8757fe5b906020010190600160f860020a031916908160001a90535083516001840193600160f860020a0319898116604002891716918691908110612dc457fe5b906020010190600160f860020a031916908160001a905350612a8a565b81850360021415612f73576040805160a081018252607b815260006020820152600080516020615186833981519152918101919091526000805160206151e6833981519152606082015260008051602061516683398151915260808201528b5160018301928d918110612e5057fe5b90602001015160f860020a900460f860020a0260f860020a9004815181101515612e7657fe5b90602001015160f860020a900460f860020a02985060a060405190810160405280607b81526020016000815260200160008051602061518683398151915281526020016000805160206151e683398151915281526020016000805160206151668339815191528152508b82806001019350815181101515612ef357fe5b90602001015160f860020a900460f860020a0260f860020a9004815181101515612f1957fe5b0160200151845160f860020a9182900490910298506001840193600160f860020a03198b81166004026010828d16041716918691908110612f5657fe5b906020010190600160f860020a031916908160001a9053506131e9565b818503600314156131e9576040805160a081018252607b815260006020820152600080516020615186833981519152918101919091526000805160206151e6833981519152606082015260008051602061516683398151915260808201528b5160018301928d918110612fe257fe5b90602001015160f860020a900460f860020a0260f860020a900481518110151561300857fe5b90602001015160f860020a900460f860020a02985060a060405190810160405280607b81526020016000815260200160008051602061518683398151915281526020016000805160206151e683398151915281526020016000805160206151668339815191528152508b8280600101935081518110151561308557fe5b90602001015160f860020a900460f860020a0260f860020a90048151811015156130ab57fe5b90602001015160f860020a900460f860020a02975060a060405190810160405280607b81526020016000815260200160008051602061518683398151915281526020016000805160206151e683398151915281526020016000805160206151668339815191528152508b8280600101935081518110151561312857fe5b90602001015160f860020a900460f860020a0260f860020a900481518110151561314e57fe5b0160200151845160f860020a9182900490910297506001840193600160f860020a03198b81166004026010828d1604171691869190811061318b57fe5b906020010190600160f860020a031916908160001a905350835160018401936010600160f860020a03198b8116919091026004828c160417169186919081106131d057fe5b906020010190600160f860020a031916908160001a9053505b50508152979650505050505050565b6132006150c6565b50604080518082019091528151815260208281019082018190525b50919050565b6132296150c6565b613234838383614e3c565b5092915050565b6132436150c6565b815183516000918291101561325a5784925061329c565b5050815183516020808601519085015191019190910390600190821461328a575082516020840151819020908220145b801561329857835185510385525b8492505b505092915050565b606080600083600001516040519080825280601f01601f1916602001820160405280156132db578160200160208202803883390190505b5091506020820190506132348185602001518660000151614ead565b60008281808080808080808080805b8b51811015613b73578b517f3000000000000000000000000000000000000000000000000000000000000000908d908390811061333f57fe5b90602001015160f860020a900460f860020a02600160f860020a031916101580156133b557508b517f3900000000000000000000000000000000000000000000000000000000000000908d908390811061339557fe5b90602001015160f860020a900460f860020a02600160f860020a03191611155b80156133bf575083155b1561348957841561342a576133db8a600a63ffffffff614ef116565b8c51909a5061341d906030908e90849081106133f357fe5b90602001015160f860020a900460f860020a0260f860020a9004038b614f2690919063ffffffff16565b9950600190970196613484565b6001955061343f8b600a63ffffffff614ef116565b8c51909b50613481906030908e908490811061345757fe5b90602001015160f860020a900460f860020a0260f860020a9004038c614f2690919063ffffffff16565b9a505b613b6b565b8b517f3000000000000000000000000000000000000000000000000000000000000000908d90839081106134b957fe5b90602001015160f860020a900460f860020a02600160f860020a0319161015801561352f57508b517f3900000000000000000000000000000000000000000000000000000000000000908d908390811061350f57fe5b90602001015160f860020a900460f860020a02600160f860020a03191611155b80156135385750835b156135975761354e89600a63ffffffff614ef116565b8c51909950613590906030908e908490811061356657fe5b90602001015160f860020a900460f860020a0260f860020a9004038a614f2690919063ffffffff16565b9850613b6b565b8b517f2e00000000000000000000000000000000000000000000000000000000000000908d90839081106135c757fe5b90602001015160f860020a900460f860020a02600160f860020a03191614156136f657851515613641576040805160e560020a62461bcd02815260206004820152601560248201527f6d697373696e6720696e74656772616c20706172740000000000000000000000604482015290519081900360640190fd5b8415613697576040805160e560020a62461bcd02815260206004820152601760248201527f6475706c696361746520646563696d616c20706f696e74000000000000000000604482015290519081900360640190fd5b83156136ed576040805160e560020a62461bcd02815260206004820152601660248201527f646563696d616c206166746572206578706f6e656e7400000000000000000000604482015290519081900360640190fd5b60019450613b6b565b8b517f2d00000000000000000000000000000000000000000000000000000000000000908d908390811061372657fe5b90602001015160f860020a900460f860020a02600160f860020a031916141561385857821561379f576040805160e560020a62461bcd02815260206004820152600b60248201527f6475706c6963617465202d000000000000000000000000000000000000000000604482015290519081900360640190fd5b81156137f5576040805160e560020a62461bcd02815260206004820152600a60248201527f6578747261207369676e00000000000000000000000000000000000000000000604482015290519081900360640190fd5b60018701811461384f576040805160e560020a62461bcd02815260206004820152601e60248201527f2d207369676e206e6f7420696d6d6564696174656c7920616674657220650000604482015290519081900360640190fd5b60019250613b6b565b8b517f2b00000000000000000000000000000000000000000000000000000000000000908d908390811061388857fe5b90602001015160f860020a900460f860020a02600160f860020a03191614156139ba578115613901576040805160e560020a62461bcd02815260206004820152600b60248201527f6475706c6963617465202b000000000000000000000000000000000000000000604482015290519081900360640190fd5b8215613957576040805160e560020a62461bcd02815260206004820152600a60248201527f6578747261207369676e00000000000000000000000000000000000000000000604482015290519081900360640190fd5b6001870181146139b1576040805160e560020a62461bcd02815260206004820152601e60248201527f2b207369676e206e6f7420696d6d6564696174656c7920616674657220650000604482015290519081900360640190fd5b60019150613b6b565b8b517f4500000000000000000000000000000000000000000000000000000000000000908d90839081106139ea57fe5b90602001015160f860020a900460f860020a02600160f860020a0319161480613a5d57508b517f6500000000000000000000000000000000000000000000000000000000000000908d9083908110613a3e57fe5b90602001015160f860020a900460f860020a02600160f860020a031916145b15613b1b57851515613ab9576040805160e560020a62461bcd02815260206004820152601560248201527f6d697373696e6720696e74656772616c20706172740000000000000000000000604482015290519081900360640190fd5b8315613b0f576040805160e560020a62461bcd02815260206004820152601960248201527f6475706c6963617465206578706f6e656e742073796d626f6c00000000000000604482015290519081900360640190fd5b60019350809650613b6b565b6040805160e560020a62461bcd02815260206004820152600d60248201527f696e76616c696420646967697400000000000000000000000000000000000000604482015290519081900360640190fd5b600101613306565b8280613b7c5750815b15613b9557600287018111613b9057600080fd5b613baa565b8315613baa57600187018111613baa57600080fd5b8215613c36578d8910613c2c57604e8e8a0310613c11576040805160e560020a62461bcd02815260206004820152600d60248201527f6578706f6e656e74203e20373700000000000000000000000000000000000000604482015290519081900360640190fd5b8d8903600a0a8b811515613c2157fe5b049a508a9c50613eb0565b888e039d50613c49565b613c468e8a63ffffffff614f2616565b9d505b878e10613d6f57604e8810613cce576040805160e560020a62461bcd02815260206004820152602260248201527f6d6f7265207468616e20373720646563696d616c20646967697473207061727360448201527f6564000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b613ce28b600a8a900a63ffffffff614ef116565b9a50613cf48b8b63ffffffff614f2616565b9a50604e888f0310613d50576040805160e560020a62461bcd02815260206004820152600d60248201527f6578706f6e656e74203e20373700000000000000000000000000000000000000604482015290519081900360640190fd5b613d68888f03600a0a8c614ef190919063ffffffff16565b9a50613eac565b968d900396604e8810613df2576040805160e560020a62461bcd02815260206004820152602260248201527f6d6f7265207468616e20373720646563696d616c20646967697473207061727360448201527f6564000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b87600a0a8a811515613e0057fe5b049950604e8e10613e81576040805160e560020a62461bcd02815260206004820152602260248201527f6d6f7265207468616e20373720646563696d616c20646967697473207061727360448201527f6564000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b613e978e600a0a8c614ef190919063ffffffff16565b9a50613ea98b8b63ffffffff614f2616565b9a505b8a9c505b50505050505050505050505092915050565b600254600090600160a060020a03161580613eef5750600254613eed90600160a060020a031661212d565b155b15613f0057613efe6000612131565b505b600260009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015613f5357600080fd5b505af1158015613f67573d6000803e3d6000fd5b505050506040513d6020811015613f7d57600080fd5b5051600354600160a060020a0390811691161461403357600260009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015613fe757600080fd5b505af1158015613ffb573d6000803e3d6000fd5b505050506040513d602081101561401157600080fd5b505160038054600160a060020a031916600160a060020a039092169190911790555b6003546040517f524f3889000000000000000000000000000000000000000000000000000000008152602060048201818152855160248401528551600160a060020a039094169363524f388993879383926044909201919085019080838360005b838110156140ac578181015183820152602001614094565b50505050905090810190601f1680156140d95780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1580156116a757600080fd5b606080600083600001518560000151016040519080825280601f01601f191660200182016040528015614135578160200160208202803883390190505b5091506020820190506141518186602001518760000151614ead565b8451602085015185516141679284019190614ead565b509392505050565b6002546000908190600160a060020a0316158061419e575060025461419c90600160a060020a031661212d565b155b156141af576141ad6000612131565b505b600260009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561420257600080fd5b505af1158015614216573d6000803e3d6000fd5b505050506040513d602081101561422c57600080fd5b5051600354600160a060020a039081169116146142e257600260009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561429657600080fd5b505af11580156142aa573d6000803e3d6000fd5b505050506040513d60208110156142c057600080fd5b505160038054600160a060020a031916600160a060020a039092169190911790555b600354604080517f2ef3accc0000000000000000000000000000000000000000000000000000000081526024810186905260048101918252875160448201528751600160a060020a0390931692632ef3accc9289928892829160640190602086019080838360005b8381101561436257818101518382015260200161434a565b50505050905090810190601f16801561438f5780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b1580156143af57600080fd5b505af11580156143c3573d6000803e3d6000fd5b505050506040513d60208110156143d957600080fd5b50519050670de0b6b3a76400003a8402018111156143fa5760009150614167565b6003546040517fc51be90f00000000000000000000000000000000000000000000000000000000815260006004820181815260648301879052608060248401908152895160848501528951600160a060020a039095169463c51be90f948794938c938c938c93604481019160a49091019060208801908083838c5b8381101561448d578181015183820152602001614475565b50505050905090810190601f1680156144ba5780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b838110156144ed5781810151838201526020016144d5565b50505050905090810190601f16801561451a5780820380516001836020036101000a031916815260200191505b5096505050505050506020604051808303818588803b15801561453c57600080fd5b505af1158015614550573d6000803e3d6000fd5b50505050506040513d602081101561456757600080fd5b505195945050505050565b606061457f60085461213b565b600160a060020a031663443dd2a46040518163ffffffff1660e060020a028152600401600060405180830381600087803b1580156145bc57600080fd5b505af11580156145d0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156145f957600080fd5b81019080805164010000000081111561461157600080fd5b8201602081018481111561462457600080fd5b815185602082028301116401000000008211171561464157600080fd5b509094505050505090565b60008061466c731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed61212d565b11156146dd5760028054600160a060020a031916731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed17905560408051808201909152600b81527f6574685f6d61696e6e657400000000000000000000000000000000000000000060208201526146d590614f38565b506001610604565b60006146fc73c03a2615d5efaf5f49f60b7bb6583eaec212fdf161212d565b11156147655760028054600160a060020a03191673c03a2615d5efaf5f49f60b7bb6583eaec212fdf117905560408051808201909152600c81527f6574685f726f707374656e33000000000000000000000000000000000000000060208201526146d590614f38565b600061478473b7a07bcf2ba2f2703b24c0691b5278999c59ac7e61212d565b11156147ed5760028054600160a060020a03191673b7a07bcf2ba2f2703b24c0691b5278999c59ac7e17905560408051808201909152600981527f6574685f6b6f76616e000000000000000000000000000000000000000000000060208201526146d590614f38565b600061480c73146500cfd35b22e4a392fe0adc06de1a1368ed4861212d565b11156148755760028054600160a060020a03191673146500cfd35b22e4a392fe0adc06de1a1368ed4817905560408051808201909152600b81527f6574685f72696e6b65627900000000000000000000000000000000000000000060208201526146d590614f38565b6000614894736f485c8bf6fc43ea212e93bbf8ce046c7f1cb47561212d565b11156148c8575060028054600160a060020a031916736f485c8bf6fc43ea212e93bbf8ce046c7f1cb4751790556001610604565b60006148e77320e12a1f859b3feae5fb2a0a32c18f5a65555bbf61212d565b111561491b575060028054600160a060020a0319167320e12a1f859b3feae5fb2a0a32c18f5a65555bbf1790556001610604565b600061493a7351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa61212d565b111561496e575060028054600160a060020a0319167351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa1790556001610604565b50600090565b60008060008060008551604114151561499357600094508493506149f2565b50505060208301516040840151606085015160001a601b60ff821610156149b857601b015b8060ff16601b141580156149d057508060ff16601c14155b156149e157600094508493506149f2565b6149ed87828585614f4b565b945094505b5050509250929050565b60006115a88260006132f7565b600080826040516020018082805190602001908083835b60208310614a3f5780518252601f199092019160209182019101614a20565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040526040518082805190602001908083835b60208310614aa25780518252601f199092019160209182019101614a83565b5181516000196020949094036101000a93909301928316921916919091179052604080519390910183900383207f4a616e00000000000000000000000000000000000000000000000000000000008452905192839003600301909220919450508314159150614b169050576001915061321b565b604080517f466562000000000000000000000000000000000000000000000000000000000081529051908190036003019020811415614b58576002915061321b565b604080517f4d6172000000000000000000000000000000000000000000000000000000000081529051908190036003019020811415614b9a576003915061321b565b604080517f417072000000000000000000000000000000000000000000000000000000000081529051908190036003019020811415614bdc576004915061321b565b604080517f4d6179000000000000000000000000000000000000000000000000000000000081529051908190036003019020811415614c1e576005915061321b565b604080517f4a756e000000000000000000000000000000000000000000000000000000000081529051908190036003019020811415614c60576006915061321b565b604080517f4a756c000000000000000000000000000000000000000000000000000000000081529051908190036003019020811415614ca2576007915061321b565b604080517f417567000000000000000000000000000000000000000000000000000000000081529051908190036003019020811415614ce4576008915061321b565b604080517f536570000000000000000000000000000000000000000000000000000000000081529051908190036003019020811415614d26576009915061321b565b604080517f4f6374000000000000000000000000000000000000000000000000000000000081529051908190036003019020811415614d6857600a915061321b565b604080517f4e6f76000000000000000000000000000000000000000000000000000000000081529051908190036003019020811415614daa57600b915061321b565b604080517f446563000000000000000000000000000000000000000000000000000000000081529051908190036003019020811415614dec57600c915061321b565b6040805160e560020a62461bcd02815260206004820152601160248201527f6e6f7420612076616c6964206d6f6e7468000000000000000000000000000000604482015290519081900360640190fd5b614e446150c6565b6000614e628560000151866020015186600001518760200151614f88565b60208087018051918601919091528051820385528651905191925001811415614e8e5760008552614ea4565b8351835186519101900385528351810160208601525b50909392505050565b60005b60208210614ed2578251845260209384019390920191601f1990910190614eb0565b50905182516020929092036101000a6000190180199091169116179052565b600080831515614f045760009150613234565b50828202828482811515614f1457fe5b0414614f1f57600080fd5b9392505050565b600082820183811015614f1f57600080fd5b805161032d9060049060208401906150dd565b60008060008060405188815287602082015286604082015285606082015260208160808360006001610bb8f1905190999098509650505050505050565b600083818080808080808c8b116150325760208b11614ffb5760018b60200360080260020a03196001029550858a511694508a8d8d010393508588511692505b828514614ff357838810614fe0578c8c019850615038565b8780600101985050858851169250614fc8565b879850615038565b8a8a209150600096505b8a8d03871161503257508987208181141561502257879850615038565b6001978801979690960195615005565b8c8c0198505b5050505050505050949350505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106150895782800160ff198235161785556150b6565b828001600101855582156150b6579182015b828111156150b657823582559160200191906001019061509b565b506150c292915061514b565b5090565b604080518082019091526000808252602082015290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061511e57805160ff19168380011785556150b6565b828001600101855582156150b6579182015b828111156150b6578251825591602001919060010190615130565b61060491905b808211156150c257600081556001016151515600001a1b1c1d1e1f202122232425262728292a2b2c2d2e2f30313233000000000000000000000000000000003e003e003f3435363738393a3b3c3d00000000000073656e646572206973206e6f74206120636f6e74726f6c6c65720000000000004eb5629fd8501532aeb93b1b6a5b5b2ae398561e56514ed4b4b0c5ac2d381b6e00000102030405060708090a0b0c0d0e0f10111213141516171819000000003fa165627a7a72305820638888b51223150c5b2df2425104396afc8cd4366fdc38cd8f5073de023ba8f60029` +const OracleBin = `60806040523480156200001157600080fd5b5060405160808062005c9e83398101604081815282516020808501518386015160609687015160018054600160a060020a03808616600160a060020a031992831617928390556000805490921692169190911790556007829055600881905596860185528486527fa0f4f688350018ad1b9785991c0bde5f704b005dc79972b114dbed4a615a98379286019283527f10bfc647ebe5a320daa28771dce6a2d104f5efa2e4a85ba3760b76d46f8571ca958501959095529194919392620000da91600991620009bb565b5060028054600160a060020a031916600160a060020a0386161790556200010f6402540be4006401000000006200014d810204565b620001437ff0000000000000000000000000000000000000000000000000000000000000006401000000006200038f810204565b5050505062000a5d565b600254600160a060020a031615806200018357506002546200018190600160a060020a0316640100000000620005d6810204565b155b15620001a0576200019e6000640100000000620005da810204565b505b600260009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156200020d57600080fd5b505af115801562000222573d6000803e3d6000fd5b505050506040513d60208110156200023957600080fd5b5051600354600160a060020a039081169116146200030c57600260009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015620002be57600080fd5b505af1158015620002d3573d6000803e3d6000fd5b505050506040513d6020811015620002ea57600080fd5b505160038054600160a060020a031916600160a060020a039092169190911790555b600354604080517fca6ad1e4000000000000000000000000000000000000000000000000000000008152600481018490529051600160a060020a039092169163ca6ad1e49160248082019260009290919082900301818387803b1580156200037357600080fd5b505af115801562000388573d6000803e3d6000fd5b5050505050565b600254600160a060020a03161580620003c55750600254620003c390600160a060020a0316640100000000620005d6810204565b155b15620003e257620003e06000640100000000620005da810204565b505b600260009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156200044f57600080fd5b505af115801562000464573d6000803e3d6000fd5b505050506040513d60208110156200047b57600080fd5b5051600354600160a060020a039081169116146200054e57600260009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156200050057600080fd5b505af115801562000515573d6000803e3d6000fd5b505050506040513d60208110156200052c57600080fd5b505160038054600160a060020a031916600160a060020a039092169190911790555b600354604080517f688dcfd70000000000000000000000000000000000000000000000000000000081527fff00000000000000000000000000000000000000000000000000000000000000841660048201529051600160a060020a039092169163688dcfd79160248082019260009290919082900301818387803b1580156200037357600080fd5b3b90565b6000620005ef640100000000620005f5810204565b92915050565b60008062000620731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed640100000000620005d6810204565b11156200069e5760028054600160a060020a031916731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed17905560408051808201909152600b81527f6574685f6d61696e6e657400000000000000000000000000000000000000000060208201526200069590640100000000620009a2810204565b5060016200099f565b6000620006c873c03a2615d5efaf5f49f60b7bb6583eaec212fdf1640100000000620005d6810204565b11156200073d5760028054600160a060020a03191673c03a2615d5efaf5f49f60b7bb6583eaec212fdf117905560408051808201909152600c81527f6574685f726f707374656e33000000000000000000000000000000000000000060208201526200069590640100000000620009a2810204565b60006200076773b7a07bcf2ba2f2703b24c0691b5278999c59ac7e640100000000620005d6810204565b1115620007dc5760028054600160a060020a03191673b7a07bcf2ba2f2703b24c0691b5278999c59ac7e17905560408051808201909152600981527f6574685f6b6f76616e000000000000000000000000000000000000000000000060208201526200069590640100000000620009a2810204565b60006200080673146500cfd35b22e4a392fe0adc06de1a1368ed48640100000000620005d6810204565b11156200087b5760028054600160a060020a03191673146500cfd35b22e4a392fe0adc06de1a1368ed4817905560408051808201909152600b81527f6574685f72696e6b65627900000000000000000000000000000000000000000060208201526200069590640100000000620009a2810204565b6000620008a5736f485c8bf6fc43ea212e93bbf8ce046c7f1cb475640100000000620005d6810204565b1115620008db575060028054600160a060020a031916736f485c8bf6fc43ea212e93bbf8ce046c7f1cb47517905560016200099f565b6000620009057320e12a1f859b3feae5fb2a0a32c18f5a65555bbf640100000000620005d6810204565b11156200093b575060028054600160a060020a0319167320e12a1f859b3feae5fb2a0a32c18f5a65555bbf17905560016200099f565b6000620009657351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa640100000000620005d6810204565b11156200099b575060028054600160a060020a0319167351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa17905560016200099f565b5060005b90565b8051620009b7906004906020840190620009bb565b5050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620009fe57805160ff191683800117855562000a2e565b8280016001018555821562000a2e579182015b8281111562000a2e57825182559160200191906001019062000a11565b5062000a3c92915062000a40565b5090565b6200099f91905b8082111562000a3c576000815560010162000a47565b6152318062000a6d6000396000f3006080604052600436106100955763ffffffff60e060020a60003504166327dc297e811461009a57806338bbfa50146100fa5780633acbe96e146101965780637d73b23114610220578063877337b014610251578063937f54a414610278578063996cba681461028f578063b598f882146102b9578063c2c3d054146102c4578063ca6ad1e4146102e4578063e2b4ce97146102fc575b600080fd5b3480156100a657600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526100f89583359536956044949193909101919081908401838280828437509497506103119650505050505050565b005b34801561010657600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526100f895833595369560449491939091019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437509497506103319650505050505050565b3480156101a257600080fd5b506101ab610569565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101e55781810151838201526020016101cd565b50505050905090810190601f1680156102125780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561022c57600080fd5b506102356105f7565b60408051600160a060020a039092168252519081900360200190f35b34801561025d57600080fd5b50610266610607565b60408051918252519081900360200190f35b6100f860048035906024803590810191013561060d565b34801561029b57600080fd5b506100f8600160a060020a0360043581169060243516604435610696565b6100f86004356106ee565b3480156102d057600080fd5b506100f86004803560248101910135610747565b3480156102f057600080fd5b506100f86004356107ff565b34801561030857600080fd5b50610266610893565b60408051600081526020810190915261032d9083908390610331565b5050565b6000806000806000806000610344610899565b600160a060020a031633146103a3576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f74206f7261636c697a6500000000000000000000604482015290519081900360640190fd5b60008a8152600a6020526040902054600160a060020a03169650861515610414576040805160e560020a62461bcd02815260206004820152601c60248201527f71756572794944206d61746368657320746f2061646472657373203000000000604482015290519081900360640190fd5b61041d87610a8e565b9a505050985050505085151561047d576040805160e560020a62461bcd02815260206004820152601760248201527f746f6b656e206d75737420626520617661696c61626c65000000000000000000604482015290519081900360640190fd5b60098054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152610515938d938d9383018282801561050a5780601f106104df5761010080835404028352916020019161050a565b820191906000526020600020905b8154815290600101906020018083116104ed57829003601f168201915b505050505088610bc0565b9094509250831561055d5761053161052c8a61121d565b61159b565b60008b8152600a602052604090208054600160a060020a0319169055915082905061055d8783836115ae565b50505050505050505050565b6009805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156105ef5780601f106105c4576101008083540402835291602001916105ef565b820191906000526020600020905b8154815290600101906020018083116105d257829003601f168201915b505050505081565b600154600160a060020a03165b90565b60085490565b61061633611640565b151561065a576040805160e560020a62461bcd02815260206004820152601a60248201526000805160206151a6833981519152604482015290519081900360640190fd5b61069183838380806020026020016040519081016040528093929190818152602001838360200280828437506116d9945050505050565b505050565b61069f33611640565b15156106e3576040805160e560020a62461bcd02815260206004820152601a60248201526000805160206151a6833981519152604482015290519081900360640190fd5b610691838383611a70565b6106f733611640565b151561073b576040805160e560020a62461bcd02815260206004820152601a60248201526000805160206151a6833981519152604482015290519081900360640190fd5b61074481611c16565b50565b61075033611640565b1515610794576040805160e560020a62461bcd02815260206004820152601a60248201526000805160206151a6833981519152604482015290519081900360640190fd5b6107a060098383615048565b506040805133808252602082018381529282018490527fc6b0860ba9f580e9c5b6ba4e0954fe82827096a99d92e8c2d73009539ea8d9fa9290918591859190606082018484808284376040519201829003965090945050505050a15050565b61080833611640565b151561084c576040805160e560020a62461bcd02815260206004820152601a60248201526000805160206151a6833981519152604482015290519081900360640190fd5b61085581611f3e565b604080513381526020810183905281517ffbd406825addb09beef160afc17bb80ba28df4a3533dcd23592b82658a1c5ab4929181900390910190a150565b60075490565b600254600090600160a060020a031615806108c657506002546108c490600160a060020a031661212d565b155b156108d7576108d56000612131565b505b600260009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561092a57600080fd5b505af115801561093e573d6000803e3d6000fd5b505050506040513d602081101561095457600080fd5b5051600354600160a060020a03908116911614610a0a57600260009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156109be57600080fd5b505af11580156109d2573d6000803e3d6000fd5b505050506040513d60208110156109e857600080fd5b505160038054600160a060020a031916600160a060020a039092169190911790555b600360009054906101000a9004600160a060020a0316600160a060020a031663c281d19e6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610a5d57600080fd5b505af1158015610a71573d6000803e3d6000fd5b505050506040513d6020811015610a8757600080fd5b5051905090565b6060600080600080600080610aa460085461213b565b600160a060020a0316631f69565f896040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b158015610afe57600080fd5b505af1158015610b12573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260e0811015610b3b57600080fd5b810190808051640100000000811115610b5357600080fd5b82016020810184811115610b6657600080fd5b8151640100000000811182820187101715610b8057600080fd5b5050602082015160408301516060840151608085015160a086015160c090960151949e50929c50909a509850965090945092505050919395979092949650565b6000806060806060600080606060a58b51141515610c28576040805160e560020a62461bcd02815260206004820152601460248201527f696e76616c69642070726f6f66206c656e677468000000000000000000000000604482015290519081900360640190fd5b60418b6001815181101515610c3957fe5b016020015160f860020a9081900481020414610c9f576040805160e560020a62461bcd02815260206004820152601860248201527f696e76616c6964207369676e6174757265206c656e6774680000000000000000604482015290519081900360640190fd5b60408051604180825260808201909252906020820161082080388339019050509550610cd18b60026041896000612232565b8b519096506060908c906044908110610ce657fe5b90602001015160f860020a900460f860020a0260f860020a90046101008d6041600201815181101515610d1557fe5b016020015160f860020a90819004810204020114610d7d576040805160e560020a62461bcd02815260206004820152601660248201527f696e76616c69642068656164657273206c656e67746800000000000000000000604482015290519081900360640190fd5b604080516060808252608082019092529060208201610c0080388339019050509450610daf8b60456060886000612232565b9450610dbc85878c612287565b1515610e12576040805160e560020a62461bcd02815260206004820152601160248201527f696e76616c6964207369676e6174757265000000000000000000000000000000604482015290519081900360640190fd5b604080516014808252818301909252906020820161028080388339019050509350610e4385600b6014876000612232565b9350610e4f848a6123a2565b9093509150821515610eab576040805160e560020a62461bcd02815260206004820152600c60248201527f696e76616c696420646174650000000000000000000000000000000000000000604482015290519081900360640190fd5b60408051602c80825260608201909252906020820161058080388339019050509050610edd856034602c846000612232565b9050610ee8816127e0565b6040518082805190602001908083835b60208310610f175780518252601f199092019160209182019101610ef8565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660028d6040516020018082805190602001908083835b60208310610f7d5780518252601f199092019160209182019101610f5e565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040526040518082805190602001908083835b60208310610fe05780518252601f199092019160209182019101610fc1565b51815160209384036101000a600019018019909216911617905260405191909301945091925050808303816000865af1158015611021573d6000803e3d6000fd5b5050506040513d602081101561103657600080fd5b50516040805160208181019390935281518082038401815290820191829052805190928291908401908083835b602083106110825780518252601f199092019160209182019101611063565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191614151561110a576040805160e560020a62461bcd02815260206004820152601860248201527f726573756c742068617368206e6f74206d61746368696e670000000000000000604482015290519081900360640190fd5b7f0902fdd015aa1e56f7e6026b69c0595e82155dcbd83a83a23b40f9fe96babbd98a8d604051808060200180602001838103835285818151815260200191508051906020019080838360005b8381101561116e578181015183820152602001611156565b50505050905090810190601f16801561119b5780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b838110156111ce5781810151838201526020016111b6565b50505050905090810190601f1680156111fb5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a15060019b909a5098505050505050505050565b60606000606061122b6150c6565b846040516020018082805190602001908083835b6020831061125e5780518252601f19909201916020918201910161123f565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040525192506008831180156112a65750601c8311155b15156112fc576040805160e560020a62461bcd02815260206004820152601260248201527f6d6973666f726d617474656420696e7075740000000000000000000000000000604482015290519081900360640190fd5b604080516007808252818301909252906020820160e080388339019050509150611392856040516020018082805190602001908083835b602083106113525780518252601f199092019160209182019101611333565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405260006007856000612232565b50604080517f7b22455448223a0000000000000000000000000000000000000000000000000081529051908190036007018120835190918491819060208401908083835b602083106113f55780518252601f1990920191602091820191016113d6565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191614151561147d576040805160e560020a62461bcd02815260206004820152600f60248201527f707265666978206d69736d617463680000000000000000000000000000000000604482015290519081900360640190fd5b611486856131f8565b90506114d66114c96040805190810160405280600181526020017f3a000000000000000000000000000000000000000000000000000000000000008152506131f8565b829063ffffffff61322116565b508060000151925061152c61151f6040805190810160405280600181526020017f7d000000000000000000000000000000000000000000000000000000000000008152506131f8565b829063ffffffff61323b16565b508051600019840114611589576040805160e560020a62461bcd02815260206004820152600f60248201527f6e6f74206a736f6e20666f726d61740000000000000000000000000000000000604482015290519081900360640190fd5b611592816132a4565b95945050505050565b60006115a88260126132f7565b92915050565b6115b960085461213b565b600160a060020a031663d545782e8484846040518463ffffffff1660e060020a0281526004018084600160a060020a0316600160a060020a031681526020018381526020018281526020019350505050600060405180830381600087803b15801561162357600080fd5b505af1158015611637573d6000803e3d6000fd5b50505050505050565b600061164d60075461213b565b600160a060020a031663b429afeb836040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b1580156116a757600080fd5b505af11580156116bb573d6000803e3d6000fd5b505050506040513d60208110156116d157600080fd5b505192915050565b6116e16150c6565b6116e96150c6565b6000606060006116f76150c6565b6000875160001415611756576040805160208082526010908201527f656d70747920746f6b656e206c697374000000000000000000000000000000008183015290516000805160206151c68339815191529181900360600190a1611a65565b30600160a060020a031631885161178a60408051908101604052806003815260200160ea60020a6215549302815250613ec2565b0211156117e4576040805160208082526014908201527f696e73756666696369656e742062616c616e63650000000000000000000000008183015290516000805160206151c68339815191529181900360600190a1611a65565b611849606060405190810160405280603281526020017f68747470733a2f2f6d696e2d6170692e63727970746f636f6d706172652e636f81526020017f6d2f646174612f70726963653f6673796d3d00000000000000000000000000008152506131f8565b96506118896040805190810160405280601481526020017f267473796d733d455448267369676e3d747275650000000000000000000000008152506131f8565b9550600094505b8751851015611a65576118b988868151811015156118aa57fe5b90602001906020020151610a8e565b505050955050509350821515611919576040805160e560020a62461bcd02815260206004820152601760248201527f746f6b656e206d75737420626520617661696c61626c65000000000000000000604482015290519081900360640190fd5b611922846131f8565b604080518082019091526003815260ea60020a621554930260208201529092506119749061196e8861196261195d8c8863ffffffff6140f816565b6131f8565b9063ffffffff6140f816565b8b61416f565b9050878581518110151561198457fe5b6020908102919091018101516000838152600a90925260409091208054600160a060020a031916600160a060020a039092169190911790557fd28a52bc81f387be057d69ee89db644f94b7064c4acec0d5bc33e201a2031c056119e6836132a4565b6040805160208082528351818301528351919283929083019185019080838360005b83811015611a20578181015183820152602001611a08565b50505050905090810190601f168015611a4d5780820380516001836020036101000a031916815260200191505b509250505060405180910390a1600190940193611890565b505050505050505050565b600160a060020a0382161515611abc57604051600160a060020a0384169082156108fc029083906000818181858888f19350505050158015611ab6573d6000803e3d6000fd5b50611bc7565b81600160a060020a031663a9059cbb84836040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b158015611b1f57600080fd5b505af1158015611b33573d6000803e3d6000fd5b505050506040513d6020811015611b4957600080fd5b50511515611bc7576040805160e560020a62461bcd02815260206004820152602560248201527f455243323020746f6b656e207472616e736665722077617320756e737563636560448201527f737366756c000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60408051600160a060020a0380861682528416602082015280820183905290517ff7a40077ff7a04c7e61f6f26fb13774259ddf1b6bce9ecf26a8276cdd39926839181900360600190a1505050565b6060611c206150c6565b611c286150c6565b60006060611c346150c6565b6000611c3e614572565b9650865160001415611c9d576040805160208082526009908201527f6e6f20746f6b656e7300000000000000000000000000000000000000000000008183015290516000805160206151c68339815191529181900360600190a1611f34565b30600160a060020a0316318751611cd160408051908101604052806003815260200160ea60020a6215549302815250613ec2565b021115611d2b576040805160208082526014908201527f696e73756666696369656e742062616c616e63650000000000000000000000008183015290516000805160206151c68339815191529181900360600190a1611f34565b611d90606060405190810160405280603281526020017f68747470733a2f2f6d696e2d6170692e63727970746f636f6d706172652e636f81526020017f6d2f646174612f70726963653f6673796d3d00000000000000000000000000008152506131f8565b9550611dd06040805190810160405280601481526020017f267473796d733d455448267369676e3d747275650000000000000000000000008152506131f8565b9450600093505b8651841015611f3457611df187858151811015156118aa57fe5b5050505050509250611e02836131f8565b604080518082019091526003815260ea60020a62155493026020820152909250611e4390611e3d8761196261195d8b8863ffffffff6140f816565b8a61416f565b90508684815181101515611e5357fe5b6020908102919091018101516000838152600a90925260409091208054600160a060020a031916600160a060020a039092169190911790557fd28a52bc81f387be057d69ee89db644f94b7064c4acec0d5bc33e201a2031c05611eb5836132a4565b6040805160208082528351818301528351919283929083019185019080838360005b83811015611eef578181015183820152602001611ed7565b50505050905090810190601f168015611f1c5780820380516001836020036101000a031916815260200191505b509250505060405180910390a1600190930192611dd7565b5050505050505050565b600254600160a060020a03161580611f685750600254611f6690600160a060020a031661212d565b155b15611f7957611f776000612131565b505b600260009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611fcc57600080fd5b505af1158015611fe0573d6000803e3d6000fd5b505050506040513d6020811015611ff657600080fd5b5051600354600160a060020a039081169116146120ac57600260009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561206057600080fd5b505af1158015612074573d6000803e3d6000fd5b505050506040513d602081101561208a57600080fd5b505160038054600160a060020a031916600160a060020a039092169190911790555b600354604080517fca6ad1e4000000000000000000000000000000000000000000000000000000008152600481018490529051600160a060020a039092169163ca6ad1e49160248082019260009290919082900301818387803b15801561211257600080fd5b505af1158015612126573d6000803e3d6000fd5b5050505050565b3b90565b60006115a861464c565b60008054604080517f0178b8bf000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691630178b8bf9160248082019260209290919082900301818787803b1580156121a257600080fd5b505af11580156121b6573d6000803e3d6000fd5b505050506040513d60208110156121cc57600080fd5b5051604080517f3b3b57de000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691633b3b57de916024808201926020929091908290030181600087803b1580156116a757600080fd5b6060600080600084870192508286511015151561224e57600080fd5b505060208087019084015b86886020010182101561227a57888201518682015260209182019101612259565b5093979650505050505050565b600080600061231f6002876040518082805190602001908083835b602083106122c15780518252601f1990920191602091820191016122a2565b51815160209384036101000a600019018019909216911617905260405191909301945091925050808303816000865af1158015612302573d6000803e3d6000fd5b5050506040513d602081101561231757600080fd5b505186614974565b925090508080156123985750836040518082805190602001908083835b6020831061235b5780518252601f19909201916020918201910161233c565b5181516020939093036101000a60001901801990911692169190911790526040519201829003909120600160a060020a0390811690861614925050505b9695505050505050565b6000806123ad6150c6565b6123b56150c6565b6123bd6150c6565b60008060008060008060008d6040516020018082805190602001908083835b602083106123fb5780518252601f1990920191602091820191016123dc565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405251601414151561243b57fe5b6124448e6131f8565b99506124846040805190810160405280600181526020017f3a000000000000000000000000000000000000000000000000000000000000008152506131f8565b98506124c46040805190810160405280600181526020017f20000000000000000000000000000000000000000000000000000000000000008152506131f8565b97506124e66124e16124dc8c8b63ffffffff61322116565b6132a4565b6149fc565b96506000871180156124f85750602087105b151561254e576040805160e560020a62461bcd02815260206004820152600960248201527f646179206572726f720000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6125696125646124dc8c8b63ffffffff61322116565b614a09565b60ff16955060008611801561257e5750600d86105b15156125d4576040805160e560020a62461bcd02815260206004820152600b60248201527f6d6f6e7468206572726f72000000000000000000000000000000000000000000604482015290519081900360640190fd5b6125ea6124e16124dc8c8b63ffffffff61322116565b94506107e1851180156125fe5750610bb885105b1515612654576040805160e560020a62461bcd02815260206004820152600a60248201527f79656172206572726f7200000000000000000000000000000000000000000000604482015290519081900360640190fd5b61266a6124e16124dc8c8c63ffffffff61322116565b9350601984106126c4576040805160e560020a62461bcd02815260206004820152600a60248201527f686f7572206572726f7200000000000000000000000000000000000000000000604482015290519081900360640190fd5b6126da6124e16124dc8c8c63ffffffff61322116565b9250603c8310612734576040805160e560020a62461bcd02815260206004820152600c60248201527f6d696e757465206572726f720000000000000000000000000000000000000000604482015290519081900360640190fd5b61274a6124e16124dc8c8c63ffffffff61322116565b9150603c82106127a4576040805160e560020a62461bcd02815260206004820152600c60248201527f7365636f6e64206572726f720000000000000000000000000000000000000000604482015290519081900360640190fd5b506402540be40084026305f5e100860201620f4240870201612710840201606483020181018c81119b5099505050505050505050509250929050565b60606000806000806000606060008060008a519450846040519080825280601f01601f191660200182016040528015612823578160200160208202803883390190505b509350600085118015612837575060048506155b151561288d576040805160e560020a62461bcd02815260206004820152601760248201527f696e76616c69642062617365363420656e636f64696e67000000000000000000604482015290519081900360640190fd5b604080517f3d00000000000000000000000000000000000000000000000000000000000000815290519081900360010190208b518c9060011988019081106128d157fe5b90602001015160f860020a900460f860020a026040516020018082600160f860020a031916600160f860020a03191681526001019150506040516020818303038152906040526040518082805190602001908083835b602083106129465780518252601f199092019160209182019101612927565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902060001916141561298857600285039450612a7f565b604080517f3d00000000000000000000000000000000000000000000000000000000000000815290519081900360010190208b518c9060001988019081106129cc57fe5b90602001015160f860020a900460f860020a026040516020018082600160f860020a031916600160f860020a03191681526001019150506040516020818303038152906040526040518082805190602001908083835b60208310612a415780518252601f199092019160209182019101612a22565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020600019161415612a7f576001850394505b505060048084040260005b81811015612de1576040805160a081018252607b815260006020820152600080516020615186833981519152918101919091526000805160206151e6833981519152606082015260008051602061516683398151915260808201528b5160018301928d918110612af657fe5b90602001015160f860020a900460f860020a0260f860020a9004815181101515612b1c57fe5b90602001015160f860020a900460f860020a02985060a060405190810160405280607b81526020016000815260200160008051602061518683398151915281526020016000805160206151e683398151915281526020016000805160206151668339815191528152508b82806001019350815181101515612b9957fe5b90602001015160f860020a900460f860020a0260f860020a9004815181101515612bbf57fe5b90602001015160f860020a900460f860020a02975060a060405190810160405280607b81526020016000815260200160008051602061518683398151915281526020016000805160206151e683398151915281526020016000805160206151668339815191528152508b82806001019350815181101515612c3c57fe5b90602001015160f860020a900460f860020a0260f860020a9004815181101515612c6257fe5b90602001015160f860020a900460f860020a02965060a060405190810160405280607b81526020016000815260200160008051602061518683398151915281526020016000805160206151e683398151915281526020016000805160206151668339815191528152508b82806001019350815181101515612cdf57fe5b90602001015160f860020a900460f860020a0260f860020a9004815181101515612d0557fe5b0160200151845160f860020a9182900490910296506001840193600160f860020a03198b81166004026010828d16041716918691908110612d4257fe5b906020010190600160f860020a031916908160001a905350835160018401936010600160f860020a03198b8116919091026004828c16041716918691908110612d8757fe5b906020010190600160f860020a031916908160001a90535083516001840193600160f860020a0319898116604002891716918691908110612dc457fe5b906020010190600160f860020a031916908160001a905350612a8a565b81850360021415612f73576040805160a081018252607b815260006020820152600080516020615186833981519152918101919091526000805160206151e6833981519152606082015260008051602061516683398151915260808201528b5160018301928d918110612e5057fe5b90602001015160f860020a900460f860020a0260f860020a9004815181101515612e7657fe5b90602001015160f860020a900460f860020a02985060a060405190810160405280607b81526020016000815260200160008051602061518683398151915281526020016000805160206151e683398151915281526020016000805160206151668339815191528152508b82806001019350815181101515612ef357fe5b90602001015160f860020a900460f860020a0260f860020a9004815181101515612f1957fe5b0160200151845160f860020a9182900490910298506001840193600160f860020a03198b81166004026010828d16041716918691908110612f5657fe5b906020010190600160f860020a031916908160001a9053506131e9565b818503600314156131e9576040805160a081018252607b815260006020820152600080516020615186833981519152918101919091526000805160206151e6833981519152606082015260008051602061516683398151915260808201528b5160018301928d918110612fe257fe5b90602001015160f860020a900460f860020a0260f860020a900481518110151561300857fe5b90602001015160f860020a900460f860020a02985060a060405190810160405280607b81526020016000815260200160008051602061518683398151915281526020016000805160206151e683398151915281526020016000805160206151668339815191528152508b8280600101935081518110151561308557fe5b90602001015160f860020a900460f860020a0260f860020a90048151811015156130ab57fe5b90602001015160f860020a900460f860020a02975060a060405190810160405280607b81526020016000815260200160008051602061518683398151915281526020016000805160206151e683398151915281526020016000805160206151668339815191528152508b8280600101935081518110151561312857fe5b90602001015160f860020a900460f860020a0260f860020a900481518110151561314e57fe5b0160200151845160f860020a9182900490910297506001840193600160f860020a03198b81166004026010828d1604171691869190811061318b57fe5b906020010190600160f860020a031916908160001a905350835160018401936010600160f860020a03198b8116919091026004828c160417169186919081106131d057fe5b906020010190600160f860020a031916908160001a9053505b50508152979650505050505050565b6132006150c6565b50604080518082019091528151815260208281019082018190525b50919050565b6132296150c6565b613234838383614e3c565b5092915050565b6132436150c6565b815183516000918291101561325a5784925061329c565b5050815183516020808601519085015191019190910390600190821461328a575082516020840151819020908220145b801561329857835185510385525b8492505b505092915050565b606080600083600001516040519080825280601f01601f1916602001820160405280156132db578160200160208202803883390190505b5091506020820190506132348185602001518660000151614ead565b60008281808080808080808080805b8b51811015613b73578b517f3000000000000000000000000000000000000000000000000000000000000000908d908390811061333f57fe5b90602001015160f860020a900460f860020a02600160f860020a031916101580156133b557508b517f3900000000000000000000000000000000000000000000000000000000000000908d908390811061339557fe5b90602001015160f860020a900460f860020a02600160f860020a03191611155b80156133bf575083155b1561348957841561342a576133db8a600a63ffffffff614ef116565b8c51909a5061341d906030908e90849081106133f357fe5b90602001015160f860020a900460f860020a0260f860020a9004038b614f2690919063ffffffff16565b9950600190970196613484565b6001955061343f8b600a63ffffffff614ef116565b8c51909b50613481906030908e908490811061345757fe5b90602001015160f860020a900460f860020a0260f860020a9004038c614f2690919063ffffffff16565b9a505b613b6b565b8b517f3000000000000000000000000000000000000000000000000000000000000000908d90839081106134b957fe5b90602001015160f860020a900460f860020a02600160f860020a0319161015801561352f57508b517f3900000000000000000000000000000000000000000000000000000000000000908d908390811061350f57fe5b90602001015160f860020a900460f860020a02600160f860020a03191611155b80156135385750835b156135975761354e89600a63ffffffff614ef116565b8c51909950613590906030908e908490811061356657fe5b90602001015160f860020a900460f860020a0260f860020a9004038a614f2690919063ffffffff16565b9850613b6b565b8b517f2e00000000000000000000000000000000000000000000000000000000000000908d90839081106135c757fe5b90602001015160f860020a900460f860020a02600160f860020a03191614156136f657851515613641576040805160e560020a62461bcd02815260206004820152601560248201527f6d697373696e6720696e74656772616c20706172740000000000000000000000604482015290519081900360640190fd5b8415613697576040805160e560020a62461bcd02815260206004820152601760248201527f6475706c696361746520646563696d616c20706f696e74000000000000000000604482015290519081900360640190fd5b83156136ed576040805160e560020a62461bcd02815260206004820152601660248201527f646563696d616c206166746572206578706f6e656e7400000000000000000000604482015290519081900360640190fd5b60019450613b6b565b8b517f2d00000000000000000000000000000000000000000000000000000000000000908d908390811061372657fe5b90602001015160f860020a900460f860020a02600160f860020a031916141561385857821561379f576040805160e560020a62461bcd02815260206004820152600b60248201527f6475706c6963617465202d000000000000000000000000000000000000000000604482015290519081900360640190fd5b81156137f5576040805160e560020a62461bcd02815260206004820152600a60248201527f6578747261207369676e00000000000000000000000000000000000000000000604482015290519081900360640190fd5b60018701811461384f576040805160e560020a62461bcd02815260206004820152601e60248201527f2d207369676e206e6f7420696d6d6564696174656c7920616674657220650000604482015290519081900360640190fd5b60019250613b6b565b8b517f2b00000000000000000000000000000000000000000000000000000000000000908d908390811061388857fe5b90602001015160f860020a900460f860020a02600160f860020a03191614156139ba578115613901576040805160e560020a62461bcd02815260206004820152600b60248201527f6475706c6963617465202b000000000000000000000000000000000000000000604482015290519081900360640190fd5b8215613957576040805160e560020a62461bcd02815260206004820152600a60248201527f6578747261207369676e00000000000000000000000000000000000000000000604482015290519081900360640190fd5b6001870181146139b1576040805160e560020a62461bcd02815260206004820152601e60248201527f2b207369676e206e6f7420696d6d6564696174656c7920616674657220650000604482015290519081900360640190fd5b60019150613b6b565b8b517f4500000000000000000000000000000000000000000000000000000000000000908d90839081106139ea57fe5b90602001015160f860020a900460f860020a02600160f860020a0319161480613a5d57508b517f6500000000000000000000000000000000000000000000000000000000000000908d9083908110613a3e57fe5b90602001015160f860020a900460f860020a02600160f860020a031916145b15613b1b57851515613ab9576040805160e560020a62461bcd02815260206004820152601560248201527f6d697373696e6720696e74656772616c20706172740000000000000000000000604482015290519081900360640190fd5b8315613b0f576040805160e560020a62461bcd02815260206004820152601960248201527f6475706c6963617465206578706f6e656e742073796d626f6c00000000000000604482015290519081900360640190fd5b60019350809650613b6b565b6040805160e560020a62461bcd02815260206004820152600d60248201527f696e76616c696420646967697400000000000000000000000000000000000000604482015290519081900360640190fd5b600101613306565b8280613b7c5750815b15613b9557600287018111613b9057600080fd5b613baa565b8315613baa57600187018111613baa57600080fd5b8215613c36578d8910613c2c57604e8e8a0310613c11576040805160e560020a62461bcd02815260206004820152600d60248201527f6578706f6e656e74203e20373700000000000000000000000000000000000000604482015290519081900360640190fd5b8d8903600a0a8b811515613c2157fe5b049a508a9c50613eb0565b888e039d50613c49565b613c468e8a63ffffffff614f2616565b9d505b878e10613d6f57604e8810613cce576040805160e560020a62461bcd02815260206004820152602260248201527f6d6f7265207468616e20373720646563696d616c20646967697473207061727360448201527f6564000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b613ce28b600a8a900a63ffffffff614ef116565b9a50613cf48b8b63ffffffff614f2616565b9a50604e888f0310613d50576040805160e560020a62461bcd02815260206004820152600d60248201527f6578706f6e656e74203e20373700000000000000000000000000000000000000604482015290519081900360640190fd5b613d68888f03600a0a8c614ef190919063ffffffff16565b9a50613eac565b968d900396604e8810613df2576040805160e560020a62461bcd02815260206004820152602260248201527f6d6f7265207468616e20373720646563696d616c20646967697473207061727360448201527f6564000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b87600a0a8a811515613e0057fe5b049950604e8e10613e81576040805160e560020a62461bcd02815260206004820152602260248201527f6d6f7265207468616e20373720646563696d616c20646967697473207061727360448201527f6564000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b613e978e600a0a8c614ef190919063ffffffff16565b9a50613ea98b8b63ffffffff614f2616565b9a505b8a9c505b50505050505050505050505092915050565b600254600090600160a060020a03161580613eef5750600254613eed90600160a060020a031661212d565b155b15613f0057613efe6000612131565b505b600260009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015613f5357600080fd5b505af1158015613f67573d6000803e3d6000fd5b505050506040513d6020811015613f7d57600080fd5b5051600354600160a060020a0390811691161461403357600260009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015613fe757600080fd5b505af1158015613ffb573d6000803e3d6000fd5b505050506040513d602081101561401157600080fd5b505160038054600160a060020a031916600160a060020a039092169190911790555b6003546040517f524f3889000000000000000000000000000000000000000000000000000000008152602060048201818152855160248401528551600160a060020a039094169363524f388993879383926044909201919085019080838360005b838110156140ac578181015183820152602001614094565b50505050905090810190601f1680156140d95780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1580156116a757600080fd5b606080600083600001518560000151016040519080825280601f01601f191660200182016040528015614135578160200160208202803883390190505b5091506020820190506141518186602001518760000151614ead565b8451602085015185516141679284019190614ead565b509392505050565b6002546000908190600160a060020a0316158061419e575060025461419c90600160a060020a031661212d565b155b156141af576141ad6000612131565b505b600260009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561420257600080fd5b505af1158015614216573d6000803e3d6000fd5b505050506040513d602081101561422c57600080fd5b5051600354600160a060020a039081169116146142e257600260009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561429657600080fd5b505af11580156142aa573d6000803e3d6000fd5b505050506040513d60208110156142c057600080fd5b505160038054600160a060020a031916600160a060020a039092169190911790555b600354604080517f2ef3accc0000000000000000000000000000000000000000000000000000000081526024810186905260048101918252875160448201528751600160a060020a0390931692632ef3accc9289928892829160640190602086019080838360005b8381101561436257818101518382015260200161434a565b50505050905090810190601f16801561438f5780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b1580156143af57600080fd5b505af11580156143c3573d6000803e3d6000fd5b505050506040513d60208110156143d957600080fd5b50519050670de0b6b3a76400003a8402018111156143fa5760009150614167565b6003546040517fc51be90f00000000000000000000000000000000000000000000000000000000815260006004820181815260648301879052608060248401908152895160848501528951600160a060020a039095169463c51be90f948794938c938c938c93604481019160a49091019060208801908083838c5b8381101561448d578181015183820152602001614475565b50505050905090810190601f1680156144ba5780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b838110156144ed5781810151838201526020016144d5565b50505050905090810190601f16801561451a5780820380516001836020036101000a031916815260200191505b5096505050505050506020604051808303818588803b15801561453c57600080fd5b505af1158015614550573d6000803e3d6000fd5b50505050506040513d602081101561456757600080fd5b505195945050505050565b606061457f60085461213b565b600160a060020a031663443dd2a46040518163ffffffff1660e060020a028152600401600060405180830381600087803b1580156145bc57600080fd5b505af11580156145d0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156145f957600080fd5b81019080805164010000000081111561461157600080fd5b8201602081018481111561462457600080fd5b815185602082028301116401000000008211171561464157600080fd5b509094505050505090565b60008061466c731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed61212d565b11156146dd5760028054600160a060020a031916731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed17905560408051808201909152600b81527f6574685f6d61696e6e657400000000000000000000000000000000000000000060208201526146d590614f38565b506001610604565b60006146fc73c03a2615d5efaf5f49f60b7bb6583eaec212fdf161212d565b11156147655760028054600160a060020a03191673c03a2615d5efaf5f49f60b7bb6583eaec212fdf117905560408051808201909152600c81527f6574685f726f707374656e33000000000000000000000000000000000000000060208201526146d590614f38565b600061478473b7a07bcf2ba2f2703b24c0691b5278999c59ac7e61212d565b11156147ed5760028054600160a060020a03191673b7a07bcf2ba2f2703b24c0691b5278999c59ac7e17905560408051808201909152600981527f6574685f6b6f76616e000000000000000000000000000000000000000000000060208201526146d590614f38565b600061480c73146500cfd35b22e4a392fe0adc06de1a1368ed4861212d565b11156148755760028054600160a060020a03191673146500cfd35b22e4a392fe0adc06de1a1368ed4817905560408051808201909152600b81527f6574685f72696e6b65627900000000000000000000000000000000000000000060208201526146d590614f38565b6000614894736f485c8bf6fc43ea212e93bbf8ce046c7f1cb47561212d565b11156148c8575060028054600160a060020a031916736f485c8bf6fc43ea212e93bbf8ce046c7f1cb4751790556001610604565b60006148e77320e12a1f859b3feae5fb2a0a32c18f5a65555bbf61212d565b111561491b575060028054600160a060020a0319167320e12a1f859b3feae5fb2a0a32c18f5a65555bbf1790556001610604565b600061493a7351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa61212d565b111561496e575060028054600160a060020a0319167351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa1790556001610604565b50600090565b60008060008060008551604114151561499357600094508493506149f2565b50505060208301516040840151606085015160001a601b60ff821610156149b857601b015b8060ff16601b141580156149d057508060ff16601c14155b156149e157600094508493506149f2565b6149ed87828585614f4b565b945094505b5050509250929050565b60006115a88260006132f7565b600080826040516020018082805190602001908083835b60208310614a3f5780518252601f199092019160209182019101614a20565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040526040518082805190602001908083835b60208310614aa25780518252601f199092019160209182019101614a83565b5181516000196020949094036101000a93909301928316921916919091179052604080519390910183900383207f4a616e00000000000000000000000000000000000000000000000000000000008452905192839003600301909220919450508314159150614b169050576001915061321b565b604080517f466562000000000000000000000000000000000000000000000000000000000081529051908190036003019020811415614b58576002915061321b565b604080517f4d6172000000000000000000000000000000000000000000000000000000000081529051908190036003019020811415614b9a576003915061321b565b604080517f417072000000000000000000000000000000000000000000000000000000000081529051908190036003019020811415614bdc576004915061321b565b604080517f4d6179000000000000000000000000000000000000000000000000000000000081529051908190036003019020811415614c1e576005915061321b565b604080517f4a756e000000000000000000000000000000000000000000000000000000000081529051908190036003019020811415614c60576006915061321b565b604080517f4a756c000000000000000000000000000000000000000000000000000000000081529051908190036003019020811415614ca2576007915061321b565b604080517f417567000000000000000000000000000000000000000000000000000000000081529051908190036003019020811415614ce4576008915061321b565b604080517f536570000000000000000000000000000000000000000000000000000000000081529051908190036003019020811415614d26576009915061321b565b604080517f4f6374000000000000000000000000000000000000000000000000000000000081529051908190036003019020811415614d6857600a915061321b565b604080517f4e6f76000000000000000000000000000000000000000000000000000000000081529051908190036003019020811415614daa57600b915061321b565b604080517f446563000000000000000000000000000000000000000000000000000000000081529051908190036003019020811415614dec57600c915061321b565b6040805160e560020a62461bcd02815260206004820152601160248201527f6e6f7420612076616c6964206d6f6e7468000000000000000000000000000000604482015290519081900360640190fd5b614e446150c6565b6000614e628560000151866020015186600001518760200151614f88565b60208087018051918601919091528051820385528651905191925001811415614e8e5760008552614ea4565b8351835186519101900385528351810160208601525b50909392505050565b60005b60208210614ed2578251845260209384019390920191601f1990910190614eb0565b50905182516020929092036101000a6000190180199091169116179052565b600080831515614f045760009150613234565b50828202828482811515614f1457fe5b0414614f1f57600080fd5b9392505050565b600082820183811015614f1f57600080fd5b805161032d9060049060208401906150dd565b60008060008060405188815287602082015286604082015285606082015260208160808360006001610bb8f1905190999098509650505050505050565b600083818080808080808c8b116150325760208b11614ffb5760018b60200360080260020a03196001029550858a511694508a8d8d010393508588511692505b828514614ff357838810614fe0578c8c019850615038565b8780600101985050858851169250614fc8565b879850615038565b8a8a209150600096505b8a8d03871161503257508987208181141561502257879850615038565b6001978801979690960195615005565b8c8c0198505b5050505050505050949350505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106150895782800160ff198235161785556150b6565b828001600101855582156150b6579182015b828111156150b657823582559160200191906001019061509b565b506150c292915061514b565b5090565b604080518082019091526000808252602082015290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061511e57805160ff19168380011785556150b6565b828001600101855582156150b6579182015b828111156150b6578251825591602001919060010190615130565b61060491905b808211156150c257600081556001016151515600001a1b1c1d1e1f202122232425262728292a2b2c2d2e2f30313233000000000000000000000000000000003e003e003f3435363738393a3b3c3d00000000000073656e646572206973206e6f74206120636f6e74726f6c6c65720000000000004eb5629fd8501532aeb93b1b6a5b5b2ae398561e56514ed4b4b0c5ac2d381b6e00000102030405060708090a0b0c0d0e0f10111213141516171819000000003fa165627a7a72305820f4cbcb1c991e9c745a7613ffdea81721a65e2bfa7b4e94a5d186a97a5f2928ff0029` // DeployOracle deploys a new Ethereum contract, binding an instance of Oracle to it. func DeployOracle(auth *bind.TransactOpts, backend bind.ContractBackend, _resolver_ common.Address, _ens_ common.Address, _controllerNameHash_ [32]byte, _tokenWhitelistNameHash_ [32]byte) (common.Address, *types.Transaction, *Oracle, error) { diff --git a/pkg/bindings/wallet.go b/pkg/bindings/wallet.go index bbb1449e..89afc470 100644 --- a/pkg/bindings/wallet.go +++ b/pkg/bindings/wallet.go @@ -31,7 +31,7 @@ var ( const WalletABI = "[{\"constant\":true,\"inputs\":[{\"name\":\"interfaceID\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"spendLimitPending\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"setGasTopUpLimit\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_hash\",\"type\":\"bytes32\"}],\"name\":\"cancelWhitelistAddition\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"loadLimitAvailable\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isTransferable\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"submitSpendLimitUpdate\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"gasTopUpLimitValue\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"submittedWhitelistAddition\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"pendingWhitelistRemoval\",\"outputs\":[{\"name\":\"\",\"type\":\"address[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"loadLimitSet\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"whitelistMap\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_asset\",\"type\":\"address\"},{\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"loadTokenCard\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"setLoadLimit\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"setSpendLimit\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_destination\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"},{\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"executeTransaction\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"pendingWhitelistAddition\",\"outputs\":[{\"name\":\"\",\"type\":\"address[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_hash\",\"type\":\"bytes32\"}],\"name\":\"confirmWhitelistAddition\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"spendLimitAvailable\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_addresses\",\"type\":\"address[]\"}],\"name\":\"submitWhitelistRemoval\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"spendLimitSet\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"submitGasTopUpLimitUpdate\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"licenceNode\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"ensRegistry\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"gasTopUpLimitAvailable\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_addresses\",\"type\":\"address[]\"}],\"name\":\"submitWhitelistAddition\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"tokenWhitelistNode\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"spendLimitValue\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"submitLoadLimitUpdate\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_account\",\"type\":\"address\"},{\"name\":\"_transferable\",\"type\":\"bool\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_token\",\"type\":\"address\"},{\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"convertToEther\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isSetWhitelist\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_asset\",\"type\":\"address\"},{\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"loadLimitPending\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"gasTopUpLimitSet\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_hash\",\"type\":\"bytes32\"}],\"name\":\"confirmWhitelistRemoval\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"gasTopUpLimitPending\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_addresses\",\"type\":\"address[]\"}],\"name\":\"calculateHash\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_hash\",\"type\":\"bytes32\"}],\"name\":\"cancelWhitelistRemoval\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"whitelistArray\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"loadLimitValue\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"submittedWhitelistRemoval\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"controllerNode\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_asset\",\"type\":\"address\"}],\"name\":\"balance\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"topUpGas\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"confirmSpendLimitUpdate\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_token\",\"type\":\"address\"},{\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"convertToStablecoin\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"confirmLoadLimitUpdate\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"confirmGasTopUpLimitUpdate\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_addresses\",\"type\":\"address[]\"}],\"name\":\"setWhitelist\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"_owner_\",\"type\":\"address\"},{\"name\":\"_transferable_\",\"type\":\"bool\"},{\"name\":\"_ens_\",\"type\":\"address\"},{\"name\":\"_tokenWhitelistNameHash_\",\"type\":\"bytes32\"},{\"name\":\"_controllerNameHash_\",\"type\":\"bytes32\"},{\"name\":\"_licenceNameHash_\",\"type\":\"bytes32\"},{\"name\":\"_spendLimit_\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_sender\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"ToppedUpGas\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_asset\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"LoadedTokenCard\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_destination\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_value\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"ExecutedTransaction\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_sender\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"SetLoadLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"SubmittedLoadLimitUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_sender\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"SetGasTopUpLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"SubmittedGasTopUpLimitUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"Received\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_asset\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"Transferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_sender\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"SetSpendLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"SubmittedSpendLimitUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_sender\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_addresses\",\"type\":\"address[]\"}],\"name\":\"AddedToWhitelist\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_addresses\",\"type\":\"address[]\"},{\"indexed\":false,\"name\":\"_hash\",\"type\":\"bytes32\"}],\"name\":\"SubmittedWhitelistAddition\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_sender\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_hash\",\"type\":\"bytes32\"}],\"name\":\"CancelledWhitelistAddition\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_sender\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_addresses\",\"type\":\"address[]\"}],\"name\":\"RemovedFromWhitelist\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_addresses\",\"type\":\"address[]\"},{\"indexed\":false,\"name\":\"_hash\",\"type\":\"bytes32\"}],\"name\":\"SubmittedWhitelistRemoval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_sender\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_hash\",\"type\":\"bytes32\"}],\"name\":\"CancelledWhitelistRemoval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_to\",\"type\":\"address\"}],\"name\":\"TransferredOwnership\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_locked\",\"type\":\"address\"}],\"name\":\"LockedOwnership\",\"type\":\"event\"}]" // WalletBin is the compiled bytecode used for deploying new contracts. -const WalletBin = `60806040523480156200001157600080fd5b5060405160e08062004adb83398101604090815281516020830151918301516060840151608085015160a086015160c09096015160018054600160a060020a0319908116600160a060020a038088169190911792839055600080549382169383169390931783556002859055600380549092169088161760a060020a60ff0219167401000000000000000000000000000000000000000089151581029190911791829055969895969495939489918991889188918791849183918891889160ff919004161515620001195760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b6040805160008152600160a060020a038416602082015281517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea5929181900390910190a150506040805160a081810183528382526020808301859052428385018190526000606080860182905260809586018290526009889055600a97909755600b829055600c819055600d805460ff19908116909155600e98909855855193840186526706f05b59d3b200008085529284018390529483018190529482018490529101829052600f8190556010556011919091556012556013805490911690555062000214935050640100000000620002b7810204915050565b50505050509150506000811115156200028e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f737461626c65636f696e206e6f74207365740000000000000000000000000000604482015290519081900360640190fd5b620002a66127108202640100000000620003f4810204565b5050601a5550620005719350505050565b6060600080600080600080620002de600e5462000442640100000000026401000000009004565b600160a060020a0316633efec5e96040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b1580156200033557600080fd5b505af11580156200034a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260e08110156200037457600080fd5b8101908080516401000000008111156200038d57600080fd5b82016020810184811115620003a157600080fd5b8151640100000000811182820187101715620003bc57600080fd5b5050602082015160408301516060840151608085015160a086015160c090960151949f939e50919c509a509850919650945092505050565b60148190556040805160a0810182528281526020810183905242918101829052600060608201819052608090910181905260158390556016929092556017556018556019805460ff19169055565b60008054604080517f0178b8bf000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691630178b8bf9160248082019260209290919082900301818787803b158015620004aa57600080fd5b505af1158015620004bf573d6000803e3d6000fd5b505050506040513d6020811015620004d657600080fd5b5051604080517f3b3b57de000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691633b3b57de916024808201926020929091908290030181600087803b1580156200053d57600080fd5b505af115801562000552573d6000803e3d6000fd5b505050506040513d60208110156200056957600080fd5b505192915050565b61455a80620005816000396000f3006080604052600436106102585763ffffffff60e060020a60003504166301ffc9a781146102ea578063027ef3eb146103355780630f3a85d81461035c578063100f23fd146103765780631efd02991461038e5780632121dc75146103a357806321ce918d146103b85780632587a6a2146103d057806326d05ab2146103e5578063294f4025146103fa578063324e9f531461045f57806332531c3c146104745780633a43199f146104955780633bfec254146104ac5780633c672eb7146104c45780633f579f42146104dc57806347b55a9d1461050d5780635adc02ab146105225780635d2362a81461053a5780636137d6701461054f57806365e6bd8a1461056f578063715018a61461058457806374624c5514610599578063747c31d6146105b15780637d73b231146105c65780637d7d0046146105f75780637fd004fa1461060c578063877337b01461062c5780638da5cb5b146106415780639b0dfd2714610656578063b221f3161461066b578063b242e53414610683578063b87e21ef146106a9578063be40ba79146106cd578063beabacc8146106e2578063c4856cd91461070c578063c583143814610721578063cbd2ac6814610736578063cc0e7e561461074e578063cd7958dd14610763578063ce0b5bd5146107b8578063d251fefc146107d0578063da84b1ed146107e8578063de212bf3146107fd578063e2b4ce9714610812578063e3d670d714610827578063e61c51ca14610848578063eadd3cea14610860578063f36febda14610878578063f40b51f81461089c578063f41c4319146108b4578063f4217648146108cc575b36156102ae576040805160e560020a62461bcd02815260206004820152601a60248201527f6d73672064617461206e6565647320746f20626520656d707479000000000000604482015290519081900360640190fd5b6040805133815234602082015281517f88a5966d370b9919b20f3e2c13ff65706f196a4e32cc2c12bf57088f88525874929181900390910190a1005b3480156102f657600080fd5b506103217bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19600435166108ec565b604080519115158252519081900360200190f35b34801561034157600080fd5b5061034a610934565b60408051918252519081900360200190f35b34801561036857600080fd5b5061037460043561093b565b005b34801561038257600080fd5b50610374600435610a6c565b34801561039a57600080fd5b5061034a610c8f565b3480156103af57600080fd5b50610321610ca0565b3480156103c457600080fd5b50610374600435610cc1565b3480156103dc57600080fd5b5061034a610d4f565b3480156103f157600080fd5b50610321610d55565b34801561040657600080fd5b5061040f610d5e565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561044b578181015183820152602001610433565b505050509050019250505060405180910390f35b34801561046b57600080fd5b50610321610dc0565b34801561048057600080fd5b50610321600160a060020a0360043516610dc9565b610374600160a060020a0360043516602435610dde565b3480156104b857600080fd5b50610374600435611112565b3480156104d057600080fd5b5061037460043561123d565b3480156104e857600080fd5b5061037460048035600160a060020a03169060248035916044359182019101356112d3565b34801561051957600080fd5b5061040f611605565b34801561052e57600080fd5b50610374600435611665565b34801561054657600080fd5b5061034a6119c2565b34801561055b57600080fd5b5061037460048035602481019101356119ce565b34801561057b57600080fd5b50610321611c68565b34801561059057600080fd5b50610374611c71565b3480156105a557600080fd5b50610374600435611d8c565b3480156105bd57600080fd5b5061034a611eb5565b3480156105d257600080fd5b506105db611ebb565b60408051600160a060020a039092168252519081900360200190f35b34801561060357600080fd5b5061034a611eca565b34801561061857600080fd5b506103746004803560248101910135611ed6565b34801561063857600080fd5b5061034a6122c9565b34801561064d57600080fd5b506105db6122cf565b34801561066257600080fd5b5061034a6122de565b34801561067757600080fd5b506103746004356122e4565b34801561068f57600080fd5b50610374600160a060020a03600435166024351515612407565b3480156106b557600080fd5b5061034a600160a060020a0360043516602435612646565b3480156106d957600080fd5b506103216126f1565b3480156106ee57600080fd5b50610374600160a060020a0360043581169060243516604435612700565b34801561071857600080fd5b5061034a6129fb565b34801561072d57600080fd5b50610321612a01565b34801561074257600080fd5b50610374600435612a0a565b34801561075a57600080fd5b5061034a612e33565b34801561076f57600080fd5b506040805160206004803580820135838102808601850190965280855261034a95369593946024949385019291829185019084908082843750949750612e399650505050505050565b3480156107c457600080fd5b50610374600435612ee6565b3480156107dc57600080fd5b506105db60043561310d565b3480156107f457600080fd5b5061034a613135565b34801561080957600080fd5b5061032161313b565b34801561081e57600080fd5b5061034a613149565b34801561083357600080fd5b5061034a600160a060020a036004351661314f565b34801561085457600080fd5b506103746004356131fc565b34801561086c57600080fd5b50610374600435613367565b34801561088457600080fd5b5061034a600160a060020a03600435166024356133bf565b3480156108a857600080fd5b506103746004356135bd565b3480156108c057600080fd5b50610374600435613615565b3480156108d857600080fd5b50610374600480356024810191013561366d565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1981167f01ffc9a700000000000000000000000000000000000000000000000000000000145b919050565b600c545b90565b610944336139b3565b1515610988576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b8066038d7ea4c68000111580156109a757506706f05b59d3b200008111155b1515610a23576040805160e560020a62461bcd02815260206004820152602e60248201527f67617320746f7020757020616d6f756e74206973206f7574736964652074686560448201527f206d696e2f6d61782072616e6765000000000000000000000000000000000000606482015290519081900360840190fd5b610a2e600f826139c7565b604080513381526020810183905281517f41ff5d5ce3b7935893a4e7269ec5caae9cca5e3bf0eb4b21d2f443489667112e929181900390910190a150565b610a75336139b3565b80610a845750610a8433613a3f565b1515610ada576040805160e560020a62461bcd02815260206004820152601a60248201527f656974686572206f776e6572206f7220636f6e74726f6c6c6572000000000000604482015290519081900360640190fd5b60085460ff161515610b5c576040805160e560020a62461bcd02815260206004820152602960248201527f77686974656c697374206164646974696f6e20686173206e6f74206265656e2060448201527f7375626d69747465640000000000000000000000000000000000000000000000606482015290519081900360840190fd5b610bbf6006805480602002602001604051908101604052809291908181526020018280548015610bb557602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610b97575b5050505050612e39565b8114610c3b576040805160e560020a62461bcd02815260206004820152603560248201527f68617368206f66207468652070656e64696e672077686974656c69737420616460448201527f646974696f6e20646f6573206e6f74206d617463680000000000000000000000606482015290519081900360840190fd5b610c47600660006143c9565b6008805460ff19169055604080513381526020810183905281517f7794eff834d760583543e6e510e717a5e66d2c064e225f4db448343c3e66afcf929181900390910190a150565b6000610c9b6015613ad8565b905090565b60035474010000000000000000000000000000000000000000900460ff1690565b610cca336139b3565b1515610d0e576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b610d19600982613afe565b6040805182815290517f4b1b970c8a0fa761e7803ed70c13d7aca71904b13df60fbe03f981da1730da919181900360200190a150565b600f5490565b60085460ff1681565b60606007805480602002602001604051908101604052809291908181526020018280548015610db657602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610d98575b5050505050905090565b60195460ff1690565b60046020526000908152604090205460ff1681565b600080610dea336139b3565b1515610e2e576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b610e3784613b64565b1515610e8d576040805160e560020a62461bcd02815260206004820152601260248201527f746f6b656e206e6f74206c6f616461626c650000000000000000000000000000604482015290519081900360640190fd5b610e9784846133bf565b9150610ea4601583613b7e565b610eaf601a54613c2a565b9050600160a060020a0384161561104b5783600160a060020a031663095ea7b382856040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b158015610f2357600080fd5b505af1158015610f37573d6000803e3d6000fd5b505050506040513d6020811015610f4d57600080fd5b50511515610fcb576040805160e560020a62461bcd02815260206004820152602560248201527f455243323020746f6b656e20617070726f76616c2077617320756e737563636560448201527f737366756c000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b80600160a060020a0316631b3c96b485856040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050600060405180830381600087803b15801561102e57600080fd5b505af1158015611042573d6000803e3d6000fd5b505050506110c8565b80600160a060020a0316631b3c96b48486866040518463ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a03168152602001828152602001925050506000604051808303818588803b1580156110ae57600080fd5b505af11580156110c2573d6000803e3d6000fd5b50505050505b60408051600160a060020a03861681526020810185905281517f5f65674bec9af81f71be68674135a0ea3f163fb91984e3893d06da9f6ea2ce8a929181900390910190a150505050565b61111b336139b3565b151561115f576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b8066038d7ea4c680001115801561117857506014548111155b15156111f4576040805160e560020a62461bcd02815260206004820152602d60248201527f63617264206c6f616420616d6f756e74206973206f757473696465207468652060448201527f6d696e2f6d61782072616e676500000000000000000000000000000000000000606482015290519081900360840190fd5b6111ff6015826139c7565b604080513381526020810183905281517f0b05243483e17c3f3377aee82b7d47e5700b48288695fc08b7ecc2759afa44ef929181900390910190a150565b611246336139b3565b151561128a576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b6112956009826139c7565b604080513381526020810183905281517f068f112e5ec923d412be64779fe69e0fcbb6784c6617e94cccc8fd348f2e0f21929181900390910190a150565b6000806000806112e2336139b3565b1515611326576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b600485106114c75761136a86868080601f0160208091040260200160405190810160405280939291908181526020018383808284375060009450613d219350505050565b935063ffffffff841663a9059cbb148061138d575063ffffffff841663095ea7b3145b156114c7576044851015611411576040805160e560020a62461bcd02815260206004820152602b60248201527f696e76616c6964207472616e73666572202f20617070726f7665207472616e7360448201527f616374696f6e2064617461000000000000000000000000000000000000000000606482015290519081900360840190fd5b61144d86868080601f0160208091040260200160405190810160405280939291908181526020018383808284375060249450613dfa9350505050565b925061148b86868080601f0160208091040260200160405190810160405280939291908181526020018383808284375060109450613e6d9350505050565b600160a060020a03811660009081526004602052604090205490925060ff1615156114c7576114ba8884612646565b90506114c7600982613b7e565b600160a060020a03881660009081526004602052604090205460ff1615156114f4576114f4600988613b7e565b61153388888888905089898080601f01602080910402602001604051908101604052809392919081815260200183838082843750613f3c945050505050565b1515611589576040805160e560020a62461bcd02815260206004820152601c60248201527f657865637574696e67207472616e73616374696f6e206661696c656400000000604482015290519081900360640190fd5b7faf022f6b53b11c364e2dfc0aea08eb9416c94f2661451ea82ead8831385617a6888888886040518085600160a060020a0316600160a060020a03168152602001848152602001806020018281038252848482818152602001925080828437604051920182900397509095505050505050a15050505050505050565b60606006805480602002602001604051908101604052809291908181526020018280548015610db657602002820191906000526020600020908154600160a060020a03168152600190910190602001808311610d98575050505050905090565b600061167033613a3f565b15156116b4576040805160e560020a62461bcd02815260206004820152601a60248201526000805160206144ef833981519152604482015290519081900360640190fd5b60085460ff161515611736576040805160e560020a62461bcd02815260206004820152602960248201527f77686974656c697374206164646974696f6e20686173206e6f74206265656e2060448201527f7375626d69747465640000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6117976006805480602002602001604051908101604052809291908181526020018280548015610bb557602002820191906000526020600020908154600160a060020a03168152600190910190602001808311610b97575050505050612e39565b8214611813576040805160e560020a62461bcd02815260206004820152603360248201527f68617368206f66207468652070656e64696e672077686974656c69737420616460448201527f646974696f6e20646f206e6f74206d6174636800000000000000000000000000606482015290519081900360840190fd5b5060005b60065481101561190e576004600060068381548110151561183457fe5b6000918252602080832090910154600160a060020a0316835282019290925260400190205460ff1615156119065760016004600060068481548110151561187757fe5b600091825260208083209190910154600160a060020a031683528201929092526040019020805460ff19169115159190911790556006805460059190839081106118bd57fe5b600091825260208083209091015483546001810185559383529120909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039092169190911790555b600101611817565b7fb2f6cccee7a369e23e293c25aa19bef80af11eb26deba3ea0f2a02783f752e4a3360066040518083600160a060020a0316600160a060020a0316815260200180602001828103825283818154815260200191508054801561199957602002820191906000526020600020905b8154600160a060020a0316815260019091019060200180831161197b575b5050935050505060405180910390a16119b4600660006143c9565b50506008805460ff19169055565b6000610c9b6009613ad8565b6119d7336139b3565b1515611a1b576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b60085460ff16158015611a365750600854610100900460ff16155b1515611ab2576040805160e560020a62461bcd02815260206004820152602e60248201527f77686974656c697374206f7065726174696f6e2068617320616c72656164792060448201527f6265656e207375626d6974746564000000000000000000000000000000000000606482015290519081900360840190fd5b60085462010000900460ff161515611b3a576040805160e560020a62461bcd02815260206004820152602260248201527f77686974656c69737420686173206e6f74206265656e20696e697469616c697a60448201527f6564000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60008111611bb8576040805160e560020a62461bcd02815260206004820152602260248201527f70656e64696e672077686974656c6973742072656d6f76616c20697320656d7060448201527f7479000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b611bc4600783836143ea565b506008805461ff00191661010017905560408051602080840282810182019093528382527ffbc0e5ca6c7e4858daf0fdb185ef5186203e74ec9c64737e93c0aeaec596e1d19285928592611c2d9285918591829185019084908082843750612e39945050505050565b604080516020808201849052828252918101849052908190606082019086908602808284376040519201829003965090945050505050a15050565b600d5460ff1690565b611c7a336139b3565b1515611cbe576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b60035474010000000000000000000000000000000000000000900460ff161515611d32576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b6003805473ffffffffffffffffffffffffffffffffffffffff19169055604080516000808252602082015281517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea5929181900390910190a1565b611d95336139b3565b1515611dd9576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b8066038d7ea4c6800011158015611df857506706f05b59d3b200008111155b1515611e74576040805160e560020a62461bcd02815260206004820152602e60248201527f67617320746f7020757020616d6f756e74206973206f7574736964652074686560448201527f206d696e2f6d61782072616e6765000000000000000000000000000000000000606482015290519081900360840190fd5b611e7f600f82613afe565b6040805182815290517faf2a77cd04c3cc155588dd3bf67b310ab4fb3b1da3cf6b8d7d4d2aa1d09b794c9181900360200190a150565b601a5490565b600154600160a060020a031690565b6000610c9b600f613ad8565b611edf336139b3565b1515611f23576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b60085460ff16158015611f3e5750600854610100900460ff16155b1515611fba576040805160e560020a62461bcd02815260206004820152602e60248201527f77686974656c697374206f7065726174696f6e2068617320616c72656164792060448201527f6265656e207375626d6974746564000000000000000000000000000000000000606482015290519081900360840190fd5b8181808060200260200160405190810160405280939291908181526020018383602002808284375060009450505050505b815181101561211357612014828281518110151561200557fe5b906020019060200201516139b3565b1561207d576040805160e560020a62461bcd02815260206004820152602d602482015260008051602061450f83398151915260448201527f6f776e6572206164647265737300000000000000000000000000000000000000606482015290519081900360840190fd5b815160009083908390811061208e57fe5b60209081029091010151600160a060020a0316141561210b576040805160e560020a62461bcd02815260206004820152602c602482015260008051602061450f83398151915260448201527f7a65726f20616464726573730000000000000000000000000000000000000000606482015290519081900360840190fd5b600101611feb565b60085462010000900460ff16151561219b576040805160e560020a62461bcd02815260206004820152602260248201527f77686974656c69737420686173206e6f74206265656e20696e697469616c697a60448201527f6564000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60008311612219576040805160e560020a62461bcd02815260206004820152602360248201527f70656e64696e672077686974656c697374206164646974696f6e20697320656d60448201527f7074790000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b612225600685856143ea565b506008805460ff1916600117905560408051602080860282810182019093528582527f9c80b3b5f68b3e017766d59e8d09b34efe6462b05c398f35cab9e271d9bc3b9c928792879261228c9285918591829185019084908082843750612e39945050505050565b604080516020808201849052828252918101849052908190606082019086908602808284376040519201829003965090945050505050a150505050565b600e5490565b600354600160a060020a031690565b60095490565b6122ed336139b3565b1515612331576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b8066038d7ea4c680001115801561234a57506014548111155b15156123c6576040805160e560020a62461bcd02815260206004820152602d60248201527f63617264206c6f616420616d6f756e74206973206f757473696465207468652060448201527f6d696e2f6d61782072616e676500000000000000000000000000000000000000606482015290519081900360840190fd5b6123d1601582613afe565b6040805182815290517fc178d379965e5657b6fc57494e392f121a14119215dfb422aad7db4cc03f2d109181900360200190a150565b612410336139b3565b1515612454576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b60035474010000000000000000000000000000000000000000900460ff1615156124c8576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b600160a060020a038216151561254e576040805160e560020a62461bcd02815260206004820152602360248201527f6f776e65722063616e6e6f742062652073657420746f207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6003805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000831515908102919091179091556125ce5760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b60035460408051600160a060020a039283168152918416602083015280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1506003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60008060008061265586613f5f565b5050509350935093505080156126e3578115156126bc576040805160e560020a62461bcd02815260206004820152600f60248201527f746f6b656e207261746520697320300000000000000000000000000000000000604482015290519081900360640190fd5b6126dc836126d0878563ffffffff61409116565b9063ffffffff6140c616565b93506126e8565b600093505b50505092915050565b60085462010000900460ff1681565b600061270b336139b3565b151561274f576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b818015156127a7576040805160e560020a62461bcd02815260206004820152601d60248201527f70726f76696465642076616c75652063616e6e6f74206265207a65726f000000604482015290519081900360640190fd5b600160a060020a0385161515612807576040805160e560020a62461bcd02815260206004820181905260248201527f5f746f20616464726573732063616e6e6f742062652073657420746f20307830604482015290519081900360640190fd5b600160a060020a03851660009081526004602052604090205460ff16151561285357829150600160a060020a03841615612848576128458484612646565b91505b612853600983613b7e565b600160a060020a038416156129725783600160a060020a031663a9059cbb86856040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b1580156128c557600080fd5b505af11580156128d9573d6000803e3d6000fd5b505050506040513d60208110156128ef57600080fd5b5051151561296d576040805160e560020a62461bcd02815260206004820152602560248201527f455243323020746f6b656e207472616e736665722077617320756e737563636560448201527f737366756c000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6129aa565b604051600160a060020a0386169084156108fc029085906000818181858888f193505050501580156129a8573d6000803e3d6000fd5b505b60408051600160a060020a0380881682528616602082015280820185905290517fd1ba4ac2e2a11b5101f6cb4d978f514a155b421e8ec396d2d9abaf0bb02917ee9181900360600190a15050505050565b60185490565b60135460ff1690565b600080612a1633613a3f565b1515612a5a576040805160e560020a62461bcd02815260206004820152601a60248201526000805160206144ef833981519152604482015290519081900360640190fd5b600854610100900460ff161515612ae1576040805160e560020a62461bcd02815260206004820152602860248201527f77686974656c6973742072656d6f76616c20686173206e6f74206265656e207360448201527f75626d6974746564000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b612b426007805480602002602001604051908101604052809291908181526020018280548015610bb557602002820191906000526020600020908154600160a060020a03168152600190910190602001808311610b97575050505050612e39565b8314612be4576040805160e560020a62461bcd02815260206004820152604760248201527f68617368206f66207468652070656e64696e672077686974656c69737420726560448201527f6d6f76616c20646f6573206e6f74206d617463682074686520636f6e6669726d60648201527f6564206861736800000000000000000000000000000000000000000000000000608482015290519081900360a40190fd5b600091505b600754821015612d7d5760046000600784815481101515612c0657fe5b6000918252602080832090910154600160a060020a0316835282019290925260400190205460ff1615612d7257600060046000600785815481101515612c4857fe5b600091825260208083209190910154600160a060020a031683528201929092526040018120805460ff19169215159290921790915590505b600554612c9490600163ffffffff6140e916565b811015612d5d576007805483908110612ca957fe5b60009182526020909120015460058054600160a060020a039092169183908110612ccf57fe5b600091825260209091200154600160a060020a03161415612d5557600580546000198101908110612cfc57fe5b60009182526020909120015460058054600160a060020a039092169183908110612d2257fe5b9060005260206000200160006101000a815481600160a060020a030219169083600160a060020a03160217905550612d5d565b600101612c80565b6005805490612d7090600019830161445a565b505b600190910190612be9565b7fd218c430fa348f4ce67791021b6b89c0c3eacd4ead1d8f5b83c60038ec28249b3360076040518083600160a060020a0316600160a060020a03168152602001806020018281038252838181548152602001915080548015612e0857602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311612dea575b5050935050505060405180910390a1612e23600760006143c9565b50506008805461ff001916905550565b60125490565b60008160405160200180828051906020019060200280838360005b83811015612e6c578181015183820152602001612e54565b505050509050019150506040516020818303038152906040526040518082805190602001908083835b60208310612eb45780518252601f199092019160209182019101612e95565b5181516020939093036101000a6000190180199091169216919091179052604051920182900390912095945050505050565b612eef336139b3565b80612efe5750612efe33613a3f565b1515612f54576040805160e560020a62461bcd02815260206004820152601a60248201527f656974686572206f776e6572206f7220636f6e74726f6c6c6572000000000000604482015290519081900360640190fd5b600854610100900460ff161515612fdb576040805160e560020a62461bcd02815260206004820152602860248201527f77686974656c6973742072656d6f76616c20686173206e6f74206265656e207360448201527f75626d6974746564000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b61303c6007805480602002602001604051908101604052809291908181526020018280548015610bb557602002820191906000526020600020908154600160a060020a03168152600190910190602001808311610b97575050505050612e39565b81146130b8576040805160e560020a62461bcd02815260206004820152603260248201527f68617368206f66207468652070656e64696e672077686974656c69737420726560448201527f6d6f76616c20646f206e6f74206d617463680000000000000000000000000000606482015290519081900360840190fd5b6130c4600760006143c9565b6008805461ff0019169055604080513381526020810183905281517f13c935eb475aa0f6e931fece83e2ac44569ce2d53460d29a6dedab40b965c8a3929181900390910190a150565b600580548290811061311b57fe5b600091825260209091200154600160a060020a0316905081565b60155490565b600854610100900460ff1681565b60025490565b6000600160a060020a038216156131f457604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a038416916370a082319160248083019260209291908290030181600087803b1580156131c157600080fd5b505af11580156131d5573d6000803e3d6000fd5b505050506040513d60208110156131eb57600080fd5b5051905061092f565b50303161092f565b80801515613254576040805160e560020a62461bcd02815260206004820152601d60248201527f70726f76696465642076616c75652063616e6e6f74206265207a65726f000000604482015290519081900360640190fd5b61325d336139b3565b8061326c575061326c33613a3f565b15156132c2576040805160e560020a62461bcd02815260206004820152601a60248201527f656974686572206f776e6572206f7220636f6e74726f6c6c6572000000000000604482015290519081900360640190fd5b6132cd600f83613b7e565b6132d56122cf565b600160a060020a03166108fc839081150290604051600060405180830381858888f1935050505015801561330d573d6000803e3d6000fd5b507f611b7c0d84fda988026215bef9b3e4d81cbceced7e679be6d5e044b588467c0e336133386122cf565b60408051600160a060020a03938416815291909216602082015280820185905290519081900360600190a15050565b61337033613a3f565b15156133b4576040805160e560020a62461bcd02815260206004820152601a60248201526000805160206144ef833981519152604482015290519081900360640190fd5b611295600982614100565b60008060008060008060006133d2614193565b600160a060020a031689600160a060020a031614156133f3578796506135b1565b600160a060020a038916156134da5761340b89613f5f565b5050509650965096505083151561346c576040805160e560020a62461bcd02815260206004820152601660248201527f746f6b656e206973206e6f7420617661696c61626c6500000000000000000000604482015290519081900360640190fd5b8415156134c3576040805160e560020a62461bcd02815260206004820152600f60248201527f746f6b656e207261746520697320300000000000000000000000000000000000604482015290519081900360640190fd5b6134d7866126d08a8863ffffffff61409116565b97505b6134e261420e565b50505093509350935050801515613543576040805160e560020a62461bcd02815260206004820152601660248201527f746f6b656e206973206e6f7420617661696c61626c6500000000000000000000604482015290519081900360640190fd5b81151561359a576040805160e560020a62461bcd02815260206004820152601460248201527f737461626c65636f696e20726174652069732030000000000000000000000000604482015290519081900360640190fd5b6135ae826126d08a8663ffffffff61409116565b96505b50505050505092915050565b6135c633613a3f565b151561360a576040805160e560020a62461bcd02815260206004820152601a60248201526000805160206144ef833981519152604482015290519081900360640190fd5b6111ff601582614100565b61361e33613a3f565b1515613662576040805160e560020a62461bcd02815260206004820152601a60248201526000805160206144ef833981519152604482015290519081900360640190fd5b610a2e600f82614100565b6000613678336139b3565b15156136bc576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b8282808060200260200160405190810160405280939291908181526020018383602002808284375060009450505050505b815181101561380657613707828281518110151561200557fe5b15613770576040805160e560020a62461bcd02815260206004820152602d602482015260008051602061450f83398151915260448201527f6f776e6572206164647265737300000000000000000000000000000000000000606482015290519081900360840190fd5b815160009083908390811061378157fe5b60209081029091010151600160a060020a031614156137fe576040805160e560020a62461bcd02815260206004820152602c602482015260008051602061450f83398151915260448201527f7a65726f20616464726573730000000000000000000000000000000000000000606482015290519081900360840190fd5b6001016136ed565b60085462010000900460ff161561388d576040805160e560020a62461bcd02815260206004820152602660248201527f77686974656c6973742068617320616c7265616479206265656e20696e69746960448201527f616c697a65640000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600092505b8383101561393e576001600460008787878181106138ac57fe5b60209081029290920135600160a060020a0316835250810191909152604001600020805460ff191691151591909117905560058585858181106138eb57fe5b83546001808201865560009586526020958690209091018054929095029390930135600160a060020a031673ffffffffffffffffffffffffffffffffffffffff1990911617909255939093019250613892565b6008805462ff0000191662010000179055604080513380825260208083018481529383018890527fb2f6cccee7a369e23e293c25aa19bef80af11eb26deba3ea0f2a02783f752e4a93919289928992606083019085908502808284376040519201829003965090945050505050a15050505050565b600354600160a060020a0390811691161490565b600482015460ff1615613a24576040805160e560020a62461bcd02815260206004820181905260248201527f6461696c79206c696d69742068617320616c7265616479206265656e20736574604482015290519081900360640190fd5b613a2e828261431b565b50600401805460ff19166001179055565b6000613a4c600254613c2a565b600160a060020a031663b429afeb836040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b158015613aa657600080fd5b505af1158015613aba573d6000803e3d6000fd5b505050506040513d6020811015613ad057600080fd5b505192915050565b600081600201546201518001421115613af35750805461092f565b50600181015461092f565b600482015460ff161515613b5c576040805160e560020a62461bcd02815260206004820152601660248201527f6c696d697420686173206e6f74206265656e2073657400000000000000000000604482015290519081900360640190fd5b600390910155565b600080613b7083613f5f565b509098975050505050505050565b613b878261433e565b6001820154811115613c09576040805160e560020a62461bcd02815260206004820152603260248201527f617661696c61626c652068617320746f2062652067726561746572206f72206560448201527f7175616c20746f2075736520616d6f756e740000000000000000000000000000606482015290519081900360840190fd5b6001820154613c1e908263ffffffff6140e916565b82600101819055505050565b60008054604080517f0178b8bf000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691630178b8bf9160248082019260209290919082900301818787803b158015613c9157600080fd5b505af1158015613ca5573d6000803e3d6000fd5b505050506040513d6020811015613cbb57600080fd5b5051604080517f3b3b57de000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691633b3b57de916024808201926020929091908290030181600087803b158015613aa657600080fd5b60008060008084600401865110151515613d85576040805160e560020a62461bcd02815260206004820152601460248201527f736c6963696e67206f7574206f662072616e6765000000000000000000000000604482015290519081900360640190fd5b5060009150819050805b60048160ff161015613df05761010083029250858160ff168601815181101515613db557fe5b01602001517f010000000000000000000000000000000000000000000000000000000000000090819004810204928301929150600101613d8f565b5090949350505050565b60008082602001845110151515613e5b576040805160e560020a62461bcd02815260206004820152601460248201527f736c6963696e67206f7574206f662072616e6765000000000000000000000000604482015290519081900360640190fd5b505081810160200151805b5092915050565b60008060008084601401865110151515613ed1576040805160e560020a62461bcd02815260206004820152601460248201527f736c6963696e67206f7574206f662072616e6765000000000000000000000000604482015290519081900360640190fd5b5060009150819050805b60148160ff161015613df05761010083029250858160ff168601815181101515613f0157fe5b01602001517f010000000000000000000000000000000000000000000000000000000000000090819004810204928301929150600101613edb565b6000806040516020840160008287838a8c6187965a03f198975050505050505050565b6060600080600080600080613f75600e54613c2a565b600160a060020a0316631f69565f896040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b158015613fcf57600080fd5b505af1158015613fe3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260e081101561400c57600080fd5b81019080805164010000000081111561402457600080fd5b8201602081018481111561403757600080fd5b815164010000000081118282018710171561405157600080fd5b5050602082015160408301516060840151608085015160a086015160c090960151949e50929c50909a509850965090945092505050919395979092949650565b6000808315156140a45760009150613e66565b508282028284828115156140b457fe5b04146140bf57600080fd5b9392505050565b6000808083116140d557600080fd5b82848115156140e057fe5b04949350505050565b600080838311156140f957600080fd5b5050900390565b60038201548114614181576040805160e560020a62461bcd02815260206004820152602960248201527f636f6e6669726d656420616e64207375626d6974746564206c696d697473206460448201527f6f6e74206d617463680000000000000000000000000000000000000000000000606482015290519081900360840190fd5b61418f82836003015461431b565b5050565b60006141a0600e54613c2a565b600160a060020a031663e9cbd8226040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156141dd57600080fd5b505af11580156141f1573d6000803e3d6000fd5b505050506040513d602081101561420757600080fd5b5051905090565b6060600080600080600080614224600e54613c2a565b600160a060020a0316633efec5e96040518163ffffffff1660e060020a028152600401600060405180830381600087803b15801561426157600080fd5b505af1158015614275573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260e081101561429e57600080fd5b8101908080516401000000008111156142b657600080fd5b820160208101848111156142c957600080fd5b81516401000000008111828201871017156142e357600080fd5b5050602082015160408301516060840151608085015160a086015160c090960151949f939e50919c509a509850919650945092505050565b6143248261433e565b808255600182015481101561418f57815460018301555050565b6002810154600090614359906201518063ffffffff6143b716565b42111561418f5761437e620151806126d08460020154426140e990919063ffffffff16565b90506143a7614396826201518063ffffffff61409116565b60028401549063ffffffff6143b716565b6002830155815460018301555050565b6000828201838110156140bf57600080fd5b50805460008255906000526020600020908101906143e79190614483565b50565b82805482825590600052602060002090810192821561444a579160200282015b8281111561444a57815473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0384351617825560209092019160019091019061440a565b5061445692915061449d565b5090565b81548183558181111561447e5760008381526020902061447e918101908301614483565b505050565b61093891905b808211156144565760008155600101614489565b61093891905b8082111561445657805473ffffffffffffffffffffffffffffffffffffffff191681556001016144a3560073656e646572206973206e6f7420616e206f776e65720000000000000000000073656e646572206973206e6f74206120636f6e74726f6c6c657200000000000070726f76696465642077686974656c69737420636f6e7461696e732074686520a165627a7a72305820c601896aac0a8caea2406e408a1ac329c9ce21c1397ce61e69091617745328f20029` +const WalletBin = `60806040523480156200001157600080fd5b5060405160e08062004adb83398101604090815281516020830151918301516060840151608085015160a086015160c09096015160018054600160a060020a0319908116600160a060020a038088169190911792839055600080549382169383169390931783556002859055600380549092169088161760a060020a60ff0219167401000000000000000000000000000000000000000089151581029190911791829055969895969495939489918991889188918791849183918891889160ff919004161515620001195760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b6040805160008152600160a060020a038416602082015281517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea5929181900390910190a150506040805160a081810183528382526020808301859052428385018190526000606080860182905260809586018290526009889055600a97909755600b829055600c819055600d805460ff19908116909155600e98909855855193840186526706f05b59d3b200008085529284018390529483018190529482018490529101829052600f8190556010556011919091556012556013805490911690555062000214935050640100000000620002b7810204915050565b50505050509150506000811115156200028e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f737461626c65636f696e206e6f74207365740000000000000000000000000000604482015290519081900360640190fd5b620002a66127108202640100000000620003f4810204565b5050601a5550620005719350505050565b6060600080600080600080620002de600e5462000442640100000000026401000000009004565b600160a060020a0316633efec5e96040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b1580156200033557600080fd5b505af11580156200034a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260e08110156200037457600080fd5b8101908080516401000000008111156200038d57600080fd5b82016020810184811115620003a157600080fd5b8151640100000000811182820187101715620003bc57600080fd5b5050602082015160408301516060840151608085015160a086015160c090960151949f939e50919c509a509850919650945092505050565b60148190556040805160a0810182528281526020810183905242918101829052600060608201819052608090910181905260158390556016929092556017556018556019805460ff19169055565b60008054604080517f0178b8bf000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691630178b8bf9160248082019260209290919082900301818787803b158015620004aa57600080fd5b505af1158015620004bf573d6000803e3d6000fd5b505050506040513d6020811015620004d657600080fd5b5051604080517f3b3b57de000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691633b3b57de916024808201926020929091908290030181600087803b1580156200053d57600080fd5b505af115801562000552573d6000803e3d6000fd5b505050506040513d60208110156200056957600080fd5b505192915050565b61455a80620005816000396000f3006080604052600436106102585763ffffffff60e060020a60003504166301ffc9a781146102ea578063027ef3eb146103355780630f3a85d81461035c578063100f23fd146103765780631efd02991461038e5780632121dc75146103a357806321ce918d146103b85780632587a6a2146103d057806326d05ab2146103e5578063294f4025146103fa578063324e9f531461045f57806332531c3c146104745780633a43199f146104955780633bfec254146104ac5780633c672eb7146104c45780633f579f42146104dc57806347b55a9d1461050d5780635adc02ab146105225780635d2362a81461053a5780636137d6701461054f57806365e6bd8a1461056f578063715018a61461058457806374624c5514610599578063747c31d6146105b15780637d73b231146105c65780637d7d0046146105f75780637fd004fa1461060c578063877337b01461062c5780638da5cb5b146106415780639b0dfd2714610656578063b221f3161461066b578063b242e53414610683578063b87e21ef146106a9578063be40ba79146106cd578063beabacc8146106e2578063c4856cd91461070c578063c583143814610721578063cbd2ac6814610736578063cc0e7e561461074e578063cd7958dd14610763578063ce0b5bd5146107b8578063d251fefc146107d0578063da84b1ed146107e8578063de212bf3146107fd578063e2b4ce9714610812578063e3d670d714610827578063e61c51ca14610848578063eadd3cea14610860578063f36febda14610878578063f40b51f81461089c578063f41c4319146108b4578063f4217648146108cc575b36156102ae576040805160e560020a62461bcd02815260206004820152601a60248201527f6d73672064617461206e6565647320746f20626520656d707479000000000000604482015290519081900360640190fd5b6040805133815234602082015281517f88a5966d370b9919b20f3e2c13ff65706f196a4e32cc2c12bf57088f88525874929181900390910190a1005b3480156102f657600080fd5b506103217bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19600435166108ec565b604080519115158252519081900360200190f35b34801561034157600080fd5b5061034a610934565b60408051918252519081900360200190f35b34801561036857600080fd5b5061037460043561093b565b005b34801561038257600080fd5b50610374600435610a6c565b34801561039a57600080fd5b5061034a610c8f565b3480156103af57600080fd5b50610321610ca0565b3480156103c457600080fd5b50610374600435610cc1565b3480156103dc57600080fd5b5061034a610d4f565b3480156103f157600080fd5b50610321610d55565b34801561040657600080fd5b5061040f610d5e565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561044b578181015183820152602001610433565b505050509050019250505060405180910390f35b34801561046b57600080fd5b50610321610dc0565b34801561048057600080fd5b50610321600160a060020a0360043516610dc9565b610374600160a060020a0360043516602435610dde565b3480156104b857600080fd5b50610374600435611112565b3480156104d057600080fd5b5061037460043561123d565b3480156104e857600080fd5b5061037460048035600160a060020a03169060248035916044359182019101356112d3565b34801561051957600080fd5b5061040f611605565b34801561052e57600080fd5b50610374600435611665565b34801561054657600080fd5b5061034a6119c2565b34801561055b57600080fd5b5061037460048035602481019101356119ce565b34801561057b57600080fd5b50610321611c68565b34801561059057600080fd5b50610374611c71565b3480156105a557600080fd5b50610374600435611d8c565b3480156105bd57600080fd5b5061034a611eb5565b3480156105d257600080fd5b506105db611ebb565b60408051600160a060020a039092168252519081900360200190f35b34801561060357600080fd5b5061034a611eca565b34801561061857600080fd5b506103746004803560248101910135611ed6565b34801561063857600080fd5b5061034a6122c9565b34801561064d57600080fd5b506105db6122cf565b34801561066257600080fd5b5061034a6122de565b34801561067757600080fd5b506103746004356122e4565b34801561068f57600080fd5b50610374600160a060020a03600435166024351515612407565b3480156106b557600080fd5b5061034a600160a060020a0360043516602435612646565b3480156106d957600080fd5b506103216126f1565b3480156106ee57600080fd5b50610374600160a060020a0360043581169060243516604435612700565b34801561071857600080fd5b5061034a6129fb565b34801561072d57600080fd5b50610321612a01565b34801561074257600080fd5b50610374600435612a0a565b34801561075a57600080fd5b5061034a612e33565b34801561076f57600080fd5b506040805160206004803580820135838102808601850190965280855261034a95369593946024949385019291829185019084908082843750949750612e399650505050505050565b3480156107c457600080fd5b50610374600435612ee6565b3480156107dc57600080fd5b506105db60043561310d565b3480156107f457600080fd5b5061034a613135565b34801561080957600080fd5b5061032161313b565b34801561081e57600080fd5b5061034a613149565b34801561083357600080fd5b5061034a600160a060020a036004351661314f565b34801561085457600080fd5b506103746004356131fc565b34801561086c57600080fd5b50610374600435613367565b34801561088457600080fd5b5061034a600160a060020a03600435166024356133bf565b3480156108a857600080fd5b506103746004356135bd565b3480156108c057600080fd5b50610374600435613615565b3480156108d857600080fd5b50610374600480356024810191013561366d565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1981167f01ffc9a700000000000000000000000000000000000000000000000000000000145b919050565b600c545b90565b610944336139b3565b1515610988576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b8066038d7ea4c68000111580156109a757506706f05b59d3b200008111155b1515610a23576040805160e560020a62461bcd02815260206004820152602e60248201527f67617320746f7020757020616d6f756e74206973206f7574736964652074686560448201527f206d696e2f6d61782072616e6765000000000000000000000000000000000000606482015290519081900360840190fd5b610a2e600f826139c7565b604080513381526020810183905281517f41ff5d5ce3b7935893a4e7269ec5caae9cca5e3bf0eb4b21d2f443489667112e929181900390910190a150565b610a75336139b3565b80610a845750610a8433613a3f565b1515610ada576040805160e560020a62461bcd02815260206004820152601a60248201527f656974686572206f776e6572206f7220636f6e74726f6c6c6572000000000000604482015290519081900360640190fd5b60085460ff161515610b5c576040805160e560020a62461bcd02815260206004820152602960248201527f77686974656c697374206164646974696f6e20686173206e6f74206265656e2060448201527f7375626d69747465640000000000000000000000000000000000000000000000606482015290519081900360840190fd5b610bbf6006805480602002602001604051908101604052809291908181526020018280548015610bb557602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610b97575b5050505050612e39565b8114610c3b576040805160e560020a62461bcd02815260206004820152603560248201527f68617368206f66207468652070656e64696e672077686974656c69737420616460448201527f646974696f6e20646f6573206e6f74206d617463680000000000000000000000606482015290519081900360840190fd5b610c47600660006143c9565b6008805460ff19169055604080513381526020810183905281517f7794eff834d760583543e6e510e717a5e66d2c064e225f4db448343c3e66afcf929181900390910190a150565b6000610c9b6015613ad8565b905090565b60035474010000000000000000000000000000000000000000900460ff1690565b610cca336139b3565b1515610d0e576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b610d19600982613afe565b6040805182815290517f4b1b970c8a0fa761e7803ed70c13d7aca71904b13df60fbe03f981da1730da919181900360200190a150565b600f5490565b60085460ff1681565b60606007805480602002602001604051908101604052809291908181526020018280548015610db657602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610d98575b5050505050905090565b60195460ff1690565b60046020526000908152604090205460ff1681565b600080610dea336139b3565b1515610e2e576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b610e3784613b64565b1515610e8d576040805160e560020a62461bcd02815260206004820152601260248201527f746f6b656e206e6f74206c6f616461626c650000000000000000000000000000604482015290519081900360640190fd5b610e9784846133bf565b9150610ea4601583613b7e565b610eaf601a54613c2a565b9050600160a060020a0384161561104b5783600160a060020a031663095ea7b382856040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b158015610f2357600080fd5b505af1158015610f37573d6000803e3d6000fd5b505050506040513d6020811015610f4d57600080fd5b50511515610fcb576040805160e560020a62461bcd02815260206004820152602560248201527f455243323020746f6b656e20617070726f76616c2077617320756e737563636560448201527f737366756c000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b80600160a060020a0316631b3c96b485856040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050600060405180830381600087803b15801561102e57600080fd5b505af1158015611042573d6000803e3d6000fd5b505050506110c8565b80600160a060020a0316631b3c96b48486866040518463ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a03168152602001828152602001925050506000604051808303818588803b1580156110ae57600080fd5b505af11580156110c2573d6000803e3d6000fd5b50505050505b60408051600160a060020a03861681526020810185905281517f5f65674bec9af81f71be68674135a0ea3f163fb91984e3893d06da9f6ea2ce8a929181900390910190a150505050565b61111b336139b3565b151561115f576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b8066038d7ea4c680001115801561117857506014548111155b15156111f4576040805160e560020a62461bcd02815260206004820152602d60248201527f63617264206c6f616420616d6f756e74206973206f757473696465207468652060448201527f6d696e2f6d61782072616e676500000000000000000000000000000000000000606482015290519081900360840190fd5b6111ff6015826139c7565b604080513381526020810183905281517f0b05243483e17c3f3377aee82b7d47e5700b48288695fc08b7ecc2759afa44ef929181900390910190a150565b611246336139b3565b151561128a576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b6112956009826139c7565b604080513381526020810183905281517f068f112e5ec923d412be64779fe69e0fcbb6784c6617e94cccc8fd348f2e0f21929181900390910190a150565b6000806000806112e2336139b3565b1515611326576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b600485106114c75761136a86868080601f0160208091040260200160405190810160405280939291908181526020018383808284375060009450613d219350505050565b935063ffffffff841663a9059cbb148061138d575063ffffffff841663095ea7b3145b156114c7576044851015611411576040805160e560020a62461bcd02815260206004820152602b60248201527f696e76616c6964207472616e73666572202f20617070726f7665207472616e7360448201527f616374696f6e2064617461000000000000000000000000000000000000000000606482015290519081900360840190fd5b61144d86868080601f0160208091040260200160405190810160405280939291908181526020018383808284375060249450613dfa9350505050565b925061148b86868080601f0160208091040260200160405190810160405280939291908181526020018383808284375060109450613e6d9350505050565b600160a060020a03811660009081526004602052604090205490925060ff1615156114c7576114ba8884612646565b90506114c7600982613b7e565b600160a060020a03881660009081526004602052604090205460ff1615156114f4576114f4600988613b7e565b61153388888888905089898080601f01602080910402602001604051908101604052809392919081815260200183838082843750613f3c945050505050565b1515611589576040805160e560020a62461bcd02815260206004820152601c60248201527f657865637574696e67207472616e73616374696f6e206661696c656400000000604482015290519081900360640190fd5b7faf022f6b53b11c364e2dfc0aea08eb9416c94f2661451ea82ead8831385617a6888888886040518085600160a060020a0316600160a060020a03168152602001848152602001806020018281038252848482818152602001925080828437604051920182900397509095505050505050a15050505050505050565b60606006805480602002602001604051908101604052809291908181526020018280548015610db657602002820191906000526020600020908154600160a060020a03168152600190910190602001808311610d98575050505050905090565b600061167033613a3f565b15156116b4576040805160e560020a62461bcd02815260206004820152601a60248201526000805160206144ef833981519152604482015290519081900360640190fd5b60085460ff161515611736576040805160e560020a62461bcd02815260206004820152602960248201527f77686974656c697374206164646974696f6e20686173206e6f74206265656e2060448201527f7375626d69747465640000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6117976006805480602002602001604051908101604052809291908181526020018280548015610bb557602002820191906000526020600020908154600160a060020a03168152600190910190602001808311610b97575050505050612e39565b8214611813576040805160e560020a62461bcd02815260206004820152603360248201527f68617368206f66207468652070656e64696e672077686974656c69737420616460448201527f646974696f6e20646f206e6f74206d6174636800000000000000000000000000606482015290519081900360840190fd5b5060005b60065481101561190e576004600060068381548110151561183457fe5b6000918252602080832090910154600160a060020a0316835282019290925260400190205460ff1615156119065760016004600060068481548110151561187757fe5b600091825260208083209190910154600160a060020a031683528201929092526040019020805460ff19169115159190911790556006805460059190839081106118bd57fe5b600091825260208083209091015483546001810185559383529120909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039092169190911790555b600101611817565b7fb2f6cccee7a369e23e293c25aa19bef80af11eb26deba3ea0f2a02783f752e4a3360066040518083600160a060020a0316600160a060020a0316815260200180602001828103825283818154815260200191508054801561199957602002820191906000526020600020905b8154600160a060020a0316815260019091019060200180831161197b575b5050935050505060405180910390a16119b4600660006143c9565b50506008805460ff19169055565b6000610c9b6009613ad8565b6119d7336139b3565b1515611a1b576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b60085460ff16158015611a365750600854610100900460ff16155b1515611ab2576040805160e560020a62461bcd02815260206004820152602e60248201527f77686974656c697374206f7065726174696f6e2068617320616c72656164792060448201527f6265656e207375626d6974746564000000000000000000000000000000000000606482015290519081900360840190fd5b60085462010000900460ff161515611b3a576040805160e560020a62461bcd02815260206004820152602260248201527f77686974656c69737420686173206e6f74206265656e20696e697469616c697a60448201527f6564000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60008111611bb8576040805160e560020a62461bcd02815260206004820152602260248201527f70656e64696e672077686974656c6973742072656d6f76616c20697320656d7060448201527f7479000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b611bc4600783836143ea565b506008805461ff00191661010017905560408051602080840282810182019093528382527ffbc0e5ca6c7e4858daf0fdb185ef5186203e74ec9c64737e93c0aeaec596e1d19285928592611c2d9285918591829185019084908082843750612e39945050505050565b604080516020808201849052828252918101849052908190606082019086908602808284376040519201829003965090945050505050a15050565b600d5460ff1690565b611c7a336139b3565b1515611cbe576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b60035474010000000000000000000000000000000000000000900460ff161515611d32576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b6003805473ffffffffffffffffffffffffffffffffffffffff19169055604080516000808252602082015281517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea5929181900390910190a1565b611d95336139b3565b1515611dd9576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b8066038d7ea4c6800011158015611df857506706f05b59d3b200008111155b1515611e74576040805160e560020a62461bcd02815260206004820152602e60248201527f67617320746f7020757020616d6f756e74206973206f7574736964652074686560448201527f206d696e2f6d61782072616e6765000000000000000000000000000000000000606482015290519081900360840190fd5b611e7f600f82613afe565b6040805182815290517faf2a77cd04c3cc155588dd3bf67b310ab4fb3b1da3cf6b8d7d4d2aa1d09b794c9181900360200190a150565b601a5490565b600154600160a060020a031690565b6000610c9b600f613ad8565b611edf336139b3565b1515611f23576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b60085460ff16158015611f3e5750600854610100900460ff16155b1515611fba576040805160e560020a62461bcd02815260206004820152602e60248201527f77686974656c697374206f7065726174696f6e2068617320616c72656164792060448201527f6265656e207375626d6974746564000000000000000000000000000000000000606482015290519081900360840190fd5b8181808060200260200160405190810160405280939291908181526020018383602002808284375060009450505050505b815181101561211357612014828281518110151561200557fe5b906020019060200201516139b3565b1561207d576040805160e560020a62461bcd02815260206004820152602d602482015260008051602061450f83398151915260448201527f6f776e6572206164647265737300000000000000000000000000000000000000606482015290519081900360840190fd5b815160009083908390811061208e57fe5b60209081029091010151600160a060020a0316141561210b576040805160e560020a62461bcd02815260206004820152602c602482015260008051602061450f83398151915260448201527f7a65726f20616464726573730000000000000000000000000000000000000000606482015290519081900360840190fd5b600101611feb565b60085462010000900460ff16151561219b576040805160e560020a62461bcd02815260206004820152602260248201527f77686974656c69737420686173206e6f74206265656e20696e697469616c697a60448201527f6564000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60008311612219576040805160e560020a62461bcd02815260206004820152602360248201527f70656e64696e672077686974656c697374206164646974696f6e20697320656d60448201527f7074790000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b612225600685856143ea565b506008805460ff1916600117905560408051602080860282810182019093528582527f9c80b3b5f68b3e017766d59e8d09b34efe6462b05c398f35cab9e271d9bc3b9c928792879261228c9285918591829185019084908082843750612e39945050505050565b604080516020808201849052828252918101849052908190606082019086908602808284376040519201829003965090945050505050a150505050565b600e5490565b600354600160a060020a031690565b60095490565b6122ed336139b3565b1515612331576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b8066038d7ea4c680001115801561234a57506014548111155b15156123c6576040805160e560020a62461bcd02815260206004820152602d60248201527f63617264206c6f616420616d6f756e74206973206f757473696465207468652060448201527f6d696e2f6d61782072616e676500000000000000000000000000000000000000606482015290519081900360840190fd5b6123d1601582613afe565b6040805182815290517fc178d379965e5657b6fc57494e392f121a14119215dfb422aad7db4cc03f2d109181900360200190a150565b612410336139b3565b1515612454576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b60035474010000000000000000000000000000000000000000900460ff1615156124c8576040805160e560020a62461bcd02815260206004820152601d60248201527f6f776e657273686970206973206e6f74207472616e7366657261626c65000000604482015290519081900360640190fd5b600160a060020a038216151561254e576040805160e560020a62461bcd02815260206004820152602360248201527f6f776e65722063616e6e6f742062652073657420746f207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6003805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000831515908102919091179091556125ce5760408051600160a060020a038416815290517f808639ff9c8e4732d60b6c2330de498035416d229f27a77d259680895efec1229181900360200190a15b60035460408051600160a060020a039283168152918416602083015280517f850b3df64837d7d518b45f5aa64d104652c3b80eb5b34a8e3d9eb666cb7cdea59281900390910190a1506003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60008060008061265586613f5f565b5050509350935093505080156126e3578115156126bc576040805160e560020a62461bcd02815260206004820152600f60248201527f746f6b656e207261746520697320300000000000000000000000000000000000604482015290519081900360640190fd5b6126dc836126d0878563ffffffff61409116565b9063ffffffff6140c616565b93506126e8565b600093505b50505092915050565b60085462010000900460ff1681565b600061270b336139b3565b151561274f576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b818015156127a7576040805160e560020a62461bcd02815260206004820152601d60248201527f70726f76696465642076616c75652063616e6e6f74206265207a65726f000000604482015290519081900360640190fd5b600160a060020a0385161515612807576040805160e560020a62461bcd02815260206004820181905260248201527f5f746f20616464726573732063616e6e6f742062652073657420746f20307830604482015290519081900360640190fd5b600160a060020a03851660009081526004602052604090205460ff16151561285357829150600160a060020a03841615612848576128458484612646565b91505b612853600983613b7e565b600160a060020a038416156129725783600160a060020a031663a9059cbb86856040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b1580156128c557600080fd5b505af11580156128d9573d6000803e3d6000fd5b505050506040513d60208110156128ef57600080fd5b5051151561296d576040805160e560020a62461bcd02815260206004820152602560248201527f455243323020746f6b656e207472616e736665722077617320756e737563636560448201527f737366756c000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6129aa565b604051600160a060020a0386169084156108fc029085906000818181858888f193505050501580156129a8573d6000803e3d6000fd5b505b60408051600160a060020a0380881682528616602082015280820185905290517fd1ba4ac2e2a11b5101f6cb4d978f514a155b421e8ec396d2d9abaf0bb02917ee9181900360600190a15050505050565b60185490565b60135460ff1690565b600080612a1633613a3f565b1515612a5a576040805160e560020a62461bcd02815260206004820152601a60248201526000805160206144ef833981519152604482015290519081900360640190fd5b600854610100900460ff161515612ae1576040805160e560020a62461bcd02815260206004820152602860248201527f77686974656c6973742072656d6f76616c20686173206e6f74206265656e207360448201527f75626d6974746564000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b612b426007805480602002602001604051908101604052809291908181526020018280548015610bb557602002820191906000526020600020908154600160a060020a03168152600190910190602001808311610b97575050505050612e39565b8314612be4576040805160e560020a62461bcd02815260206004820152604760248201527f68617368206f66207468652070656e64696e672077686974656c69737420726560448201527f6d6f76616c20646f6573206e6f74206d617463682074686520636f6e6669726d60648201527f6564206861736800000000000000000000000000000000000000000000000000608482015290519081900360a40190fd5b600091505b600754821015612d7d5760046000600784815481101515612c0657fe5b6000918252602080832090910154600160a060020a0316835282019290925260400190205460ff1615612d7257600060046000600785815481101515612c4857fe5b600091825260208083209190910154600160a060020a031683528201929092526040018120805460ff19169215159290921790915590505b600554612c9490600163ffffffff6140e916565b811015612d5d576007805483908110612ca957fe5b60009182526020909120015460058054600160a060020a039092169183908110612ccf57fe5b600091825260209091200154600160a060020a03161415612d5557600580546000198101908110612cfc57fe5b60009182526020909120015460058054600160a060020a039092169183908110612d2257fe5b9060005260206000200160006101000a815481600160a060020a030219169083600160a060020a03160217905550612d5d565b600101612c80565b6005805490612d7090600019830161445a565b505b600190910190612be9565b7fd218c430fa348f4ce67791021b6b89c0c3eacd4ead1d8f5b83c60038ec28249b3360076040518083600160a060020a0316600160a060020a03168152602001806020018281038252838181548152602001915080548015612e0857602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311612dea575b5050935050505060405180910390a1612e23600760006143c9565b50506008805461ff001916905550565b60125490565b60008160405160200180828051906020019060200280838360005b83811015612e6c578181015183820152602001612e54565b505050509050019150506040516020818303038152906040526040518082805190602001908083835b60208310612eb45780518252601f199092019160209182019101612e95565b5181516020939093036101000a6000190180199091169216919091179052604051920182900390912095945050505050565b612eef336139b3565b80612efe5750612efe33613a3f565b1515612f54576040805160e560020a62461bcd02815260206004820152601a60248201527f656974686572206f776e6572206f7220636f6e74726f6c6c6572000000000000604482015290519081900360640190fd5b600854610100900460ff161515612fdb576040805160e560020a62461bcd02815260206004820152602860248201527f77686974656c6973742072656d6f76616c20686173206e6f74206265656e207360448201527f75626d6974746564000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b61303c6007805480602002602001604051908101604052809291908181526020018280548015610bb557602002820191906000526020600020908154600160a060020a03168152600190910190602001808311610b97575050505050612e39565b81146130b8576040805160e560020a62461bcd02815260206004820152603260248201527f68617368206f66207468652070656e64696e672077686974656c69737420726560448201527f6d6f76616c20646f206e6f74206d617463680000000000000000000000000000606482015290519081900360840190fd5b6130c4600760006143c9565b6008805461ff0019169055604080513381526020810183905281517f13c935eb475aa0f6e931fece83e2ac44569ce2d53460d29a6dedab40b965c8a3929181900390910190a150565b600580548290811061311b57fe5b600091825260209091200154600160a060020a0316905081565b60155490565b600854610100900460ff1681565b60025490565b6000600160a060020a038216156131f457604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a038416916370a082319160248083019260209291908290030181600087803b1580156131c157600080fd5b505af11580156131d5573d6000803e3d6000fd5b505050506040513d60208110156131eb57600080fd5b5051905061092f565b50303161092f565b80801515613254576040805160e560020a62461bcd02815260206004820152601d60248201527f70726f76696465642076616c75652063616e6e6f74206265207a65726f000000604482015290519081900360640190fd5b61325d336139b3565b8061326c575061326c33613a3f565b15156132c2576040805160e560020a62461bcd02815260206004820152601a60248201527f656974686572206f776e6572206f7220636f6e74726f6c6c6572000000000000604482015290519081900360640190fd5b6132cd600f83613b7e565b6132d56122cf565b600160a060020a03166108fc839081150290604051600060405180830381858888f1935050505015801561330d573d6000803e3d6000fd5b507f611b7c0d84fda988026215bef9b3e4d81cbceced7e679be6d5e044b588467c0e336133386122cf565b60408051600160a060020a03938416815291909216602082015280820185905290519081900360600190a15050565b61337033613a3f565b15156133b4576040805160e560020a62461bcd02815260206004820152601a60248201526000805160206144ef833981519152604482015290519081900360640190fd5b611295600982614100565b60008060008060008060006133d2614193565b600160a060020a031689600160a060020a031614156133f3578796506135b1565b600160a060020a038916156134da5761340b89613f5f565b5050509650965096505083151561346c576040805160e560020a62461bcd02815260206004820152601660248201527f746f6b656e206973206e6f7420617661696c61626c6500000000000000000000604482015290519081900360640190fd5b8415156134c3576040805160e560020a62461bcd02815260206004820152600f60248201527f746f6b656e207261746520697320300000000000000000000000000000000000604482015290519081900360640190fd5b6134d7866126d08a8863ffffffff61409116565b97505b6134e261420e565b50505093509350935050801515613543576040805160e560020a62461bcd02815260206004820152601660248201527f746f6b656e206973206e6f7420617661696c61626c6500000000000000000000604482015290519081900360640190fd5b81151561359a576040805160e560020a62461bcd02815260206004820152601460248201527f737461626c65636f696e20726174652069732030000000000000000000000000604482015290519081900360640190fd5b6135ae826126d08a8663ffffffff61409116565b96505b50505050505092915050565b6135c633613a3f565b151561360a576040805160e560020a62461bcd02815260206004820152601a60248201526000805160206144ef833981519152604482015290519081900360640190fd5b6111ff601582614100565b61361e33613a3f565b1515613662576040805160e560020a62461bcd02815260206004820152601a60248201526000805160206144ef833981519152604482015290519081900360640190fd5b610a2e600f82614100565b6000613678336139b3565b15156136bc576040805160e560020a62461bcd02815260206004820152601660248201526000805160206144cf833981519152604482015290519081900360640190fd5b8282808060200260200160405190810160405280939291908181526020018383602002808284375060009450505050505b815181101561380657613707828281518110151561200557fe5b15613770576040805160e560020a62461bcd02815260206004820152602d602482015260008051602061450f83398151915260448201527f6f776e6572206164647265737300000000000000000000000000000000000000606482015290519081900360840190fd5b815160009083908390811061378157fe5b60209081029091010151600160a060020a031614156137fe576040805160e560020a62461bcd02815260206004820152602c602482015260008051602061450f83398151915260448201527f7a65726f20616464726573730000000000000000000000000000000000000000606482015290519081900360840190fd5b6001016136ed565b60085462010000900460ff161561388d576040805160e560020a62461bcd02815260206004820152602660248201527f77686974656c6973742068617320616c7265616479206265656e20696e69746960448201527f616c697a65640000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600092505b8383101561393e576001600460008787878181106138ac57fe5b60209081029290920135600160a060020a0316835250810191909152604001600020805460ff191691151591909117905560058585858181106138eb57fe5b83546001808201865560009586526020958690209091018054929095029390930135600160a060020a031673ffffffffffffffffffffffffffffffffffffffff1990911617909255939093019250613892565b6008805462ff0000191662010000179055604080513380825260208083018481529383018890527fb2f6cccee7a369e23e293c25aa19bef80af11eb26deba3ea0f2a02783f752e4a93919289928992606083019085908502808284376040519201829003965090945050505050a15050505050565b600354600160a060020a0390811691161490565b600482015460ff1615613a24576040805160e560020a62461bcd02815260206004820181905260248201527f6461696c79206c696d69742068617320616c7265616479206265656e20736574604482015290519081900360640190fd5b613a2e828261431b565b50600401805460ff19166001179055565b6000613a4c600254613c2a565b600160a060020a031663b429afeb836040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b158015613aa657600080fd5b505af1158015613aba573d6000803e3d6000fd5b505050506040513d6020811015613ad057600080fd5b505192915050565b600081600201546201518001421115613af35750805461092f565b50600181015461092f565b600482015460ff161515613b5c576040805160e560020a62461bcd02815260206004820152601660248201527f6c696d697420686173206e6f74206265656e2073657400000000000000000000604482015290519081900360640190fd5b600390910155565b600080613b7083613f5f565b509098975050505050505050565b613b878261433e565b6001820154811115613c09576040805160e560020a62461bcd02815260206004820152603260248201527f617661696c61626c652068617320746f2062652067726561746572206f72206560448201527f7175616c20746f2075736520616d6f756e740000000000000000000000000000606482015290519081900360840190fd5b6001820154613c1e908263ffffffff6140e916565b82600101819055505050565b60008054604080517f0178b8bf000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691630178b8bf9160248082019260209290919082900301818787803b158015613c9157600080fd5b505af1158015613ca5573d6000803e3d6000fd5b505050506040513d6020811015613cbb57600080fd5b5051604080517f3b3b57de000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691633b3b57de916024808201926020929091908290030181600087803b158015613aa657600080fd5b60008060008084600401865110151515613d85576040805160e560020a62461bcd02815260206004820152601460248201527f736c6963696e67206f7574206f662072616e6765000000000000000000000000604482015290519081900360640190fd5b5060009150819050805b60048160ff161015613df05761010083029250858160ff168601815181101515613db557fe5b01602001517f010000000000000000000000000000000000000000000000000000000000000090819004810204928301929150600101613d8f565b5090949350505050565b60008082602001845110151515613e5b576040805160e560020a62461bcd02815260206004820152601460248201527f736c6963696e67206f7574206f662072616e6765000000000000000000000000604482015290519081900360640190fd5b505081810160200151805b5092915050565b60008060008084601401865110151515613ed1576040805160e560020a62461bcd02815260206004820152601460248201527f736c6963696e67206f7574206f662072616e6765000000000000000000000000604482015290519081900360640190fd5b5060009150819050805b60148160ff161015613df05761010083029250858160ff168601815181101515613f0157fe5b01602001517f010000000000000000000000000000000000000000000000000000000000000090819004810204928301929150600101613edb565b6000806040516020840160008287838a8c6187965a03f198975050505050505050565b6060600080600080600080613f75600e54613c2a565b600160a060020a0316631f69565f896040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b158015613fcf57600080fd5b505af1158015613fe3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260e081101561400c57600080fd5b81019080805164010000000081111561402457600080fd5b8201602081018481111561403757600080fd5b815164010000000081118282018710171561405157600080fd5b5050602082015160408301516060840151608085015160a086015160c090960151949e50929c50909a509850965090945092505050919395979092949650565b6000808315156140a45760009150613e66565b508282028284828115156140b457fe5b04146140bf57600080fd5b9392505050565b6000808083116140d557600080fd5b82848115156140e057fe5b04949350505050565b600080838311156140f957600080fd5b5050900390565b60038201548114614181576040805160e560020a62461bcd02815260206004820152602960248201527f636f6e6669726d656420616e64207375626d6974746564206c696d697473206460448201527f6f6e74206d617463680000000000000000000000000000000000000000000000606482015290519081900360840190fd5b61418f82836003015461431b565b5050565b60006141a0600e54613c2a565b600160a060020a031663e9cbd8226040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156141dd57600080fd5b505af11580156141f1573d6000803e3d6000fd5b505050506040513d602081101561420757600080fd5b5051905090565b6060600080600080600080614224600e54613c2a565b600160a060020a0316633efec5e96040518163ffffffff1660e060020a028152600401600060405180830381600087803b15801561426157600080fd5b505af1158015614275573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260e081101561429e57600080fd5b8101908080516401000000008111156142b657600080fd5b820160208101848111156142c957600080fd5b81516401000000008111828201871017156142e357600080fd5b5050602082015160408301516060840151608085015160a086015160c090960151949f939e50919c509a509850919650945092505050565b6143248261433e565b808255600182015481101561418f57815460018301555050565b6002810154600090614359906201518063ffffffff6143b716565b42111561418f5761437e620151806126d08460020154426140e990919063ffffffff16565b90506143a7614396826201518063ffffffff61409116565b60028401549063ffffffff6143b716565b6002830155815460018301555050565b6000828201838110156140bf57600080fd5b50805460008255906000526020600020908101906143e79190614483565b50565b82805482825590600052602060002090810192821561444a579160200282015b8281111561444a57815473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0384351617825560209092019160019091019061440a565b5061445692915061449d565b5090565b81548183558181111561447e5760008381526020902061447e918101908301614483565b505050565b61093891905b808211156144565760008155600101614489565b61093891905b8082111561445657805473ffffffffffffffffffffffffffffffffffffffff191681556001016144a3560073656e646572206973206e6f7420616e206f776e65720000000000000000000073656e646572206973206e6f74206120636f6e74726f6c6c657200000000000070726f76696465642077686974656c69737420636f6e7461696e732074686520a165627a7a72305820088d8f3def4506637bda6d36374fb74cb4bbc7c2550ce8c58aba78a2564232eb0029` // DeployWallet deploys a new Ethereum contract, binding an instance of Wallet to it. func DeployWallet(auth *bind.TransactOpts, backend bind.ContractBackend, _owner_ common.Address, _transferable_ bool, _ens_ common.Address, _tokenWhitelistNameHash_ [32]byte, _controllerNameHash_ [32]byte, _licenceNameHash_ [32]byte, _spendLimit_ *big.Int) (common.Address, *types.Transaction, *Wallet, error) { diff --git a/test/internals/controller/claim_test.go b/test/internals/controller/claim_test.go new file mode 100644 index 00000000..538a38fd --- /dev/null +++ b/test/internals/controller/claim_test.go @@ -0,0 +1,103 @@ +package controller_test + +import ( + "context" + "math/big" + + . "github.com/onsi/ginkgo" + . "github.com/onsi/gomega" + . "github.com/tokencard/contracts/test/shared" + "github.com/tokencard/ethertest" +) + +var _ = Describe("Controller claim", func() { + + It("the initial balance of the Controller contract should be zero", func() { + b, e := Backend.BalanceAt(context.Background(), ControllerContractAddress, nil) + Expect(e).ToNot(HaveOccurred()) + Expect(b.String()).To(Equal("0")) + }) + + It("the initial ERC20 type-1 balance of the Controller contract should be zero", func() { + b, err := ERC20Contract1.BalanceOf(nil, ControllerContractAddress) + Expect(err).ToNot(HaveOccurred()) + Expect(b.String()).To(Equal("0")) + }) + + It("the initial ERC20 type-1 balance of the RandomAccount should be zero", func() { + b, err := ERC20Contract1.BalanceOf(nil, RandomAccount.Address()) + Expect(err).ToNot(HaveOccurred()) + Expect(b.String()).To(Equal("0")) + }) + + When("The Controller contract is credited with 333 of ERC20 type-1 tokens", func() { + BeforeEach(func() { + tx, err := ERC20Contract1.Credit(BankAccount.TransactOpts(), ControllerContractAddress, big.NewInt(333)) + Expect(err).ToNot(HaveOccurred()) + Backend.Commit() + Expect(isSuccessful(tx)).To(BeTrue()) + }) + + It("should increase the ERC20 type-1 balance of the Controller contract by 333", func() { + b, err := ERC20Contract1.BalanceOf(nil, ControllerContractAddress) + Expect(err).ToNot(HaveOccurred()) + Expect(b.String()).To(Equal("333")) + }) + + When("the Controller owner withdraws 222 tokens", func() { + + BeforeEach(func() { + tx, err := ControllerContract.Claim(ControllerOwner.TransactOpts(), RandomAccount.Address(), ERC20Contract1Address, big.NewInt(222)) + Expect(err).ToNot(HaveOccurred()) + Backend.Commit() + Expect(isSuccessful(tx)).To(BeTrue()) + }) + + It("Should emit 2 Transferred events", func() { + it, err := ControllerContract.FilterClaimed(nil) + Expect(err).ToNot(HaveOccurred()) + Expect(it.Next()).To(BeTrue()) + evt := it.Event + Expect(it.Next()).To(BeFalse()) + Expect(evt.To).To(Equal(RandomAccount.Address())) + Expect(evt.Asset).To(Equal(ERC20Contract1Address)) + Expect(evt.Amount.String()).To(Equal("222")) + }) + + It("should decrease the ERC20 type-1 balance of the Controller contract contract by 222", func() { + b, err := ERC20Contract1.BalanceOf(nil, ControllerContractAddress) + Expect(err).ToNot(HaveOccurred()) + Expect(b.String()).To(Equal("111")) + }) + + It("should increase the ERC20 type-1 balance of the RandomAccount by 222", func() { + b, err := ERC20Contract1.BalanceOf(nil, RandomAccount.Address()) + Expect(err).ToNot(HaveOccurred()) + Expect(b.String()).To(Equal("222")) + }) + + }) //owner withdrawal + + When("controller Admin tries to withdraw", func() { + It("Should fail", func() { + tx, err := ControllerContract.Claim(ControllerAdmin.TransactOpts(ethertest.WithGasLimit(100000)), RandomAccount.Address(), ERC20Contract1Address, big.NewInt(222)) + Expect(err).ToNot(HaveOccurred()) + Backend.Commit() + Expect(isGasExhausted(tx, 100000)).To(BeFalse()) + Expect(isSuccessful(tx)).To(BeFalse()) + }) + }) + + When("controller tries to withdraw", func() { + It("Should fail", func() { + tx, err := ControllerContract.Claim(Controller.TransactOpts(ethertest.WithGasLimit(100000)), RandomAccount.Address(), ERC20Contract1Address, big.NewInt(222)) + Expect(err).ToNot(HaveOccurred()) + Backend.Commit() + Expect(isGasExhausted(tx, 100000)).To(BeFalse()) + Expect(isSuccessful(tx)).To(BeFalse()) + }) + }) + + }) + +}) diff --git a/test/internals/token_whitelist/claim_test.go b/test/internals/token_whitelist/claim_test.go new file mode 100644 index 00000000..daec17d7 --- /dev/null +++ b/test/internals/token_whitelist/claim_test.go @@ -0,0 +1,93 @@ +package token_whitelist_test + +import ( + "context" + "math/big" + + . "github.com/onsi/ginkgo" + . "github.com/onsi/gomega" + . "github.com/tokencard/contracts/test/shared" + "github.com/tokencard/ethertest" +) + +var _ = Describe("TokenWhitelist claim", func() { + + It("the initial balance of the TokenWhitelist contract should be zero", func() { + b, e := Backend.BalanceAt(context.Background(), TokenWhitelistAddress, nil) + Expect(e).ToNot(HaveOccurred()) + Expect(b.String()).To(Equal("0")) + }) + + It("the initial ERC20 type-1 balance of the TokenWhitelist contract should be zero", func() { + b, err := ERC20Contract1.BalanceOf(nil, TokenWhitelistAddress) + Expect(err).ToNot(HaveOccurred()) + Expect(b.String()).To(Equal("0")) + }) + + It("the initial ERC20 type-1 balance of the RandomAccount should be zero", func() { + b, err := ERC20Contract1.BalanceOf(nil, RandomAccount.Address()) + Expect(err).ToNot(HaveOccurred()) + Expect(b.String()).To(Equal("0")) + }) + + When("The TokenWhitelist contract is credited with 333 of ERC20 type-1 tokens", func() { + BeforeEach(func() { + tx, err := ERC20Contract1.Credit(BankAccount.TransactOpts(), TokenWhitelistAddress, big.NewInt(333)) + Expect(err).ToNot(HaveOccurred()) + Backend.Commit() + Expect(isSuccessful(tx)).To(BeTrue()) + }) + + It("should increase the ERC20 type-1 balance of the TokenWhitelist contract by 333", func() { + b, err := ERC20Contract1.BalanceOf(nil, TokenWhitelistAddress) + Expect(err).ToNot(HaveOccurred()) + Expect(b.String()).To(Equal("333")) + }) + + When("the TokenWhitelistAddress owner withdraws 222 tokens", func() { + + BeforeEach(func() { + tx, err := TokenWhitelist.Claim(Owner.TransactOpts(), RandomAccount.Address(), ERC20Contract1Address, big.NewInt(222)) + Expect(err).ToNot(HaveOccurred()) + Backend.Commit() + Expect(isSuccessful(tx)).To(BeTrue()) + }) + + It("Should emit 2 Transferred events", func() { + it, err := TokenWhitelist.FilterClaimed(nil) + Expect(err).ToNot(HaveOccurred()) + Expect(it.Next()).To(BeTrue()) + evt := it.Event + Expect(it.Next()).To(BeFalse()) + Expect(evt.To).To(Equal(RandomAccount.Address())) + Expect(evt.Asset).To(Equal(ERC20Contract1Address)) + Expect(evt.Amount.String()).To(Equal("222")) + }) + + It("should decrease the ERC20 type-1 balance of the TokenWhitelist contract contract by 222", func() { + b, err := ERC20Contract1.BalanceOf(nil, TokenWhitelistAddress) + Expect(err).ToNot(HaveOccurred()) + Expect(b.String()).To(Equal("111")) + }) + + It("should increase the ERC20 type-1 balance of the RandomAccount by 222", func() { + b, err := ERC20Contract1.BalanceOf(nil, RandomAccount.Address()) + Expect(err).ToNot(HaveOccurred()) + Expect(b.String()).To(Equal("222")) + }) + + }) //owner withdrawal + + When("a random address tries to withdraw", func() { + It("Should fail", func() { + tx, err := TokenWhitelist.Claim(RandomAccount.TransactOpts(ethertest.WithGasLimit(100000)), RandomAccount.Address(), ERC20Contract1Address, big.NewInt(222)) + Expect(err).ToNot(HaveOccurred()) + Backend.Commit() + Expect(isGasExhausted(tx, 100000)).To(BeFalse()) + Expect(isSuccessful(tx)).To(BeFalse()) + }) + }) + + }) + +}) diff --git a/test/licence/claim_test.go b/test/licence/claim_test.go index f81068e6..f906dc84 100644 --- a/test/licence/claim_test.go +++ b/test/licence/claim_test.go @@ -12,7 +12,7 @@ import ( var _ = Describe("LicenceClaim", func() { - It("the initial balance of the Licence contracts should be zero", func() { + It("the initial balance of the Licence contract should be zero", func() { b, e := Backend.BalanceAt(context.Background(), LicenceAddress, nil) Expect(e).ToNot(HaveOccurred()) Expect(b.String()).To(Equal("0")) @@ -48,7 +48,7 @@ var _ = Describe("LicenceClaim", func() { Expect(b.String()).To(Equal("333")) }) - It("should increase the ETH balance of the Wallet by 2 ETH", func() { + It("should increase the ETH balance of the Licence contract by 2 ETH", func() { b, e := Backend.BalanceAt(context.Background(), LicenceAddress, nil) Expect(e).ToNot(HaveOccurred()) Expect(b.String()).To(Equal(EthToWei(2).String())) @@ -93,7 +93,7 @@ var _ = Describe("LicenceClaim", func() { Expect(b.String()).To(Equal("111")) }) - It("should decrease the ETH balance of the Wallet by 1 ETH", func() { + It("should decrease the ETH balance of the Licence contract by 1 ETH", func() { b, e := Backend.BalanceAt(context.Background(), LicenceAddress, nil) Expect(e).ToNot(HaveOccurred()) Expect(b.String()).To(Equal(EthToWei(1).String())) @@ -105,7 +105,7 @@ var _ = Describe("LicenceClaim", func() { Expect(b.String()).To(Equal("222")) }) - It("should increase the ETH balance of the Wallet by 1 ETH", func() { //initial balance of RandomAccount is 1000 ETH + It("should increase the ETH balance of the Random account by 1 ETH", func() { //initial balance of RandomAccount is 1000 ETH b, e := Backend.BalanceAt(context.Background(), RandomAccount.Address(), nil) Expect(e).ToNot(HaveOccurred()) Expect(b.String()).To(Equal(EthToWei(1001).String()))